void xgtk_builder_object_unref(GtkBuilder **b) { g_assert(b != 0); g_assert(GTK_IS_BUILDER(*b)); g_object_unref(G_OBJECT(*b)); *b = NULL; }
static void gb_slider_add_child (GtkBuildable *buildable, GtkBuilder *builder, GObject *child, const gchar *type) { GbSliderPosition position = GB_SLIDER_NONE; g_assert (GTK_IS_BUILDABLE (buildable)); g_assert (GTK_IS_BUILDER (builder)); g_assert (G_IS_OBJECT (child)); if (!GTK_IS_WIDGET (child)) { g_warning ("Child \"%s\" must be of type GtkWidget.", g_type_name (G_OBJECT_TYPE (child))); return; } if (ide_str_equal0 (type, "bottom")) position = GB_SLIDER_BOTTOM; else if (ide_str_equal0 (type, "top")) position = GB_SLIDER_TOP; else if (ide_str_equal0 (type, "left")) position = GB_SLIDER_LEFT; else if (ide_str_equal0 (type, "right")) position = GB_SLIDER_RIGHT; gtk_container_add_with_properties (GTK_CONTAINER (buildable), GTK_WIDGET (child), "position", position, NULL); }
static gboolean gb_shortcuts_dialog_custom_tag_start (GtkBuildable *buildable, GtkBuilder *builder, GObject *child, const gchar *tagname, GMarkupParser *parser, gpointer *data) { g_assert (GTK_IS_BUILDABLE (buildable)); g_assert (GTK_IS_BUILDER (builder)); g_assert (tagname != NULL); g_assert (parser != NULL); g_assert (data != NULL); if (g_strcmp0 (tagname, "views") == 0) { ViewsParserData *parser_data; parser_data = g_slice_new0 (ViewsParserData); parser_data->self = g_object_ref (buildable); parser_data->builder = g_object_ref (builder); parser_data->stack = g_queue_new (); parser_data->column_image_size_groups = g_queue_new (); parser_data->column_desc_size_groups = g_queue_new (); *parser = ViewsParser; *data = parser_data; return TRUE; } return FALSE; }
static void gstyle_slidein_add_child (GtkBuildable *buildable, GtkBuilder *builder, GObject *child, const gchar *type) { GstyleSlidein *self = (GstyleSlidein *)buildable; g_assert (GSTYLE_SLIDEIN (self)); g_assert (GTK_IS_BUILDER (builder)); g_assert (G_IS_OBJECT (child)); if (!GTK_IS_WIDGET (child)) { g_warning ("Attempt to add a child of type \"%s\" to a \"%s\"", G_OBJECT_TYPE_NAME (child), G_OBJECT_TYPE_NAME (self)); return; } if (type != NULL && g_strcmp0 (type, "slide") == 0) gstyle_slidein_add_slide (GSTYLE_SLIDEIN (buildable), GTK_WIDGET (child)); else if (type == NULL) GTK_CONTAINER_CLASS (gstyle_slidein_parent_class)->add (GTK_CONTAINER (buildable), GTK_WIDGET (child)); else GTK_BUILDER_WARN_INVALID_CHILD_TYPE (buildable, type); }
static void xfce_about_license (GtkBuilder *builder, GObject *buffer) { GObject *dialog; GObject *object; static gboolean initial = TRUE; g_return_if_fail (GTK_IS_BUILDER (builder)); g_return_if_fail (GTK_IS_TEXT_BUFFER (buffer)); object = gtk_builder_get_object (builder, "license-textview"); gtk_text_view_set_buffer (GTK_TEXT_VIEW (object), GTK_TEXT_BUFFER (buffer)); dialog = gtk_builder_get_object (builder, "license-dialog"); if (initial) { g_signal_connect (G_OBJECT (dialog), "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), NULL); object = gtk_builder_get_object (builder, "license-close-button"); g_signal_connect_swapped (G_OBJECT (object), "clicked", G_CALLBACK (gtk_widget_hide), dialog); object = gtk_builder_get_object (builder, "window"); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (object)); initial = FALSE; } gtk_widget_show (GTK_WIDGET (dialog)); }
GuMenuGui* menugui_init(GtkBuilder* builder) { g_return_val_if_fail(GTK_IS_BUILDER(builder), NULL); GuMenuGui* m = g_new0(GuMenuGui, 1); m->menu_projcreate = GTK_MENU_ITEM( gtk_builder_get_object(builder, "menu_projcreate")); m->menu_projopen = GTK_MENU_ITEM( gtk_builder_get_object(builder, "menu_projopen")); m->menu_projclose = GTK_MENU_ITEM( gtk_builder_get_object(builder, "menu_projclose")); m->menu_cut = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_cut")); m->menu_copy = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_copy")); #ifdef WIN32 // Please do NOT enable for nix, it has no place on a free OS ;) GtkWidget* donate = gtk_image_menu_item_new_with_label("Support this Project"); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(donate), GTK_WIDGET(gtk_image_new_from_stock( GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_MENU))); GtkWidget* helpmenu = GTK_WIDGET(gtk_builder_get_object(builder, "menu11")); gtk_menu_prepend(GTK_MENU(helpmenu), donate); gtk_signal_connect_object(GTK_OBJECT(donate), "activate", GTK_SIGNAL_FUNC(on_menu_donate_activate), NULL); #endif /* TODO: There has to be a better way than this.. (bug 246) GtkSettings *settings = gtk_settings_get_default(); gchar *iconsizes; g_object_get(settings, "gtk-icon-sizes", &iconsizes, NULL); if (iconsizes != NULL) { printf("%s\n", iconsizes); }*/ #ifdef WIN32 // The 2 non-stock menu items have their pixel size values set // to the default 16x16 in GLADE. The normal icon-size value is // normally set by the GTK theme in gtkrc. For themes using // non-default icon sizes or Windows, this 16x16 value will be // wrong. This code sets it to match the gtkrc file that we // supply with the Windows builds: GtkWidget* export = gtk_image_menu_item_get_image( GTK_IMAGE_MENU_ITEM(gtk_builder_get_object(builder, "menu_export"))); GtkWidget* update = gtk_image_menu_item_get_image( GTK_IMAGE_MENU_ITEM(gtk_builder_get_object(builder, "menu_update"))); gtk_image_set_pixel_size(GTK_IMAGE(export), 13); gtk_image_set_pixel_size(GTK_IMAGE(update), 13); #endif return m; }
void onButtonClicked(GtkWidget* widget, gpointer* data) { if (GTK_IS_BUILDER(data)) { GtkBuilder* builder = GTK_BUILDER(data); GtkWidget* window = GTK_WIDGET(gtk_builder_get_object(builder, "mainWindow")); if (exit_confirm(GTK_WIDGET(window))) { onDestoryed(widget, data); } } }
/* * gel_ui_builder_connect_signal_from_def: * @ui: A #GtkBuilder. * @def: A #GelSignalDef with signal definition * @data: (allow-none): Userdata to pass to callback. * Not used if def.data is not %NULL * * Connects the signal from @def on @ui parameter for g_signal_connect() * If def.data is %NULL, the @data parameter is used as an alternative userdata * for callback * * Returns: %TRUE is successful, %FALSE otherwise. */ gboolean gel_ui_builder_connect_signal_from_def(GtkBuilder *ui, GelSignalDef def, gpointer data) { g_return_val_if_fail(GTK_IS_BUILDER(ui), FALSE); // FIXME: Check other parameters gboolean ret; _ui_signal_connect_from_def(ui, def, data, ret); return ret; }
static void validate (GtkWidget *dialog) { GtkBuilder *builder; GtkWidget *widget; GtkTreeModel *model; GtkTreeIter tree_iter; gboolean valid = FALSE, iter_valid = FALSE; g_return_if_fail (dialog != NULL); builder = g_object_get_data (G_OBJECT (dialog), "builder"); g_return_if_fail (builder != NULL); g_return_if_fail (GTK_IS_BUILDER (builder)); widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes")); model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget)); iter_valid = gtk_tree_model_get_iter_first (model, &tree_iter); while (iter_valid) { char *addr = NULL, *next_hop = NULL; guint32 prefix = 0; gint64 metric = -1; /* Address */ if (!utils_tree_model_get_address (model, &tree_iter, COL_ADDRESS, AF_INET, TRUE, &addr, NULL)) goto done; g_free (addr); /* Prefix */ if (!utils_tree_model_get_ip4_prefix (model, &tree_iter, COL_PREFIX, TRUE, &prefix, NULL)) goto done; /* Don't allow zero prefix for now - that's not supported in libnm-util */ if (prefix == 0) goto done; /* Next hop (optional) */ if (!utils_tree_model_get_address (model, &tree_iter, COL_NEXT_HOP, AF_INET, FALSE, &next_hop, NULL)) goto done; g_free (next_hop); /* Metric (optional) */ if (!utils_tree_model_get_int64 (model, &tree_iter, COL_METRIC, 0, G_MAXUINT32, FALSE, &metric, NULL)) goto done; iter_valid = gtk_tree_model_iter_next (model, &tree_iter); } valid = TRUE; done: widget = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button")); gtk_widget_set_sensitive (widget, valid); }
GuTabmanagerGui* tabmanagergui_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuTabmanagerGui* tm = g_new0 (GuTabmanagerGui, 1); tm->notebook = GTK_NOTEBOOK (gtk_builder_get_object (builder, "tab_notebook")); g_object_set (tm->notebook, "tab-border", 0, NULL); tm->unsavednr = 0; return tm; }
/** * gtk_buildable_parser_finished: * @buildable: a #GtkBuildable * @builder: a #GtkBuilder * * Called when the builder finishes the parsing of a * <link linkend="BUILDER-UI">GtkBuilder UI definition</link>. * Note that this will be called once for each time * gtk_builder_add_from_file() or gtk_builder_add_from_string() * is called on a builder. * * Since: 2.12 **/ void gtk_buildable_parser_finished (GtkBuildable *buildable, GtkBuilder *builder) { GtkBuildableIface *iface; g_return_if_fail (GTK_IS_BUILDABLE (buildable)); g_return_if_fail (GTK_IS_BUILDER (builder)); iface = GTK_BUILDABLE_GET_IFACE (buildable); if (iface->parser_finished) (* iface->parser_finished) (buildable, builder); }
void empathy_account_widget_handle_params (McAccount *account, GtkBuilder *gui, const gchar *first_widget, ...) { va_list args; g_return_if_fail (MC_IS_ACCOUNT (account)); g_return_if_fail (GTK_IS_BUILDER (gui)); va_start (args, first_widget); account_widget_handle_params_valist (account, gui, first_widget, args); va_end (args); }
/** * gtk_buildable_add_child: * @buildable: a #GtkBuildable * @builder: a #GtkBuilder * @child: child to add * @type: (allow-none): kind of child or %NULL * * Adds a child to @buildable. @type is an optional string * describing how the child should be added. * * Since: 2.12 **/ void gtk_buildable_add_child (GtkBuildable *buildable, GtkBuilder *builder, GObject *child, const gchar *type) { GtkBuildableIface *iface; g_return_if_fail (GTK_IS_BUILDABLE (buildable)); g_return_if_fail (GTK_IS_BUILDER (builder)); iface = GTK_BUILDABLE_GET_IFACE (buildable); g_return_if_fail (iface->add_child != NULL); (* iface->add_child) (buildable, builder, child, type); }
/** * gtk_buildable_custom_finished: * @buildable: a #GtkBuildable * @builder: a #GtkBuilder * @child: (allow-none): child object or %NULL for non-child tags * @tagname: the name of the tag * @data: user data created in custom_tag_start * * This is similar to gtk_buildable_parser_finished() but is * called once for each custom tag handled by the @buildable. * * Since: 2.12 **/ void gtk_buildable_custom_finished (GtkBuildable *buildable, GtkBuilder *builder, GObject *child, const gchar *tagname, gpointer data) { GtkBuildableIface *iface; g_return_if_fail (GTK_IS_BUILDABLE (buildable)); g_return_if_fail (GTK_IS_BUILDER (builder)); iface = GTK_BUILDABLE_GET_IFACE (buildable); if (iface->custom_finished) (* iface->custom_finished) (buildable, builder, child, tagname, data); }
/** * gtk_buildable_construct_child: * @buildable: A #GtkBuildable * @builder: #GtkBuilder used to construct this object * @name: name of child to construct * * Constructs a child of @buildable with the name @name. * * #GtkBuilder calls this function if a "constructor" has been * specified in the UI definition. * * Returns: (transfer full): the constructed child * * Since: 2.12 **/ GObject * gtk_buildable_construct_child (GtkBuildable *buildable, GtkBuilder *builder, const gchar *name) { GtkBuildableIface *iface; g_return_val_if_fail (GTK_IS_BUILDABLE (buildable), NULL); g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); g_return_val_if_fail (name != NULL, NULL); iface = GTK_BUILDABLE_GET_IFACE (buildable); g_return_val_if_fail (iface->construct_child != NULL, NULL); return (* iface->construct_child) (buildable, builder, name); }
static void validate (GtkWidget *dialog) { GtkBuilder *builder; GtkWidget *widget; GtkTreeModel *model; GtkTreeIter tree_iter; gboolean valid = FALSE, iter_valid = FALSE; g_return_if_fail (dialog != NULL); builder = g_object_get_data (G_OBJECT (dialog), "builder"); g_return_if_fail (builder != NULL); g_return_if_fail (GTK_IS_BUILDER (builder)); widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes")); model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget)); iter_valid = gtk_tree_model_get_iter_first (model, &tree_iter); while (iter_valid) { struct in6_addr dest, next_hop; guint prefix = 0, metric = 0; /* Address */ if (!get_one_addr (model, &tree_iter, COL_ADDRESS, TRUE, &dest)) goto done; /* Prefix */ if (!get_one_int (model, &tree_iter, COL_PREFIX, 128, TRUE, &prefix)) goto done; /* Next hop (optional) */ if (!get_one_addr (model, &tree_iter, COL_NEXT_HOP, FALSE, &next_hop)) goto done; /* Metric (optional) */ if (!get_one_int (model, &tree_iter, COL_METRIC, G_MAXUINT32, FALSE, &metric)) goto done; iter_valid = gtk_tree_model_iter_next (model, &tree_iter); } valid = TRUE; done: widget = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button")); gtk_widget_set_sensitive (widget, valid); }
/** * gtk_buildable_get_internal_child: * @buildable: a #GtkBuildable * @builder: a #GtkBuilder * @childname: name of child * * Get the internal child called @childname of the @buildable object. * * Returns: (transfer none): the internal child of the buildable object * * Since: 2.12 **/ GObject * gtk_buildable_get_internal_child (GtkBuildable *buildable, GtkBuilder *builder, const gchar *childname) { GtkBuildableIface *iface; g_return_val_if_fail (GTK_IS_BUILDABLE (buildable), NULL); g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); g_return_val_if_fail (childname != NULL, NULL); iface = GTK_BUILDABLE_GET_IFACE (buildable); if (!iface->get_internal_child) return NULL; return (* iface->get_internal_child) (buildable, builder, childname); }
/** * gtk_buildable_set_buildable_property: * @buildable: a #GtkBuildable * @builder: a #GtkBuilder * @name: name of property * @value: value of property * * Sets the property name @name to @value on the @buildable object. * * Since: 2.12 **/ void gtk_buildable_set_buildable_property (GtkBuildable *buildable, GtkBuilder *builder, const gchar *name, const GValue *value) { GtkBuildableIface *iface; g_return_if_fail (GTK_IS_BUILDABLE (buildable)); g_return_if_fail (GTK_IS_BUILDER (builder)); g_return_if_fail (name != NULL); g_return_if_fail (value != NULL); iface = GTK_BUILDABLE_GET_IFACE (buildable); if (iface->set_buildable_property) (* iface->set_buildable_property) (buildable, builder, name, value); else g_object_set_property (G_OBJECT (buildable), name, value); }
GuInfoscreenGui* infoscreengui_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuInfoscreenGui* is = g_new0 (GuInfoscreenGui, 1); is->viewport = GTK_VIEWPORT (gtk_builder_get_object (builder, "preview_vport")); is->errorpanel = GTK_WIDGET(gtk_builder_get_object (builder, "errorpanel")); is->drawarea = GTK_WIDGET (gtk_builder_get_object (builder, "preview_draw")); is->header = GTK_LABEL (gtk_builder_get_object (builder, "error_header")); is->image = GTK_IMAGE (gtk_builder_get_object (builder, "error_image")); is->details = GTK_LABEL (gtk_builder_get_object (builder, "error_details")); return is; }
/** * gtk_buildable_custom_tag_start: * @buildable: a #GtkBuildable * @builder: a #GtkBuilder used to construct this object * @child: (allow-none): child object or %NULL for non-child tags * @tagname: name of tag * @parser: (out): a #GMarkupParser structure to fill in * @data: (out): return location for user data that will be passed in * to parser functions * * This is called for each unknown element under <child>. * * Returns: %TRUE if a object has a custom implementation, %FALSE * if it doesn't. * * Since: 2.12 **/ gboolean gtk_buildable_custom_tag_start (GtkBuildable *buildable, GtkBuilder *builder, GObject *child, const gchar *tagname, GMarkupParser *parser, gpointer *data) { GtkBuildableIface *iface; g_return_val_if_fail (GTK_IS_BUILDABLE (buildable), FALSE); g_return_val_if_fail (GTK_IS_BUILDER (builder), FALSE); g_return_val_if_fail (tagname != NULL, FALSE); iface = GTK_BUILDABLE_GET_IFACE (buildable); g_return_val_if_fail (iface->custom_tag_start != NULL, FALSE); return (* iface->custom_tag_start) (buildable, builder, child, tagname, parser, data); }
static GObject * egg_search_bar_get_internal_child (GtkBuildable *buildable, GtkBuilder *builder, const gchar *childname) { EggSearchBar *self = (EggSearchBar *)buildable; EggSearchBarPrivate *priv = egg_search_bar_get_instance_private (self); g_assert (GTK_IS_BUILDABLE (buildable)); g_assert (EGG_IS_SEARCH_BAR (self)); g_assert (GTK_IS_BUILDER (builder)); g_assert (childname != NULL); if (g_strcmp0 (childname, "entry") == 0) return G_OBJECT (priv->entry); else if (g_strcmp0 (childname, "revealer") == 0) return G_OBJECT (priv->revealer); return NULL; }
static void xfce_about_vendor (GtkBuilder *builder) { gchar *contents; gchar *filename; GObject *object; gsize length; g_return_if_fail (GTK_IS_BUILDER (builder)); filename = g_build_filename (DATADIR, "vendorinfo", NULL); if (g_file_get_contents (filename, &contents, &length, NULL)) { if (length > 0) { if (g_utf8_validate(contents, length, NULL)) { object = gtk_builder_get_object (builder, "vendor-buffer"); gtk_text_buffer_set_text (GTK_TEXT_BUFFER (object), contents, length); object = gtk_builder_get_object (builder, "vendor-label"); gtk_label_set_text (GTK_LABEL (object), VENDOR_INFO); object = gtk_builder_get_object (builder, "vendor-tab"); gtk_widget_show (GTK_WIDGET (object)); } else { g_critical ("\"%s\" is not UTF-8 valid", filename); } } g_free (contents); } else { g_message ("No vendor information found in \"%s\".", filename); } g_free (filename); }
GuBiblio* biblio_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuBiblio* b = g_new0 (GuBiblio, 1); b->progressbar = GTK_PROGRESS_BAR (gtk_builder_get_object (builder, "bibprogressbar")); b->progressmon = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "bibprogressmon")); b->list_biblios = GTK_LIST_STORE (gtk_builder_get_object (builder, "list_biblios")); b->filenm_label = GTK_LABEL (gtk_builder_get_object (builder, "bibfilenm")); b->refnr_label = GTK_LABEL (gtk_builder_get_object (builder, "bibrefnr")); b->list_filter = GTK_ENTRY (gtk_builder_get_object (builder, "biblio_filter")); b->biblio_treeview = GTK_TREE_VIEW (gtk_builder_get_object (builder, "bibtreeview")); b->progressval = 0.0; return b; }
static void gb_shortcuts_dialog_custom_finished (GtkBuildable *buildable, GtkBuilder *builder, GObject *child, const gchar *tagname, gpointer user_data) { g_assert (GB_IS_SHORTCUTS_DIALOG (buildable)); g_assert (GTK_IS_BUILDER (builder)); g_assert (tagname != NULL); if (g_strcmp0 (tagname, "views") == 0) { ViewsParserData *parser_data = user_data; g_object_unref (parser_data->self); g_object_unref (parser_data->builder); g_queue_free_full (parser_data->stack, (GDestroyNotify)g_object_unref); g_queue_free_full (parser_data->column_image_size_groups, (GDestroyNotify)g_object_unref); g_queue_free_full (parser_data->column_desc_size_groups, (GDestroyNotify)g_object_unref); g_slice_free (ViewsParserData, parser_data); } }
GuTemplate* template_init (GtkBuilder* builder) { g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL); GuTemplate* t = g_new0 (GuTemplate, 1); t->templatewindow = GTK_WINDOW (gtk_builder_get_object (builder, "templatewindow")); t->templateview = GTK_TREE_VIEW (gtk_builder_get_object (builder, "template_treeview")); t->list_templates = GTK_LIST_STORE (gtk_builder_get_object (builder, "list_templates")); t->template_label = GTK_LABEL (gtk_builder_get_object (builder, "template_label")); t->template_add = GTK_WIDGET (gtk_builder_get_object (builder, "template_add")); t->template_remove = GTK_WIDGET (gtk_builder_get_object (builder, "template_remove")); t->template_open = GTK_WIDGET (gtk_builder_get_object (builder, "template_open")); t->template_render = GTK_CELL_RENDERER_TEXT ( gtk_builder_get_object (builder, "template_renderer")); t->template_col = GTK_TREE_VIEW_COLUMN ( gtk_builder_get_object (builder, "template_column")); gtk_tree_view_column_set_sort_column_id (t->template_col, 0); return t; }
void ip6_routes_dialog_update_setting (GtkWidget *dialog, NMSettingIP6Config *s_ip6) { GtkBuilder *builder; GtkWidget *widget; GtkTreeModel *model; GtkTreeIter tree_iter; gboolean iter_valid; g_return_if_fail (dialog != NULL); g_return_if_fail (s_ip6 != NULL); builder = g_object_get_data (G_OBJECT (dialog), "builder"); g_return_if_fail (builder != NULL); g_return_if_fail (GTK_IS_BUILDER (builder)); widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes")); model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget)); iter_valid = gtk_tree_model_get_iter_first (model, &tree_iter); nm_setting_ip6_config_clear_routes (s_ip6); while (iter_valid) { struct in6_addr dest, next_hop; guint prefix = 0, metric = 0; NMIP6Route *route; /* Address */ if (!get_one_addr (model, &tree_iter, COL_ADDRESS, TRUE, &dest)) { g_warning ("%s: IPv6 address missing or invalid!", __func__); goto next; } /* Prefix */ if (!get_one_int (model, &tree_iter, COL_PREFIX, 128, TRUE, &prefix)) { g_warning ("%s: IPv6 prefix missing or invalid!", __func__); goto next; } /* Next hop (optional) */ memset (&next_hop, 0, sizeof (struct in6_addr)); if (!get_one_addr (model, &tree_iter, COL_NEXT_HOP, FALSE, &next_hop)) { g_warning ("%s: IPv6 next hop invalid!", __func__); goto next; } /* Metric (optional) */ if (!get_one_int (model, &tree_iter, COL_METRIC, G_MAXUINT32, FALSE, &metric)) { g_warning ("%s: IPv6 metric invalid!", __func__); goto next; } route = nm_ip6_route_new (); nm_ip6_route_set_dest (route, &dest); nm_ip6_route_set_prefix (route, prefix); nm_ip6_route_set_next_hop (route, &next_hop); nm_ip6_route_set_metric (route, metric); nm_setting_ip6_config_add_route (s_ip6, route); nm_ip6_route_unref (route); next: iter_valid = gtk_tree_model_iter_next (model, &tree_iter); } widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_ignore_auto_routes")); g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)), NULL); widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_never_default")); g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_NEVER_DEFAULT, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)), NULL); }
gboolean onWindowDeleteEvent (GtkWidget *widget, GdkEvent *event, gpointer user_data) { g_return_val_if_fail(GTK_IS_BUILDER(user_data), FALSE); GtkBuilder* builder = GTK_BUILDER(user_data); GtkWidget* window = GTK_WIDGET(gtk_builder_get_object(builder, "mainWindow")); return !exit_confirm(GTK_WIDGET(window)); }
void ip4_routes_dialog_update_setting (GtkWidget *dialog, NMSettingIPConfig *s_ip4) { GtkBuilder *builder; GtkWidget *widget; GtkTreeModel *model; GtkTreeIter tree_iter; gboolean iter_valid; g_return_if_fail (dialog != NULL); g_return_if_fail (s_ip4 != NULL); builder = g_object_get_data (G_OBJECT (dialog), "builder"); g_return_if_fail (builder != NULL); g_return_if_fail (GTK_IS_BUILDER (builder)); widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes")); model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget)); iter_valid = gtk_tree_model_get_iter_first (model, &tree_iter); nm_setting_ip_config_clear_routes (s_ip4); while (iter_valid) { char *addr = NULL, *next_hop = NULL; guint32 prefix = 0; gint64 metric = -1; NMIPRoute *route; /* Address */ if (!utils_tree_model_get_address (model, &tree_iter, COL_ADDRESS, AF_INET, TRUE, &addr, NULL)) { g_warning ("%s: IPv4 address missing or invalid!", __func__); goto next; } /* Prefix */ if (!utils_tree_model_get_ip4_prefix (model, &tree_iter, COL_PREFIX, TRUE, &prefix, NULL)) { g_warning ("%s: IPv4 prefix/netmask missing or invalid!", __func__); g_free (addr); goto next; } /* Next hop (optional) */ if (!utils_tree_model_get_address (model, &tree_iter, COL_NEXT_HOP, AF_INET, FALSE, &next_hop, NULL)) { g_warning ("%s: IPv4 next hop invalid!", __func__); g_free (addr); goto next; } /* Metric (optional) */ if (!utils_tree_model_get_int64 (model, &tree_iter, COL_METRIC, 0, G_MAXUINT32, FALSE, &metric, NULL)) { g_warning ("%s: IPv4 metric invalid!", __func__); g_free (addr); g_free (next_hop); goto next; } route = nm_ip_route_new (AF_INET, addr, prefix, next_hop, metric, NULL); nm_setting_ip_config_add_route (s_ip4, route); nm_ip_route_unref (route); g_free (addr); g_free (next_hop); next: iter_valid = gtk_tree_model_iter_next (model, &tree_iter); } widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_ignore_auto_routes")); g_object_set (s_ip4, NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)), NULL); widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_never_default")); g_object_set (s_ip4, NM_SETTING_IP_CONFIG_NEVER_DEFAULT, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)), NULL); }
GummiGui* gui_init(GtkBuilder* builder) { g_return_val_if_fail(GTK_IS_BUILDER(builder), NULL); GtkWidget* hpaned; gint i = 0, wx = 0, wy = 0, width = 0, height = 0; GummiGui* g = g_new0(GummiGui, 1); g->builder = builder; g->mainwindow = GTK_WINDOW(gtk_builder_get_object(builder, "mainwindow")); g->toolbar = GTK_WIDGET(gtk_builder_get_object(builder, "maintoolbar")); g->statusbar = GTK_STATUSBAR(gtk_builder_get_object(builder, "statusbar")); g->rightpane = GTK_BOX(gtk_builder_get_object(builder, "rightpanebox")); g->previewoff = GTK_TOGGLE_TOOL_BUTTON( gtk_builder_get_object(builder, "tool_previewoff")); g->errorview = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "errorview")); g->errorbuff = gtk_text_view_get_buffer(GTK_TEXT_VIEW(g->errorview)); g_object_ref(g->errorbuff); g->menu_spelling = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(builder, "menu_spelling")); g->menu_snippets = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(builder, "menu_snippets")); g->menu_toolbar = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(builder, "menu_toolbar")); g->menu_statusbar = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(builder, "menu_statusbar")); g->menu_rightpane = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(builder, "menu_rightpane")); g->statusid = gtk_statusbar_get_context_id(GTK_STATUSBAR(g->statusbar), "Gummi"); g->recent[0] = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_recent1")); g->recent[1] = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_recent2")); g->recent[2] = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_recent3")); g->recent[3] = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_recent4")); g->recent[4] = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_recent5")); g->docstatswindow = GTK_WIDGET(gtk_builder_get_object(builder, "docstatswindow")); g->menu_runbibtex = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_runbibtex")); g->menu_runmakeindex = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_runmakeindex")); g->bibcompile = GTK_WIDGET(gtk_builder_get_object(builder, "bibcompile")); g->insens_widget_size = sizeof(insens_widgets_str) / sizeof(gchar*); g->insens_widgets = g_new0(GtkWidget*, g->insens_widget_size); for (i = 0; i < g->insens_widget_size; ++i) g->insens_widgets[i] = GTK_WIDGET(gtk_builder_get_object(builder, insens_widgets_str[i])); g->menugui = menugui_init(builder); g->importgui = importgui_init(builder); g->previewgui = previewgui_init(builder); g->searchgui = searchgui_init(builder); g->prefsgui = prefsgui_init(g->mainwindow); g->snippetsgui = snippetsgui_init(g->mainwindow); g->tabmanagergui = tabmanagergui_init(builder); g->infoscreengui = infoscreengui_init(builder); g->projectgui = projectgui_init(builder); gchar* icon_file = g_build_filename(GUMMI_DATA, "icons", "icon.png", NULL); gtk_window_set_icon_from_file(g->mainwindow, icon_file, NULL); g_free(icon_file); if (config_get_value("window_maximized")) { gtk_window_maximize(g->mainwindow); } else { gtk_window_resize(g->mainwindow, atoi(config_get_value("mainwindow_w")), atoi(config_get_value("mainwindow_h"))); } gtk_window_set_default_size(g->mainwindow, atoi(config_get_value("mainwindow_w")), atoi(config_get_value("mainwindow_h"))); wx = atoi(config_get_value("mainwindow_x")); wy = atoi(config_get_value("mainwindow_y")); if (wx && wy) gtk_window_move(g->mainwindow, wx, wy); else gtk_window_set_position(g->mainwindow, GTK_WIN_POS_CENTER); /* Set errorview font */ GtkCssProvider* css = gtk_css_provider_new(); GtkStyleContext* context = gtk_widget_get_style_context( GTK_WIDGET(g->errorview)); gtk_style_context_add_provider(context, GTK_STYLE_PROVIDER(css), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); const gchar* style = "* { font: Monospace 8; }"; gtk_css_provider_load_from_data(css, style, -1, NULL); /* Set pane size */ gtk_window_get_size(g->mainwindow, &width, &height); hpaned = GTK_WIDGET(gtk_builder_get_object(builder, "hpaned")); gtk_paned_set_position(GTK_PANED(hpaned), (width / 2)); #ifndef USE_GTKSPELL gtk_widget_set_sensitive(GTK_WIDGET(g->menu_spelling), FALSE); #else if (config_get_value("spelling")) gtk_check_menu_item_set_active(g->menu_spelling, TRUE); #endif if (config_get_value("snippets")) { gtk_check_menu_item_set_active(g->menu_snippets, TRUE); gtk_widget_show(GTK_WIDGET(g->menu_snippets)); } if (config_get_value("toolbar")) { gtk_check_menu_item_set_active(g->menu_toolbar, TRUE); gtk_widget_show(g->toolbar); } else { config_set_value("toolbar", "False"); gtk_check_menu_item_set_active(g->menu_toolbar, FALSE); gtk_widget_hide(g->toolbar); } if (config_get_value("statusbar")) { gtk_check_menu_item_set_active(g->menu_statusbar, TRUE); gtk_widget_show(GTK_WIDGET(g->statusbar)); } else { config_set_value("statusbar", "False"); gtk_check_menu_item_set_active(g->menu_statusbar, FALSE); gtk_widget_hide(GTK_WIDGET(g->statusbar)); } if (config_get_value("rightpane")) { gtk_check_menu_item_set_active(g->menu_rightpane, TRUE); gtk_widget_show(GTK_WIDGET(g->rightpane)); } else { config_set_value("compile_status", "False"); gtk_toggle_tool_button_set_active(g->previewoff, FALSE); gtk_widget_hide(GTK_WIDGET(g->rightpane)); } g->menu_autosync = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(builder, "menu_autosync")); if (latex_can_synctex() && config_get_value("synctex")) { gtk_widget_set_sensitive(GTK_WIDGET(g->menu_autosync), TRUE); gboolean async = latex_use_synctex(); gtk_check_menu_item_set_active(g->menu_autosync, (async ? TRUE : FALSE)); } if (!config_get_value("compile_status")) gtk_toggle_tool_button_set_active(g->previewoff, TRUE); g->recent_list[0] = g_strdup(config_get_value("recent1")); g->recent_list[1] = g_strdup(config_get_value("recent2")); g->recent_list[2] = g_strdup(config_get_value("recent3")); g->recent_list[3] = g_strdup(config_get_value("recent4")); g->recent_list[4] = g_strdup(config_get_value("recent5")); display_recent_files(g); return g; }