зеркало из https://github.com/mozilla/pjs.git
relanding bug 118312 since it doesn't look to be the source of the Ts regression
This commit is contained in:
Родитель
e5edbecb2b
Коммит
ecf4bb9884
|
@ -171,19 +171,6 @@ tree[seltype="text"] > treechildren::-moz-tree-cell-text(active, selected, curre
|
||||||
border: 1px dotted #C0C0C0;
|
border: 1px dotted #C0C0C0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ::::: lines connecting cells ::::: */
|
|
||||||
|
|
||||||
tree[seltype="cell"] > treechildren::-moz-tree-line,
|
|
||||||
tree[seltype="text"] > treechildren::-moz-tree-line,
|
|
||||||
treechildren::-moz-tree-line {
|
|
||||||
border: 1px dotted ThreeDShadow;
|
|
||||||
}
|
|
||||||
|
|
||||||
tree[seltype="cell"] > treechildren::-moz-tree-line(active, selected, focus),
|
|
||||||
treechildren::-moz-tree-line(selected, focus) {
|
|
||||||
border: 1px dotted HighlightText;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* ::::: tree separator ::::: */
|
/* ::::: tree separator ::::: */
|
||||||
|
|
||||||
|
@ -323,6 +310,7 @@ treechildren::-moz-tree-column(insertafter) {
|
||||||
/* ::::: twisty ::::: */
|
/* ::::: twisty ::::: */
|
||||||
|
|
||||||
treechildren::-moz-tree-twisty {
|
treechildren::-moz-tree-twisty {
|
||||||
|
-moz-appearance: treetwisty;
|
||||||
padding-right: 4px;
|
padding-right: 4px;
|
||||||
padding-top: 1px;
|
padding-top: 1px;
|
||||||
width: 9px; /* The image's width is 9 pixels */
|
width: 9px; /* The image's width is 9 pixels */
|
||||||
|
@ -330,6 +318,7 @@ treechildren::-moz-tree-twisty {
|
||||||
}
|
}
|
||||||
|
|
||||||
treechildren::-moz-tree-twisty(open) {
|
treechildren::-moz-tree-twisty(open) {
|
||||||
|
-moz-appearance: treetwistyopen;
|
||||||
width: 9px; /* The image's width is 9 pixels */
|
width: 9px; /* The image's width is 9 pixels */
|
||||||
list-style-image: url("chrome://global/skin/tree/twisty-open.png");
|
list-style-image: url("chrome://global/skin/tree/twisty-open.png");
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,6 +81,7 @@ static GtkWidget* gCheckMenuItemWidget;
|
||||||
static GtkWidget* gTreeViewWidget;
|
static GtkWidget* gTreeViewWidget;
|
||||||
static GtkWidget* gTreeHeaderCellWidget;
|
static GtkWidget* gTreeHeaderCellWidget;
|
||||||
static GtkWidget* gTreeHeaderSortArrowWidget;
|
static GtkWidget* gTreeHeaderSortArrowWidget;
|
||||||
|
static GtkWidget* gExpanderWidget;
|
||||||
|
|
||||||
static GtkShadowType gMenuBarShadowType;
|
static GtkShadowType gMenuBarShadowType;
|
||||||
static GtkShadowType gToolbarShadowType;
|
static GtkShadowType gToolbarShadowType;
|
||||||
|
@ -376,7 +377,17 @@ ensure_tree_header_cell_widget()
|
||||||
gTreeHeaderSortArrowWidget = treeViewColumn->arrow;
|
gTreeHeaderSortArrowWidget = treeViewColumn->arrow;
|
||||||
}
|
}
|
||||||
return MOZ_GTK_SUCCESS;
|
return MOZ_GTK_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gint
|
||||||
|
ensure_expander_widget()
|
||||||
|
{
|
||||||
|
if (!gExpanderWidget) {
|
||||||
|
gExpanderWidget = gtk_expander_new("M");
|
||||||
|
setup_widget_prototype(gExpanderWidget);
|
||||||
|
}
|
||||||
|
return MOZ_GTK_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
static GtkStateType
|
static GtkStateType
|
||||||
ConvertGtkState(GtkWidgetState* state)
|
ConvertGtkState(GtkWidgetState* state)
|
||||||
|
@ -1080,6 +1091,28 @@ moz_gtk_tree_header_sort_arrow_paint(GdkDrawable* drawable, GdkRectangle* rect,
|
||||||
return MOZ_GTK_SUCCESS;
|
return MOZ_GTK_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gint
|
||||||
|
moz_gtk_expander_paint(GdkDrawable* drawable, GdkRectangle* rect,
|
||||||
|
GdkRectangle* cliprect, GtkWidgetState* state,
|
||||||
|
GtkExpanderStyle expander_state)
|
||||||
|
{
|
||||||
|
GtkStyle *style;
|
||||||
|
GtkStateType state_type;
|
||||||
|
|
||||||
|
ensure_expander_widget();
|
||||||
|
style = gExpanderWidget->style;
|
||||||
|
|
||||||
|
/* Because the frame we get is of the entire treeview, we can't get the precise
|
||||||
|
* event state of one expander, thus rendering hover and active feedback useless. */
|
||||||
|
state_type = state->disabled ? GTK_STATE_INSENSITIVE : GTK_STATE_NORMAL;
|
||||||
|
|
||||||
|
TSOffsetStyleGCs(style, rect->x, rect->y);
|
||||||
|
gtk_paint_expander(style, drawable, state_type, cliprect, gExpanderWidget, "expander",
|
||||||
|
rect->x + rect->width / 2, rect->y + rect->height / 2, expander_state);
|
||||||
|
|
||||||
|
return MOZ_GTK_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
moz_gtk_option_menu_paint(GdkDrawable* drawable, GdkRectangle* rect,
|
moz_gtk_option_menu_paint(GdkDrawable* drawable, GdkRectangle* rect,
|
||||||
GdkRectangle* cliprect, GtkWidgetState* state)
|
GdkRectangle* cliprect, GtkWidgetState* state)
|
||||||
|
@ -1823,6 +1856,7 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
|
||||||
case MOZ_GTK_GRIPPER:
|
case MOZ_GTK_GRIPPER:
|
||||||
case MOZ_GTK_PROGRESS_CHUNK:
|
case MOZ_GTK_PROGRESS_CHUNK:
|
||||||
case MOZ_GTK_TAB:
|
case MOZ_GTK_TAB:
|
||||||
|
case MOZ_GTK_EXPANDER:
|
||||||
/* These widgets have no borders.*/
|
/* These widgets have no borders.*/
|
||||||
case MOZ_GTK_TOOLTIP:
|
case MOZ_GTK_TOOLTIP:
|
||||||
case MOZ_GTK_WINDOW:
|
case MOZ_GTK_WINDOW:
|
||||||
|
@ -1860,6 +1894,17 @@ moz_gtk_get_dropdown_arrow_size(gint* width, gint* height)
|
||||||
return MOZ_GTK_SUCCESS;
|
return MOZ_GTK_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
moz_gtk_get_expander_size(gint* size)
|
||||||
|
{
|
||||||
|
ensure_expander_widget();
|
||||||
|
gtk_widget_style_get(gExpanderWidget,
|
||||||
|
"expander-size", size,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
return MOZ_GTK_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
gint
|
gint
|
||||||
moz_gtk_get_scalethumb_metrics(GtkOrientation orient, gint* thumb_length, gint* thumb_height)
|
moz_gtk_get_scalethumb_metrics(GtkOrientation orient, gint* thumb_length, gint* thumb_height)
|
||||||
{
|
{
|
||||||
|
@ -1950,6 +1995,9 @@ moz_gtk_widget_paint(GtkThemeWidgetType widget, GdkDrawable* drawable,
|
||||||
case MOZ_GTK_TREE_HEADER_SORTARROW:
|
case MOZ_GTK_TREE_HEADER_SORTARROW:
|
||||||
return moz_gtk_tree_header_sort_arrow_paint(drawable, rect, cliprect, state, (GtkArrowType) flags);
|
return moz_gtk_tree_header_sort_arrow_paint(drawable, rect, cliprect, state, (GtkArrowType) flags);
|
||||||
break;
|
break;
|
||||||
|
case MOZ_GTK_EXPANDER:
|
||||||
|
return moz_gtk_expander_paint(drawable, rect, cliprect, state, (GtkExpanderStyle) flags);
|
||||||
|
break;
|
||||||
case MOZ_GTK_ENTRY:
|
case MOZ_GTK_ENTRY:
|
||||||
return moz_gtk_entry_paint(drawable, rect, cliprect, state);
|
return moz_gtk_entry_paint(drawable, rect, cliprect, state);
|
||||||
break;
|
break;
|
||||||
|
@ -2060,6 +2108,7 @@ moz_gtk_shutdown()
|
||||||
gTreeViewWidget = NULL;
|
gTreeViewWidget = NULL;
|
||||||
gTreeHeaderCellWidget = NULL;
|
gTreeHeaderCellWidget = NULL;
|
||||||
gTreeHeaderSortArrowWidget = NULL;
|
gTreeHeaderSortArrowWidget = NULL;
|
||||||
|
gExpanderWidget = NULL;
|
||||||
|
|
||||||
is_initialized = FALSE;
|
is_initialized = FALSE;
|
||||||
|
|
||||||
|
|
|
@ -159,6 +159,8 @@ typedef enum {
|
||||||
MOZ_GTK_TREE_HEADER_CELL,
|
MOZ_GTK_TREE_HEADER_CELL,
|
||||||
/* Paints sort arrows in treeheader cells */
|
/* Paints sort arrows in treeheader cells */
|
||||||
MOZ_GTK_TREE_HEADER_SORTARROW,
|
MOZ_GTK_TREE_HEADER_SORTARROW,
|
||||||
|
/* Paints a GtkExpander for treeviews */
|
||||||
|
MOZ_GTK_EXPANDER,
|
||||||
/* Paints the background of the menu bar. */
|
/* Paints the background of the menu bar. */
|
||||||
MOZ_GTK_MENUBAR,
|
MOZ_GTK_MENUBAR,
|
||||||
/* Paints the background of menus, context menus. */
|
/* Paints the background of menus, context menus. */
|
||||||
|
@ -291,6 +293,14 @@ moz_gtk_get_scrollbar_metrics(MozGtkScrollbarMetrics* metrics);
|
||||||
*/
|
*/
|
||||||
gint moz_gtk_get_dropdown_arrow_size(gint* width, gint* height);
|
gint moz_gtk_get_dropdown_arrow_size(gint* width, gint* height);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the size of a treeview's expander (we call them twisties)
|
||||||
|
* size: [OUT] the size of the GTK expander, size = width = height.
|
||||||
|
*
|
||||||
|
* returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
|
||||||
|
*/
|
||||||
|
gint moz_gtk_get_expander_size(gint* size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve an actual GTK scrollbar widget for style analysis. It will not
|
* Retrieve an actual GTK scrollbar widget for style analysis. It will not
|
||||||
* be modified.
|
* be modified.
|
||||||
|
|
|
@ -403,6 +403,16 @@ nsNativeThemeGTK::GetGtkWidgetAndState(PRUint8 aWidgetType, nsIFrame* aFrame,
|
||||||
}
|
}
|
||||||
aGtkWidgetType = MOZ_GTK_TREE_HEADER_SORTARROW;
|
aGtkWidgetType = MOZ_GTK_TREE_HEADER_SORTARROW;
|
||||||
break;
|
break;
|
||||||
|
case NS_THEME_TREEVIEW_TWISTY:
|
||||||
|
aGtkWidgetType = MOZ_GTK_EXPANDER;
|
||||||
|
if (aWidgetFlags)
|
||||||
|
*aWidgetFlags = GTK_EXPANDER_COLLAPSED;
|
||||||
|
break;
|
||||||
|
case NS_THEME_TREEVIEW_TWISTY_OPEN:
|
||||||
|
aGtkWidgetType = MOZ_GTK_EXPANDER;
|
||||||
|
if (aWidgetFlags)
|
||||||
|
*aWidgetFlags = GTK_EXPANDER_EXPANDED;
|
||||||
|
break;
|
||||||
case NS_THEME_DROPDOWN:
|
case NS_THEME_DROPDOWN:
|
||||||
aGtkWidgetType = MOZ_GTK_DROPDOWN;
|
aGtkWidgetType = MOZ_GTK_DROPDOWN;
|
||||||
break;
|
break;
|
||||||
|
@ -888,6 +898,16 @@ nsNativeThemeGTK::GetMinimumWidgetSize(nsIRenderingContext* aContext,
|
||||||
// same as Windows to make our lives easier
|
// same as Windows to make our lives easier
|
||||||
aResult->width = aResult->height = 15;
|
aResult->width = aResult->height = 15;
|
||||||
break;
|
break;
|
||||||
|
case NS_THEME_TREEVIEW_TWISTY:
|
||||||
|
case NS_THEME_TREEVIEW_TWISTY_OPEN:
|
||||||
|
{
|
||||||
|
gint expander_size;
|
||||||
|
|
||||||
|
moz_gtk_get_expander_size(&expander_size);
|
||||||
|
aResult->width = aResult->height = expander_size;
|
||||||
|
*aIsOverridable = PR_FALSE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
@ -982,12 +1002,12 @@ nsNativeThemeGTK::ThemeSupportsWidget(nsPresContext* aPresContext,
|
||||||
// case NS_THEME_LISTBOX_LISTITEM:
|
// case NS_THEME_LISTBOX_LISTITEM:
|
||||||
case NS_THEME_TREEVIEW:
|
case NS_THEME_TREEVIEW:
|
||||||
// case NS_THEME_TREEVIEW_TREEITEM:
|
// case NS_THEME_TREEVIEW_TREEITEM:
|
||||||
// case NS_THEME_TREEVIEW_TWISTY:
|
case NS_THEME_TREEVIEW_TWISTY:
|
||||||
// case NS_THEME_TREEVIEW_LINE:
|
// case NS_THEME_TREEVIEW_LINE:
|
||||||
// case NS_THEME_TREEVIEW_HEADER:
|
// case NS_THEME_TREEVIEW_HEADER:
|
||||||
case NS_THEME_TREEVIEW_HEADER_CELL:
|
case NS_THEME_TREEVIEW_HEADER_CELL:
|
||||||
case NS_THEME_TREEVIEW_HEADER_SORTARROW:
|
case NS_THEME_TREEVIEW_HEADER_SORTARROW:
|
||||||
// case NS_THEME_TREEVIEW_TWISTY_OPEN:
|
case NS_THEME_TREEVIEW_TWISTY_OPEN:
|
||||||
case NS_THEME_PROGRESSBAR:
|
case NS_THEME_PROGRESSBAR:
|
||||||
case NS_THEME_PROGRESSBAR_CHUNK:
|
case NS_THEME_PROGRESSBAR_CHUNK:
|
||||||
case NS_THEME_PROGRESSBAR_VERTICAL:
|
case NS_THEME_PROGRESSBAR_VERTICAL:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче