forked from AuroraMiddleware/gtk
menubar: Remove gadget
This commit is contained in:
parent
9fedd05051
commit
fe6832fcc9
138
gtk/gtkmenubar.c
138
gtk/gtkmenubar.c
@ -42,7 +42,6 @@
|
||||
#include "gtkmenubar.h"
|
||||
|
||||
#include "gtkbindings.h"
|
||||
#include "gtkcsscustomgadgetprivate.h"
|
||||
#include "gtkmain.h"
|
||||
#include "gtkmarshalers.h"
|
||||
#include "gtkmenuitemprivate.h"
|
||||
@ -71,8 +70,6 @@ struct _GtkMenuBarPrivate
|
||||
{
|
||||
GtkPackDirection pack_direction;
|
||||
GtkPackDirection child_pack_direction;
|
||||
|
||||
GtkCssGadget *gadget;
|
||||
};
|
||||
|
||||
|
||||
@ -84,8 +81,7 @@ static void gtk_menu_bar_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void gtk_menu_bar_finalize (GObject *object);
|
||||
static void gtk_menu_bar_measure_ (GtkWidget *widget,
|
||||
static void gtk_menu_bar_measure (GtkWidget *widget,
|
||||
GtkOrientation orientation,
|
||||
int for_size,
|
||||
int *minimum,
|
||||
@ -94,35 +90,12 @@ static void gtk_menu_bar_measure_ (GtkWidget *widget,
|
||||
int *natural_baseline);
|
||||
static void gtk_menu_bar_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation);
|
||||
static void gtk_menu_bar_snapshot (GtkWidget *widget,
|
||||
GtkSnapshot *snapshot);
|
||||
static void gtk_menu_bar_hierarchy_changed (GtkWidget *widget,
|
||||
GtkWidget *old_toplevel);
|
||||
static gint gtk_menu_bar_get_popup_delay (GtkMenuShell *menu_shell);
|
||||
static void gtk_menu_bar_move_current (GtkMenuShell *menu_shell,
|
||||
GtkMenuDirectionType direction);
|
||||
|
||||
static void gtk_menu_bar_measure (GtkCssGadget *gadget,
|
||||
GtkOrientation orientation,
|
||||
int for_size,
|
||||
int *minimum,
|
||||
int *natural,
|
||||
int *minimum_baseline,
|
||||
int *natural_baseline,
|
||||
gpointer data);
|
||||
static void gtk_menu_bar_allocate (GtkCssGadget *gadget,
|
||||
const GtkAllocation *allocation,
|
||||
int baseline,
|
||||
GtkAllocation *out_clip,
|
||||
gpointer data);
|
||||
static gboolean gtk_menu_bar_render (GtkCssGadget *gadget,
|
||||
GtkSnapshot *snapshot,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data);
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GtkMenuBar, gtk_menu_bar, GTK_TYPE_MENU_SHELL)
|
||||
|
||||
static void
|
||||
@ -140,11 +113,9 @@ gtk_menu_bar_class_init (GtkMenuBarClass *class)
|
||||
|
||||
gobject_class->get_property = gtk_menu_bar_get_property;
|
||||
gobject_class->set_property = gtk_menu_bar_set_property;
|
||||
gobject_class->finalize = gtk_menu_bar_finalize;
|
||||
|
||||
widget_class->measure = gtk_menu_bar_measure_;
|
||||
widget_class->measure = gtk_menu_bar_measure;
|
||||
widget_class->size_allocate = gtk_menu_bar_size_allocate;
|
||||
widget_class->snapshot = gtk_menu_bar_snapshot;
|
||||
widget_class->hierarchy_changed = gtk_menu_bar_hierarchy_changed;
|
||||
|
||||
menu_shell_class->submenu_placement = GTK_TOP_BOTTOM;
|
||||
@ -234,20 +205,7 @@ gtk_menu_bar_class_init (GtkMenuBarClass *class)
|
||||
static void
|
||||
gtk_menu_bar_init (GtkMenuBar *menu_bar)
|
||||
{
|
||||
GtkMenuBarPrivate *priv;
|
||||
GtkWidget *widget;
|
||||
GtkCssNode *widget_node;
|
||||
|
||||
priv = menu_bar->priv = gtk_menu_bar_get_instance_private (menu_bar);
|
||||
|
||||
widget = GTK_WIDGET (menu_bar);
|
||||
widget_node = gtk_widget_get_css_node (widget);
|
||||
priv->gadget = gtk_css_custom_gadget_new_for_node (widget_node,
|
||||
widget,
|
||||
gtk_menu_bar_measure,
|
||||
gtk_menu_bar_allocate,
|
||||
gtk_menu_bar_render,
|
||||
NULL, NULL);
|
||||
menu_bar->priv = gtk_menu_bar_get_instance_private (menu_bar);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -263,16 +221,6 @@ gtk_menu_bar_new (void)
|
||||
return g_object_new (GTK_TYPE_MENU_BAR, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_menu_bar_finalize (GObject *object)
|
||||
{
|
||||
GtkMenuBar *menu_bar = GTK_MENU_BAR (object);
|
||||
|
||||
g_clear_object (&menu_bar->priv->gadget);
|
||||
|
||||
G_OBJECT_CLASS (gtk_menu_bar_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_menu_bar_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
@ -318,16 +266,14 @@ gtk_menu_bar_get_property (GObject *object,
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_menu_bar_measure (GtkCssGadget *gadget,
|
||||
gtk_menu_bar_measure (GtkWidget *widget,
|
||||
GtkOrientation orientation,
|
||||
int size,
|
||||
int for_size,
|
||||
int *minimum,
|
||||
int *natural,
|
||||
int *minimum_baseline,
|
||||
int *natural_baseline,
|
||||
gpointer data)
|
||||
int *natural_baseline)
|
||||
{
|
||||
GtkWidget *widget = gtk_css_gadget_get_owner (gadget);
|
||||
GtkMenuBar *menu_bar;
|
||||
GtkMenuBarPrivate *priv;
|
||||
GtkMenuShell *menu_shell;
|
||||
@ -366,7 +312,7 @@ gtk_menu_bar_measure (GtkCssGadget *gadget,
|
||||
{
|
||||
gtk_widget_measure (child,
|
||||
orientation,
|
||||
size,
|
||||
for_size,
|
||||
&child_minimum, &child_natural,
|
||||
NULL, NULL);
|
||||
|
||||
@ -396,32 +342,13 @@ gtk_menu_bar_measure (GtkCssGadget *gadget,
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_menu_bar_measure_ (GtkWidget *widget,
|
||||
GtkOrientation orientation,
|
||||
int for_size,
|
||||
int *minimum,
|
||||
int *natural,
|
||||
int *minimum_baseline,
|
||||
int *natural_baseline)
|
||||
gtk_menu_bar_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation)
|
||||
{
|
||||
gtk_css_gadget_get_preferred_size (GTK_MENU_BAR (widget)->priv->gadget,
|
||||
orientation,
|
||||
for_size,
|
||||
minimum, natural,
|
||||
minimum_baseline, natural_baseline);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_menu_bar_allocate (GtkCssGadget *gadget,
|
||||
const GtkAllocation *allocation,
|
||||
int baseline,
|
||||
GtkAllocation *out_clip,
|
||||
gpointer data)
|
||||
{
|
||||
GtkWidget *widget = gtk_css_gadget_get_owner (gadget);
|
||||
GtkMenuBar *menu_bar;
|
||||
GtkMenuBar *menu_bar = GTK_MENU_BAR (widget);
|
||||
GtkMenuBarPrivate *priv = menu_bar->priv;
|
||||
GtkAllocation clip = *allocation;
|
||||
GtkMenuShell *menu_shell;
|
||||
GtkMenuBarPrivate *priv;
|
||||
GtkWidget *child;
|
||||
GList *children;
|
||||
GtkAllocation remaining_space;
|
||||
@ -429,9 +356,7 @@ gtk_menu_bar_allocate (GtkCssGadget *gadget,
|
||||
gint toggle_size;
|
||||
guint i;
|
||||
|
||||
menu_bar = GTK_MENU_BAR (widget);
|
||||
menu_shell = GTK_MENU_SHELL (widget);
|
||||
priv = menu_bar->priv;
|
||||
|
||||
if (!menu_shell->priv->children)
|
||||
return;
|
||||
@ -550,49 +475,10 @@ gtk_menu_bar_allocate (GtkCssGadget *gadget,
|
||||
}
|
||||
|
||||
g_array_free (requested_sizes, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_menu_bar_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation)
|
||||
{
|
||||
GtkMenuBar *menu_bar = GTK_MENU_BAR (widget);
|
||||
GtkMenuBarPrivate *priv = menu_bar->priv;
|
||||
GtkAllocation clip;
|
||||
|
||||
GTK_WIDGET_CLASS (gtk_menu_bar_parent_class)->size_allocate (widget, allocation);
|
||||
|
||||
gtk_css_gadget_allocate (priv->gadget,
|
||||
allocation,
|
||||
gtk_widget_get_allocated_baseline (widget),
|
||||
&clip);
|
||||
|
||||
gtk_widget_set_clip (widget, &clip);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_menu_bar_render (GtkCssGadget *gadget,
|
||||
GtkSnapshot *snapshot,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
GtkWidget *widget = gtk_css_gadget_get_owner (gadget);
|
||||
|
||||
GTK_WIDGET_CLASS (gtk_menu_bar_parent_class)->snapshot (widget, snapshot);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_menu_bar_snapshot (GtkWidget *widget,
|
||||
GtkSnapshot *snapshot)
|
||||
{
|
||||
gtk_css_gadget_snapshot (GTK_MENU_BAR (widget)->priv->gadget, snapshot);
|
||||
}
|
||||
|
||||
static GList *
|
||||
get_menu_bars (GtkWindow *window)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user