Difference between revisions of "Modules/game menu"

From MSX Game Library

< Modules

(Created page with "The {{MOD|game_menu}} module automatically manages menus based on tables representing each page and its interactions. == Dependencies == * {{MOD|input}} * {{MOD|print}} == S...")
 
(Settings)
Line 6: Line 6:
  
 
== Settings ==
 
== Settings ==
 +
#define MENU_USE_DEFAULT_CALLBACK TRUE // Use default input/print callback
 +
#define MENU_SCREEN_WIDTH MENU_VARIABLE // Screen width
 +
#define MENU_FRAME_X 0 // Frame position X
 +
#define MENU_FRAME_Y 6 // Frame position Y
 +
#define MENU_FRAME_WIDTH 32 // Frame width
 +
#define MENU_FRAME_HEIGHT 8 // Frame height
 +
#define MENU_CHAR_CLEAR '\0' // Clear character
 +
#define MENU_CHAR_CURSOR '@' // Cursor character
 +
#define MENU_CHAR_TRUE 'O' // True character
 +
#define MENU_CHAR_FALSE 'X' // False character
 +
#define MENU_CHAR_LEFT '<' // Left edit character
 +
#define MENU_CHAR_RIGHT '>' // Right edit character
 +
#define MENU_TITLE_X 4 // Title position X
 +
#define MENU_TITLE_Y 6 // Title position Y
 +
#define MENU_ITEM_X 6 // Item label X position
 +
#define MENU_ITEM_Y 8 // Item label X position
 +
#define MENU_ITEM_X_GOTO 6 // Goto type item label X position
 +
#define MENU_ITEM_ALIGN MENU_ITEM_ALIGN_LEFT // Item label alignment
 +
#define MENU_ITEM_ALIGN_GOTO MENU_ITEM_ALIGN_LEFT // Goto type item label alignment
 +
#define MENU_VALUE_X 14 // Item value X position
 +
// Type of cursor
 +
// - MENU_CURSOR_MODE_NONE No cursor
 +
// - MENU_CURSOR_MODE_CHAR Character cursor
 +
// - MENU_CURSOR_MODE_SPRT Sprite cursor
 +
#define MENU_CURSOR_MODE MENU_CURSOR_MODE_CHAR
 +
#define MENU_CURSOR_OFFSET (-2) // Cursor X position offset
  
 
== Usage ==
 
== Usage ==

Revision as of 23:26, 31 October 2023

The game_menu module automatically manages menus based on tables representing each page and its interactions.

Dependencies

Settings

#define MENU_USE_DEFAULT_CALLBACK	TRUE	// Use default input/print callback
#define MENU_SCREEN_WIDTH			MENU_VARIABLE		// Screen width
#define MENU_FRAME_X				0		// Frame position X
#define MENU_FRAME_Y				6		// Frame position Y
#define MENU_FRAME_WIDTH			32		// Frame width
#define MENU_FRAME_HEIGHT			8		// Frame height
#define MENU_CHAR_CLEAR				'\0'	// Clear character
#define MENU_CHAR_CURSOR			'@'		// Cursor character 
#define MENU_CHAR_TRUE				'O'		// True character
#define MENU_CHAR_FALSE				'X'		// False character
#define MENU_CHAR_LEFT				'<'		// Left edit character
#define MENU_CHAR_RIGHT				'>'		// Right edit character
#define MENU_TITLE_X				4		// Title position X
#define MENU_TITLE_Y				6		// Title position Y
#define MENU_ITEM_X					6		// Item label X position
#define MENU_ITEM_Y					8		// Item label X position
#define MENU_ITEM_X_GOTO			6		// Goto type item label X position
#define MENU_ITEM_ALIGN				MENU_ITEM_ALIGN_LEFT // Item label alignment
#define MENU_ITEM_ALIGN_GOTO		MENU_ITEM_ALIGN_LEFT // Goto type item label alignment
#define MENU_VALUE_X				14		// Item value X position
// Type of cursor
// - MENU_CURSOR_MODE_NONE			No cursor
// - MENU_CURSOR_MODE_CHAR			Character cursor
// - MENU_CURSOR_MODE_SPRT			Sprite cursor
#define MENU_CURSOR_MODE			MENU_CURSOR_MODE_CHAR
#define MENU_CURSOR_OFFSET			(-2)	// Cursor X position offset

Usage

Annexe

  • See also: Sample program s_menu

Documentation