summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--atari/gemtk/gemtk.h5
-rwxr-xr-xatari/res/netsurf.rscbin36642 -> 38600 bytes
-rwxr-xr-xatari/res/netsurf.rsh173
-rwxr-xr-xatari/res/netsurf.rsm181
-rw-r--r--atari/settings.c362
5 files changed, 558 insertions, 163 deletions
diff --git a/atari/gemtk/gemtk.h b/atari/gemtk/gemtk.h
index 9c341ba5c..f931e62c6 100644
--- a/atari/gemtk/gemtk.h
+++ b/atari/gemtk/gemtk.h
@@ -51,6 +51,9 @@ OBJECT *get_tree( int idx );
# define MIN(_a,_b) ((_a<_b) ? _a : _b)
#endif
+#ifndef SET_BIT
+# define SET_BIT(field,bit,val) field = (val)?((field)|(bit)):((field) & ~(bit))
+#endif
/* -------------------------------------------------------------------------- */
/* MultiTOS Drag & Drop */
@@ -91,6 +94,8 @@ short msg_box_show(short type, const char * msg);
#define GW_STATUS_ICONIFIED 0x01
#define GW_STATUS_SHADED 0x02
+#define GW_XTYPE_CHECKBOX (101 << 8)
+
#define GUIWIN_VSLIDER 0x01
#define GUIWIN_HSLIDER 0x02
#define GUIWIN_VH_SLIDER 0x03
diff --git a/atari/res/netsurf.rsc b/atari/res/netsurf.rsc
index da3d2510c..3844f5a6d 100755
--- a/atari/res/netsurf.rsc
+++ b/atari/res/netsurf.rsc
Binary files differ
diff --git a/atari/res/netsurf.rsh b/atari/res/netsurf.rsh
index 5ad6b90f9..70426ba7e 100755
--- a/atari/res/netsurf.rsh
+++ b/atari/res/netsurf.rsh
@@ -137,69 +137,46 @@
#define CHOICES_REG_PATH 5 /* BUTTON in tree CHOICES */
#define CHOICES_REG_CACHE 6 /* BUTTON in tree CHOICES */
#define CHOICES_TAB_STYLE 7 /* BUTTON in tree CHOICES */
-#define CHOICES_EDIT_DEF_FONT_SIZE 10 /* FTEXT in tree CHOICES */
-#define CHOICES_DEC_DEF_FONT_SIZE 11 /* BOXCHAR in tree CHOICES */
-#define CHOICES_INC_DEF_FONT_SIZE 12 /* BOXCHAR in tree CHOICES */
-#define CHOICES_EDIT_MIN_FONT_SIZE 16 /* FTEXT in tree CHOICES */
-#define CHOICES_DEC_MIN_FONT_SIZE 17 /* BOXCHAR in tree CHOICES */
-#define CHOICES_INC_MIN_FONT_SIZE 18 /* BOXCHAR in tree CHOICES */
-#define CHOICES_BT_TOOLBAR_ICONSET 22 /* BUTTON in tree CHOICES */
-#define CHOICES_INPUT_TOOLBAR_BGCOLOR 24 /* FTEXT in tree CHOICES */
-#define CHOICES_TAB_RENDER 25 /* BUTTON in tree CHOICES */
-/* Make sure that initial value is large enough! */
-#define CHOICES_BT_SEL_FONT_RENDERER 26 /* BUTTON in tree CHOICES */
-#define CHOICES_CB_TRANSPARENCY 28 /* BUTTON in tree CHOICES */
-#define CHOICES_CB_ENABLE_ANIMATION 30 /* BUTTON in tree CHOICES */
-#define CHOICES_EDIT_MIN_GIF_DELAY 33 /* FTEXT in tree CHOICES */
-#define CHOICES_DEC_GIF_DELAY 34 /* BOXCHAR in tree CHOICES */
-#define CHOICES_INC_GIF_DELAY 35 /* BOXCHAR in tree CHOICES */
-#define CHOICES_CB_INCREMENTAL_REFLOW 37 /* BUTTON in tree CHOICES */
-#define CHOICES_EDIT_MIN_REFLOW_PERIOD 39 /* FTEXT in tree CHOICES */
-#define CHOICES_DEC_INCREMENTAL_REFLOW 40 /* BOXCHAR in tree CHOICES */
-#define CHOICES_INC_INCREMENTAL_REFLOW 41 /* BOXCHAR in tree CHOICES */
-#define CHOICES_CB_ANTI_ALIASING 43 /* BUTTON in tree CHOICES */
-#define CHOICES_TAB_PATH 44 /* BUTTON in tree CHOICES */
-#define CHOICES_EDIT_CA_CERTS_PATH 49 /* FTEXT in tree CHOICES */
-#define CHOICES_EDIT_DOWNLOAD_PATH 50 /* FTEXT in tree CHOICES */
-#define CHOICES_EDIT_HOTLIST_FILE 51 /* FTEXT in tree CHOICES */
-#define CHOICES_EDIT_CA_BUNDLE 52 /* FTEXT in tree CHOICES */
-#define CHOICES_EDIT_EDITOR 53 /* FTEXT in tree CHOICES */
-#define CHOICES_TAB_CACHE 55 /* BUTTON in tree CHOICES */
-#define CHOICES_INC_MEM_CACHE 59 /* BOXCHAR in tree CHOICES */
-#define CHOICES_DEC_MEM_CACHE 60 /* BOXCHAR in tree CHOICES */
-#define CHOICES_STR_MAX_MEM_CACHE 61 /* STRING in tree CHOICES */
-#define CHOICES_TAB_BROWSER 62 /* BUTTON in tree CHOICES */
-#define CHOICES_CB_HIDE_ADVERTISEMENT 64 /* BUTTON in tree CHOICES */
-#define CHOICES_CB_DISABLE_POPUP_WINDOWS 65 /* BUTTON in tree CHOICES */
-#define CHOICES_CB_SEND_DO_NOT_TRACK 66 /* BUTTON in tree CHOICES */
-#define CHOICES_BT_SEL_LOCALE 68 /* BUTTON in tree CHOICES */
-#define CHOICES_BT_GUI_LANG 71 /* BUTTON in tree CHOICES */
-#define CHOICES_EDIT_HISTORY_AGE 74 /* FTEXT in tree CHOICES */
-#define CHOICES_DEC_HISTORY_AGE 75 /* BOXCHAR in tree CHOICES */
-#define CHOICES_INC_HISTORY_AGE 76 /* BOXCHAR in tree CHOICES */
-#define CHOICES_CB_SEND_HTTP_REFERRER 80 /* BUTTON in tree CHOICES */
-#define CHOICES_EDIT_HOMEPAGE 81 /* FTEXT in tree CHOICES */
-#define CHOICES_BT_CLEAR_HISTORY 82 /* BUTTON in tree CHOICES */
-#define CHOICES_TAB_NETWORK 83 /* BUTTON in tree CHOICES */
-#define CHOICES_CB_USE_PROXY 85 /* BUTTON in tree CHOICES */
-#define CHOICES_EDIT_PROXY_HOST 86 /* FTEXT in tree CHOICES */
-#define CHOICES_CB_PROXY_AUTH 87 /* BUTTON in tree CHOICES */
-#define CHOICES_EDIT_PROXY_USERNAME 88 /* FTEXT in tree CHOICES */
-#define CHOICES_EDIT_PROXY_PASSWORD 89 /* FTEXT in tree CHOICES */
-#define CHOICES_EDIT_PROXY_PORT 91 /* FTEXT in tree CHOICES */
-#define CHOICES_INC_MAX_FETCHERS_PER_HOST 96 /* BOXCHAR in tree CHOICES */
-#define CHOICES_INC_CACHED_CONNECTIONS 97 /* BOXCHAR in tree CHOICES */
-#define CHOICES_DEC_MAX_FETCHERS_PER_HOST 98 /* BOXCHAR in tree CHOICES */
-#define CHOICES_DEC_CACHED_CONNECTIONS 99 /* BOXCHAR in tree CHOICES */
-#define CHOICES_EDIT_MAX_FETCHERS_PER_HOST 100 /* FTEXT in tree CHOICES */
-#define CHOICES_EDIT_MAX_CACHED_CONNECTIONS 101 /* FTEXT in tree CHOICES */
-#define CHOICES_EDIT_MAX_FETCHERS 103 /* FTEXT in tree CHOICES */
-#define CHOICES_DEC_MAX_FETCHERS 104 /* BOXCHAR in tree CHOICES */
-#define CHOICES_INC_MAX_FETCHERS 105 /* BOXCHAR in tree CHOICES */
-#define CHOICES_CB_FG_IMAGES 106 /* BUTTON in tree CHOICES */
-#define CHOICES_CB_BG_IMAGES 107 /* BUTTON in tree CHOICES */
-#define CHOICES_ABORT 108 /* BUTTON in tree CHOICES */
-#define CHOICES_OK 109 /* BUTTON in tree CHOICES */
+#define CHOICES_BT_TOOLBAR_ICONSET 11 /* BUTTON in tree CHOICES */
+#define CHOICES_INPUT_TOOLBAR_BGCOLOR 13 /* FTEXT in tree CHOICES */
+#define CHOICES_TAB_RENDER 14 /* BUTTON in tree CHOICES */
+#define CHOICES_CB_TRANSPARENCY 15 /* BUTTON in tree CHOICES */
+#define CHOICES_CB_ENABLE_ANIMATION 17 /* BUTTON in tree CHOICES */
+#define CHOICES_CB_INCREMENTAL_REFLOW 18 /* BUTTON in tree CHOICES */
+#define CHOICES_EDIT_MIN_REFLOW_PERIOD 20 /* FTEXT in tree CHOICES */
+#define CHOICES_DEC_INCREMENTAL_REFLOW 21 /* BOXCHAR in tree CHOICES */
+#define CHOICES_INC_INCREMENTAL_REFLOW 22 /* BOXCHAR in tree CHOICES */
+#define CHOICES_TAB_PATH 24 /* BUTTON in tree CHOICES */
+#define CHOICES_TAB_CACHE 25 /* BUTTON in tree CHOICES */
+#define CHOICES_INC_MEM_CACHE 29 /* BOXCHAR in tree CHOICES */
+#define CHOICES_DEC_MEM_CACHE 30 /* BOXCHAR in tree CHOICES */
+#define CHOICES_STR_MAX_MEM_CACHE 31 /* STRING in tree CHOICES */
+#define CHOICES_TAB_BROWSER 32 /* BUTTON in tree CHOICES */
+#define CHOICES_CB_HIDE_ADVERTISEMENT 34 /* BUTTON in tree CHOICES */
+#define CHOICES_CB_DISABLE_POPUP_WINDOWS 35 /* BUTTON in tree CHOICES */
+#define CHOICES_CB_SEND_DO_NOT_TRACK 36 /* BUTTON in tree CHOICES */
+#define CHOICES_BT_SEL_LOCALE 38 /* BUTTON in tree CHOICES */
+#define CHOICES_BT_GUI_LANG 41 /* BUTTON in tree CHOICES */
+#define CHOICES_EDIT_HISTORY_AGE 44 /* FTEXT in tree CHOICES */
+#define CHOICES_DEC_HISTORY_AGE 45 /* BOXCHAR in tree CHOICES */
+#define CHOICES_INC_HISTORY_AGE 46 /* BOXCHAR in tree CHOICES */
+#define CHOICES_CB_SEND_HTTP_REFERRER 50 /* BUTTON in tree CHOICES */
+#define CHOICES_EDIT_HOMEPAGE 51 /* FTEXT in tree CHOICES */
+#define CHOICES_BT_CLEAR_HISTORY 52 /* BUTTON in tree CHOICES */
+#define CHOICES_TAB_NETWORK 53 /* BUTTON in tree CHOICES */
+#define CHOICES_CB_USE_PROXY 55 /* BUTTON in tree CHOICES */
+#define CHOICES_EDIT_PROXY_HOST 56 /* FTEXT in tree CHOICES */
+#define CHOICES_CB_PROXY_AUTH 57 /* BUTTON in tree CHOICES */
+#define CHOICES_EDIT_PROXY_USERNAME 58 /* FTEXT in tree CHOICES */
+#define CHOICES_EDIT_PROXY_PASSWORD 59 /* FTEXT in tree CHOICES */
+#define CHOICES_EDIT_PROXY_PORT 61 /* FTEXT in tree CHOICES */
+#define CHOICES_EDIT_MAX_FETCHERS 66 /* FTEXT in tree CHOICES */
+#define CHOICES_INC_MAX_FETCHERS 67 /* BOXCHAR in tree CHOICES */
+#define CHOICES_DEC_MAX_FETCHERS 68 /* BOXCHAR in tree CHOICES */
+#define CHOICES_CB_FG_IMAGES 69 /* BUTTON in tree CHOICES */
+#define CHOICES_CB_BG_IMAGES 70 /* BUTTON in tree CHOICES */
+#define CHOICES_ABORT 72 /* BUTTON in tree CHOICES */
+#define CHOICES_OK 73 /* BUTTON in tree CHOICES */
#define VSCROLLER 14 /* form/dial */
#define VSCROLLER_AREA 1 /* BOX in tree VSCROLLER */
@@ -211,18 +188,64 @@
#define VSCROLLER_BT_UP_PIC 4 /* CICON in tree VSCROLLER */
#define SETTINGS 15 /* form/dial */
-#define SETTINGS_EDIT_HOMEPAGE_00 2 /* FTEXT in tree SETTINGS */
-#define SETTINGS_LBL_CB_HIDE_ADVERTISEMENT 3 /* STRING in tree SETTINGS */
-#define SETTINGS_LBL_CB_DISABLE_POPUP_WINDOWS 4 /* STRING in tree SETTINGS */
-#define SETTINGS_CB_HIDE_ADVERTISEMENT 5 /* BOXCHAR in tree SETTINGS */
-#define SETTINGS_CB_DISABLE_POPUP_WINDOWS 6 /* BOXCHAR in tree SETTINGS */
-#define SETTINGS_LBL_CB_SEND_HTTP_REFERRER 7 /* STRING in tree SETTINGS */
-#define SETTINGS_CB_SEND_HTTP_REFERRER 8 /* BOXCHAR in tree SETTINGS */
-#define SETTINGS_LBL_CB_SEND_DO_NOT_TRACK 9 /* STRING in tree SETTINGS */
-#define SETTINGS_CB_SEND_DO_NOT_TRACK 10 /* BOXCHAR in tree SETTINGS */
-#define SETTINGS_DEC_HISTORY_AGE 12 /* BOXCHAR in tree SETTINGS */
-#define SETTINGS_EDIT_HISTORY_AGE 13 /* FTEXT in tree SETTINGS */
-#define SETTINGS_INC_HISTORY_AGE 14 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_SAVE 1 /* BUTTON in tree SETTINGS */
+#define SETTINGS_ABORT 2 /* BUTTON in tree SETTINGS */
+#define SETTINGS_GROUP_BROWSER 3 /* IBOX in tree SETTINGS */
+#define SETTINGS_EDIT_HOMEPAGE 5 /* FTEXT in tree SETTINGS */
+#define SETTINGS_LBL_CB_HIDE_ADVERTISEMENT 6 /* STRING in tree SETTINGS */
+#define SETTINGS_LBL_CB_DISABLE_POPUP_WINDOWS 7 /* STRING in tree SETTINGS */
+#define SETTINGS_CB_HIDE_ADVERTISEMENT 8 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_CB_DISABLE_POPUP_WINDOWS 9 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_LBL_CB_SEND_HTTP_REFERRER 10 /* STRING in tree SETTINGS */
+#define SETTINGS_CB_SEND_HTTP_REFERRER 11 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_LBL_CB_SEND_DO_NOT_TRACK 12 /* STRING in tree SETTINGS */
+#define SETTINGS_CB_SEND_DO_NOT_TRACK 13 /* BOXCHAR in tree SETTINGS */
#define SETTINGS_BT_CLEAR_HISTORY 15 /* BUTTON in tree SETTINGS */
#define SETTINGS_BT_SEL_LOCALE 17 /* BUTTON in tree SETTINGS */
#define SETTINGS_BT_GUI_LANG 19 /* BUTTON in tree SETTINGS */
+#define SETTINGS_INC_MEM_CACHE 22 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_DEC_MEM_CACHE 23 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_STR_MAX_MEM_CACHE 24 /* STRING in tree SETTINGS */
+#define SETTINGS_DEC_HISTORY_AGE 27 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_EDIT_HISTORY_AGE 28 /* FTEXT in tree SETTINGS */
+#define SETTINGS_INC_HISTORY_AGE 29 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_GROUP_NETWORK 32 /* IBOX in tree SETTINGS */
+#define SETTINGS_CB_USE_PROXY 34 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_LBL_USE_PROXY 35 /* STRING in tree SETTINGS */
+#define SETTINGS_EDIT_PROXY_HOST 36 /* FTEXT in tree SETTINGS */
+#define SETTINGS_EDIT_PROXY_PORT 38 /* FTEXT in tree SETTINGS */
+#define SETTINGS_CB_PROXY_AUTH 39 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_EDIT_PROXY_USERNAME 41 /* FTEXT in tree SETTINGS */
+#define SETTINGS_EDIT_PROXY_PASSWORD 42 /* FTEXT in tree SETTINGS */
+#define SETTINGS_EDIT_MAX_FETCHERS 47 /* FTEXT in tree SETTINGS */
+#define SETTINGS_INC_MAX_FETCHERS 48 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_DEC_MAX_FETCHERS 49 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_DEC_MAX_FETCHERS_PER_HOST 51 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_EDIT_MAX_FETCHERS_PER_HOST 52 /* FTEXT in tree SETTINGS */
+#define SETTINGS_INC_MAX_FETCHERS_PER_HOST 53 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_DEC_CACHED_CONNECTIONS 55 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_EDIT_MAX_CACHED_CONNECTIONS 56 /* FTEXT in tree SETTINGS */
+#define SETTINGS_INC_CACHED_CONNECTIONS 57 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_GROUP_RENDERING 59 /* IBOX in tree SETTINGS */
+/* Make sure that initial value is large enough! */
+#define SETTINGS_BT_SEL_FONT_RENDERER 62 /* BUTTON in tree SETTINGS */
+#define SETTINGS_CB_ANTI_ALIASING 63 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_CB_TRANSPARENCY 65 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_EDIT_DEF_FONT_SIZE 77 /* FTEXT in tree SETTINGS */
+#define SETTINGS_DEC_DEF_FONT_SIZE 78 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_INC_DEF_FONT_SIZE 79 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_EDIT_MIN_FONT_SIZE 81 /* FTEXT in tree SETTINGS */
+#define SETTINGS_DEC_MIN_FONT_SIZE 82 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_INC_MIN_FONT_SIZE 83 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_EDIT_MIN_GIF_DELAY 72 /* FTEXT in tree SETTINGS */
+#define SETTINGS_INC_GIF_DELAY 73 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_DEC_GIF_DELAY 74 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_CB_ENABLE_ANIMATION 67 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_CB_BG_IMAGES 102 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_CB_FG_IMAGES 105 /* BOXCHAR in tree SETTINGS */
+#define SETTINGS_GROUP_RENDERING_00 86 /* IBOX in tree SETTINGS */
+#define SETTINGS_EDIT_DOWNLOAD_PATH 90 /* FTEXT in tree SETTINGS */
+#define SETTINGS_EDIT_HOTLIST_FILE 91 /* FTEXT in tree SETTINGS */
+#define SETTINGS_EDIT_CA_BUNDLE 92 /* FTEXT in tree SETTINGS */
+#define SETTINGS_EDIT_CA_CERTS_PATH 93 /* FTEXT in tree SETTINGS */
+#define SETTINGS_EDIT_EDITOR 94 /* FTEXT in tree SETTINGS */
diff --git a/atari/res/netsurf.rsm b/atari/res/netsurf.rsm
index 6f9ae05b7..b302e7207 100755
--- a/atari/res/netsurf.rsm
+++ b/atari/res/netsurf.rsm
@@ -2,8 +2,8 @@ ResourceMaster v3.65
#C 16@0@0@0@
#N 99@32@AZAaza___ _@AZAaza090___ _@@_@
#FoC-Header@rsm2out@C-Header@rsh@@@[C-Header@0@
-#R 0@0@1@1@1@1@
-#M 20010100@0@7728@625@
+#R 0@0@2@1@2@1@
+#M 20010100@0@7728@628@
#T 0@1@MAINMENU@@62@@
#O 4@32@T_FILE@@
#O 5@32@T_EDIT@@
@@ -120,7 +120,7 @@ ResourceMaster v3.65
#O 9@21@SAVE_AS@@
#O 10@21@VIEW_SOURCE@@
#O 11@21@SAVE_LINK_AS@@
-#T 13@2@CHOICES@@110@@
+#T 13@2@CHOICES@@74@@
#O 1@26@REG_BROWSER@@
#O 2@26@REG_RENDER@@
#O 3@26@REG_STYLE@@
@@ -128,68 +128,46 @@ ResourceMaster v3.65
#O 5@26@REG_PATH@@
#O 6@26@REG_CACHE@@
#O 7@26@TAB_STYLE@@
-#O 10@29@EDIT_DEF_FONT_SIZE@@
-#O 11@27@DEC_DEF_FONT_SIZE@@
-#O 12@27@INC_DEF_FONT_SIZE@@
-#O 16@29@EDIT_MIN_FONT_SIZE@@
-#O 17@27@DEC_MIN_FONT_SIZE@@
-#O 18@27@INC_MIN_FONT_SIZE@@
-#O 22@26@BT_TOOLBAR_ICONSET@@
-#O 24@29@INPUT_TOOLBAR_BGCOLOR@@
-#O 25@26@TAB_RENDER@@
-#O 26@26@BT_SEL_FONT_RENDERER@Make sure that initial value is large enough!@
-#O 28@26@CB_TRANSPARENCY@@
-#O 30@26@CB_ENABLE_ANIMATION@@
-#O 33@29@EDIT_MIN_GIF_DELAY@@
-#O 34@27@DEC_GIF_DELAY@@
-#O 35@27@INC_GIF_DELAY@@
-#O 37@26@CB_INCREMENTAL_REFLOW@@
-#O 39@29@EDIT_MIN_REFLOW_PERIOD@@
-#O 40@27@DEC_INCREMENTAL_REFLOW@@
-#O 41@27@INC_INCREMENTAL_REFLOW@@
-#O 43@26@CB_ANTI_ALIASING@@
-#O 44@26@TAB_PATH@@
-#O 49@29@EDIT_CA_CERTS_PATH@@
-#O 50@29@EDIT_DOWNLOAD_PATH@@
-#O 51@29@EDIT_HOTLIST_FILE@@
-#O 52@29@EDIT_CA_BUNDLE@@
-#O 53@29@EDIT_EDITOR@@
-#O 55@26@TAB_CACHE@@
-#O 59@27@INC_MEM_CACHE@@
-#O 60@27@DEC_MEM_CACHE@@
-#O 61@28@STR_MAX_MEM_CACHE@@
-#O 62@26@TAB_BROWSER@@
-#O 64@26@CB_HIDE_ADVERTISEMENT@@
-#O 65@26@CB_DISABLE_POPUP_WINDOWS@@
-#O 66@26@CB_SEND_DO_NOT_TRACK@@
-#O 68@26@BT_SEL_LOCALE@@
-#O 71@26@BT_GUI_LANG@@
-#O 74@29@EDIT_HISTORY_AGE@@
-#O 75@27@DEC_HISTORY_AGE@@
-#O 76@27@INC_HISTORY_AGE@@
-#O 80@26@CB_SEND_HTTP_REFERRER@@
-#O 81@29@EDIT_HOMEPAGE@@
-#O 82@26@BT_CLEAR_HISTORY@@
-#O 83@26@TAB_NETWORK@@
-#O 85@26@CB_USE_PROXY@@
-#O 86@29@EDIT_PROXY_HOST@@
-#O 87@26@CB_PROXY_AUTH@@
-#O 88@29@EDIT_PROXY_USERNAME@@
-#O 89@29@EDIT_PROXY_PASSWORD@@
-#O 91@29@EDIT_PROXY_PORT@@
-#O 96@27@INC_MAX_FETCHERS_PER_HOST@@
-#O 97@27@INC_CACHED_CONNECTIONS@@
-#O 98@27@DEC_MAX_FETCHERS_PER_HOST@@
-#O 99@27@DEC_CACHED_CONNECTIONS@@
-#O 100@29@EDIT_MAX_FETCHERS_PER_HOST@@
-#O 101@29@EDIT_MAX_CACHED_CONNECTIONS@@
-#O 103@29@EDIT_MAX_FETCHERS@@
-#O 104@27@DEC_MAX_FETCHERS@@
-#O 105@27@INC_MAX_FETCHERS@@
-#O 106@26@CB_FG_IMAGES@@
-#O 107@26@CB_BG_IMAGES@@
-#O 108@26@ABORT@@
-#O 109@26@OK@@
+#O 11@26@BT_TOOLBAR_ICONSET@@
+#O 13@29@INPUT_TOOLBAR_BGCOLOR@@
+#O 14@26@TAB_RENDER@@
+#O 15@26@CB_TRANSPARENCY@@
+#O 17@26@CB_ENABLE_ANIMATION@@
+#O 18@26@CB_INCREMENTAL_REFLOW@@
+#O 20@29@EDIT_MIN_REFLOW_PERIOD@@
+#O 21@27@DEC_INCREMENTAL_REFLOW@@
+#O 22@27@INC_INCREMENTAL_REFLOW@@
+#O 24@26@TAB_PATH@@
+#O 25@26@TAB_CACHE@@
+#O 29@27@INC_MEM_CACHE@@
+#O 30@27@DEC_MEM_CACHE@@
+#O 31@28@STR_MAX_MEM_CACHE@@
+#O 32@26@TAB_BROWSER@@
+#O 34@26@CB_HIDE_ADVERTISEMENT@@
+#O 35@26@CB_DISABLE_POPUP_WINDOWS@@
+#O 36@26@CB_SEND_DO_NOT_TRACK@@
+#O 38@26@BT_SEL_LOCALE@@
+#O 41@26@BT_GUI_LANG@@
+#O 44@29@EDIT_HISTORY_AGE@@
+#O 45@27@DEC_HISTORY_AGE@@
+#O 46@27@INC_HISTORY_AGE@@
+#O 50@26@CB_SEND_HTTP_REFERRER@@
+#O 51@29@EDIT_HOMEPAGE@@
+#O 52@26@BT_CLEAR_HISTORY@@
+#O 53@26@TAB_NETWORK@@
+#O 55@26@CB_USE_PROXY@@
+#O 56@29@EDIT_PROXY_HOST@@
+#O 57@26@CB_PROXY_AUTH@@
+#O 58@29@EDIT_PROXY_USERNAME@@
+#O 59@29@EDIT_PROXY_PASSWORD@@
+#O 61@29@EDIT_PROXY_PORT@@
+#O 66@29@EDIT_MAX_FETCHERS@@
+#O 67@27@INC_MAX_FETCHERS@@
+#O 68@27@DEC_MAX_FETCHERS@@
+#O 69@26@CB_FG_IMAGES@@
+#O 70@26@CB_BG_IMAGES@@
+#O 72@26@ABORT@@
+#O 73@26@OK@@
#T 14@2@VSCROLLER@@8@@
#O 1@20@AREA@@
#O 2@26@SLIDER_AREA@@
@@ -198,20 +176,65 @@ ResourceMaster v3.65
#O 5@33@BT_DOWN_PIC@@
#O 6@25@BT_UP@@
#O 4@33@BT_UP_PIC@@
-#T 15@2@SETTINGS@@21@@
-#O 2@29@EDIT_HOMEPAGE_00@@
-#O 3@28@LBL_CB_HIDE_ADVERTISEMENT@@
-#O 4@28@LBL_CB_DISABLE_POPUP_WINDOWS@@
-#O 5@27@CB_HIDE_ADVERTISEMENT@@
-#O 6@27@CB_DISABLE_POPUP_WINDOWS@@
-#O 7@28@LBL_CB_SEND_HTTP_REFERRER@@
-#O 8@27@CB_SEND_HTTP_REFERRER@@
-#O 9@28@LBL_CB_SEND_DO_NOT_TRACK@@
-#O 10@27@CB_SEND_DO_NOT_TRACK@@
-#O 12@27@DEC_HISTORY_AGE@@
-#O 13@29@EDIT_HISTORY_AGE@@
-#O 14@27@INC_HISTORY_AGE@@
+#T 15@2@SETTINGS@@107@@
+#O 1@26@SAVE@@
+#O 2@26@ABORT@@
+#O 3@25@GROUP_BROWSER@@
+#O 5@29@EDIT_HOMEPAGE@@
+#O 6@28@LBL_CB_HIDE_ADVERTISEMENT@@
+#O 7@28@LBL_CB_DISABLE_POPUP_WINDOWS@@
+#O 8@27@CB_HIDE_ADVERTISEMENT@@
+#O 9@27@CB_DISABLE_POPUP_WINDOWS@@
+#O 10@28@LBL_CB_SEND_HTTP_REFERRER@@
+#O 11@27@CB_SEND_HTTP_REFERRER@@
+#O 12@28@LBL_CB_SEND_DO_NOT_TRACK@@
+#O 13@27@CB_SEND_DO_NOT_TRACK@@
#O 15@26@BT_CLEAR_HISTORY@@
#O 17@26@BT_SEL_LOCALE@@
#O 19@26@BT_GUI_LANG@@
-#c 28255@
+#O 22@27@INC_MEM_CACHE@@
+#O 23@27@DEC_MEM_CACHE@@
+#O 24@28@STR_MAX_MEM_CACHE@@
+#O 27@27@DEC_HISTORY_AGE@@
+#O 28@29@EDIT_HISTORY_AGE@@
+#O 29@27@INC_HISTORY_AGE@@
+#O 32@25@GROUP_NETWORK@@
+#O 34@27@CB_USE_PROXY@@
+#O 35@28@LBL_USE_PROXY@@
+#O 36@29@EDIT_PROXY_HOST@@
+#O 38@29@EDIT_PROXY_PORT@@
+#O 39@27@CB_PROXY_AUTH@@
+#O 41@29@EDIT_PROXY_USERNAME@@
+#O 42@29@EDIT_PROXY_PASSWORD@@
+#O 47@29@EDIT_MAX_FETCHERS@@
+#O 48@27@INC_MAX_FETCHERS@@
+#O 49@27@DEC_MAX_FETCHERS@@
+#O 51@27@DEC_MAX_FETCHERS_PER_HOST@@
+#O 52@29@EDIT_MAX_FETCHERS_PER_HOST@@
+#O 53@27@INC_MAX_FETCHERS_PER_HOST@@
+#O 55@27@DEC_CACHED_CONNECTIONS@@
+#O 56@29@EDIT_MAX_CACHED_CONNECTIONS@@
+#O 57@27@INC_CACHED_CONNECTIONS@@
+#O 59@25@GROUP_RENDERING@@
+#O 62@26@BT_SEL_FONT_RENDERER@Make sure that initial value is large enough!@
+#O 63@27@CB_ANTI_ALIASING@@
+#O 65@27@CB_TRANSPARENCY@@
+#O 77@29@EDIT_DEF_FONT_SIZE@@
+#O 78@27@DEC_DEF_FONT_SIZE@@
+#O 79@27@INC_DEF_FONT_SIZE@@
+#O 81@29@EDIT_MIN_FONT_SIZE@@
+#O 82@27@DEC_MIN_FONT_SIZE@@
+#O 83@27@INC_MIN_FONT_SIZE@@
+#O 72@29@EDIT_MIN_GIF_DELAY@@
+#O 73@27@INC_GIF_DELAY@@
+#O 74@27@DEC_GIF_DELAY@@
+#O 67@27@CB_ENABLE_ANIMATION@@
+#O 102@27@CB_BG_IMAGES@@
+#O 105@27@CB_FG_IMAGES@@
+#O 86@25@GROUP_RENDERING_00@@
+#O 90@29@EDIT_DOWNLOAD_PATH@@
+#O 91@29@EDIT_HOTLIST_FILE@@
+#O 92@29@EDIT_CA_BUNDLE@@
+#O 93@29@EDIT_CA_CERTS_PATH@@
+#O 94@29@EDIT_EDITOR@@
+#c 20992@
diff --git a/atari/settings.c b/atari/settings.c
index 785d6f3f7..afbf8bd48 100644
--- a/atari/settings.c
+++ b/atari/settings.c
@@ -8,7 +8,7 @@
#include <unistd.h>
#include <string.h>
#include <stdbool.h>
-#include <windom.h>
+#include <cflib.h>
#include "desktop/options.h"
#include "desktop/plot_style.h"
@@ -20,12 +20,10 @@
#include "atari/bitmap.h"
#include "atari/findfile.h"
#include "atari/gemtk/gemtk.h"
-
+
extern char options[PATH_MAX];
extern GRECT desk_area;
-
-
static float tmp_option_memory_cache_size;
static float tmp_option_minimum_gif_delay;
static unsigned int tmp_option_expire_url;
@@ -38,25 +36,305 @@ static unsigned int tmp_option_max_cached_fetch_handles;
static colour tmp_option_atari_toolbar_bg;
static short h_aes_win = 0;
+static short edit_obj = -1;
+static short any_obj = -1;
static GUIWIN * settings_guiwin = NULL;
static OBJECT * dlgtree;
+#define OBJ_SELECTED(idx) ((bool)((dlgtree[idx].ob_state & OS_SELECTED)!=0))
+
+#define OBJ_CHECK(idx) (dlgtree[idx].ob_state |= (OS_SELECTED | OS_CROSSED));
+
+#define OBJ_UNCHECK(idx) (dlgtree[idx].ob_state &= ~(OS_SELECTED)); \
+ (dlgtree[idx].ob_state &= ~(OS_CROSSED));
+
+#define OBJ_REDRAW(idx) guiwin_send_redraw(settings_guiwin, \
+ obj_screen_rect(dlgtree, idx));
+
+#define DISABLE_OBJ(idx) (dlgtree[idx].ob_state |= OS_DISABLED); \
+ guiwin_send_redraw(settings_guiwin, \
+ obj_screen_rect(dlgtree, idx));
+
+#define ENABLE_OBJ(idx) (dlgtree[idx].ob_state &= ~(OS_DISABLED)) \
+ guiwin_send_redraw(settings_guiwin, \
+ obj_screen_rect(dlgtree, idx));
+
+#define FORMEVENT(idx) form_event(idx, 0, NULL);
+
+#define INPUT_HOMEPAGE_URL_MAX_LEN 44
+#define INPUT_LOCALE_MAX_LEN 6
+#define INPUT_PROXY_HOST_MAX_LEN 31
+#define INPUT_PROXY_USERNAME_MAX_LEN 36
+#define INPUT_PROXY_PASSWORD_MAX_LEN 36
+#define INPUT_PROXY_PORT_MAX_LEN 5
+#define INPUT_MIN_REFLOW_PERIOD_MAX_LEN 4
+#define LABEL_FONT_RENDERER_MAX_LEN 8
+#define LABEL_PATH_MAX_LEN 43
+#define LABEL_ICONSET_MAX_LEN 8
+#define INPUT_TOOLBAR_COLOR_MAX_LEN 6
+
+#define CB_SELECTED (OS_SELECTED | OS_CROSSED)
+
static void on_close(void);
static void on_redraw(GRECT *clip);
+static void form_event(int index, int external, void *unused2);
+
+static bool obj_is_inside(OBJECT * tree, short obj, GRECT *area)
+{
+ GRECT obj_screen;
+ bool ret = false;
+
+ objc_offset(tree, obj, &obj_screen.g_x, &obj_screen.g_y);
+ obj_screen.g_w = dlgtree[obj].ob_width;
+ obj_screen.g_h = dlgtree[obj].ob_height;
+ ret = rc_intersect(area, &obj_screen);
+
+ return(ret);
+}
+
+static GRECT * obj_screen_rect(OBJECT * tree, short obj)
+{
+ static GRECT obj_screen;
+
+ get_objframe(tree, obj, &obj_screen);
+
+ return(&obj_screen);
+}
+
+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);
+}
+
+/**
+ * Toogle all objects which are directly influenced by other GUI elements
+ * ( like checkbox )
+ */
+static void toggle_objects( void )
+{
+ /* enable / disable (refresh) objects depending on radio button values: */
+ FORMEVENT(SETTINGS_CB_USE_PROXY);
+ FORMEVENT(SETTINGS_CB_PROXY_AUTH);
+ FORMEVENT(SETTINGS_BT_SEL_FONT_RENDERER);
+}
+
+
+/* this gets called each time the settings dialog is opened: */
+static void display_settings(void)
+{
+ char spare[255];
+ // read current settings and display them
+
+ /* "Browser" tab: */
+ set_text( SETTINGS_EDIT_HOMEPAGE, nsoption_charp(homepage_url),
+ INPUT_HOMEPAGE_URL_MAX_LEN );
+
+ if( nsoption_bool(block_ads) ){
+ OBJ_CHECK( SETTINGS_CB_HIDE_ADVERTISEMENT );
+ } else {
+ OBJ_UNCHECK( SETTINGS_CB_HIDE_ADVERTISEMENT );
+ }
+ if( nsoption_bool(target_blank) ){
+ OBJ_UNCHECK( SETTINGS_CB_DISABLE_POPUP_WINDOWS );
+ } else {
+ OBJ_CHECK( SETTINGS_CB_DISABLE_POPUP_WINDOWS );
+ }
+ if( nsoption_bool(send_referer) ){
+ OBJ_CHECK( SETTINGS_CB_SEND_HTTP_REFERRER );
+ } else {
+ OBJ_UNCHECK( SETTINGS_CB_SEND_HTTP_REFERRER );
+ }
+ if( nsoption_bool(do_not_track) ){
+ OBJ_CHECK( SETTINGS_CB_SEND_DO_NOT_TRACK );
+ } else {
+ OBJ_UNCHECK( SETTINGS_CB_SEND_DO_NOT_TRACK );
+ }
+
+ set_text( SETTINGS_BT_SEL_LOCALE,
+ nsoption_charp(accept_language) ? nsoption_charp(accept_language) : (char*)"en",
+ INPUT_LOCALE_MAX_LEN );
+
+ tmp_option_expire_url = nsoption_int(expire_url);
+ snprintf( spare, 255, "%02d", nsoption_int(expire_url) );
+ set_text( SETTINGS_EDIT_HISTORY_AGE, spare, 2 );
+
+ /* "Cache" tab: */
+ tmp_option_memory_cache_size = nsoption_int(memory_cache_size) / 100000;
+ snprintf( spare, 255, "%03.1f", tmp_option_memory_cache_size );
+ set_text( SETTINGS_STR_MAX_MEM_CACHE, spare, 5 );
+
+ /* "Paths" tab: */
+ set_text( SETTINGS_EDIT_DOWNLOAD_PATH, nsoption_charp(downloads_path),
+ LABEL_PATH_MAX_LEN );
+ set_text( SETTINGS_EDIT_HOTLIST_FILE, nsoption_charp(hotlist_file),
+ LABEL_PATH_MAX_LEN );
+ set_text( SETTINGS_EDIT_CA_BUNDLE, nsoption_charp(ca_bundle),
+ LABEL_PATH_MAX_LEN );
+ set_text( SETTINGS_EDIT_CA_CERTS_PATH, nsoption_charp(ca_path),
+ LABEL_PATH_MAX_LEN );
+ set_text( SETTINGS_EDIT_EDITOR, nsoption_charp(atari_editor),
+ LABEL_PATH_MAX_LEN );
+
+ /* "Rendering" tab: */
+ set_text( SETTINGS_BT_SEL_FONT_RENDERER, nsoption_charp(atari_font_driver),
+ LABEL_FONT_RENDERER_MAX_LEN );
+ SET_BIT(dlgtree[SETTINGS_CB_TRANSPARENCY].ob_state,
+ CB_SELECTED, nsoption_int(atari_transparency) ? 1 : 0 );
+ SET_BIT(dlgtree[SETTINGS_CB_ENABLE_ANIMATION].ob_state,
+ CB_SELECTED, nsoption_bool(animate_images) ? 1 : 0 );
+ SET_BIT(dlgtree[SETTINGS_CB_FG_IMAGES].ob_state,
+ CB_SELECTED, nsoption_bool(foreground_images) ? 1 : 0 );
+ SET_BIT(dlgtree[SETTINGS_CB_BG_IMAGES].ob_state,
+ CB_SELECTED, nsoption_bool(background_images) ? 1 : 0 );
+
+/*
+ TODO: enable this option?
+ SET_BIT(dlgtree[SETTINGS_CB_INCREMENTAL_REFLOW].ob_state,
+ CB_SELECTED, nsoption_bool(incremental_reflow) ? 1 : 0 );
+*/
+ SET_BIT(dlgtree[SETTINGS_CB_ANTI_ALIASING].ob_state,
+ CB_SELECTED, nsoption_int(atari_font_monochrom) ? 0 : 1 );
+
+/*
+ TODO: activate this option?
+ tmp_option_min_reflow_period = nsoption_int(min_reflow_period);
+ snprintf( spare, 255, "%04d", tmp_option_min_reflow_period );
+ set_text( SETTINGS_EDIT_MIN_REFLOW_PERIOD, spare,
+ INPUT_MIN_REFLOW_PERIOD_MAX_LEN );
+*/
+
+ tmp_option_minimum_gif_delay = (float)nsoption_int(minimum_gif_delay) / (float)100;
+ snprintf( spare, 255, "%01.1f", tmp_option_minimum_gif_delay );
+ set_text( SETTINGS_EDIT_MIN_GIF_DELAY, spare, 3 );
+
+ /* "Network" tab: */
+ set_text( SETTINGS_EDIT_PROXY_HOST, nsoption_charp(http_proxy_host),
+ INPUT_PROXY_HOST_MAX_LEN );
+ snprintf( spare, 255, "%5d", nsoption_int(http_proxy_port) );
+ set_text( SETTINGS_EDIT_PROXY_PORT, spare,
+ INPUT_PROXY_PORT_MAX_LEN );
+
+ set_text( SETTINGS_EDIT_PROXY_USERNAME, nsoption_charp(http_proxy_auth_user),
+ INPUT_PROXY_USERNAME_MAX_LEN );
+ set_text( SETTINGS_EDIT_PROXY_PASSWORD, nsoption_charp(http_proxy_auth_pass),
+ INPUT_PROXY_PASSWORD_MAX_LEN );
+ SET_BIT(dlgtree[SETTINGS_CB_USE_PROXY].ob_state,
+ CB_SELECTED, nsoption_bool(http_proxy) ? 1 : 0 );
+ SET_BIT(dlgtree[SETTINGS_CB_PROXY_AUTH].ob_state,
+ CB_SELECTED, nsoption_int(http_proxy_auth) ? 1 : 0 );
+
+ tmp_option_max_cached_fetch_handles = nsoption_int(max_cached_fetch_handles);
+ snprintf( spare, 255, "%2d", nsoption_int(max_cached_fetch_handles) );
+ set_text( SETTINGS_EDIT_MAX_CACHED_CONNECTIONS, spare , 2 );
+
+ tmp_option_max_fetchers = nsoption_int(max_fetchers);
+ snprintf( spare, 255, "%2d", nsoption_int(max_fetchers) );
+ set_text( SETTINGS_EDIT_MAX_FETCHERS, spare , 2 );
+
+ tmp_option_max_fetchers_per_host = nsoption_int(max_fetchers_per_host);
+ snprintf( spare, 255, "%2d", nsoption_int(max_fetchers_per_host) );
+ set_text( SETTINGS_EDIT_MAX_FETCHERS_PER_HOST, spare , 2 );
+
+
+ /* "Style" tab: */
+ tmp_option_font_min_size = nsoption_int(font_min_size);
+ snprintf( spare, 255, "%3d", nsoption_int(font_min_size) );
+ set_text( SETTINGS_EDIT_MIN_FONT_SIZE, spare , 3 );
+
+ tmp_option_font_size = nsoption_int(font_size);
+ snprintf( spare, 255, "%3d", nsoption_int(font_size) );
+ set_text( SETTINGS_EDIT_DEF_FONT_SIZE, spare , 3 );
+}
+
+static void
+form_event(int index, int external, void *unused2)
+{
+ char spare[255];
+ bool is_button = false;
+ bool checked = OBJ_SELECTED( index );
+ char * tmp;
+
+ /* For font driver popup: */
+ const char *font_driver_items[] = {"freetype", "internal" };
+ int num_font_drivers = (sizeof(font_driver_items)/sizeof(char*));
+
+ /*
+ Just a small collection of locales, each country has at least one
+ ATARI-clone user! :)
+ */
+ const char *locales[] = {
+ "cs", "de", "de-de" , "en", "en-gb", "en-us", "es",
+ "fr", "it", "nl", "no", "pl", "ru", "sk", "sv"
+ };
+ int num_locales = (sizeof(locales)/sizeof(char*));
+ short x, y;
+ int choice;
+
+ switch( index ){
+
+
+ case SETTINGS_INC_HISTORY_AGE:
+ case SETTINGS_DEC_HISTORY_AGE:
+ if( index == SETTINGS_INC_HISTORY_AGE )
+ tmp_option_expire_url += 1;
+ else
+ tmp_option_expire_url -= 1;
+
+ if( tmp_option_expire_url > 99 )
+ tmp_option_expire_url = 0;
+
+ snprintf( spare, 255, "%02d", tmp_option_expire_url );
+ set_text( SETTINGS_EDIT_HISTORY_AGE, spare, 2 );
+ OBJ_REDRAW(SETTINGS_EDIT_HISTORY_AGE);
+ is_button = true;
+
+ default: break;
+ }
+ if( is_button ){
+ // remove selection indicator from button element:
+ OBJ_UNCHECK(index);
+ OBJ_REDRAW(index);
+ }
+}
static void on_redraw(GRECT *clip)
{
GRECT visible, work, clip_ro;
int scroll_px_x, scroll_px_y;
struct guiwin_scroll_info_s *slid;
+ int new_x, new_y, old_x, old_y;
+ short edit_idx;
- /*Walk the AES rectangle list and redraw the visible areas of the window: */
+ /* Walk the AES rectangle list and redraw the visible areas of the window: */
guiwin_get_grect(settings_guiwin, GUIWIN_AREA_CONTENT, &work);
slid = guiwin_get_scroll_info(settings_guiwin);
- dlgtree->ob_x = work.g_x - (slid->x_pos * slid->x_unit_px);
- dlgtree->ob_y = work.g_y - (slid->y_pos * slid->y_unit_px);
+ old_x = dlgtree->ob_x;
+ old_y = dlgtree->ob_y;
+ dlgtree->ob_x = new_x = work.g_x - (slid->x_pos * slid->x_unit_px);
+ dlgtree->ob_y = new_y = work.g_y - (slid->y_pos * slid->y_unit_px);
+
+ if ((edit_obj > -1) && (obj_is_inside(dlgtree, edit_obj, &work) == true)) {
+ dlgtree->ob_x = old_x;
+ dlgtree->ob_y = old_y;
+ objc_edit(dlgtree, edit_obj, 0, &edit_idx,
+ EDEND);
+ edit_obj = -1;
+
+ dlgtree->ob_x = new_x;
+ dlgtree->ob_y = new_y;
+ }
wind_get_grect(h_aes_win, WF_FIRSTXYWH, &visible);
while (visible.g_x && visible.g_y) {
@@ -71,6 +349,7 @@ static short on_aes_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8])
{
short retval = 0;
GRECT clip, work;
+ static short edit_idx = 0;
if ((ev_out->emo_events & MU_MESAG) != 0) {
// handle message
@@ -107,21 +386,78 @@ static short on_aes_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8])
}
if ((ev_out->emo_events & MU_KEYBD) != 0) {
+ if((edit_obj > -1) && obj_is_inside(dlgtree, edit_obj, &work)){
+
+ short next_edit_obj = edit_obj;
+ short next_char = -1;
+ short r;
+
+ guiwin_get_grect(settings_guiwin, GUIWIN_AREA_CONTENT, &work);
+
+ r = form_keybd(dlgtree, edit_obj, next_edit_obj, ev_out->emo_kreturn,
+ &next_edit_obj, &next_char);
+ if (next_edit_obj != edit_obj) {
+ objc_edit(dlgtree, edit_obj, ev_out->emo_kreturn, &edit_idx,
+ EDEND);
+ edit_obj = next_edit_obj;
+ objc_edit(dlgtree, edit_obj, ev_out->emo_kreturn, &edit_idx,
+ EDINIT);
+ } else {
+ if(next_char > 13)
+ r = objc_edit(dlgtree, edit_obj, ev_out->emo_kreturn, &edit_idx,
+ EDCHAR);
+ }
+
+ }
}
if ((ev_out->emo_events & MU_BUTTON) != 0) {
struct guiwin_scroll_info_s *slid;
+ short nextobj, ret=-1;
guiwin_get_grect(settings_guiwin, GUIWIN_AREA_CONTENT, &work);
+
slid = guiwin_get_scroll_info(settings_guiwin);
dlgtree->ob_x = work.g_x - (slid->x_pos * slid->x_unit_px);
dlgtree->ob_y = work.g_y - (slid->y_pos * slid->y_unit_px);
- short obj = objc_find(dlgtree, 0, 8, ev_out->emo_mouse.p_x,
+ any_obj = objc_find(dlgtree, 0, 8, ev_out->emo_mouse.p_x,
ev_out->emo_mouse.p_y);
- printf("clicked: %d\n", obj);
+
+
+ uint16_t type = (dlgtree[any_obj].ob_type & 0xFF);
+ if (type == G_FTEXT || type == G_FBOXTEXT) {
+ printf("text??\n");
+ ret = form_button(dlgtree, any_obj, ev_out->emo_mclicks, &nextobj);
+ if(edit_obj != -1){
+ if (obj_is_inside(dlgtree, edit_obj, &work)) {
+ objc_edit(dlgtree, edit_obj, ev_out->emo_kreturn, &edit_idx, EDEND);
+ }
+ }
+ if (obj_is_inside(dlgtree, any_obj, &work)) {
+ edit_obj = any_obj;
+ objc_edit(dlgtree, edit_obj, ev_out->emo_kreturn, &edit_idx, EDINIT);
+ }
+ } else {
+ if ((edit_obj != -1) && obj_is_inside(dlgtree, edit_obj, &work)){
+ objc_edit(dlgtree, edit_obj, ev_out->emo_kreturn, &edit_idx, EDEND);
+ }
+ edit_obj = -1;
+ printf("xtype: %d\n", dlgtree[any_obj].ob_type & 0xff00 );
+ if (((dlgtree[any_obj].ob_type & 0xff00) & GW_XTYPE_CHECKBOX) != 0) {
+ if (OBJ_SELECTED(any_obj)) {
+ dlgtree[any_obj].ob_state &= ~(OS_SELECTED|OS_CROSSED);
+ } else {
+ dlgtree[any_obj].ob_state |= (OS_SELECTED|OS_CROSSED);
+ }
+ guiwin_send_redraw(win, obj_screen_rect(dlgtree, any_obj));
+ }
+ form_event(any_obj, 1, NULL);
+ }
+ printf("clicked: %d / %d\n", any_obj, ret);
evnt_timer(150);
+
}
return(retval);
@@ -150,6 +486,10 @@ void open_settings(void)
curr.g_x = (desk_area.g_w / 2) - (curr.g_w / 2);
curr.g_y = (desk_area.g_h / 2) - (curr.g_h / 2);
wind_calc_grect(WC_BORDER, kind, &curr, &curr);
+
+ /* set current config values: */
+ display_settings();
+
wind_open_grect(h_aes_win, &curr);
slid = guiwin_get_scroll_info(settings_guiwin);
@@ -159,11 +499,14 @@ void open_settings(void)
slid->x_units = (dlgtree->ob_width/slid->x_unit_px);
slid->y_units = (dlgtree->ob_height/slid->y_unit_px);
guiwin_update_slider(settings_guiwin, GUIWIN_VH_SLIDER);
+
}
}
void close_settings(void)
{
+
+
printf("settings close\n");
guiwin_remove(settings_guiwin);
settings_guiwin = NULL;
@@ -171,3 +514,4 @@ void close_settings(void)
wind_delete(h_aes_win);
h_aes_win = 0;
}
+