gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, controlbutton_info[i].infotext,
GDI_X, x,
GDI_Y, y,
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, scrollbutton_info[i].infotext,
GDI_X, x,
GDI_Y, y,
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, getElementInfoText(element),
GDI_X, x,
GDI_Y, y,
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, infotext,
GDI_X, x,
GDI_Y, y,
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, "enter counter value",
GDI_X, x,
GDI_Y, y,
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, infotext,
GDI_X, x,
GDI_Y, y,
int id = graphicbutton_info[i].gadget_id;
int x = SX + ED_SETTINGS_X(graphicbutton_info[i].x);
int y = SY + ED_SETTINGS_Y(graphicbutton_info[i].y);
- struct GraphicInfo *gd = &graphic_info[graphicbutton_info[i].graphic];
+ int graphic = graphicbutton_info[i].graphic;
+ struct GraphicInfo *gd = &graphic_info[graphic];
int gd_x1 = gd->src_x;
int gd_y1 = gd->src_y;
int gd_x2 = gd->src_x + gd->pressed_xoffset;
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, graphicbutton_info[i].infotext,
GDI_X, x,
GDI_Y, y,
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, scrollbar_info[i].infotext,
GDI_X, scrollbar_pos[i].x,
GDI_Y, scrollbar_pos[i].y,
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, checkbutton_info[i].infotext,
GDI_X, x,
GDI_Y, y,
static void CreateRadiobuttonGadgets()
{
- struct GraphicInfo *gd = &graphic_info[IMG_EDITOR_RADIOBUTTON];
+ int graphic = IMG_EDITOR_RADIOBUTTON;
+ struct GraphicInfo *gd = &graphic_info[graphic];
int gd_x1 = gd->src_x;
int gd_y1 = gd->src_y;
int gd_x2 = gd->src_x + gd->pressed_xoffset;
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, radiobutton_info[i].infotext,
GDI_X, x,
GDI_Y, y,
for (i = 0; i < NUM_GAME_BUTTONS; i++)
{
- struct GraphicInfo *gfx = &graphic_info[gamebutton_info[i].graphic];
+ int graphic = gamebutton_info[i].graphic;
+ struct GraphicInfo *gfx = &graphic_info[graphic];
struct XY *pos = gamebutton_info[i].pos;
struct GadgetInfo *gi;
int button_type;
}
gi = CreateGadget(GDI_CUSTOM_ID, id,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, gamebutton_info[i].infotext,
GDI_X, base_x + GDI_ACTIVE_POS(pos->x),
GDI_Y, base_y + GDI_ACTIVE_POS(pos->y),
{
switch(tag)
{
+ case GDI_IMAGE_ID:
+ gi->image_id = va_arg(ap, int);
+ break;
+
case GDI_CUSTOM_ID:
gi->custom_id = va_arg(ap, int);
break;
/* always start with reliable default values */
new_gadget->id = getNewGadgetID();
+ new_gadget->image_id = -1;
new_gadget->callback_info = default_callback_info;
new_gadget->callback_action = default_callback_action;
new_gadget->active = TRUE;
/* gadget creation tags */
#define GDI_END 0
-#define GDI_CUSTOM_ID 1
-#define GDI_CUSTOM_TYPE_ID 2
-#define GDI_X 3
-#define GDI_Y 4
-#define GDI_WIDTH 5
-#define GDI_HEIGHT 6
-#define GDI_TYPE 7
-#define GDI_STATE 8
-#define GDI_CHECKED 9
-#define GDI_RADIO_NR 10
-#define GDI_NUMBER_VALUE 11
-#define GDI_NUMBER_MIN 12
-#define GDI_NUMBER_MAX 13
-#define GDI_TEXT_VALUE 14
-#define GDI_TEXT_SIZE 15
-#define GDI_TEXT_FONT 16
-#define GDI_TEXT_FONT_ACTIVE 17
-#define GDI_TEXT_FONT_UNSELECTABLE 18
-#define GDI_SELECTBOX_OPTIONS 19
-#define GDI_SELECTBOX_INDEX 20
-#define GDI_SELECTBOX_CHAR_UNSELECTABLE 21
-#define GDI_DESIGN_UNPRESSED 22
-#define GDI_DESIGN_PRESSED 23
-#define GDI_ALT_DESIGN_UNPRESSED 24
-#define GDI_ALT_DESIGN_PRESSED 25
-#define GDI_BORDER_SIZE 26
-#define GDI_BORDER_SIZE_SELECTBUTTON 27
-#define GDI_DESIGN_WIDTH 28
-#define GDI_DECORATION_DESIGN 29
-#define GDI_DECORATION_POSITION 30
-#define GDI_DECORATION_SIZE 31
-#define GDI_DECORATION_SHIFTING 32
-#define GDI_DECORATION_MASKED 33
-#define GDI_EVENT_MASK 34
-#define GDI_EVENT 35
-#define GDI_CALLBACK_INFO 36
-#define GDI_CALLBACK_ACTION 37
-#define GDI_AREA_SIZE 38
-#define GDI_ITEM_SIZE 39
-#define GDI_SCROLLBAR_ITEMS_MAX 40
-#define GDI_SCROLLBAR_ITEMS_VISIBLE 41
-#define GDI_SCROLLBAR_ITEM_POSITION 42
-#define GDI_WHEEL_AREA_X 43
-#define GDI_WHEEL_AREA_Y 44
-#define GDI_WHEEL_AREA_WIDTH 45
-#define GDI_WHEEL_AREA_HEIGHT 46
-#define GDI_INFO_TEXT 47
-#define GDI_ACTIVE 48
-#define GDI_DIRECT_DRAW 49
+#define GDI_IMAGE_ID 1
+#define GDI_CUSTOM_ID 2
+#define GDI_CUSTOM_TYPE_ID 3
+#define GDI_X 4
+#define GDI_Y 5
+#define GDI_WIDTH 6
+#define GDI_HEIGHT 7
+#define GDI_TYPE 8
+#define GDI_STATE 9
+#define GDI_CHECKED 10
+#define GDI_RADIO_NR 11
+#define GDI_NUMBER_VALUE 12
+#define GDI_NUMBER_MIN 13
+#define GDI_NUMBER_MAX 14
+#define GDI_TEXT_VALUE 15
+#define GDI_TEXT_SIZE 16
+#define GDI_TEXT_FONT 17
+#define GDI_TEXT_FONT_ACTIVE 18
+#define GDI_TEXT_FONT_UNSELECTABLE 19
+#define GDI_SELECTBOX_OPTIONS 20
+#define GDI_SELECTBOX_INDEX 21
+#define GDI_SELECTBOX_CHAR_UNSELECTABLE 22
+#define GDI_DESIGN_UNPRESSED 23
+#define GDI_DESIGN_PRESSED 24
+#define GDI_ALT_DESIGN_UNPRESSED 25
+#define GDI_ALT_DESIGN_PRESSED 26
+#define GDI_BORDER_SIZE 27
+#define GDI_BORDER_SIZE_SELECTBUTTON 28
+#define GDI_DESIGN_WIDTH 29
+#define GDI_DECORATION_DESIGN 30
+#define GDI_DECORATION_POSITION 31
+#define GDI_DECORATION_SIZE 32
+#define GDI_DECORATION_SHIFTING 33
+#define GDI_DECORATION_MASKED 34
+#define GDI_EVENT_MASK 35
+#define GDI_EVENT 36
+#define GDI_CALLBACK_INFO 37
+#define GDI_CALLBACK_ACTION 38
+#define GDI_AREA_SIZE 39
+#define GDI_ITEM_SIZE 40
+#define GDI_SCROLLBAR_ITEMS_MAX 41
+#define GDI_SCROLLBAR_ITEMS_VISIBLE 42
+#define GDI_SCROLLBAR_ITEM_POSITION 43
+#define GDI_WHEEL_AREA_X 44
+#define GDI_WHEEL_AREA_Y 45
+#define GDI_WHEEL_AREA_WIDTH 46
+#define GDI_WHEEL_AREA_HEIGHT 47
+#define GDI_INFO_TEXT 48
+#define GDI_ACTIVE 49
+#define GDI_DIRECT_DRAW 50
/* gadget deactivation hack */
#define GDI_ACTIVE_POS(a) ((a) < 0 ? POS_OFFSCREEN : (a))
boolean deactivated; /* flag to deactivate gadget */
int id; /* internal gadget identifier */
+ int image_id; /* internal gadget image identifier */
int custom_id; /* custom gadget identifier */
int custom_type_id; /* custom gadget type identifier */
char info_text[MAX_INFO_TEXTSIZE + 1];/* short popup info text */
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, gfx_unpressed,
GDI_INFO_TEXT, menubutton_info[i].infotext,
GDI_X, x,
GDI_Y, y,
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, gfx_unpressed,
GDI_INFO_TEXT, scrollbutton_info[i].infotext,
GDI_X, x,
GDI_Y, y,
gi = CreateGadget(GDI_CUSTOM_ID, id,
GDI_CUSTOM_TYPE_ID, i,
+ GDI_IMAGE_ID, gfx_unpressed,
GDI_INFO_TEXT, scrollbar_info[i].infotext,
GDI_X, x,
GDI_Y, y,
for (i = 0; i < NUM_TAPE_BUTTONS; i++)
{
- struct GraphicInfo *gfx = &graphic_info[tapebutton_info[i].graphic];
+ int graphic = tapebutton_info[i].graphic;
+ struct GraphicInfo *gfx = &graphic_info[graphic];
struct XY *pos = tapebutton_info[i].pos;
struct GadgetInfo *gi;
int gd_x = gfx->src_x;
int id = i;
gi = CreateGadget(GDI_CUSTOM_ID, id,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, tapebutton_info[i].infotext,
GDI_X, VX + pos->x,
GDI_Y, VY + pos->y,
for (i = 0; i < NUM_TOOL_BUTTONS; i++)
{
- struct GraphicInfo *gfx = &graphic_info[toolbutton_info[i].graphic];
+ int graphic = toolbutton_info[i].graphic;
+ struct GraphicInfo *gfx = &graphic_info[graphic];
struct TextPosInfo *pos = toolbutton_info[i].pos;
struct GadgetInfo *gi;
Bitmap *deco_bitmap = None;
}
gi = CreateGadget(GDI_CUSTOM_ID, id,
+ GDI_IMAGE_ID, graphic,
GDI_INFO_TEXT, toolbutton_info[i].infotext,
GDI_X, dx + x,
GDI_Y, dy + y,