From a2cbfced0ff3e8b2c7f6fe0ec89c5095e45d4cf4 Mon Sep 17 00:00:00 2001 From: Ole Loots Date: Sat, 22 Dec 2012 15:43:51 +0100 Subject: Display current setting values. --- atari/gemtk/gemtk.h | 5 + atari/res/netsurf.rsc | Bin 36642 -> 38600 bytes atari/res/netsurf.rsh | 173 +++++++++++++----------- atari/res/netsurf.rsm | 181 ++++++++++++++----------- 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 index da3d2510c..3844f5a6d 100755 Binary files a/atari/res/netsurf.rsc and b/atari/res/netsurf.rsc 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 #include #include -#include +#include #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; } + -- cgit v1.2.3