Add utility functions to create "Abort" and "Accept" window actions
Subversion-branch: /trunk/chocolate-doom Subversion-revision: 551
This commit is contained in:
parent
e9619f83e9
commit
02f4a0dcf4
3 changed files with 33 additions and 12 deletions
|
|
@ -37,13 +37,6 @@ void TXT_SetWindowAction(txt_window_t *window,
|
|||
window->actions[position] = action;
|
||||
}
|
||||
|
||||
static void DefaultCancelAction(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(window))
|
||||
{
|
||||
TXT_CAST_ARG(txt_window_t, window);
|
||||
|
||||
TXT_CloseWindow(window);
|
||||
}
|
||||
|
||||
txt_window_t *TXT_NewWindow(char *title)
|
||||
{
|
||||
int i;
|
||||
|
|
@ -79,11 +72,8 @@ txt_window_t *TXT_NewWindow(char *title)
|
|||
|
||||
// Default actions
|
||||
|
||||
cancel_action = TXT_NewWindowAction(KEY_ESCAPE, "Abort");
|
||||
TXT_SetWindowAction(win, TXT_HORIZ_LEFT, cancel_action);
|
||||
TXT_SignalConnect(cancel_action, "pressed", DefaultCancelAction, win);
|
||||
accept_action = TXT_NewWindowAction(KEY_ENTER, "Accept");
|
||||
TXT_SetWindowAction(win, TXT_HORIZ_RIGHT, accept_action);
|
||||
TXT_SetWindowAction(win, TXT_HORIZ_LEFT, TXT_NewWindowEscapeAction(win));
|
||||
TXT_SetWindowAction(win, TXT_HORIZ_RIGHT, TXT_NewWindowAcceptAction());
|
||||
|
||||
return win;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -79,3 +79,25 @@ txt_window_action_t *TXT_NewWindowAction(int key, char *label)
|
|||
return action;
|
||||
}
|
||||
|
||||
static void WindowCloseCallback(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(window))
|
||||
{
|
||||
TXT_CAST_ARG(txt_window_t, window);
|
||||
|
||||
TXT_CloseWindow(window);
|
||||
}
|
||||
|
||||
txt_window_action_t *TXT_NewWindowEscapeAction(txt_window_t *window)
|
||||
{
|
||||
txt_window_action_t *action;
|
||||
|
||||
action = TXT_NewWindowAction(KEY_ESCAPE, "Abort");
|
||||
TXT_SignalConnect(action, "pressed", WindowCloseCallback, window);
|
||||
|
||||
return action;
|
||||
}
|
||||
|
||||
txt_window_action_t *TXT_NewWindowAcceptAction(void)
|
||||
{
|
||||
return TXT_NewWindowAction(KEY_ENTER, "Accept");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
typedef struct txt_window_action_s txt_window_action_t;
|
||||
|
||||
#include "txt_widget.h"
|
||||
#include "txt_window.h"
|
||||
|
||||
struct txt_window_action_s
|
||||
{
|
||||
|
|
@ -38,5 +39,13 @@ struct txt_window_action_s
|
|||
|
||||
txt_window_action_t *TXT_NewWindowAction(int key, char *label);
|
||||
|
||||
// Creates an "escape" button that closes the window
|
||||
|
||||
txt_window_action_t *TXT_NewWindowEscapeAction(txt_window_t *window);
|
||||
|
||||
// Accept button that does nothing
|
||||
|
||||
txt_window_action_t *TXT_NewWindowAcceptAction(void);
|
||||
|
||||
#endif /* #ifndef TXT_WINDOW_ACTION_H */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue