From c2894b65915431f7e9c8469f6f7d592bfd7199ef Mon Sep 17 00:00:00 2001 From: Markus Gans Date: Thu, 13 Aug 2020 23:58:32 +0200 Subject: [PATCH] Fixed some minor bugs --- src/fbutton.cpp | 2 +- src/fcheckmenuitem.cpp | 2 +- src/fcombobox.cpp | 4 ++-- src/flineedit.cpp | 2 +- src/flistbox.cpp | 10 +++++----- src/flistview.cpp | 8 ++++---- src/fmenu.cpp | 2 +- src/fmenuitem.cpp | 8 ++++---- src/fmessagebox.cpp | 21 +++++++++++++++++---- src/fradiomenuitem.cpp | 2 +- src/fscrollview.cpp | 4 ++-- src/fspinbox.cpp | 4 ++-- src/fstatusbar.cpp | 2 +- src/ftextview.cpp | 6 +++--- src/ftogglebutton.cpp | 4 ++-- src/fwidget.cpp | 2 +- src/include/final/fbutton.h | 2 +- src/include/final/fcheckmenuitem.h | 2 +- src/include/final/fcombobox.h | 4 ++-- src/include/final/flineedit.h | 2 +- src/include/final/flistbox.h | 10 +++++----- src/include/final/flistview.h | 8 ++++---- src/include/final/fmenu.h | 2 +- src/include/final/fmenuitem.h | 8 ++++---- src/include/final/fradiomenuitem.h | 2 +- src/include/final/fscrollbar.h | 2 +- src/include/final/fscrollview.h | 4 ++-- src/include/final/fspinbox.h | 4 ++-- src/include/final/fstatusbar.h | 2 +- src/include/final/ftextview.h | 6 +++--- src/include/final/ftogglebutton.h | 4 ++-- src/include/final/fwidget.h | 6 +++--- 32 files changed, 82 insertions(+), 69 deletions(-) diff --git a/src/fbutton.cpp b/src/fbutton.cpp index 30c0c72f..5047d074 100644 --- a/src/fbutton.cpp +++ b/src/fbutton.cpp @@ -709,7 +709,7 @@ void FButton::updateButtonColor() } //---------------------------------------------------------------------- -void FButton::processClick() +void FButton::processClick() const { emitCallback("clicked"); } diff --git a/src/fcheckmenuitem.cpp b/src/fcheckmenuitem.cpp index d75ef36e..4c77f837 100644 --- a/src/fcheckmenuitem.cpp +++ b/src/fcheckmenuitem.cpp @@ -69,7 +69,7 @@ void FCheckMenuItem::init() } //---------------------------------------------------------------------- -void FCheckMenuItem::processToggle() +void FCheckMenuItem::processToggle() const { emitCallback("toggled"); } diff --git a/src/fcombobox.cpp b/src/fcombobox.cpp index 43f1c0d6..c021cfa0 100644 --- a/src/fcombobox.cpp +++ b/src/fcombobox.cpp @@ -616,13 +616,13 @@ void FComboBox::passEventToListWindow (FMouseEvent* const& ev) } //---------------------------------------------------------------------- -void FComboBox::processClick() +void FComboBox::processClick() const { emitCallback("clicked"); } //---------------------------------------------------------------------- -void FComboBox::processChanged() +void FComboBox::processChanged() const { emitCallback("row-changed"); } diff --git a/src/flineedit.cpp b/src/flineedit.cpp index 54aa8cfa..1a087fb0 100644 --- a/src/flineedit.cpp +++ b/src/flineedit.cpp @@ -1130,7 +1130,7 @@ void FLineEdit::processActivate() } //---------------------------------------------------------------------- -void FLineEdit::processChanged() +void FLineEdit::processChanged() const { emitCallback("changed"); } diff --git a/src/flistbox.cpp b/src/flistbox.cpp index 76aef6f6..c65b24c6 100644 --- a/src/flistbox.cpp +++ b/src/flistbox.cpp @@ -1696,19 +1696,19 @@ inline bool FListBox::keyIncSearchInput (FKey key) } //---------------------------------------------------------------------- -void FListBox::processClick() +void FListBox::processClick() const { emitCallback("clicked"); } //---------------------------------------------------------------------- -void FListBox::processSelect() +void FListBox::processSelect() const { emitCallback("row-selected"); } //---------------------------------------------------------------------- -void FListBox::processChanged() +void FListBox::processChanged() const { emitCallback("row-changed"); } @@ -1743,7 +1743,7 @@ void FListBox::lazyConvert(listBoxItems::iterator iter, int y) } //---------------------------------------------------------------------- -void FListBox::cb_vbarChange (const FWidget*, const FDataPtr) +void FListBox::cb_vbarChange (const FWidget*) { FScrollbar::sType scrollType; const std::size_t current_before = current; @@ -1814,7 +1814,7 @@ void FListBox::cb_vbarChange (const FWidget*, const FDataPtr) } //---------------------------------------------------------------------- -void FListBox::cb_hbarChange (const FWidget*, const FDataPtr) +void FListBox::cb_hbarChange (const FWidget*) { static constexpr int padding_space = 2; // 1 leading space + 1 trailing space static constexpr int wheel_distance = 4; diff --git a/src/flistview.cpp b/src/flistview.cpp index 0a3cbbfc..fad6875d 100644 --- a/src/flistview.cpp +++ b/src/flistview.cpp @@ -2496,7 +2496,7 @@ FObject::iterator FListView::appendItem (FListViewItem* item) } //---------------------------------------------------------------------- -void FListView::processClick() +void FListView::processClick() const { if ( itemlist.empty() ) return; @@ -2505,7 +2505,7 @@ void FListView::processClick() } //---------------------------------------------------------------------- -void FListView::processChanged() +void FListView::processChanged() const { emitCallback("row-changed"); } @@ -2855,7 +2855,7 @@ void FListView::scrollBy (int dx, int dy) } //---------------------------------------------------------------------- -void FListView::cb_vbarChange (const FWidget*, const FDataPtr) +void FListView::cb_vbarChange (const FWidget*) { FScrollbar::sType scrollType = vbar->getScrollType(); static constexpr int wheel_distance = 4; @@ -2922,7 +2922,7 @@ void FListView::cb_vbarChange (const FWidget*, const FDataPtr) } //---------------------------------------------------------------------- -void FListView::cb_hbarChange (const FWidget*, const FDataPtr) +void FListView::cb_hbarChange (const FWidget*) { FScrollbar::sType scrollType = hbar->getScrollType(); static constexpr int wheel_distance = 4; diff --git a/src/fmenu.cpp b/src/fmenu.cpp index 5ecfd668..3e80b251 100644 --- a/src/fmenu.cpp +++ b/src/fmenu.cpp @@ -1612,7 +1612,7 @@ inline void FMenu::closeMenu() } //---------------------------------------------------------------------- -void FMenu::processActivate() +void FMenu::processActivate() const { emitCallback("activate"); } diff --git a/src/fmenuitem.cpp b/src/fmenuitem.cpp index c02e3543..9fcad009 100644 --- a/src/fmenuitem.cpp +++ b/src/fmenuitem.cpp @@ -568,25 +568,25 @@ void FMenuItem::updateSuperMenuDimensions() } //---------------------------------------------------------------------- -void FMenuItem::processEnable() +void FMenuItem::processEnable() const { emitCallback("enable"); } //---------------------------------------------------------------------- -void FMenuItem::processDisable() +void FMenuItem::processDisable() const { emitCallback("disable"); } //---------------------------------------------------------------------- -void FMenuItem::processActivate() +void FMenuItem::processActivate() const { emitCallback("activate"); } //---------------------------------------------------------------------- -void FMenuItem::processDeactivate() +void FMenuItem::processDeactivate() const { emitCallback("deactivate"); } diff --git a/src/fmessagebox.cpp b/src/fmessagebox.cpp index a91c13da..f46498f2 100644 --- a/src/fmessagebox.cpp +++ b/src/fmessagebox.cpp @@ -109,7 +109,8 @@ FMessageBox& FMessageBox::operator = (const FMessageBox& mbox) else { for (std::size_t n{0}; n < num_buttons && n < MAX_BUTTONS; n++) - delete button[n]; + if ( button[n] ) + delete button[n]; if ( mbox.getParentWidget() ) mbox.getParentWidget()->addChild (this); @@ -139,7 +140,8 @@ void FMessageBox::setHeadline (const FString& headline) setHeight(getHeight() + 2, true); for (std::size_t n{0}; n < num_buttons && n < MAX_BUTTONS; n++) - button[n]->setY (int(getHeight()) - 4, false); + if ( button[n] ) + button[n]->setY (int(getHeight()) - 4, false); const std::size_t column_width = getColumnWidth(headline_text); @@ -269,7 +271,8 @@ inline void FMessageBox::allocation() inline void FMessageBox::deallocation() { for (std::size_t n{0}; n < num_buttons && n < MAX_BUTTONS; n++) - delete button[n]; + if ( button[n] ) + delete button[n]; } //---------------------------------------------------------------------- @@ -390,6 +393,9 @@ void FMessageBox::resizeButtons() const for (std::size_t n{0}; n < num_buttons && n < MAX_BUTTONS; n++) { + if ( ! button[n] ) + continue; + len[n] = button[n]->getText().getLength(); if ( button[n]->getText().includes('&') ) @@ -411,7 +417,8 @@ void FMessageBox::resizeButtons() const max_size = 7; for (std::size_t n{0}; n < num_buttons && n < MAX_BUTTONS; n++) - button[n]->setWidth(max_size + 3, false); + if ( button[n] ) + button[n]->setWidth(max_size + 3, false); } //---------------------------------------------------------------------- @@ -422,6 +429,9 @@ void FMessageBox::adjustButtons() for (std::size_t n{0}; n < num_buttons && n < MAX_BUTTONS; n++) { + if ( ! button[n] ) + continue; + if ( n == num_buttons - 1 ) btn_width += button[n]->getWidth(); else @@ -441,6 +451,9 @@ void FMessageBox::adjustButtons() for (std::size_t n{0}; n < num_buttons && n < MAX_BUTTONS; n++) { + if ( ! button[n] ) + continue; + if ( n == 0 ) button[n]->setX(btn_x); else diff --git a/src/fradiomenuitem.cpp b/src/fradiomenuitem.cpp index a2c327e4..cfcc43f8 100644 --- a/src/fradiomenuitem.cpp +++ b/src/fradiomenuitem.cpp @@ -77,7 +77,7 @@ void FRadioMenuItem::init() } //---------------------------------------------------------------------- -void FRadioMenuItem::processToggle() +void FRadioMenuItem::processToggle() const { emitCallback("toggled"); } diff --git a/src/fscrollview.cpp b/src/fscrollview.cpp index fe0a6dae..235cad83 100644 --- a/src/fscrollview.cpp +++ b/src/fscrollview.cpp @@ -866,7 +866,7 @@ void FScrollView::setViewportCursor() const } //---------------------------------------------------------------------- -void FScrollView::cb_vbarChange (const FWidget*, const FDataPtr) +void FScrollView::cb_vbarChange (const FWidget*) { FScrollbar::sType scrollType = vbar->getScrollType(); static constexpr int wheel_distance = 4; @@ -925,7 +925,7 @@ void FScrollView::cb_vbarChange (const FWidget*, const FDataPtr) } //---------------------------------------------------------------------- -void FScrollView::cb_hbarChange (const FWidget*, const FDataPtr) +void FScrollView::cb_hbarChange (const FWidget*) { FScrollbar::sType scrollType = hbar->getScrollType(); static constexpr int wheel_distance = 4; diff --git a/src/fspinbox.cpp b/src/fspinbox.cpp index 6d540e59..8ce5e3e6 100644 --- a/src/fspinbox.cpp +++ b/src/fspinbox.cpp @@ -399,13 +399,13 @@ inline void FSpinBox::decreaseValue() } //---------------------------------------------------------------------- -void FSpinBox::processActivate() +void FSpinBox::processActivate() const { emitCallback("activate"); } //---------------------------------------------------------------------- -void FSpinBox::processChanged() +void FSpinBox::processChanged() const { emitCallback("changed"); } diff --git a/src/fstatusbar.cpp b/src/fstatusbar.cpp index b4b0bd3e..56b7951c 100644 --- a/src/fstatusbar.cpp +++ b/src/fstatusbar.cpp @@ -114,7 +114,7 @@ void FStatusKey::init() } //---------------------------------------------------------------------- -void FStatusKey::processActivate() +void FStatusKey::processActivate() const { emitCallback("activate"); } diff --git a/src/ftextview.cpp b/src/ftextview.cpp index d180be48..e1228f0f 100644 --- a/src/ftextview.cpp +++ b/src/ftextview.cpp @@ -736,7 +736,7 @@ inline bool FTextView::isPrintable (wchar_t ch) const } //---------------------------------------------------------------------- -void FTextView::processChanged() +void FTextView::processChanged() const { emitCallback("changed"); } @@ -763,7 +763,7 @@ void FTextView::changeOnResize() const } //---------------------------------------------------------------------- -void FTextView::cb_vbarChange (const FWidget*, const FDataPtr) +void FTextView::cb_vbarChange (const FWidget*) { const FScrollbar::sType scrollType = vbar->getScrollType(); static constexpr int wheel_distance = 4; @@ -818,7 +818,7 @@ void FTextView::cb_vbarChange (const FWidget*, const FDataPtr) } //---------------------------------------------------------------------- -void FTextView::cb_hbarChange (const FWidget*, const FDataPtr) +void FTextView::cb_hbarChange (const FWidget*) { const FScrollbar::sType scrollType = hbar->getScrollType(); static constexpr int wheel_distance = 4; diff --git a/src/ftogglebutton.cpp b/src/ftogglebutton.cpp index c22314c6..a59ee9f1 100644 --- a/src/ftogglebutton.cpp +++ b/src/ftogglebutton.cpp @@ -414,13 +414,13 @@ void FToggleButton::drawLabel() } //---------------------------------------------------------------------- -void FToggleButton::processClick() +void FToggleButton::processClick() const { emitCallback("clicked"); } //---------------------------------------------------------------------- -void FToggleButton::processToggle() +void FToggleButton::processToggle() const { emitCallback("toggled"); } diff --git a/src/fwidget.cpp b/src/fwidget.cpp index 68e4d246..d3afc904 100644 --- a/src/fwidget.cpp +++ b/src/fwidget.cpp @@ -1833,7 +1833,7 @@ void FWidget::KeyDownEvent (FKeyEvent* kev) } //---------------------------------------------------------------------- -void FWidget::emitWheelCallback (const FWheelEvent* ev) +void FWidget::emitWheelCallback (const FWheelEvent* ev) const { const int wheel = ev->getWheel(); diff --git a/src/include/final/fbutton.h b/src/include/final/fbutton.h index d454d7ee..79cf4ce0 100644 --- a/src/include/final/fbutton.h +++ b/src/include/final/fbutton.h @@ -149,7 +149,7 @@ class FButton : public FWidget void draw() override; void updateStatusBar() const; void updateButtonColor(); - void processClick(); + void processClick() const; // Data members FString text{}; diff --git a/src/include/final/fcheckmenuitem.h b/src/include/final/fcheckmenuitem.h index 212e3c94..f313c41d 100644 --- a/src/include/final/fcheckmenuitem.h +++ b/src/include/final/fcheckmenuitem.h @@ -83,7 +83,7 @@ class FCheckMenuItem : public FMenuItem private: // Methods void init(); - void processToggle(); + void processToggle() const; void processClicked() override; }; diff --git a/src/include/final/fcombobox.h b/src/include/final/fcombobox.h index 41f71792..8078a85b 100644 --- a/src/include/final/fcombobox.h +++ b/src/include/final/fcombobox.h @@ -211,8 +211,8 @@ class FComboBox : public FWidget void onePosUp(); void onePosDown(); void passEventToListWindow (FMouseEvent* const&); - void processClick(); - void processChanged(); + void processClick() const; + void processChanged() const; // Callback methods void cb_setInputField(); diff --git a/src/include/final/flineedit.h b/src/include/final/flineedit.h index 60dee836..25c36aa9 100644 --- a/src/include/final/flineedit.h +++ b/src/include/final/flineedit.h @@ -201,7 +201,7 @@ class FLineEdit : public FWidget bool keyInput (FKey); wchar_t characterFilter (const wchar_t) const; void processActivate(); - void processChanged(); + void processChanged() const; // Data members FString text{""}; diff --git a/src/include/final/flistbox.h b/src/include/final/flistbox.h index 587dadbf..128ab93b 100644 --- a/src/include/final/flistbox.h +++ b/src/include/final/flistbox.h @@ -301,16 +301,16 @@ class FListBox : public FWidget bool changeSelectionAndPosition(); bool deletePreviousCharacter(); bool keyIncSearchInput (FKey); - void processClick(); - void processSelect(); - void processChanged(); + void processClick() const; + void processSelect() const; + void processChanged() const; void changeOnResize() const; void lazyConvert (listBoxItems::iterator, int); listBoxItems::iterator index2iterator (std::size_t); listBoxItems::const_iterator index2iterator (std::size_t index) const; // Callback methods - void cb_vbarChange (const FWidget*, const FDataPtr); - void cb_hbarChange (const FWidget*, const FDataPtr); + void cb_vbarChange (const FWidget*); + void cb_hbarChange (const FWidget*); // Function Pointer lazyInsert lazy_inserter{}; diff --git a/src/include/final/flistview.h b/src/include/final/flistview.h index bff471ae..952d3cd6 100644 --- a/src/include/final/flistview.h +++ b/src/include/final/flistview.h @@ -428,8 +428,8 @@ class FListView : public FWidget void dragDown (int); void stopDragScroll(); iterator appendItem (FListViewItem*); - void processClick(); - void processChanged(); + void processClick() const; + void processChanged() const; void changeOnResize() const; void toggleCheckbox(); void collapseAndScrollLeft(); @@ -451,8 +451,8 @@ class FListView : public FWidget bool hasCheckableItems() const; // Callback methods - void cb_vbarChange (const FWidget*, const FDataPtr); - void cb_hbarChange (const FWidget*, const FDataPtr); + void cb_vbarChange (const FWidget*); + void cb_hbarChange (const FWidget*); // Data members iterator root{}; diff --git a/src/include/final/fmenu.h b/src/include/final/fmenu.h index 3613694c..61093224 100644 --- a/src/include/final/fmenu.h +++ b/src/include/final/fmenu.h @@ -216,7 +216,7 @@ class FMenu : public FWindow, public FMenuList void selectNextMenu (FKeyEvent*); void acceptSelection(); void closeMenu(); - void processActivate(); + void processActivate() const; // Data members FMenuItem menuitem{}; diff --git a/src/include/final/fmenuitem.h b/src/include/final/fmenuitem.h index 0c07bc12..5b3c2756 100644 --- a/src/include/final/fmenuitem.h +++ b/src/include/final/fmenuitem.h @@ -156,10 +156,10 @@ class FMenuItem : public FWidget // Methods void init(); void updateSuperMenuDimensions(); - void processEnable(); - void processDisable(); - void processActivate(); - void processDeactivate(); + void processEnable() const; + void processDisable() const; + void processActivate() const; + void processDeactivate() const; void createDialogList (FMenu*) const; template void passMouseEvent (T, const FMouseEvent*, fc::events) const; diff --git a/src/include/final/fradiomenuitem.h b/src/include/final/fradiomenuitem.h index daff789c..f96672aa 100644 --- a/src/include/final/fradiomenuitem.h +++ b/src/include/final/fradiomenuitem.h @@ -83,7 +83,7 @@ class FRadioMenuItem : public FMenuItem private: // Methods void init(); - void processToggle(); + void processToggle() const; void processClicked() override; }; diff --git a/src/include/final/fscrollbar.h b/src/include/final/fscrollbar.h index 83cb486e..b137e0a9 100644 --- a/src/include/final/fscrollbar.h +++ b/src/include/final/fscrollbar.h @@ -196,7 +196,7 @@ void initScrollbar ( FScrollbarPtr& bar bar->addCallback ( "change-value", - std::bind(cb_handler, cb_instance, bar.get(), nullptr) + std::bind(cb_handler, cb_instance, bar.get()) ); } diff --git a/src/include/final/fscrollview.h b/src/include/final/fscrollview.h index a99b3c49..ad90716f 100644 --- a/src/include/final/fscrollview.h +++ b/src/include/final/fscrollview.h @@ -172,8 +172,8 @@ class FScrollView : public FWidget void setViewportCursor() const; // Callback methods - void cb_vbarChange (const FWidget*, const FDataPtr); - void cb_hbarChange (const FWidget*, const FDataPtr); + void cb_vbarChange (const FWidget*); + void cb_hbarChange (const FWidget*); // Data members FRect scroll_geometry{1, 1, 1, 1}; diff --git a/src/include/final/fspinbox.h b/src/include/final/fspinbox.h index cc48aea7..ba979458 100644 --- a/src/include/final/fspinbox.h +++ b/src/include/final/fspinbox.h @@ -135,8 +135,8 @@ class FSpinBox : public FWidget void updateInputField(); void increaseValue(); void decreaseValue(); - void processActivate(); - void processChanged(); + void processActivate() const; + void processChanged() const; void forceFocus(); // Callback methods diff --git a/src/include/final/fstatusbar.h b/src/include/final/fstatusbar.h index 65ca48e5..751543e4 100644 --- a/src/include/final/fstatusbar.h +++ b/src/include/final/fstatusbar.h @@ -110,7 +110,7 @@ class FStatusKey : public FWidget private: // Methods void init(); - void processActivate(); + void processActivate() const; FStatusBar* getConnectedStatusbar() const; void setConnectedStatusbar (FStatusBar*); diff --git a/src/include/final/ftextview.h b/src/include/final/ftextview.h index 4cde2061..7d687cbb 100644 --- a/src/include/final/ftextview.h +++ b/src/include/final/ftextview.h @@ -157,12 +157,12 @@ class FTextView : public FWidget void drawText(); bool useFDialogBorder() const; bool isPrintable (wchar_t) const; - void processChanged(); + void processChanged() const; void changeOnResize() const; // Callback methods - void cb_vbarChange (const FWidget*, const FDataPtr); - void cb_hbarChange (const FWidget*, const FDataPtr); + void cb_vbarChange (const FWidget*); + void cb_hbarChange (const FWidget*); // Data members FStringList data{}; diff --git a/src/include/final/ftogglebutton.h b/src/include/final/ftogglebutton.h index 51ee8a32..c1b49d63 100644 --- a/src/include/final/ftogglebutton.h +++ b/src/include/final/ftogglebutton.h @@ -133,8 +133,8 @@ class FToggleButton : public FWidget // Methods void draw() override; void drawLabel(); - void processClick(); - void processToggle(); + void processClick() const; + void processToggle() const; // Event handler void onKeyPress (FKeyEvent*) override; diff --git a/src/include/final/fwidget.h b/src/include/final/fwidget.h index 13e76fc2..31f81df5 100644 --- a/src/include/final/fwidget.h +++ b/src/include/final/fwidget.h @@ -441,10 +441,10 @@ class FWidget : public FVTerm, public FObject void insufficientSpaceAdjust(); void KeyPressEvent (FKeyEvent*); void KeyDownEvent (FKeyEvent*); - void emitWheelCallback (const FWheelEvent*); + void emitWheelCallback (const FWheelEvent*) const; void setWindowFocus (bool); bool changeFocus (FWidget*, FWidget*, fc::FocusTypes); - void processDestroy(); + void processDestroy() const; virtual void draw(); void drawWindows() const; void drawChildren(); @@ -1050,7 +1050,7 @@ inline uInt& FWidget::setModalDialogCounter() { return modal_dialog_counter; } //---------------------------------------------------------------------- -inline void FWidget::processDestroy() +inline void FWidget::processDestroy() const { emitCallback("destroy"); }