Internal: Moved tooltips inside Buttons_pool, and Buttons_pool from globals.h to to windows.c/h for easier modification

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1908 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2012-02-27 01:36:40 +00:00
parent d38f5ee981
commit 2343dcb54c
5 changed files with 501 additions and 500 deletions

View File

@ -66,68 +66,6 @@ Func_effect Effect_function_before_cancel;
///This table holds pointers to the saved window backgrounds. We can have up to 8 windows open at a time. ///This table holds pointers to the saved window backgrounds. We can have up to 8 windows open at a time.
byte* Window_background[8]; byte* Window_background[8];
///Table of tooltip texts for menu buttons
char * Menu_tooltip[NB_BUTTONS]=
{
"Hide toolbars / Select ",
"Layers manager ",
"Get/Set transparent col.",
"Merge layer ",
"Add layer ",
"Drop layer ",
"Raise layer ",
"Lower layer ",
"Set frame time ",
"Go to first frame ",
"Go to previous frame ",
"Go to next frame ",
"Go to last frame ",
"Preview animation ",
"Layer select / toggle ",
"Paintbrush choice ",
"Adjust / Transform menu ",
"Freehand draw. / Toggle ",
"Splines / Toggle ",
"Lines / Toggle ",
"Spray / Menu ",
"Floodfill / Replace col.",
"Polylines / Polyforms ",
"Polyfill / Filled Pforms",
"Empty rectangles ",
"Filled rectangles ",
"Empty circles / ellipses",
"Filled circles / ellips.",
"Grad. rect / Grad. menu ",
"Grad. spheres / ellipses",
"Brush grab. / Restore ",
"Lasso / Restore brush ",
#ifdef __ENABLE_LUA__
"Brush effects / factory ",
#else
"Brush effects ",
#endif
"Drawing modes (effects) ",
"Text ",
"Magnify mode / Menu ",
"Pipette / Invert colors ",
"Screen size / Safe. res.",
"Go / Copy to other page ",
"Save as / Save ",
"Load / Re-load ",
"Settings / Skins ",
"Clear / with backcolor ",
"Help / Statistics ",
"Undo / Redo ",
"Kill current page ",
"Quit ",
"Palette editor / setup ",
"Scroll pal. bkwd / Fast ",
"Scroll pal. fwd / Fast ",
"Color #" ,
};
///Save a screen block (usually before erasing it with a new window or a dropdown menu) ///Save a screen block (usually before erasing it with a new window or a dropdown menu)
void Save_background(byte **buffer, int x_pos, int y_pos, int width, int height) void Save_background(byte **buffer, int x_pos, int y_pos, int width, int height)
{ {
@ -631,7 +569,7 @@ void Status_print_palette_color(byte color)
char str[25]; char str[25];
int i; int i;
strcpy(str,Menu_tooltip[BUTTON_CHOOSE_COL]); strcpy(str,Buttons_Pool[BUTTON_CHOOSE_COL].Tooltip);
sprintf(str+strlen(str),"%d (%d,%d,%d)",color,Main_palette[color].R,Main_palette[color].G,Main_palette[color].B); sprintf(str+strlen(str),"%d (%d,%d,%d)",color,Main_palette[color].R,Main_palette[color].G,Main_palette[color].B);
// Pad spaces // Pad spaces
for (i=strlen(str); i<24; i++) for (i=strlen(str); i<24; i++)
@ -1496,7 +1434,7 @@ void Main_handler(void)
Mouse_K = x; // Close_popup waits for end of click and resets Mouse_K... Mouse_K = x; // Close_popup waits for end of click and resets Mouse_K...
} }
Print_in_menu(Menu_tooltip[button_index],0); Print_in_menu(Buttons_Pool[button_index].Tooltip,0);
/*if (Gfx->Hover_effect && !Buttons_Pool[button_index].Pressed) /*if (Gfx->Hover_effect && !Buttons_Pool[button_index].Pressed)
Draw_menu_button(button_index, BUTTON_HIGHLIGHTED); Draw_menu_button(button_index, BUTTON_HIGHLIGHTED);
@ -2570,7 +2508,7 @@ void Get_color_behind_window(byte * color, byte * click)
Paintbrush_hidden=1; Paintbrush_hidden=1;
c=-1; // color pointée: au début aucune, comme ça on initialise tout c=-1; // color pointée: au début aucune, comme ça on initialise tout
if (Menu_is_visible_before_window) if (Menu_is_visible_before_window)
Print_in_menu(Menu_tooltip[BUTTON_CHOOSE_COL],0); Print_in_menu(Buttons_Pool[BUTTON_CHOOSE_COL].Tooltip,0);
Display_cursor(); Display_cursor();
@ -2600,9 +2538,9 @@ void Get_color_behind_window(byte * color, byte * click)
for (index=strlen(str); index<a; index++) for (index=strlen(str); index<a; index++)
str[index]=' '; str[index]=' ';
str[a]=0; str[a]=0;
Print_in_menu(str,strlen(Menu_tooltip[BUTTON_CHOOSE_COL])); Print_in_menu(str,strlen(Buttons_Pool[BUTTON_CHOOSE_COL].Tooltip));
Print_general((26+((d+strlen(Menu_tooltip[BUTTON_CHOOSE_COL]))<<3))*Menu_factor_X, Print_general((26+((d+strlen(Buttons_Pool[BUTTON_CHOOSE_COL].Tooltip))<<3))*Menu_factor_X,
Menu_status_Y," ",0,c); Menu_status_Y," ",0,c);
} }
} }

View File

@ -570,35 +570,6 @@ GFX2_GLOBAL T_Window Window_stack[8];
#define Window_draggable Window_stack[Windows_open-1].Draggable #define Window_draggable Window_stack[Windows_open-1].Draggable
/// Definition of the menu (toolbox)
GFX2_GLOBAL struct
{
// Button aspect
word X_offset; ///< Position relative to menu's left
word Y_offset; ///< Position relative to menu's top
word Width; ///< Button's active width
word Height; ///< Button's active heigth
byte Pressed; ///< Button is currently pressed
byte Shape; ///< Shape, listed in enum ::BUTTON_SHAPES
signed char Icon; ///< Which icon to display: Either the one from the toolbar (-1) or one of ::MENU_SPRITE
// Triggers on mouse/keyboard
Func_action Left_action; ///< Action triggered by a left mouseclick on the button
Func_action Right_action; ///< Action triggered by a right mouseclick on the button
word Left_shortcut[2]; ///< Keyboard shortcut for a left mouseclick
word Right_shortcut[2];///< Keyboard shortcut for a right mouseclick
byte Left_instant; ///< Will not wait for mouse release before triggering action
byte Right_instant; ///< Will not wait for mouse release before triggering action
// Data used when the button is unselected
Func_action Unselect_action; ///< Action triggered by unselecting the button
byte Family; ///< enum ::FAMILY_OF_BUTTONS.
} Buttons_Pool[NB_BUTTONS];
// -- Information about the different drawing modes (effects) // -- Information about the different drawing modes (effects)
/// Current effecting function. When no effect is selected this is ::No_effect() /// Current effecting function. When no effect is selected this is ::No_effect()

View File

@ -783,6 +783,7 @@ void Do_nothing(void)
// Initialiseur d'un bouton: // Initialiseur d'un bouton:
void Init_button(byte btn_number, void Init_button(byte btn_number,
const char* tooltip,
word x_offset, word y_offset, word x_offset, word y_offset,
word width, word height, word width, word height,
byte shape, byte shape,
@ -800,6 +801,7 @@ void Init_button(byte btn_number,
Buttons_Pool[btn_number].Pressed =0; Buttons_Pool[btn_number].Pressed =0;
Buttons_Pool[btn_number].Icon =-1; Buttons_Pool[btn_number].Icon =-1;
Buttons_Pool[btn_number].Shape =shape; Buttons_Pool[btn_number].Shape =shape;
Buttons_Pool[btn_number].Tooltip =tooltip;
Buttons_Pool[btn_number].Left_action =left_action; Buttons_Pool[btn_number].Left_action =left_action;
Buttons_Pool[btn_number].Right_action =right_action; Buttons_Pool[btn_number].Right_action =right_action;
Buttons_Pool[btn_number].Left_instant =left_instant; Buttons_Pool[btn_number].Left_instant =left_instant;
@ -822,6 +824,7 @@ void Init_buttons(void)
Buttons_Pool[button_index].Right_shortcut[0]=0; Buttons_Pool[button_index].Right_shortcut[0]=0;
Buttons_Pool[button_index].Right_shortcut[1]=0; Buttons_Pool[button_index].Right_shortcut[1]=0;
Init_button(button_index, Init_button(button_index,
"",
0,0, 0,0,
1,1, 1,1,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -834,6 +837,7 @@ void Init_buttons(void)
// Ici viennent les déclarations des boutons que l'on sait gérer // Ici viennent les déclarations des boutons que l'on sait gérer
Init_button(BUTTON_PAINTBRUSHES, Init_button(BUTTON_PAINTBRUSHES,
"Paintbrush choice ",
0,1, 0,1,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -843,6 +847,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_ADJUST, Init_button(BUTTON_ADJUST,
"Adjust / Transform menu ",
0,18, 0,18,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -852,6 +857,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_DRAW, Init_button(BUTTON_DRAW,
"Freehand draw. / Toggle ",
17,1, 17,1,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -861,6 +867,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_CURVES, Init_button(BUTTON_CURVES,
"Splines / Toggle ",
17,18, 17,18,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -870,6 +877,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_LINES, Init_button(BUTTON_LINES,
"Lines / Toggle ",
34,1, 34,1,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -879,6 +887,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_AIRBRUSH, Init_button(BUTTON_AIRBRUSH,
"Spray / Menu ",
34,18, 34,18,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -888,6 +897,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_FLOODFILL, Init_button(BUTTON_FLOODFILL,
"Floodfill / Replace col.",
51,1, 51,1,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -897,6 +907,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_POLYGONS, Init_button(BUTTON_POLYGONS,
"Polylines / Polyforms ",
51,18, 51,18,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_TOP_LEFT, BUTTON_SHAPE_TRIANGLE_TOP_LEFT,
@ -906,6 +917,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_POLYFILL, Init_button(BUTTON_POLYFILL,
"Polyfill / Filled Pforms",
52,19, 52,19,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT, BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT,
@ -915,6 +927,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_RECTANGLES, Init_button(BUTTON_RECTANGLES,
"Empty rectangles ",
68,1, 68,1,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_TOP_LEFT, BUTTON_SHAPE_TRIANGLE_TOP_LEFT,
@ -924,6 +937,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_FILLRECT, Init_button(BUTTON_FILLRECT,
"Filled rectangles ",
69,2, 69,2,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT, BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT,
@ -933,6 +947,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_CIRCLES, Init_button(BUTTON_CIRCLES,
"Empty circles / ellipses",
68,18, 68,18,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_TOP_LEFT, BUTTON_SHAPE_TRIANGLE_TOP_LEFT,
@ -942,6 +957,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_FILLCIRC, Init_button(BUTTON_FILLCIRC,
"Filled circles / ellips.",
69,19, 69,19,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT, BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT,
@ -951,6 +967,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_GRADRECT, Init_button(BUTTON_GRADRECT,
"Grad. rect / Grad. menu ",
85,1, 85,1,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -960,6 +977,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_SPHERES, Init_button(BUTTON_SPHERES,
"Grad. spheres / ellipses",
85,18, 85,18,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -969,6 +987,7 @@ void Init_buttons(void)
FAMILY_TOOL); FAMILY_TOOL);
Init_button(BUTTON_BRUSH, Init_button(BUTTON_BRUSH,
"Brush grab. / Restore ",
106,1, 106,1,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_TOP_LEFT, BUTTON_SHAPE_TRIANGLE_TOP_LEFT,
@ -978,6 +997,7 @@ void Init_buttons(void)
FAMILY_INTERRUPTION); FAMILY_INTERRUPTION);
Init_button(BUTTON_POLYBRUSH, Init_button(BUTTON_POLYBRUSH,
"Lasso / Restore brush ",
107,2, 107,2,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT, BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT,
@ -987,6 +1007,11 @@ void Init_buttons(void)
FAMILY_INTERRUPTION); FAMILY_INTERRUPTION);
Init_button(BUTTON_BRUSH_EFFECTS, Init_button(BUTTON_BRUSH_EFFECTS,
#ifdef __ENABLE_LUA__
"Brush effects / factory ",
#else
"Brush effects ",
#endif
106, 18, 106, 18,
16, 16, 16, 16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1000,6 +1025,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_EFFECTS, Init_button(BUTTON_EFFECTS,
"Drawing modes (effects) ",
123,1, 123,1,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1009,6 +1035,7 @@ void Init_buttons(void)
FAMILY_EFFECTS); FAMILY_EFFECTS);
Init_button(BUTTON_TEXT, Init_button(BUTTON_TEXT,
"Text ",
123,18, 123,18,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1018,6 +1045,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_MAGNIFIER, Init_button(BUTTON_MAGNIFIER,
"Magnify mode / Menu ",
140,1, 140,1,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1027,6 +1055,7 @@ void Init_buttons(void)
FAMILY_INTERRUPTION); FAMILY_INTERRUPTION);
Init_button(BUTTON_COLORPICKER, Init_button(BUTTON_COLORPICKER,
"Pipette / Invert colors ",
140,18, 140,18,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1036,6 +1065,7 @@ void Init_buttons(void)
FAMILY_INTERRUPTION); FAMILY_INTERRUPTION);
Init_button(BUTTON_RESOL, Init_button(BUTTON_RESOL,
"Screen size / Safe. res.",
161,1, 161,1,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1045,6 +1075,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_PAGE, Init_button(BUTTON_PAGE,
"Go / Copy to other page ",
161,18, 161,18,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1054,6 +1085,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_SAVE, Init_button(BUTTON_SAVE,
"Save as / Save ",
178,1, 178,1,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_TOP_LEFT, BUTTON_SHAPE_TRIANGLE_TOP_LEFT,
@ -1063,6 +1095,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LOAD, Init_button(BUTTON_LOAD,
"Load / Re-load ",
179,2, 179,2,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT, BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT,
@ -1072,6 +1105,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_SETTINGS, Init_button(BUTTON_SETTINGS,
"Settings / Skins ",
178,18, 178,18,
16,16, 16,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1081,6 +1115,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_CLEAR, Init_button(BUTTON_CLEAR,
"Clear / with backcolor ",
195,1, 195,1,
17,16, 17,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1090,6 +1125,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_HELP, Init_button(BUTTON_HELP,
"Help / Statistics ",
195,18, 195,18,
17,16, 17,16,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1099,6 +1135,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_UNDO, Init_button(BUTTON_UNDO,
"Undo / Redo ",
213,1, 213,1,
19,12, 19,12,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1108,6 +1145,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_KILL, Init_button(BUTTON_KILL,
"Kill current page ",
213,14, 213,14,
19,7, 19,7,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1117,6 +1155,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_QUIT, Init_button(BUTTON_QUIT,
"Quit ",
213,22, 213,22,
19,12, 19,12,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1126,6 +1165,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_PALETTE, Init_button(BUTTON_PALETTE,
"Palette editor / setup ",
237,9, 237,9,
16,8, 16,8,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1135,6 +1175,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_PAL_LEFT, Init_button(BUTTON_PAL_LEFT,
"Scroll pal. bkwd / Fast ",
237,18, 237,18,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_TOP_LEFT, BUTTON_SHAPE_TRIANGLE_TOP_LEFT,
@ -1144,6 +1185,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_PAL_RIGHT, Init_button(BUTTON_PAL_RIGHT,
"Scroll pal. fwd / Fast ",
238,19, 238,19,
15,15, 15,15,
BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT, BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT,
@ -1153,6 +1195,7 @@ void Init_buttons(void)
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_CHOOSE_COL, Init_button(BUTTON_CHOOSE_COL,
"Color #" ,
MENU_WIDTH+1,1, MENU_WIDTH+1,1,
1,32, // La largeur est mise à jour à chq chngmnt de mode 1,32, // La largeur est mise à jour à chq chngmnt de mode
BUTTON_SHAPE_NO_FRAME, BUTTON_SHAPE_NO_FRAME,
@ -1164,6 +1207,7 @@ void Init_buttons(void)
// Layer bar // Layer bar
#ifndef NOLAYERS #ifndef NOLAYERS
Init_button(BUTTON_LAYER_MENU, Init_button(BUTTON_LAYER_MENU,
"Layers manager ",
0,0, 0,0,
57,9, 57,9,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1172,6 +1216,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_COLOR, Init_button(BUTTON_LAYER_COLOR,
"Get/Set transparent col.",
58,0, 58,0,
13,9, 13,9,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1180,6 +1225,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_MERGE, Init_button(BUTTON_LAYER_MERGE,
"Merge layer ",
72,0, 72,0,
13,9, 13,9,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1188,6 +1234,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_ADD, Init_button(BUTTON_LAYER_ADD,
"Add layer ",
86,0, 86,0,
13,9, 13,9,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1196,6 +1243,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_REMOVE, Init_button(BUTTON_LAYER_REMOVE,
"Drop layer ",
100,0, 100,0,
13,9, 13,9,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1204,6 +1252,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_DOWN, Init_button(BUTTON_LAYER_DOWN,
"Lower layer ",
114,0, 114,0,
13,9, 13,9,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1212,6 +1261,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_UP, Init_button(BUTTON_LAYER_UP,
"Raise layer ",
128,0, 128,0,
13,9, 13,9,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1220,6 +1270,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_SELECT, Init_button(BUTTON_LAYER_SELECT,
"Layer select / toggle ",
142,0, 142,0,
13,9, // Will be updated according to actual number of layers 13,9, // Will be updated according to actual number of layers
BUTTON_SHAPE_NO_FRAME, BUTTON_SHAPE_NO_FRAME,
@ -1230,6 +1281,7 @@ void Init_buttons(void)
#else #else
// Anim bar // Anim bar
Init_button(BUTTON_LAYER_MENU, Init_button(BUTTON_LAYER_MENU,
"Layers manager ",
0,0, 0,0,
44,13, 44,13,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1238,6 +1290,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_ANIM_TIME, Init_button(BUTTON_ANIM_TIME,
"Set frame time ",
45,0, 45,0,
13,13, 13,13,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1246,6 +1299,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_ANIM_FIRST_FRAME, Init_button(BUTTON_ANIM_FIRST_FRAME,
"Go to first frame ",
116,0, 116,0,
13,13, 13,13,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1254,6 +1308,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_ANIM_PREV_FRAME, Init_button(BUTTON_ANIM_PREV_FRAME,
"Go to previous frame ",
130,0, 130,0,
13,13, 13,13,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1262,6 +1317,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_ANIM_NEXT_FRAME, Init_button(BUTTON_ANIM_NEXT_FRAME,
"Go to next frame ",
144,0, 144,0,
13,13, 13,13,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1270,6 +1326,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_ANIM_LAST_FRAME, Init_button(BUTTON_ANIM_LAST_FRAME,
"Go to last frame ",
158,0, 158,0,
13,13, 13,13,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1278,6 +1335,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_ADD, Init_button(BUTTON_LAYER_ADD,
"Add layer ",
177,0, 177,0,
13,13, 13,13,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1286,6 +1344,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_REMOVE, Init_button(BUTTON_LAYER_REMOVE,
"Drop layer ",
191,0, 191,0,
13,13, 13,13,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1294,6 +1353,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_DOWN, Init_button(BUTTON_LAYER_DOWN,
"Lower layer ",
205,0, 205,0,
13,13, 13,13,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1302,6 +1362,7 @@ void Init_buttons(void)
Do_nothing, Do_nothing,
FAMILY_INSTANT); FAMILY_INSTANT);
Init_button(BUTTON_LAYER_UP, Init_button(BUTTON_LAYER_UP,
"Raise layer ",
219,0, 219,0,
13,13, 13,13,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,
@ -1312,6 +1373,7 @@ void Init_buttons(void)
#endif #endif
// Status bar // Status bar
Init_button(BUTTON_HIDE, Init_button(BUTTON_HIDE,
"Hide toolbars / Select ",
0,0, 0,0,
16,9, 16,9,
BUTTON_SHAPE_RECTANGLE, BUTTON_SHAPE_RECTANGLE,

View File

@ -41,6 +41,7 @@
#include "sdlscreen.h" #include "sdlscreen.h"
#include "palette.h" #include "palette.h"
T_Toolbar_button Buttons_Pool[NB_BUTTONS];
/// Width of one layer button, in pixels before scaling /// Width of one layer button, in pixels before scaling
word Layer_button_width = 1; word Layer_button_width = 1;

View File

@ -114,4 +114,33 @@ extern word Layer_button_width;
/// Copy viewport settings and offsets from the Main to the Spare. /// Copy viewport settings and offsets from the Main to the Spare.
void Copy_view_to_spare(void); void Copy_view_to_spare(void);
/// Definition of a toolbar button
typedef struct
{
// Button aspect
word X_offset; ///< Position relative to menu's left
word Y_offset; ///< Position relative to menu's top
word Width; ///< Button's active width
word Height; ///< Button's active heigth
byte Pressed; ///< Button is currently pressed
byte Shape; ///< Shape, listed in enum ::BUTTON_SHAPES
signed char Icon; ///< Which icon to display: Either the one from the toolbar (-1) or one of ::MENU_SPRITE
// Triggers on mouse/keyboard
Func_action Left_action; ///< Action triggered by a left mouseclick on the button
Func_action Right_action; ///< Action triggered by a right mouseclick on the button
word Left_shortcut[2]; ///< Keyboard shortcut for a left mouseclick
word Right_shortcut[2];///< Keyboard shortcut for a right mouseclick
byte Left_instant; ///< Will not wait for mouse release before triggering action
byte Right_instant; ///< Will not wait for mouse release before triggering action
const char * Tooltip; ///< Text in status bar when button is hovered
// Data used when the button is unselected
Func_action Unselect_action; ///< Action triggered by unselecting the button
byte Family; ///< enum ::FAMILY_OF_BUTTONS.
} T_Toolbar_button;
extern T_Toolbar_button Buttons_Pool[NB_BUTTONS];
#endif #endif