Bug 118299 - "NS_THEME_RESIZER implementation (GTK)" [p=ventnor.bugzilla@yahoo.com.au (Michael Ventnor) r+sr+a1.9=roc]

This commit is contained in:
reed@reedloden.com 2007-11-08 23:32:54 -08:00
parent 27a0532bd8
commit 23946514cf
3 changed files with 32 additions and 1 deletions

View File

@ -1283,6 +1283,24 @@ moz_gtk_tooltip_paint(GdkDrawable* drawable, GdkRectangle* rect,
return MOZ_GTK_SUCCESS;
}
static gint
moz_gtk_resizer_paint(GdkDrawable* drawable, GdkRectangle* rect,
GdkRectangle* cliprect, GtkWidgetState* state)
{
GtkStyle* style;
GtkStateType state_type = ConvertGtkState(state);
ensure_window_widget();
style = gProtoWindow->style;
TSOffsetStyleGCs(style, rect->x, rect->y);
gtk_paint_resize_grip(style, drawable, state_type, cliprect, gProtoWindow,
NULL, GDK_WINDOW_EDGE_SOUTH_EAST, rect->x, rect->y,
rect->width, rect->height);
return MOZ_GTK_SUCCESS;
}
static gint
moz_gtk_frame_paint(GdkDrawable* drawable, GdkRectangle* rect,
GdkRectangle* cliprect)
@ -1773,6 +1791,7 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
/* These widgets have no borders.*/
case MOZ_GTK_TOOLTIP:
case MOZ_GTK_WINDOW:
case MOZ_GTK_RESIZER:
*left = *top = *right = *bottom = 0;
return MOZ_GTK_SUCCESS;
default:
@ -1921,6 +1940,9 @@ moz_gtk_widget_paint(GtkThemeWidgetType widget, GdkDrawable* drawable,
case MOZ_GTK_FRAME:
return moz_gtk_frame_paint(drawable, rect, cliprect);
break;
case MOZ_GTK_RESIZER:
return moz_gtk_resizer_paint(drawable, rect, cliprect, state);
break;
case MOZ_GTK_PROGRESSBAR:
return moz_gtk_progressbar_paint(drawable, rect, cliprect);
break;

View File

@ -143,6 +143,8 @@ typedef enum {
MOZ_GTK_TOOLTIP,
/* Paints a GtkFrame (e.g. a status bar panel). */
MOZ_GTK_FRAME,
/* Paints a resize grip for a GtkWindow */
MOZ_GTK_RESIZER,
/* Paints a GtkProgressBar. */
MOZ_GTK_PROGRESSBAR,
/* Paints a progress chunk of a GtkProgressBar. */

View File

@ -362,6 +362,9 @@ nsNativeThemeGTK::GetGtkWidgetAndState(PRUint8 aWidgetType, nsIFrame* aFrame,
case NS_THEME_TOOLBAR_GRIPPER:
aGtkWidgetType = MOZ_GTK_GRIPPER;
break;
case NS_THEME_RESIZER:
aGtkWidgetType = MOZ_GTK_RESIZER;
break;
case NS_THEME_TEXTFIELD:
case NS_THEME_TEXTFIELD_MULTILINE:
case NS_THEME_DROPDOWN_TEXTFIELD:
@ -854,6 +857,10 @@ nsNativeThemeGTK::GetMinimumWidgetSize(nsIRenderingContext* aContext,
aResult->width = 14;
aResult->height = 13;
break;
case NS_THEME_RESIZER:
// same as Windows to make our lives easier
aResult->width = aResult->height = 15;
break;
}
return NS_OK;
@ -943,7 +950,7 @@ nsNativeThemeGTK::ThemeSupportsWidget(nsPresContext* aPresContext,
case NS_THEME_TOOLBAR_GRIPPER:
case NS_THEME_STATUSBAR:
case NS_THEME_STATUSBAR_PANEL:
// case NS_THEME_RESIZER: (n/a for gtk)
case NS_THEME_RESIZER:
case NS_THEME_LISTBOX:
// case NS_THEME_LISTBOX_LISTITEM:
case NS_THEME_TREEVIEW: