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()
const ->
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 setMergingBorder (Side,
bool =
true);
256 void unsetMergingBorder (Side);
257 void setMergingBorder (Side,
int,
bool =
true);
258 void unsetMergingBorder (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();
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 isChildPrintRegion()
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 hideRegion (
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 MergingBorderMask
386 MergingBorderMask() =
default;
387 ~MergingBorderMask() =
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 adjustSizeWithinRegion (
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 MergingBorderMask merging_border_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 dont_raise_window;
521 static bool init_terminal;
522 static bool init_desktop;
527 friend void detectTerminalSize();
528 friend void drawShadow (
FWidget*);
529 friend void drawTransparentShadow (
FWidget*);
530 friend void drawGenericBox (
FWidget*,
const FRect&,
const std::array<wchar_t, 8>&);
531 friend void drawGenericBlockShadow (
FWidget*,
const std::array<FChar, 4>&);
532 friend void drawVerticalFlatBorder (
FWidget*);
533 friend void drawHorizontalFlatBorder (
FWidget*);
534 friend void clearVerticalFlatBorder (
FWidget*);
535 friend void clearHorizontalFlatBorder (
FWidget*);
541 inline auto FWidget::getClassName()
const ->
FString 542 {
return "FWidget"; }
545 inline auto FWidget::getMainWidget() ->
FWidget*&
546 {
return main_widget; }
549 inline auto FWidget::getActiveWindow() ->
FWidget*&
550 {
return active_window; }
553 inline auto FWidget::getFocusWidget() ->
FWidget*&
554 {
return focus_widget; }
557 inline auto FWidget::getClickedWidget() ->
FWidget*&
558 {
return clicked_widget; }
561 inline auto FWidget::getOpenMenu() ->
FWidget*&
562 {
return open_menu; }
565 inline auto FWidget::getMoveResizeWidget() ->
FWidget*&
566 {
return move_resize_widget; }
569 inline auto FWidget::getMenuBar() ->
FMenuBar*
573 inline auto FWidget::getStatusBar() ->
FStatusBar*
574 {
return status_bar; }
577 inline auto FWidget::getAcceleratorList()
const & ->
const FAcceleratorList&
578 {
return accelerator_list; }
581 inline auto FWidget::setAcceleratorList() & -> FAcceleratorList&
582 {
return accelerator_list; }
585 inline auto FWidget::getStatusBarMessage()
const ->
FString 586 {
return status_bar_message; }
589 inline auto FWidget::getForegroundColor()
const noexcept -> FColor
590 {
return foreground_color; }
593 inline auto FWidget::getBackgroundColor()
const noexcept -> FColor
594 {
return background_color; }
597 inline auto FWidget::getX()
const ->
int 598 {
return adjust_wsize.getX(); }
601 inline auto FWidget::getY()
const ->
int 602 {
return adjust_wsize.getY(); }
605 inline auto FWidget::getPos()
const ->
FPoint 607 const FPoint& pos = adjust_wsize.getPos();
612 inline auto FWidget::getTermX()
const ->
int 613 {
return woffset.getX1() + adjust_wsize.getX(); }
616 inline auto FWidget::getTermY()
const ->
int 617 {
return woffset.getY1() + adjust_wsize.getY(); }
620 inline auto FWidget::getTermPos()
const ->
FPoint 621 {
return {getTermX(), getTermY()}; }
624 inline auto FWidget::getWidth()
const -> std::size_t
625 {
return adjust_wsize.getWidth(); }
628 inline auto FWidget::getHeight()
const -> std::size_t
629 {
return adjust_wsize.getHeight(); }
632 inline auto FWidget::getSize()
const ->
FSize 634 const FSize& size = adjust_wsize.getSize();
639 inline auto FWidget::getTopPadding()
const noexcept ->
int 640 {
return padding.top; }
643 inline auto FWidget::getLeftPadding()
const noexcept ->
int 644 {
return padding.left; }
647 inline auto FWidget::getBottomPadding()
const noexcept ->
int 648 {
return padding.bottom; }
651 inline auto FWidget::getRightPadding()
const noexcept ->
int 652 {
return padding.right; }
655 inline auto FWidget::getClientWidth()
const -> std::size_t
656 {
return wclient_offset.getWidth(); }
659 inline auto FWidget::getClientHeight()
const -> std::size_t
660 {
return wclient_offset.getHeight(); }
663 inline auto FWidget::getClientSize()
const ->
FSize 665 const FSize& size = wclient_offset.getSize();
670 inline auto FWidget::getMaxWidth()
const -> std::size_t
671 {
return woffset.getWidth(); }
674 inline auto FWidget::getMaxHeight()
const -> std::size_t
675 {
return woffset.getHeight(); }
678 inline auto FWidget::getShadow()
const & ->
const FSize&
682 inline auto FWidget::getGeometry()
const & ->
const FRect&
683 {
return adjust_wsize; }
686 inline auto FWidget::getGeometryWithShadow() & ->
const FRect&
688 adjust_wsize_shadow.setCoordinates
690 adjust_wsize.x1_ref(),
691 adjust_wsize.y1_ref(),
692 adjust_wsize.x2_ref() + int(wshadow.width_ref()),
693 adjust_wsize.y2_ref() + int(wshadow.height_ref())
696 return adjust_wsize_shadow;
700 inline auto FWidget::getTermGeometry() & ->
const FRect&
702 adjust_wsize_term.setCoordinates
704 adjust_wsize.x1_ref() + woffset.x1_ref(),
705 adjust_wsize.y1_ref() + woffset.y1_ref(),
706 adjust_wsize.x2_ref() + woffset.x1_ref(),
707 adjust_wsize.y2_ref() + woffset.y1_ref()
710 return adjust_wsize_term;
714 inline auto FWidget::getTermGeometryWithShadow() & ->
const FRect&
716 adjust_wsize_term_shadow.setCoordinates
718 adjust_wsize.x1_ref() + woffset.x1_ref(),
719 adjust_wsize.y1_ref() + woffset.y1_ref(),
720 adjust_wsize.x2_ref() + woffset.x1_ref() + int(wshadow.width_ref()),
721 adjust_wsize.y2_ref() + woffset.y1_ref() + int(wshadow.height_ref())
724 return adjust_wsize_term_shadow;
728 inline auto FWidget::getDesktopWidth()
const -> std::size_t
729 {
return FVTerm::getFOutput()->getColumnNumber(); }
732 inline auto FWidget::getDesktopHeight()
const -> std::size_t
733 {
return FVTerm::getFOutput()->getLineNumber(); }
736 inline auto FWidget::getFlags()
const & ->
const FWidgetFlags&
740 inline auto FWidget::getCursorPos()
const ->
FPoint 741 {
return widget_cursor_position; }
744 inline void FWidget::setActiveWindow (
FWidget* obj)
745 { active_window = obj; }
748 inline void FWidget::setFocusWidget (
FWidget* obj)
749 { focus_widget = obj; }
752 inline void FWidget::setClickedWidget (
FWidget* obj)
753 { clicked_widget = obj; }
756 inline void FWidget::setOpenMenu (
FWidget* obj)
760 template <
typename ClassT>
761 inline void FWidget::setColorTheme()
763 getColorTheme() = std::make_shared<ClassT>();
767 inline void FWidget::setMoveSizeWidget (
FWidget* obj)
768 { move_resize_widget = obj; }
771 inline void FWidget::setStatusBarMessage (
const FString& msg)
772 { status_bar_message = msg; }
775 inline void FWidget::unsetVisible()
776 { setVisible(
false); }
779 inline void FWidget::unsetEnable()
780 { setEnable(
false); }
783 inline void FWidget::setDisable()
784 { setEnable(
false); }
787 inline void FWidget::setVisibleCursor (
bool enable)
788 { flags.visibility.visible_cursor = enable; }
791 inline void FWidget::unsetVisibleCursor()
792 { setVisibleCursor(
false); }
795 inline auto FWidget::unsetFocus() ->
bool 796 {
return setFocus(
false, FocusTypes::DefiniteWidget); }
799 inline void FWidget::setFocusable (
bool enable)
800 { flags.focus.focusable = enable; }
803 inline void FWidget::unsetFocusable()
804 { flags.focus.focusable =
false; }
807 inline auto FWidget::ignorePadding (
bool enable) ->
bool 808 {
return (flags.feature.ignore_padding = enable); }
811 inline auto FWidget::acceptPadding() ->
bool 812 {
return (flags.feature.ignore_padding =
false); }
815 inline void FWidget::setForegroundColor (FColor color)
818 if ( color == FColor::Default || (color >> 8) == FColor::Black )
819 foreground_color = color;
823 inline void FWidget::setBackgroundColor (FColor color)
826 if ( color == FColor::Default || (color >> 8) == FColor::Black )
827 background_color = color;
838 inline void FWidget::setGeometry (
const FRect& box,
bool adjust)
840 setGeometry (box.getPos(), box.getSize(), adjust);
844 inline void FWidget::setShadowSize (
const FSize& size)
847 wshadow.setSize (size);
851 inline void FWidget::setMinimumWidth (std::size_t min_width)
852 { size_hints.setMinimum (
FSize(min_width, size_hints.min_height)); }
855 inline void FWidget::setMinimumHeight (std::size_t min_height)
856 { size_hints.setMinimum (
FSize(size_hints.min_width, min_height)); }
859 inline void FWidget::setMinimumSize (
const FSize& size)
862 size_hints.setMinimum (size);
866 inline void FWidget::setMaximumWidth (std::size_t max_width)
867 { size_hints.setMaximum (
FSize(max_width, size_hints.max_height)); }
870 inline void FWidget::setMaximumHeight (std::size_t max_height)
871 { size_hints.setMaximum (
FSize(size_hints.max_width, max_height)); }
874 inline void FWidget::setMaximumSize (
const FSize& size)
877 size_hints.setMaximum (size);
881 inline void FWidget::setFixedSize (
const FSize& size)
885 size_hints.setMinimum (size);
886 size_hints.setMaximum (size);
890 inline void FWidget::unsetCursorPos()
891 { setCursorPos ({-1, -1}); }
894 inline void FWidget::unsetMergingBorder (Side side)
895 { setMergingBorder(side,
false); }
898 inline void FWidget::unsetMergingBorder (Side side,
int pos)
899 { setMergingBorder(side, pos,
false); }
902 inline auto FWidget::isRootWidget()
const ->
bool 903 {
return (! hasParent()); }
906 inline auto FWidget::isVisible()
const ->
bool 907 {
return flags.visibility.visible; }
910 inline auto FWidget::isShown()
const ->
bool 911 {
return flags.visibility.shown; }
914 inline auto FWidget::isHidden()
const ->
bool 915 {
return flags.visibility.hidden; }
918 inline auto FWidget::isWindowWidget()
const ->
bool 919 {
return flags.type.window_widget; }
922 inline auto FWidget::isDialogWidget()
const ->
bool 923 {
return flags.type.dialog_widget; }
926 inline auto FWidget::isMenuWidget()
const ->
bool 927 {
return flags.type.menu_widget; }
930 inline auto FWidget::isEnabled()
const ->
bool 931 {
return flags.feature.active; }
934 inline auto FWidget::hasVisibleCursor()
const ->
bool 935 {
return flags.visibility.visible_cursor; }
938 inline auto FWidget::hasFocus()
const ->
bool 939 {
return flags.focus.focus; }
942 inline auto FWidget::acceptFocus()
const ->
bool 943 {
return flags.focus.focusable; }
946 inline auto FWidget::isPaddingIgnored()
const ->
bool 947 {
return flags.feature.ignore_padding; }
950 inline void FWidget::clearStatusBarMessage()
951 { status_bar_message.clear(); }
954 template <
typename... Args>
955 inline void FWidget::addCallback (
FString&& cb_signal, Args&&... args) & noexcept
957 callback_impl.addCallback (std::move(cb_signal), std::forward<Args>(args)...);
961 template <
typename... Args>
962 inline void FWidget::delCallback (Args&&... args) & noexcept
964 callback_impl.delCallback(std::forward<Args>(args)...);
968 inline void FWidget::emitCallback (
const FString& emit_signal)
const &
970 callback_impl.emitCallback(emit_signal);
974 inline void FWidget::addAccelerator (FKey key) &
975 { addAccelerator (key,
this); }
978 inline void FWidget::delAccelerator() &
979 { delAccelerator(
this); }
982 inline auto FWidget::termToWidgetPos (
const FPoint& tPos)
const ->
FPoint 984 return { tPos.getX() + 1 - woffset.getX1() - adjust_wsize.getX()
985 , tPos.getY() + 1 - woffset.getY1() - adjust_wsize.getY() };
989 inline void FWidget::print (
const FPoint& pos)
995 inline void FWidget::drawBorder()
997 finalcut::drawBorder (
this,
FRect(
FPoint{1, 1}, getSize()));
1001 inline auto FWidget::getModalDialogCounter() -> uInt
1002 {
return modal_dialog_counter; }
1005 inline auto FWidget::getDialogList() -> FWidgetList*&
1006 {
return dialog_list; }
1009 inline auto FWidget::getAlwaysOnTopList() -> FWidgetList*&
1010 {
return always_on_top_list; }
1013 inline auto FWidget::getWidgetCloseList() -> FWidgetList*&
1014 {
return close_widget_list; }
1017 inline auto FWidget::setModalDialogCounter() -> uInt&
1018 {
return modal_dialog_counter; }
1021 inline void FWidget::processDestroy()
const 1022 { emitCallback(
"destroy"); }
1027 constexpr
wchar_t NF_menu_button[]
1029 wchar_t(UniChar::NF_rev_menu_button1),
1030 wchar_t(UniChar::NF_rev_menu_button2),
1031 wchar_t(UniChar::NF_rev_menu_button3),
1035 constexpr
wchar_t NF_button_up[]
1037 wchar_t(UniChar::NF_rev_up_pointing_triangle1),
1038 wchar_t(UniChar::NF_rev_up_pointing_triangle2),
1042 constexpr
wchar_t NF_button_down[]
1044 wchar_t(UniChar::NF_rev_down_pointing_triangle1),
1045 wchar_t(UniChar::NF_rev_down_pointing_triangle2),
1049 constexpr
wchar_t NF_button_arrow_up[]
1051 wchar_t(UniChar::NF_rev_up_arrow1),
1052 wchar_t(UniChar::NF_rev_up_arrow2),
1056 constexpr
wchar_t NF_button_arrow_down[]
1058 wchar_t(UniChar::NF_rev_down_arrow1),
1059 wchar_t(UniChar::NF_rev_down_arrow2),
1063 constexpr
wchar_t NF_button_arrow_left[]
1065 wchar_t(UniChar::NF_rev_left_arrow1),
1066 wchar_t(UniChar::NF_rev_left_arrow2),
1070 constexpr
wchar_t NF_button_arrow_right[]
1072 wchar_t(UniChar::NF_rev_right_arrow1),
1073 wchar_t(UniChar::NF_rev_right_arrow2),
1077 constexpr
wchar_t NF_Drive[]
1079 wchar_t(UniChar::NF_shadow_box_left),
1080 wchar_t(UniChar::NF_shadow_box_middle),
1081 wchar_t(UniChar::NF_shadow_box_hdd),
1082 wchar_t(UniChar::NF_shadow_box_right),
1086 constexpr
wchar_t NF_CD_ROM[]
1088 wchar_t(UniChar::NF_shadow_box_left),
1089 wchar_t(UniChar::NF_shadow_box_middle),
1090 wchar_t(UniChar::NF_shadow_box_cd),
1091 wchar_t(UniChar::NF_shadow_box_right),
1095 constexpr
wchar_t NF_Net_Drive[]
1097 wchar_t(UniChar::NF_shadow_box_left),
1098 wchar_t(UniChar::NF_shadow_box_middle),
1099 wchar_t(UniChar::NF_shadow_box_net),
1100 wchar_t(UniChar::NF_shadow_box_right),
1104 constexpr
wchar_t CHECKBOX[]
1106 wchar_t(UniChar::NF_shadow_box_left),
1107 wchar_t(UniChar::NF_shadow_box_middle),
1108 wchar_t(UniChar::NF_shadow_box_right),
1112 constexpr
wchar_t CHECKBOX_ON[]
1114 wchar_t(UniChar::NF_shadow_box_left),
1115 wchar_t(UniChar::NF_shadow_box_checked),
1116 wchar_t(UniChar::NF_shadow_box_right),
1120 constexpr
wchar_t RADIO_BUTTON[]
1122 wchar_t(UniChar::NF_radio_button1),
1123 wchar_t(UniChar::NF_radio_button2),
1124 wchar_t(UniChar::NF_radio_button3),
1128 constexpr
wchar_t CHECKED_RADIO_BUTTON[]
1130 wchar_t(UniChar::NF_radio_button1),
1131 wchar_t(UniChar::NF_radio_button2_checked),
1132 wchar_t(UniChar::NF_radio_button3),
Definition: fstatusbar.h:187
Definition: fwidget_functions.cpp:928
Definition: fcallback.h:85
Definition: class_template.cpp:25
Definition: fwidget_functions.cpp:577