summaryrefslogtreecommitdiff
path: root/atari/search.c
diff options
context:
space:
mode:
authorOle Loots <ole@monochrom.net>2013-01-07 20:04:44 +0100
committerOle Loots <ole@monochrom.net>2013-01-07 20:04:44 +0100
commit0bbccaa9359b3cedf9f37cd8e322edc90240a7bc (patch)
tree3161618fdbc1f716d8949c60605a1427f92451a2 /atari/search.c
parent5acf36b89ecda31515de975be85197e0a4395db7 (diff)
downloadnetsurf-0bbccaa9359b3cedf9f37cd8e322edc90240a7bc.tar.gz
netsurf-0bbccaa9359b3cedf9f37cd8e322edc90240a7bc.tar.bz2
Finally it compiles without WinDom - still some things to bring back:
- Serch window - Pop Menus in the settings dialog
Diffstat (limited to 'atari/search.c')
-rw-r--r--atari/search.c65
1 files changed, 41 insertions, 24 deletions
diff --git a/atari/search.c b/atari/search.c
index a8bde07ce..0b2ed2b05 100644
--- a/atari/search.c
+++ b/atari/search.c
@@ -29,7 +29,6 @@
#include <string.h>
#include <stdbool.h>
#include <assert.h>
-#include <windom.h>
#include "desktop/gui.h"
#include "desktop/browser.h"
@@ -140,6 +139,23 @@ static SEARCH_FORM_SESSION get_search_session(GUIWIN * win)
{
return (current);
}
+
+
+
+static void set_text( 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(dlgtree, idx, spare);
+}
static void destroy_search_session(SEARCH_FORM_SESSION s)
{
@@ -151,27 +167,27 @@ static void destroy_search_session(SEARCH_FORM_SESSION s)
static int apply_form(GUIWIN *win, struct s_search_form_state * s)
{
- OBJECT * obj = dlgtree;
+ OBJECT * obj = dlgtree;
+ char * cstr;
+
if( obj == NULL ){
goto error;
- }
+ }
+
s->flags = 0;
- if( (obj[SEARCH_CB_FWD].ob_state & SELECTED) != 0 )
+ if( (obj[SEARCH_CB_FWD].ob_state & OS_SELECTED) != 0 )
s->flags = SEARCH_FLAG_FORWARDS;
- if( (obj[SEARCH_CB_CASESENSE].ob_state & SELECTED) != 0 )
+ if( (obj[SEARCH_CB_CASESENSE].ob_state & OS_SELECTED) != 0 )
s->flags |= SEARCH_FLAG_CASE_SENSITIVE;
- if( (obj[SEARCH_CB_SHOWALL].ob_state & SELECTED) != 0 )
+ if( (obj[SEARCH_CB_SHOWALL].ob_state & OS_SELECTED) != 0 )
s->flags |= SEARCH_FLAG_SHOWALL;
-
- char * cstr = ObjcString( obj, SEARCH_TB_SRCH, NULL );
- if( cstr != NULL ) {
- strncpy((char*)&s->text[0], cstr, 31 );
- }
+
+ cstr = get_text(dlgtree, SEARCH_TB_SRCH);
+ snprintf(s->text, 31, "%s", cstr);
return ( 0 );
error:
s->flags = SEARCH_FLAG_FORWARDS;
- /* s->forward = true; */
strncpy((char*)&s->text[0], "", 31 );
return( 1 );
}
@@ -183,9 +199,9 @@ static bool form_changed(GUIWIN * w)
struct s_search_form_state cur;
SEARCH_FORM_SESSION s = get_search_session(w);
if( s == NULL )
- return false;
- OBJECT * obj = (OC_FORM, w);
- assert( s != NULL && obj != NULL );
+ return false;
+ OBJECT * obj = dlgtree;
+ assert(s != NULL && obj != NULL);
uint32_t flags_old = s->state.flags;
apply_form(w, &cur);
@@ -196,7 +212,8 @@ static bool form_changed(GUIWIN * w)
return( true );
}
- char * cstr = ObjcString( obj, SEARCH_TB_SRCH, NULL );
+ char * cstr;
+ cstr = get_text(obj, SEARCH_TB_SRCH);
if (cstr != NULL){
if (strcmp(cstr, (char*)&s->state.text) != 0) {
return (true);
@@ -207,7 +224,7 @@ static bool form_changed(GUIWIN * w)
}
-static void __CDECL evnt_bt_srch_click( WINDOW *win, int index, int unused, void *unused2)
+static void __CDECL evnt_bt_srch_click(GUIWIN * win, int index, int unused, void *unused2)
{
bool fwd;
@@ -215,31 +232,31 @@ static void __CDECL evnt_bt_srch_click( WINDOW *win, int index, int unused, void
OBJECT * obj = dlgtree;
search_flags_t flags = 0;
- ObjcChange(OC_FORM, win, index, ~SELECTED , TRUE);
+
if( form_changed(searchwin) ){
browser_window_search_destroy_context(s->bw);
- apply_form(searchwin, &s->state );
+ apply_form(searchwin, &s->state);
} else {
/* get search direction manually: */
- if( (obj[SEARCH_CB_FWD].ob_state & SELECTED) != 0 )
+ if( (obj[SEARCH_CB_FWD].ob_state & OS_SELECTED) != 0 )
s->state.flags |= SEARCH_FLAG_FORWARDS;
else
s->state.flags &= (~SEARCH_FLAG_FORWARDS);
}
if( browser_window_search_verify_new(s->bw, &nsatari_search_callbacks, s) ){
- browser_window_search_step(s->bw, s->state.flags, ObjcString( obj, SEARCH_TB_SRCH, NULL ) );
+ browser_window_search_step(s->bw, s->state.flags, get_text(obj, SEARCH_TB_SRCH));
}
}
-static void __CDECL evnt_cb_click( WINDOW *win, int index, int unused, void *unused2)
+static void __CDECL evnt_cb_click(GUIWIN *win, int index, int unused, void *unused2)
{
short newstate;
}
-static void __CDECL evnt_close( WINDOW *win, short buff[8])
+static void __CDECL evnt_close(GUIWIN *win, short buff[8])
{
}
@@ -322,7 +339,7 @@ SEARCH_FORM_SESSION open_browser_search(struct gui_window * gw)
EvntAdd(sfs->formwind, WM_CLOSED, evnt_close, EV_TOP);
*/
apply_form(searchwin, &sfs->state );
- set_string(dlgtree, SEARCH_TB_SRCH, "");
+ set_text(SEARCH_TB_SRCH, "", 31);
return( current );