Several small code improvements
This commit is contained in:
parent
f364f76aea
commit
90b389035e
|
@ -100,7 +100,7 @@ matrix:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
|
|
||||||
#
|
#
|
||||||
# sonarcloud
|
# SonarCloud
|
||||||
#
|
#
|
||||||
- os: linux
|
- os: linux
|
||||||
env:
|
env:
|
||||||
|
|
|
@ -36,7 +36,7 @@ using finalcut::FSize;
|
||||||
// class SegmentView
|
// class SegmentView
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class SegmentView : public finalcut::FDialog
|
class SegmentView final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit SegmentView (finalcut::FWidget* = nullptr);
|
explicit SegmentView (finalcut::FWidget* = nullptr);
|
||||||
|
|
|
@ -34,7 +34,7 @@ using finalcut::FSize;
|
||||||
// class Background
|
// class Background
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Background : public finalcut::FDialog
|
class Background final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Typedef
|
// Typedef
|
||||||
|
|
|
@ -42,7 +42,7 @@ constexpr lDouble PI{3.141592653589793238L};
|
||||||
// class Button
|
// class Button
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Button : public finalcut::FButton
|
class Button final : public finalcut::FButton
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
@ -106,7 +106,7 @@ void Button::onKeyPress (finalcut::FKeyEvent* ev)
|
||||||
// class Calc
|
// class Calc
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Calc : public finalcut::FDialog
|
class Calc final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -36,7 +36,7 @@ using finalcut::FSize;
|
||||||
// class CheckList
|
// class CheckList
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class CheckList : public finalcut::FDialog
|
class CheckList final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
// class Keyboard
|
// class Keyboard
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Keyboard : public finalcut::FWidget
|
class Keyboard final : public finalcut::FWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -76,7 +76,7 @@ FString& mapToString ( std::map<FString
|
||||||
// class Listbox
|
// class Listbox
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Listbox : public FDialog
|
class Listbox final : public FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -36,7 +36,7 @@ using finalcut::FSize;
|
||||||
// class Listview
|
// class Listview
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Listview : public finalcut::FDialog
|
class Listview final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -31,7 +31,7 @@ using finalcut::FSize;
|
||||||
// class Mandelbrot
|
// class Mandelbrot
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Mandelbrot : public finalcut::FDialog
|
class Mandelbrot final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -31,7 +31,7 @@ using finalcut::FSize;
|
||||||
// class Menu
|
// class Menu
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Menu : public finalcut::FDialog
|
class Menu final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -33,7 +33,7 @@ using finalcut::FSize;
|
||||||
// class ColorChooser
|
// class ColorChooser
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class ColorChooser : public finalcut::FWidget
|
class ColorChooser final : public finalcut::FWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
@ -172,7 +172,7 @@ inline FColor ColorChooser::getBackground()
|
||||||
// class Brushes
|
// class Brushes
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Brushes : public finalcut::FWidget
|
class Brushes final : public finalcut::FWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
@ -308,7 +308,7 @@ inline void Brushes::setBackground (FColor color)
|
||||||
// class MouseDraw
|
// class MouseDraw
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class MouseDraw : public finalcut::FDialog
|
class MouseDraw final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Using-declaration
|
// Using-declaration
|
||||||
|
|
|
@ -42,7 +42,7 @@ using finalcut::FSize;
|
||||||
// class RotoZoomer
|
// class RotoZoomer
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class RotoZoomer : public finalcut::FDialog
|
class RotoZoomer final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -31,7 +31,7 @@ using finalcut::FSize;
|
||||||
// class Scrollview
|
// class Scrollview
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Scrollview : public finalcut::FScrollView
|
class Scrollview final : public finalcut::FScrollView
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
@ -190,7 +190,7 @@ void Scrollview::cb_goNorth (const finalcut::FWidget*, const FDataPtr)
|
||||||
// class Scrollviewdemo
|
// class Scrollviewdemo
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Scrollviewdemo : public finalcut::FDialog
|
class Scrollviewdemo final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -122,7 +122,8 @@ void streamingIntoFStringExample()
|
||||||
|
|
||||||
// ...from wide string
|
// ...from wide string
|
||||||
finalcut::FString streamer3;
|
finalcut::FString streamer3;
|
||||||
streamer3 << const_cast<wchar_t*>(L"wchar_t*");
|
wchar_t* wchar_str{const_cast<wchar_t*>(L"wchar_t*")};
|
||||||
|
streamer3 << wchar_str;
|
||||||
std::cout << " stream in: " << streamer3 << std::endl;
|
std::cout << " stream in: " << streamer3 << std::endl;
|
||||||
|
|
||||||
// ...from c++ string
|
// ...from c++ string
|
||||||
|
@ -132,7 +133,8 @@ void streamingIntoFStringExample()
|
||||||
|
|
||||||
// ...from c-string
|
// ...from c-string
|
||||||
finalcut::FString streamer5;
|
finalcut::FString streamer5;
|
||||||
streamer5 << const_cast<char*>("char*");
|
char* char_str{C_STR("char*")};
|
||||||
|
streamer5 << char_str;
|
||||||
std::cout << " stream in: " << streamer5 << std::endl;
|
std::cout << " stream in: " << streamer5 << std::endl;
|
||||||
|
|
||||||
// ...from wide character
|
// ...from wide character
|
||||||
|
|
|
@ -34,7 +34,7 @@ using finalcut::FColorPair;
|
||||||
// class AttribDlg
|
// class AttribDlg
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class AttribDlg : public finalcut::FDialog
|
class AttribDlg final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
@ -200,7 +200,7 @@ void AttribDlg::adjustSize()
|
||||||
// class AttribDemo
|
// class AttribDemo
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class AttribDemo : public finalcut::FWidget
|
class AttribDemo final : public finalcut::FWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
@ -425,19 +425,18 @@ void AttribDemo::draw()
|
||||||
|
|
||||||
const std::vector<std::function<void()> > effect
|
const std::vector<std::function<void()> > effect
|
||||||
{
|
{
|
||||||
[&] { printDim(); },
|
[this] { printNormal(); },
|
||||||
[&] { printNormal(); },
|
[this] { printBold(); },
|
||||||
[&] { printBold(); },
|
[this] { printBoldDim(); },
|
||||||
[&] { printBoldDim(); },
|
[this] { printItalic(); },
|
||||||
[&] { printItalic(); },
|
[this] { printUnderline(); },
|
||||||
[&] { printUnderline(); },
|
[this] { printDblUnderline(); },
|
||||||
[&] { printDblUnderline(); },
|
[this] { printCrossesOut(); },
|
||||||
[&] { printCrossesOut(); },
|
[this] { printBlink(); },
|
||||||
[&] { printBlink(); },
|
[this] { printReverse(); },
|
||||||
[&] { printReverse(); },
|
[this] { printStandout(); },
|
||||||
[&] { printStandout(); },
|
[this] { printInvisible(); },
|
||||||
[&] { printInvisible(); },
|
[this] { printProtected(); },
|
||||||
[&] { printProtected(); },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
for (std::size_t y{0}; y < getParentWidget()->getHeight() - 7; y++)
|
for (std::size_t y{0}; y < getParentWidget()->getHeight() - 7; y++)
|
||||||
|
|
|
@ -237,7 +237,9 @@ void debug (finalcut::FApplication& TermApp)
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
void debug (finalcut::FApplication&)
|
void debug (finalcut::FApplication&)
|
||||||
{ }
|
{
|
||||||
|
// FINAL CUT was compiled without debug option
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
|
@ -29,7 +29,7 @@ namespace fc = finalcut::fc;
|
||||||
// class Timer
|
// class Timer
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Timer : public finalcut::FWidget
|
class Timer final : public finalcut::FWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -33,7 +33,7 @@ using finalcut::FStyle;
|
||||||
// class Transparent
|
// class Transparent
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Transparent : public finalcut::FDialog
|
class Transparent final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Typedef and Enumeration
|
// Typedef and Enumeration
|
||||||
|
@ -74,6 +74,7 @@ Transparent::Transparent ( finalcut::FWidget* parent
|
||||||
: finalcut::FDialog(parent)
|
: finalcut::FDialog(parent)
|
||||||
, type(tt)
|
, type(tt)
|
||||||
{
|
{
|
||||||
|
// Set statusbar text for this window
|
||||||
setStatusbarMessage("Press Q to quit");
|
setStatusbarMessage("Press Q to quit");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,7 +140,7 @@ void Transparent::onKeyPress (finalcut::FKeyEvent* ev)
|
||||||
// class MainWindow
|
// class MainWindow
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class MainWindow : public finalcut::FDialog
|
class MainWindow final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
@ -212,8 +213,8 @@ MainWindow::MainWindow (finalcut::FWidget* parent)
|
||||||
ibg->setGeometry (FPoint(42, 3), FSize(29, 7));
|
ibg->setGeometry (FPoint(42, 3), FSize(29, 7));
|
||||||
ibg->unsetTransparentShadow();
|
ibg->unsetTransparentShadow();
|
||||||
|
|
||||||
// Statusbar at the bottom
|
// Set statusbar text for this window
|
||||||
status_bar.setMessage("Press Q to quit");
|
setStatusbarMessage("Press Q to quit");
|
||||||
|
|
||||||
unsetTransparentShadow();
|
unsetTransparentShadow();
|
||||||
activateDialog();
|
activateDialog();
|
||||||
|
|
|
@ -66,6 +66,7 @@ bool sortAscending ( const finalcut::FObject* lhs
|
||||||
const sInt64 r_number = StringToNumber(r_item->getText(column));
|
const sInt64 r_number = StringToNumber(r_item->getText(column));
|
||||||
return bool( l_number < r_number ); // lhs < rhs
|
return bool( l_number < r_number ); // lhs < rhs
|
||||||
}
|
}
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
{
|
{
|
||||||
std::setlocale(LC_NUMERIC, "C");
|
std::setlocale(LC_NUMERIC, "C");
|
||||||
|
@ -73,6 +74,9 @@ bool sortAscending ( const finalcut::FObject* lhs
|
||||||
const double r_number = r_item->getText(column).toDouble();
|
const double r_number = r_item->getText(column).toDouble();
|
||||||
return bool( l_number < r_number ); // lhs < rhs
|
return bool( l_number < r_number ); // lhs < rhs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
break; // Don't do anything
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -102,6 +106,9 @@ bool sortDescending ( const finalcut::FObject* lhs
|
||||||
const double r_number = r_item->getText(column).toDouble();
|
const double r_number = r_item->getText(column).toDouble();
|
||||||
return bool( l_number > r_number ); // lhs > rhs
|
return bool( l_number > r_number ); // lhs > rhs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
break; // Don't do anything
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -112,7 +119,7 @@ bool sortDescending ( const finalcut::FObject* lhs
|
||||||
// class Treeview
|
// class Treeview
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Treeview : public finalcut::FDialog
|
class Treeview final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -38,20 +38,20 @@ using finalcut::FSize;
|
||||||
// class ProgressDialog
|
// class ProgressDialog
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class ProgressDialog : public finalcut::FDialog
|
class ProgressDialog final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
explicit ProgressDialog (finalcut::FWidget* = nullptr);
|
explicit ProgressDialog (finalcut::FWidget* = nullptr);
|
||||||
|
|
||||||
// Disable copy constructor
|
// Copy constructor
|
||||||
ProgressDialog (const ProgressDialog&) = delete;
|
ProgressDialog (const ProgressDialog&) = default;
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~ProgressDialog() override;
|
~ProgressDialog() override;
|
||||||
|
|
||||||
// Disable assignment operator (=)
|
// Assignment operator (=)
|
||||||
ProgressDialog& operator = (const ProgressDialog&) = delete;
|
ProgressDialog& operator = (const ProgressDialog&) = default;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Event handlers
|
// Event handlers
|
||||||
|
@ -181,7 +181,7 @@ void ProgressDialog::cb_exit_bar (const finalcut::FWidget*, const FDataPtr)
|
||||||
// class TextWindow
|
// class TextWindow
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class TextWindow : public finalcut::FDialog
|
class TextWindow final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
@ -247,7 +247,7 @@ void TextWindow::adjustSize()
|
||||||
// class MyDialog
|
// class MyDialog
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class MyDialog : public finalcut::FDialog
|
class MyDialog final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -31,7 +31,7 @@ using finalcut::FSize;
|
||||||
// class Watch
|
// class Watch
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Watch : public finalcut::FDialog
|
class Watch final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
|
@ -32,7 +32,7 @@ using finalcut::FSize;
|
||||||
// class SmallWindow
|
// class SmallWindow
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class SmallWindow : public finalcut::FDialog
|
class SmallWindow final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
@ -160,20 +160,20 @@ void SmallWindow::onTimer (finalcut::FTimerEvent*)
|
||||||
// class Window
|
// class Window
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
class Window : public finalcut::FDialog
|
class Window final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
explicit Window (finalcut::FWidget* = nullptr);
|
explicit Window (finalcut::FWidget* = nullptr);
|
||||||
|
|
||||||
// Disable copy constructor
|
// Copy constructor
|
||||||
Window (const Window&) = delete;
|
Window (const Window&) = default;
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Window() override;
|
~Window() override;
|
||||||
|
|
||||||
// Disable assignment operator (=)
|
// Assignment operator (=)
|
||||||
Window& operator = (const Window&) = delete;
|
Window& operator = (const Window&) = default;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Typedefs
|
// Typedefs
|
||||||
|
|
|
@ -88,8 +88,9 @@ FApplication::FApplication ( const int& _argc
|
||||||
|
|
||||||
if ( ! (_argc && _argv) )
|
if ( ! (_argc && _argv) )
|
||||||
{
|
{
|
||||||
static char* empty{C_STR("")};
|
|
||||||
app_argc = 0;
|
app_argc = 0;
|
||||||
|
static char empty_str[1] = "";
|
||||||
|
auto empty = const_cast<char*>(empty_str);
|
||||||
app_argv = static_cast<char**>(&empty);
|
app_argv = static_cast<char**>(&empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,8 +180,7 @@ bool FApplication::sendEvent ( const FObject* receiver
|
||||||
|
|
||||||
if ( receiver->isWidget() )
|
if ( receiver->isWidget() )
|
||||||
{
|
{
|
||||||
const auto r_widget = static_cast<const FWidget*>(receiver);
|
const auto widget = static_cast<const FWidget*>(receiver);
|
||||||
auto widget = const_cast<FWidget*>(r_widget);
|
|
||||||
|
|
||||||
if ( getModalDialogCounter() > 0 )
|
if ( getModalDialogCounter() > 0 )
|
||||||
{
|
{
|
||||||
|
@ -363,7 +363,13 @@ void FApplication::closeConfirmationDialog (FWidget* w, FCloseEvent* ev)
|
||||||
if ( ret == FMessageBox::Yes )
|
if ( ret == FMessageBox::Yes )
|
||||||
ev->accept();
|
ev->accept();
|
||||||
else
|
else
|
||||||
|
{
|
||||||
ev->ignore();
|
ev->ignore();
|
||||||
|
|
||||||
|
// Status bar restore after closing the FMessageBox
|
||||||
|
if ( getStatusBar() )
|
||||||
|
getStatusBar()->drawMessage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// private methods of FApplication
|
// private methods of FApplication
|
||||||
|
|
|
@ -521,7 +521,9 @@ inline void FButton::drawTopBottomBackground()
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
inline void FButton::drawButtonTextLine (const FString& button_text)
|
inline void FButton::drawButtonTextLine (const FString& button_text)
|
||||||
{
|
{
|
||||||
|
std::size_t z{0};
|
||||||
std::size_t pos{};
|
std::size_t pos{};
|
||||||
|
std::size_t columns{0};
|
||||||
print() << FPoint(2 + int(indent), 1 + int(vcenter_offset))
|
print() << FPoint(2 + int(indent), 1 + int(vcenter_offset))
|
||||||
<< FColorPair (button_fg, button_bg);
|
<< FColorPair (button_fg, button_bg);
|
||||||
|
|
||||||
|
@ -547,8 +549,7 @@ inline void FButton::drawButtonTextLine (const FString& button_text)
|
||||||
if ( active_focus && (isMonochron() || getMaxColor() < 16) )
|
if ( active_focus && (isMonochron() || getMaxColor() < 16) )
|
||||||
setBold();
|
setBold();
|
||||||
|
|
||||||
for ( std::size_t z{0}, columns{0}
|
while ( pos < center_offset + column_width && columns + 2 < getWidth() )
|
||||||
; pos < center_offset + column_width && columns + 2 < getWidth(); )
|
|
||||||
{
|
{
|
||||||
if ( z == hotkeypos && getFlags().active )
|
if ( z == hotkeypos && getFlags().active )
|
||||||
{
|
{
|
||||||
|
|
|
@ -538,7 +538,7 @@ void FComboBox::draw()
|
||||||
{
|
{
|
||||||
const auto& wc = getFWidgetColors();
|
const auto& wc = getFWidgetColors();
|
||||||
|
|
||||||
const FColorPair button_color = [&] ()
|
const FColorPair button_color = [this, &wc] ()
|
||||||
{
|
{
|
||||||
if ( list_window.isEmpty() )
|
if ( list_window.isEmpty() )
|
||||||
return FColorPair ( wc.scrollbar_button_inactive_fg
|
return FColorPair ( wc.scrollbar_button_inactive_fg
|
||||||
|
|
|
@ -491,8 +491,46 @@ FListViewIterator::FListViewIterator (iterator iter)
|
||||||
: node(iter)
|
: node(iter)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
FListViewIterator::FListViewIterator (const FListViewIterator& i)
|
||||||
|
: iter_path(i.iter_path) // copy constructor
|
||||||
|
, node(i.node)
|
||||||
|
, position(i.position)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
FListViewIterator::FListViewIterator (FListViewIterator&& i) noexcept
|
||||||
|
: iter_path(i.iter_path) // move constructor
|
||||||
|
, node(i.node)
|
||||||
|
, position(i.position)
|
||||||
|
{
|
||||||
|
i.iter_path = iterator_stack{};
|
||||||
|
i.node = iterator{};
|
||||||
|
i.position = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// FListViewIterator operators
|
// FListViewIterator operators
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
FListViewIterator& FListViewIterator::operator = (const FListViewIterator& i)
|
||||||
|
{
|
||||||
|
iter_path = i.iter_path;
|
||||||
|
node = i.node;
|
||||||
|
position = i.position;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
FListViewIterator& FListViewIterator::operator = (FListViewIterator&& i) noexcept
|
||||||
|
{
|
||||||
|
iter_path = i.iter_path;
|
||||||
|
node = i.node;
|
||||||
|
position = i.position;
|
||||||
|
i.iter_path = iterator_stack{};
|
||||||
|
i.node = iterator{};
|
||||||
|
i.position = 0;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
FListViewIterator& FListViewIterator::operator ++ () // prefix
|
FListViewIterator& FListViewIterator::operator ++ () // prefix
|
||||||
{
|
{
|
||||||
|
|
|
@ -566,8 +566,9 @@ int FOptiMove::capDuration (const char cap[], int affcnt)
|
||||||
if ( p[0] == '$' && p[1] == '<' && std::strchr(p, '>') )
|
if ( p[0] == '$' && p[1] == '<' && std::strchr(p, '>') )
|
||||||
{
|
{
|
||||||
float num = 0;
|
float num = 0;
|
||||||
|
p += 2;
|
||||||
|
|
||||||
for (p += 2; *p != '>'; p++)
|
while ( *p != '>' )
|
||||||
{
|
{
|
||||||
if ( std::isdigit(uChar(*p)) )
|
if ( std::isdigit(uChar(*p)) )
|
||||||
num = num * 10 + float(*p - '0');
|
num = num * 10 + float(*p - '0');
|
||||||
|
@ -575,11 +576,13 @@ int FOptiMove::capDuration (const char cap[], int affcnt)
|
||||||
num *= float(affcnt);
|
num *= float(affcnt);
|
||||||
else if ( *p == '.' )
|
else if ( *p == '.' )
|
||||||
{
|
{
|
||||||
++p;
|
p++;
|
||||||
|
|
||||||
if ( *p != '>' && std::isdigit(uChar(*p)) )
|
if ( *p != '>' && std::isdigit(uChar(*p)) )
|
||||||
num += float((*p - '0') / 10.0);
|
num += float((*p - '0') / 10.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p++;
|
||||||
}
|
}
|
||||||
|
|
||||||
ms += num * 10;
|
ms += num * 10;
|
||||||
|
|
|
@ -56,6 +56,28 @@ FRect::~FRect() // destructor
|
||||||
|
|
||||||
|
|
||||||
// public methods of FRect
|
// public methods of FRect
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
FRect& FRect::operator = (const FRect& r)
|
||||||
|
{
|
||||||
|
X1 = r.X1;
|
||||||
|
Y1 = r.Y1;
|
||||||
|
X2 = r.X2;
|
||||||
|
Y2 = r.Y2;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
FRect& FRect::operator = (FRect&& r) noexcept
|
||||||
|
{
|
||||||
|
X1 = r.X1;
|
||||||
|
Y1 = r.Y1;
|
||||||
|
X2 = r.X2;
|
||||||
|
Y2 = r.Y2;
|
||||||
|
r.X1 = r.Y1 = 0;
|
||||||
|
r.X2 = r.Y2 = -1;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
bool FRect::isEmpty() const
|
bool FRect::isEmpty() const
|
||||||
{
|
{
|
||||||
|
@ -310,27 +332,6 @@ FRect FRect::combined (const FRect& r) const
|
||||||
return new_rect;
|
return new_rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
FRect& FRect::operator = (const FRect& r)
|
|
||||||
{
|
|
||||||
X1 = r.X1;
|
|
||||||
Y1 = r.Y1;
|
|
||||||
X2 = r.X2;
|
|
||||||
Y2 = r.Y2;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
FRect& FRect::operator = (FRect&& r) noexcept
|
|
||||||
{
|
|
||||||
X1 = r.X1;
|
|
||||||
Y1 = r.Y1;
|
|
||||||
X2 = r.X2;
|
|
||||||
Y2 = r.Y2;
|
|
||||||
r.X1 = r.Y1 = 0;
|
|
||||||
r.X2 = r.Y2 = -1;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
// FRect non-member operators
|
// FRect non-member operators
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
|
@ -60,9 +60,10 @@ FKey getHotkey (const FString& text)
|
||||||
if ( text.isEmpty() )
|
if ( text.isEmpty() )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
std::size_t i{0};
|
||||||
const std::size_t length = text.getLength();
|
const std::size_t length = text.getLength();
|
||||||
|
|
||||||
for (std::size_t i{0}; i < length; i++)
|
while ( i < length )
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -76,7 +77,10 @@ FKey getHotkey (const FString& text)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -190,8 +190,12 @@ class FListViewIterator
|
||||||
// Constructor
|
// Constructor
|
||||||
FListViewIterator ();
|
FListViewIterator ();
|
||||||
FListViewIterator (iterator);
|
FListViewIterator (iterator);
|
||||||
|
FListViewIterator (const FListViewIterator&); // copy constructor
|
||||||
|
FListViewIterator (FListViewIterator&&) noexcept; // move constructor
|
||||||
|
|
||||||
// Overloaded operators
|
// Overloaded operators
|
||||||
|
FListViewIterator& operator = (const FListViewIterator&);
|
||||||
|
FListViewIterator& operator = (FListViewIterator&&) noexcept;
|
||||||
FListViewIterator& operator ++ (); // prefix
|
FListViewIterator& operator ++ (); // prefix
|
||||||
FListViewIterator operator ++ (int); // postfix
|
FListViewIterator operator ++ (int); // postfix
|
||||||
FListViewIterator& operator -- (); // prefix
|
FListViewIterator& operator -- (); // prefix
|
||||||
|
|
|
@ -99,22 +99,7 @@ class FVTerm
|
||||||
typedef std::function<void()> FPreprocessingFunction;
|
typedef std::function<void()> FPreprocessingFunction;
|
||||||
|
|
||||||
struct FTermArea; // forward declaration
|
struct FTermArea; // forward declaration
|
||||||
|
struct FVTermPreprocessing; // forward declaration
|
||||||
struct FVTermPreprocessing
|
|
||||||
{
|
|
||||||
FVTermPreprocessing()
|
|
||||||
: instance(nullptr)
|
|
||||||
, function(nullptr)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
FVTermPreprocessing (const FVTerm* i, const FPreprocessingFunction& f)
|
|
||||||
: instance(i)
|
|
||||||
, function(f)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
const FVTerm* instance;
|
|
||||||
FPreprocessingFunction function;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef std::vector<FVTermPreprocessing> FPreprocessing;
|
typedef std::vector<FVTermPreprocessing> FPreprocessing;
|
||||||
|
|
||||||
|
@ -527,14 +512,17 @@ struct FVTerm::FTermArea // define virtual terminal character properties
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
FTermArea() = default;
|
FTermArea() = default;
|
||||||
|
|
||||||
// Disable copy constructor
|
// Disable copy constructor
|
||||||
FTermArea (const FTermArea&) = delete;
|
FTermArea (const FTermArea&) = delete;
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~FTermArea() = default;
|
~FTermArea() = default;
|
||||||
|
|
||||||
// Disable assignment operator (=)
|
// Disable assignment operator (=)
|
||||||
FTermArea& operator = (const FTermArea&) = delete;
|
FTermArea& operator = (const FTermArea&) = delete;
|
||||||
|
|
||||||
|
// Data members
|
||||||
int offset_left{0}; // Distance from left terminal side
|
int offset_left{0}; // Distance from left terminal side
|
||||||
int offset_top{0}; // Distance from top of the terminal
|
int offset_top{0}; // Distance from top of the terminal
|
||||||
int width{-1}; // Window width
|
int width{-1}; // Window width
|
||||||
|
@ -555,6 +543,63 @@ struct FVTerm::FTermArea // define virtual terminal character properties
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
// struct FVTerm::FVTermPreprocessing
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
|
struct FVTerm::FVTermPreprocessing
|
||||||
|
{
|
||||||
|
// Constructor
|
||||||
|
FVTermPreprocessing()
|
||||||
|
: instance(nullptr)
|
||||||
|
, function(nullptr)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
FVTermPreprocessing (const FVTerm* i, const FPreprocessingFunction& f)
|
||||||
|
: instance(i)
|
||||||
|
, function(f)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
FVTermPreprocessing (const FVTermPreprocessing& p) // copy constructor
|
||||||
|
: instance(p.instance)
|
||||||
|
, function(p.function)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
FVTermPreprocessing (FVTermPreprocessing&& p) noexcept // move constructor
|
||||||
|
: instance(p.instance)
|
||||||
|
, function(p.function)
|
||||||
|
{
|
||||||
|
p.instance = nullptr;
|
||||||
|
p.function = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Overloaded operators
|
||||||
|
FVTermPreprocessing& operator = (const FVTermPreprocessing& p)
|
||||||
|
{
|
||||||
|
instance = p.instance;
|
||||||
|
function = p.function;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
FVTermPreprocessing& operator = (FVTermPreprocessing&& p) noexcept
|
||||||
|
{
|
||||||
|
instance = p.instance;
|
||||||
|
function = p.function;
|
||||||
|
p.instance = nullptr;
|
||||||
|
p.function = nullptr;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Destructor
|
||||||
|
~FVTermPreprocessing()
|
||||||
|
{ }
|
||||||
|
|
||||||
|
// Data members
|
||||||
|
const FVTerm* instance{};
|
||||||
|
FPreprocessingFunction function{};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// FVTerm inline functions
|
// FVTerm inline functions
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
template <typename typeT>
|
template <typename typeT>
|
||||||
|
|
|
@ -340,27 +340,7 @@ class FWidget : public FVTerm, public FObject
|
||||||
static void quit();
|
static void quit();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
struct FCallbackData
|
struct FCallbackData; // forward declaration
|
||||||
{
|
|
||||||
FCallbackData()
|
|
||||||
: cb_signal()
|
|
||||||
, cb_instance(nullptr)
|
|
||||||
, cb_function()
|
|
||||||
, data(nullptr)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
FCallbackData (FString s, FWidget* i, FCallback c, FDataPtr d)
|
|
||||||
: cb_signal(s)
|
|
||||||
, cb_instance(i)
|
|
||||||
, cb_function(c)
|
|
||||||
, data(d)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
FString cb_signal;
|
|
||||||
FWidget* cb_instance;
|
|
||||||
FCallback cb_function;
|
|
||||||
FDataPtr data;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Typedefs
|
// Typedefs
|
||||||
typedef std::vector<FCallbackData> FCallbackObjects;
|
typedef std::vector<FCallbackData> FCallbackObjects;
|
||||||
|
@ -537,6 +517,79 @@ class FWidget : public FVTerm, public FObject
|
||||||
friend void clearFlatBorder (FWidget*);
|
friend void clearFlatBorder (FWidget*);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
// struct FWidget::FCallbackData
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
struct FWidget::FCallbackData
|
||||||
|
{
|
||||||
|
// Constructor
|
||||||
|
FCallbackData()
|
||||||
|
: cb_signal()
|
||||||
|
, cb_instance(nullptr)
|
||||||
|
, cb_function()
|
||||||
|
, data(nullptr)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
FCallbackData (FString s, FWidget* i, FCallback c, FDataPtr d)
|
||||||
|
: cb_signal(s)
|
||||||
|
, cb_instance(i)
|
||||||
|
, cb_function(c)
|
||||||
|
, data(d)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
FCallbackData (const FCallbackData& c) // copy constructor
|
||||||
|
: cb_signal(c.cb_signal)
|
||||||
|
, cb_instance(c.cb_instance)
|
||||||
|
, cb_function(c.cb_function)
|
||||||
|
, data(c.data)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
FCallbackData (FCallbackData&& c) noexcept // move constructor
|
||||||
|
: cb_signal(c.cb_signal)
|
||||||
|
, cb_instance(c.cb_instance)
|
||||||
|
, cb_function(c.cb_function)
|
||||||
|
, data(c.data)
|
||||||
|
{
|
||||||
|
c.cb_signal.clear();
|
||||||
|
c.cb_instance = nullptr;
|
||||||
|
c.cb_function = nullptr;
|
||||||
|
c.data = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Destructor
|
||||||
|
~FCallbackData()
|
||||||
|
{ }
|
||||||
|
|
||||||
|
// Overloaded operators
|
||||||
|
FCallbackData& operator = (const FCallbackData& c)
|
||||||
|
{
|
||||||
|
cb_signal = c.cb_signal;
|
||||||
|
cb_instance = c.cb_instance;
|
||||||
|
cb_function = c.cb_function;
|
||||||
|
data = c.data;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
FCallbackData& operator = (FCallbackData&& c) noexcept
|
||||||
|
{
|
||||||
|
cb_signal = c.cb_signal;
|
||||||
|
cb_instance = c.cb_instance;
|
||||||
|
cb_function = c.cb_function;
|
||||||
|
data = c.data;
|
||||||
|
c.cb_signal.clear();
|
||||||
|
c.cb_instance = nullptr;
|
||||||
|
c.cb_function = nullptr;
|
||||||
|
c.data = nullptr;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Data members
|
||||||
|
FString cb_signal{};
|
||||||
|
FWidget* cb_instance{};
|
||||||
|
FCallback cb_function{};
|
||||||
|
FDataPtr data{};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// non-member function forward declarations
|
// non-member function forward declarations
|
||||||
// implemented in fwidget_functions.cpp
|
// implemented in fwidget_functions.cpp
|
||||||
|
|
|
@ -56,12 +56,12 @@ class SGRoptimizer final
|
||||||
// Constructors
|
// Constructors
|
||||||
explicit SGRoptimizer (attributebuffer&);
|
explicit SGRoptimizer (attributebuffer&);
|
||||||
|
|
||||||
// Destructor
|
|
||||||
~SGRoptimizer();
|
|
||||||
|
|
||||||
// Disable copy constructor
|
// Disable copy constructor
|
||||||
SGRoptimizer (const SGRoptimizer&) = delete;
|
SGRoptimizer (const SGRoptimizer&) = delete;
|
||||||
|
|
||||||
|
// Destructor
|
||||||
|
~SGRoptimizer();
|
||||||
|
|
||||||
// Disable assignment operator (=)
|
// Disable assignment operator (=)
|
||||||
SGRoptimizer& operator = (const SGRoptimizer&) = delete;
|
SGRoptimizer& operator = (const SGRoptimizer&) = delete;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue