58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/**
 | 
						|
 * Copyright (c) 2021 Dominic Masters
 | 
						|
 * 
 | 
						|
 * This software is released under the MIT License.
 | 
						|
 * https://opensource.org/licenses/MIT
 | 
						|
 */
 | 
						|
 | 
						|
#pragma once
 | 
						|
#include <dawn/dawn.h>
 | 
						|
#include "menuv2.h"
 | 
						|
#include "grid.h"
 | 
						|
#include "label.h"
 | 
						|
#include "rectangle.h"
 | 
						|
 | 
						|
/** Callback to be notified from the menu when the menu items are selected. */
 | 
						|
void _textMenuOnSelect(menuv2_t *menu, uint8_t i);
 | 
						|
 | 
						|
/** Callback to lisen for resize events from the grid subsystem */
 | 
						|
void _textMenuOnResize(
 | 
						|
  void *user, uint8_t i,
 | 
						|
  float screenWidth, float screenHeight,
 | 
						|
  float x, float y,
 | 
						|
  float width, float height
 | 
						|
);
 | 
						|
 | 
						|
/**
 | 
						|
 * Initialize a text menu item.
 | 
						|
 * 
 | 
						|
 * @param menu Menu to initialize.
 | 
						|
 * @param font Font to use during initialization.
 | 
						|
 */
 | 
						|
void textMenuInit(textmenu_t *menu, font_t *font);
 | 
						|
 | 
						|
/**
 | 
						|
 * Add text to a menu list.
 | 
						|
 * 
 | 
						|
 * @param menu Menu to add to.
 | 
						|
 * @param item Text to add (must be a constant value).
 | 
						|
 * @return The grid subsystem item.
 | 
						|
 */
 | 
						|
gridchild_t * textMenuListAdd(textmenu_t *menu, char *item);
 | 
						|
 | 
						|
/**
 | 
						|
 * Render a text menu list.
 | 
						|
 * 
 | 
						|
 * @param menu Menu to render.
 | 
						|
 * @param shader Shader to use.
 | 
						|
 * @param x X position of the menu.
 | 
						|
 * @param y Y position of the menu.
 | 
						|
 */
 | 
						|
void textMenuListRender(textmenu_t *menu, shader_t *shader, float x, float y);
 | 
						|
 | 
						|
/**
 | 
						|
 * Dispose/Cleanup a text menu.
 | 
						|
 * 
 | 
						|
 * @param menu Text menu to dispose.
 | 
						|
 */
 | 
						|
void textMenuDispse(textmenu_t *menu); |