mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-17 22:32:51 +00:00
Bug 1289764 - Move gHPanedWidget/gVPanedWidget to WidgetCache, r=acomminos
This commit is contained in:
parent
ec30e6e963
commit
d055a30b27
@ -287,6 +287,22 @@ CreateTreeHeaderSortArrowWidget()
|
||||
return widget;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateHPanedWidget()
|
||||
{
|
||||
GtkWidget* widget = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
|
||||
AddToWindowContainer(widget);
|
||||
return widget;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateVPanedWidget()
|
||||
{
|
||||
GtkWidget* widget = gtk_paned_new(GTK_ORIENTATION_VERTICAL);
|
||||
AddToWindowContainer(widget);
|
||||
return widget;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateWidget(WidgetNodeType aWidgetType)
|
||||
{
|
||||
@ -349,6 +365,10 @@ CreateWidget(WidgetNodeType aWidgetType)
|
||||
return CreateTreeHeaderCellWidget();
|
||||
case MOZ_GTK_TREE_HEADER_SORTARROW:
|
||||
return CreateTreeHeaderSortArrowWidget();
|
||||
case MOZ_GTK_SPLITTER_HORIZONTAL:
|
||||
return CreateHPanedWidget();
|
||||
case MOZ_GTK_SPLITTER_VERTICAL:
|
||||
return CreateVPanedWidget();
|
||||
default:
|
||||
/* Not implemented */
|
||||
return nullptr;
|
||||
@ -515,6 +535,14 @@ GetCssNodeStyleInternal(WidgetNodeType aNodeType)
|
||||
// TODO - create from CSS node
|
||||
return GetWidgetStyleWithClass(MOZ_GTK_TREEVIEW,
|
||||
GTK_STYLE_CLASS_EXPANDER);
|
||||
case MOZ_GTK_SPLITTER_SEPARATOR_HORIZONTAL:
|
||||
style = CreateChildCSSNode("separator",
|
||||
MOZ_GTK_SPLITTER_HORIZONTAL);
|
||||
break;
|
||||
case MOZ_GTK_SPLITTER_SEPARATOR_VERTICAL:
|
||||
style = CreateChildCSSNode("separator",
|
||||
MOZ_GTK_SPLITTER_VERTICAL);
|
||||
break;
|
||||
default:
|
||||
// TODO - create style from style path
|
||||
GtkWidget* widget = GetWidget(aNodeType);
|
||||
@ -589,6 +617,12 @@ GetWidgetStyleInternal(WidgetNodeType aNodeType)
|
||||
case MOZ_GTK_TREEVIEW_EXPANDER:
|
||||
return GetWidgetStyleWithClass(MOZ_GTK_TREEVIEW,
|
||||
GTK_STYLE_CLASS_EXPANDER);
|
||||
case MOZ_GTK_SPLITTER_SEPARATOR_HORIZONTAL:
|
||||
return GetWidgetStyleWithClass(MOZ_GTK_SPLITTER_HORIZONTAL,
|
||||
GTK_STYLE_CLASS_PANE_SEPARATOR);
|
||||
case MOZ_GTK_SPLITTER_SEPARATOR_VERTICAL:
|
||||
return GetWidgetStyleWithClass(MOZ_GTK_SPLITTER_VERTICAL,
|
||||
GTK_STYLE_CLASS_PANE_SEPARATOR);
|
||||
default:
|
||||
GtkWidget* widget = GetWidget(aNodeType);
|
||||
MOZ_ASSERT(widget);
|
||||
|
@ -32,8 +32,6 @@ static GtkWidget* gComboBoxEntryArrowWidget;
|
||||
static GtkWidget* gTabWidget;
|
||||
static GtkWidget* gImageMenuItemWidget;
|
||||
static GtkWidget* gCheckMenuItemWidget;
|
||||
static GtkWidget* gHPanedWidget;
|
||||
static GtkWidget* gVPanedWidget;
|
||||
|
||||
static style_prop_t style_prop_func;
|
||||
static gboolean have_arrow_scaling;
|
||||
@ -86,26 +84,6 @@ setup_widget_prototype(GtkWidget* widget)
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
static gint
|
||||
ensure_hpaned_widget()
|
||||
{
|
||||
if (!gHPanedWidget) {
|
||||
gHPanedWidget = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
|
||||
setup_widget_prototype(gHPanedWidget);
|
||||
}
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
static gint
|
||||
ensure_vpaned_widget()
|
||||
{
|
||||
if (!gVPanedWidget) {
|
||||
gVPanedWidget = gtk_paned_new(GTK_ORIENTATION_VERTICAL);
|
||||
setup_widget_prototype(gVPanedWidget);
|
||||
}
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
static gint
|
||||
ensure_scale_widget()
|
||||
{
|
||||
@ -485,15 +463,14 @@ moz_gtk_button_get_default_border(gint* border_top, gint* border_left,
|
||||
gint
|
||||
moz_gtk_splitter_get_metrics(gint orientation, gint* size)
|
||||
{
|
||||
GtkStyleContext *style;
|
||||
if (orientation == GTK_ORIENTATION_HORIZONTAL) {
|
||||
ensure_hpaned_widget();
|
||||
gtk_style_context_get_style(gtk_widget_get_style_context(gHPanedWidget),
|
||||
"handle_size", size, NULL);
|
||||
style = ClaimStyleContext(MOZ_GTK_SPLITTER_HORIZONTAL);
|
||||
} else {
|
||||
ensure_vpaned_widget();
|
||||
gtk_style_context_get_style(gtk_widget_get_style_context(gVPanedWidget),
|
||||
"handle_size", size, NULL);
|
||||
style = ClaimStyleContext(MOZ_GTK_SPLITTER_VERTICAL);
|
||||
}
|
||||
gtk_style_context_get_style(style, "handle_size", size, NULL);
|
||||
ReleaseStyleContext(style);
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
@ -1020,17 +997,13 @@ static gint
|
||||
moz_gtk_hpaned_paint(cairo_t *cr, GdkRectangle* rect,
|
||||
GtkWidgetState* state)
|
||||
{
|
||||
GtkStyleContext* style;
|
||||
|
||||
ensure_hpaned_widget();
|
||||
style = gtk_widget_get_style_context(gHPanedWidget);
|
||||
gtk_style_context_save(style);
|
||||
gtk_style_context_add_class(style, GTK_STYLE_CLASS_PANE_SEPARATOR);
|
||||
gtk_style_context_set_state(style, GetStateFlagsFromGtkWidgetState(state));
|
||||
GtkStyleContext* style =
|
||||
ClaimStyleContext(MOZ_GTK_SPLITTER_SEPARATOR_HORIZONTAL,
|
||||
GTK_TEXT_DIR_LTR,
|
||||
GetStateFlagsFromGtkWidgetState(state));
|
||||
gtk_render_handle(style, cr,
|
||||
rect->x, rect->y, rect->width, rect->height);
|
||||
gtk_style_context_restore(style);
|
||||
|
||||
ReleaseStyleContext(style);
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
@ -1038,17 +1011,13 @@ static gint
|
||||
moz_gtk_vpaned_paint(cairo_t *cr, GdkRectangle* rect,
|
||||
GtkWidgetState* state)
|
||||
{
|
||||
GtkStyleContext* style;
|
||||
|
||||
ensure_vpaned_widget();
|
||||
style = gtk_widget_get_style_context(gVPanedWidget);
|
||||
gtk_style_context_save(style);
|
||||
gtk_style_context_add_class(style, GTK_STYLE_CLASS_PANE_SEPARATOR);
|
||||
gtk_style_context_set_state(style, GetStateFlagsFromGtkWidgetState(state));
|
||||
GtkStyleContext* style =
|
||||
ClaimStyleContext(MOZ_GTK_SPLITTER_SEPARATOR_VERTICAL,
|
||||
GTK_TEXT_DIR_LTR,
|
||||
GetStateFlagsFromGtkWidgetState(state));
|
||||
gtk_render_handle(style, cr,
|
||||
rect->x, rect->y, rect->width, rect->height);
|
||||
gtk_style_context_restore(style);
|
||||
|
||||
ReleaseStyleContext(style);
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
@ -2977,8 +2946,6 @@ moz_gtk_shutdown()
|
||||
gTabWidget = NULL;
|
||||
gImageMenuItemWidget = NULL;
|
||||
gCheckMenuItemWidget = NULL;
|
||||
gHPanedWidget = NULL;
|
||||
gVPanedWidget = NULL;
|
||||
|
||||
is_initialized = FALSE;
|
||||
|
||||
|
@ -204,10 +204,14 @@ typedef enum {
|
||||
MOZ_GTK_CHECKMENUITEM,
|
||||
MOZ_GTK_RADIOMENUITEM,
|
||||
MOZ_GTK_MENUSEPARATOR,
|
||||
/* Paints a GtkVPaned separator */
|
||||
/* GtkVPaned base class */
|
||||
MOZ_GTK_SPLITTER_HORIZONTAL,
|
||||
/* Paints a GtkHPaned separator */
|
||||
/* GtkHPaned base class */
|
||||
MOZ_GTK_SPLITTER_VERTICAL,
|
||||
/* Paints a GtkVPaned separator */
|
||||
MOZ_GTK_SPLITTER_SEPARATOR_HORIZONTAL,
|
||||
/* Paints a GtkHPaned separator */
|
||||
MOZ_GTK_SPLITTER_SEPARATOR_VERTICAL,
|
||||
/* Paints the background of a window, dialog or page. */
|
||||
MOZ_GTK_WINDOW,
|
||||
/* Window container for all widgets */
|
||||
|
Loading…
x
Reference in New Issue
Block a user