Example #1
0
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;
}
Example #2
0
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;
}
Example #4
0
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);
}
Example #5
0
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));
}
Example #6
0
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;
}
Example #7
0
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);
        }
    }
}
Example #8
0
/*
 * 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);
}
Example #10
0
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;
}
Example #11
0
/**
 * 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);
}
Example #13
0
/**
 * 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);
}
Example #14
0
/**
 * 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);
}
Example #15
0
/**
 * 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);
}
Example #17
0
/**
 * 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);
}
Example #18
0
/**
 * 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);
}
Example #19
0
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;
}
Example #20
0
/**
 * 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 &lt;child&gt;.
 * 
 * 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);
}
Example #21
0
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;
}
Example #22
0
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);
}
Example #23
0
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);
    }
}
Example #25
0
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);
}
Example #27
0
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);
}
Example #29
0
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;
}