wlmaker
Loading...
Searching...
No Matches
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.