53 #if !defined (USE_FINAL_H) && !defined (COMPILE_FINAL_CUT) 54 #error "Only <final/final.h> can be included directly." 57 #include "final/menu/fmenulist.h" 58 #include "final/widget/fwindow.h" 75 using FWidget::addAccelerator;
84 auto getClassName()
const ->
FString override;
87 void resetColors()
override;
90 void adjustSize()
override;
100 void cb_itemDeactivated (
const FMenuItem*)
const;
106 std::size_t startpos;
107 std::size_t hotkeypos;
112 static constexpr
auto NOT_SET =
static_cast<std::size_t
>(-1);
115 auto isMenu (
const FMenuItem*)
const -> bool;
119 void calculateDimensions()
const;
120 void selectItem_PostProcessing (
FMenuItem*)
override;
122 void draw()
override;
124 void drawItem (
FMenuItem*, std::size_t&);
125 void setLineAttributes (
const FMenuItem*);
126 void setCursorToHotkeyPosition (
FMenuItem*, std::size_t)
const;
127 void drawMenuText (menuText&);
128 void drawEllipsis (
const menuText&, std::size_t);
129 void drawLeadingSpace (std::size_t&);
130 void drawTrailingSpace (std::size_t&);
131 void adjustItems()
const;
133 auto activateMenu (
const FMenuItem*) -> bool;
145 std::size_t screenWidth{80};
146 bool mouse_down{
false};
147 bool drop_down{
false};
148 bool focus_changed{
false};
158 inline auto FMenuBar::getClassName()
const ->
FString 159 {
return "FMenuBar"; }
162 inline auto FMenuBar::isMenu (
const FMenuItem* mi)
const ->
bool 163 {
return mi->hasMenu(); }
Definition: class_template.cpp:25