summaryrefslogtreecommitdiff
path: root/atari/gemtk/guiwin.c
diff options
context:
space:
mode:
authorOle Loots <ole@monochrom.net>2013-01-31 19:22:35 +0100
committerOle Loots <ole@monochrom.net>2013-01-31 19:22:35 +0100
commit54f719aa960159c5b1978846223732c9669ca7fa (patch)
treed190c128e66a7d98a1e6f8d0e77477499627d928 /atari/gemtk/guiwin.c
parent577ff3cffc5fb99041c5da2d828b1f25cfb13dc9 (diff)
downloadnetsurf-54f719aa960159c5b1978846223732c9669ca7fa.tar.gz
netsurf-54f719aa960159c5b1978846223732c9669ca7fa.tar.bz2
Some more finetuning...
Diffstat (limited to 'atari/gemtk/guiwin.c')
-rw-r--r--atari/gemtk/guiwin.c77
1 files changed, 54 insertions, 23 deletions
diff --git a/atari/gemtk/guiwin.c b/atari/gemtk/guiwin.c
index 95e9b085c..0334e58df 100644
--- a/atari/gemtk/guiwin.c
+++ b/atari/gemtk/guiwin.c
@@ -434,7 +434,7 @@ static short preproc_mu_button(GUIWIN * gw, EVMULT_OUT *ev_out, short msg[8])
}
short oldevents = ev_out->emo_events;
- short msg_out[8] = { GEMTK_WM_WM_FORM, gl_apid,
+ short msg_out[8] = { GEMTK_WM_WM_FORM_CLICK, gl_apid,
0, gw->handle,
gw->form_focus_obj, ev_out->emo_mclicks,
ev_out->emo_kmeta, 0
@@ -484,7 +484,9 @@ static short preproc_mu_keybd(GUIWIN * gw, EVMULT_OUT *ev_out, short msg[8])
ev_out->emo_kreturn, &edit_idx,
EDCHAR, gw->handle);
}
- retval = 1;
+ //retval = 1;
+ /*gemtk_wm_send_msg(gw, GEMTK_WM_WM_FORM_KEY, gw->toolbar_edit_obj,
+ ev_out->emo_kreturn, 0, 0);*/
}
if((gw->form != NULL) && (gw->form_edit_obj > -1) ) {
@@ -649,19 +651,7 @@ GUIWIN * gemtk_wm_add(short handle, uint32_t flags, gemtk_wm_event_handler_f cb)
win->handle = handle;
win->handler_func = cb;
win->flags = flags;
- if (winlist == NULL) {
- winlist = win;
- win->next = NULL;
- win->prev = NULL;
- } else {
- GUIWIN *tmp = winlist;
- while( tmp->next != NULL ) {
- tmp = tmp->next;
- }
- tmp->next = win;
- win->prev = tmp;
- win->next = NULL;
- }
+ gemtk_wm_link(win);
DEBUG_PRINT(("Added guiwin: %p, tb: %p\n", win, win->toolbar));
return(win);
@@ -700,15 +690,41 @@ GUIWIN *gemtk_wm_validate_ptr(GUIWIN *win)
return(NULL);
}
-/**
-* Remove an GUIWIN from the list of managed windows.
-* Call this when the AES window is closed or deleted.
-*/
-short gemtk_wm_remove(GUIWIN *win)
+GUIWIN *gemtk_wm_link(GUIWIN *win)
{
- win = gemtk_wm_validate_ptr(win);
- if (win == NULL)
- return(-1);
+ /* Make sure the window is not linked: */
+ GUIWIN *win_val = gemtk_wm_validate_ptr(win);
+ if(win_val){
+ DEBUG_PRINT(("GUIWIN %p is already linked!\n", win));
+ return(NULL);
+ }
+
+ if (winlist == NULL) {
+ winlist = win;
+ win->next = NULL;
+ win->prev = NULL;
+ } else {
+ GUIWIN *tmp = winlist;
+ while( tmp->next != NULL ) {
+ tmp = tmp->next;
+ }
+ tmp->next = win;
+ win->prev = tmp;
+ win->next = NULL;
+ }
+}
+
+GUIWIN *gemtk_wm_unlink(GUIWIN *win)
+{
+ GUIWIN * win_val;
+
+ /* Make sure the window is linked: */
+ win_val = gemtk_wm_validate_ptr(win);
+ if (win_val == NULL){
+ DEBUG_PRINT(("GUIWIN %p is not linked!\n", win));
+ return(NULL);
+ }
+
/* unlink the window: */
if(win->prev != NULL ) {
@@ -719,6 +735,16 @@ short gemtk_wm_remove(GUIWIN *win)
if (win->next != NULL) {
win->next->prev = win->prev;
}
+ return(win);
+}
+
+/**
+* Remove an GUIWIN from the list of managed windows and free the GUIWIN.
+* Call this when the AES window is closed or deleted.
+*/
+short gemtk_wm_remove(GUIWIN *win)
+{
+ gemtk_wm_unlink(win);
DEBUG_PRINT(("guiwin free: %p\n", win));
free(win);
return(0);
@@ -990,6 +1016,11 @@ void gemtk_wm_set_toolbar_size(GUIWIN *win, uint16_t s)
win->toolbar_size = s;
}
+short getm_wm_get_toolbar_edit_obj(GUIWIN *win)
+{
+ return(win->toolbar_edit_obj);
+}
+
/** Set the current active edit object */
void gemtk_wm_set_toolbar_edit_obj(GUIWIN *win, uint16_t obj, short kreturn)
{