diff options
author | Ole Loots <ole@monochrom.net> | 2013-01-17 01:18:27 +0100 |
---|---|---|
committer | Ole Loots <ole@monochrom.net> | 2013-01-17 01:18:27 +0100 |
commit | 13f22099ce9877a90caf376d626771beea7395c3 (patch) | |
tree | fdd46cc87641f235f33dd003a2acbefc751e6428 /atari/search.c | |
parent | 4f0ae4e12868ddf26e7018e0a3dec4badaa1b1b6 (diff) | |
download | netsurf-13f22099ce9877a90caf376d626771beea7395c3.tar.gz netsurf-13f22099ce9877a90caf376d626771beea7395c3.tar.bz2 |
Search is functional.
Diffstat (limited to 'atari/search.c')
-rw-r--r-- | atari/search.c | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/atari/search.c b/atari/search.c index dac93fc2a..85695481b 100644 --- a/atari/search.c +++ b/atari/search.c @@ -128,6 +128,8 @@ void nsatari_search_set_back_state(bool active, void *p) SEARCH_FORM_SESSION s = (SEARCH_FORM_SESSION)p;
/* deactivate back cb */
LOG(("%p: set back state: %d\n", p, active)); + + s->state.back_avail = true; // TODO: update gui
} @@ -146,12 +148,12 @@ static int apply_form(OBJECT *obj, struct s_search_form_state *s) s->flags |= SEARCH_FLAG_SHOWALL;
cstr = get_text(obj, TOOLBAR_TB_SRCH); - snprintf(s->text, 11, "%s", cstr); + snprintf(s->text, 32, "%s", cstr); return ( 0 );
}
-static void set_text(OBJECT *obj, short idx, char * text, int len )
+static void set_text(OBJECT *obj, short idx, char * text, int len)
{
char spare[255];
@@ -165,6 +167,33 @@ static void set_text(OBJECT *obj, short idx, char * text, int len ) set_string(obj, idx, spare);
} + +void nsatari_search_restore_form( struct s_search_form_session *s, OBJECT *obj) +{ + if ((s->state.flags & SEARCH_FLAG_SHOWALL) != 0) { + obj[TOOLBAR_CB_SHOWALL].ob_state |= OS_SELECTED; + } + else { + obj[TOOLBAR_CB_SHOWALL].ob_state &= ~OS_SELECTED; + } + + if ((s->state.flags & SEARCH_FLAG_CASE_SENSITIVE) != 0) { + obj[TOOLBAR_CB_CASESENSE].ob_state |= OS_SELECTED; + } + else { + obj[TOOLBAR_CB_CASESENSE].ob_state &= ~OS_SELECTED; + } + + if (s->state.back_avail == false) { + obj[TOOLBAR_BT_SEARCH_BACK].ob_state |= OS_DISABLED; + } else { + obj[TOOLBAR_BT_SEARCH_BACK].ob_state &= ~OS_DISABLED; + } + + TEDINFO *t = ((TEDINFO *)get_obspec(obj, TOOLBAR_TB_SRCH)); + set_text(obj, TOOLBAR_TB_SRCH, s->state.text, t->te_txtlen); + +} void nsatari_search_session_destroy(struct s_search_form_session *s)
{
@@ -228,7 +257,7 @@ void nsatari_search_perform(struct s_search_form_session *s, OBJECT *obj, s->state.flags &= (~SEARCH_FLAG_FORWARDS); if( browser_window_search_verify_new(s->bw, &nsatari_search_callbacks, s) ){ - printf("searching for: %s\n", get_text(obj, TOOLBAR_TB_SRCH));
+ LOG(("searching for: %s\n", get_text(obj, TOOLBAR_TB_SRCH)));
browser_window_search_step(s->bw, s->state.flags, get_text(obj, TOOLBAR_TB_SRCH));
}
@@ -243,9 +272,11 @@ struct s_search_form_session * nsatari_search_session_create(OBJECT * obj, sfs = calloc(1, sizeof(struct s_search_form_session)); + assert(obj); assert(sfs); sfs->bw = bw; + apply_form(obj, &sfs->state); browser_window_search_destroy_context(bw); |