зеркало из https://github.com/mozilla/pjs.git
Classic skin polish (46613) - get the real gtk tooltip color so the tooltips look right. r=pavlov, ben.
This commit is contained in:
Родитель
671595076f
Коммит
dc44a8ea93
|
@ -28,6 +28,9 @@
|
|||
#define GDK_COLOR_TO_NS_RGB(c) \
|
||||
((nscolor) NS_RGB(c.red>>8, c.green>>8, c.blue>>8))
|
||||
|
||||
nscolor nsLookAndFeel::sInfoText = 0;
|
||||
nscolor nsLookAndFeel::sInfoBackground = 0;
|
||||
PRBool nsLookAndFeel::sHaveInfoColors = PR_FALSE;
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsLookAndFeel, nsILookAndFeel)
|
||||
|
||||
|
@ -139,10 +142,14 @@ NS_IMETHODIMP nsLookAndFeel::GetColor(const nsColorID aID, nscolor &aColor)
|
|||
aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_INSENSITIVE]);
|
||||
break;
|
||||
case eColor_infobackground:
|
||||
aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]);
|
||||
if (!sHaveInfoColors)
|
||||
GetInfoColors();
|
||||
aColor = sInfoBackground;
|
||||
break;
|
||||
case eColor_infotext:
|
||||
aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]);
|
||||
if (!sHaveInfoColors)
|
||||
GetInfoColors();
|
||||
aColor = sInfoText;
|
||||
break;
|
||||
case eColor_menu:
|
||||
aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]);
|
||||
|
@ -342,6 +349,22 @@ NS_IMETHODIMP nsLookAndFeel::GetMetric(const nsMetricFloatID aID, float & aMetri
|
|||
return res;
|
||||
}
|
||||
|
||||
void
|
||||
nsLookAndFeel::GetInfoColors()
|
||||
{
|
||||
GtkTooltips *tooltips = gtk_tooltips_new();
|
||||
gtk_tooltips_force_window(tooltips);
|
||||
GtkWidget *tip_window = tooltips->tip_window;
|
||||
gtk_widget_set_rc_style(tip_window);
|
||||
|
||||
GtkStyle *tipstyle = gtk_widget_get_style(tip_window);
|
||||
sInfoBackground = GDK_COLOR_TO_NS_RGB(tipstyle->bg[GTK_STATE_NORMAL]);
|
||||
sInfoText = GDK_COLOR_TO_NS_RGB(tipstyle->fg[GTK_STATE_NORMAL]);
|
||||
sHaveInfoColors = PR_TRUE;
|
||||
|
||||
gtk_object_unref(GTK_OBJECT(tooltips));
|
||||
}
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
NS_IMETHODIMP nsLookAndFeel::GetNavSize(const nsMetricNavWidgetID aWidgetID,
|
||||
const nsMetricNavFontID aFontID,
|
||||
|
|
|
@ -52,6 +52,14 @@ protected:
|
|||
GtkStyle *mStyle;
|
||||
GtkWidget *mWidget;
|
||||
nsCOMPtr<nsILookAndFeel> mXPLookAndFeel;
|
||||
|
||||
// Cached colors, we have to create a dummy widget to actually
|
||||
// get the style
|
||||
static PRBool sHaveInfoColors;
|
||||
static nscolor sInfoBackground;
|
||||
static nscolor sInfoText;
|
||||
|
||||
static void GetInfoColors();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче