diff options
author | Ole Loots <ole@monochrom.net> | 2012-12-22 15:43:51 +0100 |
---|---|---|
committer | Ole Loots <ole@monochrom.net> | 2012-12-22 15:43:51 +0100 |
commit | a2cbfced0ff3e8b2c7f6fe0ec89c5095e45d4cf4 (patch) | |
tree | 809f845ecff68c32358870afb345f0f455f105ab /atari | |
parent | f7ee2a03876bf4a5cf66b3a433955e4e55d91362 (diff) | |
download | netsurf-a2cbfced0ff3e8b2c7f6fe0ec89c5095e45d4cf4.tar.gz netsurf-a2cbfced0ff3e8b2c7f6fe0ec89c5095e45d4cf4.tar.bz2 |
Display current setting values.
Diffstat (limited to 'atari')
-rw-r--r-- | atari/gemtk/gemtk.h | 5 | ||||
-rwxr-xr-x | atari/res/netsurf.rsc | bin | 36642 -> 38600 bytes | |||
-rwxr-xr-x | atari/res/netsurf.rsh | 173 | ||||
-rwxr-xr-x | atari/res/netsurf.rsm | 181 | ||||
-rw-r--r-- | atari/settings.c | 362 |
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 Binary files differindex da3d2510c..3844f5a6d 100755 --- a/atari/res/netsurf.rsc +++ b/atari/res/netsurf.rsc 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; } + |