42 #if !defined (USE_FINAL_H) && !defined (COMPILE_FINAL_CUT) 43 #error "Only <final/final.h> can be included directly." 48 #include "final/fwidget.h" 49 #include "final/menu/fmenuitem.h" 62 using FMenuItemList = std::vector<FMenuItem*>;
83 virtual auto getClassName()
const ->
FString;
84 auto getCount()
const -> std::size_t;
86 auto getSelectedItem()
const ->
FMenuItem*;
87 auto getItemList()
const ->
const FMenuItemList&;
90 void enableItem (
int);
91 void disableItem (
int);
93 void unsetSelectedItem();
96 auto isSelected (
int)
const -> bool;
97 auto hasSelectedItem()
const -> bool;
104 auto findFirstSelectedItem()
const -> FMenuItemList::const_iterator;
105 auto findLastSelectedItem ()
const -> FMenuItemList::const_reverse_iterator;
106 void selectFirstItem();
110 auto selectNextItem() -> bool;
111 auto selectPrevItem() -> bool;
112 virtual void selectItem_PostProcessing (
FMenuItem*) = 0;
117 FMenuItemList item_list{};
123 inline auto FMenuList::getClassName()
const ->
FString 124 {
return "FMenuList"; }
127 inline auto FMenuList::getCount()
const -> std::size_t
128 {
return item_list.size(); }
131 inline auto FMenuList::getItem (
int index)
const ->
FMenuItem*
132 {
return ( index > 0 ) ? item_list[uInt(index - 1)] :
nullptr; }
135 inline auto FMenuList::getSelectedItem()
const ->
FMenuItem*
136 {
return selected_item; }
139 inline auto FMenuList::getItemList()
const ->
const FMenuItemList&
140 {
return item_list; }
143 inline void FMenuList::enableItem (
int index)
144 { item_list[uInt(index - 1)]->setEnable(); }
147 inline void FMenuList::disableItem (
int index)
148 { item_list[uInt(index - 1)]->unsetEnable(); }
151 inline void FMenuList::setSelectedItem (
FMenuItem* menuitem)
152 { selected_item = menuitem; }
155 inline void FMenuList::unsetSelectedItem()
156 { selected_item =
nullptr; }
159 inline auto FMenuList::isSelected(
int index)
const ->
bool 160 {
return ( index > 0 ) ? item_list[uInt(index - 1)]->isSelected() :
false; }
163 inline auto FMenuList::hasSelectedItem()
const ->
bool 164 {
return selected_item; }
168 #endif // FMENULIST_H
Definition: class_template.cpp:25