Applied patch [ 584885 ] better colour handling in motif
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16260 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
94a6f0f8d6
commit
edc1cd8baf
@ -561,11 +561,21 @@ void wxApp::DeletePendingObjects()
|
||||
}
|
||||
}
|
||||
|
||||
static char *fallbackResources[] = {
|
||||
"*menuBar.marginHeight: 0",
|
||||
"*menuBar.shadowThickness: 1",
|
||||
"*background: #c0c0c0",
|
||||
"*foreground: black",
|
||||
NULL
|
||||
};
|
||||
|
||||
// Create an application context
|
||||
bool wxApp::OnInitGui()
|
||||
{
|
||||
XtToolkitInitialize() ;
|
||||
wxTheApp->m_appContext = (WXAppContext) XtCreateApplicationContext() ;
|
||||
wxTheApp->m_appContext = (WXAppContext) XtCreateApplicationContext();
|
||||
XtAppSetFallbackResources((XtAppContext) wxTheApp->m_appContext, fallbackResources);
|
||||
|
||||
Display *dpy = XtOpenDisplay((XtAppContext) wxTheApp->m_appContext,(String)NULL,NULL,
|
||||
(const char*) wxTheApp->GetClassName(), NULL, 0,
|
||||
# if XtSpecificationRelease < 5
|
||||
|
@ -19,9 +19,30 @@
|
||||
|
||||
#include "wx/settings.h"
|
||||
#include "wx/gdicmn.h"
|
||||
#include "wx/app.h"
|
||||
|
||||
#ifdef __VMS__
|
||||
#pragma message disable nosimpint
|
||||
#endif
|
||||
#include <Xm/Xm.h>
|
||||
#include <Xm/PushB.h>
|
||||
#ifdef __VMS__
|
||||
#pragma message enable nosimpint
|
||||
#endif
|
||||
|
||||
// To correctly read the resources from the database, we create a
|
||||
// sample widget. This has the application shell as the parent and
|
||||
// so will be destroyed when the applicaion is closed.
|
||||
static Widget but_setting_wid = NULL;
|
||||
|
||||
wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
|
||||
{
|
||||
if (NULL == but_setting_wid && wxTheApp && wxTheApp->GetTopLevelWidget())
|
||||
{
|
||||
but_setting_wid = XtVaCreateWidget("settings_button", xmPushButtonWidgetClass,
|
||||
(Widget)wxTheApp->GetTopLevelWidget(), NULL);
|
||||
}
|
||||
|
||||
switch (index)
|
||||
{
|
||||
case wxSYS_COLOUR_WINDOW:
|
||||
@ -34,6 +55,7 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
|
||||
case wxSYS_COLOUR_ACTIVECAPTION:
|
||||
case wxSYS_COLOUR_INACTIVECAPTION:
|
||||
case wxSYS_COLOUR_MENU:
|
||||
case wxSYS_COLOUR_MENUBAR:
|
||||
case wxSYS_COLOUR_WINDOWFRAME:
|
||||
case wxSYS_COLOUR_ACTIVEBORDER:
|
||||
case wxSYS_COLOUR_INACTIVEBORDER:
|
||||
@ -41,7 +63,18 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
|
||||
// case wxSYS_COLOUR_3DFACE: // Same as wxSYS_COLOUR_BTNFACE
|
||||
case wxSYS_COLOUR_GRAYTEXT:
|
||||
{
|
||||
return wxColour("LIGHT GREY");
|
||||
if (but_setting_wid)
|
||||
{
|
||||
XColor bg;
|
||||
XtVaGetValues(but_setting_wid,
|
||||
XtVaTypedArg, XmNbackground, XtRColor, &bg, sizeof(bg),
|
||||
NULL);
|
||||
return wxColor(bg.red >> 8, bg.green >> 8, bg.blue >> 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
return wxColour("LIGHT GREY");
|
||||
}
|
||||
}
|
||||
case wxSYS_COLOUR_BTNSHADOW:
|
||||
// case wxSYS_COLOUR_3DSHADOW: // Same as wxSYS_COLOUR_BTNSHADOW
|
||||
@ -73,7 +106,18 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
|
||||
case wxSYS_COLOUR_BTNTEXT:
|
||||
case wxSYS_COLOUR_INFOTEXT:
|
||||
{
|
||||
return *wxBLACK;
|
||||
if (but_setting_wid)
|
||||
{
|
||||
XColor fg;
|
||||
XtVaGetValues(but_setting_wid,
|
||||
XtVaTypedArg, XmNforeground, XtRColor, &fg, sizeof(fg),
|
||||
NULL);
|
||||
return wxColor(fg.red >> 8, fg.green >> 8, fg.blue >> 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
return *wxBLACK;
|
||||
}
|
||||
}
|
||||
case wxSYS_COLOUR_HIGHLIGHTTEXT:
|
||||
{
|
||||
@ -82,14 +126,24 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
|
||||
case wxSYS_COLOUR_INFOBK:
|
||||
case wxSYS_COLOUR_APPWORKSPACE:
|
||||
{
|
||||
return wxColour("LIGHT GREY");
|
||||
if (but_setting_wid)
|
||||
{
|
||||
XColor bg;
|
||||
XtVaGetValues(but_setting_wid,
|
||||
XtVaTypedArg, XmNbackground, XtRColor, &bg, sizeof(bg),
|
||||
NULL);
|
||||
return wxColor(bg.red >> 8, bg.green >> 8, bg.blue >> 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
return wxColour("LIGHT GREY");
|
||||
}
|
||||
}
|
||||
|
||||
case wxSYS_COLOUR_HOTLIGHT:
|
||||
case wxSYS_COLOUR_GRADIENTACTIVECAPTION:
|
||||
case wxSYS_COLOUR_GRADIENTINACTIVECAPTION:
|
||||
case wxSYS_COLOUR_MENUHILIGHT:
|
||||
case wxSYS_COLOUR_MENUBAR:
|
||||
// TODO
|
||||
return wxColour("LIGHT GREY");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user