diff options
author | Ole Loots <ole@monochrom.net> | 2013-01-31 19:22:35 +0100 |
---|---|---|
committer | Ole Loots <ole@monochrom.net> | 2013-01-31 19:22:35 +0100 |
commit | 54f719aa960159c5b1978846223732c9669ca7fa (patch) | |
tree | d190c128e66a7d98a1e6f8d0e77477499627d928 /atari/gemtk | |
parent | 577ff3cffc5fb99041c5da2d828b1f25cfb13dc9 (diff) | |
download | netsurf-54f719aa960159c5b1978846223732c9669ca7fa.tar.gz netsurf-54f719aa960159c5b1978846223732c9669ca7fa.tar.bz2 |
Some more finetuning...
Diffstat (limited to 'atari/gemtk')
-rw-r--r-- | atari/gemtk/gemtk.h | 11 | ||||
-rw-r--r-- | atari/gemtk/guiwin.c | 77 |
2 files changed, 63 insertions, 25 deletions
diff --git a/atari/gemtk/gemtk.h b/atari/gemtk/gemtk.h index e187aea6c..1853e75bc 100644 --- a/atari/gemtk/gemtk.h +++ b/atari/gemtk/gemtk.h @@ -112,7 +112,7 @@ short gemtk_msg_box_show(short type, const char * msg); #define GEMTK_WM_VSLIDER 0x01 #define GEMTK_WM_HSLIDER 0x02 -#define GEMTK_WM_VH_SLIDER 0x03 +#define GEMTK_WM_VH_SLIDER 0x03 /* Message sent to the client application when an AES object is @@ -123,7 +123,8 @@ short gemtk_msg_box_show(short type, const char * msg); msg[5] = Number of clicks. msg[6] = Modifier keys. */ -#define GEMTK_WM_WM_FORM 1001 +#define GEMTK_WM_WM_FORM_CLICK 1001 +#define GEMTK_WM_WM_FORM_KEY 1002 struct gemtk_window_s; @@ -182,6 +183,10 @@ short gemtk_wm_remove(GUIWIN *win); GUIWIN * gemtk_wm_validate_ptr(GUIWIN *win); +GUIWIN *gemtk_wm_link(GUIWIN *win); + +GUIWIN *gemtk_wm_unlink(GUIWIN *win); + short gemtk_wm_dispatch_event(EVMULT_IN *ev_in, EVMULT_OUT *ev_out, short msg[8]); void gemtk_wm_get_grect(GUIWIN *win, enum guwin_area_e mode, GRECT *dest); @@ -224,6 +229,8 @@ void gemtk_wm_send_redraw(GUIWIN *win, GRECT *area); VdiHdl gemtk_wm_get_vdi_handle(GUIWIN *win); +short getm_wm_get_toolbar_edit_obj(GUIWIN *win); + bool gemtk_wm_has_intersection(GUIWIN *win, GRECT *work); void gemtk_wm_toolbar_redraw(GUIWIN *win, uint16_t msg, GRECT *clip); 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) { |