Move or resize a window with the arrow keys
This commit is contained in:
parent
c43a7f9bad
commit
c25ee14fe7
|
@ -1,3 +1,6 @@
|
||||||
|
2016-09-30 Markus Gans <guru.mail@muenster.de>
|
||||||
|
* Using arrow keys to move or to resize a window
|
||||||
|
|
||||||
2016-09-28 Markus Gans <guru.mail@muenster.de>
|
2016-09-28 Markus Gans <guru.mail@muenster.de>
|
||||||
* The size is now dynamically changeable with the mouse
|
* The size is now dynamically changeable with the mouse
|
||||||
in a resizable window.
|
in a resizable window.
|
||||||
|
|
19
src/fapp.cpp
19
src/fapp.cpp
|
@ -22,6 +22,7 @@ FWidget* FApplication::open_menu = 0; // currently open menu
|
||||||
FPoint* FApplication::zero_point = 0; // zero point (x=0, y=0)
|
FPoint* FApplication::zero_point = 0; // zero point (x=0, y=0)
|
||||||
int FApplication::quit_code = 0;
|
int FApplication::quit_code = 0;
|
||||||
bool FApplication::quit_now = false;
|
bool FApplication::quit_now = false;
|
||||||
|
bool FApplication::move_size_mode = false; // move/size by keyboard
|
||||||
std::deque<FApplication::eventPair>* FApplication::event_queue = 0;
|
std::deque<FApplication::eventPair>* FApplication::event_queue = 0;
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
@ -248,10 +249,15 @@ void FApplication::processKeyboardEvent()
|
||||||
FWidget* widget = 0;
|
FWidget* widget = 0;
|
||||||
|
|
||||||
if ( focus_widget )
|
if ( focus_widget )
|
||||||
widget = static_cast<FWidget*>(focus_widget);
|
{
|
||||||
|
if ( move_size_mode )
|
||||||
|
widget = FWindow::getWindowWidget(focus_widget);
|
||||||
|
else
|
||||||
|
widget = focus_widget;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
widget = static_cast<FWidget*>(main_widget);
|
widget = main_widget;
|
||||||
|
|
||||||
if ( widget->numOfChildren() >= 1 )
|
if ( widget->numOfChildren() >= 1 )
|
||||||
widget->focusFirstChild();
|
widget->focusFirstChild();
|
||||||
|
@ -436,7 +442,7 @@ void FApplication::processKeyboardEvent()
|
||||||
// windows keyboard accelerator
|
// windows keyboard accelerator
|
||||||
if ( ! accpt )
|
if ( ! accpt )
|
||||||
{
|
{
|
||||||
FWidget* window = static_cast<FWidget*>(active_window);
|
FWidget* window = active_window;
|
||||||
|
|
||||||
if ( window )
|
if ( window )
|
||||||
accpt = processAccelerator (window);
|
accpt = processAccelerator (window);
|
||||||
|
@ -773,6 +779,8 @@ bool FApplication::processDialogSwitchAccelerator()
|
||||||
|
|
||||||
if ( s > 0 && s >= n )
|
if ( s > 0 && s >= n )
|
||||||
{
|
{
|
||||||
|
// unset the move/size mode
|
||||||
|
setMoveSizeMode(false);
|
||||||
FAccelEvent a_ev (fc::Accelerator_Event, focus_widget);
|
FAccelEvent a_ev (fc::Accelerator_Event, focus_widget);
|
||||||
sendEvent (dialog_list->at(n-1), &a_ev);
|
sendEvent (dialog_list->at(n-1), &a_ev);
|
||||||
return true;
|
return true;
|
||||||
|
@ -802,6 +810,8 @@ bool FApplication::processAccelerator (FWidget*& widget)
|
||||||
|
|
||||||
if ( iter->key == key )
|
if ( iter->key == key )
|
||||||
{
|
{
|
||||||
|
// unset the move/size mode
|
||||||
|
setMoveSizeMode(false);
|
||||||
FAccelEvent a_ev (fc::Accelerator_Event, focus_widget);
|
FAccelEvent a_ev (fc::Accelerator_Event, focus_widget);
|
||||||
sendEvent (iter->object, &a_ev);
|
sendEvent (iter->object, &a_ev);
|
||||||
accpt = a_ev.isAccepted();
|
accpt = a_ev.isAccepted();
|
||||||
|
@ -1407,6 +1417,9 @@ void FApplication::processMouseEvent()
|
||||||
FWidget* child = childWidgetAt (window, *mouse);
|
FWidget* child = childWidgetAt (window, *mouse);
|
||||||
clicked_widget = (child != 0) ? child : window;
|
clicked_widget = (child != 0) ? child : window;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// unset the move/size mode
|
||||||
|
setMoveSizeMode(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// close the open menu
|
// close the open menu
|
||||||
|
|
13
src/fapp.h
13
src/fapp.h
|
@ -109,6 +109,7 @@ class FApplication : public FWidget
|
||||||
struct timeval time_keypressed;
|
struct timeval time_keypressed;
|
||||||
struct timeval time_mousepressed;
|
struct timeval time_mousepressed;
|
||||||
FPoint new_mouse_position;
|
FPoint new_mouse_position;
|
||||||
|
static bool move_size_mode;
|
||||||
static FWidget* main_widget;
|
static FWidget* main_widget;
|
||||||
static FWidget* active_window;
|
static FWidget* active_window;
|
||||||
static FWidget* focus_widget;
|
static FWidget* focus_widget;
|
||||||
|
@ -116,8 +117,10 @@ class FApplication : public FWidget
|
||||||
static FWidget* open_menu;
|
static FWidget* open_menu;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FApplication (const FApplication&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
FApplication& operator = (const FApplication&); // and operator '='
|
FApplication (const FApplication&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
FApplication& operator = (const FApplication&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
void setExitMessage (std::string);
|
void setExitMessage (std::string);
|
||||||
|
@ -149,8 +152,10 @@ class FApplication : public FWidget
|
||||||
friend class FWindow;
|
friend class FWindow;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FApplication (int&, char**& ); // constructor
|
// Constructor
|
||||||
virtual ~FApplication(); // destructor
|
FApplication (int&, char**& );
|
||||||
|
// Destructor
|
||||||
|
virtual ~FApplication();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
int argc() const;
|
int argc() const;
|
||||||
|
|
|
@ -49,8 +49,11 @@ class FButton : public FWidget
|
||||||
short button_inactive_bg;
|
short button_inactive_bg;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FButton (const FButton&);
|
FButton (const FButton&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FButton& operator = (const FButton&);
|
FButton& operator = (const FButton&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
uChar getHotkey();
|
uChar getHotkey();
|
||||||
void setHotkeyAccelerator();
|
void setHotkeyAccelerator();
|
||||||
|
@ -61,9 +64,11 @@ class FButton : public FWidget
|
||||||
friend class FDialog;
|
friend class FDialog;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FButton (FWidget* = 0); // constructor
|
// Constructors
|
||||||
FButton (const FString&, FWidget* = 0); // constructor
|
explicit FButton (FWidget* = 0);
|
||||||
virtual ~FButton(); // destructor
|
FButton (const FString&, FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
virtual ~FButton();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
void setForegroundColor (short);
|
void setForegroundColor (short);
|
||||||
|
@ -75,6 +80,7 @@ class FButton : public FWidget
|
||||||
void setInactiveBackgroundColor (short);
|
void setInactiveBackgroundColor (short);
|
||||||
void hide();
|
void hide();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
|
@ -87,7 +93,6 @@ class FButton : public FWidget
|
||||||
bool setNoUnderline(bool);
|
bool setNoUnderline(bool);
|
||||||
bool setNoUnderline();
|
bool setNoUnderline();
|
||||||
bool unsetNoUnderline();
|
bool unsetNoUnderline();
|
||||||
|
|
||||||
bool setEnable(bool);
|
bool setEnable(bool);
|
||||||
bool setEnable();
|
bool setEnable();
|
||||||
bool unsetEnable();
|
bool unsetEnable();
|
||||||
|
|
|
@ -44,8 +44,11 @@ class FButtonGroup : public FWidget
|
||||||
FButtonGroup::FButtonList buttonlist;
|
FButtonGroup::FButtonList buttonlist;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FButtonGroup (const FButtonGroup&);
|
FButtonGroup (const FButtonGroup&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FButtonGroup& operator = (const FButtonGroup&);
|
FButtonGroup& operator = (const FButtonGroup&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
bool isRadioButton(FToggleButton*) const;
|
bool isRadioButton(FToggleButton*) const;
|
||||||
void directFocus();
|
void directFocus();
|
||||||
|
@ -57,17 +60,21 @@ class FButtonGroup : public FWidget
|
||||||
void drawLabel();
|
void drawLabel();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FButtonGroup (FWidget* = 0); // constructor
|
// Constructors
|
||||||
FButtonGroup (const FString&, FWidget* = 0); // constructor
|
explicit FButtonGroup (FWidget* = 0);
|
||||||
virtual ~FButtonGroup(); // destructor
|
FButtonGroup (const FString&, FWidget* = 0);
|
||||||
const char* getClassName() const;
|
// Destructor
|
||||||
|
virtual ~FButtonGroup();
|
||||||
|
|
||||||
|
const char* getClassName() const;
|
||||||
void hide();
|
void hide();
|
||||||
|
|
||||||
FToggleButton* getFirstButton();
|
FToggleButton* getFirstButton();
|
||||||
FToggleButton* getLastButton();
|
FToggleButton* getLastButton();
|
||||||
bool hasFocusedButton();
|
bool hasFocusedButton();
|
||||||
bool hasCheckedButton();
|
bool hasCheckedButton();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
void onFocusIn (FFocusEvent*);
|
void onFocusIn (FFocusEvent*);
|
||||||
|
@ -76,6 +83,7 @@ class FButtonGroup : public FWidget
|
||||||
void insert (FToggleButton*);
|
void insert (FToggleButton*);
|
||||||
void remove (FToggleButton*);
|
void remove (FToggleButton*);
|
||||||
|
|
||||||
|
// Callback method
|
||||||
void cb_buttonToggled (FWidget*, void*);
|
void cb_buttonToggled (FWidget*, void*);
|
||||||
|
|
||||||
bool setEnable(bool);
|
bool setEnable(bool);
|
||||||
|
|
|
@ -41,16 +41,22 @@
|
||||||
class FCheckBox : public FToggleButton
|
class FCheckBox : public FToggleButton
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FCheckBox (const FCheckBox&);
|
FCheckBox (const FCheckBox&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FCheckBox& operator = (const FCheckBox&);
|
FCheckBox& operator = (const FCheckBox&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
void draw();
|
void draw();
|
||||||
void drawCheckButton();
|
void drawCheckButton();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FCheckBox (FWidget* = 0); // constructor
|
// Constructors
|
||||||
FCheckBox (const FString&, FWidget* = 0); // constructor
|
explicit FCheckBox (FWidget* = 0);
|
||||||
virtual ~FCheckBox(); // destructor
|
FCheckBox (const FString&, FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
virtual ~FCheckBox();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
|
@ -41,18 +41,24 @@
|
||||||
class FCheckMenuItem : public FMenuItem
|
class FCheckMenuItem : public FMenuItem
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FCheckMenuItem (const FCheckMenuItem&);
|
FCheckMenuItem (const FCheckMenuItem&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FCheckMenuItem& operator = (const FCheckMenuItem&);
|
FCheckMenuItem& operator = (const FCheckMenuItem&);
|
||||||
|
|
||||||
void init (FWidget*);
|
void init (FWidget*);
|
||||||
void processToggle();
|
void processToggle();
|
||||||
void processClicked();
|
void processClicked();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// Constructor
|
||||||
explicit FCheckMenuItem (FWidget* = 0);
|
explicit FCheckMenuItem (FWidget* = 0);
|
||||||
FCheckMenuItem (FString&, FWidget* = 0);
|
FCheckMenuItem (FString&, FWidget* = 0);
|
||||||
FCheckMenuItem (const std::string&, FWidget* = 0);
|
FCheckMenuItem (const std::string&, FWidget* = 0);
|
||||||
FCheckMenuItem (const char*, FWidget* = 0);
|
FCheckMenuItem (const char*, FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
virtual ~FCheckMenuItem();
|
virtual ~FCheckMenuItem();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
150
src/fdialog.cpp
150
src/fdialog.cpp
|
@ -20,9 +20,10 @@ FDialog::FDialog(FWidget* parent)
|
||||||
, zoom_button_active(false)
|
, zoom_button_active(false)
|
||||||
, titlebar_click_pos()
|
, titlebar_click_pos()
|
||||||
, resize_click_pos()
|
, resize_click_pos()
|
||||||
, old_geometry()
|
, save_geometry()
|
||||||
, dialog_menu()
|
, dialog_menu()
|
||||||
, dgl_menuitem()
|
, dgl_menuitem()
|
||||||
|
, move_size_item()
|
||||||
, zoom_item()
|
, zoom_item()
|
||||||
, close_item()
|
, close_item()
|
||||||
{
|
{
|
||||||
|
@ -38,9 +39,10 @@ FDialog::FDialog (const FString& txt, FWidget* parent)
|
||||||
, zoom_button_active(false)
|
, zoom_button_active(false)
|
||||||
, titlebar_click_pos()
|
, titlebar_click_pos()
|
||||||
, resize_click_pos()
|
, resize_click_pos()
|
||||||
, old_geometry()
|
, save_geometry()
|
||||||
, dialog_menu()
|
, dialog_menu()
|
||||||
, dgl_menuitem()
|
, dgl_menuitem()
|
||||||
|
, move_size_item()
|
||||||
, zoom_item()
|
, zoom_item()
|
||||||
, close_item()
|
, close_item()
|
||||||
{
|
{
|
||||||
|
@ -133,6 +135,16 @@ void FDialog::init()
|
||||||
dgl_menuitem->unsetFocusable();
|
dgl_menuitem->unsetFocusable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
move_size_item = new FMenuItem (dialog_menu);
|
||||||
|
move_size_item->setText ("&Move/Size");
|
||||||
|
move_size_item->setStatusbarMessage ("Move or change the size of the window");
|
||||||
|
|
||||||
|
move_size_item->addCallback
|
||||||
|
(
|
||||||
|
"clicked",
|
||||||
|
_METHOD_CALLBACK (this, &FDialog::cb_move)
|
||||||
|
);
|
||||||
|
|
||||||
zoom_item = new FMenuItem (dialog_menu);
|
zoom_item = new FMenuItem (dialog_menu);
|
||||||
setZoomItem();
|
setZoomItem();
|
||||||
zoom_item->setDisable();
|
zoom_item->setDisable();
|
||||||
|
@ -161,10 +173,10 @@ void FDialog::drawBorder()
|
||||||
int y1 = 2;
|
int y1 = 2;
|
||||||
int y2 = 1 + getHeight() - 1;
|
int y2 = 1 + getHeight() - 1;
|
||||||
|
|
||||||
if ( resize_click_pos.isNull() || isZoomed() )
|
if ( (getMoveSizeMode() || ! resize_click_pos.isNull()) && ! isZoomed() )
|
||||||
setColor();
|
|
||||||
else
|
|
||||||
setColor (wc.dialog_resize_fg, getBackgroundColor());
|
setColor (wc.dialog_resize_fg, getBackgroundColor());
|
||||||
|
else
|
||||||
|
setColor();
|
||||||
|
|
||||||
if ( isNewFont() )
|
if ( isNewFont() )
|
||||||
{
|
{
|
||||||
|
@ -278,7 +290,7 @@ void FDialog::drawTitleBar()
|
||||||
else
|
else
|
||||||
setColor (wc.titlebar_inactive_fg, wc.titlebar_inactive_bg);
|
setColor (wc.titlebar_inactive_fg, wc.titlebar_inactive_bg);
|
||||||
|
|
||||||
if ( (flags & fc::resizeable) == 0 )
|
if ( ! isResizeable() )
|
||||||
zoom_btn = 0;
|
zoom_btn = 0;
|
||||||
else if ( isNewFont() )
|
else if ( isNewFont() )
|
||||||
zoom_btn = 2;
|
zoom_btn = 2;
|
||||||
|
@ -312,7 +324,7 @@ void FDialog::drawTitleBar()
|
||||||
unsetBold();
|
unsetBold();
|
||||||
|
|
||||||
// draw the zoom/unzoom button
|
// draw the zoom/unzoom button
|
||||||
if ( (flags & fc::resizeable) != 0 )
|
if ( isResizeable() )
|
||||||
{
|
{
|
||||||
if ( zoom_button_pressed )
|
if ( zoom_button_pressed )
|
||||||
setColor (wc.titlebar_button_focus_fg, wc.titlebar_button_focus_bg);
|
setColor (wc.titlebar_button_focus_fg, wc.titlebar_button_focus_bg);
|
||||||
|
@ -457,14 +469,35 @@ void FDialog::setZoomItem()
|
||||||
{
|
{
|
||||||
zoom_item->setText ("&Unzoom");
|
zoom_item->setText ("&Unzoom");
|
||||||
zoom_item->setStatusbarMessage ("Restore the window size");
|
zoom_item->setStatusbarMessage ("Restore the window size");
|
||||||
|
move_size_item->setDisable();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
zoom_item->setText ("&Zoom");
|
zoom_item->setText ("&Zoom");
|
||||||
zoom_item->setStatusbarMessage ("Enlarge the window to the entire desktop");
|
zoom_item->setStatusbarMessage ("Enlarge the window to the entire desktop");
|
||||||
|
move_size_item->setEnable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#include "fmessagebox.h"
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void FDialog::cb_move (FWidget*, void*)
|
||||||
|
{
|
||||||
|
if ( isZoomed() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
setMoveSizeMode(true);
|
||||||
|
save_geometry = getGeometry();
|
||||||
|
|
||||||
|
redraw();
|
||||||
|
|
||||||
|
// Tooltip
|
||||||
|
// ┌──────────────────────────┐
|
||||||
|
// │ Arrow keys: Move │
|
||||||
|
// │Meta + Arrow keys: Resize │
|
||||||
|
// │ Enter: Done │
|
||||||
|
// │ Esc: Cancel │
|
||||||
|
// └──────────────────────────┘
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FDialog::cb_zoom (FWidget*, void*)
|
void FDialog::cb_zoom (FWidget*, void*)
|
||||||
|
@ -584,7 +617,7 @@ void FDialog::onKeyPress (FKeyEvent* ev)
|
||||||
if ( ! isEnabled() )
|
if ( ! isEnabled() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// cancel resize
|
// cancel resize by mouse
|
||||||
if ( ! resize_click_pos.isNull() )
|
if ( ! resize_click_pos.isNull() )
|
||||||
{
|
{
|
||||||
resize_click_pos.setPoint (0,0);
|
resize_click_pos.setPoint (0,0);
|
||||||
|
@ -601,6 +634,90 @@ void FDialog::onKeyPress (FKeyEvent* ev)
|
||||||
selectFirstMenuItem();
|
selectFirstMenuItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( getMoveSizeMode() )
|
||||||
|
{
|
||||||
|
switch ( ev->key() )
|
||||||
|
{
|
||||||
|
case fc::Fkey_up:
|
||||||
|
move (getX(), getY() - 1);
|
||||||
|
redraw();
|
||||||
|
ev->accept();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case fc::Fkey_down:
|
||||||
|
move (getX(), getY() + 1);
|
||||||
|
redraw();
|
||||||
|
ev->accept();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case fc::Fkey_left:
|
||||||
|
move (getX() - 1, getY());
|
||||||
|
redraw();
|
||||||
|
ev->accept();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case fc::Fkey_right:
|
||||||
|
move (getX() + 1, getY());
|
||||||
|
redraw();
|
||||||
|
ev->accept();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case fc::Fmkey_up:
|
||||||
|
if ( isResizeable() )
|
||||||
|
{
|
||||||
|
setSize (getWidth(), getHeight() - 1);
|
||||||
|
ev->accept();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case fc::Fmkey_down:
|
||||||
|
if ( isResizeable() && getHeight() + getY() <= getMaxHeight() )
|
||||||
|
{
|
||||||
|
setSize (getWidth(), getHeight() + 1);
|
||||||
|
ev->accept();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case fc::Fmkey_left:
|
||||||
|
if ( isResizeable() )
|
||||||
|
{
|
||||||
|
setSize (getWidth() - 1, getHeight());
|
||||||
|
ev->accept();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case fc::Fmkey_right:
|
||||||
|
if ( isResizeable() && getWidth() + getX() <= getMaxWidth() )
|
||||||
|
{
|
||||||
|
setSize (getWidth() + 1, getHeight());
|
||||||
|
ev->accept();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case fc::Fkey_return:
|
||||||
|
case fc::Fkey_enter:
|
||||||
|
setMoveSizeMode(false);
|
||||||
|
redraw();
|
||||||
|
ev->accept();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case fc::Fkey_escape:
|
||||||
|
case fc::Fkey_escape_mintty:
|
||||||
|
setMoveSizeMode(false);
|
||||||
|
move (save_geometry.getPos());
|
||||||
|
|
||||||
|
if ( isResizeable() )
|
||||||
|
setSize (save_geometry.getWidth(), save_geometry.getHeight());
|
||||||
|
|
||||||
|
redraw();
|
||||||
|
ev->accept();
|
||||||
|
return;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( this == getMainWidget() )
|
if ( this == getMainWidget() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -621,9 +738,9 @@ void FDialog::onMouseDown (FMouseEvent* ev)
|
||||||
{
|
{
|
||||||
int mouse_x = ev->getX();
|
int mouse_x = ev->getX();
|
||||||
int mouse_y = ev->getY();
|
int mouse_y = ev->getY();
|
||||||
int zoom_btn;
|
int zoom_btn;;
|
||||||
|
|
||||||
if ( (flags & fc::resizeable) == 0 )
|
if ( ! isResizeable() )
|
||||||
zoom_btn = 0;
|
zoom_btn = 0;
|
||||||
else if ( isNewFont() )
|
else if ( isNewFont() )
|
||||||
zoom_btn = 2;
|
zoom_btn = 2;
|
||||||
|
@ -732,7 +849,7 @@ void FDialog::onMouseUp (FMouseEvent* ev)
|
||||||
{
|
{
|
||||||
int zoom_btn;
|
int zoom_btn;
|
||||||
|
|
||||||
if ( (flags & fc::resizeable) == 0 )
|
if ( ! isResizeable() )
|
||||||
zoom_btn = 0;
|
zoom_btn = 0;
|
||||||
else if ( isNewFont() )
|
else if ( isNewFont() )
|
||||||
zoom_btn = 2;
|
zoom_btn = 2;
|
||||||
|
@ -831,7 +948,7 @@ void FDialog::onMouseMove (FMouseEvent* ev)
|
||||||
{
|
{
|
||||||
int zoom_btn;
|
int zoom_btn;
|
||||||
|
|
||||||
if ( (flags & fc::resizeable) == 0 )
|
if ( ! isResizeable() )
|
||||||
zoom_btn = 0;
|
zoom_btn = 0;
|
||||||
else if ( isNewFont() )
|
else if ( isNewFont() )
|
||||||
zoom_btn = 2;
|
zoom_btn = 2;
|
||||||
|
@ -916,16 +1033,14 @@ void FDialog::onMouseMove (FMouseEvent* ev)
|
||||||
void FDialog::onMouseDoubleClick (FMouseEvent* ev)
|
void FDialog::onMouseDoubleClick (FMouseEvent* ev)
|
||||||
{
|
{
|
||||||
int x, y, mouse_x, mouse_y, zoom_btn;
|
int x, y, mouse_x, mouse_y, zoom_btn;
|
||||||
bool is_resizeable;
|
|
||||||
|
|
||||||
if ( ev->getButton() != fc::LeftButton )
|
if ( ev->getButton() != fc::LeftButton )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mouse_x = ev->getX();
|
mouse_x = ev->getX();
|
||||||
mouse_y = ev->getY();
|
mouse_y = ev->getY();
|
||||||
is_resizeable = bool(flags & fc::resizeable);
|
|
||||||
|
|
||||||
if ( ! is_resizeable )
|
if ( ! isResizeable() )
|
||||||
zoom_btn = 0;
|
zoom_btn = 0;
|
||||||
else if ( isNewFont() )
|
else if ( isNewFont() )
|
||||||
zoom_btn = 2;
|
zoom_btn = 2;
|
||||||
|
@ -957,7 +1072,7 @@ void FDialog::onMouseDoubleClick (FMouseEvent* ev)
|
||||||
else
|
else
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
else if ( is_resizeable
|
else if ( isResizeable()
|
||||||
&& mouse_x >= 4
|
&& mouse_x >= 4
|
||||||
&& mouse_x <= getWidth() - zoom_btn
|
&& mouse_x <= getWidth() - zoom_btn
|
||||||
&& mouse_y == 1 )
|
&& mouse_y == 1 )
|
||||||
|
@ -1122,6 +1237,7 @@ void FDialog::move (const FPoint& pos)
|
||||||
void FDialog::move (int x, int y)
|
void FDialog::move (int x, int y)
|
||||||
{
|
{
|
||||||
int dx, dy, old_x, old_y, rsw, bsh, width, height;
|
int dx, dy, old_x, old_y, rsw, bsh, width, height;
|
||||||
|
FRect old_geometry;
|
||||||
|
|
||||||
if ( getX() == x && getY() == y )
|
if ( getX() == x && getY() == y )
|
||||||
return;
|
return;
|
||||||
|
@ -1130,7 +1246,7 @@ void FDialog::move (int x, int y)
|
||||||
height = getHeight();
|
height = getHeight();
|
||||||
|
|
||||||
// Avoid to move widget completely outside the terminal
|
// Avoid to move widget completely outside the terminal
|
||||||
if ( x+width < 1 || x > getColumnNumber() || y < 1 || y > getLineNumber() )
|
if ( x+width-1 < 1 || x > getMaxWidth() || y < 1 || y > getMaxHeight() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ( isZoomed() )
|
if ( isZoomed() )
|
||||||
|
|
|
@ -56,15 +56,19 @@ class FDialog : public FWindow
|
||||||
bool zoom_button_active;
|
bool zoom_button_active;
|
||||||
FPoint titlebar_click_pos;
|
FPoint titlebar_click_pos;
|
||||||
FPoint resize_click_pos;
|
FPoint resize_click_pos;
|
||||||
FRect old_geometry; // required by move()
|
FRect save_geometry; // required by move/size by keyboard
|
||||||
FMenu* dialog_menu;
|
FMenu* dialog_menu;
|
||||||
FMenuItem* dgl_menuitem;
|
FMenuItem* dgl_menuitem;
|
||||||
|
FMenuItem* move_size_item;
|
||||||
FMenuItem* zoom_item;
|
FMenuItem* zoom_item;
|
||||||
FMenuItem* close_item;
|
FMenuItem* close_item;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FDialog (const FDialog&);
|
FDialog (const FDialog&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FDialog& operator = (const FDialog&);
|
FDialog& operator = (const FDialog&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
// make every drawBorder from FWidget available
|
// make every drawBorder from FWidget available
|
||||||
using FWidget::drawBorder;
|
using FWidget::drawBorder;
|
||||||
|
@ -74,8 +78,12 @@ class FDialog : public FWindow
|
||||||
void openMenu();
|
void openMenu();
|
||||||
void selectFirstMenuItem();
|
void selectFirstMenuItem();
|
||||||
void setZoomItem();
|
void setZoomItem();
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
|
void cb_move (FWidget*, void*);
|
||||||
void cb_zoom (FWidget*, void*);
|
void cb_zoom (FWidget*, void*);
|
||||||
void cb_close (FWidget*, void*);
|
void cb_close (FWidget*, void*);
|
||||||
|
|
||||||
static void addDialog (FWidget*);
|
static void addDialog (FWidget*);
|
||||||
static void delDialog (FWidget*);
|
static void delDialog (FWidget*);
|
||||||
|
|
||||||
|
@ -87,11 +95,15 @@ class FDialog : public FWindow
|
||||||
virtual void onClose (FCloseEvent*);
|
virtual void onClose (FCloseEvent*);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FDialog (FWidget* = 0); // constructor
|
// Constructors
|
||||||
FDialog (const FString&, FWidget* = 0); // constructor
|
explicit FDialog (FWidget* = 0);
|
||||||
virtual ~FDialog(); // destructor
|
FDialog (const FString&, FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
virtual ~FDialog();
|
||||||
|
|
||||||
virtual const char* getClassName() const;
|
virtual const char* getClassName() const;
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
|
@ -102,6 +114,7 @@ class FDialog : public FWindow
|
||||||
void onWindowInactive (FEvent*);
|
void onWindowInactive (FEvent*);
|
||||||
void onWindowRaised (FEvent*);
|
void onWindowRaised (FEvent*);
|
||||||
void onWindowLowered (FEvent*);
|
void onWindowLowered (FEvent*);
|
||||||
|
|
||||||
void activateDialog();
|
void activateDialog();
|
||||||
void drawDialogShadow();
|
void drawDialogShadow();
|
||||||
void show();
|
void show();
|
||||||
|
|
|
@ -48,16 +48,22 @@
|
||||||
class FDialogListMenu : public FMenu
|
class FDialogListMenu : public FMenu
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FDialogListMenu (const FDialogListMenu&);
|
FDialogListMenu (const FDialogListMenu&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FDialogListMenu& operator = (const FDialogListMenu&);
|
FDialogListMenu& operator = (const FDialogListMenu&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FDialogListMenu (FWidget* = 0); // constructor
|
// Constructors
|
||||||
|
explicit FDialogListMenu (FWidget* = 0);
|
||||||
FDialogListMenu (FString&, FWidget* = 0);
|
FDialogListMenu (FString&, FWidget* = 0);
|
||||||
FDialogListMenu (const std::string&, FWidget* = 0);
|
FDialogListMenu (const std::string&, FWidget* = 0);
|
||||||
FDialogListMenu (const char*, FWidget* = 0);
|
FDialogListMenu (const char*, FWidget* = 0);
|
||||||
virtual ~FDialogListMenu(); // destructor
|
// Destructor
|
||||||
|
virtual ~FDialogListMenu();
|
||||||
|
|
||||||
virtual const char* getClassName() const;
|
virtual const char* getClassName() const;
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
|
@ -204,8 +204,10 @@ class FFocusEvent : public FEvent // focus event
|
||||||
class FAccelEvent : public FEvent // focus event
|
class FAccelEvent : public FEvent // focus event
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
FAccelEvent (const FAccelEvent&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
FAccelEvent& operator = (const FAccelEvent&); // and operator '='
|
FAccelEvent (const FAccelEvent&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
FAccelEvent& operator = (const FAccelEvent&);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FAccelEvent (int, void*);
|
FAccelEvent (int, void*);
|
||||||
|
|
|
@ -78,6 +78,7 @@ class FFileDialog : public FDialog
|
||||||
Open = 0,
|
Open = 0,
|
||||||
Save = 1
|
Save = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DIR* directory_stream;
|
DIR* directory_stream;
|
||||||
std::vector<dir_entry> dir_entries;
|
std::vector<dir_entry> dir_entries;
|
||||||
|
@ -100,6 +101,8 @@ class FFileDialog : public FDialog
|
||||||
int numOfDirs();
|
int numOfDirs();
|
||||||
int changeDir (const FString&);
|
int changeDir (const FString&);
|
||||||
void printPath (const FString&);
|
void printPath (const FString&);
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_processActivate (FWidget*, void*);
|
void cb_processActivate (FWidget*, void*);
|
||||||
void cb_processRowChanged (FWidget*, void*);
|
void cb_processRowChanged (FWidget*, void*);
|
||||||
void cb_processClicked (FWidget*, void*);
|
void cb_processClicked (FWidget*, void*);
|
||||||
|
@ -111,16 +114,22 @@ class FFileDialog : public FDialog
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// Constructors
|
||||||
explicit FFileDialog (FWidget* = 0);
|
explicit FFileDialog (FWidget* = 0);
|
||||||
FFileDialog (const FFileDialog&); // copy constructor
|
FFileDialog (const FFileDialog&); // copy constructor
|
||||||
FFileDialog ( const FString&
|
FFileDialog ( const FString&
|
||||||
, const FString&
|
, const FString&
|
||||||
, DialogType = FFileDialog::Open
|
, DialogType = FFileDialog::Open
|
||||||
, FWidget* = 0 );
|
, FWidget* = 0 );
|
||||||
|
// Destructor
|
||||||
~FFileDialog();
|
~FFileDialog();
|
||||||
FFileDialog& operator = (const FFileDialog&); // assignment
|
|
||||||
|
// Assignment operator (=)
|
||||||
|
FFileDialog& operator = (const FFileDialog&);
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
|
|
||||||
|
// Event handler
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
|
|
||||||
const FString getPath() const;
|
const FString getPath() const;
|
||||||
|
|
17
src/flabel.h
17
src/flabel.h
|
@ -47,7 +47,9 @@ class FLabel : public FWidget
|
||||||
FWidget* accel_widget;
|
FWidget* accel_widget;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FLabel (const FLabel&);
|
FLabel (const FLabel&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FLabel& operator = (const FLabel&);
|
FLabel& operator = (const FLabel&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
@ -59,15 +61,22 @@ class FLabel : public FWidget
|
||||||
void draw();
|
void draw();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FLabel (FWidget* = 0); // constructor
|
// Constructor
|
||||||
FLabel (const FString&, FWidget* = 0); // constructor
|
explicit FLabel (FWidget* = 0);
|
||||||
virtual ~FLabel(); // destructor
|
FLabel (const FString&, FWidget* = 0);
|
||||||
const char* getClassName() const;
|
// Destructor
|
||||||
|
virtual ~FLabel();
|
||||||
|
|
||||||
|
const char* getClassName() const;
|
||||||
void hide();
|
void hide();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
|
|
||||||
|
// Callback method
|
||||||
void cb_accel_widget_destroyed (FWidget*, void*);
|
void cb_accel_widget_destroyed (FWidget*, void*);
|
||||||
|
|
||||||
void setAccelWidget (FWidget* = 0);
|
void setAccelWidget (FWidget* = 0);
|
||||||
FTerm* getAccelWidget();
|
FTerm* getAccelWidget();
|
||||||
void setAlignment(uInt);
|
void setAlignment(uInt);
|
||||||
|
|
|
@ -64,8 +64,11 @@ class FLineEdit : public FWidget
|
||||||
label_o label_orientation;
|
label_o label_orientation;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FLineEdit (const FLineEdit&);
|
FLineEdit (const FLineEdit&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FLineEdit& operator = (const FLineEdit&);
|
FLineEdit& operator = (const FLineEdit&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
bool hasHotkey();
|
bool hasHotkey();
|
||||||
void draw();
|
void draw();
|
||||||
|
@ -78,11 +81,13 @@ class FLineEdit : public FWidget
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FLineEdit (FWidget* = 0); // constructor
|
// Constructor
|
||||||
FLineEdit (const FString&, FWidget* = 0); // constructor
|
explicit FLineEdit (FWidget* = 0);
|
||||||
virtual ~FLineEdit(); // destructor
|
FLineEdit (const FString&, FWidget* = 0);
|
||||||
const char* getClassName() const;
|
// Destructor
|
||||||
|
virtual ~FLineEdit();
|
||||||
|
|
||||||
|
const char* getClassName() const;
|
||||||
void hide();
|
void hide();
|
||||||
|
|
||||||
bool setEnable(bool);
|
bool setEnable(bool);
|
||||||
|
@ -97,6 +102,7 @@ class FLineEdit : public FWidget
|
||||||
bool unsetShadow();
|
bool unsetShadow();
|
||||||
bool hasShadow();
|
bool hasShadow();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
|
|
|
@ -45,11 +45,14 @@ class FListBoxItem
|
||||||
bool selected;
|
bool selected;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// Constructors
|
||||||
FListBoxItem ();
|
FListBoxItem ();
|
||||||
explicit FListBoxItem (FString&);
|
explicit FListBoxItem (FString&);
|
||||||
explicit FListBoxItem (const std::string&);
|
explicit FListBoxItem (const std::string&);
|
||||||
explicit FListBoxItem (const char*);
|
explicit FListBoxItem (const char*);
|
||||||
|
// Destructor
|
||||||
virtual ~FListBoxItem();
|
virtual ~FListBoxItem();
|
||||||
|
|
||||||
virtual FString getText() const;
|
virtual FString getText() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -120,8 +123,11 @@ class FListBox : public FWidget
|
||||||
int max_line_width;
|
int max_line_width;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FListBox (const FListBox&);
|
FListBox (const FListBox&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FListBox& operator = (const FListBox&);
|
FListBox& operator = (const FListBox&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
void draw();
|
void draw();
|
||||||
void drawLabel();
|
void drawLabel();
|
||||||
|
@ -135,12 +141,15 @@ class FListBox : public FWidget
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FListBox (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~FListBox(); // destructor
|
explicit FListBox (FWidget* = 0);
|
||||||
const char* getClassName() const;
|
// Destructor
|
||||||
|
~FListBox();
|
||||||
|
|
||||||
|
const char* getClassName() const;
|
||||||
void hide();
|
void hide();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
|
@ -151,18 +160,20 @@ class FListBox : public FWidget
|
||||||
void onFocusIn (FFocusEvent*);
|
void onFocusIn (FFocusEvent*);
|
||||||
void onFocusOut (FFocusEvent*);
|
void onFocusOut (FFocusEvent*);
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_VBarChange (FWidget*, void*);
|
void cb_VBarChange (FWidget*, void*);
|
||||||
void cb_HBarChange (FWidget*, void*);
|
void cb_HBarChange (FWidget*, void*);
|
||||||
|
|
||||||
uInt count() const;
|
uInt count() const;
|
||||||
FListBoxItem Item(int) const;
|
FListBoxItem Item (int) const;
|
||||||
int currentItem() const;
|
int currentItem() const;
|
||||||
void setCurrentItem(int);
|
void setCurrentItem (int);
|
||||||
void selectItem(int);
|
void selectItem (int);
|
||||||
void unselectItem(int);
|
void unselectItem (int);
|
||||||
bool isSelected(int) const;
|
bool isSelected (int) const;
|
||||||
void showInsideBrackets(int, fc::brackets_type);
|
void showInsideBrackets (int, fc::brackets_type);
|
||||||
void showNoBrackets(int);
|
void showNoBrackets (int);
|
||||||
bool hasBrackets(int) const;
|
bool hasBrackets (int) const;
|
||||||
// make every setGeometry from FWidget available
|
// make every setGeometry from FWidget available
|
||||||
using FWidget::setGeometry;
|
using FWidget::setGeometry;
|
||||||
void setGeometry (int, int, int, int, bool = true);
|
void setGeometry (int, int, int, int, bool = true);
|
||||||
|
@ -171,11 +182,11 @@ class FListBox : public FWidget
|
||||||
void setMultiSelection ();
|
void setMultiSelection ();
|
||||||
void unsetMultiSelection ();
|
void unsetMultiSelection ();
|
||||||
bool isMultiSelection() const;
|
bool isMultiSelection() const;
|
||||||
bool setEnable(bool);
|
bool setEnable (bool);
|
||||||
bool setEnable();
|
bool setEnable();
|
||||||
bool unsetEnable();
|
bool unsetEnable();
|
||||||
bool setDisable();
|
bool setDisable();
|
||||||
bool setFocus(bool);
|
bool setFocus (bool);
|
||||||
bool setFocus();
|
bool setFocus();
|
||||||
bool unsetFocus();
|
bool unsetFocus();
|
||||||
|
|
||||||
|
|
14
src/fmenu.h
14
src/fmenu.h
|
@ -54,8 +54,11 @@ class FMenu : public FWindow, public FMenuList
|
||||||
bool has_checkable_items;
|
bool has_checkable_items;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FMenu (const FMenu&);
|
FMenu (const FMenu&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FMenu& operator = (const FMenu&);
|
FMenu& operator = (const FMenu&);
|
||||||
|
|
||||||
void init(FWidget*);
|
void init(FWidget*);
|
||||||
void calculateDimensions();
|
void calculateDimensions();
|
||||||
void adjustItems();
|
void adjustItems();
|
||||||
|
@ -89,18 +92,23 @@ class FMenu : public FWindow, public FMenuList
|
||||||
void processActivate();
|
void processActivate();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FMenu (FWidget* = 0); // constructor
|
// Constructor
|
||||||
|
explicit FMenu (FWidget* = 0);
|
||||||
FMenu (FString&, FWidget* = 0);
|
FMenu (FString&, FWidget* = 0);
|
||||||
FMenu (const std::string&, FWidget* = 0);
|
FMenu (const std::string&, FWidget* = 0);
|
||||||
FMenu (const char*, FWidget* = 0);
|
FMenu (const char*, FWidget* = 0);
|
||||||
virtual ~FMenu(); // destructor
|
// Destructor
|
||||||
|
virtual ~FMenu();
|
||||||
|
|
||||||
virtual const char* getClassName() const;
|
virtual const char* getClassName() const;
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
void onMouseMove (FMouseEvent*);
|
void onMouseMove (FMouseEvent*);
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
|
|
||||||
void show();
|
void show();
|
||||||
void hide();
|
void hide();
|
||||||
// make every setGeometry from FWidget available
|
// make every setGeometry from FWidget available
|
||||||
|
@ -130,6 +138,8 @@ class FMenu : public FWindow, public FMenuList
|
||||||
void setText (FString&);
|
void setText (FString&);
|
||||||
void setText (const std::string&);
|
void setText (const std::string&);
|
||||||
void setText (const char*);
|
void setText (const char*);
|
||||||
|
|
||||||
|
// Callback method
|
||||||
void cb_menuitem_toggled (FWidget*, void*);
|
void cb_menuitem_toggled (FWidget*, void*);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -49,8 +49,11 @@ class FMenuBar : public FWindow, public FMenuList
|
||||||
bool drop_down;
|
bool drop_down;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FMenuBar (const FMenuBar&);
|
FMenuBar (const FMenuBar&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FMenuBar& operator = (const FMenuBar&);
|
FMenuBar& operator = (const FMenuBar&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
void calculateDimensions();
|
void calculateDimensions();
|
||||||
bool isMenu (FMenuItem*) const;
|
bool isMenu (FMenuItem*) const;
|
||||||
|
@ -64,18 +67,25 @@ class FMenuBar : public FWindow, public FMenuList
|
||||||
void leaveMenuBar();
|
void leaveMenuBar();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FMenuBar (FWidget* = 0); // constructor
|
// Constructor
|
||||||
virtual ~FMenuBar(); // destructor
|
explicit FMenuBar (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
virtual ~FMenuBar();
|
||||||
|
|
||||||
virtual const char* getClassName() const;
|
virtual const char* getClassName() const;
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
void onMouseMove (FMouseEvent*);
|
void onMouseMove (FMouseEvent*);
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
|
|
||||||
void hide();
|
void hide();
|
||||||
void resetMenu();
|
void resetMenu();
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_item_deactivated (FWidget*, void*);
|
void cb_item_deactivated (FWidget*, void*);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -58,15 +58,21 @@ class FMenuItem : public FWidget
|
||||||
FDialog* associated_window;
|
FDialog* associated_window;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FMenuItem (const FMenuItem&);
|
FMenuItem (const FMenuItem&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FMenuItem& operator = (const FMenuItem&);
|
FMenuItem& operator = (const FMenuItem&);
|
||||||
|
|
||||||
void init (FWidget*);
|
void init (FWidget*);
|
||||||
uChar hotKey();
|
uChar hotKey();
|
||||||
void processActivate();
|
void processActivate();
|
||||||
void processDeactivate();
|
void processDeactivate();
|
||||||
void createDialogList (FMenu*);
|
void createDialogList (FMenu*);
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_switchToDialog (FWidget*, void*);
|
void cb_switchToDialog (FWidget*, void*);
|
||||||
void cb_destroyDialog (FWidget*, void*);
|
void cb_destroyDialog (FWidget*, void*);
|
||||||
|
|
||||||
virtual void processClicked();
|
virtual void processClicked();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -77,6 +83,7 @@ class FMenuItem : public FWidget
|
||||||
void setSuperMenu (FWidget*);
|
void setSuperMenu (FWidget*);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// Constructor
|
||||||
explicit FMenuItem (FWidget* = 0);
|
explicit FMenuItem (FWidget* = 0);
|
||||||
FMenuItem (FString&, FWidget* = 0);
|
FMenuItem (FString&, FWidget* = 0);
|
||||||
FMenuItem (const std::string&, FWidget* = 0);
|
FMenuItem (const std::string&, FWidget* = 0);
|
||||||
|
@ -84,7 +91,9 @@ class FMenuItem : public FWidget
|
||||||
FMenuItem (int, FString&, FWidget* = 0);
|
FMenuItem (int, FString&, FWidget* = 0);
|
||||||
FMenuItem (int, const std::string&, FWidget* = 0);
|
FMenuItem (int, const std::string&, FWidget* = 0);
|
||||||
FMenuItem (int, const char*, FWidget* = 0);
|
FMenuItem (int, const char*, FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
virtual ~FMenuItem();
|
virtual ~FMenuItem();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
|
|
||||||
// make every addAccelerator from FWidget available
|
// make every addAccelerator from FWidget available
|
||||||
|
@ -93,6 +102,8 @@ class FMenuItem : public FWidget
|
||||||
// make every delAccelerator from FWidget available
|
// make every delAccelerator from FWidget available
|
||||||
using FWidget::delAccelerator;
|
using FWidget::delAccelerator;
|
||||||
void delAccelerator (FWidget*);
|
void delAccelerator (FWidget*);
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onMouseDoubleClick (FMouseEvent*);
|
void onMouseDoubleClick (FMouseEvent*);
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
|
|
|
@ -37,14 +37,18 @@ class FMenuList
|
||||||
std::vector<FMenuItem*> item_list;
|
std::vector<FMenuItem*> item_list;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FMenuList (const FMenuList&);
|
FMenuList (const FMenuList&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FMenuList& operator = (const FMenuList&);
|
FMenuList& operator = (const FMenuList&);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// Constructor
|
||||||
explicit FMenuList();
|
explicit FMenuList();
|
||||||
|
// Destructor
|
||||||
virtual ~FMenuList();
|
virtual ~FMenuList();
|
||||||
virtual const char* getClassName() const;
|
|
||||||
|
|
||||||
|
virtual const char* getClassName() const;
|
||||||
uInt count() const;
|
uInt count() const;
|
||||||
FMenuItem* item (int) const;
|
FMenuItem* item (int) const;
|
||||||
void enableItem (int);
|
void enableItem (int);
|
||||||
|
@ -55,7 +59,6 @@ class FMenuList
|
||||||
FMenuItem* getSelectedItem() const;
|
FMenuItem* getSelectedItem() const;
|
||||||
void setSelectedItem (FMenuItem*);
|
void setSelectedItem (FMenuItem*);
|
||||||
bool hasSelectedItem() const;
|
bool hasSelectedItem() const;
|
||||||
|
|
||||||
virtual void insert (FMenuItem*);
|
virtual void insert (FMenuItem*);
|
||||||
virtual void remove (FMenuItem*);
|
virtual void remove (FMenuItem*);
|
||||||
void remove (int);
|
void remove (int);
|
||||||
|
|
|
@ -84,18 +84,24 @@ class FMessageBox : public FDialog
|
||||||
virtual void draw();
|
virtual void draw();
|
||||||
void resizeButtons();
|
void resizeButtons();
|
||||||
void adjustButtons();
|
void adjustButtons();
|
||||||
|
|
||||||
|
// Callback method
|
||||||
void cb_processClick (FWidget*, void*);
|
void cb_processClick (FWidget*, void*);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// Constructors
|
||||||
explicit FMessageBox (FWidget* = 0);
|
explicit FMessageBox (FWidget* = 0);
|
||||||
FMessageBox (const FMessageBox&); // copy constructor
|
FMessageBox (const FMessageBox&); // copy constructor
|
||||||
FMessageBox ( const FString&, const FString&
|
FMessageBox ( const FString&, const FString&
|
||||||
, int, int, int
|
, int, int, int
|
||||||
, FWidget* = 0 );
|
, FWidget* = 0 );
|
||||||
|
// Destructor
|
||||||
~FMessageBox();
|
~FMessageBox();
|
||||||
FMessageBox& operator = (const FMessageBox&); // assignment
|
|
||||||
const char* getClassName() const;
|
|
||||||
|
|
||||||
|
// Assignment operator (=)
|
||||||
|
FMessageBox& operator = (const FMessageBox&);
|
||||||
|
|
||||||
|
const char* getClassName() const;
|
||||||
const FString getTitlebarText() const;
|
const FString getTitlebarText() const;
|
||||||
void setTitlebarText (const FString&);
|
void setTitlebarText (const FString&);
|
||||||
|
|
||||||
|
|
|
@ -69,8 +69,11 @@ class FObject
|
||||||
friend class FApplication;
|
friend class FApplication;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// Constructor
|
||||||
explicit FObject (FObject* = 0);
|
explicit FObject (FObject* = 0);
|
||||||
|
// Destructor
|
||||||
virtual ~FObject();
|
virtual ~FObject();
|
||||||
|
|
||||||
virtual const char* getClassName() const;
|
virtual const char* getClassName() const;
|
||||||
|
|
||||||
FObject* getParent() const;
|
FObject* getParent() const;
|
||||||
|
@ -81,18 +84,23 @@ class FObject
|
||||||
void addChild (FObject*);
|
void addChild (FObject*);
|
||||||
void delChild (FObject*);
|
void delChild (FObject*);
|
||||||
int numOfChildren() const;
|
int numOfChildren() const;
|
||||||
|
// Timer methods
|
||||||
static void getCurrentTime (timeval&);
|
static void getCurrentTime (timeval&);
|
||||||
int addTimer (int);
|
int addTimer (int);
|
||||||
bool delTimer (int);
|
bool delTimer (int);
|
||||||
bool delOwnTimer();
|
bool delOwnTimer();
|
||||||
bool delAllTimer();
|
bool delAllTimer();
|
||||||
|
// Event handler
|
||||||
virtual bool event (FEvent*);
|
virtual bool event (FEvent*);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
// Event handler
|
||||||
virtual void onTimer (FTimerEvent*);
|
virtual void onTimer (FTimerEvent*);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FObject (const FObject&);
|
FObject (const FObject&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FObject& operator = (const FObject&);
|
FObject& operator = (const FObject&);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -131,8 +131,11 @@ class FOptiAttr
|
||||||
char_data off;
|
char_data off;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FOptiAttr (const FOptiAttr&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
FOptiAttr& operator = (const FOptiAttr&); // and operator '='
|
FOptiAttr (const FOptiAttr&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
FOptiAttr& operator = (const FOptiAttr&);
|
||||||
|
|
||||||
bool hasColor (char_data*&);
|
bool hasColor (char_data*&);
|
||||||
bool colorChange (char_data*&, char_data*&);
|
bool colorChange (char_data*&, char_data*&);
|
||||||
void resetColor (char_data*&);
|
void resetColor (char_data*&);
|
||||||
|
@ -183,8 +186,10 @@ class FOptiAttr
|
||||||
bool setTermDefaultColor (char_data*&);
|
bool setTermDefaultColor (char_data*&);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FOptiAttr(); // constructor
|
// Constructor
|
||||||
~FOptiAttr(); // destructor
|
explicit FOptiAttr();
|
||||||
|
// Destructor
|
||||||
|
~FOptiAttr();
|
||||||
|
|
||||||
static short vga2ansi (register short);
|
static short vga2ansi (register short);
|
||||||
|
|
||||||
|
|
|
@ -85,8 +85,10 @@ class FOptiMove
|
||||||
bool isWideMove (int, int, int, int);
|
bool isWideMove (int, int, int, int);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FOptiMove (int = 0); // constructor
|
// Constructor
|
||||||
~FOptiMove(); // destructor
|
explicit FOptiMove (int = 0);
|
||||||
|
// Destructor
|
||||||
|
~FOptiMove();
|
||||||
|
|
||||||
void setBaudRate (int);
|
void setBaudRate (int);
|
||||||
void setTabStop (int);
|
void setTabStop (int);
|
||||||
|
|
|
@ -25,9 +25,12 @@ class FPoint
|
||||||
short ypos;
|
short ypos;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FPoint (); // constructor
|
// Constructors
|
||||||
FPoint (int, int); // constructor
|
FPoint ();
|
||||||
virtual ~FPoint(); // destructor
|
FPoint (int, int);
|
||||||
|
// Destructor
|
||||||
|
virtual ~FPoint();
|
||||||
|
|
||||||
virtual const char* getClassName();
|
virtual const char* getClassName();
|
||||||
|
|
||||||
bool isNull() const;
|
bool isNull() const;
|
||||||
|
|
|
@ -47,10 +47,12 @@ class FProgressbar : public FWidget
|
||||||
virtual void draw();
|
virtual void draw();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FProgressbar(FWidget* = 0); // constructor
|
// Constructor
|
||||||
|
explicit FProgressbar(FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
virtual ~FProgressbar();
|
virtual ~FProgressbar();
|
||||||
const char* getClassName() const;
|
|
||||||
|
|
||||||
|
const char* getClassName() const;
|
||||||
void hide();
|
void hide();
|
||||||
|
|
||||||
int getPercentage();
|
int getPercentage();
|
||||||
|
|
|
@ -41,16 +41,22 @@
|
||||||
class FRadioButton : public FToggleButton
|
class FRadioButton : public FToggleButton
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FRadioButton (const FRadioButton&);
|
FRadioButton (const FRadioButton&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FRadioButton& operator = (const FRadioButton&);
|
FRadioButton& operator = (const FRadioButton&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
void draw();
|
void draw();
|
||||||
void drawRadioButton();
|
void drawRadioButton();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FRadioButton (FWidget* = 0); // constructor
|
// Constructors
|
||||||
FRadioButton (const FString&, FWidget* = 0); // constructor
|
explicit FRadioButton (FWidget* = 0);
|
||||||
virtual ~FRadioButton(); // destructor
|
FRadioButton (const FString&, FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
virtual ~FRadioButton();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
|
@ -41,18 +41,24 @@
|
||||||
class FRadioMenuItem : public FMenuItem
|
class FRadioMenuItem : public FMenuItem
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FRadioMenuItem (const FRadioMenuItem&);
|
FRadioMenuItem (const FRadioMenuItem&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FRadioMenuItem& operator = (const FRadioMenuItem&);
|
FRadioMenuItem& operator = (const FRadioMenuItem&);
|
||||||
|
|
||||||
void init (FWidget*);
|
void init (FWidget*);
|
||||||
void processToggle();
|
void processToggle();
|
||||||
void processClicked();
|
void processClicked();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// Constructor
|
||||||
explicit FRadioMenuItem (FWidget* = 0);
|
explicit FRadioMenuItem (FWidget* = 0);
|
||||||
FRadioMenuItem (FString&, FWidget* = 0);
|
FRadioMenuItem (FString&, FWidget* = 0);
|
||||||
FRadioMenuItem (const std::string&, FWidget* = 0);
|
FRadioMenuItem (const std::string&, FWidget* = 0);
|
||||||
FRadioMenuItem (const char*, FWidget* = 0);
|
FRadioMenuItem (const char*, FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
virtual ~FRadioMenuItem();
|
virtual ~FRadioMenuItem();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
11
src/frect.h
11
src/frect.h
|
@ -31,10 +31,13 @@ class FRect
|
||||||
short Y2;
|
short Y2;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FRect (); // constructor
|
// Constructors
|
||||||
FRect (int, int, int, int); // constructor
|
FRect ();
|
||||||
FRect (const FPoint&, const FPoint&); // constructor
|
FRect (int, int, int, int);
|
||||||
virtual ~FRect(); // destructor
|
FRect (const FPoint&, const FPoint&);
|
||||||
|
// Destructor
|
||||||
|
virtual ~FRect();
|
||||||
|
|
||||||
virtual const char* getClassName();
|
virtual const char* getClassName();
|
||||||
|
|
||||||
bool isNull() const;
|
bool isNull() const;
|
||||||
|
|
|
@ -69,7 +69,9 @@ class FScrollbar : public FWidget
|
||||||
int max_color;
|
int max_color;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FScrollbar (const FScrollbar&);
|
FScrollbar (const FScrollbar&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FScrollbar& operator = (const FScrollbar&);
|
FScrollbar& operator = (const FScrollbar&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
@ -79,11 +81,15 @@ class FScrollbar : public FWidget
|
||||||
void processScroll();
|
void processScroll();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FScrollbar(FWidget* = 0); // constructor
|
// Constructors
|
||||||
FScrollbar (int = fc::vertical, FWidget* = 0); // constructor
|
explicit FScrollbar(FWidget* = 0);
|
||||||
|
FScrollbar (int = fc::vertical, FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
virtual ~FScrollbar();
|
virtual ~FScrollbar();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
void onMouseMove (FMouseEvent*);
|
void onMouseMove (FMouseEvent*);
|
||||||
|
|
|
@ -358,6 +358,30 @@ void FStatusBar::drawKeys()
|
||||||
|
|
||||||
// public methods of FStatusBar
|
// public methods of FStatusBar
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
void FStatusBar::hide()
|
||||||
|
{
|
||||||
|
int screenWidth;
|
||||||
|
short fg, bg;
|
||||||
|
char* blank;
|
||||||
|
|
||||||
|
FWindow::hide();
|
||||||
|
fg = wc.term_fg;
|
||||||
|
bg = wc.term_bg;
|
||||||
|
setColor (fg, bg);
|
||||||
|
screenWidth = getColumnNumber();
|
||||||
|
|
||||||
|
if ( screenWidth < 0 )
|
||||||
|
return;
|
||||||
|
|
||||||
|
blank = new char[screenWidth+1];
|
||||||
|
memset(blank, ' ', uLong(screenWidth));
|
||||||
|
blank[screenWidth] = '\0';
|
||||||
|
printPos (1, 1);
|
||||||
|
print (vstatusbar, blank);
|
||||||
|
delete[] blank;
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
void FStatusBar::onMouseDown (FMouseEvent* ev)
|
void FStatusBar::onMouseDown (FMouseEvent* ev)
|
||||||
{
|
{
|
||||||
if ( hasActivatedKey() )
|
if ( hasActivatedKey() )
|
||||||
|
@ -527,30 +551,6 @@ void FStatusBar::onMouseMove (FMouseEvent* ev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
void FStatusBar::hide()
|
|
||||||
{
|
|
||||||
int screenWidth;
|
|
||||||
short fg, bg;
|
|
||||||
char* blank;
|
|
||||||
|
|
||||||
FWindow::hide();
|
|
||||||
fg = wc.term_fg;
|
|
||||||
bg = wc.term_bg;
|
|
||||||
setColor (fg, bg);
|
|
||||||
screenWidth = getColumnNumber();
|
|
||||||
|
|
||||||
if ( screenWidth < 0 )
|
|
||||||
return;
|
|
||||||
|
|
||||||
blank = new char[screenWidth+1];
|
|
||||||
memset(blank, ' ', uLong(screenWidth));
|
|
||||||
blank[screenWidth] = '\0';
|
|
||||||
printPos (1, 1);
|
|
||||||
print (vstatusbar, blank);
|
|
||||||
delete[] blank;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
bool FStatusBar::hasActivatedKey()
|
bool FStatusBar::hasActivatedKey()
|
||||||
{
|
{
|
||||||
|
|
|
@ -53,21 +53,28 @@ class FStatusKey : public FWidget
|
||||||
FStatusBar* bar;
|
FStatusBar* bar;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FStatusKey (const FStatusKey&);
|
FStatusKey (const FStatusKey&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FStatusKey& operator = (const FStatusKey&);
|
FStatusKey& operator = (const FStatusKey&);
|
||||||
|
|
||||||
void init (FWidget*);
|
void init (FWidget*);
|
||||||
void processActivate();
|
void processActivate();
|
||||||
FStatusBar* statusbar() const;
|
FStatusBar* statusbar() const;
|
||||||
void setStatusbar (FStatusBar*);
|
void setStatusbar (FStatusBar*);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// Constructors
|
||||||
explicit FStatusKey (FWidget* = 0);
|
explicit FStatusKey (FWidget* = 0);
|
||||||
FStatusKey (int, FString&, FWidget* = 0);
|
FStatusKey (int, FString&, FWidget* = 0);
|
||||||
FStatusKey (int, const std::string&, FWidget* = 0);
|
FStatusKey (int, const std::string&, FWidget* = 0);
|
||||||
FStatusKey (int, const char*, FWidget* = 0);
|
FStatusKey (int, const char*, FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
virtual ~FStatusKey();
|
virtual ~FStatusKey();
|
||||||
|
|
||||||
|
// Event handler
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
|
|
||||||
void setActive();
|
void setActive();
|
||||||
void unsetActive();
|
void unsetActive();
|
||||||
bool isActivated() const;
|
bool isActivated() const;
|
||||||
|
@ -153,21 +160,28 @@ class FStatusBar : public FWindow
|
||||||
int x_msg;
|
int x_msg;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FStatusBar (const FStatusBar&);
|
FStatusBar (const FStatusBar&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FStatusBar& operator = (const FStatusBar&);
|
FStatusBar& operator = (const FStatusBar&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
void draw();
|
void draw();
|
||||||
void drawKeys();
|
void drawKeys();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FStatusBar (FWidget* = 0); // constructor
|
// Constructor
|
||||||
virtual ~FStatusBar(); // destructor
|
explicit FStatusBar (FWidget* = 0);
|
||||||
virtual const char* getClassName() const;
|
// Destructor
|
||||||
|
virtual ~FStatusBar();
|
||||||
|
|
||||||
|
virtual const char* getClassName() const;
|
||||||
|
void hide();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
void onMouseMove (FMouseEvent*);
|
void onMouseMove (FMouseEvent*);
|
||||||
void hide();
|
|
||||||
|
|
||||||
uInt count() const;
|
uInt count() const;
|
||||||
FStatusKey* key (int) const;
|
FStatusKey* key (int) const;
|
||||||
|
@ -189,6 +203,8 @@ class FStatusBar : public FWindow
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
|
// Callback method
|
||||||
void cb_statuskey_activated (FWidget*, void*);
|
void cb_statuskey_activated (FWidget*, void*);
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
|
@ -82,13 +82,14 @@ class FString
|
||||||
wchar_t* extractToken (wchar_t**, const wchar_t*, const wchar_t*);
|
wchar_t* extractToken (wchar_t**, const wchar_t*, const wchar_t*);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FString (); // constructor
|
// Constructors
|
||||||
explicit FString (int); // constructor
|
FString ();
|
||||||
explicit FString (uInt); // constructor
|
explicit FString (int);
|
||||||
FString (int, wchar_t); // constructor
|
explicit FString (uInt);
|
||||||
FString (uInt, wchar_t); // constructor
|
FString (int, wchar_t);
|
||||||
FString (int, char); // constructor
|
FString (uInt, wchar_t);
|
||||||
FString (uInt, char); // constructor
|
FString (int, char);
|
||||||
|
FString (uInt, char);
|
||||||
FString (const FString&); // implicit conversion constructor
|
FString (const FString&); // implicit conversion constructor
|
||||||
FString (const std::wstring&); // implicit conversion constructor
|
FString (const std::wstring&); // implicit conversion constructor
|
||||||
FString (const wchar_t*); // implicit conversion constructor
|
FString (const wchar_t*); // implicit conversion constructor
|
||||||
|
@ -96,7 +97,8 @@ class FString
|
||||||
FString (const char*); // implicit conversion constructor
|
FString (const char*); // implicit conversion constructor
|
||||||
FString (const wchar_t); // implicit conversion constructor
|
FString (const wchar_t); // implicit conversion constructor
|
||||||
FString (const char); // implicit conversion constructor
|
FString (const char); // implicit conversion constructor
|
||||||
virtual ~FString (); // destructor
|
// Destructor
|
||||||
|
virtual ~FString ();
|
||||||
|
|
||||||
bool isNull() const;
|
bool isNull() const;
|
||||||
bool isEmpty() const;
|
bool isEmpty() const;
|
||||||
|
|
|
@ -45,20 +45,28 @@ class FSwitch : public FToggleButton
|
||||||
bool button_pressed;
|
bool button_pressed;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FSwitch (const FSwitch&);
|
FSwitch (const FSwitch&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FSwitch& operator = (const FSwitch&);
|
FSwitch& operator = (const FSwitch&);
|
||||||
|
|
||||||
void draw();
|
void draw();
|
||||||
void drawCheckButton();
|
void drawCheckButton();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FSwitch (FWidget* = 0); // constructor
|
// Constructors
|
||||||
FSwitch (const FString&, FWidget* = 0); // constructor
|
explicit FSwitch (FWidget* = 0);
|
||||||
virtual ~FSwitch(); // destructor
|
FSwitch (const FString&, FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
virtual ~FSwitch();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
|
void setText (FString);
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
void setText (FString);
|
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
|
|
@ -248,7 +248,9 @@ class FTerm
|
||||||
term_area* vwin; // virtual window
|
term_area* vwin; // virtual window
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FTerm (const FTerm&);
|
FTerm (const FTerm&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FTerm& operator = (const FTerm&);
|
FTerm& operator = (const FTerm&);
|
||||||
|
|
||||||
static void outb_Attribute_Controller (int, int);
|
static void outb_Attribute_Controller (int, int);
|
||||||
|
@ -309,8 +311,10 @@ class FTerm
|
||||||
FOptiAttr::char_data getOverlappedCharacter (int, int, FTerm*);
|
FOptiAttr::char_data getOverlappedCharacter (int, int, FTerm*);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FTerm (); // constructor
|
// Constructor
|
||||||
virtual ~FTerm(); // destructor
|
FTerm ();
|
||||||
|
// Destructor
|
||||||
|
virtual ~FTerm();
|
||||||
|
|
||||||
virtual const char* getClassName() const;
|
virtual const char* getClassName() const;
|
||||||
FTerm::term_area* getVWin() const;
|
FTerm::term_area* getVWin() const;
|
||||||
|
|
|
@ -50,13 +50,17 @@ class FTextView : public FWidget
|
||||||
uInt maxLineWidth;
|
uInt maxLineWidth;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FTextView (const FTextView&);
|
FTextView (const FTextView&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FTextView& operator = (const FTextView&);
|
FTextView& operator = (const FTextView&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
void draw();
|
void draw();
|
||||||
void drawText();
|
void drawText();
|
||||||
void processChanged();
|
void processChanged();
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_VBarChange (FWidget*, void*);
|
void cb_VBarChange (FWidget*, void*);
|
||||||
void cb_HBarChange (FWidget*, void*);
|
void cb_HBarChange (FWidget*, void*);
|
||||||
|
|
||||||
|
@ -64,12 +68,15 @@ class FTextView : public FWidget
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FTextView (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~FTextView(); // destructor
|
explicit FTextView (FWidget* = 0);
|
||||||
const char* getClassName() const;
|
// Destructor
|
||||||
|
~FTextView();
|
||||||
|
|
||||||
|
const char* getClassName() const;
|
||||||
void hide();
|
void hide();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
|
@ -77,6 +84,7 @@ class FTextView : public FWidget
|
||||||
void onWheel (FWheelEvent*);
|
void onWheel (FWheelEvent*);
|
||||||
void onFocusIn (FFocusEvent*);
|
void onFocusIn (FFocusEvent*);
|
||||||
void onFocusOut (FFocusEvent*);
|
void onFocusOut (FFocusEvent*);
|
||||||
|
|
||||||
// make every setGeometry from FWidget available
|
// make every setGeometry from FWidget available
|
||||||
using FWidget::setGeometry;
|
using FWidget::setGeometry;
|
||||||
void setGeometry (int, int, int, int, bool = true);
|
void setGeometry (int, int, int, int, bool = true);
|
||||||
|
|
|
@ -48,8 +48,11 @@ class FToggleButton : public FWidget
|
||||||
FButtonGroup* button_group;
|
FButtonGroup* button_group;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FToggleButton (const FToggleButton&);
|
FToggleButton (const FToggleButton&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FToggleButton& operator = (const FToggleButton&);
|
FToggleButton& operator = (const FToggleButton&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
friend class FButtonGroup;
|
friend class FButtonGroup;
|
||||||
void setGroup (FButtonGroup*);
|
void setGroup (FButtonGroup*);
|
||||||
|
@ -67,16 +70,19 @@ class FToggleButton : public FWidget
|
||||||
virtual void onKeyPress (FKeyEvent*);
|
virtual void onKeyPress (FKeyEvent*);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FToggleButton (FWidget* = 0); // constructor
|
// Constructors
|
||||||
FToggleButton (const FString&, FWidget* = 0); // constructor
|
explicit FToggleButton (FWidget* = 0);
|
||||||
virtual ~FToggleButton(); // destructor
|
FToggleButton (const FString&, FWidget* = 0);
|
||||||
virtual const char* getClassName() const;
|
// Destructor
|
||||||
|
virtual ~FToggleButton();
|
||||||
|
|
||||||
|
virtual const char* getClassName() const;
|
||||||
void hide();
|
void hide();
|
||||||
// make every setGeometry from FWidget available
|
// make every setGeometry from FWidget available
|
||||||
using FWidget::setGeometry;
|
using FWidget::setGeometry;
|
||||||
void setGeometry (int, int, int, int, bool = true);
|
void setGeometry (int, int, int, int, bool = true);
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onMouseDown (FMouseEvent*);
|
void onMouseDown (FMouseEvent*);
|
||||||
void onMouseUp (FMouseEvent*);
|
void onMouseUp (FMouseEvent*);
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
|
@ -87,7 +93,6 @@ class FToggleButton : public FWidget
|
||||||
bool setNoUnderline (bool);
|
bool setNoUnderline (bool);
|
||||||
bool setNoUnderline();
|
bool setNoUnderline();
|
||||||
bool unsetNoUnderline();
|
bool unsetNoUnderline();
|
||||||
|
|
||||||
bool setEnable (bool);
|
bool setEnable (bool);
|
||||||
bool setEnable();
|
bool setEnable();
|
||||||
bool unsetEnable();
|
bool unsetEnable();
|
||||||
|
|
|
@ -967,6 +967,18 @@ void FWidget::setOpenMenu(FWidget* obj)
|
||||||
FApplication::open_menu = obj;
|
FApplication::open_menu = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
bool FWidget::getMoveSizeMode()
|
||||||
|
{
|
||||||
|
return FApplication::move_size_mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void FWidget::setMoveSizeMode (bool on)
|
||||||
|
{
|
||||||
|
FApplication::move_size_mode = on;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
int FWidget::numOfFocusableChildren()
|
int FWidget::numOfFocusableChildren()
|
||||||
{
|
{
|
||||||
|
@ -1918,7 +1930,7 @@ void FWidget::move (int x, int y)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Avoid to move widget completely outside the terminal
|
// Avoid to move widget completely outside the terminal
|
||||||
if ( x+getWidth() < 1 || x > term->getWidth() || y < 1 || y > term->getHeight() )
|
if ( x+getWidth()-1 < 1 || x > getMaxWidth() || y < 1 || y > getMaxHeight() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wsize.setPos(x,y);
|
wsize.setPos(x,y);
|
||||||
|
|
|
@ -311,8 +311,11 @@ class FWidget : public FObject, public FTerm
|
||||||
friend class FToggleButton;
|
friend class FToggleButton;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FWidget (const FWidget&);
|
FWidget (const FWidget&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FWidget& operator = (const FWidget&);
|
FWidget& operator = (const FWidget&);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
void finish();
|
void finish();
|
||||||
void processDestroy();
|
void processDestroy();
|
||||||
|
@ -348,8 +351,10 @@ class FWidget : public FObject, public FTerm
|
||||||
virtual bool focusPrevChild();
|
virtual bool focusPrevChild();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FWidget (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~FWidget(); // destructor
|
explicit FWidget (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~FWidget();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
FWidget* getRootWidget() const;
|
FWidget* getRootWidget() const;
|
||||||
|
@ -363,6 +368,8 @@ class FWidget : public FObject, public FTerm
|
||||||
static void setClickedWidget(FWidget*);
|
static void setClickedWidget(FWidget*);
|
||||||
static FWidget* getOpenMenu();
|
static FWidget* getOpenMenu();
|
||||||
static void setOpenMenu(FWidget*);
|
static void setOpenMenu(FWidget*);
|
||||||
|
static bool getMoveSizeMode();
|
||||||
|
static void setMoveSizeMode (bool);
|
||||||
int numOfFocusableChildren();
|
int numOfFocusableChildren();
|
||||||
FWidget* getParentWidget() const;
|
FWidget* getParentWidget() const;
|
||||||
bool isRootWidget() const;
|
bool isRootWidget() const;
|
||||||
|
|
|
@ -53,7 +53,9 @@ class FWindow : public FWidget
|
||||||
static FWindow* previous_widget;
|
static FWindow* previous_widget;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Disable copy constructor
|
||||||
FWindow (const FWindow&);
|
FWindow (const FWindow&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
FWindow& operator = (const FWindow&);
|
FWindow& operator = (const FWindow&);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -63,11 +65,14 @@ class FWindow : public FWidget
|
||||||
virtual void onWindowInactive (FEvent*);
|
virtual void onWindowInactive (FEvent*);
|
||||||
virtual void onWindowRaised (FEvent*);
|
virtual void onWindowRaised (FEvent*);
|
||||||
virtual void onWindowLowered (FEvent*);
|
virtual void onWindowLowered (FEvent*);
|
||||||
|
|
||||||
virtual void adjustSize();
|
virtual void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FWindow (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~FWindow (); // destructor
|
explicit FWindow (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~FWindow ();
|
||||||
|
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
virtual void show();
|
virtual void show();
|
||||||
|
|
|
@ -25,11 +25,16 @@ const lDouble PI = 3.141592653589793238L;
|
||||||
|
|
||||||
class Button : public FButton
|
class Button : public FButton
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
bool checked;
|
bool checked;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Button (FWidget* = 0); // constructor
|
// Constructor
|
||||||
|
explicit Button (FWidget* = 0);
|
||||||
|
|
||||||
void setChecked(bool);
|
void setChecked(bool);
|
||||||
|
|
||||||
|
// Event handler
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
@ -159,11 +164,17 @@ class Calc : public FDialog
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Calc (FWidget* parent=0); // constructor
|
// Constructor
|
||||||
~Calc(); // destructor
|
explicit Calc (FWidget* parent=0);
|
||||||
|
// Destructor
|
||||||
|
~Calc();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
void onClose (FCloseEvent*);
|
void onClose (FCloseEvent*);
|
||||||
|
|
||||||
|
// Callback method
|
||||||
void cb_buttonClicked (FWidget*, void*);
|
void cb_buttonClicked (FWidget*, void*);
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
|
@ -9,10 +9,14 @@
|
||||||
class keyboard : public FWidget
|
class keyboard : public FWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
// Constructor
|
||||||
explicit keyboard (FWidget* = 0);
|
explicit keyboard (FWidget* = 0);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*);
|
void onKeyPress (FKeyEvent*);
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
|
|
||||||
void draw();
|
void draw();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,12 @@ class Mandelbrot : public FDialog
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Mandelbrot (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~Mandelbrot(); // destructor
|
explicit Mandelbrot (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~Mandelbrot();
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
void onClose (FCloseEvent*);
|
void onClose (FCloseEvent*);
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,17 +21,27 @@
|
||||||
class Menu : public FDialog
|
class Menu : public FDialog
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
Menu (const Menu&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
Menu& operator = (const Menu&); // and operator '='
|
Menu (const Menu&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
Menu& operator = (const Menu&);
|
||||||
|
|
||||||
void defaultCallback (FMenuList*);
|
void defaultCallback (FMenuList*);
|
||||||
|
|
||||||
|
// Event handler
|
||||||
void onClose (FCloseEvent*);
|
void onClose (FCloseEvent*);
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_message (FWidget*, void*);
|
void cb_message (FWidget*, void*);
|
||||||
void cb_exitApp (FWidget*, void*);
|
void cb_exitApp (FWidget*, void*);
|
||||||
|
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Menu (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~Menu(); // destructor
|
explicit Menu (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~Menu();
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
|
|
@ -22,16 +22,25 @@ class AttribDlg : public FDialog
|
||||||
short bgcolor;
|
short bgcolor;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AttribDlg (const AttribDlg&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
AttribDlg& operator = (const AttribDlg&); // and operator '='
|
AttribDlg (const AttribDlg&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
AttribDlg& operator = (const AttribDlg&);
|
||||||
|
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit AttribDlg (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~AttribDlg(); // destructor
|
explicit AttribDlg (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~AttribDlg();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
void onWheel (FWheelEvent*);
|
void onWheel (FWheelEvent*);
|
||||||
void onClose (FCloseEvent*);
|
void onClose (FCloseEvent*);
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_next (FWidget* = 0, void* = 0);
|
void cb_next (FWidget* = 0, void* = 0);
|
||||||
void cb_back (FWidget* = 0, void* = 0);
|
void cb_back (FWidget* = 0, void* = 0);
|
||||||
};
|
};
|
||||||
|
@ -173,9 +182,13 @@ class AttribDemo : public FWidget
|
||||||
void draw();
|
void draw();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit AttribDemo (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~AttribDemo() // destructor
|
explicit AttribDemo (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~AttribDemo()
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
// Event handler
|
||||||
void onWheel (FWheelEvent* ev)
|
void onWheel (FWheelEvent* ev)
|
||||||
{
|
{
|
||||||
AttribDlg* p = dynamic_cast<AttribDlg*>(getParentWidget());
|
AttribDlg* p = dynamic_cast<AttribDlg*>(getParentWidget());
|
||||||
|
|
|
@ -9,10 +9,14 @@
|
||||||
class timer : public FWidget
|
class timer : public FWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
// Constructor
|
||||||
explicit timer (FWidget* = 0);
|
explicit timer (FWidget* = 0);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
// Event handlers
|
||||||
void onTimer (FTimerEvent*);
|
void onTimer (FTimerEvent*);
|
||||||
void onAccel (FAccelEvent*);
|
void onAccel (FAccelEvent*);
|
||||||
|
|
||||||
void draw();
|
void draw();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -29,14 +29,21 @@ class Transparent : public FDialog
|
||||||
trans_type type;
|
trans_type type;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Transparent (const Transparent&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
Transparent& operator = (const Transparent&); // and operator '='
|
Transparent (const Transparent&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
Transparent& operator = (const Transparent&);
|
||||||
|
|
||||||
void draw();
|
void draw();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent* ev);
|
void onKeyPress (FKeyEvent* ev);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Transparent (FWidget* = 0, trans_type = transparent); // constructor
|
// Constructor
|
||||||
~Transparent(); // destructor
|
explicit Transparent (FWidget* = 0, trans_type = transparent);
|
||||||
|
// Destructor
|
||||||
|
~Transparent();
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
@ -122,9 +129,14 @@ class MainWindow : public FDialog
|
||||||
FString line2;
|
FString line2;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MainWindow (const MainWindow&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
MainWindow& operator = (const MainWindow&); // and operator '='
|
MainWindow (const MainWindow&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
MainWindow& operator = (const MainWindow&);
|
||||||
|
|
||||||
void draw();
|
void draw();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onClose (FCloseEvent*);
|
void onClose (FCloseEvent*);
|
||||||
void onShow (FShowEvent*);
|
void onShow (FShowEvent*);
|
||||||
void onTimer (FTimerEvent*);
|
void onTimer (FTimerEvent*);
|
||||||
|
@ -138,8 +150,10 @@ class MainWindow : public FDialog
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit MainWindow (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~MainWindow(); // destructor
|
explicit MainWindow (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~MainWindow();
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
|
44
test/ui.cpp
44
test/ui.cpp
|
@ -22,18 +22,25 @@ class ProgressDialog : public FDialog
|
||||||
FButton* quit;
|
FButton* quit;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ProgressDialog (const ProgressDialog&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
ProgressDialog& operator = (const ProgressDialog&); // and operator '='
|
ProgressDialog (const ProgressDialog&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
ProgressDialog& operator = (const ProgressDialog&);
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onShow (FShowEvent*);
|
void onShow (FShowEvent*);
|
||||||
void onTimer (FTimerEvent*);
|
void onTimer (FTimerEvent*);
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_reset_bar (FWidget*, void*);
|
void cb_reset_bar (FWidget*, void*);
|
||||||
void cb_more_bar (FWidget*, void*);
|
void cb_more_bar (FWidget*, void*);
|
||||||
void cb_exit_bar (FWidget*, void*);
|
void cb_exit_bar (FWidget*, void*);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ProgressDialog (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~ProgressDialog(); // destructor
|
explicit ProgressDialog (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~ProgressDialog();
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
@ -167,13 +174,18 @@ class TextWindow : public FDialog
|
||||||
FTextView* scrollText;
|
FTextView* scrollText;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TextWindow (const TextWindow&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
TextWindow& operator = (const TextWindow&); // and operator '='
|
TextWindow (const TextWindow&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
TextWindow& operator = (const TextWindow&);
|
||||||
|
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TextWindow (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~TextWindow(); // destructor
|
explicit TextWindow (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~TextWindow();
|
||||||
|
|
||||||
void append (const FString&);
|
void append (const FString&);
|
||||||
};
|
};
|
||||||
|
@ -232,10 +244,15 @@ class MyDialog : public FDialog
|
||||||
FString clipboard;
|
FString clipboard;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MyDialog (const MyDialog&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
MyDialog& operator = (const MyDialog&); // and operator '='
|
MyDialog (const MyDialog&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
MyDialog& operator = (const MyDialog&);
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onClose (FCloseEvent*);
|
void onClose (FCloseEvent*);
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_noFunctionMsg (FWidget*, void*);
|
void cb_noFunctionMsg (FWidget*, void*);
|
||||||
void cb_about (FWidget*, void*);
|
void cb_about (FWidget*, void*);
|
||||||
void cb_terminfo (FWidget*, void*);
|
void cb_terminfo (FWidget*, void*);
|
||||||
|
@ -252,11 +269,14 @@ class MyDialog : public FDialog
|
||||||
void cb_view (FWidget*, void*);
|
void cb_view (FWidget*, void*);
|
||||||
void cb_setInput (FWidget*, void*);
|
void cb_setInput (FWidget*, void*);
|
||||||
void cb_exitApp (FWidget*, void*);
|
void cb_exitApp (FWidget*, void*);
|
||||||
|
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit MyDialog (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~MyDialog(); // destructor
|
explicit MyDialog (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~MyDialog();
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
|
|
@ -27,15 +27,24 @@ class watch : public FDialog
|
||||||
FSwitch* seconds_sw;
|
FSwitch* seconds_sw;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
watch (const watch&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
watch& operator = (const watch&); // and operator '='
|
watch (const watch&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
watch& operator = (const watch&);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit watch (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~watch(); // destructor
|
explicit watch (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~watch();
|
||||||
|
|
||||||
void printTime();
|
void printTime();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onTimer (FTimerEvent*);
|
void onTimer (FTimerEvent*);
|
||||||
void onClose (FCloseEvent*);
|
void onClose (FCloseEvent*);
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_clock (FWidget*, void*);
|
void cb_clock (FWidget*, void*);
|
||||||
void cb_seconds (FWidget*, void*);
|
void cb_seconds (FWidget*, void*);
|
||||||
void cb_exitApp (FWidget*, void*);
|
void cb_exitApp (FWidget*, void*);
|
||||||
|
|
|
@ -27,15 +27,22 @@ class smallWindow : public FDialog
|
||||||
FLabel* bottom_label;
|
FLabel* bottom_label;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
smallWindow (const smallWindow&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
smallWindow& operator = (const smallWindow&); // and operator '='
|
smallWindow (const smallWindow&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
smallWindow& operator = (const smallWindow&);
|
||||||
|
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onShow (FShowEvent*);
|
void onShow (FShowEvent*);
|
||||||
void onTimer (FTimerEvent*);
|
void onTimer (FTimerEvent*);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit smallWindow (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~smallWindow(); // destructor
|
explicit smallWindow (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~smallWindow();
|
||||||
|
|
||||||
void append (const FString&);
|
void append (const FString&);
|
||||||
};
|
};
|
||||||
|
@ -50,13 +57,26 @@ smallWindow::smallWindow (FWidget* parent)
|
||||||
, top_right_label()
|
, top_right_label()
|
||||||
, bottom_label()
|
, bottom_label()
|
||||||
{
|
{
|
||||||
left_arrow = new FLabel ("\u25b2", this);
|
wchar_t arrow_up, arrow_down;
|
||||||
|
|
||||||
|
if ( isCygwinTerminal() )
|
||||||
|
{
|
||||||
|
arrow_up = L'^';
|
||||||
|
arrow_down = L'v';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
arrow_up = fc::BlackUpPointingTriangle;
|
||||||
|
arrow_down = fc::BlackDownPointingTriangle;
|
||||||
|
}
|
||||||
|
|
||||||
|
left_arrow = new FLabel (arrow_up, this);
|
||||||
left_arrow->setForegroundColor (wc.label_inactive_fg);
|
left_arrow->setForegroundColor (wc.label_inactive_fg);
|
||||||
left_arrow->setEmphasis();
|
left_arrow->setEmphasis();
|
||||||
left_arrow->ignorePadding();
|
left_arrow->ignorePadding();
|
||||||
left_arrow->setGeometry (2, 2, 1, 1);
|
left_arrow->setGeometry (2, 2, 1, 1);
|
||||||
|
|
||||||
right_arrow = new FLabel ("\u25b2", this);
|
right_arrow = new FLabel (arrow_up, this);
|
||||||
right_arrow->setForegroundColor (wc.label_inactive_fg);
|
right_arrow->setForegroundColor (wc.label_inactive_fg);
|
||||||
right_arrow->setEmphasis();
|
right_arrow->setEmphasis();
|
||||||
right_arrow->ignorePadding();
|
right_arrow->ignorePadding();
|
||||||
|
@ -76,8 +96,8 @@ smallWindow::smallWindow (FWidget* parent)
|
||||||
top_right_label->setGeometry (getClientWidth() - 5, 1, 6, 1);
|
top_right_label->setGeometry (getClientWidth() - 5, 1, 6, 1);
|
||||||
|
|
||||||
FString bottom_label_text = "resize\n"
|
FString bottom_label_text = "resize\n"
|
||||||
"corner\n"
|
"corner\n";
|
||||||
"\u25bc";
|
bottom_label_text += arrow_down;
|
||||||
bottom_label = new FLabel (bottom_label_text, this);
|
bottom_label = new FLabel (bottom_label_text, this);
|
||||||
bottom_label->setAlignment (fc::alignRight);
|
bottom_label->setAlignment (fc::alignRight);
|
||||||
bottom_label->setForegroundColor (wc.label_inactive_fg);
|
bottom_label->setForegroundColor (wc.label_inactive_fg);
|
||||||
|
@ -155,21 +175,31 @@ class Window : public FDialog
|
||||||
std::vector<win_data*> windows;
|
std::vector<win_data*> windows;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Window (const Window&); // Disabled copy constructor
|
// Disable copy constructor
|
||||||
Window& operator = (const Window&); // and operator '='
|
Window (const Window&);
|
||||||
|
// Disable assignment operator (=)
|
||||||
|
Window& operator = (const Window&);
|
||||||
|
|
||||||
void activateWindow (FDialog*);
|
void activateWindow (FDialog*);
|
||||||
|
|
||||||
|
// Event handlers
|
||||||
void onClose (FCloseEvent*);
|
void onClose (FCloseEvent*);
|
||||||
|
|
||||||
|
// Callback methods
|
||||||
void cb_createWindows (FWidget*, void*);
|
void cb_createWindows (FWidget*, void*);
|
||||||
void cb_closeWindows (FWidget*, void*);
|
void cb_closeWindows (FWidget*, void*);
|
||||||
void cb_next (FWidget*, void*);
|
void cb_next (FWidget*, void*);
|
||||||
void cb_previous (FWidget*, void*);
|
void cb_previous (FWidget*, void*);
|
||||||
void cb_exitApp (FWidget*, void*);
|
void cb_exitApp (FWidget*, void*);
|
||||||
void cb_destroyWindow (FWidget*, void*);
|
void cb_destroyWindow (FWidget*, void*);
|
||||||
|
|
||||||
void adjustSize();
|
void adjustSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Window (FWidget* = 0); // constructor
|
// Constructor
|
||||||
~Window(); // destructor
|
explicit Window (FWidget* = 0);
|
||||||
|
// Destructor
|
||||||
|
~Window();
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
@ -489,6 +519,7 @@ void Window::cb_exitApp (FWidget*, void*)
|
||||||
void Window::cb_destroyWindow (FWidget*, void* data_ptr)
|
void Window::cb_destroyWindow (FWidget*, void* data_ptr)
|
||||||
{
|
{
|
||||||
win_data* win_dat = static_cast<win_data*>(data_ptr);
|
win_data* win_dat = static_cast<win_data*>(data_ptr);
|
||||||
|
|
||||||
if ( win_dat )
|
if ( win_dat )
|
||||||
win_dat->is_open = false;
|
win_dat->is_open = false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue