Added "select file/path" buttons to path configuration groupbox.

This commit is contained in:
Ole Loots 2013-12-21 02:43:38 +01:00
parent b4cef781ef
commit 9118f3c8cc
4 changed files with 92 additions and 26 deletions

Binary file not shown.

View File

@ -134,6 +134,11 @@
#define SETTINGS_EDIT_CA_BUNDLE 7 /* FTEXT in tree SETTINGS */
#define SETTINGS_EDIT_CA_CERTS_PATH 8 /* FTEXT in tree SETTINGS */
#define SETTINGS_EDIT_EDITOR 9 /* FTEXT in tree SETTINGS */
#define SETTINGS_BT_SEL_DOWNLOAD_DIR 96 /* BUTTON in tree SETTINGS */
#define SETTINGS_BT_SEL_HOTLIST 97 /* BUTTON in tree SETTINGS */
#define SETTINGS_BT_SEL_CA_BUNDLE 98 /* BUTTON in tree SETTINGS */
#define SETTINGS_BT_SEL_CA_CERTS 99 /* BUTTON in tree SETTINGS */
#define SETTINGS_BT_SEL_EDITOR 100 /* BUTTON in tree SETTINGS */
/* Make sure that initial value is large enough! */
#define SETTINGS_BT_SEL_FONT_RENDERER 16 /* BUTTON in tree SETTINGS */
#define SETTINGS_CB_ANTI_ALIASING 17 /* BUTTON in tree SETTINGS */

View File

@ -3,7 +3,7 @@ ResourceMaster v3.651
#N 99@32@AZAaza___ _@AZAaza090___ _@@_@
#FoC-Header@rsm2out@C-Header@rsh@@@[C-Header@0@
#R 0@0@1@1@2@1@
#M 11110100@0@7728@660@
#M 11110100@0@7728@662@
#T 0@2@TOOLBAR@@20@@
#O 1@20@AREA_SEARCH@@
#O 2@26@BT_SEARCH_FWD@@
@ -112,7 +112,7 @@ ResourceMaster v3.651
#T 15@2@TOOLBAR_HISTORY@@1@@
#T 16@2@TOOLBAR_SSL_CERT@@2@@
#O 1@26@TRUSTED@@
#T 17@2@SETTINGS@@96@@
#T 17@2@SETTINGS@@101@@
#O 1@26@SAVE@@
#O 2@26@ABORT@@
#O 5@29@EDIT_DOWNLOAD_PATH@@
@ -120,6 +120,11 @@ ResourceMaster v3.651
#O 7@29@EDIT_CA_BUNDLE@@
#O 8@29@EDIT_CA_CERTS_PATH@@
#O 9@29@EDIT_EDITOR@@
#O 96@26@BT_SEL_DOWNLOAD_DIR@@
#O 97@26@BT_SEL_HOTLIST@@
#O 98@26@BT_SEL_CA_BUNDLE@@
#O 99@26@BT_SEL_CA_CERTS@@
#O 100@26@BT_SEL_EDITOR@@
#O 16@26@BT_SEL_FONT_RENDERER@Make sure that initial value is large enough!@
#O 17@26@CB_ANTI_ALIASING@@
#O 18@26@CB_TRANSPARENCY@@
@ -209,4 +214,4 @@ ResourceMaster v3.651
#O 61@28@M_CHOICES@@
#O 62@28@M_VLOG@@
#O 64@28@M_HELP_CONTENT@@
#c 4908@
#c 3798@

View File

@ -91,7 +91,7 @@ static const char *gui_timeouts[] = {
#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_PATH_MAX_LEN 40
#define LABEL_ICONSET_MAX_LEN 8
#define INPUT_TOOLBAR_COLOR_MAX_LEN 6
@ -322,6 +322,76 @@ static void display_settings(void)
toggle_objects();
}
static bool handle_filesystem_select_button(short rsc_bt)
{
bool require_path = false;
bool is_folder = false;
short rsc_te = 0; // The textarea that is bound to the button
const char * title = "";
const char * path = NULL;
// TODO: localize String:
switch (rsc_bt) {
case SETTINGS_BT_SEL_DOWNLOAD_DIR:
title = "Select Download Directory:";
rsc_te = SETTINGS_EDIT_DOWNLOAD_PATH;
require_path = true;
break;
case SETTINGS_BT_SEL_HOTLIST:
title = "Select Hotlist File:";
rsc_te = SETTINGS_EDIT_HOTLIST_FILE;
break;
case SETTINGS_BT_SEL_CA_BUNDLE:
title = "Select CA Bundle File:";
rsc_te = SETTINGS_EDIT_CA_BUNDLE;
break;
case SETTINGS_BT_SEL_CA_CERTS:
title = "Select Certs Directory:";
rsc_te = SETTINGS_EDIT_CA_CERTS_PATH;
require_path = true;
break;
case SETTINGS_BT_SEL_EDITOR:
title = "Select Editor Application:";
rsc_te = SETTINGS_EDIT_EDITOR;
break;
default:
break;
};
assert(rsc_te != 0);
if (require_path == false) {
path = file_select(title, "");
gemtk_obj_set_str_safe(dlgtree, rsc_te, path);
}
else {
do {
/* display file selector: */
path = file_select(title, "");
if (path) {
is_folder = is_dir(path);
}
if ((is_folder == false) && (path != NULL)) {
gemtk_msg_box_show(GEMTK_MSG_BOX_ALERT, "Folder Required!");
}
} while ((is_folder == false) && (path != NULL));
if ((is_folder == true) && (path != NULL)) {
gemtk_obj_set_str_safe(dlgtree, rsc_te, path);
}
}
OBJ_REDRAW(rsc_bt);
OBJ_REDRAW(rsc_te);
}
static void form_event(int index, int external)
{
char spare[255];
@ -486,28 +556,14 @@ static void form_event(int index, int external)
OBJ_REDRAW(SETTINGS_BT_GUI_TOUT);
break;
/*
case SETTINGS_INPUT_TOOLBAR_BGCOLOR:
objc_offset( FORM(win), SETTINGS_INPUT_TOOLBAR_BGCOLOR, &x, &y );
choice = color_popup(x, y, tmp_option_atari_toolbar_bg);
snprintf( spare, 255, "%06x", choice );
tmp_option_atari_toolbar_bg = choice;
ObjcStrCpy( dlgtree, SETTINGS_INPUT_TOOLBAR_BGCOLOR,
spare );
is_button = true;
OBJ_REDRAW(SETTINGS_INPUT_TOOLBAR_BGCOLOR);
break;
*/
/*
case SETTINGS_BT_TOOLBAR_ICONSET:
objc_offset( FORM(win), SETTINGS_BT_TOOLBAR_ICONSET, &x, &y );
tmp = toolbar_iconset_popup(x,y);
if( tmp != NULL ){
ObjcStrCpy( dlgtree, SETTINGS_BT_TOOLBAR_ICONSET, tmp );
}
is_button = true;
break;
*/
case SETTINGS_BT_SEL_DOWNLOAD_DIR:
case SETTINGS_BT_SEL_HOTLIST:
case SETTINGS_BT_SEL_CA_BUNDLE:
case SETTINGS_BT_SEL_CA_CERTS:
case SETTINGS_BT_SEL_EDITOR:
handle_filesystem_select_button(index);
break;
case SETTINGS_INC_MEM_CACHE:
case SETTINGS_DEC_MEM_CACHE:
if( index == SETTINGS_DEC_MEM_CACHE )