From 49f4fa0d787c867ed24ac49897feb347939d4ef3 Mon Sep 17 00:00:00 2001 From: Ole Loots Date: Sat, 21 Sep 2013 05:29:04 +0200 Subject: Hotlist and History and Cookies Manager implemented. (The Cookie Manager window is a new one) --- atari/gemtk/gemtk.h | 18 ++++++++++++++++++ atari/gemtk/guiwin.c | 49 +++++++++++++++++++++++++++++++++++++++++++++---- atari/gemtk/utils.c | 19 +++++++++++++++++++ 3 files changed, 82 insertions(+), 4 deletions(-) (limited to 'atari/gemtk') diff --git a/atari/gemtk/gemtk.h b/atari/gemtk/gemtk.h index 3e406b5e3..88ad0ccdb 100644 --- a/atari/gemtk/gemtk.h +++ b/atari/gemtk/gemtk.h @@ -33,6 +33,17 @@ extern unsigned short _systype_v; unsigned short _systype (void); +/* GEMTK Utils API: */ + +#define GEMTK_DBG_GRECT(s,g) \ + printf("%s", s); \ + printf("\tx0: %d, \n", (g)->g_x); \ + printf("\ty0: %d, \n", (g)->g_y); \ + printf("\tx1: %d, \n", (g)->g_x+(g)->g_w); \ + printf("\ty1: %d, \n", (g)->g_y+(g)->g_h); \ + printf("\tw: %d, \n", (g)->g_w); \ + printf("\th: %d \n", (g)->g_h); \ + /* * Chech for GRECT intersection without modifiend the src rectangles * return true when the GRECT's intersect, fals otherwise. @@ -47,6 +58,9 @@ int gemtk_keybd2ascii( int keybd, int shift); /** set VDI clip area by passing an GRECT */ void gemtk_clip_grect(VdiHdl vh, GRECT *rect); +void gemtk_wind_get_str(short aes_handle, short mode, char *str, int len); + + #ifndef POINT_WITHIN # define POINT_WITHIN(_x,_y, r) ((_x >= r.g_x) && (_x <= r.g_x + r.g_w ) \ && (_y >= r.g_y) && (_y <= r.g_y + r.g_h)) @@ -180,6 +194,8 @@ GUIWIN * gemtk_wm_add(short handle, uint32_t flags, GUIWIN * gemtk_wm_find(short handle); +void gemtk_wm_dump_window_info(GUIWIN *win); + short gemtk_wm_remove(GUIWIN *win); GUIWIN * gemtk_wm_validate_ptr(GUIWIN *win); @@ -192,6 +208,8 @@ 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); +short gemtk_wm_get_toolbar_edit_obj(GUIWIN *win); + short gemtk_wm_get_handle(GUIWIN *win); uint32_t gemtk_wm_get_state(GUIWIN *win); diff --git a/atari/gemtk/guiwin.c b/atari/gemtk/guiwin.c index 01f548305..4ad3561f2 100644 --- a/atari/gemtk/guiwin.c +++ b/atari/gemtk/guiwin.c @@ -701,13 +701,13 @@ GUIWIN * gemtk_wm_add(short handle, uint32_t flags, gemtk_wm_event_handler_f cb) } /** -* Returns an GUIWIN* for AES handle, when that AES window is managed by guiwin +* Returns an GUIWIN* for AES handle, when that AES window is managed by gemtk_wm */ GUIWIN *gemtk_wm_find(short handle) { GUIWIN *g; DEBUG_PRINT(("guiwin search handle: %d\n", handle)); - for( g = winlist; g != NULL; g=g->next ) { + for (g = winlist; g != NULL; g=g->next) { if(g->handle == handle) { DEBUG_PRINT(("guiwin found handle: %p\n", g)); return(g); @@ -716,6 +716,48 @@ GUIWIN *gemtk_wm_find(short handle) return(NULL); } +void gemtk_wm_dump_window_info(GUIWIN *win) +{ + + + + char title[255]; + GRECT work_area; + GRECT curr_area; + GRECT gemtk_work_area; + GRECT gemtk_toolbar_area; + GRECT gemtk_free_area; + short handle; + struct gemtk_wm_scroll_info_s *slid; + + handle = gemtk_wm_get_handle(win); + + assert(handle); + + gemtk_wind_get_str(handle, WF_NAME, title, 255); + wind_get_grect(handle, WF_WORKXYWH, &work_area); + wind_get_grect(handle, WF_CURRXYWH, &curr_area); + gemtk_wm_get_grect(win, GEMTK_WM_AREA_CONTENT, &gemtk_free_area); + gemtk_wm_get_grect(win, GEMTK_WM_AREA_WORK, &gemtk_work_area); + gemtk_wm_get_grect(win, GEMTK_WM_AREA_TOOLBAR, &gemtk_toolbar_area); + slid = gemtk_wm_get_scroll_info(win); + + printf ("GEMTK Window: %p (AES handle: %d)\n", win, win->handle); + printf ("Title: %s\n", title); + GEMTK_DBG_GRECT ("WF_WORKXYWH: \n", &work_area) + GEMTK_DBG_GRECT ("WF_CURRXYWH: \n", &curr_area) + GEMTK_DBG_GRECT ("GEMTK_WM_AREA_CONTENT:\n", &gemtk_free_area) + GEMTK_DBG_GRECT ("GEMTK_WM_AREA_WORK:\n", &gemtk_work_area) + GEMTK_DBG_GRECT ("GEMTK_WM_AREA_TOOLBAR:\n", &gemtk_toolbar_area) + printf ("Slider X pos: %d\n", slid->x_pos); + printf ("Slider Y pos: %d\n", slid->y_pos); + printf ("Slider X units: %d\n", slid->x_unit_px); + printf ("Slider Y units: %d\n", slid->y_unit_px); + + +#undef DBG_GRECT +}; + /** * Check's if the pointer is managed by the guiwin API. */ @@ -1024,7 +1066,6 @@ uint32_t gemtk_wm_get_state(GUIWIN *win) return(win->state); } - /** * Set and new event handler function. */ @@ -1066,7 +1107,7 @@ void gemtk_wm_set_toolbar_size(GUIWIN *win, uint16_t s) win->toolbar_size = s; } -short getm_wm_get_toolbar_edit_obj(GUIWIN *win) +short gemtk_wm_get_toolbar_edit_obj(GUIWIN *win) { return(win->toolbar_edit_obj); } diff --git a/atari/gemtk/utils.c b/atari/gemtk/utils.c index f080e307c..20fe5d424 100644 --- a/atari/gemtk/utils.c +++ b/atari/gemtk/utils.c @@ -95,4 +95,23 @@ void gemtk_clip_grect(VdiHdl vh, GRECT *rect) vs_clip_pxy(vh, pxy); } +void gemtk_wind_get_str(short aes_handle, short mode, char *str, int len) +{ + char tmp_str[255]; + + if(len>255) { + len = 255; + } + + memset(str, 0, len); + return; + /* + + wind_get(aes_handle, mode, (short)(((unsigned long)tmp_str)>>16), + (short)(((unsigned long)tmp_str) & 0xffff), 0, 0); + + strncpy(str, tmp_str, len); + */ +} + -- cgit v1.2.3