make toolbar Child structure accesible from apps
This commit is contained in:
@ -32,23 +32,6 @@ enum {
|
|||||||
LAST_SIGNAL
|
LAST_SIGNAL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
CHILD_SPACE,
|
|
||||||
CHILD_BUTTON,
|
|
||||||
CHILD_WIDGET
|
|
||||||
} ChildType;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
ChildType type;
|
|
||||||
GtkWidget *widget;
|
|
||||||
GtkWidget *icon;
|
|
||||||
GtkWidget *label;
|
|
||||||
} Child;
|
|
||||||
|
|
||||||
|
|
||||||
typedef void (*GtkToolbarSignal1) (GtkObject *object,
|
typedef void (*GtkToolbarSignal1) (GtkObject *object,
|
||||||
gint arg1,
|
gint arg1,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
@ -199,7 +182,7 @@ gtk_toolbar_destroy (GtkObject *object)
|
|||||||
{
|
{
|
||||||
GtkToolbar *toolbar;
|
GtkToolbar *toolbar;
|
||||||
GList *children;
|
GList *children;
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
|
|
||||||
g_return_if_fail (object != NULL);
|
g_return_if_fail (object != NULL);
|
||||||
g_return_if_fail (GTK_IS_TOOLBAR (object));
|
g_return_if_fail (GTK_IS_TOOLBAR (object));
|
||||||
@ -212,7 +195,7 @@ gtk_toolbar_destroy (GtkObject *object)
|
|||||||
{
|
{
|
||||||
child = children->data;
|
child = children->data;
|
||||||
|
|
||||||
if (child->type != CHILD_SPACE)
|
if (child->type != GTK_TOOLBAR_CHILD_SPACE)
|
||||||
{
|
{
|
||||||
child->widget->parent = NULL;
|
child->widget->parent = NULL;
|
||||||
gtk_object_unref (GTK_OBJECT (child->widget));
|
gtk_object_unref (GTK_OBJECT (child->widget));
|
||||||
@ -233,7 +216,7 @@ gtk_toolbar_map (GtkWidget *widget)
|
|||||||
{
|
{
|
||||||
GtkToolbar *toolbar;
|
GtkToolbar *toolbar;
|
||||||
GList *children;
|
GList *children;
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
|
|
||||||
g_return_if_fail (widget != NULL);
|
g_return_if_fail (widget != NULL);
|
||||||
g_return_if_fail (GTK_IS_TOOLBAR (widget));
|
g_return_if_fail (GTK_IS_TOOLBAR (widget));
|
||||||
@ -245,7 +228,7 @@ gtk_toolbar_map (GtkWidget *widget)
|
|||||||
{
|
{
|
||||||
child = children->data;
|
child = children->data;
|
||||||
|
|
||||||
if ((child->type != CHILD_SPACE)
|
if ((child->type != GTK_TOOLBAR_CHILD_SPACE)
|
||||||
&& GTK_WIDGET_VISIBLE (child->widget) && !GTK_WIDGET_MAPPED (child->widget))
|
&& GTK_WIDGET_VISIBLE (child->widget) && !GTK_WIDGET_MAPPED (child->widget))
|
||||||
gtk_widget_map (child->widget);
|
gtk_widget_map (child->widget);
|
||||||
}
|
}
|
||||||
@ -256,7 +239,7 @@ gtk_toolbar_unmap (GtkWidget *widget)
|
|||||||
{
|
{
|
||||||
GtkToolbar *toolbar;
|
GtkToolbar *toolbar;
|
||||||
GList *children;
|
GList *children;
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
|
|
||||||
g_return_if_fail (widget != NULL);
|
g_return_if_fail (widget != NULL);
|
||||||
g_return_if_fail (GTK_IS_TOOLBAR (widget));
|
g_return_if_fail (GTK_IS_TOOLBAR (widget));
|
||||||
@ -268,7 +251,7 @@ gtk_toolbar_unmap (GtkWidget *widget)
|
|||||||
{
|
{
|
||||||
child = children->data;
|
child = children->data;
|
||||||
|
|
||||||
if ((child->type != CHILD_SPACE)
|
if ((child->type != GTK_TOOLBAR_CHILD_SPACE)
|
||||||
&& GTK_WIDGET_VISIBLE (child->widget) && GTK_WIDGET_MAPPED (child->widget))
|
&& GTK_WIDGET_VISIBLE (child->widget) && GTK_WIDGET_MAPPED (child->widget))
|
||||||
gtk_widget_unmap (child->widget);
|
gtk_widget_unmap (child->widget);
|
||||||
}
|
}
|
||||||
@ -280,7 +263,7 @@ gtk_toolbar_draw (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GtkToolbar *toolbar;
|
GtkToolbar *toolbar;
|
||||||
GList *children;
|
GList *children;
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
GdkRectangle child_area;
|
GdkRectangle child_area;
|
||||||
|
|
||||||
g_return_if_fail (widget != NULL);
|
g_return_if_fail (widget != NULL);
|
||||||
@ -294,7 +277,7 @@ gtk_toolbar_draw (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
child = children->data;
|
child = children->data;
|
||||||
|
|
||||||
if ((child->type != CHILD_SPACE)
|
if ((child->type != GTK_TOOLBAR_CHILD_SPACE)
|
||||||
&& gtk_widget_intersect (child->widget, area, &child_area))
|
&& gtk_widget_intersect (child->widget, area, &child_area))
|
||||||
gtk_widget_draw (child->widget, &child_area);
|
gtk_widget_draw (child->widget, &child_area);
|
||||||
}
|
}
|
||||||
@ -307,7 +290,7 @@ gtk_toolbar_expose (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GtkToolbar *toolbar;
|
GtkToolbar *toolbar;
|
||||||
GList *children;
|
GList *children;
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
GdkEventExpose child_event;
|
GdkEventExpose child_event;
|
||||||
|
|
||||||
g_return_val_if_fail (widget != NULL, FALSE);
|
g_return_val_if_fail (widget != NULL, FALSE);
|
||||||
@ -324,7 +307,7 @@ gtk_toolbar_expose (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
child = children->data;
|
child = children->data;
|
||||||
|
|
||||||
if ((child->type != CHILD_SPACE)
|
if ((child->type != GTK_TOOLBAR_CHILD_SPACE)
|
||||||
&& GTK_WIDGET_NO_WINDOW (child->widget)
|
&& GTK_WIDGET_NO_WINDOW (child->widget)
|
||||||
&& gtk_widget_intersect (child->widget, &event->area, &child_event.area))
|
&& gtk_widget_intersect (child->widget, &event->area, &child_event.area))
|
||||||
gtk_widget_event (child->widget, (GdkEvent *) &child_event);
|
gtk_widget_event (child->widget, (GdkEvent *) &child_event);
|
||||||
@ -340,7 +323,7 @@ gtk_toolbar_size_request (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GtkToolbar *toolbar;
|
GtkToolbar *toolbar;
|
||||||
GList *children;
|
GList *children;
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
gint nbuttons;
|
gint nbuttons;
|
||||||
gint button_maxw, button_maxh;
|
gint button_maxw, button_maxh;
|
||||||
gint widget_maxw, widget_maxh;
|
gint widget_maxw, widget_maxh;
|
||||||
@ -365,7 +348,7 @@ gtk_toolbar_size_request (GtkWidget *widget,
|
|||||||
|
|
||||||
switch (child->type)
|
switch (child->type)
|
||||||
{
|
{
|
||||||
case CHILD_SPACE:
|
case GTK_TOOLBAR_CHILD_SPACE:
|
||||||
if (toolbar->orientation == GTK_ORIENTATION_HORIZONTAL)
|
if (toolbar->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||||
requisition->width += toolbar->space_size;
|
requisition->width += toolbar->space_size;
|
||||||
else
|
else
|
||||||
@ -373,7 +356,7 @@ gtk_toolbar_size_request (GtkWidget *widget,
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHILD_BUTTON:
|
case GTK_TOOLBAR_CHILD_BUTTON:
|
||||||
if (GTK_WIDGET_VISIBLE (child->widget))
|
if (GTK_WIDGET_VISIBLE (child->widget))
|
||||||
{
|
{
|
||||||
gtk_widget_size_request (child->widget, &child->widget->requisition);
|
gtk_widget_size_request (child->widget, &child->widget->requisition);
|
||||||
@ -385,7 +368,7 @@ gtk_toolbar_size_request (GtkWidget *widget,
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHILD_WIDGET:
|
case GTK_TOOLBAR_CHILD_WIDGET:
|
||||||
if (GTK_WIDGET_VISIBLE (child->widget))
|
if (GTK_WIDGET_VISIBLE (child->widget))
|
||||||
{
|
{
|
||||||
gtk_widget_size_request (child->widget, &child->widget->requisition);
|
gtk_widget_size_request (child->widget, &child->widget->requisition);
|
||||||
@ -427,7 +410,7 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GtkToolbar *toolbar;
|
GtkToolbar *toolbar;
|
||||||
GList *children;
|
GList *children;
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
GtkAllocation alloc;
|
GtkAllocation alloc;
|
||||||
gint border_width;
|
gint border_width;
|
||||||
|
|
||||||
@ -451,7 +434,7 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
|
|||||||
|
|
||||||
switch (child->type)
|
switch (child->type)
|
||||||
{
|
{
|
||||||
case CHILD_SPACE:
|
case GTK_TOOLBAR_CHILD_SPACE:
|
||||||
if (toolbar->orientation == GTK_ORIENTATION_HORIZONTAL)
|
if (toolbar->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||||
alloc.x += toolbar->space_size;
|
alloc.x += toolbar->space_size;
|
||||||
else
|
else
|
||||||
@ -459,7 +442,7 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHILD_BUTTON:
|
case GTK_TOOLBAR_CHILD_BUTTON:
|
||||||
alloc.width = toolbar->button_maxw;
|
alloc.width = toolbar->button_maxw;
|
||||||
alloc.height = toolbar->button_maxh;
|
alloc.height = toolbar->button_maxh;
|
||||||
|
|
||||||
@ -477,7 +460,7 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHILD_WIDGET:
|
case GTK_TOOLBAR_CHILD_WIDGET:
|
||||||
alloc.width = child->widget->requisition.width;
|
alloc.width = child->widget->requisition.width;
|
||||||
alloc.height = child->widget->requisition.height;
|
alloc.height = child->widget->requisition.height;
|
||||||
|
|
||||||
@ -518,7 +501,7 @@ gtk_toolbar_remove (GtkContainer *container,
|
|||||||
{
|
{
|
||||||
GtkToolbar *toolbar;
|
GtkToolbar *toolbar;
|
||||||
GList *children;
|
GList *children;
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
|
|
||||||
g_return_if_fail (container != NULL);
|
g_return_if_fail (container != NULL);
|
||||||
g_return_if_fail (GTK_IS_TOOLBAR (container));
|
g_return_if_fail (GTK_IS_TOOLBAR (container));
|
||||||
@ -530,7 +513,7 @@ gtk_toolbar_remove (GtkContainer *container,
|
|||||||
{
|
{
|
||||||
child = children->data;
|
child = children->data;
|
||||||
|
|
||||||
if ((child->type != CHILD_SPACE) && (child->widget == widget))
|
if ((child->type != GTK_TOOLBAR_CHILD_SPACE) && (child->widget == widget))
|
||||||
{
|
{
|
||||||
gtk_widget_unparent (widget);
|
gtk_widget_unparent (widget);
|
||||||
|
|
||||||
@ -554,7 +537,7 @@ gtk_toolbar_foreach (GtkContainer *container,
|
|||||||
{
|
{
|
||||||
GtkToolbar *toolbar;
|
GtkToolbar *toolbar;
|
||||||
GList *children;
|
GList *children;
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
|
|
||||||
g_return_if_fail (container != NULL);
|
g_return_if_fail (container != NULL);
|
||||||
g_return_if_fail (GTK_IS_TOOLBAR (container));
|
g_return_if_fail (GTK_IS_TOOLBAR (container));
|
||||||
@ -566,7 +549,7 @@ gtk_toolbar_foreach (GtkContainer *container,
|
|||||||
{
|
{
|
||||||
child = children->data;
|
child = children->data;
|
||||||
|
|
||||||
if (child->type != CHILD_SPACE)
|
if (child->type != GTK_TOOLBAR_CHILD_SPACE)
|
||||||
(*callback) (child->widget, callback_data);
|
(*callback) (child->widget, callback_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -604,15 +587,15 @@ gtk_toolbar_insert_item (GtkToolbar *toolbar,
|
|||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
gint position)
|
gint position)
|
||||||
{
|
{
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
GtkWidget *vbox;
|
GtkWidget *vbox;
|
||||||
|
|
||||||
g_return_val_if_fail (toolbar != NULL, NULL);
|
g_return_val_if_fail (toolbar != NULL, NULL);
|
||||||
g_return_val_if_fail (GTK_IS_TOOLBAR (toolbar), NULL);
|
g_return_val_if_fail (GTK_IS_TOOLBAR (toolbar), NULL);
|
||||||
|
|
||||||
child = g_new (Child, 1);
|
child = g_new (GtkToolbarChild, 1);
|
||||||
|
|
||||||
child->type = CHILD_BUTTON;
|
child->type = GTK_TOOLBAR_CHILD_BUTTON;
|
||||||
child->widget = gtk_button_new ();
|
child->widget = gtk_button_new ();
|
||||||
|
|
||||||
if (callback)
|
if (callback)
|
||||||
@ -707,13 +690,13 @@ void
|
|||||||
gtk_toolbar_insert_space (GtkToolbar *toolbar,
|
gtk_toolbar_insert_space (GtkToolbar *toolbar,
|
||||||
gint position)
|
gint position)
|
||||||
{
|
{
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
|
|
||||||
g_return_if_fail (toolbar != NULL);
|
g_return_if_fail (toolbar != NULL);
|
||||||
g_return_if_fail (GTK_IS_TOOLBAR (toolbar));
|
g_return_if_fail (GTK_IS_TOOLBAR (toolbar));
|
||||||
|
|
||||||
child = g_new (Child, 1);
|
child = g_new (GtkToolbarChild, 1);
|
||||||
child->type = CHILD_SPACE;
|
child->type = GTK_TOOLBAR_CHILD_SPACE;
|
||||||
child->widget = NULL;
|
child->widget = NULL;
|
||||||
child->icon = NULL;
|
child->icon = NULL;
|
||||||
child->label = NULL;
|
child->label = NULL;
|
||||||
@ -747,13 +730,13 @@ gtk_toolbar_insert_widget (GtkToolbar *toolbar,
|
|||||||
const char *tooltip_text,
|
const char *tooltip_text,
|
||||||
gint position)
|
gint position)
|
||||||
{
|
{
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
|
|
||||||
g_return_if_fail (toolbar != NULL);
|
g_return_if_fail (toolbar != NULL);
|
||||||
g_return_if_fail (widget != NULL);
|
g_return_if_fail (widget != NULL);
|
||||||
|
|
||||||
child = g_new (Child, 1);
|
child = g_new (GtkToolbarChild, 1);
|
||||||
child->type = CHILD_WIDGET;
|
child->type = GTK_TOOLBAR_CHILD_WIDGET;
|
||||||
child->widget = widget;
|
child->widget = widget;
|
||||||
child->icon = NULL;
|
child->icon = NULL;
|
||||||
child->label = NULL;
|
child->label = NULL;
|
||||||
@ -854,7 +837,7 @@ gtk_real_toolbar_style_changed (GtkToolbar *toolbar,
|
|||||||
GtkToolbarStyle style)
|
GtkToolbarStyle style)
|
||||||
{
|
{
|
||||||
GList *children;
|
GList *children;
|
||||||
Child *child;
|
GtkToolbarChild *child;
|
||||||
|
|
||||||
g_return_if_fail (toolbar != NULL);
|
g_return_if_fail (toolbar != NULL);
|
||||||
g_return_if_fail (GTK_IS_TOOLBAR (toolbar));
|
g_return_if_fail (GTK_IS_TOOLBAR (toolbar));
|
||||||
@ -867,7 +850,7 @@ gtk_real_toolbar_style_changed (GtkToolbar *toolbar,
|
|||||||
{
|
{
|
||||||
child = children->data;
|
child = children->data;
|
||||||
|
|
||||||
if (child->type == CHILD_BUTTON)
|
if (child->type == GTK_TOOLBAR_CHILD_BUTTON)
|
||||||
switch (style)
|
switch (style)
|
||||||
{
|
{
|
||||||
case GTK_TOOLBAR_ICONS:
|
case GTK_TOOLBAR_ICONS:
|
||||||
|
|||||||
@ -39,9 +39,27 @@ extern "C" {
|
|||||||
#define GTK_IS_TOOLBAR(obj) GTK_CHECK_TYPE (obj, gtk_toolbar_get_type ())
|
#define GTK_IS_TOOLBAR(obj) GTK_CHECK_TYPE (obj, gtk_toolbar_get_type ())
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum _GtkToolbarChildType GtkToolbarChildType;
|
||||||
|
typedef struct _GtkToolbarChild GtkToolbarChild;
|
||||||
typedef struct _GtkToolbar GtkToolbar;
|
typedef struct _GtkToolbar GtkToolbar;
|
||||||
typedef struct _GtkToolbarClass GtkToolbarClass;
|
typedef struct _GtkToolbarClass GtkToolbarClass;
|
||||||
|
|
||||||
|
enum _GtkToolbarChildType
|
||||||
|
{
|
||||||
|
GTK_TOOLBAR_CHILD_SPACE,
|
||||||
|
GTK_TOOLBAR_CHILD_BUTTON,
|
||||||
|
GTK_TOOLBAR_CHILD_WIDGET
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GtkToolbarChild
|
||||||
|
{
|
||||||
|
GtkToolbarChildType type;
|
||||||
|
GtkWidget *widget;
|
||||||
|
GtkWidget *icon;
|
||||||
|
GtkWidget *label;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
struct _GtkToolbar
|
struct _GtkToolbar
|
||||||
{
|
{
|
||||||
GtkContainer container;
|
GtkContainer container;
|
||||||
|
|||||||
Reference in New Issue
Block a user