コード例 #1
0
ファイル: settings.c プロジェクト: galexcode/NetSurf68k
static void save_settings(void)
{
    apply_settings();
    // Save settings
    nsoption_write( (const char*)&options );
    nsoption_read( (const char*)&options );
    close_settings();
    form_alert(1, "[1][Some options require an netsurf restart!][OK]");
    deskmenu_update();
}
コード例 #2
0
ファイル: settings.c プロジェクト: galexcode/NetSurf68k
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;
    struct gemtk_wm_scroll_info_s *slid;

    if ((ev_out->emo_events & MU_MESAG) != 0) {
        // handle message
        // printf("settings win msg: %d\n", msg[0]);
        switch (msg[0]) {


        case WM_CLOSED:
            // TODO: this needs to iterate through all gui windows and
            // check if the rootwin is this window...
            close_settings();
            break;

        case WM_SIZED:
            gemtk_wm_update_slider(win, GEMTK_WM_VH_SLIDER);
            break;

        case WM_MOVED:
            break;

        case WM_TOOLBAR:
            switch(msg[4]) {
            default:
                break;
            }
            break;

        case GEMTK_WM_WM_FORM_CLICK:
            form_event(msg[4], 1);
            break;

        default:
            break;
        }
    }

    if ((ev_out->emo_events & MU_KEYBD) != 0) {
    }

    if ((ev_out->emo_events & MU_BUTTON) != 0) {
    }

    return(retval);
}
コード例 #3
0
ファイル: settings.c プロジェクト: galexcode/NetSurf68k
static void form_event(int index, int external)
{
    char spare[255];
    bool is_button = false;
    bool checked = OBJ_SELECTED(index);
    char * tmp;
    MENU pop_menu, me_data;

    /* For font driver popup: */
    int num_font_drivers = 2;

    /*
    	Just a small collection of locales, each country has at least one
    	ATARI-clone user! :)
    */
    int num_locales = 15;
    short x, y;
    int choice, i;

    switch(index) {

    case SETTINGS_SAVE:
		OBJ_UNCHECK(index);
        OBJ_REDRAW(index);
        save_settings();
        break;

    case SETTINGS_ABORT:
		OBJ_UNCHECK(index);
        OBJ_REDRAW(index);
        close_settings();
        break;

    case SETTINGS_CB_USE_PROXY:
        if( checked ) {
            ENABLE_OBJ(SETTINGS_EDIT_PROXY_HOST);
            ENABLE_OBJ(SETTINGS_EDIT_PROXY_PORT);
            ENABLE_OBJ(SETTINGS_CB_PROXY_AUTH);
        } else {
            DISABLE_OBJ(SETTINGS_EDIT_PROXY_HOST);
            DISABLE_OBJ(SETTINGS_EDIT_PROXY_PORT);
            DISABLE_OBJ(SETTINGS_CB_PROXY_AUTH);
        }
        FORMEVENT(SETTINGS_CB_PROXY_AUTH);
        OBJ_REDRAW(SETTINGS_CB_USE_PROXY);
        break;

    case SETTINGS_CB_PROXY_AUTH:
        if( checked && OBJ_SELECTED( SETTINGS_CB_USE_PROXY ) ) {
            ENABLE_OBJ(SETTINGS_EDIT_PROXY_USERNAME);
            ENABLE_OBJ(SETTINGS_EDIT_PROXY_PASSWORD);
        } else {
            DISABLE_OBJ(SETTINGS_EDIT_PROXY_USERNAME);
            DISABLE_OBJ(SETTINGS_EDIT_PROXY_PASSWORD);
        }
        break;

    case SETTINGS_CB_ENABLE_ANIMATION:
        if( checked ) {
            ENABLE_OBJ( SETTINGS_EDIT_MIN_GIF_DELAY );
        } else {
            DISABLE_OBJ( SETTINGS_EDIT_MIN_GIF_DELAY );
        }
        break;

    case SETTINGS_BT_SEL_FONT_RENDERER:
        if( external ) {
            objc_offset(dlgtree, SETTINGS_BT_SEL_FONT_RENDERER, &x, &y);
            // point mn_tree tree to states popup:
            pop_menu.mn_tree = gemtk_obj_get_tree(POP_FONT_RENDERER);
            pop_menu.mn_menu = 0;
            pop_menu.mn_item = POP_FONT_RENDERER_INTERNAL;
            pop_menu.mn_scroll = SCROLL_NO;
            pop_menu.mn_keystate = 0;

			// find the selected menu item and uncheck others:
            for(i=pop_menu.mn_item; i<=num_font_drivers; i++) {
                get_string(pop_menu.mn_tree, i, spare);
                tmp = gemtk_obj_get_text(dlgtree, SETTINGS_BT_SEL_FONT_RENDERER);
                if (strcasecmp(&spare[2], tmp)) {
                    menu_icheck(pop_menu.mn_tree, i, 0);
                } else {
                    menu_icheck(pop_menu.mn_tree, i, 1);
                }
                set_string(pop_menu.mn_tree, i, spare);
            }

            menu_popup(&pop_menu, x, y, &me_data);
            choice = me_data.mn_item;
            if( choice > 0 && choice <= num_font_drivers ) {
                get_string(pop_menu.mn_tree, choice, spare);
                for(i=2; i<(int)strlen(spare); i++) {
                    spare[i]= (char)tolower(spare[i]);
                }
                set_text(SETTINGS_BT_SEL_FONT_RENDERER,
                         (char*)&spare[2],
                         LABEL_FONT_RENDERER_MAX_LEN);
                OBJ_REDRAW(SETTINGS_BT_SEL_FONT_RENDERER);
            }
        }
        tmp = gemtk_obj_get_text(dlgtree, SETTINGS_BT_SEL_FONT_RENDERER);
        if (strcasecmp(tmp, "freetype") == 0) {
            ENABLE_OBJ(SETTINGS_CB_ANTI_ALIASING);
        } else {
            DISABLE_OBJ(SETTINGS_CB_ANTI_ALIASING);
        }
        break;

    case SETTINGS_BT_SEL_LOCALE:
        objc_offset(dlgtree, SETTINGS_BT_SEL_LOCALE, &x, &y);

        // point mn_tree tree to states popup:
        pop_menu.mn_tree = gemtk_obj_get_tree(POP_LANGUAGE);
        pop_menu.mn_menu = 0;
        pop_menu.mn_item = POP_LANGUAGE_CS;
        pop_menu.mn_scroll = SCROLL_NO;
        pop_menu.mn_keystate = 0;

		// find the selected menu item and uncheck others:
        for(i=pop_menu.mn_item; i<=num_locales; i++) {
            get_string(pop_menu.mn_tree, i, spare);
            tmp = gemtk_obj_get_text(dlgtree, SETTINGS_BT_SEL_LOCALE);
            if (strcasecmp(&spare[2], tmp)) {
                menu_icheck(pop_menu.mn_tree, i, 0);
            } else {
                menu_icheck(pop_menu.mn_tree, i, 1);
            }
            set_string(pop_menu.mn_tree, i, spare);
        }


        menu_popup(&pop_menu, x, y, &me_data);
        choice = me_data.mn_item;
        if( choice > 0 && choice <= num_locales ) {
            get_string(pop_menu.mn_tree, choice, spare);
            for(i=2; i<(int)strlen(spare); i++) {
                spare[i]= (char)tolower(spare[i]);
            }
            set_text(SETTINGS_BT_SEL_LOCALE, (char*)&spare[2], 5);
        }

        OBJ_REDRAW(SETTINGS_BT_SEL_LOCALE);
        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_INC_MEM_CACHE:
    case SETTINGS_DEC_MEM_CACHE:
        if( index == SETTINGS_DEC_MEM_CACHE )
            tmp_option_memory_cache_size -= 0.1;
        else
            tmp_option_memory_cache_size += 0.1;

        if( tmp_option_memory_cache_size < 0.5 )
            tmp_option_memory_cache_size = 0.5;
        if( tmp_option_memory_cache_size > 999.9 )
            tmp_option_memory_cache_size = 999.9;
        snprintf( spare, 255, "%03.1f", tmp_option_memory_cache_size );
        set_text( SETTINGS_STR_MAX_MEM_CACHE, spare, 5 );
        is_button = true;
        OBJ_REDRAW(SETTINGS_STR_MAX_MEM_CACHE);
        break;

    case SETTINGS_INC_CACHED_CONNECTIONS:
    case SETTINGS_DEC_CACHED_CONNECTIONS:
        if( index == SETTINGS_INC_CACHED_CONNECTIONS )
            tmp_option_max_cached_fetch_handles += 1;
        else
            tmp_option_max_cached_fetch_handles -= 1;
        if( tmp_option_max_cached_fetch_handles > 31 )
            tmp_option_max_cached_fetch_handles = 31;

        snprintf( spare, 255, "%02d", tmp_option_max_cached_fetch_handles );
        set_text( SETTINGS_EDIT_MAX_CACHED_CONNECTIONS, spare, 2 );
        is_button = true;
        OBJ_REDRAW(SETTINGS_EDIT_MAX_CACHED_CONNECTIONS);
        break;

    case SETTINGS_INC_MAX_FETCHERS:
    case SETTINGS_DEC_MAX_FETCHERS:
        if( index == SETTINGS_INC_MAX_FETCHERS )
            tmp_option_max_fetchers += 1;
        else
            tmp_option_max_fetchers -= 1;
        if( tmp_option_max_fetchers > 31 )
            tmp_option_max_fetchers = 31;

        snprintf( spare, 255, "%02d", tmp_option_max_fetchers );
        set_text( SETTINGS_EDIT_MAX_FETCHERS, spare, 2 );
        is_button = true;
        OBJ_REDRAW(SETTINGS_EDIT_MAX_FETCHERS);
        break;

    case SETTINGS_INC_MAX_FETCHERS_PER_HOST:
    case SETTINGS_DEC_MAX_FETCHERS_PER_HOST:
        if( index == SETTINGS_INC_MAX_FETCHERS_PER_HOST )
            tmp_option_max_fetchers_per_host += 1;
        else
            tmp_option_max_fetchers_per_host -= 1;
        if( tmp_option_max_fetchers_per_host > 31 )
            tmp_option_max_fetchers_per_host = 31;

        snprintf( spare, 255, "%02d", tmp_option_max_fetchers_per_host );
        set_text( SETTINGS_EDIT_MAX_FETCHERS_PER_HOST, spare, 2 );
        is_button = true;
        OBJ_REDRAW(SETTINGS_EDIT_MAX_FETCHERS_PER_HOST);
        break;

    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 );
        is_button = true;
        OBJ_REDRAW(SETTINGS_EDIT_HISTORY_AGE);
        break;

    case SETTINGS_INC_GIF_DELAY:
    case SETTINGS_DEC_GIF_DELAY:
        if( index == SETTINGS_INC_GIF_DELAY )
            tmp_option_minimum_gif_delay += 0.1;
        else
            tmp_option_minimum_gif_delay -= 0.1;

        if( tmp_option_minimum_gif_delay < 0.1 )
            tmp_option_minimum_gif_delay = 0.1;
        if( tmp_option_minimum_gif_delay > 9.0 )
            tmp_option_minimum_gif_delay = 9.0;
        snprintf( spare, 255, "%01.1f", tmp_option_minimum_gif_delay );
        set_text( SETTINGS_EDIT_MIN_GIF_DELAY, spare, 3 );
        is_button = true;
        OBJ_REDRAW(SETTINGS_EDIT_MIN_GIF_DELAY);
        break;

    case SETTINGS_INC_MIN_FONT_SIZE:
    case SETTINGS_DEC_MIN_FONT_SIZE:
        if( index == SETTINGS_INC_MIN_FONT_SIZE )
            tmp_option_font_min_size += 1;
        else
            tmp_option_font_min_size -= 1;

        if( tmp_option_font_min_size > 500 )
            tmp_option_font_min_size = 500;
        if( tmp_option_font_min_size < 10 )
            tmp_option_font_min_size = 10;

        snprintf( spare, 255, "%03d", tmp_option_font_min_size );
        set_text( SETTINGS_EDIT_MIN_FONT_SIZE, spare, 3 );
        is_button = true;
        OBJ_REDRAW(SETTINGS_EDIT_MIN_FONT_SIZE);
        break;

    case SETTINGS_INC_DEF_FONT_SIZE:
    case SETTINGS_DEC_DEF_FONT_SIZE:
        if( index == SETTINGS_INC_DEF_FONT_SIZE )
            tmp_option_font_size += 1;
        else
            tmp_option_font_size -= 1;

        if( tmp_option_font_size > 999 )
            tmp_option_font_size = 999;
        if( tmp_option_font_size < 50 )
            tmp_option_font_size = 50;

        snprintf( spare, 255, "%03d", tmp_option_font_size );
        set_text( SETTINGS_EDIT_DEF_FONT_SIZE, spare, 3 );
        is_button = true;
        OBJ_REDRAW(SETTINGS_EDIT_DEF_FONT_SIZE);
        break;

    case SETTINGS_INC_INCREMENTAL_REFLOW:
    case SETTINGS_DEC_INCREMENTAL_REFLOW:
        if( index == SETTINGS_INC_INCREMENTAL_REFLOW )
            tmp_option_min_reflow_period += 1;
        else
            tmp_option_min_reflow_period -= 1;

        if( tmp_option_min_reflow_period > 9999 )
            tmp_option_min_reflow_period = 10;

        snprintf( spare, 255, "%04d", tmp_option_min_reflow_period );
        set_text( SETTINGS_EDIT_MIN_REFLOW_PERIOD, spare, 4 );
        is_button = true;
        OBJ_REDRAW(SETTINGS_EDIT_MIN_REFLOW_PERIOD);
        break;

    default:
        break;
    }

    if( is_button ) {
        // remove selection indicator from button element:
        OBJ_UNCHECK(index);
        OBJ_REDRAW(index);
    }
}
コード例 #4
0
ファイル: main.c プロジェクト: mdevaev/lightlang
int main(int argc, char **argv)
{
	char *dicts_list = NULL;
	regimen_t regimen = usually_regimen; // GCC warning fix

	int opt;
	struct option long_options[] = {
		{OPT_SEARCH_USUALLY,			required_argument,	NULL,	'u'}, // +
		{OPT_SEARCH_FIRST_CONCURRENCE,		required_argument,	NULL,	'f'}, // +
		{OPT_SEARCH_WORD_COMBINATIONS,		required_argument,	NULL,	'c'}, // +
		{OPT_SEARCH_LIST,			required_argument,	NULL,	'l'}, // +
		{OPT_SEARCH_ILL_DEFINED,		required_argument,	NULL,	'i'}, // +
		{OPT_SEARCH_SOUND,			required_argument,	NULL,	's'}, // +

		{OPT_DICT_CONNECT,			required_argument,	NULL,	'0'}, // -
		{OPT_DICT_DISCONNECT,			required_argument,	NULL,	'1'}, // -
		{OPT_DICT_PRINT_DICTS_LIST,		no_argument,		NULL,	'2'}, // -
		{OPT_DICT_PRINT_DICT_INFO,		required_argument,	NULL,	'3'}, // -
		{OPT_DICT_USE_LIST,			required_argument,	NULL,	'5'}, // -
		{OPT_DICT_PRINT_INDEX,			required_argument,	NULL,	'6'}, // -

		{OPT_MISC_MAX_TRANSLATE_COUNT,		required_argument,	NULL,	'm'}, // +
		{OPT_MISC_ILL_DEFINED_SEARCH_PERCENT,	required_argument,	NULL,	'p'}, // +
		{OPT_MISC_SHOW_TIME,			no_argument,		NULL,	't'}, // +
		{OPT_SETTINGS_OUTPUT_FORMAT,		required_argument,	NULL,	'7'}, // -
		{OPT_SETTINGS_USE_ESCS,			required_argument,	NULL,	'8'}, // -
		{OPT_SETTINGS_USE_CSS,			required_argument,	NULL,	'9'}, // -

		{OPT_INFO_HELP,				no_argument,		NULL,	'h'}, // +
		{OPT_INFO_VERSION,			no_argument,		NULL,	'v'}, // +
		{OPT_INFO_DEBUG,			no_argument,		NULL,	'd'}, // +

		{0, 0, 0, 0}
	};

	int error_count = 0;

	clock_t begin_time_label, end_time_label;

	bool use_default_function_flag = true;
	bool show_time_flag = false;


	begin_time_label = clock();

	if ( init_settings() != 0 ) {
		fprintf(stderr, "Cannot initialize default \"%s\" settings\n", MYNAME);
		return 1;
	}

	while ( (opt = getopt_long(argc, argv, ":u:f:c:l:i:s:m:p:thvd", long_options, NULL)) != -1 ) {
		switch ( opt ) {
			case 'u' :
			case 'f' :
			case 'c' :
			case 'l' :
			case 'i' : {
				switch ( opt ) {
					case 'u' : regimen = usually_regimen; break;
					case 'f' : regimen = first_concurrence_regimen; break;
					case 'c' : regimen = word_combinations_regimen; break;
					case 'l' : regimen = list_regimen; break;
					case 'i' : regimen = ill_defined_regimen; break;
				}
				error_count += managed_find_word(optarg, regimen, dicts_list);
				use_default_function_flag = false;
				break;
			}

			case 's' : {
				error_count += find_sound(optarg);
				use_default_function_flag = false;
				break;
			}

			case '0' : {
				error_count += connect_dict(optarg);
				use_default_function_flag = false;
				break;
			}

			case '1' : {
				error_count += disconnect_dict(optarg);
				use_default_function_flag = false;
				break;
			}

			case '2' : {
				error_count += print_dicts_list();
				use_default_function_flag = false;
				break;
			}

			case '3' : {
				error_count += print_dict_info(optarg);
				use_default_function_flag = false;
				break;
			}

			case '5' : {
				dicts_list = optarg;
				use_default_function_flag = false;
				break;
			}

			case '6' : {
				error_count += build_linear_index(optarg);
				use_default_function_flag = false;
				break;
			}

			case 'm' : {
				set_settings_max_translate_count(optarg);
				use_default_function_flag = false;
				break;
			}

			case 'p' : {
				set_settings_ill_defined_search_percent(optarg);
				use_default_function_flag = false;
				break;
			}

			case '7' : {
				set_settings_output_format(optarg);
				use_default_function_flag = false;
				break;
			}

			case '8' : {
				set_settings_use_terminal_escapes_flag(optarg);
				use_default_function_flag = false;
				break;
			}

			case '9' : {
				set_settings_use_css_flag(optarg);
				use_default_function_flag = false;
				break;
			}

			case 't' : {
				show_time_flag = true;
				use_default_function_flag = false;
				break;
			}

			case 'h' : {
				help();
				use_default_function_flag = false;
				break;
			}

			case 'v' : {
				version();
				use_default_function_flag = false;
				break;
			}

			case 'd' : {
				debug();
				use_default_function_flag = false;
				break;
			}

			case ':' : {
				fprintf(stderr, "Option \"-%c\" requires an argument: ignored\n", optopt);
				--error_count;
				break;
			}

			case '?' :
			default : {
				fprintf(stderr, "Invalid option \"-%c\": ignored\n", optopt);
				use_default_function_flag = false;
				break;
			}
		}
	}

	if ( argc == 2 && use_default_function_flag ) {
		error_count += managed_find_word(argv[1], usually_regimen, NULL);
	}
	else if ( argc != 2 && use_default_function_flag ) {
		fprintf(stderr, "Bad options syntax, try \"%s --help\"\n", MYNAME);
		--error_count;
	}

	if ( close_settings() != 0 )
		fprintf(stderr, "Warning: cannot close \"%s\" settings\n", MYNAME);

	if ( show_time_flag ) {
		end_time_label = clock();

		if ( begin_time_label != -1 && end_time_label != -1 )
			fprintf(stderr, "Search time: %.2f sec\n", ((double) (end_time_label - begin_time_label)) / CLOCKS_PER_SEC);
	}

	return abs(error_count);
}