get wxSYS_COLOUR_MENU from a menu bar and not from a button (patch 1887197)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51621 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-02-09 23:35:16 +00:00
parent 4db3720881
commit 3ab6b7e64c

View File

@@ -47,7 +47,8 @@ struct wxSystemObjects
m_colBtnText, m_colBtnText,
m_colMenuItemHighlight, m_colMenuItemHighlight,
m_colTooltip, m_colTooltip,
m_colTooltipText; m_colTooltipText,
m_colMenubarBg;
wxFont m_fontSystem; wxFont m_fontSystem;
}; };
@@ -67,6 +68,7 @@ void wxClearGtkSystemObjects()
gs_objects.m_colMenuItemHighlight = wxColour(); gs_objects.m_colMenuItemHighlight = wxColour();
gs_objects.m_colTooltip = wxColour(); gs_objects.m_colTooltip = wxColour();
gs_objects.m_colTooltipText = wxColour(); gs_objects.m_colTooltipText = wxColour();
gs_objects.m_colMenubarBg = wxColour();
gs_objects.m_fontSystem = wxNullFont; gs_objects.m_fontSystem = wxNullFont;
} }
@@ -80,7 +82,8 @@ enum wxGtkWidgetType
wxGTK_BUTTON, wxGTK_BUTTON,
wxGTK_LIST, wxGTK_LIST,
wxGTK_MENUITEM, wxGTK_MENUITEM,
wxGTK_TEXTCTRL wxGTK_TEXTCTRL,
wxGTK_MENUBAR,
}; };
// the colour we need // the colour we need
@@ -120,6 +123,11 @@ static bool GetColourFromGTKWidget(GdkColor& gdkColor,
case wxGTK_MENUITEM: case wxGTK_MENUITEM:
widget = gtk_menu_item_new(); widget = gtk_menu_item_new();
case wxGTK_MENUBAR:
widget = gtk_menu_bar_new();
break;
} }
GtkStyle *def = gtk_rc_get_style( widget ); GtkStyle *def = gtk_rc_get_style( widget );
@@ -185,7 +193,6 @@ wxColour wxSystemSettingsNative::GetColour( wxSystemColour index )
case wxSYS_COLOUR_ACTIVEBORDER: case wxSYS_COLOUR_ACTIVEBORDER:
case wxSYS_COLOUR_INACTIVEBORDER: case wxSYS_COLOUR_INACTIVEBORDER:
case wxSYS_COLOUR_BTNFACE: case wxSYS_COLOUR_BTNFACE:
case wxSYS_COLOUR_MENUBAR:
case wxSYS_COLOUR_3DLIGHT: case wxSYS_COLOUR_3DLIGHT:
if (!gs_objects.m_colBtnFace.Ok()) if (!gs_objects.m_colBtnFace.Ok())
{ {
@@ -210,6 +217,19 @@ wxColour wxSystemSettingsNative::GetColour( wxSystemColour index )
color = gs_objects.m_colWindow; color = gs_objects.m_colWindow;
break; break;
case wxSYS_COLOUR_MENUBAR:
if (!gs_objects.m_colMenubarBg.Ok())
{
gdkColor.red =
gdkColor.green = 0;
gdkColor.blue = 0x9c40;
GetColourFromGTKWidget(gdkColor,wxGTK_MENUBAR);
gs_objects.m_colMenubarBg = wxColor(gdkColor);
}
color = gs_objects.m_colMenubarBg;
break;
case wxSYS_COLOUR_3DDKSHADOW: case wxSYS_COLOUR_3DDKSHADOW:
color = *wxBLACK; color = *wxBLACK;
break; break;