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

📄 callbacks.c

📁 Remote Connection Manager是一个Gnome2 应用程序
💻 C
📖 第 1 页 / 共 2 页
字号:
	g_return_if_fail (ConnectionsWindow != NULL);	rcm_update_connections_window_list ();	icon_list = GNOME_ICON_LIST (lookup_widget (MainWindow, "MainList"));	g_return_if_fail (icon_list != NULL);	l = gnome_icon_list_get_selection (icon_list);	if (l)	{		i = GPOINTER_TO_INT (l->data);		rcm_select_connection_by_index (i);		gtk_widget_show (ConnectionsWindow);	}}voidon_ConnectionsSaveBtn_clicked (GtkButton * button, gpointer user_data){	GtkWidget *widget = NULL;	gchar *name = NULL;	gchar *tmp = NULL;	gchar *hostname = NULL;	gchar *username = NULL;	gchar *arguments = NULL;	Connection connection;	widget = NULL;	widget = lookup_widget (ConnectionsWindow, "ConnectionNameEntry");	g_return_if_fail (widget != NULL);	name = gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1);	if (strnlen (name,NAMELEN) == 0)	{		g_free (name);		rcm_warn (_("Conenction name is not set."),			  ConnectionsWindow);		return;	}	strncpy (connection.Name, name, NAMELEN);	// need this below g_free (name);	widget = NULL;	widget = lookup_widget (ConnectionsWindow, "ConnectionTypeCombo");	g_return_if_fail (widget != NULL);	tmp = gtk_editable_get_chars (GTK_EDITABLE				      (GTK_COMBO (widget)->entry), 0, -1);	if (tmp == NULL || strnlen (tmp,NAMELEN) == 0)	{		g_free (tmp);		rcm_warn (_("Conenction Type is not set."),			  ConnectionsWindow);		return;	}	connection.Type = rcm_lookup_type_by_name (tmp);	widget = NULL;	widget = lookup_widget (ConnectionsWindow, "ConnectionHostnameEntry");	g_return_if_fail (widget != NULL);	hostname = gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1);	if (strnlen (hostname,HOSTNAMELEN) == 0)	{		g_free (hostname);		rcm_warn (_("Conenction hostname is not set."),			  ConnectionsWindow);		return;	}	strncpy (connection.Hostname, hostname, HOSTNAMELEN);	widget = NULL;	widget = lookup_widget (ConnectionsWindow, "ConnectionUsernameEntry");	g_return_if_fail (widget != NULL);	username = gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1);	if (strnlen (username,USERNAMELEN) != 0)		strncpy (connection.Username, username, USERNAMELEN);	widget = NULL;	widget = lookup_widget (ConnectionsWindow,				"ConnectionArgumentsEntry");	g_return_if_fail (widget != NULL);	arguments = gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1);	if (strnlen (arguments,ARGUMENTSLEN) != 0)		strncpy (connection.Arguments, arguments, ARGUMENTSLEN);	rcm_save_connection (connection);	rcm_update_connections_window_list ();	rcm_select_connection_by_name (name);	rcm_clear_connections_window ();	g_free (name);}voidon_ConnectionsDeleteBtn_clicked (GtkButton * button, gpointer user_data){	GtkWidget *widget;	GtkTreeIter iter;	GtkTreeModel *model;	GtkTreeSelection *select;	gchar *name;	Connection* connection = NULL;	GtkWidget *ConnectionsList =		lookup_widget (ConnectionsWindow, "ConnectionsList");	select = gtk_tree_view_get_selection (GTK_TREE_VIEW					      (ConnectionsList));	if (gtk_tree_selection_get_selected (select, &model, &iter))	{		gtk_tree_model_get (model, &iter, CONNECTION_NAME_COLUMN,				    &name, -1);		connection = rcm_remove_connection_from_list_by_name (name,							 ConnectionsSList);		if(connection != NULL)			free(connection);		rcm_update_connections_window_list ();		rcm_update_main_window();		rcm_clear_connections_window ();	}	else	{		rcm_warn (_			  ("You must select a connection from the list first."),			  ConnectionsWindow);	}}voidon_ConnectionsClearBtn_clicked (GtkButton * button, gpointer user_data){	rcm_clear_connections_window ();}voidon_ConnectionsOkBtn_clicked (GtkButton * button, gpointer user_data){	gint width, height;	GConfClient *gconf_client = NULL;	gconf_client = gconf_client_get_default ();	gtk_window_get_size (GTK_WINDOW (ConnectionsWindow), &width, &height);	gconf_client_set_int (gconf_client, GCONF_CONNECTIONS_WINDOW_WIDTH,			      width, NULL);	gconf_client_set_int (gconf_client, GCONF_CONNECTIONS_WINDOW_HEIGHT,			      height, NULL);	gconf_client_suggest_sync (gconf_client, NULL);	g_object_unref (gconf_client);	if (!rcm_save_connections_to_disk ())		rcm_error (_("There was a problem saving."),			   ConnectionsWindow);	rcm_update_main_window ();	gtk_widget_hide (ConnectionsWindow);}voidon_TbPropertiesBtn_clicked (GtkButton * button, gpointer user_data){	GnomeIconList *icon_list;	gint i;	GList *l;	g_return_if_fail (ConnectionsWindow != NULL);	rcm_update_connections_window_list ();	icon_list = GNOME_ICON_LIST (lookup_widget (MainWindow, "MainList"));	g_return_if_fail (icon_list != NULL);	l = gnome_icon_list_get_selection (icon_list);	if (l)	{		i = GPOINTER_TO_INT (l->data);		rcm_select_connection_by_index (i);		gtk_widget_show (ConnectionsWindow);	}}voidon_TbDeleteBtn_clicked (GtkButton * button, gpointer user_data){	GnomeIconList *icon_list;	gint i;	GList *l;	gchar *name;	Connection *connection;	GtkWidget *yes_no_dialog;	int ret;	gchar buff[MAX_BUFFER_LENGTH];	icon_list = GNOME_ICON_LIST (lookup_widget (MainWindow, "MainList"));	g_return_if_fail (icon_list != NULL);	l = gnome_icon_list_get_selection (icon_list);	if (l)	{		i = GPOINTER_TO_INT (l->data);		connection = g_slist_nth_data (ConnectionsSList, i);		g_return_if_fail (connection != NULL);		snprintf (buff, MAX_BUFFER_LENGTH,			  _("Are you sure you want to delete %s?"),			  connection->Name);		yes_no_dialog =			gnome_message_box_new (buff,					       GNOME_MESSAGE_BOX_QUESTION,					       GNOME_STOCK_BUTTON_YES,					       GNOME_STOCK_BUTTON_NO, NULL);		ret = gnome_dialog_run (GNOME_DIALOG (yes_no_dialog));		if (ret == 1)			return;		connection =			rcm_remove_connection_from_list_by_name (connection->								 Name,								 ConnectionsSList);		if (connection)			free (connection);		rcm_update_main_window ();	// causing assertion		rcm_save_connections_to_disk ();	}}voidon_ConnectionsCancelBtn_clicked (GtkButton * button, gpointer user_data){	gint width, height;	GConfClient *gconf_client = NULL;	gconf_client = gconf_client_get_default ();	gtk_window_get_size (GTK_WINDOW (ConnectionsWindow), &width, &height);	gconf_client_set_int (gconf_client, GCONF_CONNECTIONS_WINDOW_WIDTH,			      width, NULL);	gconf_client_set_int (gconf_client, GCONF_CONNECTIONS_WINDOW_HEIGHT,			      height, NULL);	gconf_client_suggest_sync (gconf_client, NULL);	g_object_unref (gconf_client);	if (!rcm_load_connections_from_disk ())		rcm_error (_("A serious error has occured."),			   ConnectionsWindow);	rcm_update_main_window ();	gtk_widget_hide (ConnectionsWindow);}voidon_file_quit_activate (GtkMenuItem * menuitem, gpointer user_data){	rcm_quit ();}voidon_MainList_select_icon (GnomeIconList * gnomeiconlist,			 gint arg1, GdkEvent * event, gpointer user_data){}gbooleanon_MainList_button_press_event (GtkWidget * widget,				GdkEventButton * event, gpointer user_data){	GtkWidget *icon_list;	GtkWidget* popupmenu;	GtkWidget* popupmenuitem;	GList *l;	gint i;	Connection *connection;	if (event->type == GDK_2BUTTON_PRESS && event->button == 1)	{		icon_list = lookup_widget (MainWindow, "MainList");		g_return_if_fail (icon_list != NULL);		l = gnome_icon_list_get_selection (GNOME_ICON_LIST						   (icon_list));		if (l)		{			i = GPOINTER_TO_INT (l->data);			connection = g_slist_nth_data (ConnectionsSList, i);			g_return_if_fail (connection != NULL);			rcm_launch_connection_by_name (connection->Name);		}	}	else if(event->button == 3)	{		popupmenu = create_MainWindowPopupMenu();		icon_list = lookup_widget (MainWindow, "MainList");		g_return_if_fail (icon_list != NULL);		l = gnome_icon_list_get_selection (GNOME_ICON_LIST						   (icon_list));		if (!l)		{			popupmenuitem = lookup_widget(popupmenu,"ExecutePopupMenuItem");			gtk_widget_set_sensitive(popupmenuitem,FALSE);			popupmenuitem = lookup_widget(popupmenu,"EditPopupMenuItem");			gtk_widget_set_sensitive(popupmenuitem,FALSE);			popupmenuitem = lookup_widget(popupmenu,"DeletePopupMenuItem");			gtk_widget_set_sensitive(popupmenuitem,FALSE);					}		gtk_menu_popup(GTK_MENU(popupmenu),NULL,NULL,NULL,NULL,event->button,event->time);	}	return FALSE;}voidon_TbExecuteBtn_clicked (GtkButton * button, gpointer user_data){	GtkWidget *icon_list;	GList *l;	gint i;	Connection *connection;	icon_list = lookup_widget (MainWindow, "MainList");	g_return_if_fail (icon_list != NULL);	l = gnome_icon_list_get_selection (GNOME_ICON_LIST (icon_list));	if (l)	{		i = GPOINTER_TO_INT (l->data);		connection = g_slist_nth_data (ConnectionsSList, i);		g_return_if_fail (connection != NULL);		rcm_launch_connection_by_name (connection->Name);	}}voidon_ConnectionTypeCombo_changed         (GtkEditable     *editable,                                        gpointer         user_data){	GtkWidget* widget = NULL;	gchar* type_name;	ConnectionType* type = NULL;	gint index;		widget = lookup_widget(ConnectionsWindow, "ConnectionTypeCombo");	g_return_if_fail(widget != NULL);		type_name = gtk_editable_get_chars (GTK_EDITABLE (GTK_COMBO(widget)->entry), 0, -1);	g_return_if_fail(type_name != NULL);		index = rcm_lookup_type_by_name(type_name);	type = g_slist_nth_data(ConnectionTypesSList,index);	if(type == NULL)		return;		widget = lookup_widget(ConnectionsWindow, "ConnectionArgumentsEntry");	g_return_if_fail(widget != NULL);		gtk_entry_set_text(GTK_ENTRY(widget),type->Arguments);}voidon_PropertyNoneSort_toggled            (GtkToggleButton *togglebutton,                                        gpointer         user_data){	GtkWidget* ascchk;	GtkWidget* deschk;	GtkWidget* typchk;	GtkWidget* nonchk;		ascchk = lookup_widget(PropertiesDialog,"PropertyAscendingSort");	deschk = lookup_widget(PropertiesDialog,"PropertyDescendingSort");	typchk = lookup_widget(PropertiesDialog,"PropertyTypeSort");	nonchk = lookup_widget(PropertiesDialog,"PropertyNoneSort");		g_return_if_fail(ascchk != NULL || deschk != NULL || typchk != NULL || nonchk != NULL);		if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(nonchk)))		return;		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ascchk),FALSE);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(deschk),FALSE);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(typchk),FALSE);}voidon_PropertyTypeSort_toggled            (GtkToggleButton *togglebutton,                                        gpointer         user_data){	GtkWidget* ascchk;	GtkWidget* deschk;	GtkWidget* typchk;	GtkWidget* nonchk;		ascchk = lookup_widget(PropertiesDialog,"PropertyAscendingSort");	deschk = lookup_widget(PropertiesDialog,"PropertyDescendingSort");	typchk = lookup_widget(PropertiesDialog,"PropertyTypeSort");	nonchk = lookup_widget(PropertiesDialog,"PropertyNoneSort");	g_return_if_fail(ascchk != NULL || deschk != NULL || typchk != NULL || nonchk != NULL);		if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(typchk)))		return;	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ascchk),FALSE);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(deschk),FALSE);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(nonchk),FALSE);}voidon_PropertyDescendingSort_toggled      (GtkToggleButton *togglebutton,                                        gpointer         user_data){	GtkWidget* ascchk;	GtkWidget* deschk;	GtkWidget* typchk;	GtkWidget* nonchk;		ascchk = lookup_widget(PropertiesDialog,"PropertyAscendingSort");	deschk = lookup_widget(PropertiesDialog,"PropertyDescendingSort");	typchk = lookup_widget(PropertiesDialog,"PropertyTypeSort");	nonchk = lookup_widget(PropertiesDialog,"PropertyNoneSort");		g_return_if_fail(ascchk != NULL || deschk != NULL || typchk != NULL || nonchk != NULL);		if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(deschk)))		return;	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ascchk),FALSE);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(nonchk),FALSE);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(typchk),FALSE);}voidon_PropertyAscendingSort_toggled       (GtkToggleButton *togglebutton,                                        gpointer         user_data){	GtkWidget* ascchk;	GtkWidget* deschk;	GtkWidget* typchk;	GtkWidget* nonchk;		ascchk = lookup_widget(PropertiesDialog,"PropertyAscendingSort");	deschk = lookup_widget(PropertiesDialog,"PropertyDescendingSort");	typchk = lookup_widget(PropertiesDialog,"PropertyTypeSort");	nonchk = lookup_widget(PropertiesDialog,"PropertyNoneSort");		g_return_if_fail(ascchk != NULL || deschk != NULL || typchk != NULL || nonchk != NULL);		if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ascchk)))		return;		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(nonchk),FALSE);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(deschk),FALSE);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(typchk),FALSE);}voidon_PropertyCloseBtn_clicked            (GtkButton       *button,                                        gpointer         user_data){	GtkWidget* ascchk;	GtkWidget* deschk;	GtkWidget* typchk;	GtkWidget* nonchk;	GtkWidget* terminal;	GtkWidget* arguments;	GtkWidget* usernames;	GConfClient *gconf_client = NULL;		gtk_widget_hide(PropertiesDialog);		ascchk = lookup_widget(PropertiesDialog,"PropertyAscendingSort");	deschk = lookup_widget(PropertiesDialog,"PropertyDescendingSort");	typchk = lookup_widget(PropertiesDialog,"PropertyTypeSort");	nonchk = lookup_widget(PropertiesDialog,"PropertyNoneSort");	terminal = lookup_widget(PropertiesDialog,"PropertyTerminalEntry");	arguments = lookup_widget(PropertiesDialog,"PropertyTerminalArgumentsEntry");	usernames = lookup_widget(PropertiesDialog,"PropertyShowUserNames");		TerminalProgram = (gchar*)gtk_entry_get_text(GTK_ENTRY(terminal));	TerminalProgramOptions = (gchar*)gtk_entry_get_text(GTK_ENTRY(arguments));		if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ascchk)))	{		if(SortOption != SORT_ASCENDING)		{			rcm_ascending_sort();			SortOption = SORT_ASCENDING;		}	}	else if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(deschk)))	{		if(SortOption != SORT_DESCENDING)		{			rcm_descending_sort();			SortOption = SORT_DESCENDING;		}	}	else if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(typchk)))	{		if(SortOption != SORT_TYPE)		{			rcm_type_sort();			SortOption = SORT_TYPE;		}	}	else if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(nonchk)))	{		if(SortOption != SORT_ASCENDING)		{			SortOption = SORT_ASCENDING;		}	}	DisplayUsernameInMainWindow = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(usernames));	rcm_update_main_window();	gconf_client = gconf_client_get_default ();	gconf_client_set_int(gconf_client,GCONF_RCM_SORTING_OPTION,SortOption,NULL);	g_object_unref (gconf_client);}voidon_PropertyCancelBtn_clicked           (GtkButton       *button,                                        gpointer         user_data){	gtk_widget_hide(PropertiesDialog);}voidon_popup_execute_activated             (GtkMenuItem     *menuitem,                                        gpointer         user_data){	on_TbExecuteBtn_clicked(NULL,NULL);}voidon_popup_edit_activated                (GtkMenuItem     *menuitem,                                        gpointer         user_data){	on_TbPropertiesBtn_clicked(NULL,NULL);}voidon_popup_delete_activated              (GtkMenuItem     *menuitem,                                        gpointer         user_data){	on_TbDeleteBtn_clicked(NULL,NULL);}

⌨️ 快捷键说明

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