From 13f22099ce9877a90caf376d626771beea7395c3 Mon Sep 17 00:00:00 2001 From: Ole Loots Date: Thu, 17 Jan 2013 01:18:27 +0100 Subject: Search is functional. --- atari/gemtk/gemtk.h | 1 + atari/gemtk/guiwin.c | 4 +++- atari/gemtk/objc.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) (limited to 'atari/gemtk') diff --git a/atari/gemtk/gemtk.h b/atari/gemtk/gemtk.h index 8361a1488..e31fc8ea1 100644 --- a/atari/gemtk/gemtk.h +++ b/atari/gemtk/gemtk.h @@ -243,6 +243,7 @@ void guiwin_clear(GUIWIN *win); /* -------------------------------------------------------------------------- */ /* AES OBJECT TREE TOOLS */ /* -------------------------------------------------------------------------- */ +char gemtk_obj_set_str_safe(OBJECT * tree, short idx, char *txt); char *get_text(OBJECT * tree, short idx); GRECT * obj_screen_rect(OBJECT * tree, short obj); bool obj_is_inside(OBJECT * tree, short obj, GRECT *area); diff --git a/atari/gemtk/guiwin.c b/atari/gemtk/guiwin.c index 93bc1bfdd..9f756a6be 100644 --- a/atari/gemtk/guiwin.c +++ b/atari/gemtk/guiwin.c @@ -356,7 +356,7 @@ static short preproc_mu_button(GUIWIN * gw, EVMULT_OUT *ev_out, short msg[8]) uint16_t type = (gw->toolbar[obj_idx].ob_type & 0xFF); uint16_t nextobj; - DEBUG_PRINT(("type: %d\n", type)); + DEBUG_PRINT(("toolbar item type: %d\n", type)); // report mouse click to the tree: retval = form_wbutton(gw->toolbar, gw->toolbar_focus_obj, ev_out->emo_mclicks, &nextobj, @@ -383,6 +383,8 @@ static short preproc_mu_button(GUIWIN * gw, EVMULT_OUT *ev_out, short msg[8]) ev_out->emo_events = oldevents; retval = 1; } else { + printf("not within"); + dbg_grect("tb", &tb_area); if (gw->toolbar_edit_obj != -1) { gw->toolbar_edit_obj = -1; } diff --git a/atari/gemtk/objc.c b/atari/gemtk/objc.c index 3bf8ebbe0..3221fdae6 100644 --- a/atari/gemtk/objc.c +++ b/atari/gemtk/objc.c @@ -21,6 +21,7 @@ * */ +#include #include "gemtk.h" char *get_text(OBJECT * tree, short idx) @@ -49,6 +50,47 @@ char *get_text(OBJECT * tree, short idx) return (p); } +static void set_text(OBJECT *obj, short idx, char * text, int len) +{ + char spare[255]; + + if( len > 254 ) + len = 254; + if( text != NULL ){ + strncpy(spare, text, 254); + } else { + strcpy(spare, ""); + } + + set_string(obj, idx, spare); +} + +char gemtk_obj_set_str_safe(OBJECT * tree, short idx, char *txt) +{ + char spare[204]; + short type = 0; + short maxlen = 0; + TEDINFO *ted; + + + type = (tree[idx].ob_type & 0xFF); + if (type == G_FTEXT || type == G_FBOXTEXT) { + TEDINFO *ted = ((TEDINFO *)get_obspec(tree, idx)); + maxlen = ted->te_txtlen+1; + if (maxlen > 200) { + maxlen = 200; + } + else if (maxlen < 0) { + maxlen = 0; + } + } else { + assert((type == G_FTEXT) || (type == G_FBOXTEXT)); + } + + snprintf(spare, maxlen, "%s", txt); + set_string(tree, idx, spare); +} + OBJECT *get_tree(int idx) { -- cgit v1.2.3