Difference between revisions of "Modules/game menu"

From MSX Game Library

< Modules

(Settings)
(Settings)
Line 13: Line 13:
 
  #define MENU_FRAME_WIDTH 32 // Frame width
 
  #define MENU_FRAME_WIDTH 32 // Frame width
 
  #define MENU_FRAME_HEIGHT 8 // Frame height
 
  #define MENU_FRAME_HEIGHT 8 // Frame height
  #define MENU_CHAR_CLEAR '\0' // Clear character
+
  #define MENU_CHAR_CLEAR '\0' // Clear character
 
  #define MENU_CHAR_CURSOR '@' // Cursor character  
 
  #define MENU_CHAR_CURSOR '@' // Cursor character  
 
  #define MENU_CHAR_TRUE 'O' // True character
 
  #define MENU_CHAR_TRUE 'O' // True character
  #define MENU_CHAR_FALSE 'X' // False character
+
  #define MENU_CHAR_FALSE 'X' // False character
 
  #define MENU_CHAR_LEFT '<' // Left edit character
 
  #define MENU_CHAR_LEFT '<' // Left edit character
  #define MENU_CHAR_RIGHT '>' // Right edit character
+
  #define MENU_CHAR_RIGHT '>' // Right edit character
 
  #define MENU_TITLE_X 4 // Title position X
 
  #define MENU_TITLE_X 4 // Title position X
 
  #define MENU_TITLE_Y 6 // Title position Y
 
  #define MENU_TITLE_Y 6 // Title position Y
Line 24: Line 24:
 
  #define MENU_ITEM_Y 8 // 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_X_GOTO 6 // Goto type item label X position
  #define MENU_ITEM_ALIGN MENU_ITEM_ALIGN_LEFT // Item label alignment
+
  #define MENU_ITEM_ALIGN MENU_ITEM_ALIGN_LEFT // Item label alignment
 
  #define MENU_ITEM_ALIGN_GOTO ENU_ITEM_ALIGN_LEFT // Goto type item label alignment
 
  #define MENU_ITEM_ALIGN_GOTO ENU_ITEM_ALIGN_LEFT // Goto type item label alignment
 
  #define MENU_VALUE_X 14 // Item value X position
 
  #define MENU_VALUE_X 14 // Item value X position

Revision as of 23:31, 31 October 2023

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

Dependencies

Settings

Modules can be customized into the project's msxgl_config.h file to fullfill your needs:

#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		ENU_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