![]() |
Home2L - C/C++ API v1.4-2-g83f4c (2025-08-23)
Smart Tools for a Private Home
|
Menu widget.
Definition at line 557 of file ui_widgets.H.
#include "ui_widgets.H"
Public Member Functions | |
Setup ... | |
Setting menu entries ... | |
void | SetItems (const char *_itemStr) |
Set a list of items separated by '|'. | |
Running (see CModalWidget) ... | |
virtual void | Start (CScreen *_screen) |
Just start the modal widget. | |
Status... | |
The selected Menu entry is obtained by CModalWidget::GetStatus(). If the status is < 0, the menu has been canceled. The following method(s) provide additional information. | |
bool | GetStatusLongPush () |
Return whether the push was a long push. | |
Misc. ... | |
Callbacks... | |
virtual void | Render (SDL_Renderer *ren) |
Render this widget. | |
virtual bool | HandleEvent (SDL_Event *ev) |
Handle wiping/scrolling events, if virtual area is wider (higher) than physical area. | |
![]() | |
void | SetMode (EListboxMode _mode, int _itemHeight, int _itemGap=1) |
'itemHeight' == 0 indicates variable-height items (Note: presently much worse performance than fixed-height); implicitly deletes all items. | |
void | SetFormat (TTF_Font *_font, int _hAlign=-1, TColor colGrid=BLACK, TColor _colLabel=WHITE, TColor _colBack=DARK_DARK_GREY, TColor _colLabelSelected=WHITE, TColor _colBackSelected=GREY, TColor _colLabelSpecial=WHITE, TColor _colBackSpecial=DARK_GREY) |
Except 'colGrid', all parameters set here are only read in 'RenderItem' & can be ommited (or re-interpreted) if a custom render function is defined. 'colGrid' is the general background color which can also be set via 'CCanvas::SetColors'. | |
int | GetItemLabelWidth (int idx) |
Retrieve the label (net) width of an item (e.g. to optimize geometry). | |
SDL_Rect | GetItemRect (int idx) |
Get the area of an item. | |
void | SelectItem (int idx, bool _isSelected=true) |
(De-)Select item (for 'lmSelectSingle', 'lmSelectAny') | |
void | SelectAll (bool _isSelected=true) |
Select all items (for 'lmSelectAny') | |
void | SelectNone () |
Deselect all items (for 'lmSelectSingle', 'lmSelectAny') | |
bool | MouseDown () |
Determine whether the listbox is currently dragged by the mouse. In this case, calling a Select...() method may interfere with the user interaction and should be avoided. | |
void | ChangedItems (int idx, int num=1) |
Must be called if items changed and SetItem() was not called. | |
![]() | |
void | SetDefaults () |
Set default colors and scrollbar appearance. | |
void | SetVirtArea (SDL_Rect r) |
Set the virtual area in screen coordinates; ('virtArea' == 'area' represents no displacement); The areas of all subwidgets are relative to the virtual area. | |
void | LimitVirtArea (SDL_Rect *r=NULL) |
Move virtual area (or 'r') so that the visible area is completely filled. | |
void | ScrollTo (SDL_Rect r, int hAlign=0, int vAlign=-1) |
Scroll such that 'r' is aligned according to '[vh]Align' (-1 = left/up, 0 = center, 1 = right/down). | |
void | ScrollIn (SDL_Rect r) |
Scroll just enough to get 'r' fully visible. | |
![]() | |
void | SetSurface (SDL_Surface *_surface) |
Set the static surface to display. The caller stays owner of surface, must not delete it as long as it is set here. The surface dimensions must match 'area'. | |
virtual SDL_Surface * | GetSurface () |
Get an up-to-date surface or 'NULL' if none is available. | |
void | GetRenderArea (SDL_Rect *ra) |
Transpose 'area' to the current screen coordinates to be passed to all SDL rendering functions. | |
virtual SDL_Texture * | GetTexture () |
Return an up-to-date texture. | |
void | SetTextureBlendMode (SDL_BlendMode _sdlBlendMode) |
Set the blend mode for the texture created by the default implementation of GetTexture(). The default is SDL_BLENDMODE_NONE. | |
void | ClearTexture () |
Clear the internally cached texture object to save memory. | |
![]() | |
int | Run (CScreen *_screen) |
Run the widget until it is cancelled or a status >= 0 is set; return status. | |
bool | IsRunning () |
Must be invoked regularly (in each UI iteration), if Run() is not used. | |
virtual void | Stop () |
Remove widget from screen (e.g. useful for inactivity timeout). | |
int | GetStatus () |
Get status: -2: running, -1: cancelled (e.g. by touching outside), >= 0: success, user-defined code set by 'SetStatus'. | |
void | SetStatus (int _status) |
Set a status code. | |
void | SetNoCancelArea (SDL_Rect _rNoCancel) |
Set the no-cancel area. | |
Additional Inherited Members | |
![]() | |
virtual SDL_Surface * | RenderItem (CListboxItem *item, int idx, SDL_Surface *surf) |
Render a list box item to an SDL surface and return it. | |
![]() | |
void | ChangedSurface () |
Mark (only) the surface as changed to trigger a redrawing at next occasion. | |
void | Changed () |
Anything may have changed: Trigger a redrawing at next occasion. | |
|
virtual |
Render this widget.
The default implementation uses the 'GetTexture()' method above. By overriding this method it is possible to define widgets with a custom SDL rendering procedure, which may be more efficient than preparing a single texture containing the complete widget.
It is allowed to pass 'ren == NULL', in which case all textures and internal data structures are (re-)calculated, but nothing is actually rendered.
Reimplemented from CListbox.