Use enum for window event result

This commit is contained in:
Kp 2014-08-06 02:10:49 +00:00
parent 553f17a3be
commit 4acbb40ad7
37 changed files with 412 additions and 501 deletions

View file

@ -22,7 +22,7 @@
struct window
{
grs_canvas w_canv; // the window's canvas to draw to
int (*w_callback)(window *wind, d_event *event, void *data); // the event handler
window_event_result (*w_callback)(window *wind, d_event *event, void *data); // the event handler
int w_visible; // whether it's visible
int w_modal; // modal = accept all user input exclusively
void *data; // whatever the user wants (eg menu data for 'newmenu' menus)
@ -71,12 +71,12 @@ int window_close(window *wind)
{
window *prev;
d_event event;
int (*w_callback)(window *wind, d_event *event, void *data) = wind->w_callback;
window_event_result (*w_callback)(window *wind, d_event *event, void *data) = wind->w_callback;
if (wind == window_get_front())
WINDOW_SEND_EVENT(wind, EVENT_WINDOW_DEACTIVATED); // Deactivate first
if (WINDOW_SEND_EVENT(wind, EVENT_WINDOW_CLOSE))
if (WINDOW_SEND_EVENT(wind, EVENT_WINDOW_CLOSE) == window_event_result::handled)
{
// User 'handled' the event, cancelling close
if (wind == window_get_front())
@ -208,7 +208,7 @@ extern void window_update_canvases(void)
wind->w_canv.cv_bitmap.bm_h);
}
int window_send_event(window *wind, d_event *event)
window_event_result window_send_event(window *wind, d_event *event)
{
return wind->w_callback(wind, event, wind->data);
}

View file

@ -17,9 +17,9 @@
#include "maths.h"
#ifdef __cplusplus
#include "window.h"
struct d_event;
struct window;
struct SDL_MouseButtonEvent;
struct SDL_MouseMotionEvent;
@ -51,7 +51,7 @@ extern void mouse_init(void);
extern void mouse_close(void);
extern int event_mouse_get_button(struct d_event *event);
extern void mouse_get_pos( int *x, int *y, int *z );
extern int mouse_in_window(struct window *wind);
window_event_result mouse_in_window(struct window *wind);
extern void mouse_get_delta( int *dx, int *dy, int *dz );
extern void event_mouse_get_delta(struct d_event *event, int *dx, int *dy, int *dz);
extern int mouse_get_btns();

View file

@ -32,11 +32,11 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#ifdef __cplusplus
#include "varutil.h"
#include "window.h"
struct grs_bitmap;
struct grs_canvas;
struct grs_font;
struct window;
struct UI_KEYPAD {
char description[100];
@ -271,16 +271,16 @@ extern void ui_close_dialog( UI_DIALOG * dlg );
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, const char * text, int (*function_to_call)(void) );
extern void ui_gadget_delete_all( UI_DIALOG * dlg );
extern int ui_gadget_send_event(UI_DIALOG *dlg, enum event_type type, UI_GADGET *gadget);
window_event_result ui_gadget_send_event(UI_DIALOG *dlg, enum event_type type, UI_GADGET *gadget);
extern UI_GADGET *ui_event_get_gadget(struct d_event *event);
extern int ui_dialog_do_gadgets( UI_DIALOG * dlg, struct d_event *event );
window_event_result ui_dialog_do_gadgets( UI_DIALOG * dlg, struct d_event *event );
extern void ui_draw_button( UI_DIALOG *dlg, UI_GADGET_BUTTON * button );
extern int ui_mouse_on_gadget( UI_GADGET * gadget );
extern int ui_button_do( UI_DIALOG *dlg, UI_GADGET_BUTTON * button, struct d_event *event );
window_event_result ui_button_do( UI_DIALOG *dlg, UI_GADGET_BUTTON * button, struct d_event *event );
extern int ui_listbox_do( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox, struct d_event *event );
window_event_result ui_listbox_do( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox, struct d_event *event );
extern void ui_draw_listbox( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox );
extern UI_GADGET_LISTBOX *ui_add_gadget_listbox(UI_DIALOG *dlg, short x, short y, short w, short h, short numitems, char **list);
@ -289,7 +289,7 @@ extern void ui_mega_process();
extern void ui_get_button_size( const char * text, int * width, int * height );
extern UI_GADGET_SCROLLBAR * ui_add_gadget_scrollbar( UI_DIALOG * dlg, short x, short y, short w, short h, int start, int stop, int position, int window_size );
extern int ui_scrollbar_do( UI_DIALOG *dlg, UI_GADGET_SCROLLBAR * scrollbar, struct d_event *event );
window_event_result ui_scrollbar_do( UI_DIALOG *dlg, UI_GADGET_SCROLLBAR * scrollbar, struct d_event *event );
extern void ui_draw_scrollbar( UI_DIALOG *dlg, UI_GADGET_SCROLLBAR * scrollbar );
@ -299,12 +299,12 @@ extern void ui_dprintf_at( UI_DIALOG * dlg, short x, short y, const char * forma
extern void ui_draw_radio( UI_DIALOG *dlg, UI_GADGET_RADIO * radio );
extern UI_GADGET_RADIO * ui_add_gadget_radio( UI_DIALOG * dlg, short x, short y, short w, short h, short group, const char * text );
extern int ui_radio_do( UI_DIALOG *dlg, UI_GADGET_RADIO * radio, struct d_event *event );
window_event_result ui_radio_do( UI_DIALOG *dlg, UI_GADGET_RADIO * radio, struct d_event *event );
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 );
extern int ui_checkbox_do( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox, struct d_event *event );
window_event_result ui_checkbox_do( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox, struct d_event *event );
extern void ui_checkbox_check(UI_GADGET_CHECKBOX * checkbox, int check);
extern UI_GADGET * ui_gadget_get_prev( UI_GADGET * gadget );
@ -316,11 +316,11 @@ extern void ui_listbox_change(UI_DIALOG *dlg, UI_GADGET_LISTBOX *listbox, short
extern void ui_draw_inputbox( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox );
extern UI_GADGET_INPUTBOX * ui_add_gadget_inputbox( UI_DIALOG * dlg, short x, short y, short w, short h, const char * text );
extern int ui_inputbox_do( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox, struct d_event *event );
window_event_result ui_inputbox_do( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox, struct d_event *event );
extern void ui_inputbox_set_text(UI_GADGET_INPUTBOX *inputbox, const char *text);
extern int ui_userbox_do( UI_DIALOG *dlg, UI_GADGET_USERBOX * userbox, struct d_event *event );
window_event_result ui_userbox_do( UI_DIALOG *dlg, UI_GADGET_USERBOX * userbox, struct d_event *event );
extern UI_GADGET_USERBOX * ui_add_gadget_userbox( UI_DIALOG * dlg, short x, short y, short w, short h );
extern void ui_draw_userbox( UI_DIALOG *dlg, UI_GADGET_USERBOX * userbox );
@ -336,7 +336,7 @@ void * ui_malloc( int size );
void ui_free( void * buffer );
UI_GADGET_KEYTRAP * ui_add_gadget_keytrap( UI_DIALOG * dlg, int key_to_trap, int (*function_to_call)(void) );
int ui_keytrap_do( UI_GADGET_KEYTRAP * keytrap, struct d_event *event );
window_event_result ui_keytrap_do( UI_GADGET_KEYTRAP * keytrap, struct d_event *event );
#define UI_RECORD_MOUSE 1
#define UI_RECORD_KEYS 2
@ -358,7 +358,7 @@ extern unsigned int ui_event_counter;
int ui_get_file( char * filename, const char * Filespec );
void ui_draw_icon( UI_GADGET_ICON * icon );
int ui_icon_do( UI_DIALOG *dlg, UI_GADGET_ICON * icon, struct d_event *event );
window_event_result ui_icon_do( UI_DIALOG *dlg, UI_GADGET_ICON * icon, struct d_event *event );
UI_GADGET_ICON * ui_add_gadget_icon( UI_DIALOG * dlg, const char * text, short x, short y, short w, short h, int k,int (*f)(void) );
int DecodeKeyText( const char * text );

View file

@ -25,13 +25,22 @@
struct window;
enum class window_event_result
{
// Window ignored event. Bubble up.
ignored,
// Window handled event.
handled,
close,
};
void arch_init(void);
template <typename T>
class window_subfunction_t
{
public:
typedef int (*type)(window *menu, d_event *event, T *userdata);
typedef window_event_result (*type)(window *menu, d_event *event, T *userdata);
};
class unused_window_userdata_t;
@ -56,11 +65,11 @@ extern void window_set_visible(window *wind, int visible);
extern int window_is_visible(window *wind);
extern grs_canvas *window_get_canvas(window *wind);
extern void window_update_canvases(void);
extern int window_send_event(window *wind, d_event *event);
window_event_result window_send_event(window *wind, d_event *event);
extern void window_set_modal(window *wind, int modal);
extern int window_is_modal(window *wind);
static inline int WINDOW_SEND_EVENT(window *w, d_event &event, const char *file, unsigned line, const char *e)
static inline window_event_result WINDOW_SEND_EVENT(window *w, d_event &event, const char *file, unsigned line, const char *e)
{
auto c = window_get_canvas(w);
con_printf(CON_DEBUG, "%s:%u: sending event %s to window of dimensions %dx%d", file, line, e, c->cv_bitmap.bm_w, c->cv_bitmap.bm_h);

View file

@ -46,7 +46,7 @@ struct vms_vector;
void DropBuddyMarker(object *objp);
void InitMarkerInput();
int MarkerInputMessage(int key);
window_event_result MarkerInputMessage(int key);
static const std::size_t NUM_MARKERS = 16;
static const std::size_t MARKER_MESSAGE_LEN = 40;

View file

@ -333,7 +333,7 @@ int allowed_to_fire_missile(void);
void check_rear_view(void);
window *game_setup(void);
int create_special_path(void);
int ReadControls(d_event *event);
window_event_result ReadControls(d_event *event);
void toggle_cockpit(void);
void game_render_frame();
extern fix Show_view_text_timer;
@ -342,7 +342,7 @@ extern int Last_level_path_created;
extern int force_cockpit_redraw;
extern ubyte DemoDoingRight,DemoDoingLeft;
extern fix64 Time_flash_last_played;
int game_handler(window *wind, d_event *event, unused_window_userdata_t *);
window_event_result game_handler(window *wind, d_event *event, unused_window_userdata_t *);
#ifdef EDITOR
void dump_used_textures_all();

View file

@ -331,7 +331,7 @@ extern int multi_quit_game;
extern msgsend_state_t multi_sending_message[MAX_PLAYERS];
extern int multi_defining_message;
extern int multi_message_input_sub(int key);
window_event_result multi_message_input_sub(int key);
extern void multi_send_message_start();
void multi_send_msgsend_state(msgsend_state_t state);
extern int multi_powerup_is_4pack(int);

View file

@ -135,9 +135,9 @@ UI_GADGET_BUTTON * ui_add_gadget_button( UI_DIALOG * dlg, short x, short y, shor
}
int ui_button_do(UI_DIALOG *dlg, UI_GADGET_BUTTON * button, d_event *event)
window_event_result ui_button_do(UI_DIALOG *dlg, UI_GADGET_BUTTON * button, d_event *event)
{
int rval = 0;
window_event_result rval = window_event_result::ignored;
button->oldposition = button->position;
button->pressed = 0;
@ -151,7 +151,7 @@ int ui_button_do(UI_DIALOG *dlg, UI_GADGET_BUTTON * button, d_event *event)
if (B1_JUST_PRESSED && OnMe)
{
button->position = 1;
rval = 1;
rval = window_event_result::handled;
}
else if (B1_JUST_RELEASED)
{
@ -174,7 +174,7 @@ int ui_button_do(UI_DIALOG *dlg, UI_GADGET_BUTTON * button, d_event *event)
((dlg->keyboard_focus_gadget==(UI_GADGET *)button) && ((keypress==KEY_SPACEBAR) || (keypress==KEY_ENTER)) ))
{
button->position = 2;
rval = 1;
rval = window_event_result::handled;
}
}
else if (event->type == EVENT_KEY_RELEASE)
@ -192,7 +192,7 @@ int ui_button_do(UI_DIALOG *dlg, UI_GADGET_BUTTON * button, d_event *event)
if ((keypress == button->hotkey1) && button->user_function1)
{
button->user_function1();
rval = 1;
rval = window_event_result::handled;
}
}
@ -202,12 +202,12 @@ int ui_button_do(UI_DIALOG *dlg, UI_GADGET_BUTTON * button, d_event *event)
if (button->pressed && button->user_function )
{
button->user_function();
rval = 1;
return window_event_result::handled;
}
else if (button->pressed)
{
ui_gadget_send_event(dlg, EVENT_UI_GADGET_PRESSED, (UI_GADGET *)button);
rval = 1;
return window_event_result::handled;
}
return rval;

View file

@ -89,10 +89,8 @@ UI_GADGET_CHECKBOX * ui_add_gadget_checkbox( UI_DIALOG * dlg, short x, short y,
}
int ui_checkbox_do( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox, d_event *event )
window_event_result ui_checkbox_do( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox, d_event *event )
{
int rval = 0;
checkbox->oldposition = checkbox->position;
checkbox->pressed = 0;
@ -105,7 +103,7 @@ int ui_checkbox_do( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox, d_event *even
if (B1_JUST_PRESSED && OnMe)
{
checkbox->position = 1;
rval = 1;
return window_event_result::handled;
}
else if (B1_JUST_RELEASED)
{
@ -126,7 +124,7 @@ int ui_checkbox_do( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox, d_event *even
if ((dlg->keyboard_focus_gadget==(UI_GADGET *)checkbox) && ((key==KEY_SPACEBAR) || (key==KEY_ENTER)) )
{
checkbox->position = 2;
rval = 1;
return window_event_result::handled;
}
}
else if (event->type == EVENT_KEY_RELEASE)
@ -145,13 +143,13 @@ int ui_checkbox_do( UI_DIALOG *dlg, UI_GADGET_CHECKBOX * checkbox, d_event *even
{
checkbox->flag ^= 1;
ui_gadget_send_event(dlg, EVENT_UI_GADGET_PRESSED, (UI_GADGET *)checkbox);
rval = 1;
return window_event_result::handled;
}
if (event->type == EVENT_WINDOW_DRAW)
ui_draw_checkbox( dlg, checkbox );
return rval;
return window_event_result::ignored;
}
void ui_checkbox_check(UI_GADGET_CHECKBOX * checkbox, int check)

View file

@ -166,21 +166,19 @@ static void ui_dialog_draw(UI_DIALOG *dlg)
// The dialog handler borrows heavily from the newmenu_handler
static int ui_dialog_handler(window *wind, d_event *event, UI_DIALOG *dlg)
static window_event_result ui_dialog_handler(window *wind, d_event *event, UI_DIALOG *dlg)
{
int rval = 0;
if (event->type == EVENT_WINDOW_CLOSED ||
event->type == EVENT_WINDOW_ACTIVATED ||
event->type == EVENT_WINDOW_DEACTIVATED)
return 0;
return window_event_result::ignored;
if (dlg->callback)
if ((*dlg->callback)(dlg, event, dlg->userdata))
return 1; // event handled
return window_event_result::handled; // event handled
if (!window_exists(wind))
return 1;
return window_event_result::handled;
switch (event->type)
{
@ -189,41 +187,32 @@ static int ui_dialog_handler(window *wind, d_event *event, UI_DIALOG *dlg)
case EVENT_MOUSE_MOVED:
/*return*/ ui_dialog_do_gadgets(dlg, event);
if (!window_exists(wind))
return 1;
rval = mouse_in_window(dlg->wind);
break;
return window_event_result::handled;
return mouse_in_window(dlg->wind);
case EVENT_KEY_COMMAND:
case EVENT_KEY_RELEASE:
rval = ui_dialog_do_gadgets(dlg, event);
break;
return ui_dialog_do_gadgets(dlg, event);
case EVENT_IDLE:
timer_delay2(50);
rval = ui_dialog_do_gadgets(dlg, event);
break;
return ui_dialog_do_gadgets(dlg, event);
case EVENT_WINDOW_DRAW:
{
d_event event2 = { EVENT_UI_DIALOG_DRAW };
ui_dialog_draw(dlg);
rval = ui_dialog_do_gadgets(dlg, event);
window_send_event(wind, &event2);
break;
window_event_result rval = ui_dialog_do_gadgets(dlg, event);
if (rval != window_event_result::close)
window_send_event(wind, &event2);
return rval;
}
case EVENT_WINDOW_CLOSE:
ui_gadget_delete_all(dlg);
selected_gadget = NULL;
d_free( dlg );
break;
return window_event_result::ignored;
default:
break;
return window_event_result::ignored;
}
return rval;
}
template <>

View file

@ -193,43 +193,33 @@ int ui_mouse_on_gadget( UI_GADGET * gadget )
return 0;
}
static int ui_gadget_do(UI_DIALOG *dlg, UI_GADGET *g, d_event *event)
static window_event_result ui_gadget_do(UI_DIALOG *dlg, UI_GADGET *g, d_event *event)
{
switch( g->kind )
{
case 1:
return ui_button_do(dlg, (UI_GADGET_BUTTON *)g, event);
break;
case 2:
return ui_listbox_do(dlg, (UI_GADGET_LISTBOX *)g, event);
break;
case 3:
return ui_scrollbar_do(dlg, (UI_GADGET_SCROLLBAR *)g, event);
break;
case 4:
return ui_radio_do(dlg, (UI_GADGET_RADIO *)g, event);
break;
case 5:
return ui_checkbox_do(dlg, (UI_GADGET_CHECKBOX *)g, event);
break;
case 6:
return ui_inputbox_do(dlg, (UI_GADGET_INPUTBOX *)g, event);
break;
case 7:
return ui_userbox_do(dlg, (UI_GADGET_USERBOX *)g, event);
break;
case 8:
return ui_keytrap_do((UI_GADGET_KEYTRAP *)g, event);
break;
case 9:
return ui_icon_do(dlg, (UI_GADGET_ICON *)g, event);
break;
}
return 0;
return window_event_result::ignored;
}
int ui_gadget_send_event(UI_DIALOG *dlg, event_type type, UI_GADGET *gadget)
window_event_result ui_gadget_send_event(UI_DIALOG *dlg, event_type type, UI_GADGET *gadget)
{
event_gadget event;
@ -248,19 +238,18 @@ UI_GADGET *ui_event_get_gadget(d_event *event)
return ((event_gadget *) event)->gadget;
}
int ui_dialog_do_gadgets(UI_DIALOG * dlg, d_event *event)
window_event_result ui_dialog_do_gadgets(UI_DIALOG * dlg, d_event *event)
{
int keypress = 0;
UI_GADGET * tmp, * tmp1;
window *wind;
int rval = 0;
if (event->type == EVENT_KEY_COMMAND)
keypress = event_key_get(event);
tmp = dlg->gadget;
if (tmp == NULL) return 0;
if (tmp == NULL) return window_event_result::ignored;
if (selected_gadget==NULL)
selected_gadget = tmp;
@ -324,13 +313,14 @@ int ui_dialog_do_gadgets(UI_DIALOG * dlg, d_event *event)
}
}
window_event_result rval = window_event_result::ignored;
if (dlg->keyboard_focus_gadget != tmp1)
{
if (dlg->keyboard_focus_gadget != NULL )
dlg->keyboard_focus_gadget->status = 1;
if (tmp1 != NULL )
tmp1->status = 1;
rval = 1;
rval = window_event_result::handled;
if (keypress)
return rval;

View file

@ -114,13 +114,12 @@ UI_GADGET_ICON * ui_add_gadget_icon( UI_DIALOG * dlg, const char * text, short x
}
int ui_icon_do( UI_DIALOG *dlg, UI_GADGET_ICON * icon, d_event *event )
window_event_result ui_icon_do( UI_DIALOG *dlg, UI_GADGET_ICON * icon, d_event *event )
{
int rval = 0;
icon->oldposition = icon->position;
icon->pressed = 0;
window_event_result rval = window_event_result::ignored;
if (event->type == EVENT_MOUSE_BUTTON_DOWN || event->type == EVENT_MOUSE_BUTTON_UP)
{
int OnMe;
@ -130,7 +129,7 @@ int ui_icon_do( UI_DIALOG *dlg, UI_GADGET_ICON * icon, d_event *event )
if (B1_JUST_PRESSED && OnMe)
{
icon->position = 1;
rval = 1;
rval = window_event_result::handled;
}
else if (B1_JUST_RELEASED)
{
@ -151,7 +150,7 @@ int ui_icon_do( UI_DIALOG *dlg, UI_GADGET_ICON * icon, d_event *event )
if (key == icon->trap_key)
{
icon->position = 1;
rval = 1;
rval = window_event_result::handled;
}
}
else if (event->type == EVENT_KEY_RELEASE)
@ -171,7 +170,7 @@ int ui_icon_do( UI_DIALOG *dlg, UI_GADGET_ICON * icon, d_event *event )
icon->status = 1;
icon->flag = (sbyte)icon->user_function();
ui_gadget_send_event(dlg, EVENT_UI_GADGET_PRESSED, (UI_GADGET *)icon);
rval = 1;
rval = window_event_result::handled;
}
if (event->type == EVENT_WINDOW_DRAW)

View file

@ -99,11 +99,10 @@ UI_GADGET_INPUTBOX * ui_add_gadget_inputbox( UI_DIALOG * dlg, short x, short y,
}
int ui_inputbox_do( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox, d_event *event )
window_event_result ui_inputbox_do( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox, d_event *event )
{
unsigned char ascii;
int keypress = 0;
int rval = 0;
if (event->type == EVENT_KEY_COMMAND)
keypress = event_key_get(event);
@ -111,6 +110,7 @@ int ui_inputbox_do( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox, d_event *even
inputbox->oldposition = inputbox->position;
inputbox->pressed=0;
window_event_result rval = window_event_result::ignored;
if (dlg->keyboard_focus_gadget==(UI_GADGET *)inputbox)
{
switch( keypress )
@ -124,13 +124,13 @@ int ui_inputbox_do( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox, d_event *even
inputbox->text[inputbox->position] = 0;
inputbox->status = 1;
if (inputbox->first_time) inputbox->first_time = 0;
rval = 1;
rval = window_event_result::handled;
break;
case (KEY_ENTER):
inputbox->pressed=1;
inputbox->status = 1;
if (inputbox->first_time) inputbox->first_time = 0;
rval = 1;
rval = window_event_result::handled;
break;
default:
ascii = key_ascii();
@ -142,7 +142,7 @@ int ui_inputbox_do( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox, d_event *even
}
inputbox->text[inputbox->position++] = ascii;
inputbox->text[inputbox->position] = 0;
rval = 1;
rval = window_event_result::handled;
}
inputbox->status = 1;
break;
@ -154,7 +154,7 @@ int ui_inputbox_do( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox, d_event *even
if (inputbox->pressed)
{
ui_gadget_send_event(dlg, EVENT_UI_GADGET_PRESSED, (UI_GADGET *)inputbox);
rval = 1;
rval = window_event_result::handled;
}
if (event->type == EVENT_WINDOW_DRAW)

View file

@ -42,19 +42,16 @@ UI_GADGET_KEYTRAP * ui_add_gadget_keytrap( UI_DIALOG * dlg, int key_to_trap, int
}
int ui_keytrap_do( UI_GADGET_KEYTRAP * keytrap, d_event *event )
window_event_result ui_keytrap_do( UI_GADGET_KEYTRAP * keytrap, d_event *event )
{
int keypress = 0;
int rval = 0;
if (event->type == EVENT_KEY_COMMAND)
keypress = event_key_get(event);
if ( keypress == keytrap->trap_key )
{
keytrap->user_function();
rval = 1;
return window_event_result::handled;
}
return rval;
return window_event_result::ignored;
}

View file

@ -153,16 +153,14 @@ UI_GADGET_LISTBOX * ui_add_gadget_listbox(UI_DIALOG *dlg, short x, short y, shor
}
int ui_listbox_do( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox, d_event *event )
window_event_result ui_listbox_do( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox, d_event *event )
{
int mitem, oldfakepos, kf;
int keypress = 0;
int rval = 0;
if (event->type == EVENT_WINDOW_DRAW)
{
ui_draw_listbox( dlg, listbox );
return 0;
return window_event_result::ignored;
}
if (event->type == EVENT_KEY_COMMAND)
@ -184,7 +182,7 @@ int ui_listbox_do( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox, d_event *event )
dlg->keyboard_focus_gadget = ui_gadget_get_next((UI_GADGET *)listbox);
}
return rval;
return window_event_result::ignored;
}
listbox->old_current_item = listbox->current_item;
@ -208,17 +206,18 @@ int ui_listbox_do( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox, d_event *event )
if (B1_JUST_RELEASED)
listbox->dragging = 0;
window_event_result rval = window_event_result::ignored;
if (B1_JUST_PRESSED && ui_mouse_on_gadget( (UI_GADGET *)listbox ))
{
listbox->dragging = 1;
rval = 1;
rval = window_event_result::handled;
}
if ( dlg->keyboard_focus_gadget==(UI_GADGET *)listbox )
{
if (keypress==KEY_ENTER) {
listbox->selected_item = listbox->current_item;
rval = 1;
rval = window_event_result::handled;
}
kf = 0;
@ -254,7 +253,7 @@ int ui_listbox_do( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox, d_event *event )
if (kf==1)
{
listbox->moved = 1;
rval = 1;
rval = window_event_result::handled;
if (listbox->current_item<0)
listbox->current_item=0;
@ -369,7 +368,7 @@ int ui_listbox_do( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox, d_event *event )
if (B1_DOUBLE_CLICKED )
{
listbox->selected_item = listbox->current_item;
rval = 1;
rval = window_event_result::handled;
}
}
@ -377,7 +376,7 @@ int ui_listbox_do( UI_DIALOG *dlg, UI_GADGET_LISTBOX * listbox, d_event *event )
if (listbox->moved || (listbox->selected_item > 0))
{
ui_gadget_send_event(dlg, (listbox->selected_item > 0) ? EVENT_UI_LISTBOX_SELECTED : EVENT_UI_LISTBOX_MOVED, (UI_GADGET *)listbox);
rval = 1;
return window_event_result::handled;
}
return rval;

View file

@ -64,8 +64,8 @@ static int state;
#define CMENU (Menu[0].CurrentItem+1)
static int menubar_handler(window *wind, d_event *event, MENU *menu);
static int menu_handler(window *wind, d_event *event, MENU *menu);
static window_event_result menubar_handler(window *wind, d_event *event, MENU *menu);
static window_event_result menu_handler(window *wind, d_event *event, MENU *menu);
//------------------------- Show a menu item -------------------
@ -270,7 +270,7 @@ static void menu_hide_all()
static int state2_alt_down;
static int do_state_0(d_event *event)
static window_event_result do_state_0(d_event *event)
{
int i, j;
int keypress = 0;
@ -299,7 +299,7 @@ static int do_state_0(d_event *event)
menu_show( &Menu[ CMENU ] );
menu_show( &Menu[0] );
return 1;
return window_event_result::handled;
}
}
@ -310,7 +310,7 @@ static int do_state_0(d_event *event)
{
if (Menu[i].Item[j].user_function)
Menu[i].Item[j].user_function();
return 1;
return window_event_result::handled;
}
}
@ -328,7 +328,7 @@ static int do_state_0(d_event *event)
window_set_modal(Menu[0].wind, 1);
menu_show( &Menu[0] );
return 1;
return window_event_result::handled;
}
i = menu_check_mouse_item( &Menu[0] );
@ -344,17 +344,16 @@ static int do_state_0(d_event *event)
window_set_modal(Menu[0].wind, 0);
menu_show( &Menu[ CMENU ] );
menu_show( &Menu[0] );
return 1;
return window_event_result::handled;
}
return 0;
return window_event_result::ignored;
}
static int do_state_1(d_event *event)
static window_event_result do_state_1(d_event *event)
{
int i;
int keypress = 0;
int rval = 0;
window_event_result rval = window_event_result::ignored;
if (event->type == EVENT_KEY_COMMAND)
keypress = event_key_get(event);
@ -366,11 +365,7 @@ static int do_state_1(d_event *event)
Menu[0].ShowBar = 1;
Menu[0].Active = 1;
menu_show( &Menu[0] );
#if 0
state = 0;
menu_hide_all();
#endif
rval = 1;
rval = window_event_result::handled;
}
i = menu_match_keypress( &Menu[0], keypress );
@ -387,7 +382,7 @@ static int do_state_1(d_event *event)
menu_show( &Menu[ CMENU ] );
menu_show( &Menu[0] );
rval = 1;
rval = window_event_result::handled;
}
i = menu_check_mouse_item( &Menu[0] );
@ -396,7 +391,7 @@ static int do_state_1(d_event *event)
{
state = 0;
menu_hide_all();
rval = 1;
return window_event_result::handled;
}
if ( B1_JUST_PRESSED && (i > -1))
@ -410,32 +405,31 @@ static int do_state_1(d_event *event)
window_set_modal(Menu[0].wind, 0);
menu_show( &Menu[ CMENU ] );
menu_show( &Menu[0] );
rval = 1;
return window_event_result::handled;
}
return rval;
}
static int do_state_2(d_event *event)
static window_event_result do_state_2(d_event *event)
{
int i;
int keypress = 0;
int rval = 0;
window_event_result rval = window_event_result::ignored;
if (event->type == EVENT_KEY_COMMAND)
keypress = event_key_get(event);
if (keypress & KEY_ALTED)
{
state2_alt_down = 1;
rval = 1;
rval = window_event_result::handled;
}
if ((event->type == EVENT_KEY_RELEASE) && !(event_key_get(event) & KEY_ALTED) && state2_alt_down)
{
state = 0;
menu_hide_all();
rval = 1;
rval = window_event_result::handled;
}
switch( keypress )
@ -443,22 +437,19 @@ static int do_state_2(d_event *event)
case KEY_ESC:
state = 0;
menu_hide_all();
rval = 1;
break;
return window_event_result::handled;
case KEY_LEFT:
case KEY_PAD4:
i = Menu[0].CurrentItem-1;
if (i < 0 ) i = Menu[0].NumItems-1;
menu_move_bar_to( &Menu[0], i );
rval = 1;
break;
return window_event_result::handled;
case KEY_RIGHT:
case KEY_PAD6:
i = Menu[0].CurrentItem+1;
if (i >= Menu[0].NumItems ) i = 0;
menu_move_bar_to( &Menu[0], i );
rval = 1;
break;
return window_event_result::handled;
case KEY_ENTER:
case KEY_PADENTER:
case KEY_DOWN:
@ -470,8 +461,7 @@ static int do_state_2(d_event *event)
window_set_modal(Menu[0].wind, 0);
menu_show( &Menu[ 0 ] );
menu_show( &Menu[ CMENU ] );
rval = 1;
break;
return window_event_result::handled;
default:
i = menu_match_keypress( &Menu[0], keypress );
@ -487,8 +477,7 @@ static int do_state_2(d_event *event)
Menu[0].ShowBar = 1;
menu_show( &Menu[ CMENU ] );
menu_show( &Menu[0] );
rval = 1;
break;
return window_event_result::handled;
}
i = menu_check_mouse_item( &Menu[0] );
@ -497,8 +486,7 @@ static int do_state_2(d_event *event)
{
state = 0;
menu_hide_all();
rval = 1;
break;
return window_event_result::handled;
}
if (i > -1)
@ -512,8 +500,7 @@ static int do_state_2(d_event *event)
Menu[0].ShowBar = 1;
menu_show( &Menu[ CMENU ] );
menu_show( &Menu[0] );
rval = 1;
break;
return window_event_result::handled;
}
}
@ -522,14 +509,13 @@ static int do_state_2(d_event *event)
static int menu_handler(window *wind, d_event *event, MENU *menu)
static window_event_result menu_handler(window *wind, d_event *event, MENU *menu)
{
int i;
int keypress = 0;
int rval = 0;
if (state != 3)
return 0;
return window_event_result::ignored;
if (event->type == EVENT_KEY_COMMAND)
keypress = event_key_get(event);
@ -538,9 +524,9 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
state = 0;
menu_hide_all();
menu->wind = NULL;
return 0;
return window_event_result::ignored;
}
window_event_result rval = window_event_result::ignored;
switch( keypress )
{
case 0:
@ -548,7 +534,7 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
case KEY_ESC:
state = 0;
menu_hide_all();
rval = 1;
rval = window_event_result::handled;
break;
case KEY_DOWN:
case KEY_PAD2:
@ -559,7 +545,7 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
i = 0;
} while( Menu[CMENU].Item[i].Text[0] == '-');
menu_move_bar_to( &Menu[ CMENU ], i );
rval = 1;
rval = window_event_result::handled;
break;
case KEY_UP:
case KEY_PAD8:
@ -571,7 +557,7 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
i = Menu[ CMENU ].NumItems-1;
} while( Menu[CMENU].Item[i].Text[0] == '-');
menu_move_bar_to( &Menu[ CMENU ], i );
rval = 1;
rval = window_event_result::handled;
break;
case KEY_RIGHT:
case KEY_PAD6:
@ -582,7 +568,7 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
Menu[CMENU].ShowBar = 1;
Menu[CMENU].Active = 1;
menu_show( &Menu[CMENU] );
rval = 1;
rval = window_event_result::handled;
break;
case KEY_LEFT:
case KEY_PAD4:
@ -593,7 +579,7 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
Menu[ CMENU ].ShowBar = 1;
Menu[CMENU].Active = 1;
menu_show( &Menu[ CMENU ] );
rval = 1;
rval = window_event_result::handled;
break;
case KEY_ENTER:
case KEY_PADENTER:
@ -603,7 +589,7 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
if (Menu[CMENU].Item[ Menu[CMENU].CurrentItem ].user_function)
Menu[CMENU].Item[ Menu[CMENU].CurrentItem ].user_function();
rval = 1;
rval = window_event_result::handled;
break;
default:
@ -617,7 +603,7 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
if (Menu[CMENU].Item[ Menu[CMENU].CurrentItem ].user_function)
Menu[CMENU].Item[ Menu[CMENU].CurrentItem ].user_function();
rval = 1;
rval = window_event_result::handled;
break;
}
}
@ -636,12 +622,12 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
if (Menu[CMENU].Item[ Menu[CMENU].CurrentItem ].user_function)
Menu[CMENU].Item[ Menu[CMENU].CurrentItem ].user_function();
rval = 1;
rval = window_event_result::handled;
}
else
{
menu_move_bar_to( &Menu[ CMENU ], i );
rval = 1;
rval = window_event_result::handled;
}
} else {
i = menu_check_mouse_item( &Menu[0] );
@ -656,14 +642,14 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
menu_show( &Menu[ CMENU ] );
}
rval = 1;
rval = window_event_result::handled;
}
if ( B1_JUST_RELEASED )
{
state = 0;
menu_hide_all();
rval = 1;
rval = window_event_result::handled;
}
}
}
@ -671,20 +657,18 @@ static int menu_handler(window *wind, d_event *event, MENU *menu)
if (event->type == EVENT_WINDOW_DRAW)
{
menu_draw(&Menu[CMENU]);
rval = 1;
return window_event_result::handled;
}
return rval;
}
static int menubar_handler(window *wind, d_event *event, MENU *menu)
static window_event_result menubar_handler(window *wind, d_event *event, MENU *menu)
{
int rval = 0;
if (event->type == EVENT_WINDOW_DRAW)
{
menu_draw(&Menu[0]);
return 1;
return window_event_result::handled;
}
else if (event->type == EVENT_WINDOW_CLOSE)
{
@ -709,26 +693,18 @@ static int menubar_handler(window *wind, d_event *event, MENU *menu)
switch (state)
{
case 0:
rval = do_state_0(event);
break;
return do_state_0(event);
case 1:
rval = do_state_1(event);
break;
return do_state_1(event);
case 2:
rval = do_state_2(event);
break;
return do_state_2(event);
case 3:
break;
default:
state = 0;
menu_hide_all();
}
return rval;
return window_event_result::ignored;
}
static void CommaParse( int n, char * dest, char * source )

View file

@ -92,15 +92,14 @@ UI_GADGET_RADIO * ui_add_gadget_radio( UI_DIALOG * dlg, short x, short y, short
}
int ui_radio_do( UI_DIALOG *dlg, UI_GADGET_RADIO * radio, d_event *event )
window_event_result ui_radio_do( UI_DIALOG *dlg, UI_GADGET_RADIO * radio, d_event *event )
{
UI_GADGET * tmp;
UI_GADGET_RADIO * tmpr;
int rval = 0;
radio->oldposition = radio->position;
radio->pressed = 0;
window_event_result rval = window_event_result::ignored;
if (event->type == EVENT_MOUSE_BUTTON_DOWN || event->type == EVENT_MOUSE_BUTTON_UP)
{
int OnMe;
@ -110,7 +109,7 @@ int ui_radio_do( UI_DIALOG *dlg, UI_GADGET_RADIO * radio, d_event *event )
if ( B1_JUST_PRESSED && OnMe)
{
radio->position = 1;
rval = 1;
rval = window_event_result::handled;
}
else if (B1_JUST_RELEASED)
{
@ -131,7 +130,7 @@ int ui_radio_do( UI_DIALOG *dlg, UI_GADGET_RADIO * radio, d_event *event )
if ((dlg->keyboard_focus_gadget==(UI_GADGET *)radio) && ((key==KEY_SPACEBAR) || (key==KEY_ENTER)) )
{
radio->position = 2;
rval = 1;
rval = window_event_result::handled;
}
}
else if (event->type == EVENT_KEY_RELEASE)
@ -166,7 +165,7 @@ int ui_radio_do( UI_DIALOG *dlg, UI_GADGET_RADIO * radio, d_event *event )
}
radio->flag = 1;
ui_gadget_send_event(dlg, EVENT_UI_GADGET_PRESSED, (UI_GADGET *)radio);
rval = 1;
rval = window_event_result::handled;
}
if (event->type == EVENT_WINDOW_DRAW)

View file

@ -96,17 +96,17 @@ UI_GADGET_SCROLLBAR * ui_add_gadget_scrollbar( UI_DIALOG * dlg, short x, short y
}
int ui_scrollbar_do( UI_DIALOG *dlg, UI_GADGET_SCROLLBAR * scrollbar, d_event *event )
window_event_result ui_scrollbar_do( UI_DIALOG *dlg, UI_GADGET_SCROLLBAR * scrollbar, d_event *event )
{
int OnMe, OnSlider, keyfocus;
int oldpos, op;
int x, y, z;
int rval = 0;
window_event_result rval = window_event_result::ignored;
if (event->type == EVENT_WINDOW_DRAW)
{
ui_draw_scrollbar( dlg, scrollbar );
return 0;
return window_event_result::ignored;
}
keyfocus = 0;
@ -119,7 +119,7 @@ int ui_scrollbar_do( UI_DIALOG *dlg, UI_GADGET_SCROLLBAR * scrollbar, d_event *e
scrollbar->position = 0;
scrollbar->fake_position = 0;
ui_draw_scrollbar( dlg, scrollbar );
return 0;
return window_event_result::ignored;
}
op = scrollbar->position;
@ -138,12 +138,12 @@ int ui_scrollbar_do( UI_DIALOG *dlg, UI_GADGET_SCROLLBAR * scrollbar, d_event *e
if (key & KEY_UP)
{
scrollbar->up_button->position = 2;
rval = 1;
rval = window_event_result::handled;
}
else if (key & KEY_DOWN)
{
scrollbar->down_button->position = 2;
rval = 1;
rval = window_event_result::handled;
}
}
else if (keyfocus && event->type == EVENT_KEY_RELEASE)
@ -155,12 +155,12 @@ int ui_scrollbar_do( UI_DIALOG *dlg, UI_GADGET_SCROLLBAR * scrollbar, d_event *e
if (key & KEY_UP)
{
scrollbar->up_button->position = 0;
rval = 1;
rval = window_event_result::handled;
}
else if (key & KEY_DOWN)
{
scrollbar->down_button->position = 0;
rval = 1;
rval = window_event_result::handled;
}
}
@ -216,12 +216,12 @@ int ui_scrollbar_do( UI_DIALOG *dlg, UI_GADGET_SCROLLBAR * scrollbar, d_event *e
scrollbar->drag_x = x;
scrollbar->drag_y = y;
scrollbar->drag_starting = scrollbar->fake_position;
rval = 1;
rval = window_event_result::handled;
}
else if (B1_JUST_PRESSED && OnMe)
{
scrollbar->dragging = 2; // outside the slider
rval = 1;
rval = window_event_result::handled;
}
if ((scrollbar->dragging == 2) && OnMe && !OnSlider && (timer_query() > scrollbar->last_scrolled + 4))
@ -285,7 +285,7 @@ int ui_scrollbar_do( UI_DIALOG *dlg, UI_GADGET_SCROLLBAR * scrollbar, d_event *e
if (scrollbar->moved)
{
ui_gadget_send_event(dlg, EVENT_UI_GADGET_PRESSED, (UI_GADGET *)scrollbar);
rval = 1;
rval = window_event_result::handled;
}
if (oldpos != scrollbar->fake_position)

View file

@ -76,12 +76,12 @@ UI_GADGET_USERBOX * ui_add_gadget_userbox( UI_DIALOG * dlg, short x, short y, sh
}
int ui_userbox_do( UI_DIALOG *dlg, UI_GADGET_USERBOX * userbox, d_event *event )
window_event_result ui_userbox_do( UI_DIALOG *dlg, UI_GADGET_USERBOX * userbox, d_event *event )
{
int OnMe, olddrag;
int x, y, z;
int keypress = 0;
int rval = 0;
window_event_result rval = window_event_result::ignored;
if (event->type == EVENT_WINDOW_DRAW)
ui_draw_userbox( dlg, userbox );
@ -108,14 +108,14 @@ int ui_userbox_do( UI_DIALOG *dlg, UI_GADGET_USERBOX * userbox, d_event *event )
userbox->b1_held_down = 1;
userbox->b1_drag_x1 = x - userbox->x1;
userbox->b1_drag_y1 = y - userbox->y1;
rval = 1;
rval = window_event_result::handled;
}
else if (B1_JUST_RELEASED)
{
if (userbox->b1_held_down)
userbox->b1_clicked = 1;
userbox->b1_held_down = 0;
rval = 1;
rval = window_event_result::handled;
}
if ( (event->type == EVENT_MOUSE_MOVED) && userbox->b1_held_down )
@ -128,7 +128,7 @@ int ui_userbox_do( UI_DIALOG *dlg, UI_GADGET_USERBOX * userbox, d_event *event )
if ( B1_DOUBLE_CLICKED )
{
userbox->b1_double_clicked = 1;
rval = 1;
rval = window_event_result::handled;
}
else
userbox->b1_double_clicked = 0;
@ -149,13 +149,13 @@ int ui_userbox_do( UI_DIALOG *dlg, UI_GADGET_USERBOX * userbox, d_event *event )
if (dlg->keyboard_focus_gadget==(UI_GADGET *)userbox)
{
userbox->keypress = keypress;
rval = 1;
rval = window_event_result::handled;
}
if (userbox->b1_clicked || userbox->b1_dragging)
{
ui_gadget_send_event(dlg, userbox->b1_clicked ? EVENT_UI_GADGET_PRESSED : EVENT_UI_USERBOX_DRAGGED, (UI_GADGET *)userbox);
rval = 1;
rval = window_event_result::handled;
}
return rval;

View file

@ -1626,7 +1626,7 @@ struct escort_menu
char msg[300];
};
static int escort_menu_keycommand(window *wind, d_event *event, escort_menu *menu)
static window_event_result escort_menu_keycommand(window *wind, d_event *event, escort_menu *menu)
{
int key;
@ -1648,13 +1648,11 @@ static int escort_menu_keycommand(window *wind, d_event *event, escort_menu *men
set_escort_special_goal(key);
Last_buddy_key = -1;
window_close(wind);
return 1;
return window_event_result::close;
case KEY_ESC:
case KEY_ENTER:
window_close(wind);
return 1;
return window_event_result::close;
case KEY_T: {
char msg[32];
int temp;
@ -1670,19 +1668,17 @@ static int escort_menu_keycommand(window *wind, d_event *event, escort_menu *men
buddy_message("Messages %s.", msg);
Buddy_messages_suppressed = temp;
window_close(wind);
return 1;
return window_event_result::close;
}
default:
break;
}
return 0;
return window_event_result::ignored;
}
static int escort_menu_handler(window *wind, d_event *event, escort_menu *menu)
static window_event_result escort_menu_handler(window *wind, d_event *event, escort_menu *menu)
{
switch (event->type)
{
@ -1692,7 +1688,6 @@ static int escort_menu_handler(window *wind, d_event *event, escort_menu *menu)
case EVENT_KEY_COMMAND:
return escort_menu_keycommand(wind, event, menu);
case EVENT_IDLE:
timer_delay2(50);
break;
@ -1702,15 +1697,11 @@ static int escort_menu_handler(window *wind, d_event *event, escort_menu *menu)
break;
case EVENT_WINDOW_CLOSE:
return 0; // continue closing
break;
return window_event_result::ignored; // continue closing
default:
return 0;
break;
return window_event_result::ignored;
}
return 1;
return window_event_result::handled;
}
void do_escort_menu(void)

View file

@ -264,19 +264,22 @@ struct movie
int paused;
};
static int show_pause_message(window *wind, d_event *event, unused_window_userdata_t *)
static window_event_result show_pause_message(window *wind, d_event *event, unused_window_userdata_t *)
{
switch (event->type)
{
case EVENT_MOUSE_BUTTON_DOWN:
if (event_mouse_get_button(event) != 0)
return 0;
return window_event_result::ignored;
// else fall through
case EVENT_KEY_COMMAND:
if (!call_default_handler(event))
{
window_close(wind);
return 1;
return window_event_result::close;
}
return window_event_result::handled;
case EVENT_WINDOW_DRAW:
{
@ -300,11 +303,10 @@ static int show_pause_message(window *wind, d_event *event, unused_window_userda
default:
break;
}
return 0;
return window_event_result::ignored;
}
static int MovieHandler(window *wind, d_event *event, movie *m)
static window_event_result MovieHandler(window *wind, d_event *event, movie *m)
{
int key;
@ -326,7 +328,7 @@ static int MovieHandler(window *wind, d_event *event, movie *m)
if (key == KEY_ESC) {
m->result = m->aborted = 1;
window_close(wind);
return 1;
return window_event_result::close;
}
// If PAUSE pressed, then pause movie
@ -334,7 +336,7 @@ static int MovieHandler(window *wind, d_event *event, movie *m)
{
if (window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, show_pause_message, unused_window_userdata))
MVE_rmHoldMovie();
return 1;
return window_event_result::handled;
}
break;
@ -345,7 +347,7 @@ static int MovieHandler(window *wind, d_event *event, movie *m)
if (m->result)
{
window_close(wind);
return 1;
return window_event_result::close;
}
}
@ -365,8 +367,7 @@ static int MovieHandler(window *wind, d_event *event, movie *m)
default:
break;
}
return 0;
return window_event_result::ignored;
}
//returns status. see movie.h

View file

@ -124,9 +124,9 @@ int call_default_handler(d_event *event)
void event_send(d_event *event)
{
window *wind;
int handled = 0;
window_event_result handled = window_event_result::ignored;
for (wind = window_get_front(); wind != NULL && !handled; wind = window_get_prev(wind))
for (wind = window_get_front(); wind != NULL && handled == window_event_result::ignored; wind = window_get_prev(wind))
if (window_is_visible(wind))
{
handled = window_send_event(wind, event);
@ -137,7 +137,7 @@ void event_send(d_event *event)
break;
}
if (!handled)
if (handled == window_event_result::ignored)
call_default_handler(event);
}

View file

@ -185,7 +185,7 @@ void mouse_get_pos( int *x, int *y, int *z )
*z=Mouse.z;
}
int mouse_in_window(window *wind)
window_event_result mouse_in_window(window *wind)
{
grs_canvas *canv;
@ -193,7 +193,7 @@ int mouse_in_window(window *wind)
return (Mouse.x >= canv->cv_bitmap.bm_x) &&
(Mouse.x <= canv->cv_bitmap.bm_x + canv->cv_bitmap.bm_w) &&
(Mouse.y >= canv->cv_bitmap.bm_y) &&
(Mouse.y <= canv->cv_bitmap.bm_y + canv->cv_bitmap.bm_h);
(Mouse.y <= canv->cv_bitmap.bm_y + canv->cv_bitmap.bm_h) ? window_event_result::handled : window_event_result::ignored;
}
void mouse_get_delta( int *dx, int *dy, int *dz )

View file

@ -283,7 +283,7 @@ static void clear_pad_display(void)
}
// ------------------------------------------------------------------------------------
static int info_display_all(window *wind, d_event *event, unused_window_userdata_t *)
static window_event_result info_display_all(window *wind, d_event *event, unused_window_userdata_t *)
{
static int old_padnum = -1;
int padnum,show_all = 1; // always redraw
@ -316,8 +316,7 @@ static int info_display_all(window *wind, d_event *event, unused_window_userdata
break;
}
grd_curcanv = save_canvas;
return 1;
return window_event_result::handled;
case EVENT_WINDOW_CLOSE:
Pad_info = NULL;
break;
@ -325,8 +324,7 @@ static int info_display_all(window *wind, d_event *event, unused_window_userdata
default:
break;
}
return 0;
return window_event_result::ignored;
}
// ------------------------------------------------------------------------------------

View file

@ -636,7 +636,7 @@ static void recompute_automap_segment_visibility(automap *am)
adjust_segment_limit(am, am->segment_limit);
}
static int automap_key_command(window *wind, d_event *event, automap *am)
static window_event_result automap_key_command(window *wind, d_event *event, automap *am)
{
int c = event_key_get(event);
#if defined(DXX_BUILD_DESCENT_II)
@ -649,17 +649,15 @@ static int automap_key_command(window *wind, d_event *event, automap *am)
case KEY_PRINT_SCREEN: {
gr_set_current_canvas(NULL);
save_screen_shot(1);
return 1;
return window_event_result::handled;
}
case KEY_ESC:
if (am->leave_mode==0)
{
window_close(wind);
return 1;
return window_event_result::close;
}
return 1;
return window_event_result::handled;
#if defined(DXX_BUILD_DESCENT_I)
case KEY_ALTED+KEY_F: // Alt+F shows full map, if cheats enabled
if (cheats.enabled)
@ -668,28 +666,27 @@ static int automap_key_command(window *wind, d_event *event, automap *am)
// if cheat of map powerup, work with full depth
recompute_automap_segment_visibility(am);
}
return 1;
return window_event_result::handled;
#endif
#ifndef NDEBUG
case KEY_DEBUGGED+KEY_F: {
Automap_debug_show_all_segments = !Automap_debug_show_all_segments;
recompute_automap_segment_visibility(am);
}
return 1;
return window_event_result::handled;
#endif
case KEY_F9:
if (am->segment_limit > 1) {
am->segment_limit--;
adjust_segment_limit(am, am->segment_limit);
}
return 1;
return window_event_result::handled;
case KEY_F10:
if (am->segment_limit < am->max_segments_away) {
am->segment_limit++;
adjust_segment_limit(am, am->segment_limit);
}
return 1;
return window_event_result::handled;
#if defined(DXX_BUILD_DESCENT_II)
case KEY_1:
case KEY_2:
@ -712,8 +709,7 @@ static int automap_key_command(window *wind, d_event *event, automap *am)
if (MarkerObject[marker_num] != object_none)
HighlightMarker=marker_num;
}
return 1;
return window_event_result::handled;
case KEY_D+KEY_CTRLED:
if (HighlightMarker > -1 && MarkerObject[HighlightMarker] != object_none) {
gr_set_current_canvas(NULL);
@ -725,25 +721,23 @@ static int automap_key_command(window *wind, d_event *event, automap *am)
}
set_screen_mode(SCREEN_GAME);
}
return 1;
return window_event_result::handled;
#ifndef RELEASE
case KEY_F11: //KEY_COMMA:
if (MarkerScale>.5)
MarkerScale-=.5;
return 1;
return window_event_result::handled;
case KEY_F12: //KEY_PERIOD:
if (MarkerScale<30.0)
MarkerScale+=.5;
return 1;
return window_event_result::handled;
#endif
#endif
}
return 0;
return window_event_result::ignored;
}
static int automap_process_input(window *wind, d_event *event, automap *am)
static window_event_result automap_process_input(window *wind, d_event *event, automap *am)
{
vms_matrix tempm;
@ -755,7 +749,7 @@ static int automap_process_input(window *wind, d_event *event, automap *am)
if ( !am->controls.state.automap && (am->leave_mode==1) )
{
window_close(wind);
return 1;
return window_event_result::close;
}
if ( am->controls.state.automap)
@ -764,7 +758,7 @@ static int automap_process_input(window *wind, d_event *event, automap *am)
if (am->leave_mode==0)
{
window_close(wind);
return 1;
return window_event_result::close;
}
}
@ -841,11 +835,10 @@ static int automap_process_input(window *wind, d_event *event, automap *am)
clamp_fix_lh(am->viewDist, ZOOM_MIN_VALUE, ZOOM_MAX_VALUE);
}
return 0;
return window_event_result::ignored;
}
static int automap_handler(window *wind, d_event *event, automap *am)
static window_event_result automap_handler(window *wind, d_event *event, automap *am)
{
switch (event->type)
{
@ -868,12 +861,11 @@ static int automap_handler(window *wind, d_event *event, automap *am)
case EVENT_MOUSE_BUTTON_DOWN:
case EVENT_MOUSE_MOVED:
case EVENT_KEY_RELEASE:
automap_process_input(wind, event, am);
break;
return automap_process_input(wind, event, am);
case EVENT_KEY_COMMAND:
{
int kret = automap_key_command(wind, event, am);
if (!kret)
window_event_result kret = automap_key_command(wind, event, am);
if (kret == window_event_result::ignored)
automap_process_input(wind, event, am);
return kret;
}
@ -896,15 +888,14 @@ static int automap_handler(window *wind, d_event *event, automap *am)
window_set_visible(Game_wind, 1);
Automap_active = 0;
multi_send_msgsend_state(msgsend_none);
return 0; // continue closing
return window_event_result::ignored; // continue closing
break;
default:
return 0;
return window_event_result::ignored;
break;
}
return 1;
return window_event_result::handled;
}
void do_automap()
@ -1498,7 +1489,7 @@ void InitMarkerInput ()
key_toggle_repeat(1);
}
int MarkerInputMessage(int key)
window_event_result MarkerInputMessage(int key)
{
switch( key )
{
@ -1532,11 +1523,9 @@ int MarkerInputMessage(int key)
Marker_input[Marker_index++] = ascii;
Marker_input[Marker_index] = 0;
}
return 0;
break;
return window_event_result::ignored;
}
}
return 1;
return window_event_result::handled;
}
#endif

View file

@ -177,7 +177,7 @@ static void con_draw(void)
gr_string(SWIDTH-FSPACX(110),FSPACY(1),"PAGE-UP/DOWN TO SCROLL");
}
static int con_handler(window *wind, d_event *event, unused_window_userdata_t *)
static window_event_result con_handler(window *wind, d_event *event, unused_window_userdata_t *)
{
int key;
static fix64 last_scroll_time = 0;
@ -225,7 +225,7 @@ static int con_handler(window *wind, d_event *event, unused_window_userdata_t *)
default:
break;
}
return 1;
return window_event_result::handled;
case EVENT_WINDOW_DRAW:
timer_delay2(50);
@ -249,10 +249,12 @@ static int con_handler(window *wind, d_event *event, unused_window_userdata_t *)
con_state = CON_STATE_OPEN;
else if (con_size <= 0)
con_state = CON_STATE_CLOSED;
if (con_state == CON_STATE_CLOSED && wind)
window_close(wind);
con_draw();
if (con_state == CON_STATE_CLOSED && wind)
{
window_close(wind);
return window_event_result::close;
}
break;
case EVENT_WINDOW_CLOSE:
break;
@ -260,7 +262,7 @@ static int con_handler(window *wind, d_event *event, unused_window_userdata_t *)
break;
}
return 0;
return window_event_result::ignored;
}
void con_showup(void)

View file

@ -78,7 +78,7 @@ struct credits
grs_bitmap backdrop;
};
static int credits_handler(window *wind, d_event *event, credits *cr)
static window_event_result credits_handler(window *wind, d_event *event, credits *cr)
{
int j, l, y;
char * tempp;
@ -87,15 +87,18 @@ static int credits_handler(window *wind, d_event *event, credits *cr)
{
case EVENT_KEY_COMMAND:
if (!call_default_handler(event)) // if not print screen, debug etc
{
window_close(wind);
return 1;
return window_event_result::close;
}
return window_event_result::handled;
case EVENT_MOUSE_BUTTON_DOWN:
case EVENT_MOUSE_BUTTON_UP:
if (event_mouse_get_button(event) == MBTN_LEFT || event_mouse_get_button(event) == MBTN_RIGHT)
{
window_close(wind);
return 1;
return window_event_result::close;
}
break;
@ -103,7 +106,7 @@ static int credits_handler(window *wind, d_event *event, credits *cr)
if (cr->done>NUM_LINES)
{
window_close(wind);
return 0;
return window_event_result::close;
}
break;
@ -213,8 +216,7 @@ static int credits_handler(window *wind, d_event *event, credits *cr)
default:
break;
}
return 0;
return window_event_result::ignored;
}
//if filename passed is NULL, show normal credits

View file

@ -1059,7 +1059,7 @@ window *game_setup(void)
window *Game_wind = NULL;
// Event handler for the game
int game_handler(window *wind, d_event *event, unused_window_userdata_t *)
window_event_result game_handler(window *wind, d_event *event, unused_window_userdata_t *)
{
switch (event->type)
{
@ -1154,8 +1154,7 @@ int game_handler(window *wind, d_event *event, unused_window_userdata_t *)
default:
break;
}
return 0;
return window_event_result::ignored;
}
// Initialise game, actually runs in main event loop

View file

@ -310,7 +310,7 @@ static void format_time(char *str, int secs_int)
}
//Process selected keys until game unpaused
static int pause_handler(window *wind, d_event *event, char *msg)
static window_event_result pause_handler(window *wind, d_event *event, char *msg)
{
int key;
@ -329,13 +329,13 @@ static int pause_handler(window *wind, d_event *event, char *msg)
break;
case KEY_ESC:
window_close(wind);
return 1;
return window_event_result::close;
case KEY_F1:
show_help();
return 1;
return window_event_result::handled;
case KEY_PAUSE:
window_close(wind);
return 1;
return window_event_result::close;
default:
break;
}
@ -357,8 +357,7 @@ static int pause_handler(window *wind, d_event *event, char *msg)
default:
break;
}
return 0;
return window_event_result::ignored;
}
static int do_game_pause()
@ -706,7 +705,7 @@ dump_door_debugging_info()
//this is for system-level keys, such as help, etc.
//returns 1 if screen changed
static int HandleSystemKey(int key)
static window_event_result HandleSystemKey(int key)
{
if (!Player_is_dead)
switch (key)
@ -723,9 +722,11 @@ static int HandleSystemKey(int key)
int choice;
choice=nm_messagebox( NULL, 2, TXT_YES, TXT_NO, TXT_ABORT_GAME );
if (choice == 0)
{
window_close(Game_wind);
return 1;
return window_event_result::close;
}
return window_event_result::handled;
}
#if defined(DXX_BUILD_DESCENT_II)
// fleshed these out because F1 and F2 aren't sequenctial keycodes on mac -- MWA
@ -733,11 +734,11 @@ static int HandleSystemKey(int key)
KEY_MAC(case KEY_COMMAND+KEY_SHIFTED+KEY_1:)
case KEY_SHIFTED+KEY_F1:
select_next_window_function(0);
return 1;
return window_event_result::handled;
KEY_MAC(case KEY_COMMAND+KEY_SHIFTED+KEY_2:)
case KEY_SHIFTED+KEY_F2:
select_next_window_function(1);
return 1;
return window_event_result::handled;
#endif
}
@ -930,14 +931,12 @@ static int HandleSystemKey(int key)
break;
default:
return 0;
break;
return window_event_result::ignored;
}
return 1;
return window_event_result::handled;
}
static int HandleGameKey(int key)
static window_event_result HandleGameKey(int key)
{
switch (key) {
#if defined(DXX_BUILD_DESCENT_II)
@ -958,10 +957,10 @@ static int HandleGameKey(int key)
else
HUD_init_message_literal(HM_DEFAULT, "No Guide-Bot in Multiplayer!");
game_flush_inputs();
return 1;
return window_event_result::handled;
}
else
return 0;
return window_event_result::ignored;
#endif
case KEY_ALTED+KEY_F7:
@ -975,7 +974,7 @@ static int HandleGameKey(int key)
case 2: HUD_init_message_literal(HM_DEFAULT, "Alternative HUD #2"); break;
case 3: HUD_init_message_literal(HM_DEFAULT, "No HUD"); break;
}
return 1;
return window_event_result::handled;
KEY_MAC(case KEY_COMMAND+KEY_6:)
case KEY_F6:
@ -984,7 +983,7 @@ static int HandleGameKey(int key)
RefuseThisPlayer=1;
HUD_init_message_literal(HM_MULTI, "Player accepted!");
}
return 1;
return window_event_result::handled;
case KEY_ALTED + KEY_1:
if (Netgame.RefusePlayers && WaitForRefuseAnswer && (Game_mode & GM_TEAM))
{
@ -993,7 +992,7 @@ static int HandleGameKey(int key)
RefuseTeam=1;
game_flush_inputs();
}
return 1;
return window_event_result::handled;
case KEY_ALTED + KEY_2:
if (Netgame.RefusePlayers && WaitForRefuseAnswer && (Game_mode & GM_TEAM))
{
@ -1002,11 +1001,11 @@ static int HandleGameKey(int key)
RefuseTeam=2;
game_flush_inputs();
}
return 1;
return window_event_result::handled;
default:
#if defined(DXX_BUILD_DESCENT_I)
return 0;
return window_event_result::ignored;
#endif
break;
@ -1038,13 +1037,13 @@ static int HandleGameKey(int key)
break;
default:
return 0;
return window_event_result::ignored;
}
else
return 0;
return window_event_result::ignored;
#endif
return 1;
return window_event_result::handled;
}
#if defined(DXX_BUILD_DESCENT_II)
@ -1172,7 +1171,7 @@ static void kill_buddy(void)
}
#endif
static int HandleTestKey(int key)
static window_event_result HandleTestKey(int key)
{
switch (key)
{
@ -1223,7 +1222,7 @@ static int HandleTestKey(int key)
case KEY_DEBUGGED+KEY_X: Players[Player_num].lives++; break; // Extra life cheat key.
case KEY_DEBUGGED+KEY_H:
if (Player_is_dead)
return 0;
return window_event_result::ignored;
Players[Player_num].flags ^= PLAYER_FLAGS_CLOAKED;
if (Players[Player_num].flags & PLAYER_FLAGS_CLOAKED) {
@ -1245,7 +1244,7 @@ static int HandleTestKey(int key)
window_set_visible(Game_wind, 0); // don't let the game do anything while we set the editor up
init_editor();
window_close(Game_wind);
break;
return window_event_result::close;
#if defined(DXX_BUILD_DESCENT_II)
case KEY_Q + KEY_SHIFTED + KEY_DEBUGGED:
{
@ -1358,7 +1357,7 @@ static int HandleTestKey(int key)
case KEY_DEBUGGED+KEY_SHIFTED+KEY_B:
if (Player_is_dead)
return 0;
return window_event_result::ignored;
kill_and_so_forth();
break;
@ -1367,11 +1366,9 @@ static int HandleTestKey(int key)
HUD_init_message(HM_DEFAULT, "GameTime %" PRIi64 " - Reset in 10 seconds!", GameTime64);
break;
default:
return 0;
break;
return window_event_result::ignored;
}
return 1;
return window_event_result::handled;
}
#endif //#ifndef RELEASE
@ -1428,13 +1425,13 @@ static const cheat_code cheat_codes[] = {
{ "bittersweet", &game_cheats::acid },
};
static int FinalCheats(int key)
static window_event_result FinalCheats(int key)
{
static char cheat_buffer[CHEAT_MAX_LEN];
int (game_cheats::*gotcha);
if (Game_mode & GM_MULTI)
return 0;
return window_event_result::ignored;
for (unsigned i = 1; i < CHEAT_MAX_LEN; i++)
cheat_buffer[i-1] = cheat_buffer[i];
@ -1442,7 +1439,7 @@ static int FinalCheats(int key)
for (unsigned i = 0;; i++)
{
if (i >= sizeof(cheat_codes) / sizeof(cheat_codes[0]))
return 0;
return window_event_result::ignored;
int cheatlen = strlen(cheat_codes[i].string);
Assert(cheatlen <= CHEAT_MAX_LEN);
if (d_strnicmp(cheat_codes[i].string, cheat_buffer+CHEAT_MAX_LEN-cheatlen, cheatlen)==0)
@ -1450,7 +1447,7 @@ static int FinalCheats(int key)
gotcha = cheat_codes[i].stateptr;
#if defined(DXX_BUILD_DESCENT_I)
if (!cheats.enabled && cheats.*gotcha != cheats.enabled)
return 0;
return window_event_result::ignored;
if (!cheats.enabled)
HUD_init_message_literal(HM_DEFAULT, TXT_CHEATS_ENABLED);
#endif
@ -1704,7 +1701,7 @@ static int FinalCheats(int key)
HUD_init_message_literal(HM_DEFAULT, cheats.acid?"Going up!":"Coming down!");
}
return 1;
return window_event_result::handled;
}
// Internal Cheat Menu
@ -1807,7 +1804,7 @@ static void play_test_sound()
#endif //ifndef NDEBUG
int ReadControls(d_event *event)
window_event_result ReadControls(d_event *event)
{
int key;
static ubyte exploding_flag=0;
@ -1824,7 +1821,7 @@ int ReadControls(d_event *event)
}
if (Player_is_dead && !( (Game_mode & GM_MULTI) && (multi_sending_message[Player_num] || multi_defining_message) ))
if (HandleDeathInput(event))
return 1;
return window_event_result::handled;
if (Newdemo_state == ND_STATE_PLAYBACK)
update_vcr_state();
@ -1853,27 +1850,34 @@ int ReadControls(d_event *event)
if (Endlevel_sequence)
{
if (HandleEndlevelKey(key))
return 1;
return window_event_result::handled;
}
else if (Newdemo_state == ND_STATE_PLAYBACK )
{
if (HandleDemoKey(key))
return 1;
return window_event_result::handled;
}
else
{
if (FinalCheats(key)) return 1;
if (HandleSystemKey(key)) return 1;
if (HandleGameKey(key)) return 1;
window_event_result r = FinalCheats(key);
if (r == window_event_result::ignored)
r = HandleSystemKey(key);
if (r == window_event_result::ignored)
r = HandleGameKey(key);
if (r != window_event_result::ignored)
return r;
}
#ifndef RELEASE
if (HandleTestKey(key))
return 1;
{
window_event_result r = HandleTestKey(key);
if (r != window_event_result::ignored)
return r;
}
#endif
if (call_default_handler(event))
return 1;
return window_event_result::handled;
}
if (!Endlevel_sequence && !Player_is_dead && (Newdemo_state != ND_STATE_PLAYBACK))
@ -1890,13 +1894,10 @@ int ReadControls(d_event *event)
if (!((Game_mode & GM_MULTI) && Control_center_destroyed && (Countdown_seconds_left < 10)))
{
do_automap();
return 1;
return window_event_result::handled;
}
}
do_weapon_n_item_stuff();
}
return 0;
return window_event_result::ignored;
}

View file

@ -962,11 +962,11 @@ static inline int in_bounds(unsigned mx, unsigned my, unsigned x1, unsigned xw,
return 1;
}
static int kconfig_mouse(window *wind, d_event *event, kc_menu *menu)
static window_event_result kconfig_mouse(window *wind, d_event *event, kc_menu *menu)
{
grs_canvas * save_canvas = grd_curcanv;
int mx, my, mz, x1, y1;
int rval = 0;
window_event_result rval = window_event_result::ignored;
gr_set_current_canvas(window_get_canvas(wind));
@ -981,7 +981,7 @@ static int kconfig_mouse(window *wind, d_event *event, kc_menu *menu)
y1 = grd_curcanv->cv_bitmap.bm_y + FSPACY(menu->items[i].y);
if (in_bounds(mx, my, x1, FSPACX(menu->items[i].w2), y1, item_height)) {
menu->citem = i;
rval = 1;
rval = window_event_result::handled;
break;
}
}
@ -996,13 +996,13 @@ static int kconfig_mouse(window *wind, d_event *event, kc_menu *menu)
y1 = grd_curcanv->cv_bitmap.bm_y + FSPACY(menu->items[menu->citem].y);
if (in_bounds(mx, my, x1, FSPACX(menu->items[menu->citem].w2), y1, item_height)) {
kconfig_start_changing(menu);
rval = 1;
rval = window_event_result::handled;
}
else
{
// Click out of changing mode - kreatordxx
menu->changing = 0;
rval = 1;
rval = window_event_result::handled;
}
}
@ -1018,7 +1018,7 @@ static void reset_mitem_values(kc_mitem (&m)[M], const ubyte (&c)[C])
m[i].value = c[i];
}
static int kconfig_key_command(window *wind, d_event *event, kc_menu *menu)
static window_event_result kconfig_key_command(window *wind, d_event *event, kc_menu *menu)
{
int k;
@ -1026,13 +1026,12 @@ static int kconfig_key_command(window *wind, d_event *event, kc_menu *menu)
// when changing, process no keys instead of ESC
if (menu->changing && (k != -2 && k != KEY_ESC))
return 0;
return window_event_result::ignored;
switch (k)
{
case KEY_CTRLED+KEY_D:
menu->mitems[menu->citem].value = 255;
return 1;
return window_event_result::handled;
case KEY_CTRLED+KEY_R:
if ( menu->items==kc_keyboard )
reset_mitem_values(kcm_keyboard, DefaultKeySettings[0]);
@ -1044,37 +1043,40 @@ static int kconfig_key_command(window *wind, d_event *event, kc_menu *menu)
reset_mitem_values(kcm_mouse, DefaultKeySettings[2]);
if ( menu->items==kc_rebirth )
reset_mitem_values(kcm_rebirth, DefaultKeySettingsRebirth);
return 1;
return window_event_result::handled;
case KEY_DELETE:
menu->mitems[menu->citem].value=255;
return 1;
return window_event_result::handled;
case KEY_UP:
case KEY_PAD8:
menu->citem = menu->items[menu->citem].u;
return 1;
return window_event_result::handled;
case KEY_DOWN:
case KEY_PAD2:
menu->citem = menu->items[menu->citem].d;
return 1;
return window_event_result::handled;
case KEY_LEFT:
case KEY_PAD4:
menu->citem = menu->items[menu->citem].l;
return 1;
return window_event_result::handled;
case KEY_RIGHT:
case KEY_PAD6:
menu->citem = menu->items[menu->citem].r;
return 1;
return window_event_result::handled;
case KEY_ENTER:
case KEY_PADENTER:
kconfig_start_changing(menu);
return 1;
return window_event_result::handled;
case -2:
case KEY_ESC:
if (menu->changing)
menu->changing = 0;
else
{
window_close(wind);
return 1;
return window_event_result::close;
}
return window_event_result::handled;
#ifdef TABLE_CREATION
case KEY_F12: {
PHYSFS_file * fp;
@ -1097,7 +1099,7 @@ static int kconfig_key_command(window *wind, d_event *event, kc_menu *menu)
PHYSFS_close(fp);
}
return 1;
return window_event_result::handled;
#endif
case 0: // some other event
break;
@ -1105,11 +1107,10 @@ static int kconfig_key_command(window *wind, d_event *event, kc_menu *menu)
default:
break;
}
return 0;
return window_event_result::ignored;
}
static int kconfig_handler(window *wind, d_event *event, kc_menu *menu)
static window_event_result kconfig_handler(window *wind, d_event *event, kc_menu *menu)
{
switch (event->type)
{
@ -1131,17 +1132,20 @@ static int kconfig_handler(window *wind, d_event *event, kc_menu *menu)
{
kc_change_mousebutton(*menu, event, menu->mitems[menu->citem] );
menu->mouse_state = (event->type == EVENT_MOUSE_BUTTON_DOWN);
return 1;
return window_event_result::handled;
}
if (event_mouse_get_button(event) == MBTN_RIGHT)
{
if (!menu->changing)
{
window_close(wind);
return 1;
return window_event_result::close;
}
return window_event_result::handled;
}
else if (event_mouse_get_button(event) != MBTN_LEFT)
return 0;
return window_event_result::ignored;
menu->mouse_state = (event->type == EVENT_MOUSE_BUTTON_DOWN);
return kconfig_mouse(wind, event, menu);
@ -1168,11 +1172,11 @@ static int kconfig_handler(window *wind, d_event *event, kc_menu *menu)
case EVENT_KEY_COMMAND:
{
int rval = kconfig_key_command(wind, event, menu);
if (rval)
window_event_result rval = kconfig_key_command(wind, event, menu);
if (rval != window_event_result::ignored)
return rval;
if (menu->changing && menu->items[menu->citem].type == BT_KEY) kc_change_key(*menu, event, menu->mitems[menu->citem]);
return 0;
return window_event_result::ignored;
}
case EVENT_IDLE:
@ -1203,15 +1207,14 @@ static int kconfig_handler(window *wind, d_event *event, kc_menu *menu)
for (unsigned i=0; i < lengthof(kc_rebirth); i++)
PlayerCfg.KeySettingsRebirth[i] = kcm_rebirth[i].value;
return 0; // continue closing
return window_event_result::ignored; // continue closing
break;
default:
return 0;
return window_event_result::ignored;
break;
}
return 1;
return window_event_result::handled;
}
static void kconfig_sub(const char *litems, const kc_item * items,kc_mitem *mitems,int nitems, const char *title)

View file

@ -259,7 +259,7 @@ static void kmatrix_redraw_coop()
gr_palette_load(gr_palette);
}
static int kmatrix_handler(window *wind, d_event *event, kmatrix_screen *km)
static window_event_result kmatrix_handler(window *wind, d_event *event, kmatrix_screen *km)
{
int i = 0, k = 0, choice = 0;
@ -288,9 +288,9 @@ static int kmatrix_handler(window *wind, d_event *event, kmatrix_screen *km)
window_close(wind);
if (Game_wind)
window_close(Game_wind);
return 1;
return window_event_result::close;
}
return 1;
return window_event_result::handled;
default:
break;
@ -339,12 +339,12 @@ static int kmatrix_handler(window *wind, d_event *event, kmatrix_screen *km)
window_close(wind);
if (Game_wind)
window_close(Game_wind);
return 0;
return window_event_result::close;
}
}
#endif
window_close(wind);
break;
return window_event_result::close;
}
kmatrix_redraw(km);
@ -363,8 +363,7 @@ static int kmatrix_handler(window *wind, d_event *event, kmatrix_screen *km)
default:
break;
}
return 0;
return window_event_result::ignored;
}
void kmatrix_view(int network)

View file

@ -2027,7 +2027,7 @@ void do_options_menu()
}
#ifndef RELEASE
static int polygon_models_viewer_handler(window *wind, d_event *event, unused_window_userdata_t *)
static window_event_result polygon_models_viewer_handler(window *wind, d_event *event, unused_window_userdata_t *)
{
static int view_idx = 0;
int key = 0;
@ -2050,7 +2050,7 @@ static int polygon_models_viewer_handler(window *wind, d_event *event, unused_wi
{
case KEY_ESC:
window_close(wind);
break;
return window_event_result::close;
case KEY_SPACEBAR:
view_idx ++;
if (view_idx >= N_polygon_models) view_idx = 0;
@ -2084,7 +2084,7 @@ static int polygon_models_viewer_handler(window *wind, d_event *event, unused_wi
default:
break;
}
return 1;
return window_event_result::handled;
case EVENT_WINDOW_DRAW:
timer_delay(F1_0/60);
draw_model_picture(view_idx, &ang);
@ -2099,8 +2099,7 @@ static int polygon_models_viewer_handler(window *wind, d_event *event, unused_wi
default:
break;
}
return 0;
return window_event_result::ignored;
}
static void polygon_models_viewer()
@ -2117,7 +2116,7 @@ static void polygon_models_viewer()
event_process();
}
static int gamebitmaps_viewer_handler(window *wind, d_event *event, unused_window_userdata_t *)
static window_event_result gamebitmaps_viewer_handler(window *wind, d_event *event, unused_window_userdata_t *)
{
static int view_idx = 0;
int key = 0;
@ -2142,7 +2141,7 @@ static int gamebitmaps_viewer_handler(window *wind, d_event *event, unused_windo
{
case KEY_ESC:
window_close(wind);
break;
return window_event_result::close;
case KEY_SPACEBAR:
view_idx ++;
if (view_idx >= Num_bitmap_files) view_idx = 0;
@ -2154,7 +2153,7 @@ static int gamebitmaps_viewer_handler(window *wind, d_event *event, unused_windo
default:
break;
}
return 1;
return window_event_result::handled;
case EVENT_WINDOW_DRAW:
bi.index = view_idx;
bm = &GameBitmaps[view_idx];
@ -2178,8 +2177,7 @@ static int gamebitmaps_viewer_handler(window *wind, d_event *event, unused_windo
default:
break;
}
return 0;
return window_event_result::ignored;
}
static void gamebitmaps_viewer()

View file

@ -1427,7 +1427,7 @@ static void multi_define_macro_end()
game_flush_inputs();
}
int multi_message_input_sub(int key)
window_event_result multi_message_input_sub(int key)
{
switch( key )
{
@ -1438,21 +1438,21 @@ int multi_message_input_sub(int key)
multi_defining_message = 0;
key_toggle_repeat(0);
game_flush_inputs();
return 1;
return window_event_result::handled;
case KEY_LEFT:
case KEY_BACKSP:
case KEY_PAD4:
if (multi_message_index > 0)
multi_message_index--;
Network_message[multi_message_index] = 0;
return 1;
return window_event_result::handled;
case KEY_ENTER:
if ( multi_sending_message[Player_num] )
multi_send_message_end();
else if ( multi_defining_message )
multi_define_macro_end();
game_flush_inputs();
return 1;
return window_event_result::handled;
default:
{
int ascii = key_ascii();
@ -1488,8 +1488,7 @@ int multi_message_input_sub(int key)
}
}
}
return 0;
return window_event_result::ignored;
}
void

View file

@ -5128,7 +5128,7 @@ void net_udp_send_extras ()
Player_joining_extras=-1;
}
static int show_game_rules_handler(window *wind, d_event *event, netgame_info *netgame)
static window_event_result show_game_rules_handler(window *wind, d_event *event, netgame_info *netgame)
{
int k;
#if defined(DXX_BUILD_DESCENT_I)
@ -5151,7 +5151,7 @@ static int show_game_rules_handler(window *wind, d_event *event, netgame_info *n
case KEY_SPACEBAR:
case KEY_ESC:
window_close(wind);
return 1;
return window_event_result::close;
}
break;
@ -5300,8 +5300,7 @@ static int show_game_rules_handler(window *wind, d_event *event, netgame_info *n
default:
break;
}
return 0;
return window_event_result::ignored;
}
static void net_udp_show_game_rules(netgame_info *netgame)

View file

@ -595,7 +595,7 @@ static void newmenu_scroll(newmenu *menu, int amount)
}
}
static int newmenu_mouse(window *wind, d_event *event, newmenu *menu, int button)
static window_event_result newmenu_mouse(window *wind, d_event *event, newmenu *menu, int button)
{
int old_choice, i, mx=0, my=0, mz=0, x1 = 0, x2, y1, y2, changed = 0;
grs_canvas *menu_canvas = window_get_canvas(wind), *save_canvas = grd_curcanv;
@ -768,13 +768,13 @@ static int newmenu_mouse(window *wind, d_event *event, newmenu *menu, int button
// Tell callback, allow staying in menu
event->type = EVENT_NEWMENU_SELECTED;
if (menu->subfunction && (*menu->subfunction)(menu, event, menu->userdata))
return 1;
return window_event_result::handled;
if (menu->rval)
*menu->rval = menu->citem;
window_close(menu->wind);
gr_set_current_canvas(save_canvas);
return 1;
return window_event_result::close;
}
else menu->dblclick_flag = 1;
}
@ -783,13 +783,13 @@ static int newmenu_mouse(window *wind, d_event *event, newmenu *menu, int button
// Tell callback, allow staying in menu
event->type = EVENT_NEWMENU_SELECTED;
if (menu->subfunction && (*menu->subfunction)(menu, event, menu->userdata))
return 1;
return window_event_result::handled;
if (menu->rval)
*menu->rval = menu->citem;
window_close(menu->wind);
gr_set_current_canvas(save_canvas);
return 1;
return window_event_result::close;
}
}
}
@ -824,7 +824,7 @@ static int newmenu_mouse(window *wind, d_event *event, newmenu *menu, int button
menu->items[menu->citem].value = -1;
} else {
window_close(menu->wind);
return 1;
return window_event_result::close;
}
}
break;
@ -838,17 +838,17 @@ static int newmenu_mouse(window *wind, d_event *event, newmenu *menu, int button
break;
}
return 0;
return window_event_result::ignored;
}
static int newmenu_key_command(window *wind, d_event *event, newmenu *menu)
static window_event_result newmenu_key_command(window *wind, d_event *event, newmenu *menu)
{
newmenu_item *item = &menu->items[menu->citem];
int k = event_key_get(event);
int old_choice, i;
char *Temp,TempVal;
int changed = 0;
int rval = 1;
window_event_result rval = window_event_result::handled;
if (keyd_pressed[KEY_NUMLOCK])
{
@ -994,12 +994,12 @@ static int newmenu_key_command(window *wind, d_event *event, newmenu *menu)
// Tell callback, allow staying in menu
event->type = EVENT_NEWMENU_SELECTED;
if (menu->subfunction && (*menu->subfunction)(menu, event, menu->userdata))
return 1;
return window_event_result::handled;
if (menu->rval)
*menu->rval = menu->citem;
window_close(menu->wind);
return 1;
return window_event_result::close;
}
break;
@ -1010,7 +1010,7 @@ static int newmenu_key_command(window *wind, d_event *event, newmenu *menu)
item->value = -1;
} else {
window_close(menu->wind);
return 1;
return window_event_result::close;
}
break;
@ -1022,7 +1022,7 @@ static int newmenu_key_command(window *wind, d_event *event, newmenu *menu)
#endif
default:
rval = 0;
rval = window_event_result::ignored;
break;
}
@ -1039,7 +1039,7 @@ static int newmenu_key_command(window *wind, d_event *event, newmenu *menu)
if (item->type==NM_TYPE_INPUT)
changed = 1;
rval = 1;
rval = window_event_result::handled;
} else {
ascii = key_ascii();
if ((ascii < 255 ) && (item->value < item->text_len ))
@ -1108,23 +1108,23 @@ static int newmenu_key_command(window *wind, d_event *event, newmenu *menu)
case KEY_PAD4:
item->value -= 1;
changed = 1;
rval = 1;
rval = window_event_result::handled;
break;
case KEY_RIGHT:
case KEY_PAD6:
item->value++;
changed = 1;
rval = 1;
rval = window_event_result::handled;
break;
case KEY_SPACEBAR:
item->value += 10;
changed = 1;
rval = 1;
rval = window_event_result::handled;
break;
case KEY_BACKSP:
item->value -= 10;
changed = 1;
rval = 1;
rval = window_event_result::handled;
break;
}
@ -1364,7 +1364,7 @@ static void newmenu_create_structure( newmenu *menu )
gr_set_current_canvas(save_canvas);
}
static int newmenu_draw(window *wind, newmenu *menu)
static window_event_result newmenu_draw(window *wind, newmenu *menu)
{
grs_canvas *menu_canvas = window_get_canvas(wind), *save_canvas = grd_curcanv;
int th = 0, ty, sx, sy;
@ -1446,20 +1446,20 @@ static int newmenu_draw(window *wind, newmenu *menu)
gr_set_current_canvas(save_canvas);
return 1;
return window_event_result::handled;
}
static int newmenu_handler(window *wind, d_event *event, newmenu *menu)
static window_event_result newmenu_handler(window *wind, d_event *event, newmenu *menu)
{
if (event->type == EVENT_WINDOW_CLOSED)
return 0;
return window_event_result::ignored;
if (menu->subfunction)
{
int rval = (*menu->subfunction)(menu, event, menu->userdata);
if (!window_exists(wind))
return 1; // some subfunction closed the window: bail!
return window_event_result::handled; // some subfunction closed the window: bail!
if (rval)
{
@ -1468,9 +1468,10 @@ static int newmenu_handler(window *wind, d_event *event, newmenu *menu)
if (menu->rval)
*menu->rval = rval;
window_close(wind);
return window_event_result::close;
}
return 1; // event handled
return window_event_result::handled; // event handled
}
}
@ -1503,18 +1504,11 @@ static int newmenu_handler(window *wind, d_event *event, newmenu *menu)
case EVENT_KEY_COMMAND:
return newmenu_key_command(wind, event, menu);
break;
case EVENT_IDLE:
timer_delay2(50);
return newmenu_mouse(wind, event, menu, -1);
break;
case EVENT_WINDOW_DRAW:
return newmenu_draw(wind, menu);
break;
case EVENT_WINDOW_CLOSE:
d_free(menu);
break;
@ -1522,8 +1516,7 @@ static int newmenu_handler(window *wind, d_event *event, newmenu *menu)
default:
break;
}
return 0;
return window_event_result::ignored;
}
newmenu *newmenu_do4( const char * title, const char * subtitle, int nitems, newmenu_item * item, newmenu_subfunction subfunction, void *userdata, int citem, const char * filename, int TinyMode, int TabsFlag )
@ -1703,7 +1696,7 @@ static void update_scroll_position(listbox *lb)
if (lb->first_item < 0 ) lb->first_item = 0;
}
static int listbox_mouse(window *wind, d_event *event, listbox *lb, int button)
static window_event_result listbox_mouse(window *wind, d_event *event, listbox *lb, int button)
{
int i, mx, my, mz, x1, x2, y1, y2;
@ -1726,7 +1719,7 @@ static int listbox_mouse(window *wind, d_event *event, listbox *lb, int button)
y2 = y1+h;
if ( ((mx > x1) && (mx < x2)) && ((my > y1) && (my < y2)) ) {
lb->citem = i;
return 1;
return window_event_result::handled;
}
}
}
@ -1735,7 +1728,7 @@ static int listbox_mouse(window *wind, d_event *event, listbox *lb, int button)
int w, h, aw;
if (lb->citem < 0)
return 0;
return window_event_result::ignored;
mouse_get_pos(&mx, &my, &mz);
gr_get_string_size(lb->item[lb->citem], &w, &h, &aw );
@ -1748,10 +1741,9 @@ static int listbox_mouse(window *wind, d_event *event, listbox *lb, int button)
// Tell callback, allow staying in menu
event->type = EVENT_NEWMENU_SELECTED;
if (lb->listbox_callback && (*lb->listbox_callback)(lb, event, lb->userdata))
return 1;
return window_event_result::handled;
window_close(wind);
return 1;
return window_event_result::close;
}
}
break;
@ -1761,7 +1753,7 @@ static int listbox_mouse(window *wind, d_event *event, listbox *lb, int button)
if (lb->allow_abort_flag && lb->mouse_state) {
lb->citem = -1;
window_close(wind);
return 1;
return window_event_result::close;
}
break;
}
@ -1787,13 +1779,13 @@ static int listbox_mouse(window *wind, d_event *event, listbox *lb, int button)
break;
}
return 0;
return window_event_result::ignored;
}
static int listbox_key_command(window *wind, d_event *event, listbox *lb)
static window_event_result listbox_key_command(window *wind, d_event *event, listbox *lb)
{
int key = event_key_get(event);
int rval = 1;
window_event_result rval = window_event_result::handled;
switch(key) {
case KEY_HOME:
@ -1824,7 +1816,7 @@ static int listbox_key_command(window *wind, d_event *event, listbox *lb)
if (lb->allow_abort_flag) {
lb->citem = -1;
window_close(wind);
return 1;
return window_event_result::close;
}
break;
case KEY_ENTER:
@ -1832,12 +1824,9 @@ static int listbox_key_command(window *wind, d_event *event, listbox *lb)
// Tell callback, allow staying in menu
event->type = EVENT_NEWMENU_SELECTED;
if (lb->listbox_callback && (*lb->listbox_callback)(lb, event, lb->userdata))
return 1;
return window_event_result::handled;
window_close(wind);
return 1;
break;
return window_event_result::close;
default:
{
int ascii = key_ascii();
@ -1858,12 +1847,10 @@ static int listbox_key_command(window *wind, d_event *event, listbox *lb)
cc++;
}
}
rval = 0;
rval = window_event_result::ignored;
}
}
update_scroll_position(lb);
return rval;
}
@ -1922,7 +1909,7 @@ static void listbox_create_structure( listbox *lb)
lb->fntscaley = FNTScaleY;
}
static int listbox_draw(window *wind, listbox *lb)
static window_event_result listbox_draw(window *wind, listbox *lb)
{
int i;
@ -2005,20 +1992,19 @@ static int listbox_draw(window *wind, listbox *lb)
if ( lb->listbox_callback )
(*lb->listbox_callback)(lb, &event, lb->userdata);
}
return 1;
return window_event_result::handled;
}
static int listbox_handler(window *wind, d_event *event, listbox *lb)
static window_event_result listbox_handler(window *wind, d_event *event, listbox *lb)
{
if (event->type == EVENT_WINDOW_CLOSED)
return 0;
return window_event_result::ignored;
if (lb->listbox_callback)
{
int rval = (*lb->listbox_callback)(lb, event, lb->userdata);
if (rval)
return 1; // event handled
return window_event_result::handled; // event handled
}
switch (event->type)
@ -2038,30 +2024,20 @@ static int listbox_handler(window *wind, d_event *event, listbox *lb)
case EVENT_MOUSE_BUTTON_UP:
lb->mouse_state = event->type == EVENT_MOUSE_BUTTON_DOWN;
return listbox_mouse(wind, event, lb, event_mouse_get_button(event));
case EVENT_KEY_COMMAND:
return listbox_key_command(wind, event, lb);
break;
case EVENT_IDLE:
timer_delay2(50);
return listbox_mouse(wind, event, lb, -1);
break;
case EVENT_WINDOW_DRAW:
return listbox_draw(wind, lb);
break;
case EVENT_WINDOW_CLOSE:
d_free(lb);
break;
default:
break;
}
return 0;
return window_event_result::ignored;
}
listbox *newmenu_listbox1( const char * title, int nitems, const char *items[], int allow_abort_flag, int default_item, listbox_subfunction_t<void>::type listbox_callback, void *userdata )

View file

@ -361,7 +361,7 @@ struct scores_menu
stats_info last_game;
};
static int scores_handler(window *wind, d_event *event, scores_menu *menu)
static window_event_result scores_handler(window *wind, d_event *event, scores_menu *menu)
{
int i;
int k;
@ -384,15 +384,15 @@ static int scores_handler(window *wind, d_event *event, scores_menu *menu)
PHYSFS_delete(SCORES_FILENAME);
scores_view(&menu->last_game, menu->citem); // create new scores window
window_close(wind); // then remove the old one
return window_event_result::close;
}
}
return 1;
return window_event_result::handled;
case KEY_ENTER:
case KEY_SPACEBAR:
case KEY_ESC:
window_close(wind);
return 1;
return window_event_result::close;
}
break;
@ -401,7 +401,7 @@ static int scores_handler(window *wind, d_event *event, scores_menu *menu)
if (event_mouse_get_button(event) == MBTN_LEFT || event_mouse_get_button(event) == MBTN_RIGHT)
{
window_close(wind);
return 1;
return window_event_result::close;
}
break;
@ -462,8 +462,7 @@ static int scores_handler(window *wind, d_event *event, scores_menu *menu)
default:
break;
}
return 0;
return window_event_result::ignored;
}
void scores_view(stats_info *last_game, int citem)

View file

@ -102,25 +102,28 @@ struct title_screen
int allow_keys;
};
static int title_handler(window *wind, d_event *event, title_screen *ts)
static window_event_result title_handler(window *wind, d_event *event, title_screen *ts)
{
switch (event->type)
{
case EVENT_MOUSE_BUTTON_DOWN:
if (event_mouse_get_button(event) != 0)
return 0;
return window_event_result::ignored;
else if (ts->allow_keys)
{
window_close(wind);
return 1;
return window_event_result::close;
}
break;
case EVENT_KEY_COMMAND:
if (!call_default_handler(event))
if (ts->allow_keys)
{
window_close(wind);
return 1;
return window_event_result::close;
}
return window_event_result::handled;
case EVENT_IDLE:
timer_delay2(50);
@ -128,7 +131,7 @@ static int title_handler(window *wind, d_event *event, title_screen *ts)
if (timer_query() > ts->timer)
{
window_close(wind);
return 1;
return window_event_result::close;
}
break;
@ -145,8 +148,7 @@ static int title_handler(window *wind, d_event *event, title_screen *ts)
default:
break;
}
return 0;
return window_event_result::ignored;
}
static int show_title_screen(const char * filename, int allow_keys, int from_hog_only )
@ -1457,7 +1459,7 @@ static int new_briefing_screen(briefing *br, int first)
//-----------------------------------------------------------------------------
static int briefing_handler(window *wind, d_event *event, briefing *br)
static window_event_result briefing_handler(window *wind, d_event *event, briefing *br)
{
switch (event->type)
{
@ -1474,15 +1476,14 @@ static int briefing_handler(window *wind, d_event *event, briefing *br)
if (!new_briefing_screen(br, 0))
{
window_close(wind);
return 1;
return window_event_result::close;
}
}
else if (br->new_page)
init_new_page(br);
else
br->delay_count = 0;
return 1;
return window_event_result::handled;
}
break;
@ -1499,8 +1500,7 @@ static int briefing_handler(window *wind, d_event *event, briefing *br)
#endif
case KEY_ESC:
window_close(wind);
return 1;
return window_event_result::close;
case KEY_SPACEBAR:
case KEY_ENTER:
br->delay_count = 0;
@ -1508,13 +1508,13 @@ static int briefing_handler(window *wind, d_event *event, briefing *br)
default:
if (call_default_handler(event))
return 1;
return window_event_result::handled;
else if (br->new_screen)
{
if (!new_briefing_screen(br, 0))
{
window_close(wind);
return 1;
return window_event_result::close;
}
}
else if (br->new_page)
@ -1577,8 +1577,7 @@ static int briefing_handler(window *wind, d_event *event, briefing *br)
default:
break;
}
return 0;
return window_event_result::ignored;
}
void do_briefing_screens(const d_fname &filename, int level_num)