Ejemplo n.º 1
0
/**
 * Create a box with a nice bold title and content slightly indented.
 * All content is packed vertically in a GtkVBox.  The paddingbox is
 * also packed in its parent.
 *
 * \param parent Parent widget to pack paddingbox in
 * \param fill Give all available space to padding box or not
 * \param title Title to display on top of the paddingbox
 */
GtkWidget *new_paddingbox_with_title (GtkWidget *parent, gboolean fill, const gchar *title)
{
    GtkWidget *vbox, *hbox, *paddingbox, *label;
	gchar* tmp_str;

    vbox = gtk_vbox_new ( FALSE, 6 );
    if ( GTK_IS_BOX(parent) )
    {
	gtk_box_pack_start ( GTK_BOX ( parent ), vbox,
			     fill, fill, 0);
    }

    /* Creating label */
    label = gtk_label_new ( NULL );
    gtk_misc_set_alignment ( GTK_MISC ( label ), 0, 1 );
    tmp_str = g_markup_printf_escaped ("<span weight=\"bold\">%s</span>", title );
    gtk_label_set_markup ( GTK_LABEL ( label ), tmp_str );
    g_free(tmp_str);
    gtk_box_pack_start ( GTK_BOX ( vbox ), label,
			 FALSE, FALSE, 0);
    gtk_widget_show ( label );

    /* Creating horizontal box */
    hbox = gtk_hbox_new ( FALSE, 0 );
    gtk_box_pack_start ( GTK_BOX ( vbox ), hbox,
			 fill, fill, 0);

    /* Some padding.  ugly but the HiG advises it this way ;-) */
    label = gtk_label_new ( "    " );
    gtk_box_pack_start ( GTK_BOX ( hbox ), label,
			 FALSE, FALSE, 0 );

    /* Then make the vbox itself */
    paddingbox = gtk_vbox_new ( FALSE, 6 );
    gtk_box_pack_start ( GTK_BOX ( hbox ), paddingbox,
			 TRUE, TRUE, 0);

    /* Put a label at the end to feed a new line */
    /*   label = gtk_label_new ( "    " ); */
    /*   gtk_box_pack_end ( GTK_BOX ( paddingbox ), label, */
    /* 		     FALSE, FALSE, 0 ); */

    if ( GTK_IS_BOX(parent) )
    {
	gtk_box_set_spacing ( GTK_BOX(parent), 18 );
    }

    return paddingbox;
}
Ejemplo n.º 2
0
void tab_completion_add_select_button(GtkWidget *entry, const gchar *title, gboolean folders_only)
{
	TabCompData *td;
	GtkWidget *parent;
	GtkWidget *hbox;

	td = g_object_get_data(G_OBJECT(entry), "tab_completion_data");

	if (!td) return;

	g_free(td->fd_title);
	td->fd_title = g_strdup(title);
	td->fd_folders_only = folders_only;

	if (td->fd_button) return;

	parent = (td->combo) ? td->combo : td->entry;

	hbox = gtk_widget_get_parent(parent);
	if (!GTK_IS_BOX(hbox)) return;

	td->fd_button = gtk_button_new_with_label("...");
	g_signal_connect(G_OBJECT(td->fd_button), "size_allocate",
			 G_CALLBACK(tab_completion_button_size_allocate), parent);
	g_signal_connect(G_OBJECT(td->fd_button), "clicked",
			 G_CALLBACK(tab_completion_select_pressed), td);

	gtk_box_pack_start(GTK_BOX(hbox), td->fd_button, FALSE, FALSE, 0);

	gtk_widget_show(td->fd_button);
}
Ejemplo n.º 3
0
void wxToggleButton::DoApplyWidgetStyle(GtkRcStyle *style)
{
    GTKApplyStyle(m_widget, style);
    GtkWidget* child = gtk_bin_get_child(GTK_BIN(m_widget));
    GTKApplyStyle(child, style);

#ifndef __WXGTK4__
    wxGCC_WARNING_SUPPRESS(deprecated-declarations)
    // for buttons with images, the path to the label is (at least in 2.12)
    // GtkButton -> GtkAlignment -> GtkHBox -> GtkLabel
    if ( GTK_IS_ALIGNMENT(child) )
    {
        GtkWidget* box = gtk_bin_get_child(GTK_BIN(child));
        if ( GTK_IS_BOX(box) )
        {
            wxGtkList list(gtk_container_get_children(GTK_CONTAINER(box)));
            for (GList* item = list; item; item = item->next)
            {
                GTKApplyStyle(GTK_WIDGET(item->data), style);
            }
        }
    }
    wxGCC_WARNING_RESTORE()
#endif
}
Ejemplo n.º 4
0
static GtkWidget *
get_label_from_container (GtkWidget *container)
{
  GtkWidget *label;
  GList *children, *tmp_list;

  if (!GTK_IS_CONTAINER (container))
    return NULL;

  children = gtk_container_get_children (GTK_CONTAINER (container));
  label = NULL;

  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next)
    {
      if (GTK_IS_LABEL (tmp_list->data))
        {
          label = tmp_list->data;
          break;
        }
      else if (GTK_IS_CELL_VIEW (tmp_list->data))
        {
          label = tmp_list->data;
          break;
        }
      else if (GTK_IS_BOX (tmp_list->data))
        {
          label = get_label_from_container (GTK_WIDGET (tmp_list->data));
          if (label)
            break;
        }
    }
  g_list_free (children);

  return label;
}
Ejemplo n.º 5
0
Archivo: gtk.c Proyecto: sk1p/darktable
void dt_ui_container_add_widget(dt_ui_t *ui, const dt_ui_container_t c, GtkWidget *w)
{
  //  if(!GTK_IS_BOX(ui->containers[c])) return;
  g_return_if_fail(GTK_IS_BOX(ui->containers[c]));
  switch(c)
  {
    /* if box is right lets pack at end for nicer alignment */
    case DT_UI_CONTAINER_PANEL_TOP_RIGHT:
    case DT_UI_CONTAINER_PANEL_CENTER_TOP_RIGHT:
    case DT_UI_CONTAINER_PANEL_CENTER_BOTTOM_RIGHT:
      gtk_box_pack_end(GTK_BOX(ui->containers[c]),w,FALSE,FALSE,2);
      break;

    /* if box is center we want it to fill as much as it can */
    case DT_UI_CONTAINER_PANEL_TOP_CENTER:
    case DT_UI_CONTAINER_PANEL_CENTER_TOP_CENTER:
    case DT_UI_CONTAINER_PANEL_CENTER_BOTTOM_CENTER:
    case DT_UI_CONTAINER_PANEL_BOTTOM:
      gtk_box_pack_start(GTK_BOX(ui->containers[c]),w,TRUE,TRUE,2);
      break;

    default:
    {
      gtk_box_pack_start(GTK_BOX(ui->containers[c]),w,FALSE,FALSE,2);
    }  break;
  }
  gtk_widget_show_all(w);
}
Ejemplo n.º 6
0
static GtkWidget*
get_label_from_container (GtkWidget *container)
{
  GtkWidget *label;
  GList *children, *tmp_list;

  if (!GTK_IS_CONTAINER (container))
    return NULL;
 
  children = gtk_container_get_children (GTK_CONTAINER (container));
  label = NULL;

  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next) 
    {
      if (GTK_IS_LABEL (tmp_list->data))
	{
           label = tmp_list->data;
           break;
	}
      /*
       * Get label from menu item in desktop background preferences
       * option menu. See bug #144084.
       */
      else if (GTK_IS_BOX (tmp_list->data))
        {
           label = get_label_from_container (GTK_WIDGET (tmp_list->data));
           if (label)
             break;
        }
    }
  g_list_free (children);

  return label;
}
Ejemplo n.º 7
0
void
glade_gtk_box_remove_child (GladeWidgetAdaptor * adaptor,
                            GObject * object, GObject * child)
{
  GladeWidget *gbox;
  gint size;
  gchar *special_child_type;

  g_return_if_fail (GTK_IS_BOX (object));
  g_return_if_fail (GTK_IS_WIDGET (child));

  gbox = glade_widget_get_from_gobject (object);

  special_child_type = g_object_get_data (child, "special-child-type");
  if (special_child_type && !strcmp (special_child_type, "center"))
    {
      GtkWidget *w;

      w = glade_placeholder_new ();
      g_object_set_data (G_OBJECT (w), "special-child-type", "center");
      gtk_box_set_center_widget (GTK_BOX (object), w);
      return;
    }

  gtk_container_remove (GTK_CONTAINER (object), GTK_WIDGET (child));

  if (glade_widget_superuser () == FALSE)
    {
      glade_widget_property_get (gbox, "size", &size);
      glade_widget_property_set (gbox, "size", size);
    }

  fix_response_id_on_child (gbox, child, FALSE);
}
Ejemplo n.º 8
0
/* consumes reference on icon */
static void _lxpanel_button_set_icon(GtkWidget* btn, FmIcon* icon, gint size)
{
    /* Locate the image within the button. */
    GtkWidget * child = gtk_bin_get_child(GTK_BIN(btn));
    GtkWidget * img = NULL;
    if (GTK_IS_IMAGE(child))
        img = child;
    else if (GTK_IS_BOX(child))
    {
        GList * children = gtk_container_get_children(GTK_CONTAINER(child));
        img = GTK_WIDGET(GTK_IMAGE(children->data));
        g_list_free(children);
    }

    if (img != NULL)
    {
        ImgData * data = (ImgData *) g_object_get_qdata(G_OBJECT(img), img_data_id);

        if (icon != data->icon || size != data->size) /* something was changed */
        {
            g_object_unref(data->icon);
            data->icon = icon;
            data->size = size;
            _gtk_image_set_from_file_scaled(img, data);
        }
        else
            g_object_unref(icon);
    }
    else
        g_object_unref(icon);
}
Ejemplo n.º 9
0
static void
glade_gtk_box_set_size (GObject * object, const GValue * value)
{
  GtkBox *box;
  GList *child, *children;
  guint new_size, old_size, i;

  box = GTK_BOX (object);
  g_return_if_fail (GTK_IS_BOX (box));

  if (glade_util_object_is_loading (object))
    return;

  children = gtk_container_get_children (GTK_CONTAINER (box));
  children = g_list_remove (children, gtk_box_get_center_widget (GTK_BOX (box)));

  old_size = g_list_length (children);
  new_size = g_value_get_int (value);

  if (old_size == new_size)
    {
      g_list_free (children);
      return;
    }

  /* Ensure placeholders first...
   */
  for (i = 0; i < new_size; i++)
    {
      if (g_list_length (children) < (i + 1))
        {
          GtkWidget *placeholder = glade_placeholder_new ();
          gint blank = glade_gtk_box_get_first_blank (box);

          gtk_container_add (GTK_CONTAINER (box), placeholder);
          gtk_box_reorder_child (box, placeholder, blank);
        }
    }

  /* The box has shrunk. Remove the widgets that are on those slots */
  for (child = g_list_last (children);
       child && old_size > new_size; child = g_list_previous (child))
    {
      GtkWidget *child_widget = child->data;

      /* Refuse to remove any widgets that are either GladeWidget objects
       * or internal to the hierarchic entity (may be a composite widget,
       * not all internal widgets have GladeWidgets).
       */
      if (glade_widget_get_from_gobject (child_widget) ||
          GLADE_IS_PLACEHOLDER (child_widget) == FALSE)
        continue;

      gtk_container_remove (GTK_CONTAINER (box), child_widget);
      old_size--;
    }
  g_list_free (children);

}
Ejemplo n.º 10
0
void
dialog_about (WBCGtk *wbcg)
{
	GtkWidget *w, *c;
	GList *children;
	AboutState *state;

	if (gnumeric_dialog_raise_if_exists (wbcg, ABOUT_KEY))
		return;

	state = g_new0 (AboutState, 1);

	w = g_object_new (GTK_TYPE_ABOUT_DIALOG,
			  "title", _("About Gnumeric"),
			  "version", GNM_VERSION_FULL,
			  "website", "http://www.gnumeric.org/",
			  "website-label", _("Visit the Gnumeric website"),
			  "logo-icon-name", "gnumeric",
			  "copyright", _("Copyright \xc2\xa9 1998-2014"),
			  "comments", _("Free, Fast, Accurate - Pick Any Three!"),
			  NULL);
	state->dialog = w;

	g_signal_connect (w, "response",
			  G_CALLBACK (gtk_widget_destroy), NULL);
	g_signal_connect_swapped (w, "destroy",
				  G_CALLBACK (free_state), state);

	c = gtk_dialog_get_content_area (GTK_DIALOG (w));
	children = gtk_container_get_children (GTK_CONTAINER (c));

	if (children && GTK_IS_BOX (children->data)) {
		GtkWidget *vbox = children->data;
		int height;
		PangoLayout *layout;

		state->anim_area = gtk_drawing_area_new ();
		layout = gtk_widget_create_pango_layout (state->anim_area, NULL);
		pango_layout_get_pixel_size (layout, NULL, &height);
		gtk_widget_set_size_request (state->anim_area, -1, 4 * height);
		g_object_unref (layout);

		g_signal_connect (state->anim_area, "draw",
				  G_CALLBACK (about_dialog_anim_draw),
				  state);

		gtk_box_pack_end (GTK_BOX (vbox), state->anim_area, TRUE, TRUE, 0);

		create_animation (state);

		state->timer = g_timeout_add (TIME_SLICE, about_dialog_timer, state);
	}
	g_list_free (children);

	gnumeric_keyed_dialog (wbcg, GTK_WINDOW (w), ABOUT_KEY);
	gtk_widget_show_all (w);
}
Ejemplo n.º 11
0
static void add_child(GtkWidget *parent, GtkWidget *child)
{
	if(GTK_IS_BOX(parent)) {
		gtk_box_pack_start(GTK_BOX(parent), child, TRUE, TRUE, 3);
	} else if(GTK_CONTAINER(parent)) {
		gtk_container_add(GTK_CONTAINER(parent), child);
	} else {
		fprintf(stderr, "failed to add child\n");
	}
}
Ejemplo n.º 12
0
void 
prop_dialog_add_raw_with_flags(PropDialog *dialog, GtkWidget *widget,
			       gboolean expand, gboolean fill)
{
  g_return_if_fail(GTK_IS_BOX(dialog->lastcont));

  dialog->curtable = NULL;
  if (!widget) return;
  gtk_box_pack_start(GTK_BOX(dialog->lastcont),widget, expand, fill, 0);
}
Ejemplo n.º 13
0
void CalendarDatePrivate::setParent(GtkWidget* parent) {
    if (NULL == parent || !GTK_IS_CONTAINER(parent) || NULL == m_actor) {
        return;
    }

    if (GTK_IS_BOX(parent)) {
        gtk_box_pack_start(GTK_BOX(parent), m_actor, TRUE, TRUE, 0);
    } else {
        gtk_container_add(GTK_CONTAINER(parent), m_actor);
    }
}
Ejemplo n.º 14
0
static void
do_align_left_widget (GtkWidget *widget, GtkSizeGroup **size_group)
{
  if (*size_group) {
    if (!GTK_IS_BOX (widget)) {
      gtk_size_group_add_widget (*size_group, widget);
      *size_group = NULL;
    }
    else
      do_align_left_widgets (widget, *size_group);
  }
}
Ejemplo n.º 15
0
void
gimp_toolbox_dnd_init (GimpToolbox *toolbox,
                       GtkWidget   *vbox)
{
  GimpContext *context = NULL;

  g_return_if_fail (GIMP_IS_TOOLBOX (toolbox));
  g_return_if_fail (GTK_IS_BOX (vbox));

  context = gimp_toolbox_get_context (toolbox);

  /* Before caling any dnd helper functions, setup the drag
   * destination manually since we want to handle all drag events
   * manually, otherwise we would not be able to give the drag handler
   * a chance to handle drag events
   */
  gtk_drag_dest_set (vbox,
                     0, NULL, 0,
                     GDK_ACTION_COPY | GDK_ACTION_MOVE);

  gimp_dnd_viewable_dest_add  (vbox,
                               GIMP_TYPE_LAYER,
                               gimp_toolbox_drop_drawable,
                               context);
  gimp_dnd_viewable_dest_add  (vbox,
                               GIMP_TYPE_LAYER_MASK,
                               gimp_toolbox_drop_drawable,
                               context);
  gimp_dnd_viewable_dest_add  (vbox,
                               GIMP_TYPE_CHANNEL,
                               gimp_toolbox_drop_drawable,
                               context);
  gimp_dnd_viewable_dest_add  (vbox,
                               GIMP_TYPE_TOOL_INFO,
                               gimp_toolbox_drop_tool,
                               context);
  gimp_dnd_viewable_dest_add  (vbox,
                               GIMP_TYPE_BUFFER,
                               gimp_toolbox_drop_buffer,
                               context);
  gimp_dnd_component_dest_add (vbox,
                               gimp_toolbox_drop_component,
                               context);
  gimp_dnd_uri_list_dest_add  (vbox,
                               gimp_toolbox_drop_uri_list,
                               context);
  gimp_dnd_pixbuf_dest_add    (vbox,
                               gimp_toolbox_drop_pixbuf,
                               context);
}
Ejemplo n.º 16
0
void
gimp_editor_set_box_style (GimpEditor *editor,
                           GtkBox     *box)
{
  GtkIconSize     button_icon_size;
  gint            button_spacing;
  GtkReliefStyle  button_relief;
  GList          *children;
  GList          *list;

  g_return_if_fail (GIMP_IS_EDITOR (editor));
  g_return_if_fail (GTK_IS_BOX (box));

  gtk_widget_style_get (GTK_WIDGET (editor),
                        "button-icon-size", &button_icon_size,
                        "button-spacing",   &button_spacing,
                        "button-relief",    &button_relief,
                        NULL);

  gtk_box_set_spacing (box, button_spacing);

  children = gtk_container_get_children (GTK_CONTAINER (box));

  for (list = children; list; list = g_list_next (list))
    {
      if (GTK_IS_BUTTON (list->data))
        {
          GtkWidget *child;

          gtk_button_set_relief (GTK_BUTTON (list->data), button_relief);

          child = gtk_bin_get_child (GTK_BIN (list->data));

          if (GTK_IS_IMAGE (child))
            {
              GtkIconSize  old_size;
              gchar       *stock_id;

              gtk_image_get_stock (GTK_IMAGE (child), &stock_id, &old_size);

              if (button_icon_size != old_size)
                gtk_image_set_from_stock (GTK_IMAGE (child),
                                          stock_id, button_icon_size);
            }
        }
    }

  g_list_free (children);
}
Ejemplo n.º 17
0
/**
 * gel_ui_container_replace_children:
 * @container: A #GtkContainer
 * @widget: (transfer full): A #GtkWidget
 *
 * Removes all children from @container using gel_ui_container_clear() and
 * then packs @widget into @container
 */
void
gel_ui_container_replace_children(GtkContainer *container, GtkWidget *widget)
{
	g_return_if_fail(GTK_IS_CONTAINER(container));
	g_return_if_fail(GTK_IS_WIDGET(widget));

	gtk_container_foreach(container, (GtkCallback) gtk_widget_destroy, NULL);
	if (GTK_IS_BOX(container))
		gtk_box_pack_start(GTK_BOX(container), widget, TRUE, TRUE, 0);
	else if (GTK_IS_GRID(container))
	{
		gtk_grid_attach(GTK_GRID(container), widget, 0, 0, 1, 1);
		g_object_set((GObject *) widget, "hexpand", TRUE, "vexpand", TRUE, NULL);
	}
}
Ejemplo n.º 18
0
static void 
gtk_tool_button_update_icon_spacing (GtkToolButton *button)
{
  GtkWidget *box;
  guint spacing;

  box = GTK_BIN (button->priv->button)->child;
  if (GTK_IS_BOX (box))
    {
      gtk_widget_style_get (GTK_WIDGET (button), 
			    "icon-spacing", &spacing,
			    NULL);
      gtk_box_set_spacing (GTK_BOX (box), spacing);      
    }
}
Ejemplo n.º 19
0
static void
find_entries_and_set_sensitive (GtkWidget * parent, gboolean sensitive)
{
    GList *list, *iter;

    list = gtk_container_get_children (GTK_CONTAINER (parent));

    for (iter = list; iter; iter = iter->next) {

        if (GTK_IS_ENTRY (iter->data)) {
            gtk_widget_set_sensitive (GTK_WIDGET (iter->data), sensitive);
        } else if (GTK_IS_BOX (iter->data)) {
            find_entries_and_set_sensitive (GTK_WIDGET (iter->data), sensitive);
        }
    }
}
Ejemplo n.º 20
0
void
gimp_enum_radio_frame_add (GtkFrame  *frame,
                           GtkWidget *widget,
                           gint       enum_value,
                           gboolean   below)
{
  GtkWidget *box;

  g_return_if_fail (GTK_IS_FRAME (frame));
  g_return_if_fail (GTK_IS_WIDGET (widget));

  box = gtk_bin_get_child (GTK_BIN (frame));

  g_return_if_fail (GTK_IS_BOX (box));

  gimp_enum_radio_box_add (GTK_BOX (box), widget, enum_value, below);
}
Ejemplo n.º 21
0
static void
brasero_file_chooser_find_pane (GtkWidget *child,
				gpointer footer)
{
	if (GTK_IS_PANED (child)) {
		GList *children_vbox;
		GList *iter_vbox;
		GtkWidget *vbox;

		vbox = gtk_paned_get_child2 (GTK_PANED (child));
		children_vbox = gtk_container_get_children (GTK_CONTAINER (vbox));
		for (iter_vbox = children_vbox; iter_vbox; iter_vbox = iter_vbox->next) {
			if (GTK_IS_BOX (iter_vbox->data) &&
                            gtk_orientable_get_orientation (GTK_ORIENTABLE (iter_vbox->data)) == GTK_ORIENTATION_HORIZONTAL) {
				GtkPackType packing;

				gtk_box_query_child_packing (GTK_BOX (vbox),
							     GTK_WIDGET (iter_vbox->data),
							     NULL,
							     NULL,
							     NULL,
							     &packing);

				if (packing == GTK_PACK_START) {
					GtkRequisition total_request, footer_request;

					gtk_widget_get_preferred_size (GTK_WIDGET (vbox),
								 &total_request, NULL);
					gtk_widget_get_preferred_size (GTK_WIDGET (iter_vbox->data),
								 &footer_request, NULL);
					*((gint *) footer) = total_request.height - footer_request.height;
					break;
				}
			}
		}
		g_list_free (children_vbox);
	}
	else if (GTK_IS_CONTAINER (child)) {
		gtk_container_foreach (GTK_CONTAINER (child),
				       brasero_file_chooser_find_pane,
				       footer);
	}
}
Ejemplo n.º 22
0
static void
he_check_button_style_set                         (GtkWidget *widget,
                                                 GtkStyle  *previous_style)
{
    guint horizontal_spacing, vertical_spacing, image_spacing;
    HeCheckButtonPrivate *priv = HE_CHECK_BUTTON_GET_PRIVATE (widget);

    if (GTK_WIDGET_CLASS (he_check_button_parent_class)->style_set)
        GTK_WIDGET_CLASS (he_check_button_parent_class)->style_set (widget, previous_style);

    /* Prevent infinite recursion when calling set_logical_font() and
     * set_logical_color() */
    if (priv->setting_style)
        return;

    /* Get horizontal-spacing style property from ourself */
    gtk_widget_style_get (widget, "horizontal-spacing", &horizontal_spacing, NULL);

    /* Get vertical-spacing style property of HildonButton from theme */
    GtkStyle *style = gtk_rc_get_style_by_paths (gtk_widget_get_settings (widget),
    		"*.*Button-finger", NULL, HILDON_TYPE_BUTTON);
    vertical_spacing = get_style_property_long (style, HILDON_TYPE_BUTTON, "vertical-spacing");

    /* Get image-spacing style property of HildonCheckButton from theme */
    style = gtk_rc_get_style_by_paths (gtk_widget_get_settings (widget),
    		NULL, "*.HildonCheckButton", HILDON_TYPE_CHECK_BUTTON);
    image_spacing = get_style_property_long (style, GTK_TYPE_BUTTON, "image-spacing");

    /* Setting values we got from above */
    if (GTK_IS_HBOX (priv->label_box)) {
        gtk_box_set_spacing (GTK_BOX (priv->label_box), horizontal_spacing);
    } else {
        gtk_box_set_spacing (GTK_BOX (priv->label_box), vertical_spacing);
    }

    if (GTK_IS_BOX (priv->hbox)) {
        gtk_box_set_spacing (priv->hbox, image_spacing);
    }

    set_logical_font (widget);
    set_logical_color (widget);
}
Ejemplo n.º 23
0
void
go_gtk_widget_replace (GtkWidget *victim, GtkWidget *replacement)
{
	GtkContainer *parent = GTK_CONTAINER (gtk_widget_get_parent (victim));

	if (GTK_IS_GRID (parent)) {
		int col, row, width, height;
		gtk_container_child_get (parent,
					 victim,
					 "left-attach", &col,
					 "top-attach", &row,
					 "width", &width,
					 "height", &height,
					 NULL);
		gtk_container_remove (parent, victim);
		gtk_grid_attach (GTK_GRID (parent), replacement,
				 col, row, width, height);
	} else if (GTK_IS_BOX (parent)) {
		GtkBox *box = GTK_BOX (parent);
		gboolean expand, fill;
		guint padding;
		GtkPackType pack_type;
		int pos;

		gtk_box_query_child_packing (box, victim,
					     &expand, &fill,
					     &padding, &pack_type);
		gtk_container_child_get (parent, victim,
					 "position", &pos,
					 NULL);
		gtk_container_remove (parent, victim);
		gtk_container_add (parent, replacement);
		gtk_box_set_child_packing (box, replacement,
					   expand, fill,
					   padding, pack_type);
		gtk_box_reorder_child (box, replacement, pos);
	} else {
		g_error ("Unsupported container: %s",
			 g_type_name_from_instance ((gpointer)parent));
	}
}
Ejemplo n.º 24
0
void wxButton::DoApplyWidgetStyle(GtkRcStyle *style)
{
    gtk_widget_modify_style(m_widget, style);
    GtkWidget *child = GTK_BIN(m_widget)->child;
    gtk_widget_modify_style(child, style);

    // for buttons with images, the path to the label is (at least in 2.12)
    // GtkButton -> GtkAlignment -> GtkHBox -> GtkLabel
    if ( GTK_IS_ALIGNMENT(child) )
    {
        GtkWidget *box = GTK_BIN(child)->child;
        if ( GTK_IS_BOX(box) )
        {
            for (GList* item = GTK_BOX(box)->children; item; item = item->next)
            {
                GtkBoxChild* boxChild = static_cast<GtkBoxChild*>(item->data);
                gtk_widget_modify_style(boxChild->widget, style);
            }
        }
    }
}
Ejemplo n.º 25
0
MidoratorEntry* midorator_entry_new(GtkWidget *parent) {
	GtkWidget *e = g_object_new(MIDORATOR_TYPE_ENTRY, NULL);
	gtk_entry_set_has_frame(GTK_ENTRY(e), false);
	if (parent) {
		gtk_widget_modify_base(e, GTK_STATE_NORMAL, &parent->style->bg[0]);
		gtk_widget_modify_base(e, GTK_STATE_ACTIVE, &parent->style->bg[0]);
		gtk_widget_modify_bg(e, GTK_STATE_NORMAL, &parent->style->bg[0]);
		gtk_widget_modify_bg(e, GTK_STATE_ACTIVE, &parent->style->bg[0]);
	}
	if (GTK_IS_BOX(parent)) {
		gtk_box_pack_start(GTK_BOX(parent), e, true, true, 0);
		gtk_widget_show(e);
		gtk_widget_grab_focus(e);
		gtk_box_reorder_child(GTK_BOX(parent), e, 0);
	} else if (GTK_IS_CONTAINER(parent)) {
		gtk_container_add(GTK_CONTAINER(parent), e);
		gtk_widget_show(e);
	}
	return MIDORATOR_ENTRY(e);
	//return (MidoratorEntry*)(e);
}
Ejemplo n.º 26
0
void wxToggleButton::DoApplyWidgetStyle(GtkRcStyle *style)
{
    GTKApplyStyle(m_widget, style);
    GtkWidget* child = gtk_bin_get_child(GTK_BIN(m_widget));
    GTKApplyStyle(child, style);

    // for buttons with images, the path to the label is (at least in 2.12)
    // GtkButton -> GtkAlignment -> GtkHBox -> GtkLabel
    if ( GTK_IS_ALIGNMENT(child) )
    {
        GtkWidget* box = gtk_bin_get_child(GTK_BIN(child));
        if ( GTK_IS_BOX(box) )
        {
            wxGtkList list(gtk_container_get_children(GTK_CONTAINER(box)));
            for (GList* item = list; item; item = item->next)
            {
                GTKApplyStyle(GTK_WIDGET(item->data), style);
            }
        }
    }
}
Ejemplo n.º 27
0
static void
gog_trend_line_populate_editor (GogObject *gobj,
				GOEditor *editor,
				GogDataAllocator *dalloc,
				GOCmdContext *cc)
{
	GtkWidget *w, *box;
	GogTrendLine *line = GOG_TREND_LINE (gobj);

	box = go_editor_get_page (editor, _("Properties"));
	if (!box)
		box = go_editor_get_page (editor, _("Details"));
	if (!box) {
		box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
		gtk_container_set_border_width (GTK_CONTAINER (box), 12);
		gtk_widget_show_all (box);
		go_editor_add_page (editor, box, _("Legend"));
	}
	w = gtk_check_button_new_with_mnemonic (_("_Show in Legend"));
	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
		gog_trend_line_has_legend (line));
	g_signal_connect (G_OBJECT (w),
		"toggled",
		G_CALLBACK (cb_show_in_legend), gobj);
	if (GTK_IS_BOX (box))
		gtk_box_pack_start (GTK_BOX (box), w, FALSE, FALSE, 0);
	else if (GTK_IS_GRID (box)) {
		GtkGrid *grid = GTK_GRID (box);
		gtk_grid_insert_row (grid, 1);
		gtk_grid_attach (grid, w, 0, 1, 2, 1);
	} else if (GTK_IS_CONTAINER (box))
		gtk_container_add (GTK_CONTAINER (box), w);
	else
		g_warning ("Unsupported container");
	gtk_widget_show (w);

	(GOG_OBJECT_CLASS (trend_line_parent_klass)->populate_editor) (gobj, editor, dalloc, cc);
}
Ejemplo n.º 28
0
/**
 * ea_calendar_helpers_get_view_widget_from:
 * @canvas_item: the canvas item for a event or a jump button
 *
 * Get the cal view widget contains the canvas_item.
 *
 * Returns: the cal view widget if exists
 **/
ECalendarView *
ea_calendar_helpers_get_cal_view_from (GnomeCanvasItem *canvas_item)
{
	GnomeCanvas *canvas;
	GtkWidget *view_widget = NULL;

	g_return_val_if_fail (canvas_item, NULL);
	g_return_val_if_fail ((E_IS_TEXT (canvas_item)) ||
		(GNOME_IS_CANVAS_ITEM (canvas_item)), NULL);

	/* canvas_item is the e_text for the event */
	/* canvas_item->canvas is the ECanvas for day view */
	/* parent of canvas_item->canvas is the EDayView or EWeekView widget */
	canvas = canvas_item->canvas;
	view_widget = gtk_widget_get_parent (GTK_WIDGET (canvas));

	if (view_widget && GTK_IS_BOX (view_widget))
		view_widget = gtk_widget_get_parent (view_widget);

	if (!view_widget || !E_IS_CALENDAR_VIEW (view_widget))
		return NULL;

	return E_CALENDAR_VIEW (view_widget);
}
Ejemplo n.º 29
0
static void deja_dup_config_photo_dialog_create_widgets (DejaDupConfigPhotoDialog* self) {
	const gchar* _tmp0_ = NULL;
	GtkLabel* _tmp1_;
	GtkLabel* _tmp2_;
	GtkLabel* label;
	GtkSwitch* _tmp3_;
	GtkSwitch* _tmp4_;
	const gchar* _tmp5_ = NULL;
	GtkLabel* _tmp6_;
	GtkLabel* _tmp7_;
	GtkLabel* description;
	GtkBox* _tmp8_;
	GtkBox* _tmp9_;
	GtkBox* hbox;
	GtkSwitch* _tmp10_;
	GtkBox* _tmp11_ = NULL;
	GtkBox* _tmp12_;
	GtkBox* content;
	DejaDupSimpleSettings* _tmp13_ = NULL;
	DejaDupSimpleSettings* settings;
	gboolean _tmp14_ = FALSE;
	gboolean value;
	GtkSwitch* _tmp15_;
	GtkSwitch* _tmp16_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _ ("Photo Stream");
	_tmp1_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp0_);
	_tmp2_ = g_object_ref_sink (_tmp1_);
	label = _tmp2_;
	_tmp3_ = (GtkSwitch*) gtk_switch_new ();
	_tmp4_ = g_object_ref_sink (_tmp3_);
	_g_object_unref0 (self->priv->button);
	self->priv->button = _tmp4_;
	_tmp5_ = _ ("Automatically upload photos and send them to all of you devices.");
	_tmp6_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp5_);
	_tmp7_ = g_object_ref_sink (_tmp6_);
	description = _tmp7_;
	g_object_set ((GObject*) description, "use-markup", TRUE, "xalign", 0.5f, NULL);
	_tmp8_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 20);
	_tmp9_ = g_object_ref_sink (_tmp8_);
	hbox = _tmp9_;
	gtk_box_pack_start (hbox, (GtkWidget*) label, FALSE, TRUE, (guint) 0);
	_tmp10_ = self->priv->button;
	gtk_box_pack_end (hbox, (GtkWidget*) _tmp10_, FALSE, FALSE, (guint) 0);
	_tmp11_ = gtk_dialog_get_content_area ((GtkDialog*) self);
	_tmp12_ = _g_object_ref0 (GTK_IS_BOX (_tmp11_) ? ((GtkBox*) _tmp11_) : NULL);
	content = _tmp12_;
	gtk_box_pack_start (content, (GtkWidget*) hbox, FALSE, TRUE, (guint) 0);
	gtk_box_set_spacing (content, 10);
	_tmp13_ = deja_dup_get_settings (DEJA_DUP_APPS_ROOT ".photo-stream");
	settings = _tmp13_;
	_tmp14_ = g_settings_get_boolean ((GSettings*) settings, DEJA_DUP_BACKUP_KEY);
	value = _tmp14_;
	_tmp15_ = self->priv->button;
	gtk_switch_set_active (_tmp15_, value);
	_tmp16_ = self->priv->button;
	g_signal_connect_object ((GObject*) _tmp16_, "notify::active", (GCallback) _deja_dup_config_photo_dialog_handle_toggled_g_object_notify, self, 0);
	gtk_dialog_add_button ((GtkDialog*) self, GTK_STOCK_CLOSE, (gint) GTK_RESPONSE_CLOSE);
	_g_object_unref0 (settings);
	_g_object_unref0 (content);
	_g_object_unref0 (hbox);
	_g_object_unref0 (description);
	_g_object_unref0 (label);
}
Ejemplo n.º 30
0
static AtkRelationSet *
gtk_widget_accessible_ref_relation_set (AtkObject *obj)
{
  GtkWidget *widget;
  AtkRelationSet *relation_set;
  GtkWidget *label;
  AtkObject *array[1];
  AtkRelation* relation;

  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
  if (widget == NULL)
    return NULL;

  relation_set = ATK_OBJECT_CLASS (_gtk_widget_accessible_parent_class)->ref_relation_set (obj);

  if (GTK_IS_BOX (widget))
    return relation_set;

  if (!atk_relation_set_contains (relation_set, ATK_RELATION_LABELLED_BY))
    {
      label = find_label (widget);
      if (label == NULL)
        {
          if (GTK_IS_BUTTON (widget))
            /*
             * Handle the case where GnomeIconEntry is the mnemonic widget.
             * The GtkButton which is a grandchild of the GnomeIconEntry
             * should really be the mnemonic widget. See bug #133967.
             */
            {
              GtkWidget *temp_widget;

              temp_widget = gtk_widget_get_parent (widget);

              if (GTK_IS_ALIGNMENT (temp_widget))
                {
                  temp_widget = gtk_widget_get_parent (temp_widget);
                  if (GTK_IS_BOX (temp_widget))
                    {
                      label = find_label (temp_widget);
                      if (!label)
                        label = find_label (gtk_widget_get_parent (temp_widget));
                    }
                }
            }
          else if (GTK_IS_COMBO_BOX (widget))
            /*
             * Handle the case when GtkFileChooserButton is the mnemonic
             * widget.  The GtkComboBox which is a child of the
             * GtkFileChooserButton should be the mnemonic widget.
             * See bug #359843.
             */
            {
              GtkWidget *temp_widget;

              temp_widget = gtk_widget_get_parent (widget);
              if (GTK_IS_BOX (temp_widget))
                {
                  label = find_label (temp_widget);
                }
            }
        }

      if (label)
        {
          array[0] = gtk_widget_get_accessible (label);

          relation = atk_relation_new (array, 1, ATK_RELATION_LABELLED_BY);
          atk_relation_set_add (relation_set, relation);
          g_object_unref (relation);
        }
    }

  return relation_set;
}