commit
a881b471f3
|
@ -0,0 +1,13 @@
|
|||
extraction:
|
||||
cpp:
|
||||
prepare:
|
||||
packages:
|
||||
- autoconf-archive
|
||||
configure:
|
||||
command:
|
||||
- autoreconf -v --install --force
|
||||
- ./configure --prefix=/usr CPPFLAGS="-DDEBUG" CXXFLAGS="-g -O0 -DDEBUG -W -Wall -pedantic"
|
||||
index:
|
||||
build_command:
|
||||
- make V=1 -j10
|
||||
|
|
@ -18,6 +18,9 @@ addons:
|
|||
- libgpm-dev
|
||||
- gperf
|
||||
- libcppunit-dev
|
||||
homebrew:
|
||||
packages:
|
||||
- autoconf-archive
|
||||
|
||||
env:
|
||||
global:
|
||||
|
@ -56,7 +59,7 @@ matrix:
|
|||
- lsb_release -a
|
||||
- uname -a
|
||||
- whoami
|
||||
- sudo apt-get install gpm libgpm-dev libcppunit-dev
|
||||
- sudo apt-get install gpm libgpm-dev libcppunit-dev autoconf-archive
|
||||
script:
|
||||
- autoreconf -v --install --force
|
||||
- ./configure --prefix=/usr CPPFLAGS="-DDEBUG" CXXFLAGS="-g -O0 -DDEBUG" --with-unit-test
|
||||
|
@ -85,9 +88,8 @@ matrix:
|
|||
- os: osx
|
||||
env:
|
||||
- TEST="macOS"
|
||||
before_install:
|
||||
- uname -a
|
||||
script:
|
||||
- uname -a
|
||||
- autoreconf -v --install --force
|
||||
- ./configure --prefix=/usr
|
||||
- make -j10
|
||||
|
|
19
ChangeLog
19
ChangeLog
|
@ -1,3 +1,22 @@
|
|||
2018-12-09 Markus Gans <guru.mail@muenster.de>
|
||||
* Better handling of the scrollbar maximum
|
||||
* Deactivate copy constructor and assignment operator with "= delete"
|
||||
* Use nullptr instead of 0 to initialize a pointer values
|
||||
|
||||
2018-12-06 Markus Gans <guru.mail@muenster.de>
|
||||
* Easier handling of fc::SpecialCharacter
|
||||
|
||||
2018-12-01 Markus Gans <guru.mail@muenster.de>
|
||||
* Switched to the language standard C++11
|
||||
* Use delegated constructors and in-class default member initializers
|
||||
|
||||
2018-12-01 Markus Gans <guru.mail@muenster.de>
|
||||
* Improved gpm wheel mouse support
|
||||
* Fix compile in optimization level 2 for newer gcc
|
||||
|
||||
2018-11-27 Markus Gans <guru.mail@muenster.de>
|
||||
* Correct vertical scrollbar position after sorting in FListView
|
||||
|
||||
2018-11-25 Markus Gans <guru.mail@muenster.de>
|
||||
* Version 0.5.0
|
||||
* Namespace fix in FTermFreeBSD and FTermOpenBSD
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_INIT([finalcut], [0.5.0])
|
||||
AC_INIT([finalcut], [0.5.1])
|
||||
AC_CONFIG_HEADER([config.h])
|
||||
AX_PREFIX_CONFIG_H([src/include/final/fconfig.h], [F])
|
||||
AC_CONFIG_SRCDIR([src/fobject.cpp])
|
||||
|
@ -53,6 +53,7 @@ AC_SEARCH_LIBS([tparm], [termcap tinfo curses ncurses])
|
|||
# Checks for libtool
|
||||
AC_ENABLE_SHARED
|
||||
AC_ENABLE_STATIC
|
||||
AC_LANG([C++])
|
||||
LT_INIT([dlopen])
|
||||
LT_LANG([C++])
|
||||
LT_OUTPUT
|
||||
|
@ -60,7 +61,7 @@ LT_OUTPUT
|
|||
### This defines the version number of the installed .so files
|
||||
### Update this value for every release! (A:B:C will map to foo.so.(A-C).C.B)
|
||||
### using libtool's versioning system.
|
||||
AC_SUBST(SO_VERSION, ["5:0:5"])
|
||||
AC_SUBST(SO_VERSION, ["5:1:5"])
|
||||
|
||||
AC_SUBST([LIBTOOL_DEPS])
|
||||
|
||||
|
@ -75,6 +76,10 @@ AC_CONFIG_FILES([Makefile
|
|||
finalcut.spec
|
||||
finalcut.pc])
|
||||
|
||||
# Check for C++11 support
|
||||
AX_CHECK_COMPILE_FLAG([[-std=c++11]],,
|
||||
[AC_MSG_ERROR([compiler did not accept -std=c++11])])
|
||||
|
||||
# use GPM (General Purpose Mouse)
|
||||
AC_ARG_WITH([gpm],
|
||||
[AS_HELP_STRING([--without-gpm], [Disable GPM mouse support])],
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
examples/.libs/* usr/lib/finalcut/examples
|
||||
examples/*.cpp usr/lib/finalcut/examples
|
||||
examples/Makefile.clang usr/lib/finalcut/examples
|
||||
examples/Makefile.gcc usr/lib/finalcut/examples
|
||||
examples/.libs/* usr/share/doc/libfinal-examples/examples
|
||||
examples/*.cpp usr/share/doc/libfinal-examples/examples
|
||||
examples/Makefile.clang usr/share/doc/libfinal-examples/examples
|
||||
examples/Makefile.gcc usr/share/doc/libfinal-examples/examples
|
||||
|
|
|
@ -1,2 +1 @@
|
|||
usr/lib/finalcut/examples/Makefile.gcc usr/lib/finalcut/examples/Makefile
|
||||
usr/lib/finalcut/examples usr/share/doc/libfinal-examples/examples
|
||||
usr/share/doc/libfinal-examples/examples/Makefile.gcc usr/share/doc/libfinal-examples/examples/Makefile
|
||||
|
|
|
@ -1 +1 @@
|
|||
libfinal 0 libfinal0 (>= 0.5.0)
|
||||
libfinal 0 libfinal0 (>= 0.5.1)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -59,9 +59,15 @@ class FClassName
|
|||
// Constructors
|
||||
FClassName();
|
||||
|
||||
// Disable copy constructor
|
||||
FClassName (const FClassName&) = delete;
|
||||
|
||||
// Destructor
|
||||
~FClassName();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FClassName& operator = (const FClassName&) = delete;
|
||||
|
||||
// Overloaded operators
|
||||
|
||||
// Accessors
|
||||
|
@ -100,12 +106,6 @@ class FClassName
|
|||
|
||||
// Constants
|
||||
|
||||
// Disable copy constructor
|
||||
FClassName (const FClassName&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FClassName& operator = (const FClassName&);
|
||||
|
||||
// Accessors
|
||||
|
||||
// Inquiries
|
||||
|
|
19
doc/faq.md
19
doc/faq.md
|
@ -104,7 +104,7 @@ You need three things:
|
|||
* libgpm-dev
|
||||
|
||||
|
||||
How to compile FINAL CUT without gpm support?
|
||||
How to compile FINAL CUT without GPM support?
|
||||
---------------------------------------------
|
||||
|
||||
```bash
|
||||
|
@ -112,6 +112,14 @@ How to compile FINAL CUT without gpm support?
|
|||
```
|
||||
|
||||
|
||||
Which mouse types are supported?
|
||||
--------------------------------
|
||||
* Normal xterm mouse tracking (limited to 223 rows/columns)
|
||||
* Xterm SGR mouse tracking
|
||||
* URXVT mouse tracking
|
||||
* General Purpose Mouse (gpm) on a linux console
|
||||
|
||||
|
||||
What do I need to compile the unit tests?
|
||||
-----------------------------------------
|
||||
|
||||
|
@ -136,3 +144,12 @@ How can I fix display problems?
|
|||
|
||||
* If the color palette redefinition causes problems, you can switch off
|
||||
the color mapping with the parameter *--no-color-change*.
|
||||
|
||||
|
||||
How can I redraw the terminal?
|
||||
------------------------------
|
||||
|
||||
With Ctrl-L you can clear and redraw all information on the terminal screen.
|
||||
This may be necessary if a background program overwrites the displayed
|
||||
widgets with other characters.
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ int main (int argc, char* argv[])
|
|||
}
|
||||
```
|
||||
*(Note: You can close the dialog with the mouse,
|
||||
<kbd>Shift</kbd>+<kbd>F10</kbd> or <kbd>Ctrl</kbd>+<kbd>^</kbd>.)*
|
||||
<kbd>Shift</kbd>+<kbd>F10</kbd> or <kbd>Ctrl</kbd>+<kbd>^</kbd>)*
|
||||
|
||||
|
||||
After entering the source code in *dialog.cpp* you can compile
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
if ! CPPUNIT_TEST
|
||||
|
||||
AM_LDFLAGS = -L$(top_builddir)/src/.libs -lfinal
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/src/include -Wall -Werror
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/src/include -Wall -Werror -std=c++11
|
||||
|
||||
noinst_PROGRAMS = \
|
||||
hello \
|
||||
|
|
|
@ -9,7 +9,7 @@ BINDIR = /usr/local/bin
|
|||
CXX = clang++
|
||||
SRCS = $(wildcard *.cpp)
|
||||
OBJS = $(SRCS:%.cpp=%)
|
||||
CCXFLAGS = $(OPTIMIZE) $(PROFILE) $(DEBUG)
|
||||
CCXFLAGS = $(OPTIMIZE) $(PROFILE) $(DEBUG) -std=c++11
|
||||
MAKEFILE = -f Makefile.clang
|
||||
LDFLAGS = -L../src -lfinal
|
||||
INCLUDES = -I../src/include -I/usr/include/final
|
||||
|
@ -29,7 +29,7 @@ endif
|
|||
all: $(OBJS)
|
||||
|
||||
debug:
|
||||
$(MAKE) $(MAKEFILE) DEBUG="-g -D DEBUG -Wall -Wextra -Wpedantic -Weverything -Wpadded -Wno-reserved-id-macro"
|
||||
$(MAKE) $(MAKEFILE) DEBUG="-g -D DEBUG -Wall -Wextra -Wpedantic -Weverything -Wpadded -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-implicit-fallthrough -Wno-reserved-id-macro"
|
||||
|
||||
profile:
|
||||
$(MAKE) $(MAKEFILE) PROFILE="-pg"
|
||||
|
|
|
@ -9,7 +9,7 @@ BINDIR = /usr/local/bin
|
|||
CXX = g++
|
||||
SRCS = $(wildcard *.cpp)
|
||||
OBJS = $(SRCS:%.cpp=%)
|
||||
CCXFLAGS = $(OPTIMIZE) $(PROFILE) $(DEBUG)
|
||||
CCXFLAGS = $(OPTIMIZE) $(PROFILE) $(DEBUG) -std=c++11
|
||||
MAKEFILE = -f Makefile.gcc
|
||||
LDFLAGS = -L../src -lfinal
|
||||
INCLUDES = -I../src/include -I/usr/include/final
|
||||
|
|
|
@ -43,7 +43,7 @@ class Button : public finalcut::FButton
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Button (FWidget* = 0);
|
||||
explicit Button (FWidget* = nullptr);
|
||||
|
||||
// Method
|
||||
void setChecked(bool);
|
||||
|
@ -53,14 +53,13 @@ class Button : public finalcut::FButton
|
|||
|
||||
private:
|
||||
// Data Member
|
||||
bool checked;
|
||||
bool checked{false};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
Button::Button (finalcut::FWidget* parent)
|
||||
: finalcut::FButton(parent)
|
||||
, checked(false)
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -112,7 +111,7 @@ class Calc : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Calc (finalcut::FWidget* parent = 0);
|
||||
explicit Calc (finalcut::FWidget* parent = nullptr);
|
||||
|
||||
// Destructor
|
||||
~Calc();
|
||||
|
@ -217,17 +216,18 @@ class Calc : public finalcut::FDialog
|
|||
void mapKeyFunctions();
|
||||
|
||||
// Data Members
|
||||
bool error;
|
||||
bool arcus_mode;
|
||||
bool hyperbolic_mode;
|
||||
lDouble a, b;
|
||||
lDouble infinity;
|
||||
uInt max_char;
|
||||
int last_key;
|
||||
char infix_operator;
|
||||
char last_infix_operator;
|
||||
finalcut::FString input;
|
||||
int button_no[Calc::NUM_OF_BUTTONS];
|
||||
bool error{false};
|
||||
bool arcus_mode{false};
|
||||
bool hyperbolic_mode{false};
|
||||
lDouble a{0.0L};
|
||||
lDouble b{0.0L};
|
||||
lDouble infinity{std::numeric_limits<lDouble>::infinity()};
|
||||
uInt max_char{33};
|
||||
int last_key{-1};
|
||||
char infix_operator{'\0'};
|
||||
char last_infix_operator{'\0'};
|
||||
finalcut::FString input{""};
|
||||
int button_no[Calc::NUM_OF_BUTTONS]{};
|
||||
|
||||
struct stack_data
|
||||
{
|
||||
|
@ -235,29 +235,15 @@ class Calc : public finalcut::FDialog
|
|||
char infix_operator;
|
||||
};
|
||||
|
||||
std::stack<stack_data> bracket_stack;
|
||||
std::map<Calc::button, Button*> calculator_buttons;
|
||||
std::map<Calc::button, keyFunction> key_map;
|
||||
std::stack<stack_data> bracket_stack{};
|
||||
std::map<Calc::button, Button*> calculator_buttons{};
|
||||
std::map<Calc::button, keyFunction> key_map{};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
Calc::Calc (FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, error(false)
|
||||
, arcus_mode(false)
|
||||
, hyperbolic_mode(false)
|
||||
, a(0.0L)
|
||||
, b(0.0L)
|
||||
, infinity(std::numeric_limits<lDouble>::infinity())
|
||||
, max_char(33)
|
||||
, last_key(-1)
|
||||
, infix_operator('\0')
|
||||
, last_infix_operator('\0')
|
||||
, input("")
|
||||
, bracket_stack()
|
||||
, calculator_buttons()
|
||||
, key_map()
|
||||
{
|
||||
mapKeyFunctions();
|
||||
clearInfixOperator();
|
||||
|
@ -359,11 +345,11 @@ void Calc::drawDispay()
|
|||
|
||||
if ( isNewFont() )
|
||||
{
|
||||
wchar_t bottom_line = wchar_t(finalcut::fc::NF_border_line_bottom);
|
||||
wchar_t top_bottom_line = wchar_t(finalcut::fc::NF_border_line_up_and_down);
|
||||
wchar_t top_line = wchar_t(finalcut::fc::NF_border_line_upper);
|
||||
wchar_t right_line = wchar_t(finalcut::fc::NF_rev_border_line_right);
|
||||
wchar_t left_line = wchar_t(finalcut::fc::NF_border_line_left);
|
||||
wchar_t bottom_line = finalcut::fc::NF_border_line_bottom;
|
||||
wchar_t top_bottom_line = finalcut::fc::NF_border_line_up_and_down;
|
||||
wchar_t top_line = finalcut::fc::NF_border_line_upper;
|
||||
wchar_t right_line = finalcut::fc::NF_rev_border_line_right;
|
||||
wchar_t left_line = finalcut::fc::NF_border_line_left;
|
||||
setPrintPos (3, 2);
|
||||
print (finalcut::FString(33, bottom_line));
|
||||
setPrintPos (2, 3);
|
||||
|
@ -381,9 +367,9 @@ void Calc::drawDispay()
|
|||
}
|
||||
else
|
||||
{
|
||||
wchar_t vertical_and_right = wchar_t(finalcut::fc::BoxDrawingsVerticalAndRight);
|
||||
wchar_t horizontal = wchar_t(finalcut::fc::BoxDrawingsHorizontal);
|
||||
wchar_t vertical_and_left = wchar_t(finalcut::fc::BoxDrawingsVerticalAndLeft);
|
||||
wchar_t vertical_and_right = finalcut::fc::BoxDrawingsVerticalAndRight;
|
||||
wchar_t horizontal = finalcut::fc::BoxDrawingsHorizontal;
|
||||
wchar_t vertical_and_left = finalcut::fc::BoxDrawingsVerticalAndLeft;
|
||||
finalcut::FString separator = finalcut::FString(vertical_and_right)
|
||||
+ finalcut::FString(35, horizontal)
|
||||
+ finalcut::FString(vertical_and_left);
|
||||
|
|
|
@ -39,16 +39,16 @@ class CheckList : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit CheckList (finalcut::FWidget* = 0);
|
||||
explicit CheckList (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
CheckList (const CheckList&) = delete;
|
||||
// Destructor
|
||||
~CheckList();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
CheckList (const CheckList&);
|
||||
// Disable assignment operator (=)
|
||||
CheckList& operator = (const CheckList&);
|
||||
CheckList& operator = (const CheckList&) = delete;
|
||||
|
||||
private:
|
||||
// Method
|
||||
void populate();
|
||||
|
||||
|
@ -60,16 +60,14 @@ class CheckList : public finalcut::FDialog
|
|||
void cb_showList (finalcut::FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
finalcut::FListView listView;
|
||||
finalcut::FStatusBar status_bar;
|
||||
finalcut::FListView listView{this};
|
||||
finalcut::FStatusBar status_bar{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
CheckList::CheckList (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, listView(this)
|
||||
, status_bar(this)
|
||||
{
|
||||
setText (L"Shopping list");
|
||||
setShadow();
|
||||
|
@ -87,7 +85,7 @@ CheckList::CheckList (finalcut::FWidget* parent)
|
|||
|
||||
// Statusbar at the bottom
|
||||
finalcut::FString separator;
|
||||
separator << ' ' << wchar_t(finalcut::fc::BoxDrawingsVertical) << ' ';
|
||||
separator << ' ' << finalcut::fc::BoxDrawingsVertical << ' ';
|
||||
listView.setStatusbarMessage ( finalcut::FString()
|
||||
<< "<Q> exit" << separator
|
||||
<< "<Space> select an item" << separator
|
||||
|
@ -172,7 +170,7 @@ void CheckList::cb_showList (finalcut::FWidget*, data_ptr)
|
|||
static_cast<finalcut::FListViewItem*>(*iter);
|
||||
|
||||
if ( item->isChecked() )
|
||||
shopping_list << wchar_t(finalcut::fc::Bullet) << ' '
|
||||
shopping_list << finalcut::fc::Bullet << ' '
|
||||
<< item->getText(1) << '\n';
|
||||
|
||||
++iter;
|
||||
|
|
|
@ -53,10 +53,10 @@ int main (int argc, char* argv[])
|
|||
finalcut::FLabel label_1(&dgl);
|
||||
finalcut::FLabel label_2(&dgl);
|
||||
|
||||
label_1 << wchar_t(finalcut::fc::BlackUpPointingTriangle)
|
||||
label_1 << finalcut::fc::BlackUpPointingTriangle
|
||||
<< std::wstring(L"\n")
|
||||
<< wchar_t(finalcut::fc::BoxDrawingsUpAndRight)
|
||||
<< finalcut::FString(2, wchar_t(finalcut::fc::BoxDrawingsHorizontal))
|
||||
<< finalcut::fc::BoxDrawingsUpAndRight
|
||||
<< finalcut::FString(2, finalcut::fc::BoxDrawingsHorizontal)
|
||||
<< " Double click the title bar button,";
|
||||
label_2 << "press Q on the keyboard,\n"
|
||||
<< "or push the button below to exit\n"
|
||||
|
|
|
@ -30,7 +30,7 @@ class Keyboard : public finalcut::FWidget
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Keyboard (finalcut::FWidget* = 0);
|
||||
explicit Keyboard (finalcut::FWidget* = nullptr);
|
||||
|
||||
protected:
|
||||
// Event handlers
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
|
||||
// Global application object
|
||||
static finalcut::FString* temp_str = 0;
|
||||
static finalcut::FString* temp_str = nullptr;
|
||||
|
||||
|
||||
// Function prototypes
|
||||
|
@ -77,36 +77,31 @@ class Listbox : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Listbox (FWidget* = 0);
|
||||
explicit Listbox (FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
Listbox (const Listbox&) = delete;
|
||||
// Destructor
|
||||
~Listbox();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
Listbox (const Listbox&);
|
||||
// Disable assignment operator (=)
|
||||
Listbox& operator = (const Listbox&);
|
||||
Listbox& operator = (const Listbox&) = delete;
|
||||
|
||||
private:
|
||||
// Event handlers
|
||||
virtual void onClose (finalcut::FCloseEvent*);
|
||||
|
||||
// Data Member
|
||||
std::list<double> double_list;
|
||||
finalcut::FListBox list1;
|
||||
finalcut::FListBox list2;
|
||||
finalcut::FListBox list3;
|
||||
finalcut::FButton Quit;
|
||||
std::list<double> double_list{};
|
||||
finalcut::FListBox list1{this};
|
||||
finalcut::FListBox list2{this};
|
||||
finalcut::FListBox list3{this};
|
||||
finalcut::FButton Quit{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
Listbox::Listbox (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, double_list()
|
||||
, list1(this)
|
||||
, list2(this)
|
||||
, list3(this)
|
||||
, Quit(this)
|
||||
{
|
||||
temp_str = new finalcut::FString;
|
||||
|
||||
|
|
|
@ -39,16 +39,16 @@ class Listview : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Listview (finalcut::FWidget* = 0);
|
||||
explicit Listview (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
Listview (const Listview&) = delete;
|
||||
// Destructor
|
||||
~Listview();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
Listview (const Listview&);
|
||||
// Disable assignment operator (=)
|
||||
Listview& operator = (const Listview&);
|
||||
Listview& operator = (const Listview&) = delete;
|
||||
|
||||
private:
|
||||
// Method
|
||||
void populate();
|
||||
|
||||
|
@ -59,16 +59,14 @@ class Listview : public finalcut::FDialog
|
|||
void cb_showInMessagebox (finalcut::FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
finalcut::FListView listView;
|
||||
finalcut::FButton Quit;
|
||||
finalcut::FListView listView{this};
|
||||
finalcut::FButton Quit{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
Listview::Listview (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, listView(this)
|
||||
, Quit(this)
|
||||
{
|
||||
// Set FListView geometry
|
||||
listView.setGeometry(2, 1, 33, 14);
|
||||
|
|
|
@ -34,7 +34,7 @@ class Mandelbrot : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Mandelbrot (finalcut::FWidget* = 0);
|
||||
explicit Mandelbrot (finalcut::FWidget* = nullptr);
|
||||
|
||||
// Destructor
|
||||
~Mandelbrot();
|
||||
|
|
|
@ -34,18 +34,16 @@ class Menu : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Menu (finalcut::FWidget* = 0);
|
||||
|
||||
explicit Menu (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
Menu (const Menu&) = delete;
|
||||
// Destructor
|
||||
~Menu();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
Menu (const Menu&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
Menu& operator = (const Menu&);
|
||||
Menu& operator = (const Menu&) = delete;
|
||||
|
||||
private:
|
||||
// Methods
|
||||
void configureFileMenuItems();
|
||||
void configureEditMenuItems();
|
||||
|
@ -63,110 +61,61 @@ class Menu : public finalcut::FDialog
|
|||
void cb_message (finalcut::FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
finalcut::FString line;
|
||||
finalcut::FMenuBar Menubar;
|
||||
finalcut::FMenu File;
|
||||
finalcut::FMenu Edit;
|
||||
finalcut::FMenu Choice;
|
||||
finalcut::FMenuItem Window;
|
||||
finalcut::FMenuItem Help;
|
||||
finalcut::FMenuItem New;
|
||||
finalcut::FMenuItem Open;
|
||||
finalcut::FMenuItem Save;
|
||||
finalcut::FMenuItem SaveAs;
|
||||
finalcut::FMenuItem Close;
|
||||
finalcut::FMenuItem Line1;
|
||||
finalcut::FMenuItem Print;
|
||||
finalcut::FMenuItem Line2;
|
||||
finalcut::FMenuItem Quit;
|
||||
finalcut::FMenuItem Undo;
|
||||
finalcut::FMenuItem Redo;
|
||||
finalcut::FMenuItem Line3;
|
||||
finalcut::FMenuItem Cut;
|
||||
finalcut::FMenuItem Copy;
|
||||
finalcut::FMenuItem Paste;
|
||||
finalcut::FMenuItem Line4;
|
||||
finalcut::FMenuItem Search;
|
||||
finalcut::FMenuItem Next;
|
||||
finalcut::FMenuItem Line5;
|
||||
finalcut::FMenuItem SelectAll;
|
||||
finalcut::FMenu Color;
|
||||
finalcut::FMenu Style;
|
||||
finalcut::FMenu Border;
|
||||
finalcut::FRadioMenuItem Color1;
|
||||
finalcut::FRadioMenuItem Color2;
|
||||
finalcut::FRadioMenuItem Color3;
|
||||
finalcut::FRadioMenuItem Color4;
|
||||
finalcut::FRadioMenuItem Color5;
|
||||
finalcut::FCheckMenuItem Bold;
|
||||
finalcut::FCheckMenuItem Italic;
|
||||
finalcut::FMenu BColor;
|
||||
finalcut::FMenu BStyle;
|
||||
finalcut::FRadioMenuItem BColor1;
|
||||
finalcut::FRadioMenuItem BColor2;
|
||||
finalcut::FRadioMenuItem BStyle1;
|
||||
finalcut::FRadioMenuItem BStyle2;
|
||||
finalcut::FRadioMenuItem BStyle3;
|
||||
finalcut::FRadioMenuItem BStyle4;
|
||||
finalcut::FStatusBar Statusbar;
|
||||
finalcut::FLabel Headline1;
|
||||
finalcut::FLabel Headline2;
|
||||
finalcut::FLabel Info;
|
||||
finalcut::FString line{13, finalcut::fc::BoxDrawingsHorizontal};
|
||||
finalcut::FMenuBar Menubar{this};
|
||||
finalcut::FMenu File{"&File", &Menubar};
|
||||
finalcut::FMenu Edit{"&Edit", &Menubar};
|
||||
finalcut::FMenu Choice{"&Choice", &Menubar};
|
||||
finalcut::FMenuItem Window{"&Window", &Menubar};
|
||||
finalcut::FMenuItem Help{"&Help", &Menubar};
|
||||
finalcut::FMenuItem New{"&New", &File};
|
||||
finalcut::FMenuItem Open{"&Open...", &File};
|
||||
finalcut::FMenuItem Save{"&Save", &File};
|
||||
finalcut::FMenuItem SaveAs{"&Save as...", &File};
|
||||
finalcut::FMenuItem Close{"&Close", &File};
|
||||
finalcut::FMenuItem Line1{&File};
|
||||
finalcut::FMenuItem Print{"&Print", &File};
|
||||
finalcut::FMenuItem Line2{&File};
|
||||
finalcut::FMenuItem Quit{"&Quit", &File};
|
||||
finalcut::FMenuItem Undo{finalcut::fc::Fckey_z, "&Undo", &Edit};
|
||||
finalcut::FMenuItem Redo{finalcut::fc::Fckey_y, "&Redo", &Edit};
|
||||
finalcut::FMenuItem Line3{&Edit};
|
||||
finalcut::FMenuItem Cut{finalcut::fc::Fckey_x, "Cu&t", &Edit};
|
||||
finalcut::FMenuItem Copy{finalcut::fc::Fckey_c, "&Copy", &Edit};
|
||||
finalcut::FMenuItem Paste{finalcut::fc::Fckey_v, "&Paste", &Edit};
|
||||
finalcut::FMenuItem Line4{&Edit};
|
||||
finalcut::FMenuItem Search{finalcut::fc::Fckey_f, "&Search", &Edit};
|
||||
finalcut::FMenuItem Next{finalcut::fc::Fkey_f3, "Search &next", &Edit};
|
||||
finalcut::FMenuItem Line5{&Edit};
|
||||
finalcut::FMenuItem SelectAll{finalcut::fc::Fckey_a, "Select &all", &Edit};
|
||||
finalcut::FMenu Color{"&Color", &Choice};
|
||||
finalcut::FMenu Style{"&Style", &Choice};
|
||||
finalcut::FMenu Border{"&Border", &Choice};
|
||||
finalcut::FRadioMenuItem Color1{"Red", &Color};
|
||||
finalcut::FRadioMenuItem Color2{"Green", &Color};
|
||||
finalcut::FRadioMenuItem Color3{"Yellow", &Color};
|
||||
finalcut::FRadioMenuItem Color4{"Brue", &Color};
|
||||
finalcut::FRadioMenuItem Color5{"Black", &Color};
|
||||
finalcut::FCheckMenuItem Bold{"Bold", &Style};
|
||||
finalcut::FCheckMenuItem Italic{"Italic", &Style};
|
||||
finalcut::FMenu BColor{"&Color", &Border};
|
||||
finalcut::FMenu BStyle{"&Style", &Border};
|
||||
finalcut::FRadioMenuItem BColor1{"Red", &BColor};
|
||||
finalcut::FRadioMenuItem BColor2{"Blue", &BColor};
|
||||
finalcut::FRadioMenuItem BStyle1{line, &BStyle};
|
||||
finalcut::FRadioMenuItem BStyle2{"-------------", &BStyle};
|
||||
finalcut::FRadioMenuItem BStyle3{"- - - - - - -", &BStyle};
|
||||
finalcut::FRadioMenuItem BStyle4{"- - - - -", &BStyle};
|
||||
finalcut::FStatusBar Statusbar{this};
|
||||
finalcut::FLabel Headline1{this};
|
||||
finalcut::FLabel Headline2{this};
|
||||
finalcut::FLabel Info{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
Menu::Menu (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, line(13, wchar_t(finalcut::fc::BoxDrawingsHorizontal))
|
||||
, Menubar(this)
|
||||
, File("&File", &Menubar)
|
||||
, Edit("&Edit", &Menubar)
|
||||
, Choice("&Choice", &Menubar)
|
||||
, Window("&Window", &Menubar)
|
||||
, Help("&Help", &Menubar)
|
||||
, New("&New", &File)
|
||||
, Open("&Open...", &File)
|
||||
, Save("&Save", &File)
|
||||
, SaveAs("&Save as...", &File)
|
||||
, Close("&Close", &File)
|
||||
, Line1(&File)
|
||||
, Print("&Print", &File)
|
||||
, Line2(&File)
|
||||
, Quit("&Quit", &File)
|
||||
, Undo(finalcut::fc::Fckey_z, "&Undo", &Edit)
|
||||
, Redo(finalcut::fc::Fckey_y, "&Redo", &Edit)
|
||||
, Line3(&Edit)
|
||||
, Cut(finalcut::fc::Fckey_x, "Cu&t", &Edit)
|
||||
, Copy(finalcut::fc::Fckey_c, "&Copy", &Edit)
|
||||
, Paste(finalcut::fc::Fckey_v, "&Paste", &Edit)
|
||||
, Line4(&Edit)
|
||||
, Search(finalcut::fc::Fckey_f, "&Search", &Edit)
|
||||
, Next(finalcut::fc::Fkey_f3, "Search &next", &Edit)
|
||||
, Line5(&Edit)
|
||||
, SelectAll(finalcut::fc::Fckey_a, "Select &all", &Edit)
|
||||
, Color("&Color", &Choice)
|
||||
, Style("&Style", &Choice)
|
||||
, Border("&Border", &Choice)
|
||||
, Color1("Red", &Color)
|
||||
, Color2("Green", &Color)
|
||||
, Color3("Yellow", &Color)
|
||||
, Color4("Brue", &Color)
|
||||
, Color5("Black", &Color)
|
||||
, Bold("Bold", &Style)
|
||||
, Italic("Italic", &Style)
|
||||
, BColor("&Color", &Border)
|
||||
, BStyle("&Style", &Border)
|
||||
, BColor1("Red", &BColor)
|
||||
, BColor2("Blue", &BColor)
|
||||
, BStyle1(line, &BStyle)
|
||||
, BStyle2("-------------", &BStyle)
|
||||
, BStyle3("- - - - - - -", &BStyle)
|
||||
, BStyle4("- - - - -", &BStyle)
|
||||
, Statusbar(this)
|
||||
, Headline1(this)
|
||||
, Headline2(this)
|
||||
, Info(this)
|
||||
{
|
||||
// Menu bar itms
|
||||
File.setStatusbarMessage ("File management commands");
|
||||
|
|
|
@ -34,21 +34,20 @@ class ColorChooser : public finalcut::FWidget
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit ColorChooser (finalcut::FWidget* = 0);
|
||||
|
||||
explicit ColorChooser (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
ColorChooser (const ColorChooser&) = delete;
|
||||
// Destructor
|
||||
~ColorChooser();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
ColorChooser& operator = (const ColorChooser&) = delete;
|
||||
|
||||
// Accessors
|
||||
FColor getForeground();
|
||||
FColor getBackground();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
ColorChooser (const ColorChooser&);
|
||||
// Disable assignment operator (=)
|
||||
ColorChooser& operator = (const ColorChooser&);
|
||||
|
||||
// Method
|
||||
virtual void draw();
|
||||
|
||||
|
@ -56,18 +55,15 @@ class ColorChooser : public finalcut::FWidget
|
|||
virtual void onMouseDown (finalcut::FMouseEvent*);
|
||||
|
||||
// Data Members
|
||||
FColor fg_color;
|
||||
FColor bg_color;
|
||||
finalcut::FLabel headline;
|
||||
FColor fg_color{finalcut::fc::White};
|
||||
FColor bg_color{finalcut::fc::Black};
|
||||
finalcut::FLabel headline{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
ColorChooser::ColorChooser (finalcut::FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, fg_color(finalcut::fc::White)
|
||||
, bg_color(finalcut::fc::Black)
|
||||
, headline(this)
|
||||
{
|
||||
setSize (8, 12);
|
||||
setFixedSize (8, 12);
|
||||
|
@ -174,11 +170,15 @@ class Brushes : public finalcut::FWidget
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Brushes (finalcut::FWidget* = 0);
|
||||
|
||||
explicit Brushes (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
Brushes (const Brushes&) = delete;
|
||||
// Destructor
|
||||
~Brushes();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
Brushes& operator = (const Brushes&) = delete;
|
||||
|
||||
// Accessor
|
||||
wchar_t getBrush();
|
||||
|
||||
|
@ -187,11 +187,6 @@ class Brushes : public finalcut::FWidget
|
|||
void setBackground (FColor);
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
Brushes (const Brushes&);
|
||||
// Disable assignment operator (=)
|
||||
Brushes& operator = (const Brushes&);
|
||||
|
||||
// Method
|
||||
virtual void draw();
|
||||
|
||||
|
@ -199,20 +194,16 @@ class Brushes : public finalcut::FWidget
|
|||
virtual void onMouseDown (finalcut::FMouseEvent*);
|
||||
|
||||
// Data Members
|
||||
wchar_t brush;
|
||||
FColor fg_color;
|
||||
FColor bg_color;
|
||||
finalcut::FLabel headline;
|
||||
wchar_t brush{L' '};
|
||||
FColor fg_color{finalcut::fc::White};
|
||||
FColor bg_color{finalcut::fc::Black};
|
||||
finalcut::FLabel headline{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
Brushes::Brushes (finalcut::FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, brush(L' ')
|
||||
, fg_color(finalcut::fc::White)
|
||||
, bg_color(finalcut::fc::Black)
|
||||
, headline(this)
|
||||
{
|
||||
setSize (8, 4);
|
||||
setFixedSize (8, 4);
|
||||
|
@ -249,7 +240,7 @@ void Brushes::draw()
|
|||
setColor (fg_color, bg_color);
|
||||
setPrintPos (2, 3);
|
||||
print(" ");
|
||||
print(finalcut::FString(3, wchar_t(finalcut::fc::MediumShade)));
|
||||
print(finalcut::FString(3, finalcut::fc::MediumShade));
|
||||
|
||||
if ( brush == L' ' )
|
||||
pos = 0;
|
||||
|
@ -258,9 +249,9 @@ void Brushes::draw()
|
|||
|
||||
setColor();
|
||||
setPrintPos (3 + pos, 2);
|
||||
print(wchar_t(finalcut::fc::BlackDownPointingTriangle));
|
||||
print(finalcut::fc::BlackDownPointingTriangle);
|
||||
setPrintPos (3 + pos, 4);
|
||||
print(wchar_t(finalcut::fc::BlackUpPointingTriangle));
|
||||
print(finalcut::fc::BlackUpPointingTriangle);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -279,7 +270,7 @@ void Brushes::onMouseDown (finalcut::FMouseEvent* ev)
|
|||
}
|
||||
else if ( mouse_x >= 5 && mouse_x <= 7 && mouse_y == 3 )
|
||||
{
|
||||
brush = wchar_t(finalcut::fc::MediumShade);
|
||||
brush = finalcut::fc::MediumShade;
|
||||
redraw();
|
||||
}
|
||||
}
|
||||
|
@ -317,11 +308,15 @@ class MouseDraw : public finalcut::FDialog
|
|||
using FWidget::setGeometry;
|
||||
|
||||
// Constructor
|
||||
explicit MouseDraw (finalcut::FWidget* = 0);
|
||||
|
||||
explicit MouseDraw (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
MouseDraw (const MouseDraw&) = delete;
|
||||
// Destructor
|
||||
~MouseDraw();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
MouseDraw& operator = (const MouseDraw&) = delete;
|
||||
|
||||
// Methods
|
||||
void setGeometry (int, int, std::size_t, std::size_t, bool = true);
|
||||
|
||||
|
@ -330,11 +325,6 @@ class MouseDraw : public finalcut::FDialog
|
|||
virtual void onClose (finalcut::FCloseEvent*);
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
MouseDraw (const MouseDraw&);
|
||||
// Disable assignment operator (=)
|
||||
MouseDraw& operator = (const MouseDraw&);
|
||||
|
||||
// Methods
|
||||
virtual void draw();
|
||||
void drawBrush (int, int, bool = false);
|
||||
|
@ -349,18 +339,15 @@ class MouseDraw : public finalcut::FDialog
|
|||
void cb_colorChanged (finalcut::FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
term_area* canvas;
|
||||
ColorChooser c_chooser;
|
||||
Brushes brush;
|
||||
term_area* canvas{nullptr};
|
||||
ColorChooser c_chooser{this};
|
||||
Brushes brush{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
MouseDraw::MouseDraw (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, canvas(0)
|
||||
, c_chooser(this)
|
||||
, brush(this)
|
||||
{
|
||||
setText ("Drawing with the mouse");
|
||||
c_chooser.setPos (1, 1);
|
||||
|
@ -426,25 +413,25 @@ void MouseDraw::draw()
|
|||
for (int y = 2; y < y_max; y++)
|
||||
{
|
||||
setPrintPos (10, y);
|
||||
print (wchar_t(finalcut::fc::NF_rev_border_line_right));
|
||||
print (finalcut::fc::NF_rev_border_line_right);
|
||||
}
|
||||
|
||||
setPrintPos (10, y_max);
|
||||
print (wchar_t(finalcut::fc::NF_rev_border_corner_lower_right));
|
||||
print (finalcut::fc::NF_rev_border_corner_lower_right);
|
||||
}
|
||||
else
|
||||
{
|
||||
setPrintPos (10, 2);
|
||||
print (wchar_t(finalcut::fc::BoxDrawingsDownAndHorizontal));
|
||||
print (finalcut::fc::BoxDrawingsDownAndHorizontal);
|
||||
|
||||
for (int y = 3; y < y_max; y++)
|
||||
{
|
||||
setPrintPos (10, y);
|
||||
print (wchar_t(finalcut::fc::BoxDrawingsVertical));
|
||||
print (finalcut::fc::BoxDrawingsVertical);
|
||||
}
|
||||
|
||||
setPrintPos (10, y_max);
|
||||
print (wchar_t(finalcut::fc::BoxDrawingsUpAndHorizontal));
|
||||
print (finalcut::fc::BoxDrawingsUpAndHorizontal);
|
||||
}
|
||||
|
||||
drawCanvas();
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
static finalcut::FVTerm* terminal;
|
||||
|
||||
// Global FApplication object
|
||||
static finalcut::FApplication* app;
|
||||
static finalcut::FApplication* app = nullptr;
|
||||
|
||||
// function prototype
|
||||
bool keyPressed();
|
||||
|
@ -201,5 +201,5 @@ int main (int argc, char* argv[])
|
|||
|
||||
// Waiting for keypress
|
||||
keyPressed();
|
||||
app = 0; // End of TermApp object scope
|
||||
app = nullptr; // End of TermApp object scope
|
||||
}
|
||||
|
|
|
@ -34,20 +34,19 @@ class Scrollview : public finalcut::FScrollView
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Scrollview (finalcut::FWidget* = 0);
|
||||
|
||||
explicit Scrollview (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
Scrollview (const Scrollview&) = delete;
|
||||
// Destructor
|
||||
~Scrollview ();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
Scrollview& operator = (const Scrollview&) = delete;
|
||||
|
||||
// Mutator
|
||||
void setScrollSize (std::size_t, std::size_t);
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
Scrollview (const Scrollview&);
|
||||
// Disable assignment operator (=)
|
||||
Scrollview& operator = (const Scrollview&);
|
||||
|
||||
// Method
|
||||
virtual void draw();
|
||||
|
||||
|
@ -58,28 +57,20 @@ class Scrollview : public finalcut::FScrollView
|
|||
void cb_go_north (finalcut::FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
wchar_t pointer_right;
|
||||
wchar_t pointer_down;
|
||||
wchar_t pointer_left;
|
||||
wchar_t pointer_up;
|
||||
finalcut::FButton go_east;
|
||||
finalcut::FButton go_south;
|
||||
finalcut::FButton go_west;
|
||||
finalcut::FButton go_north;
|
||||
wchar_t pointer_right{finalcut::fc::BlackRightPointingPointer};
|
||||
wchar_t pointer_down{finalcut::fc::BlackDownPointingTriangle};
|
||||
wchar_t pointer_left{finalcut::fc::BlackLeftPointingPointer};
|
||||
wchar_t pointer_up{finalcut::fc::BlackUpPointingTriangle};
|
||||
finalcut::FButton go_east{pointer_right, this};
|
||||
finalcut::FButton go_south{pointer_down, this};
|
||||
finalcut::FButton go_west{pointer_left, this};
|
||||
finalcut::FButton go_north{pointer_up, this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
Scrollview::Scrollview (finalcut::FWidget* parent)
|
||||
: finalcut::FScrollView(parent)
|
||||
, pointer_right(wchar_t(finalcut::fc::BlackRightPointingPointer))
|
||||
, pointer_down(wchar_t(finalcut::fc::BlackDownPointingTriangle))
|
||||
, pointer_left(wchar_t(finalcut::fc::BlackLeftPointingPointer))
|
||||
, pointer_up(wchar_t(finalcut::fc::BlackUpPointingTriangle))
|
||||
, go_east(pointer_right, this)
|
||||
, go_south(pointer_down, this)
|
||||
, go_west(pointer_left, this)
|
||||
, go_north(pointer_up, this)
|
||||
{
|
||||
// Sets the navigation button geometry
|
||||
go_east.setGeometry (1, 1, 5, 1);
|
||||
|
@ -198,7 +189,7 @@ class Scrollviewdemo : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Scrollviewdemo (finalcut::FWidget* = 0);
|
||||
explicit Scrollviewdemo (finalcut::FWidget* = nullptr);
|
||||
|
||||
// Destructor
|
||||
~Scrollviewdemo();
|
||||
|
@ -207,12 +198,12 @@ class Scrollviewdemo : public finalcut::FDialog
|
|||
virtual void onClose (finalcut::FCloseEvent*);
|
||||
|
||||
// Callback method
|
||||
void cb_quit (finalcut::FWidget* = 0, data_ptr = 0);
|
||||
void cb_quit (finalcut::FWidget* = nullptr, data_ptr = nullptr);
|
||||
|
||||
// Data Members
|
||||
Scrollview sview;
|
||||
finalcut::FButton quit_btn;
|
||||
finalcut::FLabel label;
|
||||
Scrollview sview{this};
|
||||
finalcut::FButton quit_btn{"&Quit", this};
|
||||
finalcut::FLabel label{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
@ -220,9 +211,6 @@ class Scrollviewdemo : public finalcut::FDialog
|
|||
//----------------------------------------------------------------------
|
||||
Scrollviewdemo::Scrollviewdemo (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, sview(this)
|
||||
, quit_btn("&Quit", this)
|
||||
, label(this)
|
||||
{
|
||||
setGeometry (16, 3, 50, 19);
|
||||
setText ("Scrolling viewport example");
|
||||
|
|
|
@ -187,7 +187,7 @@ void streamingFromFStringExample()
|
|||
std::wcout << "stream out: " << stream_wstring << std::endl;
|
||||
|
||||
// ...to wide character
|
||||
wchar_t stream_wchar_t = 0;
|
||||
wchar_t stream_wchar_t = L'\0';
|
||||
finalcut::FString("w") >> stream_wchar_t;
|
||||
std::wcout << "stream out: " << stream_wchar_t << std::endl;
|
||||
|
||||
|
|
|
@ -34,35 +34,34 @@ class AttribDlg : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit AttribDlg (finalcut::FWidget* = 0);
|
||||
|
||||
explicit AttribDlg (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
AttribDlg (const AttribDlg&) = delete;
|
||||
// Destructor
|
||||
~AttribDlg();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
AttribDlg& operator = (const AttribDlg&) = delete;
|
||||
|
||||
// Event handlers
|
||||
virtual void onAccel (finalcut::FAccelEvent*);
|
||||
virtual void onWheel (finalcut::FWheelEvent*);
|
||||
virtual void onClose (finalcut::FCloseEvent*);
|
||||
|
||||
// Callback methods
|
||||
void cb_next (finalcut::FWidget* = 0, data_ptr = 0);
|
||||
void cb_back (finalcut::FWidget* = 0, data_ptr = 0);
|
||||
void cb_next (finalcut::FWidget* = nullptr, data_ptr = nullptr);
|
||||
void cb_back (finalcut::FWidget* = nullptr, data_ptr = nullptr);
|
||||
|
||||
// Data Members
|
||||
FColor bgcolor;
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
AttribDlg (const AttribDlg&);
|
||||
// Disable assignment operator (=)
|
||||
AttribDlg& operator = (const AttribDlg&);
|
||||
|
||||
// Method
|
||||
virtual void adjustSize();
|
||||
|
||||
// Data Members
|
||||
finalcut::FButton next_button;
|
||||
finalcut::FButton back_button;
|
||||
finalcut::FButton next_button{"&Next >", this};
|
||||
finalcut::FButton back_button{"< &Back", this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
@ -70,8 +69,6 @@ class AttribDlg : public finalcut::FDialog
|
|||
AttribDlg::AttribDlg (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, bgcolor(wc.label_bg)
|
||||
, next_button("&Next >", this)
|
||||
, back_button("< &Back", this)
|
||||
{
|
||||
setText ( "A terminal attributes test ("
|
||||
+ finalcut::FString(getTermType())
|
||||
|
@ -188,7 +185,7 @@ class AttribDemo : public finalcut::FWidget
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit AttribDemo (FWidget* = 0);
|
||||
explicit AttribDemo (FWidget* = nullptr);
|
||||
|
||||
// Destructor
|
||||
~AttribDemo()
|
||||
|
|
|
@ -313,7 +313,7 @@ int main (int argc, char* argv[])
|
|||
// Pointer to the global virtual terminal object
|
||||
terminal = static_cast<finalcut::FVTerm*>(&TermApp);
|
||||
|
||||
finalcut::FTermcap::tcap_map* tcap = 0;
|
||||
finalcut::FTermcap::tcap_map* tcap = nullptr;
|
||||
tcap = finalcut::FTermcap::getTermcapMap();
|
||||
|
||||
std::cout << "--------\r\nFTermcap\r\n--------\r\n\n";
|
||||
|
|
|
@ -31,7 +31,7 @@ class Timer : public finalcut::FWidget
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Timer (finalcut::FWidget* = 0);
|
||||
explicit Timer (finalcut::FWidget* = nullptr);
|
||||
|
||||
protected:
|
||||
// Method
|
||||
|
|
|
@ -42,18 +42,17 @@ class Transparent : public finalcut::FDialog
|
|||
} trans_type;
|
||||
|
||||
// Constructor
|
||||
explicit Transparent (finalcut::FWidget* = 0, trans_type = transparent);
|
||||
|
||||
explicit Transparent ( finalcut::FWidget* = nullptr
|
||||
, trans_type = transparent );
|
||||
// Disable copy constructor
|
||||
Transparent (const Transparent&) = delete;
|
||||
// Destructor
|
||||
~Transparent();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
Transparent (const Transparent&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
Transparent& operator = (const Transparent&);
|
||||
Transparent& operator = (const Transparent&) = delete;
|
||||
|
||||
private:
|
||||
// Method
|
||||
virtual void draw();
|
||||
|
||||
|
@ -103,7 +102,7 @@ void Transparent::draw()
|
|||
else
|
||||
setTransparent();
|
||||
|
||||
finalcut::FString line(getClientWidth(), wchar_t('.'));
|
||||
finalcut::FString line(getClientWidth(), '.');
|
||||
|
||||
for (int n = 1; n <= int(getClientHeight()); n++)
|
||||
{
|
||||
|
@ -151,16 +150,17 @@ class MainWindow : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit MainWindow (finalcut::FWidget* = 0);
|
||||
explicit MainWindow (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
MainWindow (const MainWindow&) = delete;
|
||||
// Destructor
|
||||
~MainWindow();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
MainWindow (const MainWindow&);
|
||||
// Disable assignment operator (=)
|
||||
MainWindow& operator = (const MainWindow&);
|
||||
MainWindow& operator = (const MainWindow&) = delete;
|
||||
|
||||
private:
|
||||
// Method
|
||||
virtual void draw();
|
||||
|
||||
// Event handlers
|
||||
|
@ -182,24 +182,18 @@ class MainWindow : public finalcut::FDialog
|
|||
}
|
||||
|
||||
// Data Members
|
||||
finalcut::FString line1;
|
||||
finalcut::FString line2;
|
||||
Transparent* transpwin;
|
||||
Transparent* shadowwin;
|
||||
Transparent* ibg;
|
||||
finalcut::FStatusBar status_bar;
|
||||
finalcut::FString line1{};
|
||||
finalcut::FString line2{};
|
||||
Transparent* transpwin{nullptr};
|
||||
Transparent* shadowwin{nullptr};
|
||||
Transparent* ibg{nullptr};
|
||||
finalcut::FStatusBar status_bar{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
MainWindow::MainWindow (finalcut::FWidget* parent)
|
||||
: FDialog(parent)
|
||||
, line1()
|
||||
, line2()
|
||||
, transpwin(0)
|
||||
, shadowwin(0)
|
||||
, ibg(0)
|
||||
, status_bar(this)
|
||||
{
|
||||
line1 = " .-. .-. .-.";
|
||||
line2 = "`._.' `._.' `._.' ";
|
||||
|
|
|
@ -114,19 +114,19 @@ class Treeview : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Treeview (finalcut::FWidget* = 0);
|
||||
explicit Treeview (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
Treeview (const Treeview&) = delete;
|
||||
// Destructor
|
||||
~Treeview();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
Treeview& operator = (const Treeview&) = delete;
|
||||
|
||||
private:
|
||||
// Typedefs
|
||||
struct TreeItem; // forward declaration
|
||||
|
||||
// Disable copy constructor
|
||||
Treeview (const Treeview&);
|
||||
// Disable assignment operator (=)
|
||||
Treeview& operator = (const Treeview&);
|
||||
|
||||
// Methods
|
||||
virtual void adjustSize();
|
||||
|
||||
|
@ -134,9 +134,9 @@ class Treeview : public finalcut::FDialog
|
|||
void onClose (finalcut::FCloseEvent*);
|
||||
|
||||
// Data Members
|
||||
bool initialized;
|
||||
finalcut::FListView listView;
|
||||
finalcut::FButton Quit;
|
||||
bool initialized{false};
|
||||
finalcut::FListView listView{this};
|
||||
finalcut::FButton Quit{this};
|
||||
static TreeItem africa[];
|
||||
static TreeItem asia[];
|
||||
static TreeItem europe[];
|
||||
|
@ -298,9 +298,6 @@ Treeview::TreeItem Treeview::oceania[] =
|
|||
//----------------------------------------------------------------------
|
||||
Treeview::Treeview (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, initialized(false)
|
||||
, listView(this)
|
||||
, Quit(this)
|
||||
{
|
||||
// Set FListView geometry
|
||||
listView.setGeometry(2, 1, 53, 14);
|
||||
|
|
205
examples/ui.cpp
205
examples/ui.cpp
|
@ -38,17 +38,16 @@ class ProgressDialog : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit ProgressDialog (finalcut::FWidget* = 0);
|
||||
|
||||
explicit ProgressDialog (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
ProgressDialog (const ProgressDialog&) = delete;
|
||||
// Destructor
|
||||
~ProgressDialog();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
ProgressDialog (const ProgressDialog&);
|
||||
// Disable assignment operator (=)
|
||||
ProgressDialog& operator = (const ProgressDialog&);
|
||||
ProgressDialog& operator = (const ProgressDialog&) = delete;
|
||||
|
||||
private:
|
||||
// Event handlers
|
||||
virtual void onShow (finalcut::FShowEvent*);
|
||||
virtual void onTimer (finalcut::FTimerEvent*);
|
||||
|
@ -59,20 +58,16 @@ class ProgressDialog : public finalcut::FDialog
|
|||
void cb_exit_bar (finalcut::FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
finalcut::FProgressbar progressBar;
|
||||
finalcut::FButton reset;
|
||||
finalcut::FButton more;
|
||||
finalcut::FButton quit;
|
||||
finalcut::FProgressbar progressBar{this};
|
||||
finalcut::FButton reset{this};
|
||||
finalcut::FButton more{this};
|
||||
finalcut::FButton quit{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
ProgressDialog::ProgressDialog (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, progressBar(this)
|
||||
, reset(this)
|
||||
, more(this)
|
||||
, quit(this)
|
||||
{
|
||||
setGeometry (int((getParentWidget()->getWidth() - 40) / 2), 7, 40, 10);
|
||||
setText("Progress bar");
|
||||
|
@ -186,31 +181,30 @@ class TextWindow : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit TextWindow (finalcut::FWidget* = 0);
|
||||
|
||||
explicit TextWindow (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
TextWindow (const TextWindow&) = delete;
|
||||
// Destructor
|
||||
~TextWindow();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
TextWindow& operator = (const TextWindow&) = delete;
|
||||
|
||||
// Method
|
||||
void append (const finalcut::FString&);
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
TextWindow (const TextWindow&);
|
||||
// Disable assignment operator (=)
|
||||
TextWindow& operator = (const TextWindow&);
|
||||
|
||||
// Method
|
||||
virtual void adjustSize();
|
||||
|
||||
// Data Members
|
||||
finalcut::FTextView scrollText;
|
||||
finalcut::FTextView scrollText{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
TextWindow::TextWindow (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, scrollText(this)
|
||||
{
|
||||
scrollText.ignorePadding();
|
||||
scrollText.setGeometry (1, 2, getWidth(), getHeight() - 1);
|
||||
|
@ -255,16 +249,16 @@ class MyDialog : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit MyDialog (finalcut::FWidget* = 0);
|
||||
explicit MyDialog (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
MyDialog (const MyDialog&) = delete;
|
||||
// Destructor
|
||||
~MyDialog();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
MyDialog (const MyDialog&);
|
||||
// Disable assignment operator (=)
|
||||
MyDialog& operator = (const MyDialog&);
|
||||
MyDialog& operator = (const MyDialog&) = delete;
|
||||
|
||||
private:
|
||||
// Method
|
||||
void initMenu();
|
||||
void initMenuCallbacks();
|
||||
|
@ -302,108 +296,67 @@ class MyDialog : public finalcut::FDialog
|
|||
void cb_setInput (finalcut::FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
bool initialized;
|
||||
finalcut::FMenuBar Menubar;
|
||||
finalcut::FMenu File; // Menu bar items
|
||||
finalcut::FMenu Edit;
|
||||
finalcut::FMenu View;
|
||||
finalcut::FMenuItem Options;
|
||||
finalcut::FDialogListMenu Window;
|
||||
finalcut::FMenuItem Help;
|
||||
finalcut::FMenuItem Open; // "File" menu items
|
||||
finalcut::FMenu Recent;
|
||||
finalcut::FMenuItem Line1;
|
||||
finalcut::FMenuItem Quit;
|
||||
finalcut::FMenuItem File1; // "Recent" menu items
|
||||
finalcut::FMenuItem File2;
|
||||
finalcut::FMenuItem File3;
|
||||
finalcut::FMenuItem Undo;
|
||||
finalcut::FMenuItem Redo;
|
||||
finalcut::FMenuItem Line2;
|
||||
finalcut::FMenuItem Cut;
|
||||
finalcut::FMenuItem Copy;
|
||||
finalcut::FMenuItem Paste;
|
||||
finalcut::FMenuItem Clear;
|
||||
finalcut::FMenuItem Env;
|
||||
finalcut::FMenuItem Drive;
|
||||
finalcut::FStatusBar Statusbar;
|
||||
finalcut::FStatusKey key_F1;
|
||||
finalcut::FStatusKey key_F2;
|
||||
finalcut::FStatusKey key_F3;
|
||||
finalcut::FButton MyButton1;
|
||||
finalcut::FButton MyButton2;
|
||||
finalcut::FButton MyButton3;
|
||||
finalcut::FButtonGroup radioButtonGroup;
|
||||
finalcut::FRadioButton radio1;
|
||||
finalcut::FRadioButton radio2;
|
||||
finalcut::FButtonGroup checkButtonGroup;
|
||||
finalcut::FCheckBox check1;
|
||||
finalcut::FCheckBox check2;
|
||||
finalcut::FLineEdit myLineEdit;
|
||||
finalcut::FButton MyButton4;
|
||||
finalcut::FButton MyButton5;
|
||||
finalcut::FButton MyButton6;
|
||||
finalcut::FListBox myList;
|
||||
finalcut::FLabel headline;
|
||||
finalcut::FLabel tagged;
|
||||
finalcut::FLabel tagged_count;
|
||||
finalcut::FLabel sum;
|
||||
finalcut::FLabel sum_count;
|
||||
finalcut::FString clipboard;
|
||||
bool initialized{false};
|
||||
finalcut::FMenuBar Menubar{this};
|
||||
// Menu bar items
|
||||
finalcut::FMenu File{"&File", &Menubar};
|
||||
finalcut::FMenu Edit{"&Edit", &Menubar};
|
||||
finalcut::FMenu View{"&View", &Menubar};
|
||||
finalcut::FMenuItem Options{"&Options", &Menubar};
|
||||
finalcut::FDialogListMenu Window{"&Window", &Menubar};
|
||||
finalcut::FMenuItem Help{"&Help", &Menubar};
|
||||
// "File" menu items
|
||||
finalcut::FMenuItem Open{"&Open...", &File};
|
||||
finalcut::FMenu Recent{"&System files", &File};
|
||||
finalcut::FMenuItem Line1{&File};
|
||||
finalcut::FMenuItem Quit{"&Quit", &File};
|
||||
// "Recent" menu items
|
||||
finalcut::FMenuItem File1{"/etc/services", &Recent};
|
||||
finalcut::FMenuItem File2{"/etc/fstab", &Recent};
|
||||
finalcut::FMenuItem File3{"/etc/passwd", &Recent};
|
||||
// "Edit" menu items
|
||||
finalcut::FMenuItem Undo{finalcut::fc::Fckey_z, "Undo", &Edit};
|
||||
finalcut::FMenuItem Redo{finalcut::fc::Fckey_y, "Redo", &Edit};
|
||||
finalcut::FMenuItem Line2{&Edit};
|
||||
finalcut::FMenuItem Cut{finalcut::fc::Fckey_x, "Cu&t", &Edit};
|
||||
finalcut::FMenuItem Copy{finalcut::fc::Fckey_c, "&Copy", &Edit};
|
||||
finalcut::FMenuItem Paste{finalcut::fc::Fckey_v, "&Paste", &Edit};
|
||||
finalcut::FMenuItem Clear{finalcut::fc::Fkey_dc, "C&lear", &Edit};
|
||||
// "View" menu items
|
||||
finalcut::FMenuItem Env{"&Terminal...", &View};
|
||||
finalcut::FMenuItem Drive{"&Drive symbols...", &View};
|
||||
// Statusbar
|
||||
finalcut::FStatusBar Statusbar{this};
|
||||
finalcut::FStatusKey key_F1{finalcut::fc::Fkey_f1, "About", &Statusbar};
|
||||
finalcut::FStatusKey key_F2{finalcut::fc::Fkey_f2, "View", &Statusbar};
|
||||
finalcut::FStatusKey key_F3{finalcut::fc::Fkey_f3, "Quit", &Statusbar};
|
||||
// Dialog widgets
|
||||
finalcut::FButton MyButton1{this};
|
||||
finalcut::FButton MyButton2{this};
|
||||
finalcut::FButton MyButton3{this};
|
||||
finalcut::FButtonGroup radioButtonGroup{"Button", this};
|
||||
finalcut::FRadioButton radio1{"E&nable", &radioButtonGroup};
|
||||
finalcut::FRadioButton radio2{&radioButtonGroup};
|
||||
finalcut::FButtonGroup checkButtonGroup{"Options", this};
|
||||
finalcut::FCheckBox check1{"&Bitmode", &checkButtonGroup};
|
||||
finalcut::FCheckBox check2{"&8-Bit", &checkButtonGroup};
|
||||
finalcut::FLineEdit myLineEdit{this};
|
||||
finalcut::FButton MyButton4{this};
|
||||
finalcut::FButton MyButton5{this};
|
||||
finalcut::FButton MyButton6{this};
|
||||
finalcut::FListBox myList{this};
|
||||
finalcut::FLabel headline{this};
|
||||
finalcut::FLabel tagged{L"Tagged:", this};
|
||||
finalcut::FLabel tagged_count{this};
|
||||
finalcut::FLabel sum{L"Sum:", this};
|
||||
finalcut::FLabel sum_count{this};
|
||||
finalcut::FString clipboard{};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
MyDialog::MyDialog (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, initialized(false)
|
||||
, Menubar(this)
|
||||
, File("&File", &Menubar)
|
||||
, Edit("&Edit", &Menubar)
|
||||
, View("&View", &Menubar)
|
||||
, Options("&Options", &Menubar)
|
||||
, Window("&Window", &Menubar)
|
||||
, Help("&Help", &Menubar)
|
||||
, Open("&Open...", &File)
|
||||
, Recent("&System files", &File)
|
||||
, Line1(&File)
|
||||
, Quit("&Quit", &File)
|
||||
, File1("/etc/services", &Recent)
|
||||
, File2("/etc/fstab", &Recent)
|
||||
, File3("/etc/passwd", &Recent)
|
||||
, Undo(finalcut::fc::Fckey_z, "Undo", &Edit)
|
||||
, Redo(finalcut::fc::Fckey_y, "Redo", &Edit)
|
||||
, Line2(&Edit)
|
||||
, Cut(finalcut::fc::Fckey_x, "Cu&t", &Edit)
|
||||
, Copy(finalcut::fc::Fckey_c, "&Copy", &Edit)
|
||||
, Paste(finalcut::fc::Fckey_v, "&Paste", &Edit)
|
||||
, Clear(finalcut::fc::Fkey_dc, "C&lear", &Edit)
|
||||
, Env("&Terminal...", &View)
|
||||
, Drive("&Drive symbols...", &View)
|
||||
, Statusbar(this)
|
||||
, key_F1(finalcut::fc::Fkey_f1, "About", &Statusbar)
|
||||
, key_F2(finalcut::fc::Fkey_f2, "View", &Statusbar)
|
||||
, key_F3(finalcut::fc::Fkey_f3, "Quit", &Statusbar)
|
||||
, MyButton1(this)
|
||||
, MyButton2(this)
|
||||
, MyButton3(this)
|
||||
, radioButtonGroup("Button", this)
|
||||
, radio1("E&nable", &radioButtonGroup)
|
||||
, radio2(&radioButtonGroup)
|
||||
, checkButtonGroup("Options", this)
|
||||
, check1("&Bitmode", &checkButtonGroup)
|
||||
, check2("&8-Bit", &checkButtonGroup)
|
||||
, myLineEdit(this)
|
||||
, MyButton4(this)
|
||||
, MyButton5(this)
|
||||
, MyButton6(this)
|
||||
, myList(this)
|
||||
, headline(this)
|
||||
, tagged(L"Tagged:", this)
|
||||
, tagged_count(this)
|
||||
, sum(L"Sum:", this)
|
||||
, sum_count(this)
|
||||
, clipboard()
|
||||
{
|
||||
initMenu(); // Initialize the program menu
|
||||
initMenuCallbacks(); // Initialize program menu callbacks
|
||||
|
@ -816,7 +769,7 @@ void MyDialog::cb_noFunctionMsg (finalcut::FWidget* widget, data_ptr)
|
|||
void MyDialog::cb_about (finalcut::FWidget*, data_ptr)
|
||||
{
|
||||
const char libver[] = F_VERSION;
|
||||
finalcut::FString line(2, wchar_t(finalcut::fc::BoxDrawingsHorizontal));
|
||||
finalcut::FString line(2, finalcut::fc::BoxDrawingsHorizontal);
|
||||
|
||||
finalcut::FMessageBox info ( "About"
|
||||
, line + L" The Final Cut " + line + "\n\n"
|
||||
|
@ -839,7 +792,7 @@ void MyDialog::cb_terminfo (finalcut::FWidget*, data_ptr)
|
|||
<< " Type: " << getTermType() << "\n"
|
||||
<< " Name: " << getTermFileName() << "\n"
|
||||
<< " Mode: " << getEncodingString() << "\n"
|
||||
<< " Size: " << x << wchar_t(finalcut::fc::Times)
|
||||
<< " Size: " << x << finalcut::fc::Times
|
||||
<< y << "\n"
|
||||
<< "Colors: " << getMaxColor()
|
||||
, finalcut::FMessageBox::Ok, 0, 0, this
|
||||
|
|
|
@ -35,11 +35,15 @@ class Watch : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Watch (finalcut::FWidget* = 0);
|
||||
|
||||
explicit Watch (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
Watch (const Watch&) = delete;
|
||||
// Destructor
|
||||
~Watch();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
Watch& operator = (const Watch&) = delete;
|
||||
|
||||
// Method
|
||||
void printTime();
|
||||
|
||||
|
@ -56,31 +60,19 @@ class Watch : public finalcut::FDialog
|
|||
virtual void adjustSize();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
Watch (const Watch&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
Watch& operator = (const Watch&);
|
||||
|
||||
// Data Members
|
||||
bool sec;
|
||||
finalcut::FLabel time_label;
|
||||
finalcut::FLabel time_str;
|
||||
finalcut::FSwitch clock_sw;
|
||||
finalcut::FSwitch seconds_sw;
|
||||
finalcut::FButton quit_btn;
|
||||
bool sec{true};
|
||||
finalcut::FLabel time_label{L"Time", this};
|
||||
finalcut::FLabel time_str{L"--:--:--", this};
|
||||
finalcut::FSwitch clock_sw{L"Clock", this};
|
||||
finalcut::FSwitch seconds_sw{L"Seconds", this};
|
||||
finalcut::FButton quit_btn{L"&Quit", this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
Watch::Watch (FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, sec(true)
|
||||
, time_label(L"Time", this)
|
||||
, time_str(L"--:--:--", this)
|
||||
, clock_sw(L"Clock", this)
|
||||
, seconds_sw(L"Seconds", this)
|
||||
, quit_btn(L"&Quit", this)
|
||||
{
|
||||
setText ("Watch");
|
||||
int pw = int(getParentWidget()->getWidth());
|
||||
|
|
|
@ -35,18 +35,16 @@ class SmallWindow : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit SmallWindow (finalcut::FWidget* = 0);
|
||||
|
||||
explicit SmallWindow (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
SmallWindow (const SmallWindow&) = delete;
|
||||
// Destructor
|
||||
~SmallWindow();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
SmallWindow (const SmallWindow&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
SmallWindow& operator = (const SmallWindow&);
|
||||
SmallWindow& operator = (const SmallWindow&) = delete;
|
||||
|
||||
private:
|
||||
// Method
|
||||
virtual void adjustSize();
|
||||
|
||||
|
@ -55,22 +53,17 @@ class SmallWindow : public finalcut::FDialog
|
|||
virtual void onTimer (finalcut::FTimerEvent*);
|
||||
|
||||
// Data Members
|
||||
finalcut::FLabel left_arrow;
|
||||
finalcut::FLabel right_arrow;
|
||||
finalcut::FLabel top_left_label;
|
||||
finalcut::FLabel top_right_label;
|
||||
finalcut::FLabel bottom_label;
|
||||
finalcut::FLabel left_arrow{this};
|
||||
finalcut::FLabel right_arrow{this};
|
||||
finalcut::FLabel top_left_label{this};
|
||||
finalcut::FLabel top_right_label{this};
|
||||
finalcut::FLabel bottom_label{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
SmallWindow::SmallWindow (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, left_arrow(this)
|
||||
, right_arrow(this)
|
||||
, top_left_label(this)
|
||||
, top_right_label(this)
|
||||
, bottom_label(this)
|
||||
{
|
||||
wchar_t arrow_up, arrow_down;
|
||||
arrow_up = finalcut::fc::BlackUpPointingTriangle;
|
||||
|
@ -171,43 +164,36 @@ class Window : public finalcut::FDialog
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit Window (finalcut::FWidget* = 0);
|
||||
|
||||
explicit Window (finalcut::FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
Window (const Window&) = delete;
|
||||
// Destructor
|
||||
~Window();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
Window& operator = (const Window&) = delete;
|
||||
|
||||
private:
|
||||
// Typedefs
|
||||
typedef void (Window::*WindowCallback)(finalcut::FWidget*, data_ptr);
|
||||
typedef void (finalcut::FApplication::*FAppCallback)(finalcut::FWidget*, data_ptr);
|
||||
|
||||
class win_data
|
||||
struct win_data
|
||||
{
|
||||
public:
|
||||
win_data()
|
||||
: is_open(false)
|
||||
, title()
|
||||
, dgl(0)
|
||||
{ }
|
||||
// Constructor
|
||||
win_data() = default;
|
||||
// Disable copy constructor
|
||||
win_data (const win_data&) = delete;
|
||||
|
||||
// Disable assignment operator (=)
|
||||
win_data& operator = (const win_data&) = delete;
|
||||
|
||||
// Data Members
|
||||
bool is_open;
|
||||
finalcut::FString title;
|
||||
SmallWindow* dgl;
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
win_data (const win_data&);
|
||||
// Disable assignment operator (=)
|
||||
win_data& operator = (const win_data&);
|
||||
bool is_open{false};
|
||||
finalcut::FString title{};
|
||||
SmallWindow* dgl{nullptr};
|
||||
};
|
||||
|
||||
// Disable copy constructor
|
||||
Window (const Window&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
Window& operator = (const Window&);
|
||||
|
||||
// Method
|
||||
void configureFileMenuItems();
|
||||
void configureDialogButtons();
|
||||
|
@ -227,44 +213,28 @@ class Window : public finalcut::FDialog
|
|||
void cb_destroyWindow (finalcut::FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
std::vector<win_data*> windows;
|
||||
finalcut::FString drop_down_symbol;
|
||||
finalcut::FMenuBar Menubar;
|
||||
finalcut::FMenu File;
|
||||
finalcut::FDialogListMenu DglList;
|
||||
finalcut::FStatusBar Statusbar;
|
||||
finalcut::FMenuItem New;
|
||||
finalcut::FMenuItem Close;
|
||||
finalcut::FMenuItem Line1;
|
||||
finalcut::FMenuItem Next;
|
||||
finalcut::FMenuItem Previous;
|
||||
finalcut::FMenuItem Line2;
|
||||
finalcut::FMenuItem Quit;
|
||||
finalcut::FButton CreateButton;
|
||||
finalcut::FButton CloseButton;
|
||||
finalcut::FButton QuitButton;
|
||||
std::vector<win_data*> windows{};
|
||||
finalcut::FString drop_down_symbol{finalcut::fc::BlackDownPointingTriangle};
|
||||
finalcut::FMenuBar Menubar{this};
|
||||
finalcut::FMenu File{"&File", &Menubar};
|
||||
finalcut::FDialogListMenu DglList{drop_down_symbol, &Menubar};
|
||||
finalcut::FStatusBar Statusbar{this};
|
||||
finalcut::FMenuItem New{"&New", &File};
|
||||
finalcut::FMenuItem Close{"&Close", &File};
|
||||
finalcut::FMenuItem Line1{&File};
|
||||
finalcut::FMenuItem Next{"Ne&xt window", &File};
|
||||
finalcut::FMenuItem Previous{"&Previous window", &File};
|
||||
finalcut::FMenuItem Line2{&File};
|
||||
finalcut::FMenuItem Quit{"&Quit", &File};
|
||||
finalcut::FButton CreateButton{this};
|
||||
finalcut::FButton CloseButton{this};
|
||||
finalcut::FButton QuitButton{this};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
Window::Window (finalcut::FWidget* parent)
|
||||
: finalcut::FDialog(parent)
|
||||
, windows()
|
||||
, drop_down_symbol(wchar_t(finalcut::fc::BlackDownPointingTriangle))
|
||||
, Menubar(this)
|
||||
, File("&File", &Menubar)
|
||||
, DglList(drop_down_symbol, &Menubar)
|
||||
, Statusbar(this)
|
||||
, New("&New", &File)
|
||||
, Close("&Close", &File)
|
||||
, Line1(&File)
|
||||
, Next("Ne&xt window", &File)
|
||||
, Previous("&Previous window", &File)
|
||||
, Line2(&File)
|
||||
, Quit("&Quit", &File)
|
||||
, CreateButton(this)
|
||||
, CloseButton(this)
|
||||
, QuitButton(this)
|
||||
{
|
||||
// Menu bar item
|
||||
File.setStatusbarMessage ("File management commands");
|
||||
|
@ -578,7 +548,7 @@ void Window::cb_destroyWindow (finalcut::FWidget*, data_ptr data)
|
|||
if ( win_dat )
|
||||
{
|
||||
win_dat->is_open = false;
|
||||
win_dat->dgl = 0;
|
||||
win_dat->dgl = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
-------------------------------------------------------------------
|
||||
Sun Nov 25 00:03:36 UTC 2018 - Markus Gans <guru.mail@muenster.de>
|
||||
- Release (version 0.5.0)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 04 07:53:19 UTC 2017 - Markus Gans <guru.mail@muenster.de>
|
||||
- Release (version 0.4.0)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 27 14:00:41 UTC 2016 - Markus Gans <guru.mail@muenster.de>
|
||||
- Release (version 0.3.0)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 19 21:01:48 UTC 2015 - Markus Gans <guru.mail@muenster.de>
|
||||
- Release (version 0.2.0)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 18 22:35:57 UTC 2015 - Markus Gans <guru.mail@muenster.de>
|
||||
- Initial Release (version 0.1.1)
|
188
finalcut.spec.in
188
finalcut.spec.in
|
@ -4,46 +4,22 @@
|
|||
# Copyright (c) 2018 by Markus Gans
|
||||
#
|
||||
|
||||
Name: @PACKAGE@
|
||||
%define libname libfinal
|
||||
%define libsoname %{libname}0
|
||||
|
||||
Version: @VERSION@
|
||||
Release: %{buildno}
|
||||
License: LGPL-3.0
|
||||
Summary: The Final Cut
|
||||
Url: https://github.com/gansm/finalcut/
|
||||
Group: System/Libraries
|
||||
Source: finalcut-%{version}.tar.gz
|
||||
BuildRequires: automake
|
||||
BuildRequires: libtool
|
||||
BuildRequires: gcc-c++
|
||||
%define sover 0
|
||||
Name: @PACKAGE@
|
||||
Version: @VERSION@
|
||||
Release: %{buildno}
|
||||
Summary: Console widget library
|
||||
License: LGPL-3.0-or-later
|
||||
Group: Development/Libraries/C and C++
|
||||
URL: https://github.com/gansm/finalcut/
|
||||
Source: https://github.com/gansm/finalcut/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||
BuildRequires: automake
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: gpm-devel
|
||||
BuildRequires: libtool
|
||||
BuildRequires: ncurses-devel
|
||||
|
||||
%if 0%{?suse_version}
|
||||
%if 0%{?suse_version} > 1130
|
||||
BuildRequires: gpm-devel
|
||||
%else
|
||||
BuildRequires: gpm
|
||||
%endif
|
||||
%else
|
||||
BuildRequires: gpm-devel
|
||||
%endif
|
||||
|
||||
# Additionally required for tool operations
|
||||
Requires: xxd
|
||||
Requires: sed
|
||||
Requires: tr
|
||||
Requires: grep
|
||||
Requires: gzip
|
||||
Requires: bdftopcf
|
||||
Requires: autoconf-archive
|
||||
Requires: gcc-c++
|
||||
|
||||
Prefix: %_prefix
|
||||
BuildRoot: %{_tmppath}/finalcut-%{version}-build
|
||||
|
||||
%description
|
||||
The Final Cut is a class library and widget toolkit with full mouse
|
||||
support for creating a text-based user interface. The library supports
|
||||
|
@ -53,13 +29,21 @@ The C++ class design was inspired by the Qt framework. It provides
|
|||
common controls like dialog windows, push buttons, check boxes,
|
||||
radio buttons, input lines, list boxes, status bars and so on.
|
||||
|
||||
%package devel
|
||||
%package -n libfinal-devel
|
||||
Summary: Development files for The Final Cut text widget library
|
||||
Group: Development/Libraries/C and C++
|
||||
Summary: Development files for the final cut library
|
||||
Requires: %{libname} = %{version}
|
||||
Requires: %{name} = %{version}
|
||||
Requires: libfinal%{sover} = %{version}
|
||||
Requires: bdftopcf
|
||||
Requires: coreutils
|
||||
Requires: gcc-c++
|
||||
Requires: grep
|
||||
Requires: gzip
|
||||
Requires: sed
|
||||
Requires: vim
|
||||
Provides: libfinal-devel = %{version}
|
||||
Recommends: libfinal-examples = %{version}
|
||||
|
||||
%description devel
|
||||
%description -n libfinal-devel
|
||||
The Final Cut is a class library and widget toolkit with full mouse
|
||||
support for creating a text-based user interface. The library supports
|
||||
the programmer to develop an application for the text console. It allows
|
||||
|
@ -68,13 +52,12 @@ The C++ class design was inspired by the Qt framework. It provides
|
|||
common controls like dialog windows, push buttons, check boxes,
|
||||
radio buttons, input lines, list boxes, status bars and so on.
|
||||
|
||||
%package -n %{libsoname}
|
||||
Group: System/Libraries
|
||||
Summary: Console widget toolkit
|
||||
Provides: %{libname} = %{version}
|
||||
Provides: %{name} = %{version}
|
||||
%package -n libfinal-examples
|
||||
Summary: Example files for The Final Cut library
|
||||
Group: Development/Languages/C and C++
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n %{libsoname}
|
||||
%description -n libfinal-examples
|
||||
The Final Cut is a class library and widget toolkit with full mouse
|
||||
support for creating a text-based user interface. The library supports
|
||||
the programmer to develop an application for the text console. It allows
|
||||
|
@ -83,11 +66,24 @@ The C++ class design was inspired by the Qt framework. It provides
|
|||
common controls like dialog windows, push buttons, check boxes,
|
||||
radio buttons, input lines, list boxes, status bars and so on.
|
||||
|
||||
%package static
|
||||
Group: System/Libraries
|
||||
Summary: Console widget toolkit
|
||||
%package -n libfinal%{sover}
|
||||
Summary: Console widget toolkit
|
||||
Group: System/Libraries
|
||||
|
||||
%description static
|
||||
%description -n libfinal%{sover}
|
||||
The Final Cut is a class library and widget toolkit with full mouse
|
||||
support for creating a text-based user interface. The library supports
|
||||
the programmer to develop an application for the text console. It allows
|
||||
the simultaneous handling of multiple windows on the screen.
|
||||
The C++ class design was inspired by the Qt framework. It provides
|
||||
common controls like dialog windows, push buttons, check boxes,
|
||||
radio buttons, input lines, list boxes, status bars and so on.
|
||||
|
||||
%package -n libfinal-static
|
||||
Summary: Console widget toolkit
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libfinal-static
|
||||
The Final Cut is a class library and widget toolkit with full mouse
|
||||
support for creating a text-based user interface. The library supports
|
||||
the programmer to develop an application for the text console. It allows
|
||||
|
@ -97,66 +93,56 @@ common controls like dialog windows, push buttons, check boxes,
|
|||
radio buttons, input lines, list boxes, status bars and so on.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
autoreconf -v --install --force
|
||||
%define warn_flags -Wall -Wextra -Wpedantic
|
||||
export CPPFLAGS="$RPM_OPT_FLAGS %{warn_flags}"
|
||||
autoreconf -vif
|
||||
export CPPFLAGS="%{optflags} -Wall -Wextra -Wpedantic"
|
||||
%ifnarch %ix86 x86_64
|
||||
export CPPFLAGS="$CPPFLAGS -Wno-error=unused-parameter"
|
||||
%endif
|
||||
%configure
|
||||
make %{?_smp_mflags} V=1
|
||||
|
||||
|
||||
%install
|
||||
make install libdir=${RPM_BUILD_ROOT}%{_libdir}/ \
|
||||
includedir=${RPM_BUILD_ROOT}%{_includedir} \
|
||||
bindir=${RPM_BUILD_ROOT}%{_bindir} \
|
||||
docdir=${RPM_BUILD_ROOT}%{_docdir}/finalcut/
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_libdir}/finalcut/examples
|
||||
cp -p examples/.libs/* ${RPM_BUILD_ROOT}%{_libdir}/finalcut/examples
|
||||
cp -p examples/*.cpp ${RPM_BUILD_ROOT}%{_libdir}/finalcut/examples
|
||||
cp -p examples/Makefile.clang ${RPM_BUILD_ROOT}%{_libdir}/finalcut/examples
|
||||
cp -p examples/Makefile.gcc ${RPM_BUILD_ROOT}%{_libdir}/finalcut/examples
|
||||
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libfinal.la
|
||||
|
||||
%post -n %{libsoname} -p /sbin/ldconfig
|
||||
|
||||
%postun -n %{libsoname} -p /sbin/ldconfig
|
||||
make install libdir=%{buildroot}%{_libdir}/ \
|
||||
includedir=%{buildroot}%{_includedir} \
|
||||
bindir=%{buildroot}%{_bindir} \
|
||||
docdir=%{buildroot}%{_docdir}/%{name}/
|
||||
mkdir -p %{buildroot}%{_docdir}/%{name}/examples
|
||||
cp -p examples/*.cpp %{buildroot}%{_docdir}/%{name}/examples
|
||||
cp -p examples/Makefile.clang %{buildroot}%{_docdir}/%{name}/examples
|
||||
cp -p examples/Makefile.gcc %{buildroot}%{_docdir}/%{name}/examples
|
||||
rm -f %{buildroot}%{_libdir}/libfinal.la %{buildroot}%{_libdir}/%{name}/examples
|
||||
rm %{buildroot}%{_docdir}/%{name}/ChangeLog %{buildroot}%{_docdir}/%{name}/COPYING.LESSER
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
%{__rm} -rf %{buildroot}
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%dir %{_docdir}/finalcut
|
||||
%dir %{_libdir}/finalcut
|
||||
%dir %{_libdir}/finalcut/examples
|
||||
%{_docdir}/finalcut/*
|
||||
%{_libdir}/pkgconfig/*
|
||||
%{_libdir}/%{libname}.so
|
||||
%{_libdir}/finalcut/*
|
||||
%{_includedir}/*
|
||||
%post -n libfinal%{sover} -p /sbin/ldconfig
|
||||
%postun -n libfinal%{sover} -p /sbin/ldconfig
|
||||
|
||||
%files -n %{libsoname}
|
||||
%defattr(-,root,root)
|
||||
%_libdir/%{libname}.so.*
|
||||
%files -n libfinal-devel
|
||||
%if 0%{?sle_version} > 120200 || 0%{?suse_version} > 1500
|
||||
%license COPYING.LESSER
|
||||
%else
|
||||
%doc COPYING.LESSER
|
||||
%endif
|
||||
%doc ChangeLog README.md
|
||||
%exclude %{_docdir}/%{name}/examples
|
||||
%{_docdir}/%{name}
|
||||
%{_libdir}/libfinal.so
|
||||
%{_libdir}/pkgconfig/%{name}.pc
|
||||
%{_includedir}/final
|
||||
|
||||
%files static
|
||||
%files -n libfinal-examples
|
||||
%{_docdir}/%{name}/examples
|
||||
|
||||
%files -n libfinal%{sover}
|
||||
%{_libdir}/libfinal.so.*
|
||||
|
||||
%files -n libfinal-static
|
||||
%defattr (-,root,root)
|
||||
%{_libdir}/%{libname}.a
|
||||
%{_libdir}/libfinal.a
|
||||
|
||||
%changelog
|
||||
* Sun Nov 25 2018 Markus Gans <guru.mail@muenster.de> - 0.5.0-1
|
||||
- Release (version 0.5.0)
|
||||
|
||||
* Sat Nov 04 2017 Markus Gans <guru.mail@muenster.de> - 0.4.0-1
|
||||
- Release (version 0.4.0)
|
||||
|
||||
* Sun Nov 27 2016 Markus Gans <guru.mail@muenster.de> - 0.3.0-1
|
||||
- Release (version 0.3.0)
|
||||
|
||||
* Sat Dec 19 2015 Markus Gans <guru.mail@muenster.de> - 0.2.0-1
|
||||
- Release (version 0.2.0)
|
||||
|
||||
* Fri Sep 18 2015 Markus Gans <guru.mail@muenster.de> - 0.1.1-1
|
||||
- Initial Release (version 0.1.1)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Makefile.am - The Final Cut library
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
AM_CPPFLAGS = -Iinclude -Wall -Werror -DCOMPILE_FINAL_CUT
|
||||
AM_CPPFLAGS = -Iinclude -Wall -Werror -DCOMPILE_FINAL_CUT -std=c++11
|
||||
|
||||
SUBDIRS = .
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#-----------------------------------------------------------------------------
|
||||
|
||||
# This is where make install will install the library
|
||||
VERSION = "0.5.0"
|
||||
VERSION = "0.5.1"
|
||||
MAJOR := $(shell echo ${VERSION} | cut -d. -f1)
|
||||
LIBDIR = /usr/local/lib
|
||||
INCLUDEDIR1 = include/final
|
||||
|
@ -63,7 +63,7 @@ INCLUDE_HEADERS = \
|
|||
|
||||
# compiler parameter
|
||||
CXX = clang++
|
||||
CCXFLAGS = $(OPTIMIZE) $(PROFILE) -DCOMPILE_FINAL_CUT $(DEBUG) $(VER) $(GPM) -fexceptions
|
||||
CCXFLAGS = $(OPTIMIZE) $(PROFILE) -DCOMPILE_FINAL_CUT $(DEBUG) $(VER) $(GPM) -fexceptions -std=c++11
|
||||
MAKEFILE = -f Makefile.clang
|
||||
LDFLAGS = $(TERMCAP) -lgpm
|
||||
INCLUDES = -Iinclude
|
||||
|
@ -149,7 +149,7 @@ all: dep $(OBJS)
|
|||
$(LIB): all
|
||||
|
||||
debug:
|
||||
$(MAKE) $(MAKEFILE) DEBUG="-g -D DEBUG -Wall -Wextra -Wpedantic -Weverything -Wpadded -Wno-reserved-id-macro"
|
||||
$(MAKE) $(MAKEFILE) DEBUG="-g -D DEBUG -Wall -Wextra -Wpedantic -Weverything -Wpadded -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-implicit-fallthrough -Wno-reserved-id-macro"
|
||||
|
||||
profile:
|
||||
$(MAKE) $(MAKEFILE) PROFILE="-pg"
|
||||
|
@ -179,7 +179,7 @@ clean:
|
|||
$(RM) $(LIB)* $(OBJS) .depend *.gcno *.gcda *.gch *.plist *~
|
||||
|
||||
dep:
|
||||
$(CXX) $(INCLUDES) -DCOMPILE_FINAL_CUT -MM *.cpp >.depend
|
||||
$(CXX) $(INCLUDES) -std=c++11 -DCOMPILE_FINAL_CUT -MM *.cpp >.depend
|
||||
|
||||
#
|
||||
# include .depend if it exists
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#-----------------------------------------------------------------------------
|
||||
|
||||
# This is where make install will install the library
|
||||
VERSION = "0.5.0"
|
||||
VERSION = "0.5.1"
|
||||
MAJOR := $(shell echo ${VERSION} | cut -d. -f1)
|
||||
LIBDIR = /usr/local/lib
|
||||
INCLUDEDIR1 = include/final
|
||||
|
@ -63,7 +63,7 @@ INCLUDE_HEADERS = \
|
|||
|
||||
# compiler parameter
|
||||
CXX = g++
|
||||
CCXFLAGS = $(OPTIMIZE) $(PROFILE) -DCOMPILE_FINAL_CUT $(DEBUG) $(VER) $(GPM) -fexceptions
|
||||
CCXFLAGS = $(OPTIMIZE) $(PROFILE) -DCOMPILE_FINAL_CUT $(DEBUG) $(VER) $(GPM) -fexceptions -std=c++11
|
||||
MAKEFILE = -f Makefile.gcc
|
||||
LDFLAGS = $(TERMCAP) -lgpm
|
||||
INCLUDES = -Iinclude
|
||||
|
@ -178,7 +178,7 @@ clean:
|
|||
$(RM) $(LIB)* $(OBJS) .depend *.gcno *.gcda *.prof *~
|
||||
|
||||
dep:
|
||||
$(CXX) $(INCLUDES) -MM -DCOMPILE_FINAL_CUT *.cpp >.depend
|
||||
$(CXX) $(INCLUDES) -std=c++11 -MM -DCOMPILE_FINAL_CUT *.cpp >.depend
|
||||
|
||||
#
|
||||
# include .depend if it exists
|
||||
|
|
|
@ -32,26 +32,26 @@ namespace finalcut
|
|||
{
|
||||
|
||||
// Global application object
|
||||
static FApplication* app_object = 0;
|
||||
static FApplication* app_object = nullptr;
|
||||
|
||||
// Flag to exit the local event loop
|
||||
static bool app_exit_loop = false;
|
||||
|
||||
// Static attributes
|
||||
FWidget* FWidget::main_widget = 0; // main application widget
|
||||
FWidget* FWidget::active_window = 0; // the active window
|
||||
FWidget* FWidget::focus_widget = 0; // has keyboard input focus
|
||||
FWidget* FWidget::clicked_widget = 0; // is focused by click
|
||||
FWidget* FWidget::open_menu = 0; // currently open menu
|
||||
FWidget* FWidget::move_size_widget = 0; // move/size by keyboard
|
||||
FWidget* FApplication::keyboard_widget = 0; // has the keyboard focus
|
||||
FKeyboard* FApplication::keyboard = 0; // keyboard access
|
||||
FMouseControl* FApplication::mouse = 0; // mouse control
|
||||
FWidget* FWidget::main_widget = nullptr; // main application widget
|
||||
FWidget* FWidget::active_window = nullptr; // the active window
|
||||
FWidget* FWidget::focus_widget = nullptr; // has keyboard input focus
|
||||
FWidget* FWidget::clicked_widget = nullptr; // is focused by click
|
||||
FWidget* FWidget::open_menu = nullptr; // currently open menu
|
||||
FWidget* FWidget::move_size_widget = nullptr; // move/size by keyboard
|
||||
FWidget* FApplication::keyboard_widget = nullptr; // has the keyboard focus
|
||||
FKeyboard* FApplication::keyboard = nullptr; // keyboard access
|
||||
FMouseControl* FApplication::mouse = nullptr; // mouse control
|
||||
int FApplication::loop_level = 0; // event loop level
|
||||
int FApplication::quit_code = 0;
|
||||
bool FApplication::quit_now = false;
|
||||
|
||||
FApplication::eventQueue* FApplication::event_queue = 0;
|
||||
FApplication::eventQueue* FApplication::event_queue = nullptr;
|
||||
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -64,10 +64,8 @@ FApplication::FApplication ( const int& _argc
|
|||
, char* _argv[]
|
||||
, bool disable_alt_screen )
|
||||
: FWidget(processParameters(_argc, _argv), disable_alt_screen)
|
||||
, app_argc(_argc)
|
||||
, app_argv(_argv)
|
||||
, key_timeout(100000) // 100 ms
|
||||
, dblclick_interval(500000) // 500 ms
|
||||
, app_argc{_argc}
|
||||
, app_argv{_argv}
|
||||
{
|
||||
assert ( ! app_object
|
||||
&& "FApplication: There should be only one application object" );
|
||||
|
@ -89,7 +87,7 @@ FApplication::~FApplication() // destructor
|
|||
if ( event_queue )
|
||||
delete event_queue;
|
||||
|
||||
app_object = 0;
|
||||
app_object = nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
@ -500,16 +498,16 @@ inline void FApplication::findKeyboardWidget()
|
|||
{
|
||||
// Find the widget that has the keyboard focus
|
||||
|
||||
FWidget* widget = 0;
|
||||
FWidget* focus_widget = getFocusWidget();
|
||||
FWidget* move_size_widget = getMoveSizeWidget();
|
||||
FWidget* widget = nullptr;
|
||||
FWidget* focus = getFocusWidget();
|
||||
FWidget* move_size = getMoveSizeWidget();
|
||||
|
||||
if ( focus_widget )
|
||||
if ( focus )
|
||||
{
|
||||
if ( move_size_widget )
|
||||
widget = move_size_widget;
|
||||
if ( move_size )
|
||||
widget = move_size;
|
||||
else
|
||||
widget = focus_widget;
|
||||
widget = focus;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -692,11 +690,11 @@ bool FApplication::processDialogSwitchAccelerator()
|
|||
if ( s > 0 && s >= n )
|
||||
{
|
||||
// unset the move/size mode
|
||||
FWidget* move_size_widget = getMoveSizeWidget();
|
||||
FWidget* move_size = getMoveSizeWidget();
|
||||
|
||||
if ( move_size_widget )
|
||||
if ( move_size )
|
||||
{
|
||||
FWidget* w = move_size_widget;
|
||||
FWidget* w = move_size;
|
||||
setMoveSizeWidget(0);
|
||||
w->redraw();
|
||||
}
|
||||
|
@ -731,11 +729,11 @@ bool FApplication::processAccelerator (const FWidget*& widget)
|
|||
if ( iter->key == keyboard->getKey() )
|
||||
{
|
||||
// unset the move/size mode
|
||||
FWidget* move_size_widget = getMoveSizeWidget();
|
||||
FWidget* move_size = getMoveSizeWidget();
|
||||
|
||||
if ( move_size_widget )
|
||||
if ( move_size )
|
||||
{
|
||||
FWidget* w = move_size_widget;
|
||||
FWidget* w = move_size;
|
||||
setMoveSizeWidget(0);
|
||||
w->redraw();
|
||||
}
|
||||
|
@ -772,13 +770,13 @@ bool FApplication::getMouseEvent()
|
|||
//----------------------------------------------------------------------
|
||||
FWidget*& FApplication::determineClickedWidget()
|
||||
{
|
||||
FWidget*& clicked_widget = getClickedWidget();
|
||||
FWidget*& clicked = getClickedWidget();
|
||||
|
||||
if ( clicked_widget )
|
||||
return clicked_widget;
|
||||
if ( clicked )
|
||||
return clicked;
|
||||
|
||||
if ( ! mouse )
|
||||
return clicked_widget;
|
||||
return clicked;
|
||||
|
||||
if ( ! mouse->isLeftButtonPressed()
|
||||
&& ! mouse->isLeftButtonDoubleClick()
|
||||
|
@ -786,7 +784,7 @@ FWidget*& FApplication::determineClickedWidget()
|
|||
&& ! mouse->isMiddleButtonPressed()
|
||||
&& ! mouse->isWheelUp()
|
||||
&& ! mouse->isWheelDown() )
|
||||
return clicked_widget;
|
||||
return clicked;
|
||||
|
||||
const FPoint& mouse_position = mouse->getPos();
|
||||
|
||||
|
@ -797,11 +795,11 @@ FWidget*& FApplication::determineClickedWidget()
|
|||
{
|
||||
// Determine the widget at the current click position
|
||||
FWidget* child = childWidgetAt (window, mouse_position);
|
||||
clicked_widget = ( child != 0 ) ? child : window;
|
||||
setClickedWidget (clicked_widget);
|
||||
clicked = ( child != 0 ) ? child : window;
|
||||
setClickedWidget (clicked);
|
||||
}
|
||||
|
||||
return clicked_widget;
|
||||
return clicked;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -809,11 +807,11 @@ void FApplication::unsetMoveSizeMode()
|
|||
{
|
||||
// Unset the move/size mode
|
||||
|
||||
FWidget* move_size_widget = getMoveSizeWidget();
|
||||
FWidget* move_size = getMoveSizeWidget();
|
||||
|
||||
if ( move_size_widget )
|
||||
if ( move_size )
|
||||
{
|
||||
FWidget* w = move_size_widget;
|
||||
FWidget* w = move_size;
|
||||
setMoveSizeWidget(0);
|
||||
w->redraw();
|
||||
}
|
||||
|
@ -824,10 +822,10 @@ void FApplication::closeOpenMenu()
|
|||
{
|
||||
// Close the open menu
|
||||
|
||||
FWidget* open_menu = getOpenMenu();
|
||||
FMenu* menu = static_cast<FMenu*>(open_menu);
|
||||
FWidget* openmenu = getOpenMenu();
|
||||
FMenu* menu = static_cast<FMenu*>(openmenu);
|
||||
|
||||
if ( ! open_menu || ( mouse && mouse->isMoved()) )
|
||||
if ( ! openmenu || ( mouse && mouse->isMoved()) )
|
||||
return;
|
||||
|
||||
if ( mouse )
|
||||
|
@ -867,10 +865,10 @@ void FApplication::unselectMenubarItems()
|
|||
{
|
||||
// Unselect the menu bar items
|
||||
|
||||
FWidget* open_menu = getOpenMenu();
|
||||
FWidget* openmenu = getOpenMenu();
|
||||
FMenuBar* menu_bar = getMenuBar();
|
||||
|
||||
if ( open_menu || (mouse && mouse->isMoved()) )
|
||||
if ( openmenu || (mouse && mouse->isMoved()) )
|
||||
return;
|
||||
|
||||
if ( ! menu_bar )
|
||||
|
@ -907,9 +905,9 @@ void FApplication::unselectMenubarItems()
|
|||
//----------------------------------------------------------------------
|
||||
void FApplication::sendMouseEvent()
|
||||
{
|
||||
FWidget* clicked_widget = getClickedWidget();
|
||||
FWidget* clicked = getClickedWidget();
|
||||
|
||||
if ( ! clicked_widget )
|
||||
if ( ! clicked )
|
||||
return;
|
||||
|
||||
if ( ! mouse )
|
||||
|
@ -928,7 +926,7 @@ void FApplication::sendMouseEvent()
|
|||
if ( mouse->isMetaKeyPressed() )
|
||||
key_state |= fc::MetaButton;
|
||||
|
||||
widgetMousePos = clicked_widget->termToWidgetPos(mouse_position);
|
||||
widgetMousePos = clicked->termToWidgetPos(mouse_position);
|
||||
|
||||
if ( mouse->isMoved() )
|
||||
{
|
||||
|
@ -953,7 +951,7 @@ void FApplication::sendMouseMoveEvent ( const FPoint& widgetMousePos
|
|||
if ( ! mouse )
|
||||
return;
|
||||
|
||||
FWidget* clicked_widget = getClickedWidget();
|
||||
FWidget* clicked = getClickedWidget();
|
||||
|
||||
if ( mouse->isLeftButtonPressed() )
|
||||
{
|
||||
|
@ -961,7 +959,7 @@ void FApplication::sendMouseMoveEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::LeftButton | key_state );
|
||||
sendEvent (clicked_widget, &m_down_ev);
|
||||
sendEvent (clicked, &m_down_ev);
|
||||
}
|
||||
|
||||
if ( mouse->isRightButtonPressed() )
|
||||
|
@ -970,7 +968,7 @@ void FApplication::sendMouseMoveEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::RightButton | key_state );
|
||||
sendEvent (clicked_widget, &m_down_ev);
|
||||
sendEvent (clicked, &m_down_ev);
|
||||
}
|
||||
|
||||
if ( mouse->isMiddleButtonPressed() )
|
||||
|
@ -979,7 +977,7 @@ void FApplication::sendMouseMoveEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::MiddleButton | key_state );
|
||||
sendEvent (clicked_widget, &m_down_ev);
|
||||
sendEvent (clicked, &m_down_ev);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -991,7 +989,7 @@ void FApplication::sendMouseLeftClickEvent ( const FPoint& widgetMousePos
|
|||
if ( ! mouse )
|
||||
return;
|
||||
|
||||
FWidget* clicked_widget = getClickedWidget();
|
||||
FWidget* clicked = getClickedWidget();
|
||||
|
||||
if ( mouse->isLeftButtonDoubleClick() )
|
||||
{
|
||||
|
@ -999,7 +997,7 @@ void FApplication::sendMouseLeftClickEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::LeftButton | key_state );
|
||||
sendEvent (clicked_widget, &m_dblclick_ev);
|
||||
sendEvent (clicked, &m_dblclick_ev);
|
||||
}
|
||||
else if ( mouse->isLeftButtonPressed() )
|
||||
{
|
||||
|
@ -1007,7 +1005,7 @@ void FApplication::sendMouseLeftClickEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::LeftButton | key_state );
|
||||
sendEvent (clicked_widget, &m_down_ev);
|
||||
sendEvent (clicked, &m_down_ev);
|
||||
}
|
||||
else if ( mouse->isLeftButtonReleased() )
|
||||
{
|
||||
|
@ -1015,7 +1013,7 @@ void FApplication::sendMouseLeftClickEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::LeftButton | key_state );
|
||||
FWidget* released_widget = clicked_widget;
|
||||
FWidget* released_widget = clicked;
|
||||
|
||||
if ( ! mouse->isRightButtonPressed()
|
||||
&& ! mouse->isMiddleButtonPressed() )
|
||||
|
@ -1033,7 +1031,7 @@ void FApplication::sendMouseRightClickEvent ( const FPoint& widgetMousePos
|
|||
if ( ! mouse )
|
||||
return;
|
||||
|
||||
FWidget* clicked_widget = getClickedWidget();
|
||||
FWidget* clicked = getClickedWidget();
|
||||
|
||||
if ( mouse->isRightButtonPressed() )
|
||||
{
|
||||
|
@ -1041,7 +1039,7 @@ void FApplication::sendMouseRightClickEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::RightButton | key_state );
|
||||
sendEvent (clicked_widget, &m_down_ev);
|
||||
sendEvent (clicked, &m_down_ev);
|
||||
}
|
||||
else if ( mouse->isRightButtonReleased() )
|
||||
{
|
||||
|
@ -1049,7 +1047,7 @@ void FApplication::sendMouseRightClickEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::RightButton | key_state );
|
||||
FWidget* released_widget = clicked_widget;
|
||||
FWidget* released_widget = clicked;
|
||||
|
||||
if ( ! mouse->isLeftButtonPressed()
|
||||
&& ! mouse->isMiddleButtonPressed() )
|
||||
|
@ -1067,7 +1065,7 @@ void FApplication::sendMouseMiddleClickEvent ( const FPoint& widgetMousePos
|
|||
if ( ! mouse )
|
||||
return;
|
||||
|
||||
FWidget* clicked_widget = getClickedWidget();
|
||||
FWidget* clicked = getClickedWidget();
|
||||
|
||||
if ( mouse->isMiddleButtonPressed() )
|
||||
{
|
||||
|
@ -1075,7 +1073,7 @@ void FApplication::sendMouseMiddleClickEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::MiddleButton | key_state );
|
||||
sendEvent (clicked_widget, &m_down_ev);
|
||||
sendEvent (clicked, &m_down_ev);
|
||||
|
||||
// gnome-terminal sends no released on middle click
|
||||
if ( isGnomeTerminal() )
|
||||
|
@ -1087,7 +1085,7 @@ void FApplication::sendMouseMiddleClickEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::MiddleButton | key_state );
|
||||
FWidget* released_widget = clicked_widget;
|
||||
FWidget* released_widget = clicked;
|
||||
|
||||
if ( ! mouse->isLeftButtonPressed()
|
||||
&& ! mouse->isRightButtonPressed() )
|
||||
|
@ -1106,7 +1104,7 @@ void FApplication::sendWheelEvent ( const FPoint& widgetMousePos
|
|||
if ( ! mouse )
|
||||
return;
|
||||
|
||||
FWidget* clicked_widget = getClickedWidget();
|
||||
FWidget* clicked = getClickedWidget();
|
||||
|
||||
if ( mouse->isWheelUp() )
|
||||
{
|
||||
|
@ -1114,7 +1112,7 @@ void FApplication::sendWheelEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::WheelUp );
|
||||
FWidget* scroll_over_widget = clicked_widget;
|
||||
FWidget* scroll_over_widget = clicked;
|
||||
setClickedWidget(0);
|
||||
sendEvent(scroll_over_widget, &wheel_ev);
|
||||
}
|
||||
|
@ -1125,7 +1123,7 @@ void FApplication::sendWheelEvent ( const FPoint& widgetMousePos
|
|||
, widgetMousePos
|
||||
, mouse_position
|
||||
, fc::WheelDown );
|
||||
FWidget* scroll_over_widget = clicked_widget;
|
||||
FWidget* scroll_over_widget = clicked;
|
||||
setClickedWidget(0);
|
||||
sendEvent (scroll_over_widget, &wheel_ev);
|
||||
}
|
||||
|
|
|
@ -35,24 +35,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FButton::FButton(FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, text()
|
||||
, button_down(false)
|
||||
, active_focus(false)
|
||||
, click_animation(true)
|
||||
, click_time(150)
|
||||
, space_char(int(' '))
|
||||
, hotkeypos(NOT_SET)
|
||||
, indent(0)
|
||||
, center_offset(0)
|
||||
, vcenter_offset(0)
|
||||
, txtlength(0)
|
||||
, button_fg(wc.button_active_fg)
|
||||
, button_bg(wc.button_active_bg)
|
||||
, button_hotkey_fg(wc.button_hotkey_fg)
|
||||
, button_focus_fg(wc.button_active_focus_fg)
|
||||
, button_focus_bg(wc.button_active_focus_bg)
|
||||
, button_inactive_fg(wc.button_inactive_fg)
|
||||
, button_inactive_bg(wc.button_inactive_bg)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -60,27 +42,9 @@ FButton::FButton(FWidget* parent)
|
|||
//----------------------------------------------------------------------
|
||||
FButton::FButton (const FString& txt, FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, text(txt)
|
||||
, button_down(false)
|
||||
, active_focus(false)
|
||||
, click_animation(true)
|
||||
, click_time(150)
|
||||
, space_char(int(' '))
|
||||
, hotkeypos(NOT_SET)
|
||||
, indent(0)
|
||||
, center_offset(0)
|
||||
, vcenter_offset(0)
|
||||
, txtlength(0)
|
||||
, button_fg(wc.button_active_fg)
|
||||
, button_bg(wc.button_active_bg)
|
||||
, button_hotkey_fg(wc.button_hotkey_fg)
|
||||
, button_focus_fg(wc.button_active_focus_fg)
|
||||
, button_focus_bg(wc.button_active_focus_bg)
|
||||
, button_inactive_fg(wc.button_inactive_fg)
|
||||
, button_inactive_bg(wc.button_inactive_bg)
|
||||
, text{txt}
|
||||
{
|
||||
init();
|
||||
detectHotkey();
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -449,6 +413,9 @@ void FButton::init()
|
|||
setForegroundColor (wc.button_active_fg);
|
||||
setBackgroundColor (wc.button_active_bg);
|
||||
setShadow();
|
||||
|
||||
if ( ! text.isEmpty() )
|
||||
detectHotkey();
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -651,7 +618,7 @@ inline void FButton::drawButtonTextLine (wchar_t button_text[])
|
|||
else
|
||||
center_offset = (getWidth() - txtlength - 1) / 2;
|
||||
|
||||
// Print button text line --------
|
||||
// Print button text line
|
||||
for (pos = 0; pos < center_offset; pos++)
|
||||
print (space_char); // █
|
||||
|
||||
|
|
|
@ -37,8 +37,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FButtonGroup::FButtonGroup(FWidget* parent)
|
||||
: FScrollView(parent)
|
||||
, text()
|
||||
, buttonlist()
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -46,8 +44,7 @@ FButtonGroup::FButtonGroup(FWidget* parent)
|
|||
//----------------------------------------------------------------------
|
||||
FButtonGroup::FButtonGroup (const FString& txt, FWidget* parent)
|
||||
: FScrollView(parent)
|
||||
, text(txt)
|
||||
, buttonlist()
|
||||
, text{txt}
|
||||
{
|
||||
init();
|
||||
setText(txt);
|
||||
|
|
|
@ -27,18 +27,10 @@ namespace finalcut
|
|||
|
||||
//----------------------------------------------------------------------
|
||||
// class FColorPalette
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FColorPalette::FColorPalette()
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FColorPalette::~FColorPalette() // destructor
|
||||
{ }
|
||||
|
||||
|
||||
// public methods of FColorPalette
|
||||
//----------------------------------------------------------------------
|
||||
void FColorPalette::set8ColorPalette (funcp setPalette)
|
||||
|
|
|
@ -35,21 +35,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FDialog::FDialog (FWidget* parent)
|
||||
: FWindow(parent)
|
||||
, tb_text()
|
||||
, result_code(FDialog::Reject)
|
||||
, zoom_button_pressed(false)
|
||||
, zoom_button_active(false)
|
||||
, setPos_error(false)
|
||||
, setSize_error(false)
|
||||
, titlebar_click_pos()
|
||||
, resize_click_pos()
|
||||
, save_geometry()
|
||||
, dialog_menu()
|
||||
, dgl_menuitem()
|
||||
, move_size_item()
|
||||
, zoom_item()
|
||||
, close_item()
|
||||
, tooltip()
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -58,20 +43,6 @@ FDialog::FDialog (FWidget* parent)
|
|||
FDialog::FDialog (const FString& txt, FWidget* parent)
|
||||
: FWindow(parent)
|
||||
, tb_text(txt)
|
||||
, result_code(FDialog::Reject)
|
||||
, zoom_button_pressed(false)
|
||||
, zoom_button_active(false)
|
||||
, setPos_error(false)
|
||||
, setSize_error(false)
|
||||
, titlebar_click_pos()
|
||||
, resize_click_pos()
|
||||
, save_geometry()
|
||||
, dialog_menu()
|
||||
, dgl_menuitem()
|
||||
, move_size_item()
|
||||
, zoom_item()
|
||||
, close_item()
|
||||
, tooltip(0)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -82,9 +53,9 @@ FDialog::~FDialog() // destructor
|
|||
FApplication* fapp = static_cast<FApplication*>(getRootWidget());
|
||||
bool is_quit = fapp->isQuit();
|
||||
delete dialog_menu;
|
||||
dgl_menuitem = 0;
|
||||
dgl_menuitem = nullptr;
|
||||
delete accelerator_list;
|
||||
accelerator_list = 0;
|
||||
accelerator_list = nullptr;
|
||||
|
||||
if ( ! is_quit )
|
||||
switchToPrevWindow(this);
|
||||
|
@ -180,7 +151,7 @@ void FDialog::hide()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FDialog::DialogCode FDialog::exec()
|
||||
int FDialog::exec()
|
||||
{
|
||||
result_code = FDialog::Reject;
|
||||
show();
|
||||
|
@ -380,13 +351,13 @@ void FDialog::setSize (std::size_t w, std::size_t h, bool adjust)
|
|||
}
|
||||
|
||||
// set the cursor to the focus widget
|
||||
FWidget* focus_widget = FWidget::getFocusWidget();
|
||||
if ( focus_widget
|
||||
&& focus_widget->isVisible()
|
||||
&& focus_widget->hasVisibleCursor() )
|
||||
FWidget* focus = FWidget::getFocusWidget();
|
||||
if ( focus
|
||||
&& focus->isVisible()
|
||||
&& focus->hasVisibleCursor() )
|
||||
{
|
||||
FPoint cursor_pos = focus_widget->getCursorPos();
|
||||
focus_widget->setCursorPos(cursor_pos);
|
||||
FPoint cursor_pos = focus->getCursorPos();
|
||||
focus->setCursorPos(cursor_pos);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -796,7 +767,7 @@ void FDialog::onWindowLowered (FEvent*)
|
|||
|
||||
// protected methods of FDialog
|
||||
//----------------------------------------------------------------------
|
||||
void FDialog::done(DialogCode result)
|
||||
void FDialog::done(int result)
|
||||
{
|
||||
hide();
|
||||
result_code = result;
|
||||
|
@ -808,7 +779,7 @@ void FDialog::draw()
|
|||
if ( tooltip && ! getMoveSizeWidget() )
|
||||
{
|
||||
delete tooltip;
|
||||
tooltip = 0;
|
||||
tooltip = nullptr;
|
||||
}
|
||||
|
||||
// Fill the background
|
||||
|
@ -1254,14 +1225,14 @@ void FDialog::setCursorToFocusWidget()
|
|||
{
|
||||
// Set the cursor to the focus widget
|
||||
|
||||
FWidget* focus_widget = FWidget::getFocusWidget();
|
||||
FWidget* focus = FWidget::getFocusWidget();
|
||||
|
||||
if ( focus_widget
|
||||
&& focus_widget->isVisible()
|
||||
&& focus_widget->hasVisibleCursor() )
|
||||
if ( focus
|
||||
&& focus->isVisible()
|
||||
&& focus->hasVisibleCursor() )
|
||||
{
|
||||
FPoint cursor_pos = focus_widget->getCursorPos();
|
||||
focus_widget->setCursorPos(cursor_pos);
|
||||
FPoint cursor_pos = focus->getCursorPos();
|
||||
focus->setCursorPos(cursor_pos);
|
||||
updateVTermCursor(vwin);
|
||||
}
|
||||
}
|
||||
|
@ -1652,7 +1623,7 @@ inline void FDialog::acceptMoveSize()
|
|||
if ( tooltip )
|
||||
delete tooltip;
|
||||
|
||||
tooltip = 0;
|
||||
tooltip = nullptr;
|
||||
redraw();
|
||||
}
|
||||
|
||||
|
@ -1664,7 +1635,7 @@ inline void FDialog::cancelMoveSize()
|
|||
if ( tooltip )
|
||||
delete tooltip;
|
||||
|
||||
tooltip = 0;
|
||||
tooltip = nullptr;
|
||||
setPos (save_geometry.getPos());
|
||||
|
||||
if ( isResizeable() )
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
|
||||
FEvent::FEvent(int ev_type) // constructor
|
||||
: t(ev_type)
|
||||
: t{ev_type}
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -50,8 +50,7 @@ int FEvent::type() const
|
|||
|
||||
FKeyEvent::FKeyEvent (int ev_type, FKey key_num) // constructor
|
||||
: FEvent(ev_type)
|
||||
, k(key_num)
|
||||
, accpt(false)
|
||||
, k{key_num}
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -81,22 +80,19 @@ void FKeyEvent::ignore()
|
|||
|
||||
FMouseEvent::FMouseEvent ( int ev_type // constructor
|
||||
, const FPoint& pos
|
||||
, const FPoint& termPos
|
||||
, int button )
|
||||
: FEvent(ev_type)
|
||||
, p(pos)
|
||||
, tp()
|
||||
, b(button)
|
||||
, p{pos}
|
||||
, tp{termPos}
|
||||
, b{button}
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FMouseEvent::FMouseEvent ( int ev_type // constructor
|
||||
, const FPoint& pos
|
||||
, const FPoint& termPos
|
||||
, int button )
|
||||
: FEvent(ev_type)
|
||||
, p(pos)
|
||||
, tp(termPos)
|
||||
, b(button)
|
||||
: FMouseEvent(ev_type, pos, FPoint(), button)
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -138,22 +134,19 @@ int FMouseEvent::getButton() const
|
|||
|
||||
FWheelEvent::FWheelEvent ( int ev_type // constructor
|
||||
, const FPoint& pos
|
||||
, const FPoint& termPos
|
||||
, int wheel )
|
||||
: FEvent(ev_type)
|
||||
, p(pos)
|
||||
, tp()
|
||||
, w(wheel)
|
||||
, p{pos}
|
||||
, tp{termPos}
|
||||
, w{wheel}
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FWheelEvent::FWheelEvent ( int ev_type // constructor
|
||||
, const FPoint& pos
|
||||
, const FPoint& termPos
|
||||
, int wheel )
|
||||
: FEvent(ev_type)
|
||||
, p(pos)
|
||||
, tp(termPos)
|
||||
, w(wheel)
|
||||
: FWheelEvent(ev_type, pos, FPoint(), wheel)
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -195,8 +188,6 @@ int FWheelEvent::getWheel() const
|
|||
|
||||
FFocusEvent::FFocusEvent (int ev_type) // constructor
|
||||
: FEvent(ev_type)
|
||||
, accpt(true)
|
||||
, focus_type(fc::FocusDefiniteWidget)
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -242,8 +233,7 @@ void FFocusEvent::ignore()
|
|||
|
||||
FAccelEvent::FAccelEvent(int ev_type, void* focused) // constructor
|
||||
: FEvent(ev_type)
|
||||
, accpt(false)
|
||||
, focus_widget(focused)
|
||||
, focus_widget{focused}
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -273,7 +263,6 @@ void FAccelEvent::ignore()
|
|||
|
||||
FResizeEvent::FResizeEvent(int ev_type) // constructor
|
||||
: FEvent(ev_type)
|
||||
, accpt(false)
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -323,7 +312,6 @@ FHideEvent::~FHideEvent() // destructor
|
|||
|
||||
FCloseEvent::FCloseEvent(int ev_type) // constructor
|
||||
: FEvent(ev_type)
|
||||
, accpt(false)
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -349,7 +337,7 @@ void FCloseEvent::ignore()
|
|||
|
||||
FTimerEvent::FTimerEvent(int ev_type, int timer_id) // constructor
|
||||
: FEvent(ev_type)
|
||||
, id(timer_id)
|
||||
, id{timer_id}
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
|
|
@ -56,17 +56,6 @@ bool sortDirFirst ( const FFileDialog::dir_entry& lhs
|
|||
//----------------------------------------------------------------------
|
||||
FFileDialog::FFileDialog (FWidget* parent)
|
||||
: FDialog(parent)
|
||||
, directory_stream(0)
|
||||
, dir_entries()
|
||||
, directory()
|
||||
, filter_pattern()
|
||||
, filename()
|
||||
, filebrowser()
|
||||
, hidden()
|
||||
, cancel()
|
||||
, open()
|
||||
, dlg_type(FFileDialog::Open)
|
||||
, show_hidden(false)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -74,20 +63,9 @@ FFileDialog::FFileDialog (FWidget* parent)
|
|||
//----------------------------------------------------------------------
|
||||
FFileDialog::FFileDialog (const FFileDialog& fdlg)
|
||||
: FDialog(fdlg.getParentWidget())
|
||||
, directory_stream(0)
|
||||
, dir_entries()
|
||||
, directory(fdlg.directory)
|
||||
, filter_pattern(fdlg.filter_pattern)
|
||||
, filename()
|
||||
, filebrowser()
|
||||
, hidden()
|
||||
, cancel()
|
||||
, open()
|
||||
, dlg_type(fdlg.dlg_type)
|
||||
, show_hidden(fdlg.show_hidden)
|
||||
{
|
||||
if ( directory )
|
||||
setPath(directory);
|
||||
if ( fdlg.directory )
|
||||
setPath(fdlg.directory);
|
||||
|
||||
init();
|
||||
}
|
||||
|
@ -98,17 +76,8 @@ FFileDialog::FFileDialog ( const FString& dirname
|
|||
, DialogType type
|
||||
, FWidget* parent )
|
||||
: FDialog(parent)
|
||||
, directory_stream(0)
|
||||
, dir_entries()
|
||||
, directory()
|
||||
, filter_pattern(filter)
|
||||
, filename(this)
|
||||
, filebrowser(this)
|
||||
, hidden(this)
|
||||
, cancel(this)
|
||||
, open(this)
|
||||
, dlg_type(type)
|
||||
, show_hidden(false)
|
||||
{
|
||||
if ( ! dirname.isNull() )
|
||||
setPath(dirname);
|
||||
|
|
|
@ -31,10 +31,10 @@ namespace finalcut
|
|||
|
||||
// static class attributes
|
||||
long FKeyboard::key_timeout = 100000; // 100 ms (default timeout for keypress)
|
||||
struct timeval FKeyboard::time_keypressed;
|
||||
struct timeval FKeyboard::time_keypressed{};
|
||||
|
||||
#if defined(__linux__)
|
||||
FTermLinux* FKeyboard::linux = 0;
|
||||
FTermLinux* FKeyboard::linux = nullptr;
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -45,12 +45,9 @@ struct timeval FKeyboard::time_keypressed;
|
|||
//----------------------------------------------------------------------
|
||||
FKeyboardCommand::FKeyboardCommand ( FApplication* object
|
||||
, void(FApplication::*method)() )
|
||||
: instance(0)
|
||||
, handler(0)
|
||||
{
|
||||
instance = object;
|
||||
handler = method;
|
||||
}
|
||||
: instance(object)
|
||||
, handler(method)
|
||||
{ }
|
||||
|
||||
// public methods of FKeyboardCommand
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -67,18 +64,6 @@ void FKeyboardCommand::execute()
|
|||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FKeyboard::FKeyboard()
|
||||
: key(0)
|
||||
, fifo_offset(0)
|
||||
, fifo_in_use(false)
|
||||
, stdin_status_flags(0)
|
||||
, input_data_pending(false)
|
||||
, utf8_input(false)
|
||||
, mouse_support(true)
|
||||
, non_blocking_stdin(false)
|
||||
, keypressed_cmd()
|
||||
, keyreleased_cmd()
|
||||
, escape_key_cmd()
|
||||
, key_map(0)
|
||||
{
|
||||
// Initialize keyboard values
|
||||
time_keypressed.tv_sec = 0;
|
||||
|
@ -89,10 +74,6 @@ FKeyboard::FKeyboard()
|
|||
|
||||
if ( stdin_status_flags == -1 )
|
||||
std::abort();
|
||||
|
||||
// Initialize arrays with '\0'
|
||||
std::fill_n (read_buf, READ_BUF_SIZE, '\0');
|
||||
std::fill_n (fifo_buf, FIFO_BUF_SIZE, '\0');
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
|
|
@ -35,15 +35,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FLabel::FLabel(FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, multiline_text()
|
||||
, multiline(false)
|
||||
, text()
|
||||
, alignment(fc::alignLeft)
|
||||
, emphasis_color(wc.label_emphasis_fg)
|
||||
, ellipsis_color(wc.label_ellipsis_fg)
|
||||
, emphasis(false)
|
||||
, reverse_mode(false)
|
||||
, accel_widget(0)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -51,15 +42,7 @@ FLabel::FLabel(FWidget* parent)
|
|||
//----------------------------------------------------------------------
|
||||
FLabel::FLabel (const FString& txt, FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, multiline_text()
|
||||
, multiline(false)
|
||||
, text(txt)
|
||||
, alignment(fc::alignLeft)
|
||||
, emphasis_color(wc.label_emphasis_fg)
|
||||
, ellipsis_color(wc.label_ellipsis_fg)
|
||||
, emphasis(false)
|
||||
, reverse_mode(false)
|
||||
, accel_widget(0)
|
||||
{
|
||||
init();
|
||||
setText(txt);
|
||||
|
@ -86,6 +69,13 @@ FLabel& FLabel::operator << (const FString& s)
|
|||
return *this;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FLabel& FLabel::operator << (fc::SpecialCharacter c)
|
||||
{
|
||||
setText(text + static_cast<wchar_t>(c));
|
||||
return *this;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FLabel& FLabel::operator << (const wchar_t c)
|
||||
{
|
||||
|
@ -358,7 +348,7 @@ void FLabel::onAccel (FAccelEvent* ev)
|
|||
//----------------------------------------------------------------------
|
||||
void FLabel::cb_accel_widget_destroyed (FWidget*, data_ptr)
|
||||
{
|
||||
accel_widget = 0;
|
||||
accel_widget = nullptr;
|
||||
delAccelerator();
|
||||
}
|
||||
|
||||
|
|
|
@ -35,16 +35,7 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FLineEdit::FLineEdit(FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, text("")
|
||||
, label_text("")
|
||||
, label(new FLabel("", parent))
|
||||
, label_orientation(FLineEdit::label_left)
|
||||
, drag_scroll(FLineEdit::noScroll)
|
||||
, scroll_timer(false)
|
||||
, scroll_repeat(100)
|
||||
, insert_mode(true)
|
||||
, cursor_pos(0)
|
||||
, text_offset(0)
|
||||
, label{new FLabel("", parent)}
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -53,15 +44,7 @@ FLineEdit::FLineEdit(FWidget* parent)
|
|||
FLineEdit::FLineEdit (const FString& txt, FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, text(txt)
|
||||
, label_text("")
|
||||
, label(new FLabel("", parent))
|
||||
, label_orientation(FLineEdit::label_left)
|
||||
, drag_scroll(FLineEdit::noScroll)
|
||||
, scroll_timer(false)
|
||||
, scroll_repeat(100)
|
||||
, insert_mode(true)
|
||||
, cursor_pos(0)
|
||||
, text_offset(0)
|
||||
, label{new FLabel("", parent)}
|
||||
{
|
||||
init();
|
||||
setText(txt);
|
||||
|
@ -89,6 +72,13 @@ FLineEdit& FLineEdit::operator << (const FString& s)
|
|||
return *this;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FLineEdit& FLineEdit::operator << (fc::SpecialCharacter c)
|
||||
{
|
||||
setText(text + static_cast<wchar_t>(c));
|
||||
return *this;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FLineEdit& FLineEdit::operator << (const wchar_t c)
|
||||
{
|
||||
|
@ -537,7 +527,8 @@ void FLineEdit::onTimer (FTimerEvent*)
|
|||
break;
|
||||
|
||||
case FLineEdit::scrollRight:
|
||||
if ( text_offset == len - getWidth() + 2 )
|
||||
if ( len < getWidth() - 2
|
||||
|| text_offset == len - getWidth() + 2 )
|
||||
{
|
||||
drag_scroll = FLineEdit::noScroll;
|
||||
return;
|
||||
|
|
148
src/flistbox.cpp
148
src/flistbox.cpp
|
@ -37,10 +37,6 @@ namespace finalcut
|
|||
// constructor and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FListBoxItem::FListBoxItem()
|
||||
: text()
|
||||
, data_pointer(0)
|
||||
, brackets(fc::NoBrackets)
|
||||
, selected(false)
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -55,8 +51,6 @@ FListBoxItem::FListBoxItem (const FListBoxItem& item)
|
|||
FListBoxItem::FListBoxItem (const FString& txt, FWidget::data_ptr data)
|
||||
: text(txt)
|
||||
, data_pointer(data)
|
||||
, brackets(fc::NoBrackets)
|
||||
, selected(false)
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -90,28 +84,6 @@ FListBoxItem& FListBoxItem::operator = (const FListBoxItem& item)
|
|||
//----------------------------------------------------------------------
|
||||
FListBox::FListBox (FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, convertToItem(0)
|
||||
, itemlist()
|
||||
, source_container(0)
|
||||
, conv_type(FListBox::no_convert)
|
||||
, vbar(0)
|
||||
, hbar(0)
|
||||
, text()
|
||||
, inc_search()
|
||||
, multi_select(false)
|
||||
, mouse_select(false)
|
||||
, drag_scroll(fc::noScroll)
|
||||
, scroll_timer(false)
|
||||
, scroll_repeat(100)
|
||||
, scroll_distance(1)
|
||||
, current(0)
|
||||
, last_current(-1)
|
||||
, secect_from_item(-1)
|
||||
, xoffset(0)
|
||||
, yoffset(0)
|
||||
, last_yoffset(-1)
|
||||
, nf_offset(0)
|
||||
, max_line_width(0)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -177,7 +149,10 @@ void FListBox::showInsideBrackets ( std::size_t index
|
|||
|
||||
if ( len >= getWidth() - nf_offset - 3 )
|
||||
{
|
||||
hbar->setMaximum (int(max_line_width - getWidth() + nf_offset + 4));
|
||||
int hmax = ( max_line_width > getWidth() - nf_offset - 4 )
|
||||
? int(max_line_width - getWidth() + nf_offset + 4)
|
||||
: 0;
|
||||
hbar->setMaximum (hmax);
|
||||
hbar->setPageSize (int(max_line_width), int(getWidth() - nf_offset - 4));
|
||||
hbar->setValue (xoffset);
|
||||
|
||||
|
@ -332,13 +307,19 @@ void FListBox::remove (std::size_t item)
|
|||
++iter;
|
||||
}
|
||||
|
||||
hbar->setMaximum (int(max_line_width - getWidth() + nf_offset + 4));
|
||||
int hmax = ( max_line_width > getWidth() - nf_offset - 4 )
|
||||
? int(max_line_width - getWidth() + nf_offset + 4)
|
||||
: 0;
|
||||
hbar->setMaximum (hmax);
|
||||
hbar->setPageSize (int(max_line_width), int(getWidth() - nf_offset - 4));
|
||||
|
||||
if ( hbar->isVisible() && max_line_width < getWidth() - nf_offset - 3 )
|
||||
hbar->hide();
|
||||
|
||||
vbar->setMaximum (int(element_count - getHeight()) + 2);
|
||||
int vmax = ( element_count > getHeight() - 2 )
|
||||
? int(element_count - getHeight()) + 2
|
||||
: 0;
|
||||
vbar->setMaximum (vmax);
|
||||
vbar->setPageSize (int(element_count), int(getHeight()) - 2);
|
||||
|
||||
if ( vbar->isVisible() && element_count < getHeight() - 1 )
|
||||
|
@ -765,15 +746,15 @@ void FListBox::onFocusOut (FFocusEvent*)
|
|||
|
||||
// protected methods of FListBox
|
||||
//----------------------------------------------------------------------
|
||||
void FListBox::adjustYOffset()
|
||||
void FListBox::adjustYOffset (std::size_t element_count)
|
||||
{
|
||||
std::size_t element_count = getCount();
|
||||
std::size_t height = getClientHeight();
|
||||
|
||||
if ( element_count == 0 || getClientHeight() == 0 )
|
||||
if ( height == 0 )
|
||||
return;
|
||||
|
||||
if ( yoffset > int(element_count - getClientHeight()) )
|
||||
yoffset = int(element_count - getClientHeight());
|
||||
if ( yoffset > int(element_count - height) )
|
||||
yoffset = int(element_count - height);
|
||||
|
||||
if ( yoffset < 0 )
|
||||
yoffset = 0;
|
||||
|
@ -781,36 +762,47 @@ void FListBox::adjustYOffset()
|
|||
if ( current < std::size_t(yoffset) )
|
||||
current = std::size_t(yoffset);
|
||||
|
||||
if ( yoffset < int(current - getClientHeight()) )
|
||||
yoffset = int(current - getClientHeight());
|
||||
if ( yoffset < int(current - height) )
|
||||
yoffset = int(current - height);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FListBox::adjustSize()
|
||||
{
|
||||
std::size_t element_count;
|
||||
FWidget::adjustSize();
|
||||
adjustYOffset();
|
||||
std::size_t element_count = getCount();
|
||||
std::size_t width = getClientWidth();
|
||||
std::size_t height = getClientHeight();
|
||||
|
||||
element_count = getCount();
|
||||
vbar->setMaximum (int(element_count - getClientHeight()));
|
||||
vbar->setPageSize (int(element_count), int(getClientHeight()));
|
||||
if ( element_count == 0 )
|
||||
return;
|
||||
|
||||
adjustYOffset (element_count);
|
||||
|
||||
int vmax = ( element_count > height )
|
||||
? int(element_count - height)
|
||||
: 0;
|
||||
vbar->setMaximum (vmax);
|
||||
vbar->setPageSize (int(element_count), int(height));
|
||||
vbar->setX (int(getWidth()));
|
||||
vbar->setHeight (getClientHeight(), false);
|
||||
vbar->setHeight (height, false);
|
||||
vbar->resize();
|
||||
|
||||
hbar->setMaximum (int(max_line_width - getClientWidth() + 2));
|
||||
hbar->setPageSize (int(max_line_width), int(getClientWidth()) - 2);
|
||||
int hmax = ( max_line_width > width - 2 )
|
||||
? int(max_line_width - width + 2)
|
||||
: 0;
|
||||
hbar->setMaximum (hmax);
|
||||
hbar->setPageSize (int(max_line_width), int(width) - 2);
|
||||
hbar->setY (int(getHeight()));
|
||||
hbar->setWidth (getClientWidth() + nf_offset, false);
|
||||
hbar->setWidth (width + nf_offset, false);
|
||||
hbar->resize();
|
||||
|
||||
if ( element_count <= getClientHeight() )
|
||||
if ( element_count <= height )
|
||||
vbar->hide();
|
||||
else
|
||||
vbar->setVisible();
|
||||
|
||||
if ( max_line_width < getClientWidth() - 1 )
|
||||
if ( max_line_width < width - 1 )
|
||||
hbar->hide();
|
||||
else
|
||||
hbar->setVisible();
|
||||
|
@ -1040,7 +1032,7 @@ inline void FListBox::drawListLine ( int y
|
|||
|
||||
if ( isMonochron() && isCurrentLine && flags.focus )
|
||||
{
|
||||
print (fc::BlackLeftPointingPointer); // ◄
|
||||
print (fc::BlackLeftPointingPointer); // ◄
|
||||
i++;
|
||||
}
|
||||
|
||||
|
@ -1051,53 +1043,15 @@ inline void FListBox::drawListLine ( int y
|
|||
//----------------------------------------------------------------------
|
||||
inline void FListBox::printLeftBracket (fc::brackets_type bracket_type)
|
||||
{
|
||||
switch ( bracket_type )
|
||||
{
|
||||
case fc::NoBrackets:
|
||||
break;
|
||||
|
||||
case fc::SquareBrackets:
|
||||
print ('[');
|
||||
break;
|
||||
|
||||
case fc::Parenthesis:
|
||||
print ('(');
|
||||
break;
|
||||
|
||||
case fc::CurlyBrackets:
|
||||
print ('{');
|
||||
break;
|
||||
|
||||
case fc::AngleBrackets:
|
||||
print ('<');
|
||||
break;
|
||||
}
|
||||
if ( bracket_type != fc::NoBrackets )
|
||||
print ("\0[({<"[bracket_type]);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
inline void FListBox::printRightBracket (fc::brackets_type bracket_type)
|
||||
{
|
||||
switch ( bracket_type )
|
||||
{
|
||||
case fc::NoBrackets:
|
||||
break;
|
||||
|
||||
case fc::SquareBrackets:
|
||||
print (']');
|
||||
break;
|
||||
|
||||
case fc::Parenthesis:
|
||||
print (')');
|
||||
break;
|
||||
|
||||
case fc::CurlyBrackets:
|
||||
print ('}');
|
||||
break;
|
||||
|
||||
case fc::AngleBrackets:
|
||||
print ('>');
|
||||
break;
|
||||
}
|
||||
if ( bracket_type != fc::NoBrackets )
|
||||
print ("\0])}>"[bracket_type]);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -1291,7 +1245,10 @@ void FListBox::recalculateHorizontalBar (std::size_t len, bool has_brackets)
|
|||
|
||||
if ( len >= getWidth() - nf_offset - 3 )
|
||||
{
|
||||
hbar->setMaximum (int(max_line_width - getWidth() + nf_offset + 4));
|
||||
int hmax = ( max_line_width > getWidth() - nf_offset - 4 )
|
||||
? int(max_line_width - getWidth() + nf_offset + 4)
|
||||
: 0;
|
||||
hbar->setMaximum (hmax);
|
||||
hbar->setPageSize (int(max_line_width), int(getWidth() - nf_offset - 4));
|
||||
hbar->calculateSliderValues();
|
||||
|
||||
|
@ -1303,7 +1260,10 @@ void FListBox::recalculateHorizontalBar (std::size_t len, bool has_brackets)
|
|||
//----------------------------------------------------------------------
|
||||
void FListBox::recalculateVerticalBar (std::size_t element_count)
|
||||
{
|
||||
vbar->setMaximum (int(element_count - getHeight() + 2));
|
||||
int vmax = ( element_count > getHeight() - 2 )
|
||||
? int(element_count - getHeight() + 2)
|
||||
: 0;
|
||||
vbar->setMaximum (vmax);
|
||||
vbar->setPageSize (int(element_count), int(getHeight()) - 2);
|
||||
vbar->calculateSliderValues();
|
||||
|
||||
|
|
|
@ -163,12 +163,6 @@ FListViewItem::FListViewItem (const FListViewItem& item)
|
|||
: FObject(item.getParent())
|
||||
, column_list(item.column_list)
|
||||
, data_pointer(item.data_pointer)
|
||||
, root()
|
||||
, visible_lines(1)
|
||||
, expandable(false)
|
||||
, is_expand(false)
|
||||
, checkable(false)
|
||||
, is_checked(false)
|
||||
{
|
||||
FObject* parent = getParent();
|
||||
|
||||
|
@ -188,14 +182,6 @@ FListViewItem::FListViewItem (const FListViewItem& item)
|
|||
//----------------------------------------------------------------------
|
||||
FListViewItem::FListViewItem (FObjectIterator parent_iter)
|
||||
: FObject((*parent_iter)->getParent())
|
||||
, column_list()
|
||||
, data_pointer(0)
|
||||
, root()
|
||||
, visible_lines(1)
|
||||
, expandable(false)
|
||||
, is_expand(false)
|
||||
, checkable(false)
|
||||
, is_checked(false)
|
||||
{
|
||||
insert (this, parent_iter);
|
||||
}
|
||||
|
@ -207,12 +193,6 @@ FListViewItem::FListViewItem ( const FStringList& cols
|
|||
: FObject(0)
|
||||
, column_list(cols)
|
||||
, data_pointer(data)
|
||||
, root()
|
||||
, visible_lines(1)
|
||||
, expandable(false)
|
||||
, is_expand(false)
|
||||
, checkable(false)
|
||||
, is_checked(false)
|
||||
{
|
||||
if ( cols.empty() )
|
||||
return;
|
||||
|
@ -457,18 +437,9 @@ void FListViewItem::resetVisibleLineCounter()
|
|||
//----------------------------------------------------------------------
|
||||
|
||||
// constructor and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FListViewIterator::FListViewIterator ()
|
||||
: iter_path()
|
||||
, node()
|
||||
, position(0)
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FListViewIterator::FListViewIterator (FObjectIterator iter)
|
||||
: iter_path()
|
||||
, node(iter)
|
||||
, position(0)
|
||||
: node(iter)
|
||||
{ }
|
||||
|
||||
|
||||
|
@ -615,34 +586,6 @@ void FListViewIterator::parentElement()
|
|||
//----------------------------------------------------------------------
|
||||
FListView::FListView (FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, root()
|
||||
, selflist()
|
||||
, itemlist()
|
||||
, current_iter()
|
||||
, first_visible_line()
|
||||
, last_visible_line()
|
||||
, header()
|
||||
, headerline()
|
||||
, vbar(0)
|
||||
, hbar(0)
|
||||
, drag_scroll(fc::noScroll)
|
||||
, scroll_repeat(100)
|
||||
, scroll_distance(1)
|
||||
, scroll_timer(false)
|
||||
, tree_view(false)
|
||||
, hide_sort_indicator(false)
|
||||
, has_checkable_items(false)
|
||||
, clicked_expander_pos(-1, -1)
|
||||
, clicked_header_pos(-1, -1)
|
||||
, clicked_checkbox_item(0)
|
||||
, xoffset(0)
|
||||
, nf_offset(0)
|
||||
, max_line_width(1)
|
||||
, sort_column(-1)
|
||||
, sort_type()
|
||||
, sort_order(fc::unsorted)
|
||||
, user_defined_ascending(0)
|
||||
, user_defined_descending(0)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -1185,7 +1128,7 @@ void FListView::onMouseUp (FMouseEvent* ev)
|
|||
|
||||
clicked_expander_pos.setPoint(-1, -1);
|
||||
clicked_header_pos.setPoint(-1, -1);
|
||||
clicked_checkbox_item = 0;
|
||||
clicked_checkbox_item = nullptr;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -1371,12 +1314,11 @@ void FListView::onFocusOut (FFocusEvent*)
|
|||
|
||||
// protected methods of FListView
|
||||
//----------------------------------------------------------------------
|
||||
void FListView::adjustViewport()
|
||||
void FListView::adjustViewport (int element_count)
|
||||
{
|
||||
int element_count = int(getCount());
|
||||
int height = int(getClientHeight());
|
||||
|
||||
if ( element_count == 0 || height <= 0 )
|
||||
if ( height <= 0 )
|
||||
return;
|
||||
|
||||
if ( element_count < height )
|
||||
|
@ -1414,29 +1356,40 @@ void FListView::adjustViewport()
|
|||
//----------------------------------------------------------------------
|
||||
void FListView::adjustSize()
|
||||
{
|
||||
std::size_t element_count;
|
||||
FWidget::adjustSize();
|
||||
adjustViewport();
|
||||
std::size_t element_count = getCount();
|
||||
std::size_t width = getClientWidth();
|
||||
std::size_t height = getClientHeight();
|
||||
|
||||
element_count = getCount();
|
||||
vbar->setMaximum (int(element_count - getClientHeight()));
|
||||
vbar->setPageSize (int(element_count), int(getClientHeight()));
|
||||
if ( element_count == 0 )
|
||||
return;
|
||||
|
||||
adjustViewport (int(element_count));
|
||||
|
||||
int vmax = ( element_count > height )
|
||||
? int(element_count - height)
|
||||
: 0;
|
||||
vbar->setMaximum (vmax);
|
||||
vbar->setPageSize (int(element_count), int(height));
|
||||
vbar->setX (int(getWidth()));
|
||||
vbar->setHeight (getClientHeight(), false);
|
||||
vbar->setHeight (height, false);
|
||||
vbar->resize();
|
||||
|
||||
hbar->setMaximum (max_line_width - int(getClientWidth()));
|
||||
hbar->setPageSize (max_line_width, int(getClientWidth()));
|
||||
int hmax = ( max_line_width > width )
|
||||
? int(max_line_width - width)
|
||||
: 0;
|
||||
hbar->setMaximum (hmax);
|
||||
hbar->setPageSize (int(max_line_width), int(width));
|
||||
hbar->setY (int(getHeight()));
|
||||
hbar->setWidth (getClientWidth(), false);
|
||||
hbar->setWidth (width, false);
|
||||
hbar->resize();
|
||||
|
||||
if ( element_count <= getClientHeight() )
|
||||
if ( element_count <= height )
|
||||
vbar->hide();
|
||||
else
|
||||
vbar->setVisible();
|
||||
|
||||
if ( max_line_width <= int(getClientWidth()) )
|
||||
if ( max_line_width <= width )
|
||||
hbar->hide();
|
||||
else
|
||||
hbar->setVisible();
|
||||
|
@ -1490,7 +1443,7 @@ void FListView::init()
|
|||
setTopPadding(1);
|
||||
setLeftPadding(1);
|
||||
setBottomPadding(1);
|
||||
setRightPadding(1 + nf_offset);
|
||||
setRightPadding(1 + int(nf_offset));
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -1763,7 +1716,7 @@ void FListView::drawListLine ( const FListViewItem* item
|
|||
}
|
||||
|
||||
line = line.mid ( std::size_t(xoffset) + 1
|
||||
, getWidth() - std::size_t(nf_offset) - 2);
|
||||
, getWidth() - nf_offset - 2);
|
||||
const wchar_t* const& element_str = line.wc_str();
|
||||
std::size_t len = line.getLength();
|
||||
std::size_t i;
|
||||
|
@ -1771,7 +1724,7 @@ void FListView::drawListLine ( const FListViewItem* item
|
|||
for (i = 0; i < len; i++)
|
||||
*this << element_str[i];
|
||||
|
||||
for (; i < getWidth() - std::size_t(nf_offset) - 2; i++)
|
||||
for (; i < getWidth() - nf_offset - 2; i++)
|
||||
print (' ');
|
||||
}
|
||||
|
||||
|
@ -1825,7 +1778,7 @@ inline FString FListView::getCheckBox (const FListViewItem* item)
|
|||
checkbox = L"[ ] ";
|
||||
|
||||
if ( item->isChecked() )
|
||||
checkbox[1] = wchar_t(fc::Times); // Times ×
|
||||
checkbox[1] = fc::Times; // Times ×
|
||||
}
|
||||
|
||||
return checkbox;
|
||||
|
@ -1846,12 +1799,12 @@ inline FString FListView::getLinePrefix ( const FListViewItem* item
|
|||
{
|
||||
if ( item->isExpand() )
|
||||
{
|
||||
line += wchar_t(fc::BlackDownPointingTriangle); // ▼
|
||||
line += fc::BlackDownPointingTriangle; // ▼
|
||||
line += L' ';
|
||||
}
|
||||
else
|
||||
{
|
||||
line += wchar_t(fc::BlackRightPointingPointer); // ►
|
||||
line += fc::BlackRightPointingPointer; // ►
|
||||
line += L' ';
|
||||
}
|
||||
}
|
||||
|
@ -1878,9 +1831,9 @@ inline void FListView::drawSortIndicator ( std::size_t& length
|
|||
length++;
|
||||
|
||||
if ( sort_order == fc::ascending )
|
||||
headerline << wchar_t(fc::BlackUpPointingTriangle); // ▲
|
||||
headerline << fc::BlackUpPointingTriangle; // ▲
|
||||
else if ( sort_order == fc::descending )
|
||||
headerline << wchar_t(fc::BlackDownPointingTriangle); // ▼
|
||||
headerline << fc::BlackDownPointingTriangle; // ▼
|
||||
|
||||
if ( length < column_width )
|
||||
{
|
||||
|
@ -1893,7 +1846,7 @@ inline void FListView::drawSortIndicator ( std::size_t& length
|
|||
inline void FListView::drawHeaderBorder (std::size_t length)
|
||||
{
|
||||
setColor();
|
||||
const FString line (length, wchar_t(fc::BoxDrawingsHorizontal));
|
||||
const FString line (length, fc::BoxDrawingsHorizontal);
|
||||
headerline << line; // horizontal line
|
||||
}
|
||||
|
||||
|
@ -1982,10 +1935,10 @@ void FListView::updateDrawing (bool draw_vbar, bool draw_hbar)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
int FListView::determineLineWidth (FListViewItem* item)
|
||||
std::size_t FListView::determineLineWidth (FListViewItem* item)
|
||||
{
|
||||
static const int padding_space = 1;
|
||||
int line_width = padding_space; // leading space
|
||||
static const std::size_t padding_space = 1;
|
||||
std::size_t line_width = padding_space; // leading space
|
||||
uInt column_idx = 0;
|
||||
uInt entries = uInt(item->column_list.size());
|
||||
headerItems::iterator header_iter;
|
||||
|
@ -1993,23 +1946,24 @@ int FListView::determineLineWidth (FListViewItem* item)
|
|||
|
||||
while ( header_iter != header.end() )
|
||||
{
|
||||
int width = header_iter->width;
|
||||
std::size_t width = std::size_t(header_iter->width);
|
||||
bool fixed_width = header_iter->fixed_width;
|
||||
|
||||
if ( ! fixed_width )
|
||||
{
|
||||
int len;
|
||||
std::size_t len;
|
||||
|
||||
if ( column_idx < entries )
|
||||
len = int(item->column_list[column_idx].getLength());
|
||||
len = item->column_list[column_idx].getLength();
|
||||
else
|
||||
len = 0;
|
||||
|
||||
if ( len > width )
|
||||
header_iter->width = len;
|
||||
header_iter->width = int(len);
|
||||
}
|
||||
|
||||
line_width += header_iter->width + padding_space; // width + trailing space
|
||||
line_width += std::size_t(header_iter->width)
|
||||
+ padding_space; // width + trailing space
|
||||
column_idx++;
|
||||
++header_iter;
|
||||
}
|
||||
|
@ -2020,7 +1974,7 @@ int FListView::determineLineWidth (FListViewItem* item)
|
|||
//----------------------------------------------------------------------
|
||||
inline void FListView::beforeInsertion (FListViewItem* item)
|
||||
{
|
||||
int line_width = determineLineWidth (item);
|
||||
std::size_t line_width = determineLineWidth (item);
|
||||
recalculateHorizontalBar (line_width);
|
||||
}
|
||||
|
||||
|
@ -2038,22 +1992,25 @@ inline void FListView::afterInsertion()
|
|||
// Sort list by a column (only if activated)
|
||||
sort();
|
||||
|
||||
int element_count = int(getCount());
|
||||
std::size_t element_count = getCount();
|
||||
recalculateVerticalBar (element_count);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FListView::recalculateHorizontalBar (int len)
|
||||
void FListView::recalculateHorizontalBar (std::size_t len)
|
||||
{
|
||||
if ( len <= max_line_width )
|
||||
return;
|
||||
|
||||
max_line_width = len;
|
||||
|
||||
if ( len >= int(getWidth()) - nf_offset - 3 )
|
||||
if ( len >= getWidth() - nf_offset - 3 )
|
||||
{
|
||||
hbar->setMaximum (max_line_width - int(getWidth()) + nf_offset + 4);
|
||||
hbar->setPageSize (max_line_width, int(getWidth()) - nf_offset - 4);
|
||||
int hmax = ( max_line_width > getWidth() - nf_offset - 4 )
|
||||
? int(max_line_width - getWidth() + nf_offset + 4)
|
||||
: 0;
|
||||
hbar->setMaximum (hmax);
|
||||
hbar->setPageSize (int(max_line_width), int(getWidth() - nf_offset) - 4);
|
||||
hbar->calculateSliderValues();
|
||||
|
||||
if ( ! hbar->isVisible() )
|
||||
|
@ -2062,13 +2019,16 @@ void FListView::recalculateHorizontalBar (int len)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FListView::recalculateVerticalBar (int element_count)
|
||||
void FListView::recalculateVerticalBar (std::size_t element_count)
|
||||
{
|
||||
vbar->setMaximum (element_count - int(getHeight()) + 2);
|
||||
vbar->setPageSize (element_count, int(getHeight()) - 2);
|
||||
int vmax = ( element_count > getHeight() - 2 )
|
||||
? int(element_count - getHeight() + 2)
|
||||
: 0;
|
||||
vbar->setMaximum (vmax);
|
||||
vbar->setPageSize (int(element_count), int(getHeight()) - 2);
|
||||
vbar->calculateSliderValues();
|
||||
|
||||
if ( ! vbar->isVisible() && element_count >= int(getHeight()) - 1 )
|
||||
if ( ! vbar->isVisible() && element_count >= getHeight() - 1 )
|
||||
vbar->setVisible();
|
||||
}
|
||||
|
||||
|
@ -2105,12 +2065,8 @@ void FListView::mouseHeaderClicked()
|
|||
sort();
|
||||
|
||||
if ( isVisible() )
|
||||
{
|
||||
drawHeadlines();
|
||||
drawList();
|
||||
updateTerminal();
|
||||
flush_out();
|
||||
}
|
||||
updateDrawing (true, false);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2300,7 +2256,7 @@ inline void FListView::keyLeft (int& first_line_position_before)
|
|||
// Collapse element
|
||||
item->collapse();
|
||||
adjustSize();
|
||||
int element_count = int(getCount());
|
||||
std::size_t element_count = getCount();
|
||||
recalculateVerticalBar (element_count);
|
||||
// Force vertical scrollbar redraw
|
||||
first_line_position_before = -1;
|
||||
|
@ -2344,7 +2300,7 @@ inline void FListView::keyLeft (int& first_line_position_before)
|
|||
//----------------------------------------------------------------------
|
||||
inline void FListView::keyRight (int& first_line_position_before)
|
||||
{
|
||||
int xoffset_end = max_line_width - int(getClientWidth());
|
||||
int xoffset_end = int(max_line_width) - int(getClientWidth());
|
||||
FListViewItem* item = getCurrentItem();
|
||||
|
||||
if ( tree_view && item->isExpandable() && ! item->isExpand() )
|
||||
|
@ -2522,7 +2478,7 @@ void FListView::stepBackward (int distance)
|
|||
//----------------------------------------------------------------------
|
||||
void FListView::scrollToX (int x)
|
||||
{
|
||||
int xoffset_end = max_line_width - int(getClientWidth());
|
||||
int xoffset_end = int(max_line_width) - int(getClientWidth());
|
||||
|
||||
if ( xoffset == x )
|
||||
return;
|
||||
|
|
|
@ -38,14 +38,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FMenu::FMenu(FWidget* parent)
|
||||
: FWindow(parent)
|
||||
, item()
|
||||
, super_menu(0)
|
||||
, opened_sub_menu(0)
|
||||
, shown_sub_menu(0)
|
||||
, max_item_width(0)
|
||||
, hotkeypos(NOT_SET)
|
||||
, mouse_down(false)
|
||||
, has_checkable_items(false)
|
||||
{
|
||||
init(parent);
|
||||
}
|
||||
|
@ -54,13 +46,6 @@ FMenu::FMenu(FWidget* parent)
|
|||
FMenu::FMenu (const FString& txt, FWidget* parent)
|
||||
: FWindow(parent)
|
||||
, item(txt, parent)
|
||||
, super_menu(0)
|
||||
, opened_sub_menu(0)
|
||||
, shown_sub_menu(0)
|
||||
, max_item_width(0)
|
||||
, hotkeypos(NOT_SET)
|
||||
, mouse_down(false)
|
||||
, has_checkable_items(false)
|
||||
{
|
||||
init(parent);
|
||||
}
|
||||
|
@ -115,10 +100,10 @@ void FMenu::hide()
|
|||
|
||||
if ( ! isSubMenu() )
|
||||
{
|
||||
FMenu* open_menu = static_cast<FMenu*>(getOpenMenu());
|
||||
FMenu* openmenu = static_cast<FMenu*>(getOpenMenu());
|
||||
|
||||
if ( open_menu && open_menu != this )
|
||||
open_menu->hide();
|
||||
if ( openmenu && openmenu != this )
|
||||
openmenu->hide();
|
||||
|
||||
setOpenMenu(0);
|
||||
}
|
||||
|
@ -198,7 +183,7 @@ void FMenu::onKeyPress (FKeyEvent* ev)
|
|||
//----------------------------------------------------------------------
|
||||
void FMenu::onMouseDown (FMouseEvent* ev)
|
||||
{
|
||||
shown_sub_menu = 0;
|
||||
shown_sub_menu = nullptr;
|
||||
|
||||
if ( ev->getButton() != fc::LeftButton )
|
||||
{
|
||||
|
@ -284,7 +269,7 @@ void FMenu::onMouseMove (FMouseEvent* ev)
|
|||
isMouseOverMenuBar (ev->getTermPos())
|
||||
};
|
||||
|
||||
shown_sub_menu = 0;
|
||||
shown_sub_menu = nullptr;
|
||||
|
||||
// Mouse pointer over an entry in the menu list
|
||||
mouseMoveOverList (ev->getPos(), ms);
|
||||
|
@ -626,7 +611,7 @@ void FMenu::closeOpenedSubMenu()
|
|||
|
||||
opened_sub_menu->hideSubMenus();
|
||||
opened_sub_menu->hide();
|
||||
opened_sub_menu = 0;
|
||||
opened_sub_menu = nullptr;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -637,7 +622,7 @@ void FMenu::hideSubMenus()
|
|||
{
|
||||
opened_sub_menu->hideSubMenus();
|
||||
opened_sub_menu->hide();
|
||||
opened_sub_menu = 0;
|
||||
opened_sub_menu = nullptr;
|
||||
}
|
||||
|
||||
unselectItem();
|
||||
|
@ -1293,7 +1278,7 @@ inline void FMenu::drawSeparator (int y)
|
|||
{
|
||||
print (fc::NF_border_line_vertical_right);
|
||||
FString line ( std::size_t(getWidth()) - 2
|
||||
, wchar_t(fc::BoxDrawingsHorizontal) );
|
||||
, fc::BoxDrawingsHorizontal );
|
||||
print (line);
|
||||
print (fc::NF_rev_border_line_vertical_left);
|
||||
}
|
||||
|
@ -1301,7 +1286,7 @@ inline void FMenu::drawSeparator (int y)
|
|||
{
|
||||
print (fc::BoxDrawingsVerticalAndRight);
|
||||
FString line ( std::size_t(getWidth()) - 2
|
||||
, wchar_t(fc::BoxDrawingsHorizontal));
|
||||
, fc::BoxDrawingsHorizontal);
|
||||
print (line);
|
||||
print (fc::BoxDrawingsVerticalAndLeft);
|
||||
}
|
||||
|
@ -1462,9 +1447,9 @@ inline void FMenu::drawSubMenuIndicator (std::size_t& startpos)
|
|||
if ( len > 0 )
|
||||
{
|
||||
// Print filling blank spaces
|
||||
print (FString(len, wchar_t(' ')));
|
||||
print (FString(len, L' '));
|
||||
// Print BlackRightPointingPointer ►
|
||||
print (wchar_t(fc::BlackRightPointingPointer));
|
||||
print (fc::BlackRightPointingPointer);
|
||||
startpos = max_item_width - (c + 2);
|
||||
}
|
||||
}
|
||||
|
@ -1480,7 +1465,7 @@ inline void FMenu::drawAcceleratorKey (std::size_t& startpos, FKey accel_key)
|
|||
if ( len > 0 )
|
||||
{
|
||||
// Print filling blank spaces + accelerator key name
|
||||
FString spaces (len, wchar_t(' '));
|
||||
FString spaces (len, L' ');
|
||||
print (spaces + accel_name);
|
||||
startpos = max_item_width - (c + 2);
|
||||
}
|
||||
|
|
|
@ -37,10 +37,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FMenuBar::FMenuBar(FWidget* parent)
|
||||
: FWindow(parent)
|
||||
, mouse_down(false)
|
||||
, drop_down(false)
|
||||
, focus_changed(false)
|
||||
, screenWidth(80)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
|
|
@ -39,19 +39,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FMenuItem::FMenuItem (FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, text()
|
||||
, selected(false)
|
||||
, separator(false)
|
||||
, checkable(false)
|
||||
, checked(false)
|
||||
, radio_button(false)
|
||||
, dialog_index(false)
|
||||
, text_length(0)
|
||||
, hotkey(0)
|
||||
, accel_key(0)
|
||||
, menu(0)
|
||||
, super_menu(0)
|
||||
, associated_window(0)
|
||||
{
|
||||
init (parent);
|
||||
}
|
||||
|
@ -60,18 +47,6 @@ FMenuItem::FMenuItem (FWidget* parent)
|
|||
FMenuItem::FMenuItem (const FString& txt, FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, text(txt)
|
||||
, selected(false)
|
||||
, separator(false)
|
||||
, checkable(false)
|
||||
, checked(false)
|
||||
, radio_button(false)
|
||||
, dialog_index(false)
|
||||
, text_length(0)
|
||||
, hotkey(0)
|
||||
, accel_key(0)
|
||||
, menu(0)
|
||||
, super_menu(0)
|
||||
, associated_window(0)
|
||||
{
|
||||
init (parent);
|
||||
}
|
||||
|
@ -80,18 +55,7 @@ FMenuItem::FMenuItem (const FString& txt, FWidget* parent)
|
|||
FMenuItem::FMenuItem (FKey k, const FString& txt, FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, text(txt)
|
||||
, selected(false)
|
||||
, separator(false)
|
||||
, checkable(false)
|
||||
, checked(false)
|
||||
, radio_button(false)
|
||||
, dialog_index(false)
|
||||
, text_length(0)
|
||||
, hotkey(0)
|
||||
, accel_key(k)
|
||||
, menu(0)
|
||||
, super_menu(0)
|
||||
, associated_window(0)
|
||||
{
|
||||
init (parent);
|
||||
}
|
||||
|
@ -288,23 +252,20 @@ void FMenuItem::delAccelerator (FWidget* obj)
|
|||
//----------------------------------------------------------------------
|
||||
void FMenuItem::openMenu()
|
||||
{
|
||||
FMenu* dd_menu; // Drop-down menu
|
||||
FMenu* open_menu;
|
||||
|
||||
if ( ! hasMenu() )
|
||||
return;
|
||||
|
||||
dd_menu = getMenu(); // Drop-down menu
|
||||
FMenu* dd_menu = getMenu(); // Drop-down menu
|
||||
|
||||
if ( dd_menu->isVisible() )
|
||||
return;
|
||||
|
||||
open_menu = static_cast<FMenu*>(getOpenMenu());
|
||||
FMenu* openmenu = static_cast<FMenu*>(getOpenMenu());
|
||||
|
||||
if ( open_menu && open_menu != dd_menu )
|
||||
if ( openmenu && openmenu != dd_menu )
|
||||
{
|
||||
open_menu->hide();
|
||||
open_menu->hideSubMenus();
|
||||
openmenu->hide();
|
||||
openmenu->hideSubMenus();
|
||||
}
|
||||
|
||||
if ( dialog_index )
|
||||
|
@ -498,7 +459,7 @@ void FMenuItem::onAccel (FAccelEvent* ev)
|
|||
else
|
||||
{
|
||||
unsetSelected();
|
||||
mbar->selected_item = 0;
|
||||
mbar->selected_item = nullptr;
|
||||
mbar->redraw();
|
||||
processClicked();
|
||||
mbar->drop_down = false;
|
||||
|
@ -575,7 +536,7 @@ FMenuList* FMenuItem::getFMenuList (FWidget& widget)
|
|||
menu_list = static_cast<FMenuList*>(Menubar);
|
||||
}
|
||||
else
|
||||
menu_list = 0;
|
||||
menu_list = nullptr;
|
||||
|
||||
return menu_list;
|
||||
}
|
||||
|
@ -774,8 +735,8 @@ void FMenuItem::cb_switchToDialog (FWidget*, data_ptr data)
|
|||
|
||||
if ( win )
|
||||
{
|
||||
FWidget* focus_widget = getFocusWidget();
|
||||
FAccelEvent a_ev (fc::Accelerator_Event, focus_widget);
|
||||
FWidget* focus = getFocusWidget();
|
||||
FAccelEvent a_ev (fc::Accelerator_Event, focus);
|
||||
FApplication::sendEvent (win, &a_ev);
|
||||
}
|
||||
}
|
||||
|
@ -790,7 +751,7 @@ void FMenuItem::cb_destroyDialog (FWidget* widget, data_ptr)
|
|||
{
|
||||
delAccelerator(win);
|
||||
delCallback(win);
|
||||
associated_window = 0;
|
||||
associated_window = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* *
|
||||
* This file is part of the Final Cut widget toolkit *
|
||||
* *
|
||||
* Copyright 2015-2017 Markus Gans *
|
||||
* Copyright 2015-2018 Markus Gans *
|
||||
* *
|
||||
* The Final Cut is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Lesser General Public License *
|
||||
|
@ -32,12 +32,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
|
||||
// constructor and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FMenuList::FMenuList()
|
||||
: selected_item()
|
||||
, item_list()
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FMenuList::~FMenuList() // destructor
|
||||
{
|
||||
|
|
|
@ -49,17 +49,6 @@ static const char* const button_text[] =
|
|||
//----------------------------------------------------------------------
|
||||
FMessageBox::FMessageBox (FWidget* parent)
|
||||
: FDialog(parent)
|
||||
, headline_text()
|
||||
, text()
|
||||
, text_components(0)
|
||||
, text_split()
|
||||
, max_line_width(0)
|
||||
, center_text(false)
|
||||
, emphasis_color(wc.dialog_emphasis_fg)
|
||||
, num_buttons(0)
|
||||
, text_num_lines(0)
|
||||
, button_digit()
|
||||
, button()
|
||||
{
|
||||
setTitlebarText("Message for you");
|
||||
init(FMessageBox::Ok, 0, 0);
|
||||
|
@ -77,8 +66,6 @@ FMessageBox::FMessageBox (const FMessageBox& mbox)
|
|||
, emphasis_color(mbox.emphasis_color)
|
||||
, num_buttons(mbox.num_buttons)
|
||||
, text_num_lines(mbox.text_num_lines)
|
||||
, button_digit()
|
||||
, button()
|
||||
{
|
||||
setTitlebarText (mbox.getTitlebarText());
|
||||
init ( mbox.button_digit[0]
|
||||
|
@ -94,17 +81,7 @@ FMessageBox::FMessageBox ( const FString& caption
|
|||
, int button2
|
||||
, FWidget* parent )
|
||||
: FDialog(parent)
|
||||
, headline_text()
|
||||
, text(message)
|
||||
, text_components(0)
|
||||
, text_split()
|
||||
, max_line_width(0)
|
||||
, center_text(false)
|
||||
, emphasis_color(wc.dialog_emphasis_fg)
|
||||
, num_buttons(0)
|
||||
, text_num_lines(0)
|
||||
, button_digit()
|
||||
, button()
|
||||
{
|
||||
setTitlebarText(caption);
|
||||
init(button0, button1, button2);
|
||||
|
@ -305,8 +282,8 @@ void FMessageBox::adjustSize()
|
|||
//----------------------------------------------------------------------
|
||||
void FMessageBox::cb_processClick (FWidget*, data_ptr data)
|
||||
{
|
||||
FDialog::DialogCode* reply = static_cast<FDialog::DialogCode*>(data);
|
||||
done (*reply);
|
||||
int reply = *(static_cast<int*>(data));
|
||||
done (reply);
|
||||
}
|
||||
|
||||
|
||||
|
@ -426,15 +403,18 @@ void FMessageBox::calculateDimensions()
|
|||
std::size_t w, h;
|
||||
std::size_t headline_height = 0;
|
||||
text_split = text.split("\n");
|
||||
text_num_lines = uInt(text_split.size());
|
||||
text_components = &text_split[0];
|
||||
max_line_width = 0;
|
||||
text_num_lines = uInt(text_split.size());
|
||||
|
||||
if ( text_num_lines == 0 )
|
||||
return;
|
||||
|
||||
if ( ! headline_text.isNull() )
|
||||
headline_height = 2;
|
||||
|
||||
for (uInt i = 0; i < text_num_lines; i++)
|
||||
{
|
||||
text_components = &text_split[0];
|
||||
std::size_t len = text_components[i].getLength();
|
||||
|
||||
if ( len > max_line_width )
|
||||
|
|
205
src/fmouse.cpp
205
src/fmouse.cpp
|
@ -40,16 +40,6 @@ namespace finalcut
|
|||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FMouse::FMouse()
|
||||
: b_state()
|
||||
, mouse_event_occurred(false)
|
||||
, input_data_pending(false)
|
||||
, dblclick_interval(500000) // 500 ms
|
||||
, max_width(80)
|
||||
, max_height(25)
|
||||
, time_mousepressed()
|
||||
, zero_point(0, 0) // zero point (x=0, y=0)
|
||||
, mouse(0, 0) // mouse click position
|
||||
, new_mouse_position()
|
||||
{
|
||||
time_mousepressed.tv_sec = 0;
|
||||
time_mousepressed.tv_usec = 0;
|
||||
|
@ -237,10 +227,6 @@ bool FMouse::isDblclickTimeout (timeval* time)
|
|||
//----------------------------------------------------------------------
|
||||
FMouseGPM::FMouseGPM()
|
||||
: FMouse()
|
||||
, gpm_ev()
|
||||
, has_gpm_mouse_data(false)
|
||||
, gpm_mouse_enabled(false)
|
||||
, stdin_no(0)
|
||||
{
|
||||
gpm_ev.x = -1;
|
||||
}
|
||||
|
@ -283,6 +269,14 @@ void FMouseGPM::processEvent (struct timeval*)
|
|||
{
|
||||
Gpm_FitEvent (&gpm_ev);
|
||||
|
||||
if ( ! hasSignificantEvents() )
|
||||
{
|
||||
GPM_DRAWPOINTER(&gpm_ev);
|
||||
has_gpm_mouse_data = false;
|
||||
mouse_event_occurred = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if ( gpm_ev.type & GPM_DRAG && gpm_ev.wdx == 0 && gpm_ev.wdy == 0 )
|
||||
b_state.mouse_moved = true;
|
||||
|
||||
|
@ -295,53 +289,19 @@ void FMouseGPM::processEvent (struct timeval*)
|
|||
{
|
||||
case GPM_DOWN:
|
||||
case GPM_DRAG:
|
||||
if ( gpm_ev.buttons & GPM_B_LEFT )
|
||||
{
|
||||
if ( gpm_ev.type & GPM_DOUBLE )
|
||||
b_state.left_button = DoubleClick;
|
||||
else
|
||||
b_state.left_button = Pressed;
|
||||
}
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_MIDDLE )
|
||||
b_state.middle_button = Pressed;
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_RIGHT )
|
||||
b_state.right_button = Pressed;
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_UP )
|
||||
b_state.wheel_up = true;
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_DOWN )
|
||||
b_state.wheel_down = true;
|
||||
|
||||
// Keyboard modifiers
|
||||
if ( gpm_ev.modifiers & (1 << KG_SHIFT) )
|
||||
b_state.shift_button = true;
|
||||
|
||||
if ( gpm_ev.modifiers & ((1 << KG_ALT) | (1 << KG_ALTGR)) )
|
||||
b_state.meta_button = true;
|
||||
|
||||
if ( gpm_ev.modifiers & (1 << KG_CTRL) )
|
||||
b_state.control_button = true;
|
||||
|
||||
interpretKeyDown();
|
||||
break;
|
||||
|
||||
case GPM_UP:
|
||||
if ( gpm_ev.buttons & GPM_B_LEFT )
|
||||
b_state.left_button = Released;
|
||||
interpretKeyUp();
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_MIDDLE )
|
||||
b_state.middle_button = Released;
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_RIGHT )
|
||||
b_state.right_button = Released;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
setPos (FPoint(gpm_ev.x, gpm_ev.y));
|
||||
setPos (FPoint( std::max(gpm_ev.x, sInt16(1))
|
||||
, std::max(gpm_ev.y, sInt16(1)) ));
|
||||
|
||||
if ( gpmEvent(false) == mouse_event )
|
||||
input_data_pending = true;
|
||||
|
@ -353,6 +313,8 @@ void FMouseGPM::processEvent (struct timeval*)
|
|||
mouse_event_occurred = true;
|
||||
return;
|
||||
}
|
||||
else
|
||||
gpm_fd = -1;
|
||||
|
||||
has_gpm_mouse_data = false;
|
||||
mouse_event_occurred = false;
|
||||
|
@ -366,7 +328,7 @@ bool FMouseGPM::gpmMouse (bool on)
|
|||
if ( on )
|
||||
{
|
||||
Gpm_Connect conn;
|
||||
conn.eventMask = uInt16(~GPM_MOVE);
|
||||
conn.eventMask = uInt16(~0); // Get all including wheel event
|
||||
conn.defaultMask = GPM_MOVE;
|
||||
conn.maxMod = uInt16(~0);
|
||||
conn.minMod = 0;
|
||||
|
@ -393,6 +355,62 @@ bool FMouseGPM::gpmMouse (bool on)
|
|||
return on;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
bool FMouseGPM::hasSignificantEvents()
|
||||
{
|
||||
return ! (gpm_ev.type & GPM_MOVE)
|
||||
|| gpm_ev.wdy != 0
|
||||
|| gpm_ev.buttons & GPM_B_UP
|
||||
|| gpm_ev.buttons & GPM_B_DOWN;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FMouseGPM::interpretKeyDown()
|
||||
{
|
||||
if ( gpm_ev.buttons & GPM_B_LEFT )
|
||||
{
|
||||
if ( gpm_ev.type & GPM_DOUBLE )
|
||||
b_state.left_button = DoubleClick;
|
||||
else
|
||||
b_state.left_button = Pressed;
|
||||
}
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_MIDDLE )
|
||||
b_state.middle_button = Pressed;
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_RIGHT )
|
||||
b_state.right_button = Pressed;
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_UP )
|
||||
b_state.wheel_up = true;
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_DOWN )
|
||||
b_state.wheel_down = true;
|
||||
|
||||
// Keyboard modifiers
|
||||
if ( gpm_ev.modifiers & (1 << KG_SHIFT) )
|
||||
b_state.shift_button = true;
|
||||
|
||||
if ( gpm_ev.modifiers & ((1 << KG_ALT) | (1 << KG_ALTGR)) )
|
||||
b_state.meta_button = true;
|
||||
|
||||
if ( gpm_ev.modifiers & (1 << KG_CTRL) )
|
||||
b_state.control_button = true;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FMouseGPM::interpretKeyUp()
|
||||
{
|
||||
if ( gpm_ev.buttons & GPM_B_LEFT )
|
||||
b_state.left_button = Released;
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_MIDDLE )
|
||||
b_state.middle_button = Released;
|
||||
|
||||
if ( gpm_ev.buttons & GPM_B_RIGHT )
|
||||
b_state.right_button = Released;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
bool FMouseGPM::getGpmKeyPressed (bool pending)
|
||||
{
|
||||
|
@ -461,21 +479,6 @@ int FMouseGPM::gpmEvent (bool clear)
|
|||
// class FMouseX11
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FMouseX11::FMouseX11()
|
||||
: FMouse()
|
||||
, x11_mouse()
|
||||
, x11_button_state(all_buttons_released)
|
||||
{
|
||||
x11_mouse[0] = '\0';
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FMouseX11::~FMouseX11() // destructor
|
||||
{ }
|
||||
|
||||
|
||||
// public methods of FMouseX11
|
||||
//----------------------------------------------------------------------
|
||||
const char* FMouseX11::getClassName() const
|
||||
|
@ -663,21 +666,6 @@ void FMouseX11::setButtonState (int btn, struct timeval* time)
|
|||
// class FMouseSGR
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FMouseSGR::FMouseSGR()
|
||||
: FMouse()
|
||||
, sgr_mouse()
|
||||
, sgr_button_state(0x23)
|
||||
{
|
||||
sgr_mouse[0] = '\0';
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FMouseSGR::~FMouseSGR() // destructor
|
||||
{ }
|
||||
|
||||
|
||||
// public methods of FMouseSGR
|
||||
//----------------------------------------------------------------------
|
||||
const char* FMouseSGR::getClassName() const
|
||||
|
@ -917,21 +905,6 @@ void FMouseSGR::setReleasedButtonState (int btn)
|
|||
// class FMouseUrxvt
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FMouseUrxvt::FMouseUrxvt()
|
||||
: FMouse()
|
||||
, urxvt_mouse()
|
||||
, urxvt_button_state(0x23)
|
||||
{
|
||||
urxvt_mouse[0] = '\0';
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FMouseUrxvt::~FMouseUrxvt() // destructor
|
||||
{ }
|
||||
|
||||
|
||||
// public methods of FMouseUrxvt
|
||||
//----------------------------------------------------------------------
|
||||
const char* FMouseUrxvt::getClassName() const
|
||||
|
@ -1198,11 +1171,6 @@ void FMouseUrxvt::setButtonState (int btn, struct timeval* time)
|
|||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FMouseControl::FMouseControl()
|
||||
: mouse_protocol()
|
||||
, iter()
|
||||
, zero_point(0, 0)
|
||||
, use_gpm_mouse(false)
|
||||
, use_xterm_mouse(false)
|
||||
{
|
||||
#ifdef F_HAVE_LIBGPM
|
||||
mouse_protocol[FMouse::gpm] = FMouse::createMouseObject(FMouse::gpm);
|
||||
|
@ -1484,21 +1452,26 @@ bool FMouseControl::isInputDataPending()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
#ifdef F_HAVE_LIBGPM
|
||||
bool FMouseControl::isGpmMouseEnabled()
|
||||
{
|
||||
if ( mouse_protocol.empty() )
|
||||
return false;
|
||||
|
||||
#ifdef F_HAVE_LIBGPM
|
||||
FMouse* mouse = mouse_protocol[FMouse::gpm];
|
||||
FMouseGPM* gpm_mouse = static_cast<FMouseGPM*>(mouse);
|
||||
|
||||
if ( gpm_mouse )
|
||||
return gpm_mouse->isGpmMouseEnabled();
|
||||
#endif // F_HAVE_LIBGPM
|
||||
|
||||
return false;
|
||||
}
|
||||
#else // F_HAVE_LIBGPM
|
||||
bool FMouseControl::isGpmMouseEnabled()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif // F_HAVE_LIBGPM
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FMouseControl::enable()
|
||||
|
@ -1559,43 +1532,43 @@ void FMouseControl::processEvent (struct timeval* time)
|
|||
|
||||
//----------------------------------------------------------------------
|
||||
#ifdef F_HAVE_LIBGPM
|
||||
|
||||
bool FMouseControl::getGpmKeyPressed (bool pending)
|
||||
#else
|
||||
|
||||
bool FMouseControl::getGpmKeyPressed (bool)
|
||||
#endif // F_HAVE_LIBGPM
|
||||
{
|
||||
if ( mouse_protocol.empty() )
|
||||
return false;
|
||||
|
||||
#ifdef F_HAVE_LIBGPM
|
||||
FMouse* mouse = mouse_protocol[FMouse::gpm];
|
||||
FMouseGPM* gpm_mouse = static_cast<FMouseGPM*>(mouse);
|
||||
|
||||
if ( gpm_mouse )
|
||||
return gpm_mouse->getGpmKeyPressed(pending);
|
||||
#endif // F_HAVE_LIBGPM
|
||||
|
||||
return false;
|
||||
}
|
||||
#else // F_HAVE_LIBGPM
|
||||
bool FMouseControl::getGpmKeyPressed (bool)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif // F_HAVE_LIBGPM
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
#ifdef F_HAVE_LIBGPM
|
||||
void FMouseControl::drawGpmPointer()
|
||||
{
|
||||
if ( mouse_protocol.empty() )
|
||||
return;
|
||||
|
||||
#ifdef F_HAVE_LIBGPM
|
||||
|
||||
FMouse* mouse = mouse_protocol[FMouse::gpm];
|
||||
FMouseGPM* gpm_mouse = static_cast<FMouseGPM*>(mouse);
|
||||
|
||||
if ( gpm_mouse )
|
||||
gpm_mouse->drawGpmPointer();
|
||||
|
||||
#endif // F_HAVE_LIBGPM
|
||||
}
|
||||
#else // F_HAVE_LIBGPM
|
||||
void FMouseControl::drawGpmPointer()
|
||||
{ }
|
||||
#endif // F_HAVE_LIBGPM
|
||||
|
||||
|
||||
// private methods of FMouseControl
|
||||
|
|
|
@ -27,8 +27,8 @@ namespace finalcut
|
|||
|
||||
// static class attributes
|
||||
bool FObject::timer_modify_lock;
|
||||
FObject::TimerList* FObject::timer_list = 0;
|
||||
const FString* fc::emptyFString::empty_string = 0;
|
||||
FObject::TimerList* FObject::timer_list = nullptr;
|
||||
const FString* fc::emptyFString::empty_string = nullptr;
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// class FObject
|
||||
|
@ -37,10 +37,7 @@ const FString* fc::emptyFString::empty_string = 0;
|
|||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FObject::FObject (FObject* parent)
|
||||
: widget_object(false)
|
||||
, parent_obj(parent)
|
||||
, children_list() // no children yet
|
||||
, has_parent(false)
|
||||
: parent_obj(parent)
|
||||
{
|
||||
if ( parent ) // add object to parent
|
||||
{
|
||||
|
@ -74,7 +71,7 @@ FObject::~FObject() // destructor
|
|||
if ( ! has_parent && timer_list )
|
||||
{
|
||||
delete timer_list;
|
||||
timer_list = 0;
|
||||
timer_list = nullptr;
|
||||
}
|
||||
|
||||
if ( ! has_parent && ! fc::emptyFString::isNull() )
|
||||
|
@ -83,22 +80,16 @@ FObject::~FObject() // destructor
|
|||
// Delete children objects
|
||||
if ( hasChildren() )
|
||||
{
|
||||
constFObjectIterator iter, last;
|
||||
FObjectList delete_list = children_list;
|
||||
iter = delete_list.begin();
|
||||
last = delete_list.end();
|
||||
auto delete_list = children_list;
|
||||
|
||||
while ( iter != last )
|
||||
{
|
||||
delete *iter;
|
||||
++iter;
|
||||
}
|
||||
for (auto&& obj : delete_list)
|
||||
delete obj;
|
||||
}
|
||||
|
||||
if ( parent_obj )
|
||||
parent_obj->delChild(this);
|
||||
|
||||
parent_obj = 0;
|
||||
parent_obj = nullptr;
|
||||
}
|
||||
|
||||
// public methods of FObject
|
||||
|
@ -113,8 +104,7 @@ FObject* FObject::getChild (int index) const
|
|||
if ( index <= 0 || index > numOfChildren() )
|
||||
return 0;
|
||||
|
||||
constFObjectIterator iter;
|
||||
iter = begin();
|
||||
auto iter = begin();
|
||||
std::advance (iter, index - 1);
|
||||
return *iter;
|
||||
}
|
||||
|
@ -124,7 +114,7 @@ bool FObject::isChild (FObject* obj) const
|
|||
{
|
||||
// Find out if obj is a child object of mine
|
||||
|
||||
FObject* p_obj = 0;
|
||||
FObject* p_obj = nullptr;
|
||||
|
||||
while ( obj && (p_obj = obj->getParent()) )
|
||||
{
|
||||
|
@ -172,7 +162,7 @@ void FObject::delChild (FObject* obj)
|
|||
|
||||
if ( hasChildren() )
|
||||
{
|
||||
obj->parent_obj = 0;
|
||||
obj->parent_obj = nullptr;
|
||||
obj->has_parent = false;
|
||||
children_list.remove(obj);
|
||||
}
|
||||
|
@ -236,7 +226,6 @@ int FObject::addTimer (int interval)
|
|||
// Create a timer and returns the timer identifier number
|
||||
// (interval in ms)
|
||||
|
||||
FObject::TimerList::iterator iter, last;
|
||||
timeval time_interval;
|
||||
timeval currentTime;
|
||||
int id = 1;
|
||||
|
@ -245,8 +234,8 @@ int FObject::addTimer (int interval)
|
|||
// find an unused timer id
|
||||
if ( ! timer_list->empty() )
|
||||
{
|
||||
iter = timer_list->begin();
|
||||
last = timer_list->end();
|
||||
auto iter = timer_list->begin();
|
||||
auto last = timer_list->end();
|
||||
|
||||
while ( iter != last )
|
||||
{
|
||||
|
@ -270,8 +259,8 @@ int FObject::addTimer (int interval)
|
|||
timer_data t = { id, time_interval, timeout, this };
|
||||
|
||||
// insert in list sorted by timeout
|
||||
iter = timer_list->begin();
|
||||
last = timer_list->end();
|
||||
auto iter = timer_list->begin();
|
||||
auto last = timer_list->end();
|
||||
|
||||
while ( iter != last && iter->timeout < t.timeout )
|
||||
++iter;
|
||||
|
@ -287,14 +276,12 @@ bool FObject::delTimer (int id)
|
|||
{
|
||||
// Deletes a timer by using the timer identifier number
|
||||
|
||||
FObject::TimerList::iterator iter, last;
|
||||
|
||||
if ( id <= 0 )
|
||||
return false;
|
||||
|
||||
timer_modify_lock = true;
|
||||
iter = timer_list->begin();
|
||||
last = timer_list->end();
|
||||
auto iter = timer_list->begin();
|
||||
auto last = timer_list->end();
|
||||
|
||||
while ( iter != last && iter->id != id )
|
||||
++iter;
|
||||
|
@ -315,8 +302,6 @@ bool FObject::delOwnTimer()
|
|||
{
|
||||
// Deletes all timers of this object
|
||||
|
||||
FObject::TimerList::iterator iter;
|
||||
|
||||
if ( ! timer_list )
|
||||
return false;
|
||||
|
||||
|
@ -324,7 +309,7 @@ bool FObject::delOwnTimer()
|
|||
return false;
|
||||
|
||||
timer_modify_lock = true;
|
||||
iter = timer_list->begin();
|
||||
auto iter = timer_list->begin();
|
||||
|
||||
while ( iter != timer_list->end() )
|
||||
{
|
||||
|
@ -378,7 +363,6 @@ void FObject::onTimer (FTimerEvent*)
|
|||
//----------------------------------------------------------------------
|
||||
uInt FObject::processTimerEvent()
|
||||
{
|
||||
FObject::TimerList::iterator iter, last;
|
||||
timeval currentTime;
|
||||
uInt activated = 0;
|
||||
|
||||
|
@ -393,27 +377,23 @@ uInt FObject::processTimerEvent()
|
|||
if ( timer_list->empty() )
|
||||
return 0;
|
||||
|
||||
iter = timer_list->begin();
|
||||
last = timer_list->end();
|
||||
|
||||
while ( iter != last )
|
||||
for (auto&& timer : *timer_list)
|
||||
{
|
||||
if ( ! iter->id
|
||||
|| ! iter->object
|
||||
|| currentTime < iter->timeout ) // no timer expired
|
||||
if ( ! timer.id
|
||||
|| ! timer.object
|
||||
|| currentTime < timer.timeout ) // no timer expired
|
||||
break;
|
||||
|
||||
iter->timeout += iter->interval;
|
||||
timer.timeout += timer.interval;
|
||||
|
||||
if ( iter->timeout < currentTime )
|
||||
iter->timeout = currentTime + iter->interval;
|
||||
if ( timer.timeout < currentTime )
|
||||
timer.timeout = currentTime + timer.interval;
|
||||
|
||||
if ( iter->interval.tv_usec > 0 || iter->interval.tv_sec > 0 )
|
||||
if ( timer.interval.tv_usec > 0 || timer.interval.tv_sec > 0 )
|
||||
activated++;
|
||||
|
||||
FTimerEvent t_ev(fc::Timer_Event, iter->id);
|
||||
performTimerAction (iter->object, &t_ev);
|
||||
++iter;
|
||||
FTimerEvent t_ev(fc::Timer_Event, timer.id);
|
||||
performTimerAction (timer.object, &t_ev);
|
||||
}
|
||||
|
||||
return activated;
|
||||
|
|
|
@ -34,57 +34,7 @@ namespace finalcut
|
|||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FOptiAttr::FOptiAttr()
|
||||
: F_enter_bold_mode()
|
||||
, F_exit_bold_mode()
|
||||
, F_enter_dim_mode()
|
||||
, F_exit_dim_mode()
|
||||
, F_enter_italics_mode()
|
||||
, F_exit_italics_mode()
|
||||
, F_enter_underline_mode()
|
||||
, F_exit_underline_mode()
|
||||
, F_enter_blink_mode()
|
||||
, F_exit_blink_mode()
|
||||
, F_enter_reverse_mode()
|
||||
, F_exit_reverse_mode()
|
||||
, F_enter_standout_mode()
|
||||
, F_exit_standout_mode()
|
||||
, F_enter_secure_mode()
|
||||
, F_exit_secure_mode()
|
||||
, F_enter_protected_mode()
|
||||
, F_exit_protected_mode()
|
||||
, F_enter_crossed_out_mode()
|
||||
, F_exit_crossed_out_mode()
|
||||
, F_enter_dbl_underline_mode()
|
||||
, F_exit_dbl_underline_mode()
|
||||
, F_set_attributes()
|
||||
, F_exit_attribute_mode()
|
||||
, F_enter_alt_charset_mode()
|
||||
, F_exit_alt_charset_mode()
|
||||
, F_enter_pc_charset_mode()
|
||||
, F_exit_pc_charset_mode()
|
||||
, F_set_a_foreground()
|
||||
, F_set_a_background()
|
||||
, F_set_foreground()
|
||||
, F_set_background()
|
||||
, F_set_color_pair()
|
||||
, F_orig_pair()
|
||||
, F_orig_colors()
|
||||
, on()
|
||||
, off()
|
||||
, reset_byte_mask()
|
||||
, max_color(1)
|
||||
, attr_without_color(0)
|
||||
, ansi_default_color(false)
|
||||
, alt_equal_pc_charset(false)
|
||||
, monochron(true)
|
||||
, fake_reverse(false)
|
||||
, attr_ptr(attr_buf)
|
||||
{
|
||||
attr_buf[0] = '\0';
|
||||
// Set to 0 to reset
|
||||
reset_byte_mask.attr.byte[0] = 0;
|
||||
reset_byte_mask.attr.byte[1] = 0;
|
||||
reset_byte_mask.attr.byte[2] = 0;
|
||||
// Set bits that must not be reset
|
||||
reset_byte_mask.attr.bit.transparent = true;
|
||||
reset_byte_mask.attr.bit.trans_shadow = true;
|
||||
|
|
|
@ -35,40 +35,10 @@ namespace finalcut
|
|||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FOptiMove::FOptiMove (int baud)
|
||||
: F_cursor_home()
|
||||
, F_carriage_return()
|
||||
, F_cursor_to_ll()
|
||||
, F_tab()
|
||||
, F_back_tab()
|
||||
, F_cursor_up()
|
||||
, F_cursor_down()
|
||||
, F_cursor_left()
|
||||
, F_cursor_right()
|
||||
, F_cursor_address()
|
||||
, F_column_address()
|
||||
, F_row_address()
|
||||
, F_parm_up_cursor()
|
||||
, F_parm_down_cursor()
|
||||
, F_parm_left_cursor()
|
||||
, F_parm_right_cursor()
|
||||
, F_erase_chars()
|
||||
, F_repeat_char()
|
||||
, F_clr_bol()
|
||||
, F_clr_eol()
|
||||
, automatic_left_margin(false)
|
||||
, eat_nl_glitch(false)
|
||||
, move_buf()
|
||||
, char_duration(1)
|
||||
, baudrate(baud)
|
||||
, tabstop(0)
|
||||
, screen_width(80)
|
||||
, screen_height(24)
|
||||
: baudrate(baud)
|
||||
{
|
||||
assert ( baud >= 0 );
|
||||
|
||||
// Initialize arrays with '\0'
|
||||
std::fill_n (move_buf, sizeof(move_buf), '\0');
|
||||
|
||||
calculateCharDuration();
|
||||
|
||||
// ANSI set cursor address preset for undefined terminals
|
||||
|
@ -151,7 +121,7 @@ void FOptiMove::set_cursor_home (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_cursor_home.cap = 0;
|
||||
F_cursor_home.cap = nullptr;
|
||||
F_cursor_home.duration = \
|
||||
F_cursor_home.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -168,7 +138,7 @@ void FOptiMove::set_cursor_to_ll (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_cursor_to_ll.cap = 0;
|
||||
F_cursor_to_ll.cap = nullptr;
|
||||
F_cursor_to_ll.duration = \
|
||||
F_cursor_to_ll.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -185,7 +155,7 @@ void FOptiMove::set_carriage_return (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_carriage_return.cap = 0;
|
||||
F_carriage_return.cap = nullptr;
|
||||
F_carriage_return.duration = \
|
||||
F_carriage_return.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -202,7 +172,7 @@ void FOptiMove::set_tabular (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_tab.cap = 0;
|
||||
F_tab.cap = nullptr;
|
||||
F_tab.duration = \
|
||||
F_tab.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -219,7 +189,7 @@ void FOptiMove::set_back_tab (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_back_tab.cap = 0;
|
||||
F_back_tab.cap = nullptr;
|
||||
F_back_tab.duration = \
|
||||
F_back_tab.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -236,7 +206,7 @@ void FOptiMove::set_cursor_up (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_cursor_up.cap = 0;
|
||||
F_cursor_up.cap = nullptr;
|
||||
F_cursor_up.duration = \
|
||||
F_cursor_up.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -253,7 +223,7 @@ void FOptiMove::set_cursor_down (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_cursor_down.cap = 0;
|
||||
F_cursor_down.cap = nullptr;
|
||||
F_cursor_down.duration = \
|
||||
F_cursor_down.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -270,7 +240,7 @@ void FOptiMove::set_cursor_left (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_cursor_left.cap = 0;
|
||||
F_cursor_left.cap = nullptr;
|
||||
F_cursor_left.duration = \
|
||||
F_cursor_left.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -287,7 +257,7 @@ void FOptiMove::set_cursor_right (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_cursor_right.cap = 0;
|
||||
F_cursor_right.cap = nullptr;
|
||||
F_cursor_right.duration = \
|
||||
F_cursor_right.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -305,7 +275,7 @@ void FOptiMove::set_cursor_address (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_cursor_address.cap = 0;
|
||||
F_cursor_address.cap = nullptr;
|
||||
F_cursor_address.duration = \
|
||||
F_cursor_address.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -323,7 +293,7 @@ void FOptiMove::set_column_address (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_column_address.cap = 0;
|
||||
F_column_address.cap = nullptr;
|
||||
F_column_address.duration = \
|
||||
F_column_address.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -341,7 +311,7 @@ void FOptiMove::set_row_address (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_row_address.cap = 0;
|
||||
F_row_address.cap = nullptr;
|
||||
F_row_address.duration = \
|
||||
F_row_address.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -359,7 +329,7 @@ void FOptiMove::set_parm_up_cursor (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_parm_up_cursor.cap = 0;
|
||||
F_parm_up_cursor.cap = nullptr;
|
||||
F_parm_up_cursor.duration = \
|
||||
F_parm_up_cursor.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -377,7 +347,7 @@ void FOptiMove::set_parm_down_cursor (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_parm_down_cursor.cap = 0;
|
||||
F_parm_down_cursor.cap = nullptr;
|
||||
F_parm_down_cursor.duration = \
|
||||
F_parm_down_cursor.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -395,7 +365,7 @@ void FOptiMove::set_parm_left_cursor (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_parm_left_cursor.cap = 0;
|
||||
F_parm_left_cursor.cap = nullptr;
|
||||
F_parm_left_cursor.duration = \
|
||||
F_parm_left_cursor.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -413,7 +383,7 @@ void FOptiMove::set_parm_right_cursor (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_parm_right_cursor.cap = 0;
|
||||
F_parm_right_cursor.cap = nullptr;
|
||||
F_parm_right_cursor.duration = \
|
||||
F_parm_right_cursor.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -431,7 +401,7 @@ void FOptiMove::set_erase_chars (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_erase_chars.cap = 0;
|
||||
F_erase_chars.cap = nullptr;
|
||||
F_erase_chars.duration = \
|
||||
F_erase_chars.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -449,7 +419,7 @@ void FOptiMove::set_repeat_char (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_repeat_char.cap = 0;
|
||||
F_repeat_char.cap = nullptr;
|
||||
F_repeat_char.duration = \
|
||||
F_repeat_char.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -466,7 +436,7 @@ void FOptiMove::set_clr_bol (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_clr_bol.cap = 0;
|
||||
F_clr_bol.cap = nullptr;
|
||||
F_clr_bol.duration = \
|
||||
F_clr_bol.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -483,7 +453,7 @@ void FOptiMove::set_clr_eol (char cap[])
|
|||
}
|
||||
else
|
||||
{
|
||||
F_clr_eol.cap = 0;
|
||||
F_clr_eol.cap = nullptr;
|
||||
F_clr_eol.duration = \
|
||||
F_clr_eol.length = LONG_DURATION;
|
||||
}
|
||||
|
@ -818,7 +788,7 @@ inline void FOptiMove::rightMove ( char hmove[], int& htime
|
|||
{
|
||||
std::strncpy ( hmove
|
||||
, tparm(F_parm_right_cursor.cap, num, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
, BUF_SIZE );
|
||||
, BUF_SIZE - 1);
|
||||
hmove[BUF_SIZE - 1] = '\0';
|
||||
htime = F_parm_right_cursor.duration;
|
||||
}
|
||||
|
@ -938,7 +908,7 @@ inline bool FOptiMove::isMethod0Faster ( int& move_time
|
|||
if ( move_xy )
|
||||
{
|
||||
char* move_ptr = move_buf;
|
||||
std::strncpy (move_ptr, move_xy, BUF_SIZE);
|
||||
std::strncpy (move_ptr, move_xy, BUF_SIZE - 1);
|
||||
move_ptr[BUF_SIZE - 1] = '\0';
|
||||
move_time = F_cursor_address.duration;
|
||||
return true;
|
||||
|
|
|
@ -33,8 +33,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FProgressbar::FProgressbar(FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, percentage(NOT_SET)
|
||||
, bar_length(getWidth())
|
||||
{
|
||||
unsetFocusable();
|
||||
setShadow();
|
||||
|
|
|
@ -35,24 +35,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FScrollbar::FScrollbar(FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, scroll_type(FScrollbar::noScroll)
|
||||
, threshold_reached(false)
|
||||
, threshold_time(500)
|
||||
, repeat_time(10)
|
||||
, slider_click_pos(-1)
|
||||
, slider_click_stop_pos(-1)
|
||||
, current_slider_pos(-1)
|
||||
, slider_pos(0)
|
||||
, slider_length(18) // = bar_length
|
||||
, bar_length(18) // = length - 2
|
||||
, val(0)
|
||||
, min(0)
|
||||
, max(99)
|
||||
, steps(1)
|
||||
, pagesize(0)
|
||||
, length(20)
|
||||
, bar_orientation(fc::vertical)
|
||||
, max_color(getMaxColor())
|
||||
{
|
||||
// The default scrollbar orientation is vertical
|
||||
setGeometry(1, 1, 1, length, false);
|
||||
|
@ -62,24 +44,6 @@ FScrollbar::FScrollbar(FWidget* parent)
|
|||
//----------------------------------------------------------------------
|
||||
FScrollbar::FScrollbar(int o, FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, scroll_type(FScrollbar::noScroll)
|
||||
, threshold_reached(false)
|
||||
, threshold_time(500)
|
||||
, repeat_time(10)
|
||||
, slider_click_pos(-1)
|
||||
, slider_click_stop_pos(-1)
|
||||
, current_slider_pos(-1)
|
||||
, slider_pos(0)
|
||||
, slider_length(18) // = bar_length
|
||||
, bar_length(18) // = length - 2
|
||||
, val(0)
|
||||
, min(0)
|
||||
, max(99)
|
||||
, steps(1)
|
||||
, pagesize(0)
|
||||
, length(20)
|
||||
, bar_orientation(fc::vertical)
|
||||
, max_color(getMaxColor())
|
||||
{
|
||||
setOrientation (o);
|
||||
init();
|
||||
|
@ -118,15 +82,21 @@ void FScrollbar::setRange (int minimum, int maximum)
|
|||
//----------------------------------------------------------------------
|
||||
void FScrollbar::setValue (int value)
|
||||
{
|
||||
val = value;
|
||||
if ( value < min )
|
||||
val = min;
|
||||
else if ( value > max )
|
||||
val = max;
|
||||
else
|
||||
val = value;
|
||||
|
||||
calculateSliderValues();
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FScrollbar::setSteps (double st)
|
||||
{
|
||||
if ( st <= 0 )
|
||||
steps = 1;
|
||||
if ( st <= 0.0 )
|
||||
steps = 1.0;
|
||||
else
|
||||
steps = st;
|
||||
|
||||
|
@ -145,7 +115,11 @@ void FScrollbar::setPageSize (int document_size, int page_size)
|
|||
else
|
||||
{
|
||||
pagesize = page_size;
|
||||
steps = double(double(document_size) / double(page_size));
|
||||
|
||||
if ( document_size <= 0 || page_size <= 0 )
|
||||
steps = 1.0;
|
||||
else
|
||||
steps = double(double(document_size) / double(page_size));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -221,9 +195,9 @@ void FScrollbar::redraw()
|
|||
void FScrollbar::calculateSliderValues()
|
||||
{
|
||||
if ( isNewFont() && bar_orientation == fc::horizontal )
|
||||
bar_length = length - 4;
|
||||
bar_length = ( length > 2 ) ? length - 4 : 1;
|
||||
else
|
||||
bar_length = length - 2;
|
||||
bar_length = ( length > 2 ) ? length - 2 : 1;
|
||||
|
||||
slider_length = std::size_t(double(bar_length) / steps);
|
||||
|
||||
|
@ -244,13 +218,15 @@ void FScrollbar::calculateSliderValues()
|
|||
return;
|
||||
}
|
||||
|
||||
std::size_t v = std::size_t(val);
|
||||
slider_pos = int( round ( double((bar_length - slider_length) * v)
|
||||
/ double(max - min) ) );
|
||||
std::size_t v = ( min < 0 ) ? std::size_t(val - min) : std::size_t(val);
|
||||
|
||||
if ( slider_pos < 0 )
|
||||
if ( slider_length >= bar_length )
|
||||
slider_pos = 0;
|
||||
else if ( slider_pos > int(bar_length - slider_length) )
|
||||
else
|
||||
slider_pos = int( round ( double((bar_length - slider_length) * v)
|
||||
/ double(max - min) ) );
|
||||
|
||||
if ( slider_pos > int(bar_length - slider_length) )
|
||||
slider_pos = int(bar_length - slider_length);
|
||||
}
|
||||
|
||||
|
|
|
@ -35,17 +35,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FScrollView::FScrollView (FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, scroll_geometry(1, 1, 1, 1)
|
||||
, viewport_geometry()
|
||||
, viewport(0)
|
||||
, vbar(0)
|
||||
, hbar(0)
|
||||
, nf_offset(0)
|
||||
, border(true)
|
||||
, use_own_print_area(false)
|
||||
, update_scrollbar(true)
|
||||
, vMode(fc::Auto)
|
||||
, hMode(fc::Auto)
|
||||
{
|
||||
init(parent);
|
||||
}
|
||||
|
@ -56,7 +45,7 @@ FScrollView::~FScrollView() // destructor
|
|||
delete vbar;
|
||||
delete hbar;
|
||||
removeArea (viewport);
|
||||
child_print_area = viewport = 0;
|
||||
child_print_area = viewport = nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
@ -541,12 +530,12 @@ void FScrollView::onChildFocusIn (FFocusEvent*)
|
|||
|
||||
FRect widget_geometry;
|
||||
FRect vp_geometry;
|
||||
FWidget* focus_widget = FWidget::getFocusWidget();
|
||||
FWidget* focus = FWidget::getFocusWidget();
|
||||
|
||||
if ( ! focus_widget )
|
||||
if ( ! focus )
|
||||
return;
|
||||
|
||||
widget_geometry = focus_widget->getGeometryWithShadow();
|
||||
widget_geometry = focus->getGeometryWithShadow();
|
||||
vp_geometry = viewport_geometry;
|
||||
vp_geometry.move(1, 1);
|
||||
|
||||
|
@ -578,13 +567,13 @@ void FScrollView::onChildFocusOut (FFocusEvent* out_ev)
|
|||
{
|
||||
// Change the focus away from FScrollView to another widget
|
||||
|
||||
FWidget* focus_widget = FWidget::getFocusWidget();
|
||||
FWidget* focus = FWidget::getFocusWidget();
|
||||
|
||||
if ( out_ev->getFocusType() == fc::FocusNextWidget )
|
||||
{
|
||||
FWidget* last_widget = getLastFocusableWidget(getChildren());
|
||||
|
||||
if ( focus_widget == last_widget )
|
||||
if ( focus == last_widget )
|
||||
{
|
||||
out_ev->accept();
|
||||
focusNextChild();
|
||||
|
@ -594,7 +583,7 @@ void FScrollView::onChildFocusOut (FFocusEvent* out_ev)
|
|||
{
|
||||
FWidget* first_widget = getFirstFocusableWidget(getChildren());
|
||||
|
||||
if ( focus_widget == first_widget )
|
||||
if ( focus == first_widget )
|
||||
{
|
||||
out_ev->accept();
|
||||
focusPrevChild();
|
||||
|
@ -611,7 +600,7 @@ FVTerm::term_area* FScrollView::getPrintArea()
|
|||
|
||||
if ( use_own_print_area || ! viewport )
|
||||
{
|
||||
child_print_area = 0;
|
||||
child_print_area = nullptr;
|
||||
term_area* area = FWidget::getPrintArea();
|
||||
child_print_area = viewport;
|
||||
return area;
|
||||
|
@ -995,7 +984,7 @@ void FScrollView::cb_HBarChange (FWidget*, data_ptr)
|
|||
//----------------------------------------------------------------------
|
||||
inline void FScrollView::redrawHBar()
|
||||
{
|
||||
child_print_area = 0;
|
||||
child_print_area = nullptr;
|
||||
|
||||
if ( hbar->isVisible() )
|
||||
hbar->redraw();
|
||||
|
@ -1006,7 +995,7 @@ inline void FScrollView::redrawHBar()
|
|||
//----------------------------------------------------------------------
|
||||
inline void FScrollView::redrawVBar()
|
||||
{
|
||||
child_print_area = 0;
|
||||
child_print_area = nullptr;
|
||||
|
||||
if ( vbar->isVisible() )
|
||||
vbar->redraw();
|
||||
|
@ -1017,7 +1006,7 @@ inline void FScrollView::redrawVBar()
|
|||
//----------------------------------------------------------------------
|
||||
inline void FScrollView::drawHBar()
|
||||
{
|
||||
child_print_area = 0;
|
||||
child_print_area = nullptr;
|
||||
|
||||
if ( hbar->isVisible() )
|
||||
hbar->drawBar();
|
||||
|
@ -1028,7 +1017,7 @@ inline void FScrollView::drawHBar()
|
|||
//----------------------------------------------------------------------
|
||||
inline void FScrollView::drawVBar()
|
||||
{
|
||||
child_print_area = 0;
|
||||
child_print_area = nullptr;
|
||||
|
||||
if ( vbar->isVisible() )
|
||||
vbar->drawBar();
|
||||
|
|
|
@ -35,11 +35,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FStatusKey::FStatusKey(FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, key(0)
|
||||
, text()
|
||||
, active(false)
|
||||
, mouse_focus(false)
|
||||
, bar(0)
|
||||
{
|
||||
init (parent);
|
||||
}
|
||||
|
@ -49,9 +44,6 @@ FStatusKey::FStatusKey (FKey k, const FString& txt, FWidget* parent)
|
|||
: FWidget(parent)
|
||||
, key(k)
|
||||
, text(txt)
|
||||
, active(false)
|
||||
, mouse_focus(false)
|
||||
, bar(0)
|
||||
{
|
||||
init (parent);
|
||||
}
|
||||
|
@ -133,13 +125,6 @@ void FStatusKey::processActivate()
|
|||
//----------------------------------------------------------------------
|
||||
FStatusBar::FStatusBar(FWidget* parent)
|
||||
: FWindow(parent)
|
||||
, key_list()
|
||||
, text("")
|
||||
, mouse_down()
|
||||
, screenWidth(80)
|
||||
, keyname_len(0)
|
||||
, x(-1)
|
||||
, x_msg(-1)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
|
|
@ -33,20 +33,8 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
|
||||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString()
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (int len)
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
if ( len > 0 )
|
||||
initLength(std::size_t(len));
|
||||
|
@ -56,20 +44,12 @@ FString::FString (int len)
|
|||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (std::size_t len)
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
initLength(len);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (std::size_t len, wchar_t c)
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
wchar_t* ps;
|
||||
wchar_t* pe;
|
||||
|
@ -82,30 +62,8 @@ FString::FString (std::size_t len, wchar_t c)
|
|||
*--pe = c;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (std::size_t len, char c)
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
wchar_t* ps;
|
||||
wchar_t* pe;
|
||||
|
||||
initLength(len);
|
||||
ps = string;
|
||||
pe = string + len;
|
||||
|
||||
while ( pe != ps )
|
||||
*--pe = wchar_t(c);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (const FString& s) // copy constructor
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
if ( ! s.isNull() )
|
||||
_assign (s.string);
|
||||
|
@ -113,10 +71,6 @@ FString::FString (const FString& s) // copy constructor
|
|||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (const std::wstring& s)
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
if ( ! s.empty() )
|
||||
_assign (s.c_str());
|
||||
|
@ -124,10 +78,6 @@ FString::FString (const std::wstring& s)
|
|||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (const wchar_t s[])
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
if ( s )
|
||||
_assign (s);
|
||||
|
@ -135,10 +85,6 @@ FString::FString (const wchar_t s[])
|
|||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (const std::string& s)
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
if ( ! s.empty() )
|
||||
{
|
||||
|
@ -150,10 +96,6 @@ FString::FString (const std::string& s)
|
|||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (const char s[])
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
if ( s )
|
||||
{
|
||||
|
@ -163,12 +105,20 @@ FString::FString (const char s[])
|
|||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (fc::SpecialCharacter c)
|
||||
{
|
||||
if ( c )
|
||||
{
|
||||
wchar_t s[2];
|
||||
s[0] = static_cast<wchar_t>(c);
|
||||
s[1] = L'\0';
|
||||
_assign (s);
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (const wchar_t c)
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
if ( c )
|
||||
{
|
||||
|
@ -181,10 +131,6 @@ FString::FString (const wchar_t c)
|
|||
|
||||
//----------------------------------------------------------------------
|
||||
FString::FString (const char c)
|
||||
: string(0)
|
||||
, length(0)
|
||||
, bufsize(0)
|
||||
, c_string(0)
|
||||
{
|
||||
if ( c )
|
||||
{
|
||||
|
@ -259,6 +205,14 @@ FString& FString::operator << (const FString& s)
|
|||
return *this;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FString& FString::operator << (fc::SpecialCharacter c)
|
||||
{
|
||||
FString s(static_cast<wchar_t>(c));
|
||||
_insert (length, s.length, s.string);
|
||||
return *this;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FString& FString::operator << (const wchar_t c)
|
||||
{
|
||||
|
@ -494,7 +448,7 @@ FString FString::clear()
|
|||
|
||||
length = 0;
|
||||
bufsize = 0;
|
||||
string = 0;
|
||||
string = nullptr;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@ -922,7 +876,7 @@ FStringList FString::split (const FString& delimiter)
|
|||
if ( ! (string && *string) )
|
||||
return string_list;
|
||||
|
||||
rest = 0;
|
||||
rest = nullptr;
|
||||
token = extractToken(&rest, s.string, delimiter.wc_str());
|
||||
|
||||
while ( token )
|
||||
|
@ -1674,7 +1628,7 @@ inline char* FString::wc_to_c_str (const wchar_t s[]) const
|
|||
if ( mblength == -1 && errno != EILSEQ )
|
||||
{
|
||||
delete[](c_string);
|
||||
c_string = 0;
|
||||
c_string = nullptr;
|
||||
return const_cast<char*>("");
|
||||
}
|
||||
|
||||
|
|
|
@ -33,8 +33,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FSwitch::FSwitch(FWidget* parent)
|
||||
: FToggleButton(parent)
|
||||
, switch_offset_pos(0)
|
||||
, button_pressed(false)
|
||||
{
|
||||
button_width = 11;
|
||||
}
|
||||
|
@ -42,8 +40,6 @@ FSwitch::FSwitch(FWidget* parent)
|
|||
//----------------------------------------------------------------------
|
||||
FSwitch::FSwitch (const FString& txt, FWidget* parent)
|
||||
: FToggleButton(txt, parent)
|
||||
, switch_offset_pos(0)
|
||||
, button_pressed(false)
|
||||
{
|
||||
switch_offset_pos = txt.getLength() + 1;
|
||||
button_width = 11;
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace finalcut
|
|||
{
|
||||
|
||||
// global FTerm object
|
||||
static FTerm* init_term_object = 0;
|
||||
static FTerm* init_term_object = nullptr;
|
||||
|
||||
// global init state
|
||||
static bool term_initialized = false;
|
||||
|
@ -42,25 +42,25 @@ int (*FTerm::Fputchar)(int);
|
|||
|
||||
// static class attributes
|
||||
FTerm::initializationValues FTerm::init_values;
|
||||
FTermData* FTerm::data = 0;
|
||||
FTermcap::tcap_map* FTerm::tcap = 0;
|
||||
FOptiMove* FTerm::opti_move = 0;
|
||||
FOptiAttr* FTerm::opti_attr = 0;
|
||||
FTermDetection* FTerm::term_detection = 0;
|
||||
FTermXTerminal* FTerm::xterm = 0;
|
||||
FKeyboard* FTerm::keyboard = 0;
|
||||
FMouseControl* FTerm::mouse = 0;
|
||||
FTermData* FTerm::data = nullptr;
|
||||
FTermcap::tcap_map* FTerm::tcap = nullptr;
|
||||
FOptiMove* FTerm::opti_move = nullptr;
|
||||
FOptiAttr* FTerm::opti_attr = nullptr;
|
||||
FTermDetection* FTerm::term_detection = nullptr;
|
||||
FTermXTerminal* FTerm::xterm = nullptr;
|
||||
FKeyboard* FTerm::keyboard = nullptr;
|
||||
FMouseControl* FTerm::mouse = nullptr;
|
||||
|
||||
#if defined(__linux__)
|
||||
FTermLinux* FTerm::linux = 0;
|
||||
FTermLinux* FTerm::linux = nullptr;
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
FTermFreeBSD* FTerm::freebsd = 0;
|
||||
FTermFreeBSD* FTerm::freebsd = nullptr;
|
||||
#elif defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
FTermOpenBSD* FTerm::openbsd = 0;
|
||||
FTermOpenBSD* FTerm::openbsd = nullptr;
|
||||
#endif
|
||||
|
||||
#if DEBUG
|
||||
FTermDebugData* FTerm::debug_data = 0;
|
||||
FTermDebugData* FTerm::debug_data = nullptr;
|
||||
#endif
|
||||
|
||||
// function prototypes
|
||||
|
@ -384,7 +384,7 @@ char* FTerm::cursorsVisibility (bool on)
|
|||
{
|
||||
// Hides or shows the input cursor on the terminal
|
||||
|
||||
char* visibility_str = 0;
|
||||
char* visibility_str = nullptr;
|
||||
|
||||
if ( on == data->isCursorHidden() )
|
||||
return 0;
|
||||
|
@ -665,7 +665,7 @@ void FTerm::setEncoding (fc::encoding enc)
|
|||
{
|
||||
if ( enc == fc::VT100 || enc == fc::PC )
|
||||
{
|
||||
char* empty = 0;
|
||||
char* empty = nullptr;
|
||||
opti_move->set_tabular (empty);
|
||||
}
|
||||
else
|
||||
|
@ -1407,7 +1407,7 @@ void FTerm::init_tab_quirks()
|
|||
|
||||
if ( enc == fc::VT100 || enc == fc::PC )
|
||||
{
|
||||
char* empty = 0;
|
||||
char* empty = nullptr;
|
||||
opti_move->set_tabular (empty);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,19 +30,10 @@ namespace finalcut
|
|||
|
||||
//----------------------------------------------------------------------
|
||||
// class FTermBuffer
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FTermBuffer::FTermBuffer()
|
||||
: data()
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FTermBuffer::~FTermBuffer() // destructor
|
||||
{ }
|
||||
|
||||
|
||||
// public methods of FTermBuffer
|
||||
//----------------------------------------------------------------------
|
||||
int FTermBuffer::writef (const FString format, ...)
|
||||
|
|
|
@ -40,23 +40,14 @@ bool FTermcap::no_utf8_acs_chars = false;
|
|||
int FTermcap::max_color = 1;
|
||||
int FTermcap::tabstop = 8;
|
||||
int FTermcap::attr_without_color = 0;
|
||||
FTermData* FTermcap::fterm_data = 0;
|
||||
FTermDetection* FTermcap::term_detection = 0;
|
||||
FTermData* FTermcap::fterm_data = nullptr;
|
||||
FTermDetection* FTermcap::term_detection = nullptr;
|
||||
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// class FTermcap
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FTermcap::FTermcap()
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FTermcap::~FTermcap() // destructor
|
||||
{ }
|
||||
|
||||
/* Terminal capability data base
|
||||
* -----------------------------
|
||||
* Info under: man 5 terminfo
|
||||
|
|
|
@ -26,9 +26,9 @@ namespace finalcut
|
|||
{
|
||||
|
||||
// static class attributes
|
||||
FTermcap::tcap_map* FTermcapQuirks::tcap = 0;
|
||||
FTermData* FTermcapQuirks::fterm_data = 0;
|
||||
FTermDetection* FTermcapQuirks::term_detection = 0;
|
||||
FTermcap::tcap_map* FTermcapQuirks::tcap = nullptr;
|
||||
FTermData* FTermcapQuirks::fterm_data = nullptr;
|
||||
FTermDetection* FTermcapQuirks::term_detection = nullptr;
|
||||
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -210,16 +210,16 @@ void FTermcapQuirks::linux()
|
|||
TCAP(fc::t_exit_bold_mode) = C_STR(CSI "22m");
|
||||
TCAP(fc::t_exit_blink_mode) = C_STR(CSI "25m");
|
||||
TCAP(fc::t_exit_reverse_mode) = C_STR(CSI "27m");
|
||||
TCAP(fc::t_exit_secure_mode) = 0;
|
||||
TCAP(fc::t_exit_protected_mode) = 0;
|
||||
TCAP(fc::t_exit_crossed_out_mode) = 0;
|
||||
TCAP(fc::t_exit_secure_mode) = nullptr;
|
||||
TCAP(fc::t_exit_protected_mode) = nullptr;
|
||||
TCAP(fc::t_exit_crossed_out_mode) = nullptr;
|
||||
TCAP(fc::t_orig_pair) = C_STR(CSI "39;49;25m");
|
||||
|
||||
// Avoid underline and dim mode
|
||||
TCAP(fc::t_enter_dim_mode) = 0;
|
||||
TCAP(fc::t_exit_dim_mode) = 0;
|
||||
TCAP(fc::t_enter_underline_mode) = 0;
|
||||
TCAP(fc::t_exit_underline_mode) = 0;
|
||||
TCAP(fc::t_enter_dim_mode) = nullptr;
|
||||
TCAP(fc::t_exit_dim_mode) = nullptr;
|
||||
TCAP(fc::t_enter_underline_mode) = nullptr;
|
||||
TCAP(fc::t_exit_underline_mode) = nullptr;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
|
|
@ -31,14 +31,14 @@ FTermDetection::terminalType FTermDetection::terminal_type = \
|
|||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
FTermDetection::colorEnv FTermDetection::color_env;
|
||||
FTermDetection::secondaryDA FTermDetection::secondary_da;
|
||||
FTermData* FTermDetection::fterm_data = 0;
|
||||
FTermData* FTermDetection::fterm_data = nullptr;
|
||||
char FTermDetection::termtype[256] = { };
|
||||
char FTermDetection::ttytypename[256] = { };
|
||||
bool FTermDetection::decscusr_support;
|
||||
bool FTermDetection::terminal_detection;
|
||||
bool FTermDetection::color256;
|
||||
const FString* FTermDetection::answer_back = 0;
|
||||
const FString* FTermDetection::sec_da = 0;
|
||||
const FString* FTermDetection::answer_back = nullptr;
|
||||
const FString* FTermDetection::sec_da = nullptr;
|
||||
int FTermDetection::gnome_terminal_id;
|
||||
|
||||
#if DEBUG
|
||||
|
@ -182,7 +182,7 @@ bool FTermDetection::getTTYtype()
|
|||
{
|
||||
char* name;
|
||||
char* type;
|
||||
type = name = 0; // 0 == not found
|
||||
type = name = nullptr; // nullptr == not found
|
||||
p = str;
|
||||
|
||||
while ( *p )
|
||||
|
@ -311,7 +311,7 @@ void FTermDetection::detectTerminal()
|
|||
{
|
||||
// Terminal detection
|
||||
|
||||
char* new_termtype = 0;
|
||||
char* new_termtype = nullptr;
|
||||
|
||||
if ( terminal_detection )
|
||||
{
|
||||
|
@ -359,7 +359,7 @@ void FTermDetection::detectTerminal()
|
|||
//----------------------------------------------------------------------
|
||||
char* FTermDetection::init_256colorTerminal()
|
||||
{
|
||||
char* new_termtype = 0;
|
||||
char* new_termtype = nullptr;
|
||||
|
||||
if ( get256colorEnvString() )
|
||||
color256 = true;
|
||||
|
@ -422,7 +422,7 @@ bool FTermDetection::get256colorEnvString()
|
|||
//----------------------------------------------------------------------
|
||||
char* FTermDetection::termtype_256color_quirks()
|
||||
{
|
||||
char* new_termtype = 0;
|
||||
char* new_termtype = nullptr;
|
||||
|
||||
if ( ! color256 )
|
||||
return new_termtype;
|
||||
|
|
|
@ -39,15 +39,6 @@ namespace finalcut
|
|||
// class FTermFreeBSD
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FTermFreeBSD::FTermFreeBSD()
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FTermFreeBSD::~FTermFreeBSD() // destructor
|
||||
{ }
|
||||
|
||||
// public methods of FTermFreeBSD
|
||||
//----------------------------------------------------------------------
|
||||
#if defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
|
|
|
@ -51,7 +51,6 @@ FTermios::FTermios()
|
|||
FTermios::~FTermios() // destructor
|
||||
{ }
|
||||
|
||||
|
||||
// public methods of FTermios
|
||||
//----------------------------------------------------------------------
|
||||
void FTermios::init()
|
||||
|
|
|
@ -44,7 +44,7 @@ namespace finalcut
|
|||
bool FTermLinux::half_block_character = true;
|
||||
bool FTermLinux::has_saved_palette = false;
|
||||
|
||||
FTermDetection* FTermLinux::term_detection = 0;
|
||||
FTermDetection* FTermLinux::term_detection = nullptr;
|
||||
fc::linuxConsoleCursorStyle FTermLinux::linux_console_cursor_style;
|
||||
FTermLinux::ColorMap FTermLinux::saved_color_map;
|
||||
FTermLinux::ColorMap FTermLinux::cmap;
|
||||
|
@ -57,10 +57,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
|
||||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FTermLinux::FTermLinux()
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FTermLinux::~FTermLinux() // destructor
|
||||
{
|
||||
|
@ -152,8 +148,8 @@ void FTermLinux::init()
|
|||
{
|
||||
// initialize Linux console
|
||||
|
||||
screen_unicode_map.entries = 0;
|
||||
screen_font.data = 0;
|
||||
screen_unicode_map.entries = nullptr;
|
||||
screen_font.data = nullptr;
|
||||
|
||||
if ( FTerm::openConsole() == 0 )
|
||||
{
|
||||
|
@ -346,7 +342,7 @@ bool FTermLinux::loadOldFont (uInt char_map[][fc::NUM_OF_ENCODINGS])
|
|||
, screen_font.height
|
||||
, true );
|
||||
delete[] screen_font.data;
|
||||
screen_font.data = 0;
|
||||
screen_font.data = nullptr;
|
||||
|
||||
if ( ret == 0 )
|
||||
retval = true;
|
||||
|
@ -357,7 +353,7 @@ bool FTermLinux::loadOldFont (uInt char_map[][fc::NUM_OF_ENCODINGS])
|
|||
setUnicodeMap (&screen_unicode_map);
|
||||
initCharMap(char_map);
|
||||
delete[] screen_unicode_map.entries;
|
||||
screen_unicode_map.entries = 0;
|
||||
screen_unicode_map.entries = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -573,7 +569,7 @@ bool FTermLinux::getUnicodeMap()
|
|||
return false;
|
||||
|
||||
screen_unicode_map.entry_ct = 0;
|
||||
screen_unicode_map.entries = 0;
|
||||
screen_unicode_map.entries = nullptr;
|
||||
|
||||
// get count
|
||||
ret = ioctl (fd_tty, GIO_UNIMAP, &screen_unicode_map);
|
||||
|
|
|
@ -36,15 +36,6 @@ namespace finalcut
|
|||
// class FTermOpenBSD
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FTermOpenBSD::FTermOpenBSD()
|
||||
{ }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
FTermOpenBSD::~FTermOpenBSD() // destructor
|
||||
{ }
|
||||
|
||||
// public methods of FTermOpenBSD
|
||||
//----------------------------------------------------------------------
|
||||
#if defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
|
|
|
@ -33,16 +33,16 @@ bool FTermXTerminal::meta_sends_esc;
|
|||
bool FTermXTerminal::xterm_default_colors;
|
||||
std::size_t FTermXTerminal::term_width = 80;
|
||||
std::size_t FTermXTerminal::term_height = 24;
|
||||
const FString* FTermXTerminal::xterm_font = 0;
|
||||
const FString* FTermXTerminal::xterm_title = 0;
|
||||
const FString* FTermXTerminal::foreground_color = 0;
|
||||
const FString* FTermXTerminal::background_color = 0;
|
||||
const FString* FTermXTerminal::cursor_color = 0;
|
||||
const FString* FTermXTerminal::mouse_foreground_color = 0;
|
||||
const FString* FTermXTerminal::mouse_background_color = 0;
|
||||
const FString* FTermXTerminal::highlight_background_color = 0;
|
||||
FTermcap::tcap_map* FTermXTerminal::tcap = 0;
|
||||
FTermDetection* FTermXTerminal::term_detection = 0;
|
||||
const FString* FTermXTerminal::xterm_font = nullptr;
|
||||
const FString* FTermXTerminal::xterm_title = nullptr;
|
||||
const FString* FTermXTerminal::foreground_color = nullptr;
|
||||
const FString* FTermXTerminal::background_color = nullptr;
|
||||
const FString* FTermXTerminal::cursor_color = nullptr;
|
||||
const FString* FTermXTerminal::mouse_foreground_color = nullptr;
|
||||
const FString* FTermXTerminal::mouse_background_color = nullptr;
|
||||
const FString* FTermXTerminal::highlight_background_color = nullptr;
|
||||
FTermcap::tcap_map* FTermXTerminal::tcap = nullptr;
|
||||
FTermDetection* FTermXTerminal::term_detection = nullptr;
|
||||
fc::xtermCursorStyle FTermXTerminal::cursor_style = fc::unknown_cursor_style;
|
||||
|
||||
|
||||
|
@ -257,7 +257,7 @@ void FTermXTerminal::resetForeground()
|
|||
if ( foreground_color )
|
||||
delete foreground_color;
|
||||
|
||||
foreground_color = 0;
|
||||
foreground_color = nullptr;
|
||||
resetXTermForeground();
|
||||
}
|
||||
|
||||
|
@ -269,7 +269,7 @@ void FTermXTerminal::resetBackground()
|
|||
if ( background_color )
|
||||
delete background_color;
|
||||
|
||||
background_color = 0;
|
||||
background_color = nullptr;
|
||||
resetXTermBackground();
|
||||
}
|
||||
|
||||
|
@ -281,7 +281,7 @@ void FTermXTerminal::resetCursorColor()
|
|||
if ( cursor_color )
|
||||
delete cursor_color;
|
||||
|
||||
cursor_color = 0;
|
||||
cursor_color = nullptr;
|
||||
resetXTermCursorColor();
|
||||
}
|
||||
|
||||
|
@ -293,7 +293,7 @@ void FTermXTerminal::resetMouseForeground()
|
|||
if ( mouse_foreground_color )
|
||||
delete mouse_foreground_color;
|
||||
|
||||
mouse_foreground_color = 0;
|
||||
mouse_foreground_color = nullptr;
|
||||
resetXTermMouseForeground();
|
||||
}
|
||||
|
||||
|
@ -305,7 +305,7 @@ void FTermXTerminal::resetMouseBackground()
|
|||
if ( mouse_background_color )
|
||||
delete mouse_background_color;
|
||||
|
||||
mouse_background_color = 0;
|
||||
mouse_background_color = nullptr;
|
||||
resetXTermMouseBackground();
|
||||
}
|
||||
|
||||
|
@ -317,7 +317,7 @@ void FTermXTerminal::resetHighlightBackground()
|
|||
if ( highlight_background_color )
|
||||
delete highlight_background_color;
|
||||
|
||||
highlight_background_color = 0;
|
||||
highlight_background_color = nullptr;
|
||||
resetXTermHighlightBackground();
|
||||
}
|
||||
|
||||
|
|
|
@ -35,14 +35,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FTextView::FTextView(FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, data()
|
||||
, vbar(0)
|
||||
, hbar(0)
|
||||
, update_scrollbar(true)
|
||||
, xoffset(0)
|
||||
, yoffset(0)
|
||||
, nf_offset(0)
|
||||
, maxLineWidth(0)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -272,7 +264,10 @@ void FTextView::insert (const FString& str, int pos)
|
|||
|
||||
if ( len > getTextWidth() )
|
||||
{
|
||||
hbar->setMaximum (int(maxLineWidth) - int(getTextWidth()));
|
||||
int hmax = ( maxLineWidth > getTextWidth() )
|
||||
? int(maxLineWidth) - int(getTextWidth())
|
||||
: 0;
|
||||
hbar->setMaximum (hmax);
|
||||
hbar->setPageSize (int(maxLineWidth), int(getTextWidth()));
|
||||
hbar->calculateSliderValues();
|
||||
|
||||
|
@ -283,7 +278,10 @@ void FTextView::insert (const FString& str, int pos)
|
|||
}
|
||||
|
||||
data.insert (iter + pos, text_split.begin(), text_split.end());
|
||||
vbar->setMaximum (int(getRows()) - int(getTextHeight()));
|
||||
int vmax = ( getRows() > getTextHeight() )
|
||||
? int(getRows()) - int(getTextHeight())
|
||||
: 0;
|
||||
vbar->setMaximum (vmax);
|
||||
vbar->setPageSize (int(getRows()), int(getTextHeight()));
|
||||
vbar->calculateSliderValues();
|
||||
|
||||
|
@ -583,7 +581,10 @@ void FTextView::adjustSize()
|
|||
if ( height < 3 )
|
||||
return;
|
||||
|
||||
vbar->setMaximum (last_line - int(height) + 2 - nf_offset);
|
||||
int vmax = ( last_line > int(height) - 2 + nf_offset )
|
||||
? last_line - int(height) + 2 - nf_offset
|
||||
: 0;
|
||||
vbar->setMaximum (vmax);
|
||||
vbar->setPageSize (last_line, int(height) - 2 + nf_offset);
|
||||
vbar->setX (int(width));
|
||||
vbar->setHeight (height - 2 + std::size_t(nf_offset), false);
|
||||
|
@ -593,7 +594,10 @@ void FTextView::adjustSize()
|
|||
if ( width < 3 )
|
||||
return;
|
||||
|
||||
hbar->setMaximum (max_width - int(width) + nf_offset + 2);
|
||||
int hmax = ( max_width > int(width) - nf_offset - 2 )
|
||||
? max_width - int(width) + nf_offset + 2
|
||||
: 0;
|
||||
hbar->setMaximum (hmax);
|
||||
hbar->setPageSize (max_width, int(width) - nf_offset - 2);
|
||||
hbar->setY (int(height));
|
||||
hbar->setWidth (width - 2, false);
|
||||
|
|
|
@ -36,12 +36,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FToggleButton::FToggleButton (FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, checked(false)
|
||||
, label_offset_pos(0)
|
||||
, button_width(0)
|
||||
, button_group(0)
|
||||
, focus_inside_group(true)
|
||||
, text()
|
||||
{
|
||||
init();
|
||||
|
||||
|
@ -57,12 +51,6 @@ FToggleButton::FToggleButton (FWidget* parent)
|
|||
//----------------------------------------------------------------------
|
||||
FToggleButton::FToggleButton (const FString& txt, FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, checked(false)
|
||||
, label_offset_pos(0)
|
||||
, button_width(0)
|
||||
, button_group(0)
|
||||
, focus_inside_group(true)
|
||||
, text()
|
||||
{
|
||||
FToggleButton::setText(txt); // call own method
|
||||
init();
|
||||
|
|
|
@ -34,11 +34,6 @@ namespace finalcut
|
|||
//----------------------------------------------------------------------
|
||||
FToolTip::FToolTip (FWidget* parent)
|
||||
: FWindow(parent)
|
||||
, text()
|
||||
, text_components(0)
|
||||
, text_split()
|
||||
, max_line_width(0)
|
||||
, text_num_lines(0)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -47,10 +42,6 @@ FToolTip::FToolTip (FWidget* parent)
|
|||
FToolTip::FToolTip (const FString& txt, FWidget* parent)
|
||||
: FWindow(parent)
|
||||
, text(txt)
|
||||
, text_components(0)
|
||||
, text_split()
|
||||
, max_line_width(0)
|
||||
, text_num_lines(0)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
@ -63,7 +54,7 @@ FToolTip::~FToolTip() // destructor
|
|||
if ( fapp->isQuit() )
|
||||
return;
|
||||
|
||||
FWindow* parent_win = 0;
|
||||
FWindow* parent_win = nullptr;
|
||||
|
||||
if ( FWidget* parent = getParentWidget() )
|
||||
parent_win = getWindowWidget(parent);
|
||||
|
@ -146,13 +137,16 @@ void FToolTip::calculateDimensions()
|
|||
int x, y;
|
||||
std::size_t w, h;
|
||||
FWidget* r = getRootWidget();
|
||||
max_line_width = 0;
|
||||
text_split = text.split("\n");
|
||||
text_num_lines = uInt(text_split.size());
|
||||
text_components = &text_split[0];
|
||||
max_line_width = 0;
|
||||
|
||||
if ( text_num_lines == 0 )
|
||||
return;
|
||||
|
||||
for (std::size_t i = 0; i < text_num_lines; i++)
|
||||
{
|
||||
text_components = &text_split[0];
|
||||
std::size_t len = text_components[i].getLength();
|
||||
|
||||
if ( len > max_line_width )
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace finalcut
|
|||
{
|
||||
|
||||
// global FVTerm object
|
||||
static FVTerm* init_object = 0;
|
||||
static FVTerm* init_object = nullptr;
|
||||
|
||||
// static class attributes
|
||||
bool FVTerm::terminal_update_complete;
|
||||
|
@ -47,14 +47,14 @@ uInt FVTerm::repeat_char_length;
|
|||
uInt FVTerm::clr_bol_length;
|
||||
uInt FVTerm::clr_eol_length;
|
||||
uInt FVTerm::cursor_address_length;
|
||||
std::queue<int>* FVTerm::output_buffer = 0;
|
||||
FPoint* FVTerm::term_pos = 0;
|
||||
FTerm* FVTerm::fterm = 0;
|
||||
FVTerm::term_area* FVTerm::vterm = 0;
|
||||
FVTerm::term_area* FVTerm::vdesktop = 0;
|
||||
FVTerm::term_area* FVTerm::active_area = 0;
|
||||
FTermcap::tcap_map* FVTerm::tcap = 0;
|
||||
FKeyboard* FVTerm::keyboard = 0;
|
||||
std::queue<int>* FVTerm::output_buffer = nullptr;
|
||||
FPoint* FVTerm::term_pos = nullptr;
|
||||
FTerm* FVTerm::fterm = nullptr;
|
||||
FVTerm::term_area* FVTerm::vterm = nullptr;
|
||||
FVTerm::term_area* FVTerm::vdesktop = nullptr;
|
||||
FVTerm::term_area* FVTerm::active_area = nullptr;
|
||||
FTermcap::tcap_map* FVTerm::tcap = nullptr;
|
||||
FKeyboard* FVTerm::keyboard = nullptr;
|
||||
FVTerm::charData FVTerm::term_attribute;
|
||||
FVTerm::charData FVTerm::next_attribute;
|
||||
FVTerm::charData FVTerm::s_ch;
|
||||
|
@ -68,9 +68,6 @@ FVTerm::charData FVTerm::i_ch;
|
|||
// constructors and destructor
|
||||
//----------------------------------------------------------------------
|
||||
FVTerm::FVTerm (bool initialize, bool disable_alt_screen)
|
||||
: print_area(0)
|
||||
, child_print_area(0)
|
||||
, vwin(0)
|
||||
{
|
||||
terminal_update_complete = false;
|
||||
|
||||
|
@ -454,7 +451,7 @@ int FVTerm::print (term_area* area, const std::vector<charData>& term_string)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
int FVTerm::print (int c)
|
||||
int FVTerm::print (wchar_t c)
|
||||
{
|
||||
term_area* area = getPrintArea();
|
||||
|
||||
|
@ -470,14 +467,14 @@ int FVTerm::print (int c)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
int FVTerm::print (term_area* area, int c)
|
||||
int FVTerm::print (term_area* area, wchar_t c)
|
||||
{
|
||||
charData nc; // next character
|
||||
|
||||
if ( ! area )
|
||||
return -1;
|
||||
|
||||
nc.code = c;
|
||||
nc.code = wchar_t(c);
|
||||
nc.fg_color = next_attribute.fg_color;
|
||||
nc.bg_color = next_attribute.bg_color;
|
||||
nc.attr.byte[0] = next_attribute.attr.byte[0];
|
||||
|
@ -793,17 +790,17 @@ void FVTerm::removeArea (term_area*& area)
|
|||
if ( area->changes != 0 )
|
||||
{
|
||||
delete[] area->changes;
|
||||
area->changes = 0;
|
||||
area->changes = nullptr;
|
||||
}
|
||||
|
||||
if ( area->text != 0 )
|
||||
{
|
||||
delete[] area->text;
|
||||
area->text = 0;
|
||||
area->text = nullptr;
|
||||
}
|
||||
|
||||
delete area;
|
||||
area = 0;
|
||||
area = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1975,8 +1972,8 @@ void FVTerm::flush_out()
|
|||
void FVTerm::init (bool disable_alt_screen)
|
||||
{
|
||||
init_object = this;
|
||||
vterm = 0;
|
||||
vdesktop = 0;
|
||||
vterm = nullptr;
|
||||
vdesktop = nullptr;
|
||||
|
||||
try
|
||||
{
|
||||
|
|
|
@ -31,17 +31,17 @@ namespace finalcut
|
|||
{
|
||||
|
||||
// global FWidget object
|
||||
static FWidget* rootObject = 0;
|
||||
static FWidget* rootObject = nullptr;
|
||||
|
||||
// static class attributes
|
||||
FStatusBar* FWidget::statusbar = 0;
|
||||
FMenuBar* FWidget::menubar = 0;
|
||||
FWidget* FWidget::show_root_widget = 0;
|
||||
FWidget* FWidget::redraw_root_widget = 0;
|
||||
FWidget::widgetList* FWidget::window_list = 0;
|
||||
FWidget::widgetList* FWidget::dialog_list = 0;
|
||||
FWidget::widgetList* FWidget::always_on_top_list = 0;
|
||||
FWidget::widgetList* FWidget::close_widget = 0;
|
||||
FStatusBar* FWidget::statusbar = nullptr;
|
||||
FMenuBar* FWidget::menubar = nullptr;
|
||||
FWidget* FWidget::show_root_widget = nullptr;
|
||||
FWidget* FWidget::redraw_root_widget = nullptr;
|
||||
FWidget::widgetList* FWidget::window_list = nullptr;
|
||||
FWidget::widgetList* FWidget::dialog_list = nullptr;
|
||||
FWidget::widgetList* FWidget::always_on_top_list = nullptr;
|
||||
FWidget::widgetList* FWidget::close_widget = nullptr;
|
||||
FWidgetColors FWidget::wc;
|
||||
bool FWidget::init_desktop;
|
||||
bool FWidget::hideable;
|
||||
|
@ -57,26 +57,6 @@ uInt FWidget::modal_dialogs;
|
|||
FWidget::FWidget (FWidget* parent, bool disable_alt_screen)
|
||||
: FVTerm(bool(! parent), disable_alt_screen)
|
||||
, FObject(parent)
|
||||
, accelerator_list(0)
|
||||
, flags()
|
||||
, callback_objects()
|
||||
, member_callback_objects()
|
||||
, widget_cursor_position(-1, -1)
|
||||
, size_hints()
|
||||
, double_flatline_mask()
|
||||
, padding()
|
||||
, ignore_padding(false)
|
||||
, wsize(1, 1, 1, 1)
|
||||
, adjust_wsize(1, 1, 1, 1)
|
||||
, adjust_wsize_term()
|
||||
, adjust_wsize_shadow()
|
||||
, adjust_wsize_term_shadow()
|
||||
, offset()
|
||||
, client_offset()
|
||||
, wshadow(0, 0)
|
||||
, foreground_color(fc::Default)
|
||||
, background_color(fc::Default)
|
||||
, statusbar_message()
|
||||
{
|
||||
// init bit field with 0
|
||||
memset (&flags, 0, sizeof(flags));
|
||||
|
@ -85,7 +65,7 @@ FWidget::FWidget (FWidget* parent, bool disable_alt_screen)
|
|||
flags.visible = true; // A widget is visible by default
|
||||
flags.focusable = true; // A widget is focusable by default
|
||||
flags.visible_cursor = true; // A widget has a visible cursor by default
|
||||
widget_object = true; // This FObject is a widget
|
||||
setWidgetProperty (true); // This FObject is a widget
|
||||
|
||||
if ( ! parent )
|
||||
{
|
||||
|
@ -93,10 +73,10 @@ FWidget::FWidget (FWidget* parent, bool disable_alt_screen)
|
|||
&& "FTerm: There should be only one root object" );
|
||||
|
||||
rootObject = this;
|
||||
show_root_widget = 0;
|
||||
redraw_root_widget = 0;
|
||||
show_root_widget = nullptr;
|
||||
redraw_root_widget = nullptr;
|
||||
modal_dialogs = 0;
|
||||
statusbar = 0;
|
||||
statusbar = nullptr;
|
||||
init();
|
||||
}
|
||||
else
|
||||
|
@ -1037,7 +1017,7 @@ void FWidget::redraw()
|
|||
{
|
||||
updateTerminal();
|
||||
flush_out();
|
||||
redraw_root_widget = 0;
|
||||
redraw_root_widget = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1114,7 +1094,7 @@ void FWidget::show()
|
|||
finishTerminalUpdate();
|
||||
updateTerminal();
|
||||
flush_out();
|
||||
show_root_widget = 0;
|
||||
show_root_widget = nullptr;
|
||||
}
|
||||
|
||||
FShowEvent show_ev (fc::Show_Event);
|
||||
|
@ -1689,7 +1669,7 @@ bool FWidget::focusNextChild()
|
|||
continue;
|
||||
}
|
||||
|
||||
FWidget* next = 0;
|
||||
FWidget* next = nullptr;
|
||||
constFObjectIterator next_element;
|
||||
next_element = iter;
|
||||
|
||||
|
@ -1750,7 +1730,7 @@ bool FWidget::focusPrevChild()
|
|||
if ( w != this )
|
||||
continue;
|
||||
|
||||
FWidget* prev = 0;
|
||||
FWidget* prev = nullptr;
|
||||
constFObjectIterator prev_element;
|
||||
prev_element = iter;
|
||||
|
||||
|
@ -1999,30 +1979,30 @@ void FWidget::init()
|
|||
void FWidget::finish()
|
||||
{
|
||||
delete accelerator_list;
|
||||
accelerator_list = 0;
|
||||
accelerator_list = nullptr;
|
||||
|
||||
if ( close_widget )
|
||||
{
|
||||
delete close_widget;
|
||||
close_widget = 0;
|
||||
close_widget = nullptr;
|
||||
}
|
||||
|
||||
if ( dialog_list )
|
||||
{
|
||||
delete dialog_list;
|
||||
dialog_list = 0;
|
||||
dialog_list = nullptr;
|
||||
}
|
||||
|
||||
if ( always_on_top_list )
|
||||
{
|
||||
delete always_on_top_list;
|
||||
always_on_top_list = 0;
|
||||
always_on_top_list = nullptr;
|
||||
}
|
||||
|
||||
if ( window_list )
|
||||
{
|
||||
delete window_list;
|
||||
window_list = 0;
|
||||
window_list = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace finalcut
|
|||
{
|
||||
|
||||
// static attributes
|
||||
FWindow* FWindow::previous_window = 0;
|
||||
FWindow* FWindow::previous_window = nullptr;
|
||||
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -40,10 +40,6 @@ FWindow* FWindow::previous_window = 0;
|
|||
//----------------------------------------------------------------------
|
||||
FWindow::FWindow(FWidget* parent)
|
||||
: FWidget(parent)
|
||||
, window_active(false)
|
||||
, zoomed(false)
|
||||
, win_focus_widget(0)
|
||||
, normalGeometry()
|
||||
{
|
||||
setWindowWidget();
|
||||
FRect geometry = getTermGeometry();
|
||||
|
@ -58,7 +54,7 @@ FWindow::~FWindow() // destructor
|
|||
FApplication* fapp = static_cast<FApplication*>(getRootWidget());
|
||||
|
||||
if ( previous_window == this )
|
||||
previous_window = 0;
|
||||
previous_window = nullptr;
|
||||
|
||||
if ( isAlwaysOnTop() )
|
||||
deleteFromAlwaysOnTopList (this);
|
||||
|
@ -695,17 +691,17 @@ bool FWindow::zoomWindow()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FWindow::switchToPrevWindow (FWidget* widget_object)
|
||||
void FWindow::switchToPrevWindow (FWidget* widget)
|
||||
{
|
||||
// switch to previous window
|
||||
|
||||
// Disable terminal updates to avoid flickering
|
||||
// when redrawing the focused widget
|
||||
if ( widget_object )
|
||||
widget_object->updateTerminal (FVTerm::stop_refresh);
|
||||
if ( widget )
|
||||
widget->updateTerminal (FVTerm::stop_refresh);
|
||||
|
||||
bool is_activated = activatePrevWindow();
|
||||
FWindow* active_window = static_cast<FWindow*>(getActiveWindow());
|
||||
FWindow* active_win = static_cast<FWindow*>(getActiveWindow());
|
||||
|
||||
if ( ! is_activated )
|
||||
{
|
||||
|
@ -722,7 +718,7 @@ void FWindow::switchToPrevWindow (FWidget* widget_object)
|
|||
FWindow* w = static_cast<FWindow*>(*iter);
|
||||
|
||||
if ( w
|
||||
&& w != active_window
|
||||
&& w != active_win
|
||||
&& ! (w->isWindowHidden() || w->isWindowActive())
|
||||
&& w != static_cast<FWindow*>(getStatusBar())
|
||||
&& w != static_cast<FWindow*>(getMenuBar()) )
|
||||
|
@ -735,25 +731,25 @@ void FWindow::switchToPrevWindow (FWidget* widget_object)
|
|||
}
|
||||
}
|
||||
|
||||
if ( active_window )
|
||||
if ( active_win )
|
||||
{
|
||||
FWidget* focus_widget = active_window->getWindowFocusWidget();
|
||||
FWidget* focus = active_win->getWindowFocusWidget();
|
||||
|
||||
if ( ! active_window->isWindowActive() )
|
||||
setActiveWindow(active_window);
|
||||
if ( ! active_win->isWindowActive() )
|
||||
setActiveWindow(active_win);
|
||||
|
||||
if ( focus_widget )
|
||||
if ( focus)
|
||||
{
|
||||
focus_widget->setFocus();
|
||||
focus->setFocus();
|
||||
|
||||
if ( ! focus_widget->isWindowWidget() )
|
||||
focus_widget->redraw();
|
||||
if ( ! focus->isWindowWidget() )
|
||||
focus->redraw();
|
||||
}
|
||||
}
|
||||
|
||||
// Enable terminal updates again
|
||||
if ( widget_object )
|
||||
widget_object->updateTerminal (FVTerm::continue_refresh);
|
||||
if ( widget )
|
||||
widget->updateTerminal (FVTerm::continue_refresh);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
|
|
@ -45,20 +45,19 @@ namespace fc
|
|||
class emptyFString
|
||||
{
|
||||
public:
|
||||
emptyFString()
|
||||
{ }
|
||||
// Constructors
|
||||
emptyFString() = default;
|
||||
// Disable copy constructor
|
||||
emptyFString (const emptyFString&) = delete;
|
||||
|
||||
// Disable assignment operator (=)
|
||||
emptyFString& operator = (const emptyFString&) = delete;
|
||||
|
||||
static bool isNull();
|
||||
static const FString& get();
|
||||
static void clear();
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
emptyFString (const emptyFString&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
emptyFString& operator = (const emptyFString&);
|
||||
|
||||
// Data Member
|
||||
static const FString* empty_string;
|
||||
};
|
||||
|
@ -93,7 +92,7 @@ inline const FString& emptyFString::get()
|
|||
inline void emptyFString::clear()
|
||||
{
|
||||
delete empty_string;
|
||||
empty_string = 0;
|
||||
empty_string = nullptr;
|
||||
}
|
||||
|
||||
} // namespace fc
|
||||
|
|
|
@ -84,10 +84,14 @@ class FApplication : public FWidget
|
|||
public:
|
||||
// Constructor
|
||||
FApplication (const int&, char*[], bool = false);
|
||||
|
||||
// Disable copy constructor
|
||||
FApplication (const FApplication&) = delete;
|
||||
// Destructor
|
||||
virtual ~FApplication();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FApplication& operator = (const FApplication&) = delete;
|
||||
|
||||
// Accessors
|
||||
const char* getClassName() const;
|
||||
int getArgc() const;
|
||||
|
@ -127,12 +131,6 @@ class FApplication : public FWidget
|
|||
// Constants
|
||||
static const int NEED_MORE_DATA = -1; // parseKeyString return value
|
||||
|
||||
// Disable copy constructor
|
||||
FApplication (const FApplication&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FApplication& operator = (const FApplication&);
|
||||
|
||||
// Methods
|
||||
void init (long, long);
|
||||
void cmd_options (const int&, char*[]);
|
||||
|
@ -179,8 +177,8 @@ class FApplication : public FWidget
|
|||
// Data Members
|
||||
int app_argc;
|
||||
char** app_argv;
|
||||
long key_timeout;
|
||||
long dblclick_interval;
|
||||
long key_timeout{100000}; // 100 ms
|
||||
long dblclick_interval{500000}; // 500 ms
|
||||
static FMouseControl* mouse;
|
||||
static eventQueue* event_queue;
|
||||
static int quit_code;
|
||||
|
|
|
@ -68,12 +68,16 @@ class FButton : public FWidget
|
|||
{
|
||||
public:
|
||||
// Constructors
|
||||
explicit FButton (FWidget* = 0);
|
||||
explicit FButton (const FString&, FWidget* = 0);
|
||||
|
||||
explicit FButton (FWidget* = nullptr);
|
||||
explicit FButton (const FString&, FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
FButton (const FButton&) = delete;
|
||||
// Destructor
|
||||
virtual ~FButton();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FButton& operator = (const FButton&) = delete;
|
||||
|
||||
// Accessors
|
||||
const char* getClassName() const;
|
||||
FString& getText();
|
||||
|
@ -133,12 +137,6 @@ class FButton : public FWidget
|
|||
// Constants
|
||||
static const std::size_t NOT_SET = static_cast<std::size_t>(-1);
|
||||
|
||||
// Disable copy constructor
|
||||
FButton (const FButton&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FButton& operator = (const FButton&);
|
||||
|
||||
// Methods
|
||||
void init();
|
||||
uChar getHotkey();
|
||||
|
@ -157,24 +155,24 @@ class FButton : public FWidget
|
|||
void processClick();
|
||||
|
||||
// Data Members
|
||||
FString text;
|
||||
bool button_down;
|
||||
bool active_focus;
|
||||
bool click_animation;
|
||||
int click_time;
|
||||
int space_char;
|
||||
std::size_t hotkeypos;
|
||||
std::size_t indent;
|
||||
std::size_t center_offset;
|
||||
std::size_t vcenter_offset;
|
||||
std::size_t txtlength;
|
||||
FColor button_fg;
|
||||
FColor button_bg;
|
||||
FColor button_hotkey_fg;
|
||||
FColor button_focus_fg;
|
||||
FColor button_focus_bg;
|
||||
FColor button_inactive_fg;
|
||||
FColor button_inactive_bg;
|
||||
FString text{};
|
||||
bool button_down{false};
|
||||
bool active_focus{false};
|
||||
bool click_animation{true};
|
||||
int click_time{150};
|
||||
int space_char{int(' ')};
|
||||
std::size_t hotkeypos{NOT_SET};
|
||||
std::size_t indent{0};
|
||||
std::size_t center_offset{0};
|
||||
std::size_t vcenter_offset{0};
|
||||
std::size_t txtlength{0};
|
||||
FColor button_fg{wc.button_active_fg};
|
||||
FColor button_bg{wc.button_active_bg};
|
||||
FColor button_hotkey_fg{wc.button_hotkey_fg};
|
||||
FColor button_focus_fg{wc.button_active_focus_fg};
|
||||
FColor button_focus_bg{wc.button_active_focus_bg};
|
||||
FColor button_inactive_fg{wc.button_inactive_fg};
|
||||
FColor button_inactive_bg{wc.button_inactive_bg};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
|
|
@ -72,12 +72,16 @@ class FButtonGroup : public FScrollView
|
|||
{
|
||||
public:
|
||||
// Constructors
|
||||
explicit FButtonGroup (FWidget* = 0);
|
||||
explicit FButtonGroup (const FString&, FWidget* = 0);
|
||||
|
||||
explicit FButtonGroup (FWidget* = nullptr);
|
||||
explicit FButtonGroup (const FString&, FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
FButtonGroup (const FButtonGroup&) = delete;
|
||||
// Destructor
|
||||
virtual ~FButtonGroup();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FButtonGroup& operator = (const FButtonGroup&) = delete;
|
||||
|
||||
// Accessor
|
||||
const char* getClassName() const;
|
||||
FToggleButton* getFirstButton();
|
||||
|
@ -128,12 +132,6 @@ class FButtonGroup : public FScrollView
|
|||
// Constants
|
||||
static const std::size_t NOT_SET = static_cast<std::size_t>(-1);
|
||||
|
||||
// Disable copy constructor
|
||||
FButtonGroup (const FButtonGroup&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FButtonGroup& operator = (const FButtonGroup&);
|
||||
|
||||
// Inquiries
|
||||
bool isRadioButton (FToggleButton*) const;
|
||||
|
||||
|
@ -144,8 +142,8 @@ class FButtonGroup : public FScrollView
|
|||
void directFocus();
|
||||
|
||||
// Data Members
|
||||
FString text;
|
||||
FObjectList buttonlist;
|
||||
FString text{};
|
||||
FObjectList buttonlist{};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@ enum encoding
|
|||
};
|
||||
|
||||
// VT100 line graphic keys
|
||||
enum vt100_keys
|
||||
enum vt100_keys : char
|
||||
{
|
||||
vt100_key_rarrow = '+', // ► - arrow pointing right
|
||||
vt100_key_larrow = ',', // ◄ - arrow pointing left
|
||||
|
@ -136,7 +136,7 @@ enum vt100_keys
|
|||
};
|
||||
|
||||
// Unicode characters
|
||||
enum SpecialCharacter
|
||||
enum SpecialCharacter : wchar_t
|
||||
{
|
||||
Euro = 0x20ac, // €
|
||||
Pound = 0x00a3, // £
|
||||
|
@ -237,7 +237,7 @@ enum SpecialCharacter
|
|||
*/
|
||||
|
||||
// keyboard - single keys
|
||||
enum keys
|
||||
enum keys : FKey
|
||||
{
|
||||
Fckey_a = 0x00000001, // control-a
|
||||
Fckey_b = 0x00000002, // control-b
|
||||
|
@ -440,7 +440,7 @@ enum keys
|
|||
};
|
||||
|
||||
// Keyboard - modifier key combinations
|
||||
enum metakeys
|
||||
enum metakeys : FKey
|
||||
{
|
||||
Fmkey_ic = 0x01500100, // M-insert
|
||||
Fmkey_dc = 0x01500101, // M-delete
|
||||
|
@ -651,7 +651,7 @@ enum metakeys
|
|||
};
|
||||
|
||||
// Console color names
|
||||
enum colornames
|
||||
enum colornames : FColor
|
||||
{
|
||||
Black = 0,
|
||||
Blue = 1,
|
||||
|
|
|
@ -73,22 +73,20 @@ class FCheckBox : public FToggleButton
|
|||
{
|
||||
public:
|
||||
// Constructors
|
||||
explicit FCheckBox (FWidget* = 0);
|
||||
explicit FCheckBox (const FString&, FWidget* = 0);
|
||||
|
||||
explicit FCheckBox (FWidget* = nullptr);
|
||||
explicit FCheckBox (const FString&, FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
FCheckBox (const FCheckBox&) = delete;
|
||||
// Destructor
|
||||
virtual ~FCheckBox();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FCheckBox& operator = (const FCheckBox&) = delete;
|
||||
|
||||
// Accessor
|
||||
const char* getClassName() const;
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
FCheckBox (const FCheckBox&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FCheckBox& operator = (const FCheckBox&);
|
||||
|
||||
// Methods
|
||||
void init();
|
||||
virtual void draw();
|
||||
|
|
|
@ -73,22 +73,20 @@ class FCheckMenuItem : public FMenuItem
|
|||
{
|
||||
public:
|
||||
// Constructors
|
||||
explicit FCheckMenuItem (FWidget* = 0);
|
||||
explicit FCheckMenuItem (const FString&, FWidget* = 0);
|
||||
|
||||
explicit FCheckMenuItem (FWidget* = nullptr);
|
||||
explicit FCheckMenuItem (const FString&, FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
FCheckMenuItem (const FCheckMenuItem&) = delete;
|
||||
// Destructor
|
||||
virtual ~FCheckMenuItem();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FCheckMenuItem& operator = (const FCheckMenuItem&) = delete;
|
||||
|
||||
// Accessor
|
||||
const char* getClassName() const;
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
FCheckMenuItem (const FCheckMenuItem&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FCheckMenuItem& operator = (const FCheckMenuItem&);
|
||||
|
||||
// Methods
|
||||
void init (FWidget*);
|
||||
void processToggle();
|
||||
|
|
|
@ -51,7 +51,7 @@ class FColorPalette
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
FColorPalette();
|
||||
FColorPalette() = default;
|
||||
|
||||
// Destructor
|
||||
virtual ~FColorPalette();
|
||||
|
|
|
@ -183,7 +183,7 @@
|
|||
|
||||
/* Define to the full name and version of this package. */
|
||||
#ifndef F_PACKAGE_STRING
|
||||
#define F_PACKAGE_STRING "finalcut 0.5.0"
|
||||
#define F_PACKAGE_STRING "finalcut 0.5.1"
|
||||
#endif
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
|
@ -198,7 +198,7 @@
|
|||
|
||||
/* Define to the version of this package. */
|
||||
#ifndef F_PACKAGE_VERSION
|
||||
#define F_PACKAGE_VERSION "0.5.0"
|
||||
#define F_PACKAGE_VERSION "0.5.1"
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
|
@ -230,7 +230,7 @@
|
|||
|
||||
/* Version number of package */
|
||||
#ifndef F_VERSION
|
||||
#define F_VERSION "0.5.0"
|
||||
#define F_VERSION "0.5.1"
|
||||
#endif
|
||||
|
||||
/* Define to 1 if on MINIX. */
|
||||
|
|
|
@ -87,12 +87,16 @@ class FDialog : public FWindow
|
|||
};
|
||||
|
||||
// Constructors
|
||||
explicit FDialog (FWidget* = 0);
|
||||
explicit FDialog (const FString&, FWidget* = 0);
|
||||
|
||||
explicit FDialog (FWidget* = nullptr);
|
||||
explicit FDialog (const FString&, FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
FDialog (const FDialog&) = delete;
|
||||
// Destructor
|
||||
virtual ~FDialog();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FDialog& operator = (const FDialog&) = delete;
|
||||
|
||||
// Accessors
|
||||
virtual const char* getClassName() const;
|
||||
FString getText() const;
|
||||
|
@ -117,7 +121,7 @@ class FDialog : public FWindow
|
|||
// Methods
|
||||
virtual void show();
|
||||
virtual void hide();
|
||||
DialogCode exec();
|
||||
int exec();
|
||||
virtual void setPos (int, int, bool = true);
|
||||
virtual void move (int, int);
|
||||
bool moveUp (int);
|
||||
|
@ -145,7 +149,7 @@ class FDialog : public FWindow
|
|||
|
||||
protected:
|
||||
// Methods
|
||||
virtual void done (DialogCode);
|
||||
virtual void done (int);
|
||||
virtual void draw();
|
||||
void drawDialogShadow();
|
||||
|
||||
|
@ -172,12 +176,6 @@ class FDialog : public FWindow
|
|||
// Using-declaration
|
||||
using FWidget::drawBorder;
|
||||
|
||||
// Disable copy constructor
|
||||
FDialog (const FDialog&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FDialog& operator = (const FDialog&);
|
||||
|
||||
// Methods
|
||||
void init();
|
||||
void initDialogMenu();
|
||||
|
@ -222,21 +220,21 @@ class FDialog : public FWindow
|
|||
void cb_close (FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
FString tb_text; // title bar text
|
||||
DialogCode result_code;
|
||||
bool zoom_button_pressed;
|
||||
bool zoom_button_active;
|
||||
bool setPos_error;
|
||||
bool setSize_error;
|
||||
FPoint titlebar_click_pos;
|
||||
FPoint resize_click_pos;
|
||||
FRect save_geometry; // required by keyboard move/size
|
||||
FMenu* dialog_menu;
|
||||
FMenuItem* dgl_menuitem;
|
||||
FMenuItem* move_size_item;
|
||||
FMenuItem* zoom_item;
|
||||
FMenuItem* close_item;
|
||||
FToolTip* tooltip;
|
||||
FString tb_text{}; // title bar text
|
||||
int result_code{FDialog::Reject};
|
||||
bool zoom_button_pressed{false};
|
||||
bool zoom_button_active{false};
|
||||
bool setPos_error{false};
|
||||
bool setSize_error{false};
|
||||
FPoint titlebar_click_pos{};
|
||||
FPoint resize_click_pos{};
|
||||
FRect save_geometry{}; // required by keyboard move/size
|
||||
FMenu* dialog_menu{nullptr};
|
||||
FMenuItem* dgl_menuitem{nullptr};
|
||||
FMenuItem* move_size_item{nullptr};
|
||||
FMenuItem* zoom_item{nullptr};
|
||||
FMenuItem* close_item{nullptr};
|
||||
FToolTip* tooltip{nullptr};
|
||||
|
||||
// Friend function from FMenu
|
||||
friend void FMenu::hideSuperMenus();
|
||||
|
|
|
@ -79,22 +79,20 @@ class FDialogListMenu : public FMenu
|
|||
{
|
||||
public:
|
||||
// Constructors
|
||||
explicit FDialogListMenu (FWidget* = 0);
|
||||
explicit FDialogListMenu (const FString&, FWidget* = 0);
|
||||
|
||||
explicit FDialogListMenu (FWidget* = nullptr);
|
||||
explicit FDialogListMenu (const FString&, FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
FDialogListMenu (const FDialogListMenu&) = delete;
|
||||
// Destructor
|
||||
virtual ~FDialogListMenu();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FDialogListMenu& operator = (const FDialogListMenu&) = delete;
|
||||
|
||||
// Accessors
|
||||
virtual const char* getClassName() const;
|
||||
|
||||
private:
|
||||
// Disable copy constructor
|
||||
FDialogListMenu (const FDialogListMenu&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FDialogListMenu& operator = (const FDialogListMenu&);
|
||||
|
||||
// Method
|
||||
void init();
|
||||
};
|
||||
|
|
|
@ -92,12 +92,13 @@ namespace finalcut
|
|||
class FEvent // event base class
|
||||
{
|
||||
public:
|
||||
FEvent() = default;
|
||||
explicit FEvent(int);
|
||||
virtual ~FEvent();
|
||||
int type() const;
|
||||
|
||||
protected:
|
||||
int t;
|
||||
int t{fc::None_Event};
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
@ -113,6 +114,7 @@ class FEvent // event base class
|
|||
class FKeyEvent : public FEvent // keyboard event
|
||||
{
|
||||
public:
|
||||
FKeyEvent() = default;
|
||||
FKeyEvent (int, FKey);
|
||||
~FKeyEvent();
|
||||
|
||||
|
@ -122,8 +124,8 @@ class FKeyEvent : public FEvent // keyboard event
|
|||
void ignore();
|
||||
|
||||
protected:
|
||||
FKey k;
|
||||
bool accpt;
|
||||
FKey k{0};
|
||||
bool accpt{false};
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
@ -139,8 +141,9 @@ class FKeyEvent : public FEvent // keyboard event
|
|||
class FMouseEvent : public FEvent // mouse event
|
||||
{
|
||||
public:
|
||||
FMouseEvent (int, const FPoint&, int);
|
||||
FMouseEvent() = default;
|
||||
FMouseEvent (int, const FPoint&, const FPoint&, int);
|
||||
FMouseEvent (int, const FPoint&, int);
|
||||
~FMouseEvent();
|
||||
|
||||
const FPoint& getPos() const;
|
||||
|
@ -170,6 +173,7 @@ class FMouseEvent : public FEvent // mouse event
|
|||
class FWheelEvent : public FEvent // wheel event
|
||||
{
|
||||
public:
|
||||
FWheelEvent() = default;
|
||||
FWheelEvent (int, const FPoint&, int);
|
||||
FWheelEvent (int, const FPoint&, const FPoint&, int);
|
||||
~FWheelEvent();
|
||||
|
@ -201,6 +205,7 @@ class FWheelEvent : public FEvent // wheel event
|
|||
class FFocusEvent : public FEvent // focus event
|
||||
{
|
||||
public:
|
||||
FFocusEvent() = default;
|
||||
explicit FFocusEvent (int);
|
||||
~FFocusEvent();
|
||||
|
||||
|
@ -212,8 +217,8 @@ class FFocusEvent : public FEvent // focus event
|
|||
void accept();
|
||||
void ignore();
|
||||
protected:
|
||||
bool accpt;
|
||||
fc::FocusTypes focus_type;
|
||||
bool accpt{true};
|
||||
fc::FocusTypes focus_type{fc::FocusDefiniteWidget};
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
@ -228,15 +233,12 @@ class FFocusEvent : public FEvent // focus event
|
|||
|
||||
class FAccelEvent : public FEvent // focus event
|
||||
{
|
||||
private:
|
||||
// Disable copy constructor
|
||||
FAccelEvent (const FAccelEvent&);
|
||||
// Disable assignment operator (=)
|
||||
FAccelEvent& operator = (const FAccelEvent&);
|
||||
|
||||
public:
|
||||
FAccelEvent() = default;
|
||||
FAccelEvent (int, void*);
|
||||
FAccelEvent (const FAccelEvent&) = delete;
|
||||
~FAccelEvent();
|
||||
FAccelEvent& operator = (const FAccelEvent&) = delete;
|
||||
|
||||
void* focusedWidget() const;
|
||||
bool isAccepted() const;
|
||||
|
@ -244,7 +246,7 @@ class FAccelEvent : public FEvent // focus event
|
|||
void ignore();
|
||||
|
||||
protected:
|
||||
bool accpt;
|
||||
bool accpt{false};
|
||||
void* focus_widget;
|
||||
};
|
||||
|
||||
|
@ -258,6 +260,7 @@ class FAccelEvent : public FEvent // focus event
|
|||
class FResizeEvent : public FEvent // resize event
|
||||
{
|
||||
public:
|
||||
FResizeEvent() = default;
|
||||
explicit FResizeEvent (int);
|
||||
~FResizeEvent();
|
||||
|
||||
|
@ -266,7 +269,7 @@ class FResizeEvent : public FEvent // resize event
|
|||
void ignore();
|
||||
|
||||
protected:
|
||||
bool accpt;
|
||||
bool accpt{false};
|
||||
};
|
||||
|
||||
|
||||
|
@ -278,6 +281,7 @@ class FResizeEvent : public FEvent // resize event
|
|||
class FShowEvent : public FEvent // show event
|
||||
{
|
||||
public:
|
||||
FShowEvent() = default;
|
||||
explicit FShowEvent (int);
|
||||
~FShowEvent();
|
||||
};
|
||||
|
@ -291,6 +295,7 @@ class FShowEvent : public FEvent // show event
|
|||
class FHideEvent : public FEvent // hide event
|
||||
{
|
||||
public:
|
||||
FHideEvent() = default;
|
||||
explicit FHideEvent (int);
|
||||
~FHideEvent();
|
||||
};
|
||||
|
@ -304,6 +309,7 @@ class FHideEvent : public FEvent // hide event
|
|||
class FCloseEvent : public FEvent // close event
|
||||
{
|
||||
public:
|
||||
FCloseEvent() = default;
|
||||
explicit FCloseEvent(int);
|
||||
~FCloseEvent();
|
||||
|
||||
|
@ -312,7 +318,7 @@ class FCloseEvent : public FEvent // close event
|
|||
void ignore();
|
||||
|
||||
protected:
|
||||
bool accpt;
|
||||
bool accpt{false};
|
||||
};
|
||||
|
||||
|
||||
|
@ -327,6 +333,7 @@ class FCloseEvent : public FEvent // close event
|
|||
class FTimerEvent : public FEvent // timer event
|
||||
{
|
||||
public:
|
||||
FTimerEvent() = default;
|
||||
FTimerEvent(int, int);
|
||||
~FTimerEvent();
|
||||
|
||||
|
|
|
@ -102,12 +102,12 @@ class FFileDialog : public FDialog
|
|||
};
|
||||
|
||||
// Constructors
|
||||
explicit FFileDialog (FWidget* = 0);
|
||||
explicit FFileDialog (FWidget* = nullptr);
|
||||
FFileDialog (const FFileDialog&); // copy constructor
|
||||
FFileDialog ( const FString&
|
||||
, const FString&
|
||||
, DialogType = FFileDialog::Open
|
||||
, FWidget* = 0 );
|
||||
, FWidget* = nullptr );
|
||||
// Destructor
|
||||
virtual ~FFileDialog();
|
||||
|
||||
|
@ -186,17 +186,17 @@ class FFileDialog : public FDialog
|
|||
void cb_processShowHidden (FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
DIR* directory_stream;
|
||||
dirEntries dir_entries;
|
||||
FString directory;
|
||||
FString filter_pattern;
|
||||
FLineEdit filename;
|
||||
FListBox filebrowser;
|
||||
FCheckBox hidden;
|
||||
FButton cancel;
|
||||
FButton open;
|
||||
DialogType dlg_type;
|
||||
bool show_hidden;
|
||||
DIR* directory_stream{nullptr};
|
||||
dirEntries dir_entries{};
|
||||
FString directory{};
|
||||
FString filter_pattern{};
|
||||
FLineEdit filename{this};
|
||||
FListBox filebrowser{this};
|
||||
FCheckBox hidden{this};
|
||||
FButton cancel{this};
|
||||
FButton open{this};
|
||||
DialogType dlg_type{FFileDialog::Open};
|
||||
bool show_hidden{false};
|
||||
|
||||
// Friend functions
|
||||
friend bool sortByName ( const FFileDialog::dir_entry&
|
||||
|
|
|
@ -60,15 +60,16 @@ class FKeyboardCommand
|
|||
{
|
||||
public:
|
||||
// Constructor
|
||||
explicit FKeyboardCommand (FApplication* = 0, void(FApplication::*)() = 0);
|
||||
explicit FKeyboardCommand ( FApplication* = nullptr
|
||||
, void(FApplication::*)() = nullptr);
|
||||
|
||||
// Method
|
||||
void execute();
|
||||
|
||||
private:
|
||||
// Data Members
|
||||
FApplication* instance;
|
||||
void (FApplication::*handler)();
|
||||
FApplication* instance{nullptr};
|
||||
void (FApplication::*handler)(){nullptr};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
@ -84,17 +85,21 @@ class FKeyboard
|
|||
{
|
||||
public:
|
||||
// Constants
|
||||
static const std::size_t FIFO_BUF_SIZE = 512;
|
||||
static const std::size_t FIFO_BUF_SIZE{512};
|
||||
|
||||
// Typedef
|
||||
typedef char keybuffer[FIFO_BUF_SIZE];
|
||||
|
||||
// Constructor
|
||||
FKeyboard();
|
||||
|
||||
// Disable copy constructor
|
||||
FKeyboard (const FKeyboard&) = delete;
|
||||
// Destructor
|
||||
virtual ~FKeyboard();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FKeyboard& operator = (const FKeyboard&) = delete;
|
||||
|
||||
// Accessors
|
||||
virtual const char* getClassName() const;
|
||||
FKey getKey();
|
||||
|
@ -131,15 +136,9 @@ class FKeyboard
|
|||
|
||||
private:
|
||||
// Constants
|
||||
static const std::size_t READ_BUF_SIZE = 1024;
|
||||
static const std::size_t READ_BUF_SIZE{1024};
|
||||
static const FKey NOT_SET = static_cast<FKey>(-1);
|
||||
|
||||
// Disable copy constructor
|
||||
FKeyboard (const FKeyboard&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FKeyboard& operator = (const FKeyboard&);
|
||||
|
||||
// Accessors
|
||||
FKey getMouseProtocolKey();
|
||||
FKey getTermcapKey();
|
||||
|
@ -166,23 +165,23 @@ class FKeyboard
|
|||
void escapeKeyPressed();
|
||||
|
||||
// Data Members
|
||||
FKey key;
|
||||
char read_buf[READ_BUF_SIZE];
|
||||
char fifo_buf[FIFO_BUF_SIZE];
|
||||
int fifo_offset;
|
||||
bool fifo_in_use;
|
||||
int stdin_status_flags;
|
||||
FKey key{0};
|
||||
char read_buf[READ_BUF_SIZE]{'\0'};
|
||||
char fifo_buf[FIFO_BUF_SIZE]{'\0'};
|
||||
int fifo_offset{0};
|
||||
bool fifo_in_use{false};
|
||||
int stdin_status_flags{0};
|
||||
static long key_timeout;
|
||||
bool input_data_pending;
|
||||
bool utf8_input;
|
||||
bool mouse_support;
|
||||
bool non_blocking_stdin;
|
||||
FKeyboardCommand keypressed_cmd;
|
||||
FKeyboardCommand keyreleased_cmd;
|
||||
FKeyboardCommand escape_key_cmd;
|
||||
bool input_data_pending{false};
|
||||
bool utf8_input{false};
|
||||
bool mouse_support{true};
|
||||
bool non_blocking_stdin{false};
|
||||
FKeyboardCommand keypressed_cmd{};
|
||||
FKeyboardCommand keyreleased_cmd{};
|
||||
FKeyboardCommand escape_key_cmd{};
|
||||
|
||||
static timeval time_keypressed;
|
||||
fc::fkeymap* key_map;
|
||||
fc::fkeymap* key_map{nullptr};
|
||||
|
||||
#if defined(__linux__)
|
||||
#undef linux
|
||||
|
|
|
@ -73,15 +73,20 @@ class FLabel : public FWidget
|
|||
using FWidget::setEnable;
|
||||
|
||||
// Constructor
|
||||
explicit FLabel (FWidget* = 0);
|
||||
explicit FLabel (const FString&, FWidget* = 0);
|
||||
|
||||
explicit FLabel (FWidget* = nullptr);
|
||||
explicit FLabel (const FString&, FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
FLabel (const FLabel&) = delete;
|
||||
// Destructor
|
||||
virtual ~FLabel();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FLabel& operator = (const FLabel&) = delete;
|
||||
|
||||
// Overloaded operators
|
||||
FLabel& operator = (const FString&);
|
||||
FLabel& operator << (const FString&);
|
||||
FLabel& operator << (fc::SpecialCharacter);
|
||||
FLabel& operator << (const wchar_t);
|
||||
FLabel& operator << (const uInt);
|
||||
FLabel& operator << (const int);
|
||||
|
@ -99,7 +104,7 @@ class FLabel : public FWidget
|
|||
FString& getText();
|
||||
|
||||
// Mutators
|
||||
void setAccelWidget (FWidget* = 0);
|
||||
void setAccelWidget (FWidget* = nullptr);
|
||||
void setAlignment(fc::text_alignment);
|
||||
bool setEmphasis(bool);
|
||||
bool setEmphasis();
|
||||
|
@ -134,12 +139,6 @@ class FLabel : public FWidget
|
|||
// Constants
|
||||
static const std::size_t NOT_SET = static_cast<std::size_t>(-1);
|
||||
|
||||
// Disable copy constructor
|
||||
FLabel (const FLabel&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FLabel& operator = (const FLabel&);
|
||||
|
||||
// Methods
|
||||
void init();
|
||||
uChar getHotkey();
|
||||
|
@ -153,15 +152,15 @@ class FLabel : public FWidget
|
|||
, std::size_t, std::size_t = 0 );
|
||||
|
||||
// Data Members
|
||||
FStringList multiline_text;
|
||||
bool multiline;
|
||||
FString text;
|
||||
fc::text_alignment alignment;
|
||||
FColor emphasis_color;
|
||||
FColor ellipsis_color;
|
||||
bool emphasis;
|
||||
bool reverse_mode;
|
||||
FWidget* accel_widget;
|
||||
FStringList multiline_text{};
|
||||
bool multiline{false};
|
||||
FString text{};
|
||||
fc::text_alignment alignment{fc::alignLeft};
|
||||
FColor emphasis_color{wc.label_emphasis_fg};
|
||||
FColor ellipsis_color{wc.label_ellipsis_fg};
|
||||
bool emphasis{false};
|
||||
bool reverse_mode{false};
|
||||
FWidget* accel_widget{nullptr};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
|
|
@ -76,15 +76,20 @@ class FLineEdit : public FWidget
|
|||
};
|
||||
|
||||
// Constructor
|
||||
explicit FLineEdit (FWidget* = 0);
|
||||
explicit FLineEdit (const FString&, FWidget* = 0);
|
||||
|
||||
explicit FLineEdit (FWidget* = nullptr);
|
||||
explicit FLineEdit (const FString&, FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
FLineEdit (const FLineEdit&) = delete;
|
||||
// Destructor
|
||||
virtual ~FLineEdit();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FLineEdit& operator = (const FLineEdit&) = delete;
|
||||
|
||||
// Overloaded operators
|
||||
FLineEdit& operator = (const FString&);
|
||||
FLineEdit& operator << (const FString&);
|
||||
FLineEdit& operator << (fc::SpecialCharacter);
|
||||
FLineEdit& operator << (const wchar_t);
|
||||
FLineEdit& operator << (const uInt);
|
||||
FLineEdit& operator << (const int);
|
||||
|
@ -146,12 +151,6 @@ class FLineEdit : public FWidget
|
|||
scrollRight = 2
|
||||
};
|
||||
|
||||
// Disable copy constructor
|
||||
FLineEdit (const FLineEdit&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FLineEdit& operator = (const FLineEdit&);
|
||||
|
||||
// Methods
|
||||
void init();
|
||||
bool hasHotkey();
|
||||
|
@ -170,16 +169,16 @@ class FLineEdit : public FWidget
|
|||
void processChanged();
|
||||
|
||||
// Data Members
|
||||
FString text;
|
||||
FString label_text;
|
||||
FLabel* label;
|
||||
label_o label_orientation;
|
||||
dragScroll drag_scroll;
|
||||
bool scroll_timer;
|
||||
int scroll_repeat;
|
||||
bool insert_mode;
|
||||
std::size_t cursor_pos;
|
||||
std::size_t text_offset;
|
||||
FString text{""};
|
||||
FString label_text{""};
|
||||
FLabel* label{};
|
||||
label_o label_orientation{FLineEdit::label_left};
|
||||
dragScroll drag_scroll{FLineEdit::noScroll};
|
||||
bool scroll_timer{false};
|
||||
int scroll_repeat{100};
|
||||
bool insert_mode{true};
|
||||
std::size_t cursor_pos{0};
|
||||
std::size_t text_offset{0};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ class FListBoxItem
|
|||
// Constructors
|
||||
FListBoxItem ();
|
||||
FListBoxItem (const FListBoxItem&); // copy constructor
|
||||
explicit FListBoxItem (const FString&, FWidget::data_ptr = 0);
|
||||
explicit FListBoxItem (const FString&, FWidget::data_ptr = nullptr);
|
||||
|
||||
// Destructor
|
||||
virtual ~FListBoxItem();
|
||||
|
@ -99,10 +99,10 @@ class FListBoxItem
|
|||
friend class FListBox;
|
||||
|
||||
// Data Members
|
||||
FString text;
|
||||
FWidget::data_ptr data_pointer;
|
||||
fc::brackets_type brackets;
|
||||
bool selected;
|
||||
FString text{};
|
||||
FWidget::data_ptr data_pointer{nullptr};
|
||||
fc::brackets_type brackets{fc::NoBrackets};
|
||||
bool selected{false};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
@ -146,15 +146,19 @@ class FListBox : public FWidget
|
|||
using FWidget::setGeometry;
|
||||
|
||||
// Constructor
|
||||
explicit FListBox (FWidget* = 0);
|
||||
explicit FListBox (FWidget* = nullptr);
|
||||
template <typename Iterator, typename InsertConverter>
|
||||
FListBox (Iterator, Iterator, InsertConverter, FWidget* = 0);
|
||||
FListBox (Iterator, Iterator, InsertConverter, FWidget* = nullptr);
|
||||
template <typename Container, typename LazyConverter>
|
||||
FListBox (Container, LazyConverter, FWidget* = 0);
|
||||
|
||||
FListBox (Container, LazyConverter, FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
FListBox (const FListBox&) = delete;
|
||||
// Destructor
|
||||
virtual ~FListBox();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FListBox& operator = (const FListBox&) = delete;
|
||||
|
||||
// Accessors
|
||||
const char* getClassName() const;
|
||||
std::size_t getCount() const;
|
||||
|
@ -200,11 +204,11 @@ class FListBox : public FWidget
|
|||
void insert ( const FString&
|
||||
, fc::brackets_type = fc::NoBrackets
|
||||
, bool = false
|
||||
, data_ptr = 0 );
|
||||
, data_ptr = nullptr );
|
||||
void insert ( long
|
||||
, fc::brackets_type = fc::NoBrackets
|
||||
, bool = false
|
||||
, data_ptr = 0 );
|
||||
, data_ptr = nullptr );
|
||||
void remove (std::size_t);
|
||||
void clear();
|
||||
|
||||
|
@ -221,7 +225,7 @@ class FListBox : public FWidget
|
|||
|
||||
protected:
|
||||
// Methods
|
||||
void adjustYOffset();
|
||||
void adjustYOffset (std::size_t);
|
||||
virtual void adjustSize();
|
||||
|
||||
private:
|
||||
|
@ -233,12 +237,6 @@ class FListBox : public FWidget
|
|||
lazy_convert = 2
|
||||
};
|
||||
|
||||
// Disable copy constructor
|
||||
FListBox (const FListBox&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FListBox& operator = (const FListBox&);
|
||||
|
||||
// Accessors
|
||||
static FString& getString (listBoxItems::iterator);
|
||||
|
||||
|
@ -299,30 +297,30 @@ class FListBox : public FWidget
|
|||
// Function Pointer
|
||||
void (*convertToItem) ( FListBoxItem&
|
||||
, FWidget::data_ptr
|
||||
, int index );
|
||||
, int index ){nullptr};
|
||||
|
||||
// Data Members
|
||||
listBoxItems itemlist;
|
||||
FWidget::data_ptr source_container;
|
||||
convert_type conv_type;
|
||||
FScrollbar* vbar;
|
||||
FScrollbar* hbar;
|
||||
FString text;
|
||||
FString inc_search;
|
||||
bool multi_select;
|
||||
bool mouse_select;
|
||||
fc::dragScroll drag_scroll;
|
||||
bool scroll_timer;
|
||||
int scroll_repeat;
|
||||
int scroll_distance;
|
||||
std::size_t current;
|
||||
int last_current;
|
||||
int secect_from_item;
|
||||
int xoffset;
|
||||
int yoffset;
|
||||
int last_yoffset;
|
||||
std::size_t nf_offset;
|
||||
std::size_t max_line_width;
|
||||
listBoxItems itemlist{};
|
||||
FWidget::data_ptr source_container{nullptr};
|
||||
convert_type conv_type{FListBox::no_convert};
|
||||
FScrollbar* vbar{nullptr};
|
||||
FScrollbar* hbar{nullptr};
|
||||
FString text{};
|
||||
FString inc_search{};
|
||||
bool multi_select{false};
|
||||
bool mouse_select{false};
|
||||
fc::dragScroll drag_scroll{fc::noScroll};
|
||||
bool scroll_timer{false};
|
||||
int scroll_repeat{100};
|
||||
int scroll_distance{1};
|
||||
std::size_t current{0};
|
||||
int last_current{-1};
|
||||
int secect_from_item{-1};
|
||||
int xoffset{0};
|
||||
int yoffset{0};
|
||||
int last_yoffset{-1};
|
||||
std::size_t nf_offset{0};
|
||||
std::size_t max_line_width{0};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
@ -335,28 +333,6 @@ inline FListBox::FListBox ( Iterator first
|
|||
, InsertConverter convert
|
||||
, FWidget* parent )
|
||||
: FWidget(parent)
|
||||
, convertToItem(0)
|
||||
, itemlist()
|
||||
, source_container(0)
|
||||
, conv_type(FListBox::no_convert)
|
||||
, vbar(0)
|
||||
, hbar(0)
|
||||
, text()
|
||||
, inc_search()
|
||||
, multi_select(false)
|
||||
, mouse_select(false)
|
||||
, drag_scroll(fc::noScroll)
|
||||
, scroll_timer(false)
|
||||
, scroll_repeat(100)
|
||||
, scroll_distance(1)
|
||||
, current(0)
|
||||
, last_current(-1)
|
||||
, secect_from_item(-1)
|
||||
, xoffset(0)
|
||||
, yoffset(0)
|
||||
, last_yoffset(-1)
|
||||
, nf_offset(0)
|
||||
, max_line_width(0)
|
||||
{
|
||||
init();
|
||||
|
||||
|
@ -373,28 +349,6 @@ inline FListBox::FListBox ( Container container
|
|||
, LazyConverter convert
|
||||
, FWidget* parent )
|
||||
: FWidget(parent)
|
||||
, convertToItem(0)
|
||||
, itemlist()
|
||||
, source_container(0)
|
||||
, conv_type(FListBox::no_convert)
|
||||
, vbar(0)
|
||||
, hbar(0)
|
||||
, text()
|
||||
, inc_search()
|
||||
, multi_select(false)
|
||||
, mouse_select(false)
|
||||
, drag_scroll(fc::noScroll)
|
||||
, scroll_timer(false)
|
||||
, scroll_repeat(100)
|
||||
, scroll_distance(1)
|
||||
, current(0)
|
||||
, last_current(-1)
|
||||
, secect_from_item(-1)
|
||||
, xoffset(0)
|
||||
, yoffset(0)
|
||||
, last_yoffset(-1)
|
||||
, nf_offset(0)
|
||||
, max_line_width(0)
|
||||
{
|
||||
init();
|
||||
insert (container, convert);
|
||||
|
|
|
@ -128,14 +128,14 @@ class FListViewItem : public FObject
|
|||
void resetVisibleLineCounter();
|
||||
|
||||
// Data Members
|
||||
FStringList column_list;
|
||||
FWidget::data_ptr data_pointer;
|
||||
FObjectIterator root;
|
||||
std::size_t visible_lines;
|
||||
bool expandable;
|
||||
bool is_expand;
|
||||
bool checkable;
|
||||
bool is_checked;
|
||||
FStringList column_list{};
|
||||
FWidget::data_ptr data_pointer{nullptr};
|
||||
FObjectIterator root{};
|
||||
std::size_t visible_lines{1};
|
||||
bool expandable{false};
|
||||
bool is_expand{false};
|
||||
bool checkable{false};
|
||||
bool is_checked{false};
|
||||
|
||||
// Friend class
|
||||
friend class FListView;
|
||||
|
@ -198,7 +198,7 @@ class FListViewIterator
|
|||
typedef std::stack<FObjectIterator> FObjectIteratorStack;
|
||||
|
||||
// Constructor
|
||||
FListViewIterator ();
|
||||
FListViewIterator () = default;
|
||||
FListViewIterator (FObjectIterator);
|
||||
|
||||
// Overloaded operators
|
||||
|
@ -226,9 +226,9 @@ class FListViewIterator
|
|||
void prevElement (FObjectIterator&);
|
||||
|
||||
// Data Members
|
||||
FObjectIteratorStack iter_path;
|
||||
FObjectIterator node;
|
||||
int position;
|
||||
FObjectIteratorStack iter_path{};
|
||||
FObjectIterator node{};
|
||||
int position{0};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
@ -272,11 +272,15 @@ class FListView : public FWidget
|
|||
using FWidget::setGeometry;
|
||||
|
||||
// Constructor
|
||||
explicit FListView (FWidget* = 0);
|
||||
|
||||
explicit FListView (FWidget* = nullptr);
|
||||
// Disable copy constructor
|
||||
FListView (const FListView&) = delete;
|
||||
// Destructor
|
||||
virtual ~FListView();
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FListView& operator = (const FListView&) = delete;
|
||||
|
||||
// Accessors
|
||||
const char* getClassName() const;
|
||||
std::size_t getCount();
|
||||
|
@ -311,14 +315,14 @@ class FListView : public FWidget
|
|||
FObjectIterator insert (FListViewItem*);
|
||||
FObjectIterator insert (FListViewItem*, FObjectIterator);
|
||||
FObjectIterator insert ( const FStringList&
|
||||
, data_ptr = 0 );
|
||||
, data_ptr = nullptr );
|
||||
FObjectIterator insert ( const FStringList&
|
||||
, FObjectIterator );
|
||||
FObjectIterator insert ( const FStringList&
|
||||
, data_ptr
|
||||
, FObjectIterator );
|
||||
FObjectIterator insert ( const std::vector<long>&
|
||||
, data_ptr = 0 );
|
||||
, data_ptr = nullptr );
|
||||
FObjectIterator insert ( const std::vector<long>&
|
||||
, FObjectIterator );
|
||||
FObjectIterator insert ( const std::vector<long>&
|
||||
|
@ -344,7 +348,7 @@ class FListView : public FWidget
|
|||
|
||||
protected:
|
||||
// Methods
|
||||
void adjustViewport();
|
||||
void adjustViewport (int);
|
||||
virtual void adjustSize();
|
||||
|
||||
private:
|
||||
|
@ -356,12 +360,6 @@ class FListView : public FWidget
|
|||
// Constants
|
||||
static const int USE_MAX_SIZE = -1;
|
||||
|
||||
// Disable copy constructor
|
||||
FListView (const FListView&);
|
||||
|
||||
// Disable assignment operator (=)
|
||||
FListView& operator = (const FListView&);
|
||||
|
||||
// Methods
|
||||
void init();
|
||||
template <typename Compare>
|
||||
|
@ -382,11 +380,11 @@ class FListView : public FWidget
|
|||
void drawColumnEllipsis ( headerItems::const_iterator&
|
||||
, const FString& );
|
||||
void updateDrawing (bool, bool);
|
||||
int determineLineWidth (FListViewItem*);
|
||||
std::size_t determineLineWidth (FListViewItem*);
|
||||
void beforeInsertion (FListViewItem*);
|
||||
void afterInsertion();
|
||||
void recalculateHorizontalBar (int);
|
||||
void recalculateVerticalBar (int);
|
||||
void recalculateHorizontalBar (std::size_t);
|
||||
void recalculateVerticalBar (std::size_t);
|
||||
void mouseHeaderClicked();
|
||||
void wheelUp (int);
|
||||
void wheelDown (int);
|
||||
|
@ -422,34 +420,34 @@ class FListView : public FWidget
|
|||
void cb_HBarChange (FWidget*, data_ptr);
|
||||
|
||||
// Data Members
|
||||
FObjectIterator root;
|
||||
FObjectList selflist;
|
||||
FObjectList itemlist;
|
||||
FListViewIterator current_iter;
|
||||
FListViewIterator first_visible_line;
|
||||
FListViewIterator last_visible_line;
|
||||
headerItems header;
|
||||
FTermBuffer headerline;
|
||||
FScrollbar* vbar;
|
||||
FScrollbar* hbar;
|
||||
fc::dragScroll drag_scroll;
|
||||
int scroll_repeat;
|
||||
int scroll_distance;
|
||||
bool scroll_timer;
|
||||
bool tree_view;
|
||||
bool hide_sort_indicator;
|
||||
bool has_checkable_items;
|
||||
FPoint clicked_expander_pos;
|
||||
FPoint clicked_header_pos;
|
||||
const FListViewItem* clicked_checkbox_item;
|
||||
int xoffset;
|
||||
int nf_offset;
|
||||
int max_line_width;
|
||||
int sort_column;
|
||||
sortTypes sort_type;
|
||||
fc::sorting_order sort_order;
|
||||
bool (*user_defined_ascending) (const FObject*, const FObject*);
|
||||
bool (*user_defined_descending) (const FObject*, const FObject*);
|
||||
FObjectIterator root{};
|
||||
FObjectList selflist{};
|
||||
FObjectList itemlist{};
|
||||
FListViewIterator current_iter{};
|
||||
FListViewIterator first_visible_line{};
|
||||
FListViewIterator last_visible_line{};
|
||||
headerItems header{};
|
||||
FTermBuffer headerline{};
|
||||
FScrollbar* vbar{nullptr};
|
||||
FScrollbar* hbar{nullptr};
|
||||
fc::dragScroll drag_scroll{fc::noScroll};
|
||||
int scroll_repeat{100};
|
||||
int scroll_distance{1};
|
||||
bool scroll_timer{false};
|
||||
bool tree_view{false};
|
||||
bool hide_sort_indicator{false};
|
||||
bool has_checkable_items{false};
|
||||
FPoint clicked_expander_pos{-1, -1};
|
||||
FPoint clicked_header_pos{-1, -1};
|
||||
const FListViewItem* clicked_checkbox_item{nullptr};
|
||||
int xoffset{0};
|
||||
std::size_t nf_offset{0};
|
||||
std::size_t max_line_width{1};
|
||||
int sort_column{-1};
|
||||
sortTypes sort_type{};
|
||||
fc::sorting_order sort_order{fc::unsorted};
|
||||
bool (*user_defined_ascending) (const FObject*, const FObject*){nullptr};
|
||||
bool (*user_defined_descending) (const FObject*, const FObject*){nullptr};
|
||||
|
||||
// Friend class
|
||||
friend class FListViewItem;
|
||||
|
@ -466,17 +464,12 @@ class FListView : public FWidget
|
|||
struct FListView::Header
|
||||
{
|
||||
public:
|
||||
Header()
|
||||
: name()
|
||||
, width (0)
|
||||
, fixed_width (false)
|
||||
, alignment (fc::alignLeft)
|
||||
{ }
|
||||
Header() = default;
|
||||
|
||||
FString name;
|
||||
int width;
|
||||
bool fixed_width;
|
||||
fc::text_alignment alignment;
|
||||
FString name{};
|
||||
int width{0};
|
||||
bool fixed_width{false};
|
||||
fc::text_alignment alignment{fc::alignLeft};
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue