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

Go to the source code of this file.

Classes

struct  wlmtk_menu_style_t
 
struct  wlmtk_menu_events_t
 

Typedefs

typedef struct _wlmtk_menu_t wlmtk_menu_t
 

Enumerations

enum  wlmtk_menu_mode { WLMTK_MENU_MODE_NORMAL , WLMTK_MENU_MODE_RIGHTCLICK }
 

Functions

wlmtk_menu_twlmtk_menu_create (const wlmtk_menu_style_t *style_ptr)
 
void wlmtk_menu_destroy (wlmtk_menu_t *menu_ptr)
 
wlmtk_element_twlmtk_menu_element (wlmtk_menu_t *menu_ptr)
 
wlmtk_pane_twlmtk_menu_pane (wlmtk_menu_t *menu_ptr)
 
wlmtk_menu_events_twlmtk_menu_events (wlmtk_menu_t *menu_ptr)
 
void wlmtk_menu_set_open (wlmtk_menu_t *menu_ptr, bool opened)
 
bool wlmtk_menu_is_open (wlmtk_menu_t *menu_ptr)
 
void wlmtk_menu_set_mode (wlmtk_menu_t *menu_ptr, enum wlmtk_menu_mode mode)
 
enum wlmtk_menu_mode wlmtk_menu_get_mode (wlmtk_menu_t *menu_ptr)
 
void wlmtk_menu_add_item (wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
 
void wlmtk_menu_remove_item (wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
 
void wlmtk_menu_set_parent_item (wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
 
wlmtk_menu_item_twlmtk_menu_get_parent_item (wlmtk_menu_t *menu_ptr)
 
void wlmtk_menu_request_item_highlight (wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
 
size_t wlmtk_menu_items_size (wlmtk_menu_t *menu_ptr)
 
wlmtk_menu_item_twlmtk_menu_item_at (wlmtk_menu_t *menu_ptr, size_t i)
 

Variables

const bs_test_case_t wlmtk_menu_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_t

typedef struct _wlmtk_menu_t wlmtk_menu_t

Forward declaration: Menu handle.

Enumeration Type Documentation

◆ wlmtk_menu_mode

Modes of the menu.

Enumerator
WLMTK_MENU_MODE_NORMAL 

Normal (window) mode of a menu: Left button click triggers items.

WLMTK_MENU_MODE_RIGHTCLICK 

Right-click mode of menu: Menu is invoked while right button is pressed. Releasing the right button triggers items.

Function Documentation

◆ wlmtk_menu_add_item()

void wlmtk_menu_add_item ( wlmtk_menu_t menu_ptr,
wlmtk_menu_item_t menu_item_ptr 
)

Adds a menu item to the menu.

Parameters
menu_ptr
menu_item_ptr

◆ wlmtk_menu_create()

wlmtk_menu_t * wlmtk_menu_create ( const wlmtk_menu_style_t style_ptr)

Creates a menu.

Parameters
style_ptr
Returns
Pointer to the menu state or NULL on error.

◆ wlmtk_menu_destroy()

void wlmtk_menu_destroy ( wlmtk_menu_t menu_ptr)

Destroys the menu.

Parameters
menu_ptr

◆ wlmtk_menu_element()

wlmtk_element_t * wlmtk_menu_element ( wlmtk_menu_t menu_ptr)
Returns
pointer to the menu's wlmtk_element_t superclass.

◆ wlmtk_menu_events()

wlmtk_menu_events_t * wlmtk_menu_events ( wlmtk_menu_t menu_ptr)
Returns
a pointer to wlmtk_menu_t::events.

◆ wlmtk_menu_get_mode()

enum wlmtk_menu_mode wlmtk_menu_get_mode ( wlmtk_menu_t menu_ptr)
Returns
mode of the menu.
See also
wlmtk_menu_set_mode.

◆ wlmtk_menu_get_parent_item()

wlmtk_menu_item_t * wlmtk_menu_get_parent_item ( wlmtk_menu_t menu_ptr)
Returns
the parent menu item, if this is a submenu. NULL otherwise.

◆ wlmtk_menu_is_open()

bool wlmtk_menu_is_open ( wlmtk_menu_t menu_ptr)
Returns
whether the menu is open, ie. visible.

◆ wlmtk_menu_item_at()

wlmtk_menu_item_t * wlmtk_menu_item_at ( wlmtk_menu_t menu_ptr,
size_t  i 
)
Parameters
menu_ptr
i
Returns
the i-th element of wlmtk_menu_t::items, or NULL if i is out of bounds.

◆ wlmtk_menu_items_size()

size_t wlmtk_menu_items_size ( wlmtk_menu_t menu_ptr)
Parameters
menu_ptr
Returns
the size of wlmtk_menu_t::items.

◆ wlmtk_menu_pane()

wlmtk_pane_t * wlmtk_menu_pane ( wlmtk_menu_t menu_ptr)
Returns
pointer to the menu's wlmtk_pane_t superclass.

◆ wlmtk_menu_remove_item()

void wlmtk_menu_remove_item ( wlmtk_menu_t menu_ptr,
wlmtk_menu_item_t menu_item_ptr 
)

Removes a menu item from the menu.

Parameters
menu_ptr
menu_item_ptr

◆ wlmtk_menu_request_item_highlight()

void wlmtk_menu_request_item_highlight ( wlmtk_menu_t menu_ptr,
wlmtk_menu_item_t menu_item_ptr 
)

Requests that menu_item_ptr be highlighted.

Parameters
menu_ptr
menu_item_ptr

◆ wlmtk_menu_set_mode()

void wlmtk_menu_set_mode ( wlmtk_menu_t menu_ptr,
enum wlmtk_menu_mode  mode 
)

Sets the mode of the menu.

Parameters
menu_ptr
mode

◆ wlmtk_menu_set_open()

void wlmtk_menu_set_open ( wlmtk_menu_t menu_ptr,
bool  opened 
)

Opens the menu: Makes it visible or invisible, and resets state if needed.

Parameters
menu_ptr
opened

◆ wlmtk_menu_set_parent_item()

void wlmtk_menu_set_parent_item ( wlmtk_menu_t menu_ptr,
wlmtk_menu_item_t menu_item_ptr 
)
protected

Registers menu_item_ptr as this submenu's parent item.

Must be called only from wlmtk_menu_item_set_submenu.

Parameters
menu_ptr
menu_item_ptr

Variable Documentation

◆ wlmtk_menu_test_cases

const bs_test_case_t wlmtk_menu_test_cases[]
extern

Unit test cases.