void host_aliases_check_fields (void) { GtkWidget *address, *aliases, *ok_button; GtkTextBuffer *buffer; GtkTextIter start, end; gboolean valid; const gchar *addr; gchar *str; gint address_type; address = gst_dialog_get_widget (tool->main_dialog, "host_alias_address"); aliases = gst_dialog_get_widget (tool->main_dialog, "host_alias_list"); ok_button = gst_dialog_get_widget (tool->main_dialog, "host_alias_ok_button"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (aliases)); gtk_text_buffer_get_bounds (buffer, &start, &end); str = gtk_text_buffer_get_text (buffer, &start, &end, TRUE); addr = gtk_entry_get_text (GTK_ENTRY (address)); address_type = gst_filter_check_ip_address (addr); valid = ((address_type == GST_ADDRESS_IPV4 || address_type == GST_ADDRESS_IPV6) && (str && *str)); gtk_widget_set_sensitive (ok_button, valid); g_free (str); }
GtkWidget* group_settings_dialog_new (OobsGroup *group) { GtkWidget *dialog, *widget; const gchar *name; gchar *title; dialog = gst_dialog_get_widget (tool->main_dialog, "group_settings_dialog"); name = oobs_group_get_name (group); if (!name) { g_object_set_data (G_OBJECT (dialog), "is_new", GINT_TO_POINTER (FALSE)); gtk_window_set_title (GTK_WINDOW (dialog), _("New group")); widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_gid"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), group_settings_find_new_gid ()); } else { g_object_set_data (G_OBJECT (dialog), "is_new", GINT_TO_POINTER (FALSE)); title = g_strdup_printf (_("Group '%s' Properties"), name); gtk_window_set_title (GTK_WINDOW (dialog), title); g_free (title); widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_gid"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), oobs_group_get_gid (group)); } widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_name"); set_entry_text (widget, name); group_members_table_set_from_group (group); return dialog; }
static void host_aliases_dialog_prepare (OobsStaticHost *host) { GtkWidget *address, *aliases; GtkTextBuffer *buffer; GList *alias_list; gchar *alias_str; address = gst_dialog_get_widget (tool->main_dialog, "host_alias_address"); aliases = gst_dialog_get_widget (tool->main_dialog, "host_alias_list"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (aliases)); if (host) { gtk_entry_set_text (GTK_ENTRY (address), oobs_static_host_get_ip_address (host)); alias_list = oobs_static_host_get_aliases (host); alias_str = concatenate_aliases (alias_list, "\n"); g_list_free (alias_list); gtk_text_buffer_set_text (buffer, alias_str, -1); g_free (alias_str); } else { gtk_entry_set_text (GTK_ENTRY (address), ""); gtk_text_buffer_set_text (buffer, "", -1); } host_aliases_check_fields (); }
static void user_toggled_cb (GtkCellRendererToggle *renderer, gchar *path, gpointer user_data) { GstSharesTool *tool; GtkWidget *table; GtkTreeModel *model; GtkTreeIter iter; OobsUser *user; gboolean active; tool = GST_SHARES_TOOL (user_data); table = gst_dialog_get_widget (GST_TOOL (tool)->main_dialog, "users_table"); model = gtk_tree_view_get_model (GTK_TREE_VIEW (table)); if (! gtk_tree_model_get_iter_from_string (model, &iter, path)) return; gtk_tree_model_get (model, &iter, COL_ACTIVE, &active, COL_USER, &user, -1); /* we want to invert the state */ active ^= 1; if (!active) { oobs_smb_config_delete_user_password (OOBS_SMB_CONFIG (tool->smb_config), user); } else { GtkWidget *dialog; gint response; dialog = gst_dialog_get_widget (GST_TOOL (tool)->main_dialog, "smb_password_dialog"); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (GST_TOOL (tool)->main_dialog)); response = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_hide (dialog); if (response == GTK_RESPONSE_OK) { GtkWidget *entry; const gchar *password; entry = gst_dialog_get_widget (GST_TOOL (tool)->main_dialog, "smb_password_entry"); password = gtk_entry_get_text (GTK_ENTRY (entry)); oobs_smb_config_set_user_password (OOBS_SMB_CONFIG (tool->smb_config), user, password); } } active = oobs_smb_config_user_has_password (OOBS_SMB_CONFIG (tool->smb_config), user); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COL_ACTIVE, active, -1); g_object_unref (user); gst_tool_commit_async (GST_TOOL (tool), tool->smb_config, NULL, NULL, NULL); }
void group_settings_dialog_get_data (OobsGroup *group) { GtkWidget *widget; widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_name"); oobs_group_set_name (group, gtk_entry_get_text (GTK_ENTRY (widget))); widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_gid"); oobs_group_set_gid (group, gtk_spin_button_get_value (GTK_SPIN_BUTTON (widget))); group_members_table_save (group); }
static void host_aliases_dialog_save (GtkTreeIter *iter) { GtkTreeView *list; GtkTreeModel *model; GtkWidget *address, *aliases; GtkTextBuffer *buffer; OobsStaticHost *host; GList *aliases_list; address = gst_dialog_get_widget (tool->main_dialog, "host_alias_address"); aliases = gst_dialog_get_widget (tool->main_dialog, "host_alias_list"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (aliases)); aliases_list = split_buffer_content (buffer); if (iter) { OobsListIter *list_iter; list = GST_NETWORK_TOOL (tool)->host_aliases_list; model = gtk_tree_view_get_model (list); gtk_tree_model_get (model, iter, COL_HOST_OBJECT, &host, COL_HOST_ITER, &list_iter, -1); oobs_static_host_set_ip_address (host, gtk_entry_get_text (GTK_ENTRY (address))); oobs_static_host_set_aliases (host, aliases_list); host_aliases_modify_at_iter (iter, host, list_iter); oobs_list_iter_free (list_iter); g_object_unref (host); } else { OobsList *list; OobsListIter list_iter; list = oobs_hosts_config_get_static_hosts (GST_NETWORK_TOOL (tool)->hosts_config); host = oobs_static_host_new (gtk_entry_get_text (GTK_ENTRY (address)), aliases_list); oobs_list_append (list, &list_iter); oobs_list_set (list, &list_iter, host); host_aliases_add (host, &list_iter); } gst_tool_commit (tool, OOBS_OBJECT (GST_NETWORK_TOOL (tool)->hosts_config)); }
void users_table_create (GstTool *tool) { GtkWidget *table; GtkCellRenderer *renderer; table = gst_dialog_get_widget (tool->main_dialog, "users_table"); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (table), FALSE); renderer = gtk_cell_renderer_toggle_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (table), -1, "", renderer, "active", COL_ACTIVE, NULL); g_signal_connect (renderer, "toggled", G_CALLBACK (user_toggled_cb), tool); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (table), -1, "", renderer, users_table_text_cell_data_func, g_object_ref (tool), (GDestroyNotify) g_object_unref); }
gboolean table_get_iter_with_path (const gchar *path, GtkTreeIter *iter) { GtkWidget *table = gst_dialog_get_widget (tool->main_dialog, "shares_table"); GtkTreeModel *model; gboolean valid, found; gchar *iter_path; if (!path) return FALSE; found = FALSE; model = gtk_tree_view_get_model (GTK_TREE_VIEW (table)); valid = gtk_tree_model_get_iter_first (model, iter); while (valid) { gtk_tree_model_get (model, iter, COL_PATH, &iter_path, -1); if (strcmp (iter_path, path) == 0) { found = TRUE; valid = FALSE; } else valid = gtk_tree_model_iter_next (model, iter); g_free (iter_path); } return found; }
void privileges_table_save (OobsUser *user) { GtkWidget *table; GtkTreeModel *model, *child_model; GtkTreeIter iter; OobsGroup *group; gboolean valid, member; table = gst_dialog_get_widget (tool->main_dialog, "user_privileges"); model = gtk_tree_view_get_model (GTK_TREE_VIEW (table)); child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); valid = gtk_tree_model_get_iter_first (child_model, &iter); while (valid) { gtk_tree_model_get (child_model, &iter, COL_GROUP, &group, COL_MEMBER, &member, -1); if (member) oobs_group_add_user (group, user); else oobs_group_remove_user (group, user); valid = gtk_tree_model_iter_next (child_model, &iter); } }
void privileges_table_set_from_profile (GstUserProfile *profile) { GtkWidget *table; GtkTreeModel *model, *child_model; GtkTreeIter iter; gboolean valid; OobsGroup *group; table = gst_dialog_get_widget (tool->main_dialog, "user_privileges"); model = gtk_tree_view_get_model (GTK_TREE_VIEW (table)); child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); valid = gtk_tree_model_get_iter_first (child_model, &iter); while (valid) { gtk_tree_model_get (child_model, &iter, COL_GROUP, &group, -1); gtk_list_store_set (GTK_LIST_STORE (child_model), &iter, COL_MEMBER, find_group_in_profile (group, profile), -1); g_object_unref (group); valid = gtk_tree_model_iter_next (child_model, &iter); } }
static void check_name (gchar **primary_text, gchar **secondary_text, gpointer data) { OobsGroup *group = OOBS_GROUP (data); GtkWidget *widget; const gchar *name; widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_name"); name = gtk_entry_get_text (GTK_ENTRY (widget)); if (strlen (name) < 1) { *primary_text = g_strdup (_("Group name is empty")); *secondary_text = g_strdup (_("A group name must be specified.")); } else if (is_group_root (group) && strcmp (name, "root") != 0) { *primary_text = g_strdup (_("Group name of the administrator group user should not be modified")); *secondary_text = g_strdup (_("This would leave the system unusable.")); } else if (!is_valid_name (name)) { *primary_text = g_strdup (_("Group name has invalid characters")); *secondary_text = g_strdup (_("Please set a valid group name consisting of " "a lower case letter followed by lower case " "letters and numbers.")); } else if (group_settings_dialog_group_is_new () && group_exists (name)) { *primary_text = g_strdup_printf (_("Group \"%s\" already exists"), name); *secondary_text = g_strdup (_("Please select a different user name.")); } }
static void setup_groups_combo (void) { GtkWidget *combo = gst_dialog_get_widget (tool->main_dialog, "user_settings_group"); GtkWidget *table = gst_dialog_get_widget (tool->main_dialog, "groups_table"); GtkCellRenderer *cell; GtkTreeModel *model; cell = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT (combo), cell, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT (combo), cell, "text", 0, NULL); model = gtk_tree_view_get_model (GTK_TREE_VIEW (table)); gtk_combo_box_set_model (GTK_COMBO_BOX (combo), model); g_object_unref (model); }
GtkTreeView* host_aliases_list_create (GstTool *tool) { GtkWidget *list; GstTablePopup *table_popup; GtkTreeModel *model; list = gst_dialog_get_widget (tool->main_dialog, "host_aliases_list"); model = host_aliases_model_create (); gtk_tree_view_set_model (GTK_TREE_VIEW (list), model); g_object_unref (model); add_list_columns (GTK_TREE_VIEW (list)); table_popup = g_new0 (GstTablePopup, 1); table_popup->setup = NULL; table_popup->properties = on_host_aliases_properties_clicked; table_popup->popup = popup_menu_create (list); g_signal_connect (G_OBJECT (list), "button-press-event", G_CALLBACK (on_table_button_press), (gpointer) table_popup); g_signal_connect (G_OBJECT (list), "popup_menu", G_CALLBACK (on_table_popup_menu), (gpointer) table_popup); return GTK_TREE_VIEW (list); }
void table_create (GstTool *tool) { GtkWidget *table = gst_dialog_get_widget (tool->main_dialog, "shares_table"); GtkWidget *popup; GtkTreeSelection *selection; GtkTreeModel *model; model = create_table_model (); gtk_tree_view_set_model (GTK_TREE_VIEW (table), model); g_object_unref (G_OBJECT (model)); add_table_columns (GTK_TREE_VIEW (table)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (table)); g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (on_shares_table_selection_changed), NULL); popup = popup_menu_create (GTK_TREE_VIEW (table)); g_signal_connect (G_OBJECT (table), "button-press-event", G_CALLBACK (on_shares_table_button_press), (gpointer) popup); g_signal_connect (G_OBJECT (table), "popup_menu", G_CALLBACK (on_shares_table_popup_menu), (gpointer) popup); /* Drag and Drop stuff */ gtk_drag_dest_unset (table); gtk_drag_dest_set (table, GTK_DEST_DEFAULT_ALL, drop_types, sizeof (drop_types) / sizeof (drop_types[0]), GDK_ACTION_COPY); g_signal_connect (G_OBJECT (table), "drag_data_received", G_CALLBACK (on_shares_dragged_folder), NULL); }
void privileges_table_set_from_user (OobsUser *user) { GtkWidget *table; GtkTreeModel *model, *child_model; GtkTreeIter iter; gboolean valid; OobsGroup *group; GList *users; table = gst_dialog_get_widget (tool->main_dialog, "user_privileges"); model = gtk_tree_view_get_model (GTK_TREE_VIEW (table)); child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); valid = gtk_tree_model_get_iter_first (child_model, &iter); while (valid) { gtk_tree_model_get (child_model, &iter, COL_GROUP, &group, -1); users = oobs_group_get_users (group); gtk_list_store_set (GTK_LIST_STORE (child_model), &iter, COL_MEMBER, (g_list_find (users, user) != NULL), -1); g_list_free (users); g_object_unref (group); valid = gtk_tree_model_iter_next (child_model, &iter); } }
GtkTreeView* ifaces_list_create (GstTool *tool) { GtkWidget *table = gst_dialog_get_widget (tool->main_dialog, "interfaces_list"); GstTablePopup *table_popup; GtkTreeSelection *selection; GtkTreeModel *model; model = GST_NETWORK_TOOL (tool)->interfaces_model; gtk_tree_view_set_model (GTK_TREE_VIEW (table), model); gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (GTK_LIST_STORE (model)), ifaces_list_sort, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (GTK_LIST_STORE (model)), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_DESCENDING); add_list_columns (GTK_TREE_VIEW (table), model); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (table)); g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (on_table_selection_changed), NULL); table_popup = g_new0 (GstTablePopup, 1); table_popup->properties = on_iface_properties_clicked; table_popup->popup = popup_menu_create (table); g_signal_connect (G_OBJECT (table), "button-press-event", G_CALLBACK (on_table_button_press), (gpointer) table_popup); g_signal_connect (G_OBJECT (table), "popup_menu", G_CALLBACK (on_table_popup_menu), (gpointer) table_popup); return GTK_TREE_VIEW (table); }
static void e_tz_map_set_location_text (ETzMap *tzmap, const gchar *name) { GtkWidget *location_combo; GtkTreeModel *model; GtkTreeIter iter; gboolean valid; gchar *location; location_combo = gst_dialog_get_widget (tzmap->tool->main_dialog, "location_combo"); model = gtk_combo_box_get_model (GTK_COMBO_BOX (location_combo)); valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter); while (valid) { gtk_tree_model_get (model, &iter, 0, &location, -1); if (strcmp (location, name) == 0) { gtk_combo_box_set_active_iter (GTK_COMBO_BOX (location_combo), &iter); valid = FALSE; } else { valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (model), &iter); } g_free (location); } }
void on_table_selection_changed (GtkTreeSelection *selection, gpointer data) { GtkWidget *properties; properties = gst_dialog_get_widget (tool->main_dialog, "properties_button"); gtk_widget_set_sensitive (properties, gtk_tree_selection_get_selected_rows (selection, NULL) != 0); }
GtkWidget* share_nfs_add_hosts_dialog_prepare (void) { GtkWidget *dialog = gst_dialog_get_widget (tool->main_dialog, "share_nfs_add_dialog"); share_nfs_add_combo_elements (); return dialog; }
static void share_nfs_create_size_group (void) { GtkSizeGroup *group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); GtkWidget *widget; widget = gst_dialog_get_widget (tool->main_dialog, "share_nfs_host_type_label"); gtk_size_group_add_widget (group, widget); widget = gst_dialog_get_widget (tool->main_dialog, "share_nfs_hostname_label"); gtk_size_group_add_widget (group, widget); widget = gst_dialog_get_widget (tool->main_dialog, "share_nfs_address_label"); gtk_size_group_add_widget (group, widget); widget = gst_dialog_get_widget (tool->main_dialog, "share_nfs_network_label"); gtk_size_group_add_widget (group, widget); }
void table_clear (void) { GtkWidget *table = gst_dialog_get_widget (tool->main_dialog, "shares_table"); GtkTreeModel *model; model = gtk_tree_view_get_model (GTK_TREE_VIEW (table)); gtk_list_store_clear (GTK_LIST_STORE (model)); }
void table_delete_share_at_iter (GtkTreeIter *iter) { GtkWidget *table = gst_dialog_get_widget (tool->main_dialog, "shares_table"); GtkTreeModel *model; model = gtk_tree_view_get_model (GTK_TREE_VIEW (table)); gtk_list_store_remove (GTK_LIST_STORE (model), iter); }
gboolean group_settings_dialog_group_is_new (void) { GtkWidget *dialog; gboolean is_new; dialog = gst_dialog_get_widget (tool->main_dialog, "group_settings_dialog"); is_new = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dialog), "is_new")); return is_new; }
static void set_text_buffers_callback (void) { GtkWidget *textview; GtkTextBuffer *buffer; textview = gst_dialog_get_widget (tool->main_dialog, "host_alias_list"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview)); g_signal_connect (G_OBJECT (buffer), "changed", G_CALLBACK (on_host_aliases_dialog_changed), NULL); }
void privileges_table_clear (void) { GtkWidget *table; GtkTreeModel *model, *child_model; table = gst_dialog_get_widget (tool->main_dialog, "user_privileges"); model = gtk_tree_view_get_model (GTK_TREE_VIEW (table)); child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); gtk_list_store_clear (GTK_LIST_STORE (child_model)); }
static void init_filters (void) { gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "host_alias_address")), GST_FILTER_IP); gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_address")), GST_FILTER_IPV4); gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_netmask")), GST_FILTER_IPV4); gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_gateway")), GST_FILTER_IPV4); gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_local_address")), GST_FILTER_IPV4); gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_remote_address")), GST_FILTER_IPV4); gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_phone_number")), GST_FILTER_PHONE); gst_filter_init (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "connection_dial_prefix")), GST_FILTER_PHONE); }
/* Helpers */ static void show_settings (void) { GtkWidget *dialog, *table; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; OobsService *service; gchar *script, *title; table = gst_dialog_get_widget (tool->main_dialog, "services_list"); dialog = gst_dialog_get_widget (tool->main_dialog, "service_settings_dialog"); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (table)); if (!gtk_tree_selection_get_selected (selection, &model, &iter)) return; gtk_tree_model_get (model, &iter, COL_OBJECT, &service, -1); title = g_strdup_printf (_("Settings for service \"%s\""), oobs_service_get_name (service)); gtk_window_set_title (GTK_WINDOW (dialog), title); g_free (title); service_settings_table_set_service (GST_SERVICES_TOOL (tool)->services_config, service); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (tool->main_dialog)); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_hide (dialog); service_settings_table_save (service); oobs_object_commit (GST_SERVICES_TOOL (tool)->services_config); }
static void setup_shells_combo (GstUsersTool *tool) { GtkWidget *combo; GtkTreeModel *model; combo = gst_dialog_get_widget (GST_TOOL (tool)->main_dialog, "user_settings_shell"); model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING)); gtk_combo_box_set_model (GTK_COMBO_BOX (combo), model); g_object_unref (model); gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (combo), 0); }
ETzMap * e_tz_map_new (GstTool *tool) { ETzMap *tzmap; GPtrArray *locs; TzLocation *tzl; GtkWidget *location_combo; int i; tzmap = g_new0 (ETzMap, 1); tzmap->tool = GST_TOOL (tool); tzmap->tzdb = tz_load_db (); if (!tzmap->tzdb) g_error ("Unable to load system timezone database."); tzmap->map = e_map_new (); if (!tzmap->map) g_error ("Unable to create map widget."); gtk_widget_set_events (GTK_WIDGET (tzmap->map), gtk_widget_get_events (GTK_WIDGET (tzmap->map)) | GDK_LEAVE_NOTIFY_MASK | GDK_VISIBILITY_NOTIFY_MASK); locs = tz_get_locations (tzmap->tzdb); for (i = 0; i < locs->len; i++) { tzl = g_ptr_array_index (locs, i); e_map_add_point (tzmap->map, NULL, tzl->longitude, tzl->latitude, TZ_MAP_POINT_NORMAL_RGBA); } g_signal_connect (G_OBJECT (tzmap->map), "map-event", G_CALLBACK (map), tzmap); g_signal_connect (G_OBJECT (tzmap->map), "unmap-event", G_CALLBACK (unmap), tzmap); g_signal_connect(G_OBJECT (tzmap->map), "motion-notify-event", G_CALLBACK (motion), (gpointer) tzmap); g_signal_connect(G_OBJECT(tzmap->map), "button-press-event", G_CALLBACK (button_pressed), (gpointer) tzmap); g_signal_connect(G_OBJECT (tzmap->map), "enter-notify-event", G_CALLBACK (in_map), (gpointer) tzmap); g_signal_connect(G_OBJECT (tzmap->map), "leave-notify-event", G_CALLBACK (out_map), (gpointer) tzmap); location_combo = gst_dialog_get_widget (tzmap->tool->main_dialog, "location_combo"); g_signal_connect (G_OBJECT (location_combo), "changed", G_CALLBACK (update_map), (gpointer) tzmap); return tzmap; }
OobsShare* table_get_share_at_iter (GtkTreeIter *iter, OobsListIter **list_iter) { GtkWidget *table = gst_dialog_get_widget (tool->main_dialog, "shares_table"); GtkTreeModel *model; OobsShare *share; model = gtk_tree_view_get_model (GTK_TREE_VIEW (table)); gtk_tree_model_get (model, iter, COL_SHARE, &share, COL_ITER, list_iter, -1); return share; }