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

📄 dialog-plugins.c

📁 一个简单的文本编辑器
💻 C
📖 第 1 页 / 共 2 页
字号:
{	gint row, rows, new_row;	gchar *name;	gchar *name_array[2];	gpointer item_data;	gedit_debug (DEBUG_PLUGINS, "");	gedit_plugin_manager_lists_freeze();	rows = GTK_CLIST(available_list)->rows;	for (row = 0; row < rows; row++)	{#ifdef OLD_CLEAR		gtk_clist_get_text (GTK_CLIST (available_list), 0, 0, &name);		item_data = gtk_clist_get_row_data (GTK_CLIST(available_list), 0);#else		gtk_clist_get_text (GTK_CLIST (available_list), row, 0, &name);		item_data = gtk_clist_get_row_data (GTK_CLIST(available_list), row);#endif			name_array[0] = g_strdup(name);		name_array[1] = NULL;#ifdef OLD_CLEAR				gtk_clist_remove (GTK_CLIST (available_list), 0);#endif			new_row = gtk_clist_append (GTK_CLIST (installed_list), name_array);		gtk_clist_set_row_data (GTK_CLIST (installed_list), new_row, item_data);		if (name_array[0] != NULL)			g_free (name_array[0]);	}#ifndef OLD_CLEAR	gtk_clist_clear (GTK_CLIST (available_list));#endif		gedit_plugin_manager_lists_thaw (GTK_WIDGET(data));}static voidgedit_plugin_manager_item_remove_all (GtkWidget *widget, gpointer data){	gint row, rows, new_row;	gchar *name;	gchar *name_array [2];	gpointer item_data;	gedit_debug (DEBUG_PLUGINS, "");	gedit_plugin_manager_lists_freeze();	rows = GTK_CLIST(installed_list)->rows;	for (row = 0; row < rows; row++)	{#ifdef OLD_CLEAR		gtk_clist_get_text (GTK_CLIST (installed_list), 0, 0, &name);		item_data = gtk_clist_get_row_data (GTK_CLIST(installed_list), 0);#else		gtk_clist_get_text (GTK_CLIST (installed_list), row, 0, &name);		item_data = gtk_clist_get_row_data (GTK_CLIST(installed_list), row);#endif			name_array[0] = g_strdup(name);		name_array[1] = NULL;#ifdef OLD_CLEAR		gtk_clist_remove (GTK_CLIST (installed_list), 0);#endif		new_row = gtk_clist_append (GTK_CLIST (available_list), name_array);		gtk_clist_set_row_data (GTK_CLIST (available_list), new_row, item_data);		if (name_array[0] != NULL)			g_free (name_array[0]);	}#ifndef OLD_CLEAR	gtk_clist_clear (GTK_CLIST (installed_list));#endif		gedit_plugin_manager_lists_thaw (GTK_WIDGET(data));}static voidgedit_plugin_manager_destroy (GtkWidget *widget, gpointer data){	gedit_debug (DEBUG_PLUGINS, "");	gnome_dialog_close (GNOME_DIALOG (widget));}/*static gbooleangtk_clist_row_selected (GtkCList *clist, gint row){	gint selection_length;	gint n;	 	selection_length = g_list_length (clist->selection);	for (n=0; n < selection_length; n++)		if ((gint) g_list_nth_data (clist->selection, n) == row)			return TRUE;	return FALSE;}*/static voidgedit_plugin_manager_item_clicked (GtkCList *clist, GdkEventButton *event, gpointer data){	gint row;	gint column;	PluginData *plugin;	gint dummy_pos;	gchar *plugin_description;	GtkWidget *plugin_info_local;	/*	GtkWidget *plugin_info_window_local;	*/	gedit_debug (DEBUG_PLUGINS, "");	if (event->button != 1)		return;	/* if this is a double click, do nothing */	if (event->type != GDK_BUTTON_PRESS)		return;	if (!gtk_clist_get_selection_info (clist, event->x, event->y, &row, &column))		return;	plugin_info_local = GTK_WIDGET (data);		gedit_plugin_manager_info_clear (plugin_info_local);		plugin = gtk_clist_get_row_data (clist, row);	plugin_description = g_strdup_printf (_("Plugin Name: %s\n"						"Author: %s\n"						"Description: %s\n"),					      plugin->name,					      plugin->author,					      plugin->long_desc);	text_length = strlen (plugin_description);	dummy_pos = 0;	gtk_editable_insert_text (GTK_EDITABLE(plugin_info_local), plugin_description, text_length, &dummy_pos);	dummy_pos = 0;	gtk_editable_insert_text (GTK_EDITABLE(plugin_info_local), " ", 1, &dummy_pos);	gtk_editable_delete_text (GTK_EDITABLE(plugin_info_local), 0, 1);	g_free (plugin_description);}static voidgedit_plugin_manager_cancel_clicked (GtkWidget *widget, GtkWidget* data){	gnome_dialog_close (GNOME_DIALOG(data));	return;}static voidgedit_plugin_manager_help_clicked (GtkWidget *widget, GtkWidget* data){	static GnomeHelpMenuEntry help_entry = { "gedit", "plugins.html" };	gnome_help_display (NULL, &help_entry);				return;}static voidgedit_plugin_manager_ok_clicked (GtkWidget *widget, GtkWidget* data){	gint n;	gint row;	gint rows;	GnomeApp *nth_app;	PluginData *plugin_data;	gedit_debug (DEBUG_PLUGINS, "");		rows = GTK_CLIST (available_list)->rows;	for (row = rows-1; row >= 0; row--)	{		plugin_data = gtk_clist_get_row_data (GTK_CLIST(available_list), row);		plugin_data->installed = FALSE;	}	rows = GTK_CLIST (installed_list)->rows;	for (row = rows-1; row >= 0; row--)	{		plugin_data = gtk_clist_get_row_data (GTK_CLIST(installed_list), row);		plugin_data->installed = TRUE;	}	gnome_dialog_close (GNOME_DIALOG(data));	for (n = 0; n < g_list_length (mdi->windows); n++)	{		nth_app = g_list_nth_data (mdi->windows, n);		gedit_plugins_menu_add (nth_app);		}	if(gedit_document_current () == NULL) 		gedit_window_set_plugins_menu_sensitivity (FALSE);			return;}voidgedit_plugin_manager_create (GtkWidget *widget, gpointer data){	GladeXML *gui;	GtkWidget *dialog;	GtkWidget *add_button;	GtkWidget *remove_button;	GtkWidget *add_all_button;	GtkWidget *remove_all_button;	GtkWidget *plugin_info;	GtkWidget *plugin_info_window;	GtkWidget *ok_button;	GtkWidget *cancel_button;	GtkWidget *help_button;	gedit_debug (DEBUG_PLUGINS, "");	if (!g_file_exists (GEDIT_GLADEDIR GEDIT_PLUGIN_MANAGER_GLADE_FILE))	{		g_warning ("Could not find %s", GEDIT_GLADEDIR GEDIT_PLUGIN_MANAGER_GLADE_FILE);		return;	}	gui = glade_xml_new (GEDIT_GLADEDIR GEDIT_PLUGIN_MANAGER_GLADE_FILE, NULL);	if (!gui)	{		g_warning ("Could not find %s", GEDIT_GLADEDIR GEDIT_PLUGIN_MANAGER_GLADE_FILE);		return;	}	dialog             = glade_xml_get_widget (gui, "dialog");	add_button         = glade_xml_get_widget (gui, "add_button");	remove_button      = glade_xml_get_widget (gui, "remove_button");	add_all_button     = glade_xml_get_widget (gui, "add_all_button");	remove_all_button  = glade_xml_get_widget (gui, "remove_all_button");	available_list     = glade_xml_get_widget (gui, "available_list");	installed_list     = glade_xml_get_widget (gui, "installed_list");	plugin_info        = glade_xml_get_widget (gui, "plugin_info");	plugin_info_window = glade_xml_get_widget (gui, "plugin_info_window");	ok_button          = glade_xml_get_widget (gui, "ok_button");	cancel_button      = glade_xml_get_widget (gui, "cancel_button");	help_button        = glade_xml_get_widget (gui, "help_button");	g_return_if_fail (dialog             != NULL);	g_return_if_fail (add_button         != NULL);	g_return_if_fail (remove_button      != NULL);	g_return_if_fail (add_all_button     != NULL);	g_return_if_fail (remove_all_button  != NULL);	g_return_if_fail (available_list     != NULL);	g_return_if_fail (installed_list     != NULL);	g_return_if_fail (plugin_info        != NULL);	g_return_if_fail (plugin_info_window != NULL);	g_return_if_fail (ok_button          != NULL);	g_return_if_fail (cancel_button      != NULL);	g_return_if_fail (help_button        != NULL);	/*	gtk_object_set_data (GTK_OBJECT (plugin_info), "plugin_info_window", plugin_info_window);	*/		/* connect the signals */	gtk_signal_connect (GTK_OBJECT (dialog), "destroy",			    GTK_SIGNAL_FUNC (gedit_plugin_manager_destroy), NULL);		gtk_signal_connect (GTK_OBJECT (ok_button), "clicked",			    GTK_SIGNAL_FUNC (gedit_plugin_manager_ok_clicked), dialog);	gtk_signal_connect (GTK_OBJECT (cancel_button), "clicked",			    GTK_SIGNAL_FUNC (gedit_plugin_manager_cancel_clicked), dialog);	gtk_signal_connect (GTK_OBJECT (help_button), "clicked",			    GTK_SIGNAL_FUNC (gedit_plugin_manager_help_clicked), NULL);	/* now the buttons */	gtk_signal_connect (GTK_OBJECT (add_button), "clicked",			    GTK_SIGNAL_FUNC (gedit_plugin_manager_item_add),			    plugin_info);	gtk_signal_connect (GTK_OBJECT (remove_button), "clicked",			    GTK_SIGNAL_FUNC (gedit_plugin_manager_item_remove),			    plugin_info);	gtk_signal_connect (GTK_OBJECT (add_all_button), "clicked",			    GTK_SIGNAL_FUNC (gedit_plugin_manager_item_add_all),			    plugin_info);	gtk_signal_connect (GTK_OBJECT (remove_all_button), "clicked",			    GTK_SIGNAL_FUNC (gedit_plugin_manager_item_remove_all),			    plugin_info);		gtk_signal_connect (GTK_OBJECT (available_list), "button_press_event",			    GTK_SIGNAL_FUNC (gedit_plugin_manager_item_clicked),			    plugin_info);	gtk_signal_connect (GTK_OBJECT (installed_list), "button_press_event",			    GTK_SIGNAL_FUNC (gedit_plugin_manager_item_clicked),			    plugin_info);	gedit_plugin_manager_item_load (plugin_info);		/* Set the dialog parent and modal type */	gnome_dialog_set_parent  (GNOME_DIALOG (dialog), gedit_window_active());	gtk_window_set_modal     (GTK_WINDOW (dialog), TRUE);	gnome_dialog_set_default (GNOME_DIALOG (dialog), 0);	/* Show everything and free */	gtk_widget_show_all (dialog);	gtk_object_unref (GTK_OBJECT (gui));}

⌨️ 快捷键说明

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