wlmaker
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions | Variables
menu_item.h File Reference
#include <libbase/libbase.h>
#include <stdbool.h>
#include <wayland-server-core.h>
#include "element.h"
#include "style.h"
#include "menu.h"
Include dependency graph for menu_item.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  wlmtk_menu_item_events_t
 

Typedefs

typedef struct _wlmtk_menu_item_t wlmtk_menu_item_t
 
typedef struct _wlmtk_menu_item_vmt_t wlmtk_menu_item_vmt_t
 

Enumerations

enum  wlmtk_menu_item_state_t { WLMTK_MENU_ITEM_ENABLED , WLMTK_MENU_ITEM_HIGHLIGHTED , WLMTK_MENU_ITEM_DISABLED }
 

Functions

wlmtk_menu_item_twlmtk_menu_item_create (const wlmtk_menu_item_style_t *style_ptr)
 
void wlmtk_menu_item_destroy (wlmtk_menu_item_t *menu_item_ptr)
 
wlmtk_menu_item_events_twlmtk_menu_item_events (wlmtk_menu_item_t *menu_item_ptr)
 
void wlmtk_menu_item_set_parent_menu (wlmtk_menu_item_t *menu_item_ptr, wlmtk_menu_t *menu_ptr)
 
void wlmtk_menu_item_set_submenu (wlmtk_menu_item_t *menu_item_ptr, wlmtk_menu_t *submenu_ptr)
 
wlmtk_menu_twlmtk_menu_item_get_submenu (wlmtk_menu_item_t *menu_item_ptr)
 
void wlmtk_menu_item_set_mode (wlmtk_menu_item_t *menu_item_ptr, enum wlmtk_menu_mode mode)
 
enum wlmtk_menu_mode wlmtk_menu_item_get_mode (wlmtk_menu_item_t *menu_item_ptr)
 
wlmtk_menu_item_state_t wlmtk_menu_item_get_state (wlmtk_menu_item_t *menu_item_ptr)
 
bool wlmtk_menu_item_set_text (wlmtk_menu_item_t *menu_item_ptr, const char *text_ptr)
 
void wlmtk_menu_item_set_enabled (wlmtk_menu_item_t *menu_item_ptr, bool enabled)
 
bool wlmtk_menu_item_set_highlighted (wlmtk_menu_item_t *menu_item_ptr, bool highlighted)
 
void wlmtk_menu_item_trigger (wlmtk_menu_item_t *menu_item_ptr)
 
bs_dllist_node_t * wlmtk_dlnode_from_menu_item (wlmtk_menu_item_t *menu_item_ptr)
 
wlmtk_menu_item_twlmtk_menu_item_from_dlnode (bs_dllist_node_t *dlnode_ptr)
 
wlmtk_element_twlmtk_menu_item_element (wlmtk_menu_item_t *menu_item_ptr)
 

Variables

const bs_test_case_t wlmtk_menu_item_test_cases []
 

Detailed Description

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Typedef Documentation

◆ wlmtk_menu_item_t

Forward declaration: State of the menu item.

◆ wlmtk_menu_item_vmt_t

typedef struct _wlmtk_menu_item_vmt_t wlmtk_menu_item_vmt_t

Forward declaration: Virtual method table of the menu item.

Enumeration Type Documentation

◆ wlmtk_menu_item_state_t

States a menu item can be in.

Function Documentation

◆ wlmtk_dlnode_from_menu_item()

bs_dllist_node_t * wlmtk_dlnode_from_menu_item ( wlmtk_menu_item_t menu_item_ptr)

Returns pointer to wlmtk_menu_item_t::dlnode.

◆ wlmtk_menu_item_create()

wlmtk_menu_item_t * wlmtk_menu_item_create ( const wlmtk_menu_item_style_t style_ptr)

Creates a menu item.

Note: Menu items are created as 'visible' elements.

Parameters
style_ptr
Returns
Pointer to the menu item state, or NULL on failure.

◆ wlmtk_menu_item_destroy()

void wlmtk_menu_item_destroy ( wlmtk_menu_item_t menu_item_ptr)

Destroys the menu item.

Parameters
menu_item_ptr

◆ wlmtk_menu_item_element()

wlmtk_element_t * wlmtk_menu_item_element ( wlmtk_menu_item_t menu_item_ptr)

Returns a pointer to the superclass wlmtk_element_t.

◆ wlmtk_menu_item_events()

wlmtk_menu_item_events_t * wlmtk_menu_item_events ( wlmtk_menu_item_t menu_item_ptr)

Returns pointer to the menu item's wlmtk_menu_item_t::events.

◆ wlmtk_menu_item_from_dlnode()

wlmtk_menu_item_t * wlmtk_menu_item_from_dlnode ( bs_dllist_node_t *  dlnode_ptr)

Returns the base wlmtk_menu_item_t from dlnode_ptr.

◆ wlmtk_menu_item_get_mode()

enum wlmtk_menu_mode wlmtk_menu_item_get_mode ( wlmtk_menu_item_t menu_item_ptr)
Returns
the mode of this item.

◆ wlmtk_menu_item_get_state()

wlmtk_menu_item_state_t wlmtk_menu_item_get_state ( wlmtk_menu_item_t menu_item_ptr)
Returns
The state of the item, wlmtk_menu_item_t::state.

◆ wlmtk_menu_item_get_submenu()

wlmtk_menu_t * wlmtk_menu_item_get_submenu ( wlmtk_menu_item_t menu_item_ptr)

Returns the submenu for this menu item.

Parameters
menu_item_ptr
Returns
the submenu of the item, or NULL.

◆ wlmtk_menu_item_set_enabled()

void wlmtk_menu_item_set_enabled ( wlmtk_menu_item_t menu_item_ptr,
bool  enabled 
)

Sets whether the menu item is enabled or disabled.

Parameters
menu_item_ptr
enabled

◆ wlmtk_menu_item_set_highlighted()

bool wlmtk_menu_item_set_highlighted ( wlmtk_menu_item_t menu_item_ptr,
bool  highlighted 
)

Sets the menu item as highlighted.

Parameters
menu_item_ptr
highlighted
Returns
false if the menu was not enabled, ie. could not be highlighted.

◆ wlmtk_menu_item_set_mode()

void wlmtk_menu_item_set_mode ( wlmtk_menu_item_t menu_item_ptr,
enum wlmtk_menu_mode  mode 
)

Sets the menu's mode for this item.

Parameters
menu_item_ptr
mode

◆ wlmtk_menu_item_set_parent_menu()

void wlmtk_menu_item_set_parent_menu ( wlmtk_menu_item_t menu_item_ptr,
wlmtk_menu_t menu_ptr 
)

Sets the menu this item belongs to.

Private: Should only be called by wlmtk_menu_add_item.

Parameters
menu_item_ptr
menu_ptrMay be NULL, to detach from menu.

◆ wlmtk_menu_item_set_submenu()

void wlmtk_menu_item_set_submenu ( wlmtk_menu_item_t menu_item_ptr,
wlmtk_menu_t submenu_ptr 
)

Sets the submenu for this menu item.

Parameters
menu_item_ptr
submenu_ptrThe submenu to set for the item. The item will take ownership of submenu_ptr, and destroy it when the item ist destroyed. Unless the submenu is detached again, by calling with a NULL argument.

◆ wlmtk_menu_item_set_text()

bool wlmtk_menu_item_set_text ( wlmtk_menu_item_t menu_item_ptr,
const char *  text_ptr 
)

Sets or updates the text for the menu item.

Parameters
menu_item_ptr
text_ptr

◆ wlmtk_menu_item_trigger()

void wlmtk_menu_item_trigger ( wlmtk_menu_item_t menu_item_ptr)

Triggers the menu item's action.

Parameters
menu_item_ptr

Variable Documentation

◆ wlmtk_menu_item_test_cases

const bs_test_case_t wlmtk_menu_item_test_cases[]
extern

Unit test cases.