⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preferences.c

📁 Gqview,Linux下基于GTK+库写成的轻量级而能丰富的图像浏览程序。
💻 C
📖 第 1 页 / 共 3 页
字号:
	table = pref_table_new(group, 2, 1, FALSE, FALSE);	add_quality_menu(table, 0, 0, _("Quality:"), zoom_quality, &zoom_quality_c);	pref_checkbox_new_int(group, _("Two pass zooming"),			      two_pass_zoom, &two_pass_zoom_c);	pref_checkbox_new_int(group, _("Allow enlargement of image for zoom to fit."),			      zoom_to_fit_expands, &zoom_to_fit_expands_c);	zoom_increment_c = zoom_increment;	spin = pref_spin_new(group, _("Zoom increment:"), NULL,			     0.1, 4.0, 1.0, 1, (double)zoom_increment / 10.0,			     G_CALLBACK(zoom_increment_cb), NULL);	gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(spin), GTK_UPDATE_ALWAYS);	group = pref_group_new(vbox, FALSE, _("When new image is selected:"), GTK_ORIENTATION_VERTICAL);	zoom_mode_c = zoom_mode;	button = pref_radiobutton_new(group, NULL, _("Zoom to original size"),				      (zoom_mode == ZOOM_RESET_ORIGINAL),				      G_CALLBACK(zoom_mode_original_cb), NULL);	button = pref_radiobutton_new(group, button, _("Fit image to window"),				      (zoom_mode == ZOOM_RESET_FIT_WINDOW),				      G_CALLBACK(zoom_mode_fit_cb), NULL);	button = pref_radiobutton_new(group, button, _("Leave Zoom at previous setting"),				      (zoom_mode == ZOOM_RESET_NONE),				      G_CALLBACK(zoom_mode_none_cb), NULL);	group = pref_group_new(vbox, FALSE, _("Appearance"), GTK_ORIENTATION_VERTICAL);	pref_checkbox_new_int(group, _("Black background"),			      black_window_background, &black_window_background_c);	group = pref_group_new(vbox, FALSE, _("Convenience"), GTK_ORIENTATION_VERTICAL);	pref_checkbox_new_int(group, _("Refresh on file change"),			      update_on_time_change, &update_on_time_change_c);	pref_checkbox_new_int(group, _("Preload next image"),			      enable_read_ahead, &enable_read_ahead_c);	pref_checkbox_new_int(group, _("Auto rotate image using Exif information"),			      exif_rotate_enable, &exif_rotate_enable_c);	/* window tab */	vbox = gtk_vbox_new(FALSE, 0);	gtk_container_set_border_width(GTK_CONTAINER(vbox), PREF_PAD_BORDER);	gtk_widget_show(vbox);	label = gtk_label_new(_("Windows"));	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);	group = pref_group_new(vbox, FALSE, _("State"), GTK_ORIENTATION_VERTICAL);	pref_checkbox_new_int(group, _("Remember window positions"),			      save_window_positions, &save_window_positions_c);	pref_checkbox_new_int(group, _("Remember tool state (float/hidden)"),			      restore_tool, &restore_tool_c);	group = pref_group_new(vbox, FALSE, _("Size"), GTK_ORIENTATION_VERTICAL);	pref_checkbox_new_int(group, _("Fit window to image when tools are hidden/floating"),			      fit_window, &fit_window_c);	hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);	ct_button = pref_checkbox_new_int(hbox, _("Limit size when auto-sizing window (%):"),					  limit_window_size, &limit_window_size_c);	spin = pref_spin_new_int(hbox, NULL, NULL,				 10, 150, 1,				 max_window_size, &max_window_size_c);	pref_checkbox_link_sensitivity(ct_button, spin);	group = pref_group_new(vbox, FALSE, _("Layout"), GTK_ORIENTATION_VERTICAL);	layout_widget = layout_config_new();	layout_config_set(layout_widget, layout_style, layout_order);	gtk_box_pack_start(GTK_BOX(group), layout_widget, FALSE, FALSE, 0);	gtk_widget_show(layout_widget);	/* filtering tab */	vbox = gtk_vbox_new(FALSE, 0);	gtk_container_set_border_width(GTK_CONTAINER (vbox), PREF_PAD_BORDER);	gtk_widget_show(vbox);	label = gtk_label_new(_("Filtering"));	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);	group = pref_box_new(vbox, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);	pref_checkbox_new_int(group, _("Show entries that begin with a dot"),			      show_dot_files, &show_dot_files_c);	pref_checkbox_new_int(group, _("Case sensitive sort"),			      file_sort_case_sensitive, &file_sort_case_sensitive_c);	ct_button = pref_checkbox_new_int(group, _("Disable File Filtering"),					  file_filter_disable, &file_filter_disable_c);	group = pref_group_new(vbox, TRUE, _("File types"), GTK_ORIENTATION_VERTICAL);	frame = pref_group_parent(group);	g_signal_connect(G_OBJECT(ct_button), "toggled",			 G_CALLBACK(filter_disable_cb), frame);	gtk_widget_set_sensitive(frame, !file_filter_disable);	scrolled = gtk_scrolled_window_new(NULL, NULL);	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);	gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0);	gtk_widget_show(scrolled);	filter_store = gtk_list_store_new(1, G_TYPE_POINTER);	filter_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(filter_store));	g_object_unref(filter_store);	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(filter_view));	gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_SINGLE);	gtk_tree_view_set_enable_search(GTK_TREE_VIEW(filter_view), FALSE);	column = gtk_tree_view_column_new();	gtk_tree_view_column_set_title(column, _("Filter"));	gtk_tree_view_column_set_resizable(column, TRUE);	renderer = gtk_cell_renderer_toggle_new();	g_signal_connect(G_OBJECT(renderer), "toggled",			 G_CALLBACK(filter_store_enable_cb), filter_store);	gtk_tree_view_column_pack_start(column, renderer, FALSE);	gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func,						GINT_TO_POINTER(FE_ENABLE), NULL);		renderer = gtk_cell_renderer_text_new();	g_signal_connect(G_OBJECT(renderer), "edited",			 G_CALLBACK(filter_store_ext_edit_cb), filter_store);	gtk_tree_view_column_pack_start(column, renderer, TRUE);	g_object_set(G_OBJECT(renderer), "editable", (gboolean)TRUE, NULL);	gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func,						GINT_TO_POINTER(FE_EXTENSION), NULL);	gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column);	column = gtk_tree_view_column_new();	gtk_tree_view_column_set_title(column, _("Description"));	gtk_tree_view_column_set_resizable(column, TRUE);	renderer = gtk_cell_renderer_text_new();	g_signal_connect(G_OBJECT(renderer), "edited",			 G_CALLBACK(filter_store_desc_edit_cb), filter_store);	g_object_set(G_OBJECT(renderer), "editable", (gboolean)TRUE, NULL);	gtk_tree_view_column_pack_start(column, renderer, FALSE);	gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func,						GINT_TO_POINTER(FE_DESCRIPTION), NULL);	gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column);	filter_store_populate();	gtk_container_add(GTK_CONTAINER(scrolled), filter_view);	gtk_widget_show(filter_view);	hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);	button = pref_button_new(NULL, NULL, _("Defaults"), FALSE,				 G_CALLBACK(filter_default_cb), NULL);	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);	gtk_widget_show(button);	button = pref_button_new(NULL, GTK_STOCK_REMOVE, NULL, FALSE,				 G_CALLBACK(filter_remove_cb), filter_view);	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);	gtk_widget_show(button);	button = pref_button_new(NULL, GTK_STOCK_ADD, NULL, FALSE,				 G_CALLBACK(filter_add_cb), NULL);	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);	gtk_widget_show(button);	/* editor entry tab */	vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP);	gtk_container_set_border_width(GTK_CONTAINER(vbox), PREF_PAD_BORDER);	gtk_widget_show(vbox);	label = gtk_label_new(_("Editors"));	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);	table = pref_table_new(vbox, 3, 9, FALSE, FALSE);	gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_GAP);	label = pref_table_label(table, 0, 0, _("#"), 1.0);	pref_label_bold(label, TRUE, FALSE);	label = pref_table_label(table, 1, 0, _("Menu name"), 0.0);	pref_label_bold(label, TRUE, FALSE);	label = pref_table_label(table, 2, 0, ("Command Line"), 0.0);	pref_label_bold(label, TRUE, FALSE);	for (i = 0; i < GQVIEW_EDITOR_SLOTS; i++)		{		gchar *buf;		buf = g_strdup_printf("%d", i+1);		pref_table_label(table, 0, i+1, buf, 1.0);		g_free(buf);		editor_name_entry[i] = gtk_entry_new();		gtk_entry_set_max_length(GTK_ENTRY(editor_name_entry[i]), EDITOR_NAME_MAX_LENGTH);		gtk_widget_set_size_request(editor_name_entry[i],80,-1);		if (editor_name[i]) gtk_entry_set_text(GTK_ENTRY(editor_name_entry[i]),editor_name[i]);		gtk_table_attach(GTK_TABLE (table),editor_name_entry[i],1,2,i+1,i+2,				 GTK_FILL | GTK_EXPAND, FALSE, 0, 0);		gtk_widget_show(editor_name_entry[i]);		editor_command_entry[i] = gtk_entry_new();		gtk_entry_set_max_length(GTK_ENTRY(editor_command_entry[i]), EDITOR_COMMAND_MAX_LENGTH);		gtk_widget_set_size_request(editor_command_entry[i],160,-1);		tab_completion_add_to_entry(editor_command_entry[i], NULL, NULL);		if (editor_command[i]) gtk_entry_set_text(GTK_ENTRY(editor_command_entry[i]), editor_command[i]);		gtk_table_attach(GTK_TABLE (table),editor_command_entry[i],2,3,i+1,i+2,				 GTK_FILL | GTK_EXPAND, FALSE, 0, 0);		gtk_widget_show(editor_command_entry[i]);		}	hbox = pref_box_new(vbox, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);	button = pref_button_new(NULL, NULL, _("Defaults"), FALSE,				 G_CALLBACK(editor_default_cb), NULL);	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);	gtk_widget_show(button);	button = pref_button_new(NULL, GTK_STOCK_HELP, NULL, FALSE,				 G_CALLBACK(editor_help_cb), NULL);	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);	gtk_widget_show(button);	/* advanced entry tab */	scrolled = gtk_scrolled_window_new(NULL, NULL);	gtk_container_set_border_width(GTK_CONTAINER(scrolled), PREF_PAD_BORDER);	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),				       GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);	label = gtk_label_new(_("Advanced"));	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrolled, label);	gtk_widget_show(scrolled);	viewport = gtk_viewport_new(NULL, NULL);	gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE);	gtk_container_add(GTK_CONTAINER(scrolled), viewport);	gtk_widget_show(viewport);	vbox = gtk_vbox_new(FALSE, 0);	gtk_container_add(GTK_CONTAINER(viewport), vbox);	gtk_widget_show(vbox);	group = pref_group_new(vbox, FALSE, _("Full screen"), GTK_ORIENTATION_VERTICAL);	fullscreen_screen_c = fullscreen_screen;	fullscreen_above_c = fullscreen_above;	hbox = fullscreen_prefs_selection_new(_("Location:"), &fullscreen_screen_c, &fullscreen_above_c);	gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);	gtk_widget_show(hbox);	pref_checkbox_new_int(group, _("Smooth image flip"),			      fullscreen_clean_flip, &fullscreen_clean_flip_c);	pref_checkbox_new_int(group, _("Disable screen saver"),			      fullscreen_disable_saver, &fullscreen_disable_saver_c);	group = pref_group_new(vbox, FALSE, _("Delete"), GTK_ORIENTATION_VERTICAL);	pref_checkbox_new_int(group, _("Confirm file delete"),			      confirm_delete, &confirm_delete_c);	pref_checkbox_new_int(group, _("Enable Delete key"),			      enable_delete_key, &enable_delete_key_c);	ct_button = pref_checkbox_new_int(group, _("Safe delete"),					  safe_delete_enable, &safe_delete_enable_c);	hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);	pref_checkbox_link_sensitivity(ct_button, hbox);	pref_spacer(hbox, PREF_PAD_INDENT - PREF_PAD_SPACE);	pref_label_new(hbox, _("Folder:"));	tabcomp = tab_completion_new(&safe_delete_path_entry, safe_delete_path, NULL, NULL);	tab_completion_add_select_button(safe_delete_path_entry, NULL, TRUE);	gtk_box_pack_start(GTK_BOX(hbox), tabcomp, TRUE, TRUE, 0);	gtk_widget_show(tabcomp);	hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);	pref_checkbox_link_sensitivity(ct_button, hbox);	pref_spacer(hbox, PREF_PAD_INDENT - PREF_PAD_GAP);	pref_spin_new_int(hbox, _("Maximum size:"), _("MB"),			  1, 500, 1, safe_delete_size, &safe_delete_size_c);	button = pref_button_new(NULL, NULL, _("View"), FALSE,				 G_CALLBACK(safe_delete_view_cb), NULL);	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);	gtk_widget_show(button);	button = pref_button_new(NULL, GTK_STOCK_CLEAR, NULL, FALSE,				 G_CALLBACK(safe_delete_clear_cb), NULL);	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);	gtk_widget_show(button);	group = pref_group_new(vbox, FALSE, _("Behavior"), GTK_ORIENTATION_VERTICAL);	pref_checkbox_new_int(group, _("Rectangular selection in icon view"),			      collection_rectangular_selection, &collection_rectangular_selection_c);	pref_checkbox_new_int(group, _("Descend folders in tree view"),			      tree_descend_subdirs, &tree_descend_subdirs_c);	pref_checkbox_new_int(group, _("In place renaming"),			      enable_in_place_rename, &enable_in_place_rename_c);	group = pref_group_new(vbox, FALSE, _("Navigation"), GTK_ORIENTATION_VERTICAL);	pref_checkbox_new_int(group, _("Progressive keyboard scrolling"),			      progressive_key_scrolling, &progressive_key_scrolling_c);	pref_checkbox_new_int(group, _("Mouse wheel scrolls image"),			      mousewheel_scrolls, &mousewheel_scrolls_c);	group = pref_group_new(vbox, FALSE, _("Miscellaneous"), GTK_ORIENTATION_VERTICAL);	pref_checkbox_new_int(group, _("Store keywords and comments local to source images"),			      enable_metadata_dirs, &enable_metadata_dirs_c);	pref_spin_new_int(group, _("Custom similarity threshold:"), NULL,			  0, 100, 1, dupe_custom_threshold, &dupe_custom_threshold_c);	pref_spin_new_int(group, _("Offscreen cache size (Mb per image):"), NULL,			  0, 128, 1, tile_cache_max, &tile_cache_max_c);	gtk_widget_show(notebook);	gtk_widget_show(configwindow);}/* *----------------------------------------------------------------------------- * config window show (public) *----------------------------------------------------------------------------- */ void show_config_window(void){	if (configwindow)		{		gtk_window_present(GTK_WINDOW(configwindow));		return;		}	config_window_create();}/* *----------------- * about window *----------------- */static GtkWidget *about = NULL;static gint about_delete_cb(GtkWidget *widget, GdkEventAny *event, gpointer data){	gtk_widget_destroy(about);	about = NULL;	return TRUE;}static void about_window_close(GtkWidget *widget, gpointer data){	if (!about) return;	gtk_widget_destroy(about);	about = NULL;}static void about_credits_cb(GtkWidget *widget, gpointer data){	help_window_show("credits");}void show_about_window(void){	GtkWidget *vbox;	GtkWidget *hbox;	GtkWidget *label;	GtkWidget *button;	GdkPixbuf *pixbuf;	gchar *buf;	if (about)		{		gtk_window_present(GTK_WINDOW(about));		return;		}	about = gtk_window_new(GTK_WINDOW_TOPLEVEL);	gtk_window_set_type_hint(GTK_WINDOW(about), GDK_WINDOW_TYPE_HINT_DIALOG);	gtk_window_set_wmclass(GTK_WINDOW(about), "about", "GQview");	g_signal_connect(G_OBJECT(about), "delete_event",			 G_CALLBACK(about_delete_cb), NULL);	gtk_window_set_title(GTK_WINDOW(about), _("About - GQview"));	gtk_container_set_border_width(GTK_CONTAINER(about), PREF_PAD_BORDER);	vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);	gtk_container_add(GTK_CONTAINER(about), vbox);	gtk_widget_show(vbox);	pixbuf = pixbuf_inline(PIXBUF_INLINE_LOGO);	button = gtk_image_new_from_pixbuf(pixbuf);	g_object_unref(pixbuf);	gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0);	gtk_widget_show(button);	buf = g_strdup_printf(_("GQview %s\n\nCopyright (c) %s John Ellis\nwebsite: %s\nemail: %s\n\nReleased under the GNU General Public License"),			      VERSION,			      "2005",			      "gqview.sourceforge.net",			      "gqview@users.sourceforge.net");	label = gtk_label_new(buf);	g_free(buf);	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER);	gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);	gtk_widget_show(label);	hbox = gtk_hbutton_box_new();	gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_END);	gtk_box_set_spacing(GTK_BOX(hbox), PREF_PAD_BUTTON_GAP);	gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);	gtk_widget_show(hbox);	button = pref_button_new(NULL, NULL, _("Credits..."), FALSE,				 G_CALLBACK(about_credits_cb), NULL);	gtk_container_add(GTK_CONTAINER(hbox), button);	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);	gtk_widget_show(button);	button = pref_button_new(NULL, GTK_STOCK_CLOSE, NULL, FALSE,				 G_CALLBACK(about_window_close), NULL);	gtk_container_add(GTK_CONTAINER(hbox), button);	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);	gtk_widget_grab_default(button);	gtk_widget_show(button);	window_set_icon(about, NULL, NULL);	gtk_widget_show(about);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -