From b2de303cfc4b6f02ef33933283114d07361b5041 Mon Sep 17 00:00:00 2001 From: Markus Gans Date: Thu, 31 Dec 2020 20:45:10 +0100 Subject: [PATCH] Refactoring to scaled enumerations --- ChangeLog | 9 +- doc/first-steps.md | 24 +- doc/user-theme.md | 242 ++--- examples/7segment.cpp | 8 +- examples/background-color.cpp | 17 +- examples/calculator.cpp | 342 +++--- examples/checklist.cpp | 14 +- examples/choice.cpp | 2 +- examples/dialog.cpp | 6 +- examples/event-log.cpp | 36 +- examples/fullwidth-character.cpp | 4 +- examples/input-dialog.cpp | 2 +- examples/keyboard.cpp | 14 +- examples/listview.cpp | 18 +- examples/mandelbrot.cpp | 7 +- examples/menu.cpp | 32 +- examples/mouse.cpp | 65 +- examples/rotozoomer.cpp | 9 +- examples/scrollview.cpp | 8 +- examples/term-attributes.cpp | 50 +- examples/termcap.cpp | 171 +-- examples/timer.cpp | 12 +- examples/transparent.cpp | 33 +- examples/treeview.cpp | 10 +- examples/ui.cpp | 59 +- examples/windows.cpp | 16 +- src/fapplication.cpp | 166 +-- src/fbusyindicator.cpp | 4 +- src/fbutton.cpp | 52 +- src/fbuttongroup.cpp | 10 +- src/fcharmap.cpp | 313 +++--- src/fcheckbox.cpp | 2 +- src/fcolorpalette.cpp | 128 +-- src/fcombobox.cpp | 138 +-- src/fdialog.cpp | 157 ++- src/fevent.cpp | 50 +- src/ffiledialog.cpp | 14 +- src/fkey_map.cpp | 1620 ++++++++++++++-------------- src/fkeyboard.cpp | 84 +- src/flabel.cpp | 49 +- src/flineedit.cpp | 184 ++-- src/flistbox.cpp | 260 ++--- src/flistview.cpp | 289 +++-- src/fmenu.cpp | 167 ++- src/fmenubar.cpp | 133 ++- src/fmenuitem.cpp | 83 +- src/fmessagebox.cpp | 4 +- src/fmouse.cpp | 73 +- src/fobject.cpp | 6 +- src/foptiattr.cpp | 58 +- src/fprogressbar.cpp | 10 +- src/fradiobutton.cpp | 2 +- src/fscrollbar.cpp | 156 +-- src/fscrollview.cpp | 162 +-- src/fspinbox.cpp | 118 +- src/fstartoptions.cpp | 2 +- src/fstatusbar.cpp | 14 +- src/fstring.cpp | 16 +- src/fswitch.cpp | 29 +- src/fterm.cpp | 351 +++--- src/fterm_functions.cpp | 80 +- src/ftermbuffer.cpp | 32 +- src/ftermcap.cpp | 4 +- src/ftermcapquirks.cpp | 312 +++--- src/ftermdebugdata.cpp | 7 +- src/ftermdetection.cpp | 14 +- src/ftermfreebsd.cpp | 10 +- src/ftermlinux.cpp | 474 +++----- src/ftermxterminal.cpp | 4 +- src/ftextview.cpp | 164 ++- src/ftogglebutton.cpp | 78 +- src/fvterm.cpp | 226 ++-- src/fwidget.cpp | 253 ++--- src/fwidget_functions.cpp | 130 +-- src/fwidgetcolors.cpp | 690 ++++++------ src/fwindow.cpp | 59 +- src/include/final/fapplication.h | 8 +- src/include/final/fbutton.h | 16 +- src/include/final/fc.h | 1475 +++++++++++++++---------- src/include/final/fcharmap.h | 27 +- src/include/final/fcolorpair.h | 4 +- src/include/final/fdialog.h | 5 + src/include/final/fevent.h | 56 +- src/include/final/fkey_map.h | 27 +- src/include/final/fkeyboard.h | 16 +- src/include/final/flabel.h | 14 +- src/include/final/flineedit.h | 27 +- src/include/final/flistbox.h | 52 +- src/include/final/flistview.h | 34 +- src/include/final/fmenuitem.h | 8 +- src/include/final/fmouse.h | 25 +- src/include/final/fscrollbar.h | 50 +- src/include/final/fscrollview.h | 20 +- src/include/final/fspinbox.h | 14 +- src/include/final/fstartoptions.h | 2 +- src/include/final/fstatusbar.h | 2 +- src/include/final/fstring.h | 15 +- src/include/final/fstyle.h | 8 +- src/include/final/fterm.h | 14 +- src/include/final/ftermbuffer.h | 8 + src/include/final/ftermcap.h | 2 +- src/include/final/ftermcapquirks.h | 3 + src/include/final/ftermdata.h | 12 +- src/include/final/ftermdebugdata.h | 6 +- src/include/final/ftermfreebsd.h | 2 +- src/include/final/ftermlinux.h | 69 +- src/include/final/ftermxterminal.h | 8 +- src/include/final/ftextview.h | 6 +- src/include/final/ftypes.h | 62 +- src/include/final/fvterm.h | 39 +- src/include/final/fwidget.h | 102 +- src/include/final/fwidgetcolors.h | 172 +-- test/fcolorpair-test.cpp | 80 +- test/fkeyboard-test.cpp | 1153 ++++++++++---------- test/fmouse-test.cpp | 22 +- test/fobject-test.cpp | 8 +- test/foptiattr-test.cpp | 360 +++---- test/fstring-test.cpp | 2 +- test/fstyle-test.cpp | 74 +- test/ftermcapquirks-test.cpp | 248 ++--- test/ftermdata-test.cpp | 54 +- test/ftermfreebsd-test.cpp | 86 +- test/ftermlinux-test.cpp | 391 +++---- test/ftermopenbsd-test.cpp | 24 +- 124 files changed, 6823 insertions(+), 6740 deletions(-) diff --git a/ChangeLog b/ChangeLog index 864bc31b..8702f271 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,13 +1,16 @@ -2019-11-18 Markus Gans +2020-12-31 Markus Gans + * Refactoring to scaled enumerations + +2020-11-18 Markus Gans * The terminal update rate is now limited to 60 Hz -2019-11-14 Markus Gans +2020-11-14 Markus Gans * Version 0.7.1 * Bugfix: The cursor position was not changed anymore if there was no change to the content * Forcing a direct update for faster terminal output -2019-11-07 Markus Gans +2020-11-07 Markus Gans * Version 0.7.0 2020-11-04 Markus Gans diff --git a/doc/first-steps.md b/doc/first-steps.md index 4fb6fd50..67b6c402 100644 --- a/doc/first-steps.md +++ b/doc/first-steps.md @@ -381,7 +381,7 @@ class dialogWidget : public FDialog setText ("Dialog"); setGeometry (FPoint{25, 5}, FSize{23, 4}); label.setGeometry (FPoint{1, 1}, FSize{10, 1}); - label.setAlignment (fc::alignRight); + label.setAlignment (Align::Right); value.setGeometry (FPoint{11, 1}, FSize{10, 1}); id = addTimer(100); } @@ -475,7 +475,7 @@ class extendedApplication : public FApplication || last_avg[1] != load_avg[1] || last_avg[2] != load_avg[2] ) { - FUserEvent user_event(fc::User_Event, 0); + FUserEvent user_event(Event::User, 0); user_event.setData (load_avg); FApplication::sendEvent (getMainWidget(), &user_event); } @@ -958,8 +958,8 @@ class dialogWidget : public FDialog setText ("Emit signal"); const FSize size{5, 1}; label.setGeometry (FPoint{8, 1}, size); - label.setAlignment (fc::alignRight); - label.setForegroundColor (fc::Black); + label.setAlignment (Align::Right); + label.setForegroundColor (FColor::Black); plus.setGeometry (FPoint{3, 3}, size); minus.setGeometry (FPoint{3, 3} + FPoint{10, 0}, size); plus.setNoUnderline(); @@ -1004,17 +1004,17 @@ class dialogWidget : public FDialog void cb_set_blue() { - label.setForegroundColor (fc::Blue); + label.setForegroundColor (FColor::Blue); } void cb_set_black() { - label.setForegroundColor (fc::Black); + label.setForegroundColor (FColor::Black); } void cb_set_red() { - label.setForegroundColor (fc::Red); + label.setForegroundColor (FColor::Red); } void setTemperature() @@ -1291,9 +1291,9 @@ class dialogWidget : public FDialog FDialog::draw(); print() << FPoint{3, 3} - << FColorPair{fc::Black, fc::White} + << FColorPair{FColor::Black, FColor::White} << "Text on " - << FColorPair{fc::Blue, fc::Yellow} + << FColorPair{FColor::Blue, FColor::Yellow} << "top"; } @@ -1383,9 +1383,9 @@ class dialogWidget : public FDialog const auto& wc = getColorTheme(); setColor (wc->label_inactive_fg, wc->dialog_bg); scrollview.clearArea(); - FColorPair red (fc::LightRed, wc->dialog_bg); - FColorPair black (fc::Black, wc->dialog_bg); - FColorPair cyan (fc::Cyan, wc->dialog_bg); + FColorPair red (FColor::LightRed, wc->dialog_bg); + FColorPair black (FColor::Black, wc->dialog_bg); + FColorPair cyan (FColor::Cyan, wc->dialog_bg); static std::vector d { diff --git a/doc/user-theme.md b/doc/user-theme.md index 18156010..0295b3ec 100644 --- a/doc/user-theme.md +++ b/doc/user-theme.md @@ -75,92 +75,92 @@ class BeeColorTheme final : public finalcut::FWidgetColors void setColorTheme() override { - term_fg = finalcut::fc::Black; - term_bg = finalcut::fc::LightBlue; - list_fg = finalcut::fc::Black; - list_bg = finalcut::fc::LightGray; - selected_list_fg = finalcut::fc::LightRed; - selected_list_bg = finalcut::fc::LightGray; - dialog_fg = finalcut::fc::Black; - dialog_resize_fg = finalcut::fc::Red; - dialog_emphasis_fg = finalcut::fc::Blue; - dialog_bg = finalcut::fc::LightGray; - error_box_fg = finalcut::fc::Black; - error_box_emphasis_fg = finalcut::fc::Red; - error_box_bg = finalcut::fc::Yellow; - tooltip_fg = finalcut::fc::Black; - tooltip_bg = finalcut::fc::Yellow; - shadow_fg = finalcut::fc::Black; - shadow_bg = finalcut::fc::LightGray; - current_element_focus_fg = finalcut::fc::White; - current_element_focus_bg = finalcut::fc::Green; - current_element_fg = finalcut::fc::LightGray; - current_element_bg = finalcut::fc::DarkGray; - current_inc_search_element_fg = finalcut::fc::Brown; - selected_current_element_focus_fg = finalcut::fc::LightRed; - selected_current_element_focus_bg = finalcut::fc::Green; - selected_current_element_fg = finalcut::fc::LightRed; - selected_current_element_bg = finalcut::fc::DarkGray; - label_fg = finalcut::fc::Black; - label_bg = finalcut::fc::LightGray; - label_inactive_fg = finalcut::fc::LightGray; - label_inactive_bg = finalcut::fc::DarkGray; - label_hotkey_fg = finalcut::fc::Red; - label_hotkey_bg = finalcut::fc::LightGray; - label_emphasis_fg = finalcut::fc::Blue; - label_ellipsis_fg = finalcut::fc::DarkGray; - inputfield_active_focus_fg = finalcut::fc::LightGray; - inputfield_active_focus_bg = finalcut::fc::Green; - inputfield_active_fg = finalcut::fc::Black; - inputfield_active_bg = finalcut::fc::Cyan ; - inputfield_inactive_fg = finalcut::fc::Black; - inputfield_inactive_bg = finalcut::fc::LightGray; - toggle_button_active_focus_fg = finalcut::fc::White; - toggle_button_active_focus_bg = finalcut::fc::Green; - toggle_button_active_fg = finalcut::fc::Black; - toggle_button_active_bg = finalcut::fc::LightGray; - toggle_button_inactive_fg = finalcut::fc::DarkGray; - toggle_button_inactive_bg = finalcut::fc::LightGray; - button_active_focus_fg = finalcut::fc::White; - button_active_focus_bg = finalcut::fc::Green; - button_active_fg = finalcut::fc::Black; - button_active_bg = finalcut::fc::Cyan; - button_inactive_fg = finalcut::fc::Cyan; - button_inactive_bg = finalcut::fc::LightGray; - button_hotkey_fg = finalcut::fc::Red; - titlebar_active_fg = finalcut::fc::White; - titlebar_active_bg = finalcut::fc::Blue; - titlebar_inactive_fg = finalcut::fc::LightGray; - titlebar_inactive_bg = finalcut::fc::DarkGray; - titlebar_button_fg = finalcut::fc::Black; - titlebar_button_bg = finalcut::fc::LightGray; - titlebar_button_focus_fg = finalcut::fc::LightGray; - titlebar_button_focus_bg = finalcut::fc::Black; - menu_active_focus_fg = finalcut::fc::White; - menu_active_focus_bg = finalcut::fc::Blue; - menu_active_fg = finalcut::fc::Black; - menu_active_bg = finalcut::fc::Yellow; - menu_inactive_fg = finalcut::fc::Cyan; - menu_inactive_bg = finalcut::fc::Yellow; - menu_hotkey_fg = finalcut::fc::Red; - menu_hotkey_bg = finalcut::fc::Yellow; - statusbar_fg = finalcut::fc::White; - statusbar_bg = finalcut::fc::DarkGray; - statusbar_hotkey_fg = finalcut::fc::LightRed; - statusbar_hotkey_bg = finalcut::fc::DarkGray; - statusbar_separator_fg = finalcut::fc::Black; - statusbar_active_fg = finalcut::fc::White; - statusbar_active_bg = finalcut::fc::Green; - statusbar_active_hotkey_fg = finalcut::fc::LightRed; - statusbar_active_hotkey_bg = finalcut::fc::Green; - scrollbar_fg = finalcut::fc::Black; - scrollbar_bg = finalcut::fc::Green; - scrollbar_button_fg = finalcut::fc::Black; - scrollbar_button_bg = finalcut::fc::Green; - scrollbar_button_inactive_fg = finalcut::fc::Cyan; - scrollbar_button_inactive_bg = finalcut::fc::LightGray; - progressbar_fg = finalcut::fc::Green; - progressbar_bg = finalcut::fc::DarkGray; + term_fg = finalcut::FColor::Black; + term_bg = finalcut::FColor::LightBlue; + list_fg = finalcut::FColor::Black; + list_bg = finalcut::FColor::LightGray; + selected_list_fg = finalcut::FColor::LightRed; + selected_list_bg = finalcut::FColor::LightGray; + dialog_fg = finalcut::FColor::Black; + dialog_resize_fg = finalcut::FColor::Red; + dialog_emphasis_fg = finalcut::FColor::Blue; + dialog_bg = finalcut::FColor::LightGray; + error_box_fg = finalcut::FColor::Black; + error_box_emphasis_fg = finalcut::FColor::Red; + error_box_bg = finalcut::FColor::Yellow; + tooltip_fg = finalcut::FColor::Black; + tooltip_bg = finalcut::FColor::Yellow; + shadow_fg = finalcut::FColor::Black; + shadow_bg = finalcut::FColor::LightGray; + current_element_focus_fg = finalcut::FColor::White; + current_element_focus_bg = finalcut::FColor::Green; + current_element_fg = finalcut::FColor::LightGray; + current_element_bg = finalcut::FColor::DarkGray; + current_inc_search_element_fg = finalcut::FColor::Brown; + selected_current_element_focus_fg = finalcut::FColor::LightRed; + selected_current_element_focus_bg = finalcut::FColor::Green; + selected_current_element_fg = finalcut::FColor::LightRed; + selected_current_element_bg = finalcut::FColor::DarkGray; + label_fg = finalcut::FColor::Black; + label_bg = finalcut::FColor::LightGray; + label_inactive_fg = finalcut::FColor::LightGray; + label_inactive_bg = finalcut::FColor::DarkGray; + label_hotkey_fg = finalcut::FColor::Red; + label_hotkey_bg = finalcut::FColor::LightGray; + label_emphasis_fg = finalcut::FColor::Blue; + label_ellipsis_fg = finalcut::FColor::DarkGray; + inputfield_active_focus_fg = finalcut::FColor::LightGray; + inputfield_active_focus_bg = finalcut::FColor::Green; + inputfield_active_fg = finalcut::FColor::Black; + inputfield_active_bg = finalcut::FColor::Cyan ; + inputfield_inactive_fg = finalcut::FColor::Black; + inputfield_inactive_bg = finalcut::FColor::LightGray; + toggle_button_active_focus_fg = finalcut::FColor::White; + toggle_button_active_focus_bg = finalcut::FColor::Green; + toggle_button_active_fg = finalcut::FColor::Black; + toggle_button_active_bg = finalcut::FColor::LightGray; + toggle_button_inactive_fg = finalcut::FColor::DarkGray; + toggle_button_inactive_bg = finalcut::FColor::LightGray; + button_active_focus_fg = finalcut::FColor::White; + button_active_focus_bg = finalcut::FColor::Green; + button_active_fg = finalcut::FColor::Black; + button_active_bg = finalcut::FColor::Cyan; + button_inactive_fg = finalcut::FColor::Cyan; + button_inactive_bg = finalcut::FColor::LightGray; + button_hotkey_fg = finalcut::FColor::Red; + titlebar_active_fg = finalcut::FColor::White; + titlebar_active_bg = finalcut::FColor::Blue; + titlebar_inactive_fg = finalcut::FColor::LightGray; + titlebar_inactive_bg = finalcut::FColor::DarkGray; + titlebar_button_fg = finalcut::FColor::Black; + titlebar_button_bg = finalcut::FColor::LightGray; + titlebar_button_focus_fg = finalcut::FColor::LightGray; + titlebar_button_focus_bg = finalcut::FColor::Black; + menu_active_focus_fg = finalcut::FColor::White; + menu_active_focus_bg = finalcut::FColor::Blue; + menu_active_fg = finalcut::FColor::Black; + menu_active_bg = finalcut::FColor::Yellow; + menu_inactive_fg = finalcut::FColor::Cyan; + menu_inactive_bg = finalcut::FColor::Yellow; + menu_hotkey_fg = finalcut::FColor::Red; + menu_hotkey_bg = finalcut::FColor::Yellow; + statusbar_fg = finalcut::FColor::White; + statusbar_bg = finalcut::FColor::DarkGray; + statusbar_hotkey_fg = finalcut::FColor::LightRed; + statusbar_hotkey_bg = finalcut::FColor::DarkGray; + statusbar_separator_fg = finalcut::FColor::Black; + statusbar_active_fg = finalcut::FColor::White; + statusbar_active_bg = finalcut::FColor::Green; + statusbar_active_hotkey_fg = finalcut::FColor::LightRed; + statusbar_active_hotkey_bg = finalcut::FColor::Green; + scrollbar_fg = finalcut::FColor::Black; + scrollbar_bg = finalcut::FColor::Green; + scrollbar_button_fg = finalcut::FColor::Black; + scrollbar_button_bg = finalcut::FColor::Green; + scrollbar_button_inactive_fg = finalcut::FColor::Cyan; + scrollbar_button_inactive_bg = finalcut::FColor::LightGray; + progressbar_fg = finalcut::FColor::Green; + progressbar_bg = finalcut::FColor::DarkGray; } }; @@ -175,24 +175,24 @@ FINAL CUT has four color tables for the 16 standard colors in the terminal. These are a redefinition of the 16 ANSI colors. You can address the colors via indexes values from 0 to 15. They correspond to the following colors: -| Index | Color name | -|:------:|:---------------------------| -| 0 | finalcut::fc::Black | -| 1 | finalcut::fc::Blue | -| 2 | finalcut::fc::Green | -| 3 | finalcut::fc::Cyan | -| 4 | finalcut::fc::Red | -| 5 | finalcut::fc::Magenta | -| 6 | finalcut::fc::Brown | -| 7 | finalcut::fc::LightGray | -| 8 | finalcut::fc::DarkGray | -| 9 | finalcut::fc::LightBlue | -| 10 | finalcut::fc::LightGreen | -| 11 | finalcut::fc::LightCyan | -| 12 | finalcut::fc::LightRed | -| 13 | finalcut::fc::LightMagenta | -| 14 | finalcut::fc::Yellow | -| 15 | finalcut::fc::White | +| Index | Color name | +|:------:|:-------------------------------| +| 0 | finalcut::FColor::Black | +| 1 | finalcut::FColor::Blue | +| 2 | finalcut::FColor::Green | +| 3 | finalcut::FColor::Cyan | +| 4 | finalcut::FColor::Red | +| 5 | finalcut::FColor::Magenta | +| 6 | finalcut::FColor::Brown | +| 7 | finalcut::FColor::LightGray | +| 8 | finalcut::FColor::DarkGray | +| 9 | finalcut::FColor::LightBlue | +| 10 | finalcut::FColor::LightGreen | +| 11 | finalcut::FColor::LightCyan | +| 12 | finalcut::FColor::LightRed | +| 13 | finalcut::FColor::LightMagenta | +| 14 | finalcut::FColor::Yellow | +| 15 | finalcut::FColor::White | You can define your color as an 8-bit value based on its red, green, and blue components. To create a color palette, create a derived class of @@ -306,22 +306,22 @@ class BeeColorPalette final : public finalcut::FColorPalette void setColorPalette() override { - setPalette (finalcut::fc::Black, 0x00, 0x00, 0x00); - setPalette (finalcut::fc::Blue, 0x23, 0x21, 0x2c); - setPalette (finalcut::fc::Green, 0x26, 0x93, 0x7c); - setPalette (finalcut::fc::Cyan, 0xcf, 0xb3, 0xa8); - setPalette (finalcut::fc::Red, 0xba, 0x1a, 0x1a); - setPalette (finalcut::fc::Magenta, 0xb2, 0x18, 0xb2); - setPalette (finalcut::fc::Brown, 0xe8, 0x87, 0x1f); - setPalette (finalcut::fc::LightGray, 0xff, 0xfb, 0xe4); - setPalette (finalcut::fc::DarkGray, 0x3a, 0x36, 0x37); - setPalette (finalcut::fc::LightBlue, 0xa5, 0xa5, 0xb1); - setPalette (finalcut::fc::LightGreen, 0x5e, 0xeb, 0x5c); - setPalette (finalcut::fc::LightCyan, 0x62, 0xbf, 0xf8); - setPalette (finalcut::fc::LightRed, 0xee, 0x44, 0x44); - setPalette (finalcut::fc::LightMagenta, 0xe9, 0xad, 0xff); - setPalette (finalcut::fc::Yellow, 0xf8, 0xef, 0xa6); - setPalette (finalcut::fc::White, 0xff, 0xff, 0xff); + setPalette (finalcut::FColor::Black, 0x00, 0x00, 0x00); + setPalette (finalcut::FColor::Blue, 0x23, 0x21, 0x2c); + setPalette (finalcut::FColor::Green, 0x26, 0x93, 0x7c); + setPalette (finalcut::FColor::Cyan, 0xcf, 0xb3, 0xa8); + setPalette (finalcut::FColor::Red, 0xba, 0x1a, 0x1a); + setPalette (finalcut::FColor::Magenta, 0xb2, 0x18, 0xb2); + setPalette (finalcut::FColor::Brown, 0xe8, 0x87, 0x1f); + setPalette (finalcut::FColor::LightGray, 0xff, 0xfb, 0xe4); + setPalette (finalcut::FColor::DarkGray, 0x3a, 0x36, 0x37); + setPalette (finalcut::FColor::LightBlue, 0xa5, 0xa5, 0xb1); + setPalette (finalcut::FColor::LightGreen, 0x5e, 0xeb, 0x5c); + setPalette (finalcut::FColor::LightCyan, 0x62, 0xbf, 0xf8); + setPalette (finalcut::FColor::LightRed, 0xee, 0x44, 0x44); + setPalette (finalcut::FColor::LightMagenta, 0xe9, 0xad, 0xff); + setPalette (finalcut::FColor::Yellow, 0xf8, 0xef, 0xa6); + setPalette (finalcut::FColor::White, 0xff, 0xff, 0xff); } void resetColorPalette() override @@ -364,7 +364,7 @@ class dialogWidget final : public FDialog FDialog::setGeometry (FPoint{15, 5}, FSize{50, 9}); Input.setGeometry (FPoint{2, 2}, FSize{39, 1}); Input.setLabelText("File name:"); - Input.setLabelOrientation(FLineEdit::label_above); + Input.setLabelOrientation(FLineEdit::LabelOrientation::Above); Input.setStatusbarMessage("Enter a file name"); Browse.setGeometry (FPoint{43, 2}, FSize{4, 1}); Browse.addCallback diff --git a/examples/7segment.cpp b/examples/7segment.cpp index 41da4a7d..36153294 100644 --- a/examples/7segment.cpp +++ b/examples/7segment.cpp @@ -28,11 +28,11 @@ namespace fc = finalcut::fc; using finalcut::FColorPair; +using finalcut::FColor; using finalcut::FRect; using finalcut::FPoint; using finalcut::FSize; - //---------------------------------------------------------------------- // class SegmentView //---------------------------------------------------------------------- @@ -85,7 +85,7 @@ SegmentView::SegmentView (finalcut::FWidget* parent) input.setGeometry (FPoint(2, 2), FSize{12, 1}); input.setLabelText (L"&Hex value"); input.setLabelText (L"&Hex-digits or (.) (:) (H) (L) (P) (U)"); - input.setLabelOrientation(finalcut::FLineEdit::LabelOrientation::above); + input.setLabelOrientation(finalcut::FLineEdit::LabelOrientation::Above); input.setMaxLength(9); input.setInputFilter("[:.hHlLpPuU[:xdigit:]]"); @@ -199,12 +199,12 @@ void SegmentView::draw() finalcut::FTermBuffer left_space{}; FDialog::draw(); - setColor(fc::LightGray, fc::Black); + setColor(FColor::LightGray, FColor::Black); finalcut::drawBorder(this, FRect(FPoint{3, 6}, FPoint{40, 11})); for (auto&& ch : input.getText().toUpper()) { - const FColorPair color{fc::LightRed, fc::Black}; + const FColorPair color{FColor::LightRed, FColor::Black}; get7Segment(ch); for (std::size_t i{0}; i < 3; i++) diff --git a/examples/background-color.cpp b/examples/background-color.cpp index 944f8e22..41d65433 100644 --- a/examples/background-color.cpp +++ b/examples/background-color.cpp @@ -29,6 +29,7 @@ using finalcut::FPoint; using finalcut::FRect; using finalcut::FSize; +using finalcut::FColor; //---------------------------------------------------------------------- @@ -99,7 +100,7 @@ Background::Background (finalcut::FWidget* parent) // Combobox color_choice.setGeometry (FPoint{2, 2}, FSize{18, 1}); - color_choice.setLabelOrientation (finalcut::FLineEdit::LabelOrientation::above); + color_choice.setLabelOrientation (finalcut::FLineEdit::LabelOrientation::Above); color_choice.setLabelText ("Color choice"); color_choice.unsetEditable(); @@ -111,19 +112,19 @@ Background::Background (finalcut::FWidget* parent) // Spin boxes red.setGeometry (FPoint{2, 5}, FSize{7, 1}); - red.setLabelOrientation (finalcut::FLineEdit::LabelOrientation::above); + red.setLabelOrientation (finalcut::FLineEdit::LabelOrientation::Above); red.setLabelText ("Red"); red.setRange (0, 255); red.setValue (0x80); green.setGeometry (FPoint{12, 5}, FSize{7, 1}); - green.setLabelOrientation (finalcut::FLineEdit::LabelOrientation::above); + green.setLabelOrientation (finalcut::FLineEdit::LabelOrientation::Above); green.setLabelText ("Green"); green.setRange (0, 255); green.setValue (0xa4); blue.setGeometry (FPoint{22, 5}, FSize{7, 1}); - blue.setLabelOrientation (finalcut::FLineEdit::LabelOrientation::above); + blue.setLabelOrientation (finalcut::FLineEdit::LabelOrientation::Above); blue.setLabelText ("Blue"); blue.setRange (0, 255); blue.setValue (0xec); @@ -131,7 +132,7 @@ Background::Background (finalcut::FWidget* parent) // Set the initial palette values if ( finalcut::FTerm::canChangeColorPalette() ) { - finalcut::FTerm::setPalette ( finalcut::fc::LightMagenta + finalcut::FTerm::setPalette ( FColor::LightMagenta , int(red.getValue()) , int(green.getValue()) , int(blue.getValue()) ); @@ -177,7 +178,7 @@ void Background::cb_changed() if ( ! finalcut::FTerm::canChangeColorPalette() ) return; - finalcut::FTerm::setPalette ( finalcut::fc::LightMagenta + finalcut::FTerm::setPalette ( FColor::LightMagenta , int(red.getValue()) , int(green.getValue()) , int(blue.getValue()) ); @@ -198,7 +199,7 @@ void Background::cb_choice() red.setValue(r); green.setValue(g); blue.setValue(b); - finalcut::FTerm::setPalette ( finalcut::fc::LightMagenta + finalcut::FTerm::setPalette ( FColor::LightMagenta , int(red.getValue()) , int(green.getValue()) , int(blue.getValue()) ); @@ -219,7 +220,7 @@ int main (int argc, char* argv[]) // The following lines require an initialized terminal if ( finalcut::FTerm::canChangeColorPalette() ) - app.setBackgroundColor(finalcut::fc::LightMagenta); + app.setBackgroundColor(FColor::LightMagenta); Background dialog(&app); finalcut::FWidget::setMainWidget(&dialog); diff --git a/examples/calculator.cpp b/examples/calculator.cpp index 7058f5de..e04064e1 100644 --- a/examples/calculator.cpp +++ b/examples/calculator.cpp @@ -31,11 +31,12 @@ #include -namespace fc = finalcut::fc; +using FKey = finalcut::FKey; +using finalcut::FColorPair; +using finalcut::FColor; using finalcut::FPoint; using finalcut::FRect; using finalcut::FSize; -using finalcut::FColorPair; constexpr lDouble pi_value{3.141592653589793238L}; @@ -76,9 +77,9 @@ void Button::setChecked (bool enable) if ( checked ) { - setBackgroundColor(fc::Cyan); - setFocusForegroundColor(fc::White); - setFocusBackgroundColor(fc::Cyan); + setBackgroundColor(FColor::Cyan); + setFocusForegroundColor(FColor::White); + setFocusBackgroundColor(FColor::Cyan); } else { @@ -97,7 +98,7 @@ void Button::onKeyPress (finalcut::FKeyEvent* ev) const FKey key = ev->key(); // catch the enter key - if ( key == fc::Fkey_return || key == fc::Fkey_enter ) + if ( key == FKey::Return || key == FKey::Enter ) return; finalcut::FButton::onKeyPress(ev); @@ -124,7 +125,7 @@ class Calc final : public finalcut::FDialog // Typedef and Enumeration using keyFunction = std::function; // Member function - enum button + enum class ButtonName { Sine, Cosine, @@ -201,15 +202,15 @@ class Calc final : public finalcut::FDialog void sine (lDouble&); void cosine (lDouble&); void tangent (lDouble&); - bool isDataEntryKey (int) const; - bool isOperatorKey (int) const; + bool isDataEntryKey (const ButtonName&) const; + bool isOperatorKey (const ButtonName&) const; lDouble& getValue(); void setDisplay (lDouble); void setInfixOperator (char); void clearInfixOperator(); void calcInfixOperator(); void adjustSize() override; - const wchar_t* getButtonText (const std::size_t) const; + const wchar_t* getButtonText (const ButtonName&) const; void mapKeyFunctions(); // Event handlers @@ -218,7 +219,14 @@ class Calc final : public finalcut::FDialog void onClose (finalcut::FCloseEvent*) override; // Callback method - void cb_buttonClicked (Calc::button); + void cb_buttonClicked (ButtonName); + + // Overloaded operators + friend bool operator < (const ButtonName& c, const int n) noexcept; + friend bool operator <= (const ButtonName& c, const int n) noexcept; + friend ButtonName operator + (const ButtonName& c, const int n) noexcept; + friend ButtonName& operator ++ (ButtonName& c) noexcept; // prefix + friend ButtonName operator ++ (ButtonName& c, int) noexcept; // postfix // Data members bool error{false}; @@ -228,11 +236,11 @@ class Calc final : public finalcut::FDialog lDouble b{0.0L}; lDouble infinity{std::numeric_limits::infinity()}; uInt max_char{33}; - int last_key{-1}; + ButtonName last_key{ButtonName(-1)}; char infix_operator{'\0'}; char last_infix_operator{'\0'}; finalcut::FString input{""}; - std::array button_no{}; + std::array button_no{}; struct StackData { @@ -241,8 +249,8 @@ class Calc final : public finalcut::FDialog }; std::stack bracket_stack{}; - std::map > calculator_buttons{}; - std::map key_map{}; + std::map > calculator_buttons{}; + std::map key_map{}; }; //---------------------------------------------------------------------- @@ -258,26 +266,27 @@ Calc::Calc (FWidget* parent) mapKeyFunctions(); clearInfixOperator(); - for (button key{Sine}; key < Calc::NUM_OF_BUTTONS; key = button(key + 1)) + for (ButtonName key{ButtonName::Sine}; key < ButtonName::NUM_OF_BUTTONS; key++) { auto btn = std::make_shared