93 #if !defined (USE_FINAL_H) && !defined (COMPILE_FINAL_CUT) 94 #error "Only <final/final.h> can be included directly." 99 #include <unordered_map> 103 #include "final/fobject.h" 104 #include "final/ftypes.h" 105 #include "final/fwidget_flags.h" 106 #include "final/fwidget_functions.h" 107 #include "final/output/foutput.h" 108 #include "final/util/fcallback.h" 109 #include "final/util/fpoint.h" 110 #include "final/util/frect.h" 111 #include "final/util/fsize.h" 112 #include "final/vterm/fvterm.h" 140 using FVTerm::setColor;
142 using FWidgetList = std::vector<FWidget*>;
143 using FAcceleratorList = std::vector<FAccelerator>;
152 auto getClassName()
const ->
FString override;
153 auto getRootWidget() ->
FWidget*;
154 auto getParentWidget()
const ->
FWidget*;
155 static auto getMainWidget() ->
FWidget*&;
156 static auto getActiveWindow() ->
FWidget*&;
157 static auto getFocusWidget() ->
FWidget*&;
158 static auto getClickedWidget() ->
FWidget*&;
159 static auto getOpenMenu() ->
FWidget*&;
160 static auto getMoveResizeWidget() ->
FWidget*&;
161 static auto getMenuBar() ->
FMenuBar*;
163 static auto getColorTheme() -> std::shared_ptr<FWidgetColors>&;
164 auto getAcceleratorList()
const & ->
const FAcceleratorList&;
165 auto getStatusbarMessage()
const ->
FString;
166 auto getForegroundColor()
const noexcept -> FColor;
167 auto getBackgroundColor()
const noexcept -> FColor;
168 auto doubleFlatLine_ref (Side) -> std::vector<bool>&;
170 auto getX()
const -> int;
171 auto getY()
const -> int;
172 auto getPos()
const ->
FPoint;
173 auto getTermX()
const -> int;
174 auto getTermY()
const -> int;
175 auto getTermPos()
const ->
FPoint;
176 auto getWidth()
const -> std::size_t;
177 auto getHeight()
const -> std::size_t;
178 auto getSize()
const ->
FSize;
179 auto getTopPadding()
const noexcept -> int;
180 auto getLeftPadding()
const noexcept -> int;
181 auto getBottomPadding()
const noexcept -> int;
182 auto getRightPadding()
const noexcept -> int;
183 auto getClientWidth()
const -> std::size_t;
184 auto getClientHeight()
const -> std::size_t;
185 auto getClientSize()
const ->
FSize;
186 auto getMaxWidth()
const -> std::size_t;
187 auto getMaxHeight()
const -> std::size_t;
188 auto getShadow()
const & ->
const FSize&;
189 auto getGeometry()
const & ->
const FRect&;
190 auto getGeometryWithShadow() & ->
const FRect&;
191 auto getTermGeometry() & ->
const FRect&;
192 auto getTermGeometryWithShadow() & ->
const FRect&;
193 auto getDesktopWidth()
const -> std::size_t;
194 auto getDesktopHeight()
const -> std::size_t;
196 auto getCursorPos()
const ->
FPoint;
197 auto getPrintPos() ->
FPoint;
200 static void setMainWidget (
FWidget*);
201 static void setFocusWidget (
FWidget*);
202 static void setClickedWidget (
FWidget*);
203 static void setMoveSizeWidget (
FWidget*);
204 static void setActiveWindow (
FWidget*);
205 static void setOpenMenu (
FWidget*);
206 template <
typename ClassT>
207 static void setColorTheme();
208 auto setAcceleratorList() & -> FAcceleratorList&;
209 virtual void setStatusbarMessage (
const FString&);
210 void setVisible (
bool =
true);
212 virtual void setEnable (
bool =
true);
213 virtual void unsetEnable();
214 virtual void setDisable();
215 virtual void setVisibleCursor (
bool =
true);
216 virtual void unsetVisibleCursor();
217 virtual auto setFocus (
bool =
true 218 , FocusTypes = FocusTypes::DefiniteWidget) -> bool;
219 virtual auto unsetFocus() -> bool;
220 void setFocusable (
bool =
true);
221 void unsetFocusable();
222 auto ignorePadding (
bool =
true) -> bool;
223 auto acceptPadding() -> bool;
224 virtual void setForegroundColor (FColor);
225 virtual void setBackgroundColor (FColor);
226 virtual void resetColors();
227 void useParentWidgetColor();
228 void setColor()
const;
231 virtual void setX (
int,
bool =
true);
232 virtual void setY (
int,
bool =
true);
233 virtual void setPos (
const FPoint&,
bool =
true);
234 virtual void setWidth (std::size_t,
bool =
true);
235 virtual void setHeight (std::size_t,
bool =
true);
236 virtual void setSize (
const FSize&,
bool =
true);
237 void setTopPadding (
int,
bool =
true);
238 void setLeftPadding (
int,
bool =
true);
239 void setBottomPadding (
int,
bool =
true);
240 void setRightPadding (
int,
bool =
true);
241 void setTerminalSize (
const FSize&)
const;
242 virtual void setGeometry (
const FRect&,
bool =
true);
243 virtual void setGeometry (
const FPoint&,
const FSize&,
bool =
true);
244 virtual void setShadowSize (
const FSize&);
245 void setMinimumWidth (std::size_t);
246 void setMinimumHeight (std::size_t);
247 void setMinimumSize (
const FSize&);
248 void setMaximumWidth (std::size_t);
249 void setMaximumHeight (std::size_t);
250 void setMaximumSize (
const FSize&);
251 void setFixedSize (
const FSize&);
252 virtual auto setCursorPos (
const FPoint&) -> bool;
253 void unsetCursorPos();
254 virtual void setPrintPos (
const FPoint&);
255 void setDoubleFlatLine (Side,
bool =
true);
256 void unsetDoubleFlatLine (Side);
257 void setDoubleFlatLine (Side,
int,
bool =
true);
258 void unsetDoubleFlatLine (Side,
int);
261 auto isRootWidget()
const -> bool;
262 auto isWindowWidget()
const -> bool;
263 auto isDialogWidget()
const -> bool;
264 auto isMenuWidget()
const -> bool;
265 auto isVisible()
const -> bool;
266 auto isShown()
const -> bool;
267 auto isHidden()
const -> bool;
268 auto isEnabled()
const -> bool;
269 auto hasVisibleCursor()
const -> bool;
270 auto hasFocus()
const -> bool;
271 auto acceptFocus()
const -> bool;
272 auto isPaddingIgnored()
const -> bool;
276 auto numOfFocusableChildren() & -> int;
277 virtual auto close() -> bool;
278 void clearStatusbarMessage();
279 template <
typename... Args>
280 void addCallback (
FString&&, Args&&...) & noexcept;
281 template <
typename... Args>
282 void delCallback (Args&&...) & noexcept;
283 void emitCallback (
const FString&)
const &;
284 void addAccelerator (FKey) &;
285 virtual void addAccelerator (FKey,
FWidget*) &;
286 void delAccelerator () &;
287 virtual void delAccelerator (
FWidget*) &;
288 virtual void flushChanges();
289 virtual void redraw();
290 virtual void resize();
293 virtual auto focusNextChild() -> bool;
294 virtual auto focusPrevChild() -> bool;
295 virtual auto focusFirstChild() & -> bool;
296 virtual auto focusLastChild() & -> bool;
298 void print (
const FPoint&)
override;
299 virtual void move (
const FPoint&);
300 virtual void drawBorder();
305 auto getPrintArea() ->
FTermArea*
override;
306 static auto getModalDialogCounter() -> uInt;
307 static auto getDialogList() -> FWidgetList*&;
308 static auto getAlwaysOnTopList() -> FWidgetList*&;
309 static auto getWidgetCloseList() -> FWidgetList*&;
310 void addPreprocessingHandler (
const FVTerm*
311 , FPreprocessingFunction&& )
override;
312 void delPreprocessingHandler (
const FVTerm*)
override;
315 auto isChildPrintArea()
const -> bool;
319 virtual void setMenuBar (
FMenuBar*);
320 static auto setModalDialogCounter() -> uInt&;
321 void setParentOffset();
322 void setTermOffset();
323 void setTermOffsetWithPadding();
326 void initTerminal()
override;
328 virtual void initLayout();
329 virtual void adjustSize();
330 void adjustSizeGlobal();
331 void hideArea (
const FSize&);
334 auto event (
FEvent*) ->
bool override;
358 using EventHandler = std::function<void(FEvent*)>;
359 using EventMap = std::unordered_map<Event, EventHandler, EnumHash<Event>>;
361 struct WidgetSizeHints
363 WidgetSizeHints() =
default;
364 ~WidgetSizeHints() =
default;
366 inline void setMinimum (
const FSize& s)
368 min_width = s.getWidth();
369 min_height = s.getHeight();
372 inline void setMaximum (
const FSize& s)
374 max_width = s.getWidth();
375 max_height = s.getHeight();
378 std::size_t min_width{0};
379 std::size_t min_height{0};
380 std::size_t max_width{INT_MAX};
381 std::size_t max_height{INT_MAX};
384 struct DoubleLineMask
386 DoubleLineMask() =
default;
387 ~DoubleLineMask() =
default;
389 inline void setWidth (std::size_t width)
391 if ( top.size() == width && bottom.size() == width )
394 top.resize (width,
false);
395 bottom.resize (width,
false);
398 inline void setHeight (std::size_t height)
400 if ( right.size() == height && left.size() == height )
403 right.resize (height,
false);
404 left.resize (height,
false);
407 inline void setSize (std::size_t width, std::size_t height)
413 std::vector<bool> top{};
414 std::vector<bool> right{};
415 std::vector<bool> bottom{};
416 std::vector<bool> left{};
421 WidgetPadding() =
default;
422 ~WidgetPadding() =
default;
431 void determineDesktopSize();
432 void mapEventFunctions();
434 void mapMouseEvents();
435 void mapFocusEvents();
436 void mapWidgetEvents();
437 void initRootWidget();
438 void initWidgetLayout();
439 void initDesktopOnShown()
const;
442 void finalizeShow()
const;
443 void showChildWidgets();
444 void moveLeftIfNotEnoughSpace();
445 void moveUpIfNotEnoughSpace();
446 void reduceWidthIfNotEnoughSpace();
447 void reduceHeightIfNotEnoughSpace();
448 void insufficientSpaceAdjust();
452 void setWindowFocus (
bool =
true);
453 auto searchForwardForWidget (
const FWidget*
454 ,
const FWidget*)
const -> FObjectList::const_iterator;
455 auto searchBackwardsForWidget (
const FWidget*
456 ,
const FWidget* )
const -> FObjectList::const_reverse_iterator;
457 auto isViewable()
const -> bool;
458 auto canReceiveFocus (
const FWidget*)
const -> bool;
459 void setFocusOnThisWidget (FocusTypes);
460 auto sendFailAtChildFocusEvent (
FWidget*, FocusTypes)
const -> bool;
461 auto sendFocusOutEvent (
FWidget*, FocusTypes)
const -> bool;
462 auto sendFocusInEvent (
FWidget*, FocusTypes)
const -> bool;
463 void processDestroy()
const;
465 void drawWindows()
const;
468 void adjustSizeWithinArea (
FRect&)
const;
469 void adjustChildWidgetSizes();
470 void setWindowOffset();
471 void setWidgetOffset (
const FWidget*);
472 void setClientOffset();
473 static auto isDefaultTheme() -> bool;
474 static void initColorTheme();
475 void removeQueuedEvent()
const;
476 void setStatusbarText (
bool =
true)
const;
480 FPoint widget_cursor_position{-1, -1};
481 WidgetSizeHints size_hints{};
482 DoubleLineMask double_flatline_mask{};
483 WidgetPadding padding{};
486 FRect wsize{1, 1, 1, 1};
487 FRect adjust_wsize{1, 1, 1, 1};
488 FRect adjust_wsize_term{};
489 FRect adjust_wsize_shadow{};
490 FRect adjust_wsize_term_shadow{};
494 FRect wclient_offset{};
499 FColor foreground_color{FColor::Default};
500 FColor background_color{FColor::Default};
502 FAcceleratorList accelerator_list{};
503 EventMap event_map{};
511 static FWidget* clicked_widget;
513 static FWidget* move_resize_widget;
514 static FWidget* first_shown_widget;
515 static FWidget* redraw_root_widget;
516 static FWidgetList* dialog_list;
517 static FWidgetList* always_on_top_list;
518 static FWidgetList* close_widget_list;
519 static uInt modal_dialog_counter;
520 static bool init_terminal;
521 static bool init_desktop;
524 friend void detectTerminalSize();
525 friend void drawShadow (
FWidget*);
526 friend void drawTransparentShadow (
FWidget*);
527 friend void drawGenericBox (
FWidget*,
const FRect&,
const std::array<wchar_t, 8>&);
528 friend void drawGenericBlockShadow (
FWidget*,
const std::array<FChar, 4>&);
529 friend void drawFlatBorder (
FWidget*);
530 friend void clearFlatBorder (
FWidget*);
536 inline auto FWidget::getClassName()
const ->
FString 537 {
return "FWidget"; }
540 inline auto FWidget::getMainWidget() ->
FWidget*&
541 {
return main_widget; }
544 inline auto FWidget::getActiveWindow() ->
FWidget*&
545 {
return active_window; }
548 inline auto FWidget::getFocusWidget() ->
FWidget*&
549 {
return focus_widget; }
552 inline auto FWidget::getClickedWidget() ->
FWidget*&
553 {
return clicked_widget; }
556 inline auto FWidget::getOpenMenu() ->
FWidget*&
557 {
return open_menu; }
560 inline auto FWidget::getMoveResizeWidget() ->
FWidget*&
561 {
return move_resize_widget; }
564 inline auto FWidget::getMenuBar() ->
FMenuBar*
568 inline auto FWidget::getStatusBar() ->
FStatusBar*
569 {
return statusbar; }
572 inline auto FWidget::getAcceleratorList()
const & ->
const FAcceleratorList&
573 {
return accelerator_list; }
576 inline auto FWidget::setAcceleratorList() & -> FAcceleratorList&
577 {
return accelerator_list; }
580 inline auto FWidget::getStatusbarMessage()
const ->
FString 581 {
return statusbar_message; }
584 inline auto FWidget::getForegroundColor()
const noexcept -> FColor
585 {
return foreground_color; }
588 inline auto FWidget::getBackgroundColor()
const noexcept -> FColor
589 {
return background_color; }
592 inline auto FWidget::getX()
const ->
int 593 {
return adjust_wsize.getX(); }
596 inline auto FWidget::getY()
const ->
int 597 {
return adjust_wsize.getY(); }
600 inline auto FWidget::getPos()
const ->
FPoint 602 const FPoint& pos = adjust_wsize.getPos();
607 inline auto FWidget::getTermX()
const ->
int 608 {
return woffset.getX1() + adjust_wsize.getX(); }
611 inline auto FWidget::getTermY()
const ->
int 612 {
return woffset.getY1() + adjust_wsize.getY(); }
615 inline auto FWidget::getTermPos()
const ->
FPoint 616 {
return {getTermX(), getTermY()}; }
619 inline auto FWidget::getWidth()
const -> std::size_t
620 {
return adjust_wsize.getWidth(); }
623 inline auto FWidget::getHeight()
const -> std::size_t
624 {
return adjust_wsize.getHeight(); }
627 inline auto FWidget::getSize()
const ->
FSize 629 const FSize& size = adjust_wsize.getSize();
634 inline auto FWidget::getTopPadding()
const noexcept ->
int 635 {
return padding.top; }
638 inline auto FWidget::getLeftPadding()
const noexcept ->
int 639 {
return padding.left; }
642 inline auto FWidget::getBottomPadding()
const noexcept ->
int 643 {
return padding.bottom; }
646 inline auto FWidget::getRightPadding()
const noexcept ->
int 647 {
return padding.right; }
650 inline auto FWidget::getClientWidth()
const -> std::size_t
651 {
return wclient_offset.getWidth(); }
654 inline auto FWidget::getClientHeight()
const -> std::size_t
655 {
return wclient_offset.getHeight(); }
658 inline auto FWidget::getClientSize()
const ->
FSize 660 const FSize& size = wclient_offset.getSize();
665 inline auto FWidget::getMaxWidth()
const -> std::size_t
666 {
return woffset.getWidth(); }
669 inline auto FWidget::getMaxHeight()
const -> std::size_t
670 {
return woffset.getHeight(); }
673 inline auto FWidget::getShadow()
const & ->
const FSize&
677 inline auto FWidget::getGeometry()
const & ->
const FRect&
678 {
return adjust_wsize; }
681 inline auto FWidget::getGeometryWithShadow() & ->
const FRect&
683 adjust_wsize_shadow.setCoordinates
685 adjust_wsize.x1_ref(),
686 adjust_wsize.y1_ref(),
687 adjust_wsize.x2_ref() + int(wshadow.width_ref()),
688 adjust_wsize.y2_ref() + int(wshadow.height_ref())
691 return adjust_wsize_shadow;
695 inline auto FWidget::getTermGeometry() & ->
const FRect&
697 adjust_wsize_term.setCoordinates
699 adjust_wsize.x1_ref() + woffset.x1_ref(),
700 adjust_wsize.y1_ref() + woffset.y1_ref(),
701 adjust_wsize.x2_ref() + woffset.x1_ref(),
702 adjust_wsize.y2_ref() + woffset.y1_ref()
705 return adjust_wsize_term;
709 inline auto FWidget::getTermGeometryWithShadow() & ->
const FRect&
711 adjust_wsize_term_shadow.setCoordinates
713 adjust_wsize.x1_ref() + woffset.x1_ref(),
714 adjust_wsize.y1_ref() + woffset.y1_ref(),
715 adjust_wsize.x2_ref() + woffset.x1_ref() + int(wshadow.width_ref()),
716 adjust_wsize.y2_ref() + woffset.y1_ref() + int(wshadow.height_ref())
719 return adjust_wsize_term_shadow;
723 inline auto FWidget::getDesktopWidth()
const -> std::size_t
724 {
return FVTerm::getFOutput()->getColumnNumber(); }
727 inline auto FWidget::getDesktopHeight()
const -> std::size_t
728 {
return FVTerm::getFOutput()->getLineNumber(); }
731 inline auto FWidget::getFlags()
const & ->
const FWidgetFlags&
735 inline auto FWidget::getCursorPos()
const ->
FPoint 736 {
return widget_cursor_position; }
739 inline void FWidget::setActiveWindow (
FWidget* obj)
740 { active_window = obj; }
743 inline void FWidget::setFocusWidget (
FWidget* obj)
744 { focus_widget = obj; }
747 inline void FWidget::setClickedWidget (
FWidget* obj)
748 { clicked_widget = obj; }
751 inline void FWidget::setOpenMenu (
FWidget* obj)
755 template <
typename ClassT>
756 inline void FWidget::setColorTheme()
758 getColorTheme() = std::make_shared<ClassT>();
762 inline void FWidget::setMoveSizeWidget (
FWidget* obj)
763 { move_resize_widget = obj; }
766 inline void FWidget::setStatusbarMessage (
const FString& msg)
767 { statusbar_message = msg; }
770 inline void FWidget::unsetVisible()
771 { setVisible(
false); }
774 inline void FWidget::unsetEnable()
775 { setEnable(
false); }
778 inline void FWidget::setDisable()
779 { setEnable(
false); }
782 inline void FWidget::setVisibleCursor (
bool enable)
783 { flags.visibility.visible_cursor = enable; }
786 inline void FWidget::unsetVisibleCursor()
787 { setVisibleCursor(
false); }
790 inline auto FWidget::unsetFocus() ->
bool 791 {
return setFocus(
false, FocusTypes::DefiniteWidget); }
794 inline void FWidget::setFocusable (
bool enable)
795 { flags.focus.focusable = enable; }
798 inline void FWidget::unsetFocusable()
799 { flags.focus.focusable =
false; }
802 inline auto FWidget::ignorePadding (
bool enable) ->
bool 803 {
return (flags.feature.ignore_padding = enable); }
806 inline auto FWidget::acceptPadding() ->
bool 807 {
return (flags.feature.ignore_padding =
false); }
810 inline void FWidget::setForegroundColor (FColor color)
813 if ( color == FColor::Default || (color >> 8) == FColor::Black )
814 foreground_color = color;
818 inline void FWidget::setBackgroundColor (FColor color)
821 if ( color == FColor::Default || (color >> 8) == FColor::Black )
822 background_color = color;
833 inline void FWidget::setGeometry (
const FRect& box,
bool adjust)
835 setGeometry (box.getPos(), box.getSize(), adjust);
839 inline void FWidget::setShadowSize (
const FSize& size)
842 wshadow.setSize (size);
846 inline void FWidget::setMinimumWidth (std::size_t min_width)
847 { size_hints.setMinimum (
FSize(min_width, size_hints.min_height)); }
850 inline void FWidget::setMinimumHeight (std::size_t min_height)
851 { size_hints.setMinimum (
FSize(size_hints.min_width, min_height)); }
854 inline void FWidget::setMinimumSize (
const FSize& size)
857 size_hints.setMinimum (size);
861 inline void FWidget::setMaximumWidth (std::size_t max_width)
862 { size_hints.setMaximum (
FSize(max_width, size_hints.max_height)); }
865 inline void FWidget::setMaximumHeight (std::size_t max_height)
866 { size_hints.setMaximum (
FSize(size_hints.max_width, max_height)); }
869 inline void FWidget::setMaximumSize (
const FSize& size)
872 size_hints.setMaximum (size);
876 inline void FWidget::setFixedSize (
const FSize& size)
880 size_hints.setMinimum (size);
881 size_hints.setMaximum (size);
885 inline void FWidget::unsetCursorPos()
886 { setCursorPos ({-1, -1}); }
889 inline void FWidget::unsetDoubleFlatLine (Side side)
890 { setDoubleFlatLine(side,
false); }
893 inline void FWidget::unsetDoubleFlatLine (Side side,
int pos)
894 { setDoubleFlatLine(side, pos,
false); }
897 inline auto FWidget::isRootWidget()
const ->
bool 898 {
return (! hasParent()); }
901 inline auto FWidget::isVisible()
const ->
bool 902 {
return flags.visibility.visible; }
905 inline auto FWidget::isShown()
const ->
bool 906 {
return flags.visibility.shown; }
909 inline auto FWidget::isHidden()
const ->
bool 910 {
return flags.visibility.hidden; }
913 inline auto FWidget::isWindowWidget()
const ->
bool 914 {
return flags.type.window_widget; }
917 inline auto FWidget::isDialogWidget()
const ->
bool 918 {
return flags.type.dialog_widget; }
921 inline auto FWidget::isMenuWidget()
const ->
bool 922 {
return flags.type.menu_widget; }
925 inline auto FWidget::isEnabled()
const ->
bool 926 {
return flags.feature.active; }
929 inline auto FWidget::hasVisibleCursor()
const ->
bool 930 {
return flags.visibility.visible_cursor; }
933 inline auto FWidget::hasFocus()
const ->
bool 934 {
return flags.focus.focus; }
937 inline auto FWidget::acceptFocus()
const ->
bool 938 {
return flags.focus.focusable; }
941 inline auto FWidget::isPaddingIgnored()
const ->
bool 942 {
return flags.feature.ignore_padding; }
945 inline void FWidget::clearStatusbarMessage()
946 { statusbar_message.clear(); }
949 template <
typename... Args>
950 inline void FWidget::addCallback (
FString&& cb_signal, Args&&... args) & noexcept
952 callback_impl.addCallback (std::move(cb_signal), std::forward<Args>(args)...);
956 template <
typename... Args>
957 inline void FWidget::delCallback (Args&&... args) & noexcept
959 callback_impl.delCallback(std::forward<Args>(args)...);
963 inline void FWidget::emitCallback (
const FString& emit_signal)
const &
965 callback_impl.emitCallback(emit_signal);
969 inline void FWidget::addAccelerator (FKey key) &
970 { addAccelerator (key,
this); }
973 inline void FWidget::delAccelerator() &
974 { delAccelerator(
this); }
977 inline auto FWidget::termToWidgetPos (
const FPoint& tPos)
const ->
FPoint 979 return { tPos.getX() + 1 - woffset.getX1() - adjust_wsize.getX()
980 , tPos.getY() + 1 - woffset.getY1() - adjust_wsize.getY() };
984 inline void FWidget::print (
const FPoint& pos)
990 inline void FWidget::drawBorder()
992 finalcut::drawBorder (
this,
FRect(
FPoint{1, 1}, getSize()));
996 inline auto FWidget::getModalDialogCounter() -> uInt
997 {
return modal_dialog_counter; }
1000 inline auto FWidget::getDialogList() -> FWidgetList*&
1001 {
return dialog_list; }
1004 inline auto FWidget::getAlwaysOnTopList() -> FWidgetList*&
1005 {
return always_on_top_list; }
1008 inline auto FWidget::getWidgetCloseList() -> FWidgetList*&
1009 {
return close_widget_list; }
1012 inline auto FWidget::setModalDialogCounter() -> uInt&
1013 {
return modal_dialog_counter; }
1016 inline void FWidget::processDestroy()
const 1017 { emitCallback(
"destroy"); }
1022 constexpr
wchar_t NF_menu_button[]
1024 wchar_t(UniChar::NF_rev_menu_button1),
1025 wchar_t(UniChar::NF_rev_menu_button2),
1026 wchar_t(UniChar::NF_rev_menu_button3),
1030 constexpr
wchar_t NF_button_up[]
1032 wchar_t(UniChar::NF_rev_up_pointing_triangle1),
1033 wchar_t(UniChar::NF_rev_up_pointing_triangle2),
1037 constexpr
wchar_t NF_button_down[]
1039 wchar_t(UniChar::NF_rev_down_pointing_triangle1),
1040 wchar_t(UniChar::NF_rev_down_pointing_triangle2),
1044 constexpr
wchar_t NF_button_arrow_up[]
1046 wchar_t(UniChar::NF_rev_up_arrow1),
1047 wchar_t(UniChar::NF_rev_up_arrow2),
1051 constexpr
wchar_t NF_button_arrow_down[]
1053 wchar_t(UniChar::NF_rev_down_arrow1),
1054 wchar_t(UniChar::NF_rev_down_arrow2),
1058 constexpr
wchar_t NF_button_arrow_left[]
1060 wchar_t(UniChar::NF_rev_left_arrow1),
1061 wchar_t(UniChar::NF_rev_left_arrow2),
1065 constexpr
wchar_t NF_button_arrow_right[]
1067 wchar_t(UniChar::NF_rev_right_arrow1),
1068 wchar_t(UniChar::NF_rev_right_arrow2),
1072 constexpr
wchar_t NF_Drive[]
1074 wchar_t(UniChar::NF_shadow_box_left),
1075 wchar_t(UniChar::NF_shadow_box_middle),
1076 wchar_t(UniChar::NF_shadow_box_hdd),
1077 wchar_t(UniChar::NF_shadow_box_right),
1081 constexpr
wchar_t NF_CD_ROM[]
1083 wchar_t(UniChar::NF_shadow_box_left),
1084 wchar_t(UniChar::NF_shadow_box_middle),
1085 wchar_t(UniChar::NF_shadow_box_cd),
1086 wchar_t(UniChar::NF_shadow_box_right),
1090 constexpr
wchar_t NF_Net_Drive[]
1092 wchar_t(UniChar::NF_shadow_box_left),
1093 wchar_t(UniChar::NF_shadow_box_middle),
1094 wchar_t(UniChar::NF_shadow_box_net),
1095 wchar_t(UniChar::NF_shadow_box_right),
1099 constexpr
wchar_t CHECKBOX[]
1101 wchar_t(UniChar::NF_shadow_box_left),
1102 wchar_t(UniChar::NF_shadow_box_middle),
1103 wchar_t(UniChar::NF_shadow_box_right),
1107 constexpr
wchar_t CHECKBOX_ON[]
1109 wchar_t(UniChar::NF_shadow_box_left),
1110 wchar_t(UniChar::NF_shadow_box_checked),
1111 wchar_t(UniChar::NF_shadow_box_right),
1115 constexpr
wchar_t RADIO_BUTTON[]
1117 wchar_t(UniChar::NF_radio_button1),
1118 wchar_t(UniChar::NF_radio_button2),
1119 wchar_t(UniChar::NF_radio_button3),
1123 constexpr
wchar_t CHECKED_RADIO_BUTTON[]
1125 wchar_t(UniChar::NF_radio_button1),
1126 wchar_t(UniChar::NF_radio_button2_checked),
1127 wchar_t(UniChar::NF_radio_button3),
Definition: fstatusbar.h:187
Definition: fcallback.h:85
Definition: class_template.cpp:25