static struct GadgetInfo *last_info_gi = NULL;
static int next_free_gadget_id = 1;
static boolean gadget_id_wrapped = FALSE;
+static int gadget_screen_border_right = -1;
+static int gadget_screen_border_bottom = -1;
static void (*PlayGadgetSoundActivating)(void) = NULL;
static void (*PlayGadgetSoundSelecting)(void) = NULL;
PlayGadgetSoundSelecting = selecting_function;
}
+void InitGadgetScreenBorders(int border_right, int border_bottom)
+{
+ gadget_screen_border_right = border_right;
+ gadget_screen_border_bottom = border_bottom;
+}
+
+static int getGadgetScreenBorderRight(void)
+{
+ if (gadget_screen_border_right < gfx.sx ||
+ gadget_screen_border_right > gfx.sx + gfx.sxsize)
+ return gfx.sx + gfx.sxsize;
+
+ return gadget_screen_border_right;
+}
+
+static int getGadgetScreenBorderBottom(void)
+{
+ if (gadget_screen_border_bottom < gfx.sy ||
+ gadget_screen_border_bottom > gfx.sy + gfx.sysize)
+ return gfx.sy + gfx.sysize;
+
+ return gadget_screen_border_bottom;
+}
+
static struct GadgetInfo *getGadgetInfoFromGadgetID(int id)
{
struct GadgetInfo *gi = gadget_list_first_entry;
{
case GD_TYPE_NORMAL_BUTTON:
case GD_TYPE_CHECK_BUTTON:
+ case GD_TYPE_CHECK_BUTTON_2:
case GD_TYPE_RADIO_BUTTON:
BlitBitmapOnBackground(gd->bitmap, drawto,
{
case GD_TYPE_NORMAL_BUTTON:
case GD_TYPE_CHECK_BUTTON:
+ case GD_TYPE_CHECK_BUTTON_2:
case GD_TYPE_RADIO_BUTTON:
SDL_SetTextureAlphaMod(gd->bitmap->texture_masked, alpha);
SDL_SetTextureBlendMode(gd->bitmap->texture_masked, SDL_BLENDMODE_BLEND);
int border_xsize = gi->border.xsize;
int border_ysize = gi->border.ysize;
int button_size = gi->border.xsize_selectbutton;
- int bottom_screen_border = gfx.sy + gfx.sysize - font_height;
+ int bottom_screen_border = getGadgetScreenBorderBottom();
Bitmap *src_bitmap;
int src_x, src_y;
boolean deactivate_gadget = TRUE;
boolean gadget_changed = TRUE;
- if (gi->type & GD_TYPE_SELECTBOX)
+ if (gi->type == GD_TYPE_CHECK_BUTTON_2)
+ {
+ gi->checked = !gi->checked;
+ }
+ else if (gi->type & GD_TYPE_SELECTBOX)
{
if (keep_selectbox_open ||
mouse_released_where_pressed ||