Return unique_ptr from ui_add_gadget_checkbox
This commit is contained in:
parent
413a316154
commit
b16e8ecbec
|
@ -320,7 +320,7 @@ window_event_result ui_radio_do( UI_DIALOG *dlg, UI_GADGET_RADIO * radio, const
|
|||
extern void ui_radio_set_value(UI_GADGET_RADIO *radio, int value);
|
||||
|
||||
extern void ui_draw_checkbox( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox );
|
||||
extern UI_GADGET_CHECKBOX * ui_add_gadget_checkbox( UI_DIALOG * dlg, short x, short y, short w, short h, short group, const char * text );
|
||||
std::unique_ptr<UI_GADGET_CHECKBOX> ui_add_gadget_checkbox(UI_DIALOG * dlg, short x, short y, short w, short h, short group, const char * text);
|
||||
window_event_result ui_checkbox_do( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox, const d_event &event );
|
||||
extern void ui_checkbox_check(UI_GADGET_CHECKBOX * checkbox, int check);
|
||||
|
||||
|
|
|
@ -68,10 +68,9 @@ void ui_draw_checkbox( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox )
|
|||
}
|
||||
|
||||
|
||||
UI_GADGET_CHECKBOX * ui_add_gadget_checkbox( UI_DIALOG * dlg, short x, short y, short w, short h, short group, const char * text )
|
||||
std::unique_ptr<UI_GADGET_CHECKBOX> ui_add_gadget_checkbox(UI_DIALOG * dlg, short x, short y, short w, short h, short group, const char * text)
|
||||
{
|
||||
auto checkbox = ui_gadget_add<UI_GADGET_CHECKBOX>( dlg, x, y, x+w-1, y+h-1 );
|
||||
|
||||
std::unique_ptr<UI_GADGET_CHECKBOX> checkbox{ui_gadget_add<UI_GADGET_CHECKBOX>(dlg, x, y, x+w-1, y+h-1)};
|
||||
MALLOC(checkbox->text, char, strlen(text) + 5);
|
||||
strcpy(checkbox->text,text);
|
||||
checkbox->width = w;
|
||||
|
@ -81,12 +80,9 @@ UI_GADGET_CHECKBOX * ui_add_gadget_checkbox( UI_DIALOG * dlg, short x, short y,
|
|||
checkbox->pressed = 0;
|
||||
checkbox->flag = 0;
|
||||
checkbox->group = group;
|
||||
|
||||
return checkbox;
|
||||
|
||||
}
|
||||
|
||||
|
||||
window_event_result ui_checkbox_do( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox,const d_event &event )
|
||||
{
|
||||
checkbox->oldposition = checkbox->position;
|
||||
|
|
|
@ -105,8 +105,6 @@ void ui_gadget_delete_all( UI_DIALOG * dlg )
|
|||
delete static_cast<UI_GADGET_RADIO *>(tmp);
|
||||
break;
|
||||
case UI_GADGET_CHECKBOX::s_kind:
|
||||
delete static_cast<UI_GADGET_CHECKBOX *>(tmp);
|
||||
break;
|
||||
case UI_GADGET_INPUTBOX::s_kind:
|
||||
case UI_GADGET_USERBOX::s_kind:
|
||||
case UI_GADGET_ICON::s_kind:
|
||||
|
|
|
@ -66,7 +66,7 @@ struct centers_dialog
|
|||
{
|
||||
UI_GADGET_BUTTON *quitButton;
|
||||
UI_GADGET_RADIO *centerFlag[MAX_CENTER_TYPES];
|
||||
UI_GADGET_CHECKBOX *robotMatFlag[MAX_ROBOT_TYPES];
|
||||
array<std::unique_ptr<UI_GADGET_CHECKBOX>, MAX_ROBOT_TYPES> robotMatFlag;
|
||||
int old_seg_num;
|
||||
};
|
||||
|
||||
|
@ -179,7 +179,7 @@ int centers_dialog_handler(UI_DIALOG *dlg,const d_event &event, centers_dialog *
|
|||
|
||||
// Read materialization center robot bit flags
|
||||
for (i = 0; i < N_robot_types; i++)
|
||||
ui_checkbox_check(c->robotMatFlag[i], RobotCenters[Cursegp->matcen_num].robot_flags[i / 32] & (1 << (i % 32)));
|
||||
ui_checkbox_check(c->robotMatFlag[i].get(), RobotCenters[Cursegp->matcen_num].robot_flags[i / 32] & (1 << (i % 32)));
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
|
@ -205,7 +205,7 @@ int centers_dialog_handler(UI_DIALOG *dlg,const d_event &event, centers_dialog *
|
|||
|
||||
for (i = 0; i < N_robot_types; i++)
|
||||
{
|
||||
if ( GADGET_PRESSED(c->robotMatFlag[i]) )
|
||||
if (GADGET_PRESSED(c->robotMatFlag[i].get()))
|
||||
{
|
||||
if (c->robotMatFlag[i]->flag)
|
||||
RobotCenters[Cursegp->matcen_num].robot_flags[i / 32] |= (1 << (i % 32));
|
||||
|
|
|
@ -64,7 +64,7 @@ struct trigger_dialog
|
|||
{
|
||||
std::unique_ptr<UI_GADGET_USERBOX> wallViewBox;
|
||||
UI_GADGET_BUTTON *quitButton;
|
||||
UI_GADGET_CHECKBOX *triggerFlag[NUM_TRIGGER_FLAGS];
|
||||
array<std::unique_ptr<UI_GADGET_CHECKBOX>, NUM_TRIGGER_FLAGS> triggerFlag;
|
||||
int old_trigger_num;
|
||||
};
|
||||
|
||||
|
@ -389,16 +389,16 @@ int trigger_dialog_handler(UI_DIALOG *dlg,const d_event &event, trigger_dialog *
|
|||
{
|
||||
trigger *trig = &Triggers[trigger_num];
|
||||
|
||||
ui_checkbox_check(t->triggerFlag[0], trig->flags & TRIGGER_CONTROL_DOORS);
|
||||
ui_checkbox_check(t->triggerFlag[1], trig->flags & TRIGGER_SHIELD_DAMAGE);
|
||||
ui_checkbox_check(t->triggerFlag[2], trig->flags & TRIGGER_ENERGY_DRAIN);
|
||||
ui_checkbox_check(t->triggerFlag[3], trig->flags & TRIGGER_EXIT);
|
||||
ui_checkbox_check(t->triggerFlag[4], trig->flags & TRIGGER_ONE_SHOT);
|
||||
ui_checkbox_check(t->triggerFlag[5], trig->flags & TRIGGER_ILLUSION_ON);
|
||||
ui_checkbox_check(t->triggerFlag[6], trig->flags & TRIGGER_ILLUSION_OFF);
|
||||
ui_checkbox_check(t->triggerFlag[7], trig->flags & TRIGGER_ON);
|
||||
ui_checkbox_check(t->triggerFlag[8], trig->flags & TRIGGER_MATCEN);
|
||||
ui_checkbox_check(t->triggerFlag[9], trig->flags & TRIGGER_SECRET_EXIT);
|
||||
ui_checkbox_check(t->triggerFlag[0].get(), trig->flags & TRIGGER_CONTROL_DOORS);
|
||||
ui_checkbox_check(t->triggerFlag[1].get(), trig->flags & TRIGGER_SHIELD_DAMAGE);
|
||||
ui_checkbox_check(t->triggerFlag[2].get(), trig->flags & TRIGGER_ENERGY_DRAIN);
|
||||
ui_checkbox_check(t->triggerFlag[3].get(), trig->flags & TRIGGER_EXIT);
|
||||
ui_checkbox_check(t->triggerFlag[4].get(), trig->flags & TRIGGER_ONE_SHOT);
|
||||
ui_checkbox_check(t->triggerFlag[5].get(), trig->flags & TRIGGER_ILLUSION_ON);
|
||||
ui_checkbox_check(t->triggerFlag[6].get(), trig->flags & TRIGGER_ILLUSION_OFF);
|
||||
ui_checkbox_check(t->triggerFlag[7].get(), trig->flags & TRIGGER_ON);
|
||||
ui_checkbox_check(t->triggerFlag[8].get(), trig->flags & TRIGGER_MATCEN);
|
||||
ui_checkbox_check(t->triggerFlag[9].get(), trig->flags & TRIGGER_SECRET_EXIT);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -410,32 +410,32 @@ int trigger_dialog_handler(UI_DIALOG *dlg,const d_event &event, trigger_dialog *
|
|||
{
|
||||
rval = 1;
|
||||
|
||||
if (GADGET_PRESSED(t->triggerFlag[0]))
|
||||
if (GADGET_PRESSED(t->triggerFlag[0].get()))
|
||||
trigger_flag_Markedside(TRIGGER_CONTROL_DOORS, t->triggerFlag[0]->flag);
|
||||
else if (GADGET_PRESSED(t->triggerFlag[1]))
|
||||
else if (GADGET_PRESSED(t->triggerFlag[1].get()))
|
||||
trigger_flag_Markedside(TRIGGER_SHIELD_DAMAGE, t->triggerFlag[1]->flag);
|
||||
else if (GADGET_PRESSED(t->triggerFlag[2]))
|
||||
else if (GADGET_PRESSED(t->triggerFlag[2].get()))
|
||||
trigger_flag_Markedside(TRIGGER_ENERGY_DRAIN, t->triggerFlag[2]->flag);
|
||||
else if (GADGET_PRESSED(t->triggerFlag[3]))
|
||||
else if (GADGET_PRESSED(t->triggerFlag[3].get()))
|
||||
trigger_flag_Markedside(TRIGGER_EXIT, t->triggerFlag[3]->flag);
|
||||
else if (GADGET_PRESSED(t->triggerFlag[4]))
|
||||
else if (GADGET_PRESSED(t->triggerFlag[4].get()))
|
||||
trigger_flag_Markedside(TRIGGER_ONE_SHOT, t->triggerFlag[4]->flag);
|
||||
else if (GADGET_PRESSED(t->triggerFlag[5]))
|
||||
else if (GADGET_PRESSED(t->triggerFlag[5].get()))
|
||||
trigger_flag_Markedside(TRIGGER_ILLUSION_ON, t->triggerFlag[5]->flag);
|
||||
else if (GADGET_PRESSED(t->triggerFlag[6]))
|
||||
else if (GADGET_PRESSED(t->triggerFlag[6].get()))
|
||||
trigger_flag_Markedside(TRIGGER_ILLUSION_OFF, t->triggerFlag[6]->flag);
|
||||
else if (GADGET_PRESSED(t->triggerFlag[7]))
|
||||
else if (GADGET_PRESSED(t->triggerFlag[7].get()))
|
||||
trigger_flag_Markedside(TRIGGER_ON, t->triggerFlag[7]->flag);
|
||||
else if (GADGET_PRESSED(t->triggerFlag[8]))
|
||||
else if (GADGET_PRESSED(t->triggerFlag[8].get()))
|
||||
trigger_flag_Markedside(TRIGGER_MATCEN, t->triggerFlag[8]->flag);
|
||||
else if (GADGET_PRESSED(t->triggerFlag[9]))
|
||||
else if (GADGET_PRESSED(t->triggerFlag[9].get()))
|
||||
trigger_flag_Markedside(TRIGGER_SECRET_EXIT, t->triggerFlag[9]->flag);
|
||||
else
|
||||
rval = 0;
|
||||
|
||||
} else
|
||||
for (int i = 0; i < NUM_TRIGGER_FLAGS; i++ )
|
||||
ui_checkbox_check(t->triggerFlag[i], 0);
|
||||
range_for (auto &i, t->triggerFlag)
|
||||
ui_checkbox_check(i.get(), 0);
|
||||
|
||||
//------------------------------------------------------------
|
||||
// Draw the wall in the little 64x64 box
|
||||
|
|
|
@ -67,7 +67,7 @@ struct wall_dialog
|
|||
{
|
||||
std::unique_ptr<UI_GADGET_USERBOX> wallViewBox;
|
||||
UI_GADGET_BUTTON *quitButton;
|
||||
UI_GADGET_CHECKBOX *doorFlag[4];
|
||||
array<std::unique_ptr<UI_GADGET_CHECKBOX>, 3> doorFlag;
|
||||
UI_GADGET_RADIO *keyFlag[4];
|
||||
int old_wall_num;
|
||||
fix64 time;
|
||||
|
@ -450,9 +450,9 @@ int wall_dialog_handler(UI_DIALOG *dlg,const d_event &event, wall_dialog *wd)
|
|||
{
|
||||
wall *w = &Walls[Cursegp->sides[Curside].wall_num];
|
||||
|
||||
ui_checkbox_check(wd->doorFlag[0], w->flags & WALL_DOOR_LOCKED);
|
||||
ui_checkbox_check(wd->doorFlag[1], w->flags & WALL_DOOR_AUTO);
|
||||
ui_checkbox_check(wd->doorFlag[2], w->flags & WALL_ILLUSION_OFF);
|
||||
ui_checkbox_check(wd->doorFlag[0].get(), w->flags & WALL_DOOR_LOCKED);
|
||||
ui_checkbox_check(wd->doorFlag[1].get(), w->flags & WALL_DOOR_AUTO);
|
||||
ui_checkbox_check(wd->doorFlag[2].get(), w->flags & WALL_ILLUSION_OFF);
|
||||
|
||||
ui_radio_set_value(wd->keyFlag[0], w->keys & KEY_NONE);
|
||||
ui_radio_set_value(wd->keyFlag[1], w->keys & KEY_BLUE);
|
||||
|
@ -467,7 +467,7 @@ int wall_dialog_handler(UI_DIALOG *dlg,const d_event &event, wall_dialog *wd)
|
|||
//------------------------------------------------------------
|
||||
|
||||
if (Walls[Cursegp->sides[Curside].wall_num].type == WALL_DOOR) {
|
||||
if (GADGET_PRESSED(wd->doorFlag[0]))
|
||||
if (GADGET_PRESSED(wd->doorFlag[0].get()))
|
||||
{
|
||||
if ( wd->doorFlag[0]->flag == 1 )
|
||||
Walls[Cursegp->sides[Curside].wall_num].flags |= WALL_DOOR_LOCKED;
|
||||
|
@ -475,7 +475,7 @@ int wall_dialog_handler(UI_DIALOG *dlg,const d_event &event, wall_dialog *wd)
|
|||
Walls[Cursegp->sides[Curside].wall_num].flags &= ~WALL_DOOR_LOCKED;
|
||||
rval = 1;
|
||||
}
|
||||
else if (GADGET_PRESSED(wd->doorFlag[1]))
|
||||
else if (GADGET_PRESSED(wd->doorFlag[1].get()))
|
||||
{
|
||||
if ( wd->doorFlag[1]->flag == 1 )
|
||||
Walls[Cursegp->sides[Curside].wall_num].flags |= WALL_DOOR_AUTO;
|
||||
|
@ -496,14 +496,14 @@ int wall_dialog_handler(UI_DIALOG *dlg,const d_event &event, wall_dialog *wd)
|
|||
}
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 2; i++)
|
||||
ui_checkbox_check(wd->doorFlag[i], 0);
|
||||
for ( int i=0; i < 4; i++ )
|
||||
ui_radio_set_value(wd->keyFlag[i], 0);
|
||||
range_for (auto &i, partial_range(wd->doorFlag, 2u))
|
||||
ui_checkbox_check(i.get(), 0);
|
||||
range_for (auto &i, wd->keyFlag)
|
||||
ui_radio_set_value(i, 0);
|
||||
}
|
||||
|
||||
if (Walls[Cursegp->sides[Curside].wall_num].type == WALL_ILLUSION) {
|
||||
if (GADGET_PRESSED(wd->doorFlag[2]))
|
||||
if (GADGET_PRESSED(wd->doorFlag[2].get()))
|
||||
{
|
||||
if ( wd->doorFlag[2]->flag == 1 )
|
||||
Walls[Cursegp->sides[Curside].wall_num].flags |= WALL_ILLUSION_OFF;
|
||||
|
|
Loading…
Reference in a new issue