{
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);
boolean HandleGadgets(int mx, int my, int button)
{
- static unsigned int pressed_delay = 0;
- static unsigned int pressed_delay_value = GADGET_FRAME_DELAY;
+ static DelayCounter pressed_delay = { GADGET_FRAME_DELAY };
static int last_button = 0;
static int last_mx = 0, last_my = 0;
static int pressed_mx = 0, pressed_my = 0;
(button != 0 && last_gi != NULL && new_gi == last_gi);
gadget_pressed_delay_reached =
- DelayReached(&pressed_delay, pressed_delay_value);
+ DelayReached(&pressed_delay);
gadget_released = (release_event && last_gi != NULL);
gadget_released_inside = (gadget_released && new_gi == last_gi);
ResetDelayCounter(&pressed_delay);
// start gadget delay with longer delay after first click on gadget
- pressed_delay_value = GADGET_FRAME_DELAY_FIRST;
+ pressed_delay.value = GADGET_FRAME_DELAY_FIRST;
}
else // gadget hold pressed for some time
{
// after first repeated gadget click, continue with shorter delay value
- pressed_delay_value = GADGET_FRAME_DELAY;
+ pressed_delay.value = GADGET_FRAME_DELAY;
}
if (gi->type & GD_TYPE_SCROLLBAR && !gadget_dragging)
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 ||