Use the gadget-sent events in the dialogs in ui

This commit is contained in:
Chris Taylor 2012-03-05 19:07:57 +08:00
parent 6068bf961d
commit cdfd06bbd6
9 changed files with 20 additions and 18 deletions

View file

@ -1,5 +1,9 @@
D1X-Rebirth Changelog D1X-Rebirth Changelog
20120305
--------
include/ui.h, ui/file.c, ui/gadget.c, ui/keypress.c, ui/listbox.c, ui/menu.c, ui/message.c, ui/popup.c: Use the gadget-sent events in the dialogs in ui
20120303 20120303
-------- --------
d1x-Info.plist, d1xgl-Info.plist, English.lproj/InfoPlist.strings, RELEASE-NOTES.txt: Increment version to 0.57.2 for Mac and RELEASE-NOTES d1x-Info.plist, d1xgl-Info.plist, English.lproj/InfoPlist.strings, RELEASE-NOTES.txt: Increment version to 0.57.2 for Mac and RELEASE-NOTES

View file

@ -278,6 +278,8 @@ extern struct window *ui_dialog_get_window(UI_DIALOG *dlg);
extern void ui_dialog_set_current_canvas(UI_DIALOG *dlg); extern void ui_dialog_set_current_canvas(UI_DIALOG *dlg);
extern void ui_close_dialog( UI_DIALOG * dlg ); extern void ui_close_dialog( UI_DIALOG * dlg );
#define GADGET_PRESSED(g) ((event->type == EVENT_UI_GADGET_PRESSED) && (ui_event_get_gadget(event) == (UI_GADGET *)g))
extern UI_GADGET * ui_gadget_add( UI_DIALOG * dlg, short kind, short x1, short y1, short x2, short y2 ); extern UI_GADGET * ui_gadget_add( UI_DIALOG * dlg, short kind, short x1, short y1, short x2, short y2 );
extern UI_GADGET_BUTTON * ui_add_gadget_button( UI_DIALOG * dlg, short x, short y, short w, short h, char * text, int (*function_to_call)(void) ); extern UI_GADGET_BUTTON * ui_add_gadget_button( UI_DIALOG * dlg, short x, short y, short w, short h, char * text, int (*function_to_call)(void) );
extern void ui_gadget_delete_all( UI_DIALOG * dlg ); extern void ui_gadget_delete_all( UI_DIALOG * dlg );

View file

@ -128,7 +128,7 @@ static int browser_handler(UI_DIALOG *dlg, d_event *event, browser *b)
{ {
int rval = 0; int rval = 0;
if ( b->button2->pressed ) if (GADGET_PRESSED(b->button2))
{ {
PHYSFS_freeList(b->filename_list); b->filename_list = NULL; PHYSFS_freeList(b->filename_list); b->filename_list = NULL;
PHYSFS_freeList(b->directory_list); b->directory_list = NULL; PHYSFS_freeList(b->directory_list); b->directory_list = NULL;
@ -136,35 +136,32 @@ static int browser_handler(UI_DIALOG *dlg, d_event *event, browser *b)
return 1; return 1;
} }
if ( b->help_button->pressed ) if (GADGET_PRESSED(b->help_button))
{ {
MessageBox( -1, -1, 1, "Sorry, no help is available!", "Ok" ); MessageBox( -1, -1, 1, "Sorry, no help is available!", "Ok" );
rval = 1; rval = 1;
} }
if (b->listbox1->moved || b->new_listboxes) if ((event->type == EVENT_UI_LISTBOX_MOVED) || b->new_listboxes)
{ {
if (b->listbox1->current_item >= 0 ) if (b->listbox1->current_item >= 0 )
ui_inputbox_set_text(b->user_file, b->filename_list[b->listbox1->current_item]); ui_inputbox_set_text(b->user_file, b->filename_list[b->listbox1->current_item]);
rval = 1;
}
if (b->listbox2->moved || b->new_listboxes)
{
if (b->listbox2->current_item >= 0 ) if (b->listbox2->current_item >= 0 )
ui_inputbox_set_text(b->user_file, b->directory_list[b->listbox2->current_item]); ui_inputbox_set_text(b->user_file, b->directory_list[b->listbox2->current_item]);
rval = 1; rval = 1;
} }
b->new_listboxes = 0; b->new_listboxes = 0;
if (b->button1->pressed || b->user_file->pressed || (b->listbox1->selected_item > -1 ) || (b->listbox2->selected_item > -1 )) if (GADGET_PRESSED(b->button1) || GADGET_PRESSED(b->user_file) || (event->type == EVENT_UI_LISTBOX_SELECTED))
{ {
char *p; char *p;
ui_mouse_hide(); ui_mouse_hide();
if (b->listbox2->selected_item > -1 ) if (ui_event_get_gadget(event) == (UI_GADGET *)listbox2)
strcpy(b->user_file->text, b->directory_list[b->listbox2->selected_item]); strcpy(b->user_file->text, b->directory_list[b->listbox2->current_item]);
strncpy(b->filename, b->view_dir, PATH_MAX); strncpy(b->filename, b->view_dir, PATH_MAX);

View file

@ -237,7 +237,7 @@ int ui_gadget_send_event(UI_DIALOG *dlg, event_type type, UI_GADGET *gadget)
UI_GADGET *ui_event_get_gadget(d_event *event) UI_GADGET *ui_event_get_gadget(d_event *event)
{ {
Assert(event->type == EVENT_UI_GADGET_PRESSED); // more to come? Assert(event->type >= EVENT_UI_GADGET_PRESSED); // Any UI event
return ((event_gadget *) event)->gadget; return ((event_gadget *) event)->gadget;
} }

View file

@ -118,7 +118,7 @@ static int key_dialog_handler(UI_DIALOG *dlg, d_event *event, UI_GADGET_BUTTON *
rval = 1; rval = 1;
} }
if ((*DoneButton)->pressed) if (GADGET_PRESSED(*DoneButton))
{ {
ui_close_dialog(dlg); ui_close_dialog(dlg);
rval = 1; rval = 1;

View file

@ -182,8 +182,7 @@ int ui_listbox_do( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox, d_event *event )
listbox->old_first_item = listbox->first_item; listbox->old_first_item = listbox->first_item;
if ((event->type == EVENT_UI_GADGET_PRESSED) && if (GADGET_PRESSED(listbox->scrollbar))
(ui_event_get_gadget(event) == (UI_GADGET *)listbox->scrollbar))
{ {
listbox->moved = 1; listbox->moved = 1;

View file

@ -44,7 +44,7 @@ static int menu_handler(UI_DIALOG *dlg, d_event *event, menu *m)
for (i=0; i<m->num_buttons; i++ ) for (i=0; i<m->num_buttons; i++ )
{ {
if (m->button_g[i]->pressed) if (GADGET_PRESSED(m->button_g[i]))
{ {
*(m->choice) = i+1; *(m->choice) = i+1;
return 1; return 1;

View file

@ -52,7 +52,7 @@ static int messagebox_handler(UI_DIALOG *dlg, d_event *event, messagebox *m)
for (i=0; i<m->num_buttons; i++ ) for (i=0; i<m->num_buttons; i++ )
{ {
if (m->button_g[i]->pressed) if (GADGET_PRESSED(m->button_g[i]))
{ {
*(m->choice) = i+1; *(m->choice) = i+1;
return 1; return 1;

View file

@ -41,7 +41,7 @@ static int popup_handler(UI_DIALOG *dlg, d_event *event, popup *p)
for (i=0; i<p->num_buttons; i++ ) for (i=0; i<p->num_buttons; i++ )
{ {
if (p->button_g[i]->pressed) if (GADGET_PRESSED(p->button_g[i]))
{ {
*(p->choice) = i+1; *(p->choice) = i+1;
return 1; return 1;