#include "wx/statusbr.h"
#endif //WX_PRECOMP
+#include "wx/settings.h"
#include "wx/x11/private.h"
+#include "X11/Xutil.h"
bool wxMWMIsRunning(Window w);
int xscreen = DefaultScreen( xdisplay );
Visual *xvisual = DefaultVisual( xdisplay, xscreen );
Window xparent = RootWindow( xdisplay, xscreen );
+ Colormap cm = DefaultColormap( xdisplay, xscreen );
+ // TODO: For dialogs, this should be wxSYS_COLOUR_3DFACE
+ m_backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE);
+ m_backgroundColour.CalcPixel( (WXColormap) cm );
+ m_hasBgCol = TRUE;
+
XSetWindowAttributes xattributes;
XSizeHints size_hints;
XWMHints wm_hints;
long xattributes_mask =
CWOverrideRedirect |
CWBorderPixel | CWBackPixel;
- xattributes.background_pixel = BlackPixel( xdisplay, xscreen );
+ xattributes.background_pixel = m_backgroundColour.GetPixel();
xattributes.border_pixel = BlackPixel( xdisplay, xscreen );
+
+ // TODO: if we want no border, caption etc.,
+ // I think we set this to True to remove decorations
xattributes.override_redirect = False;
Window xwindow = XCreateWindow( xdisplay, xparent, pos.x, pos.y, size.x, size.y,
if (icon.GetMask())
{
wmHints->flags |= IconMaskHint;
- wmHints->icon_mask = (Pixmap) icon.GetMask()->GetPixmap();
+ wmHints->icon_mask = (Pixmap) icon.GetMask()->GetBitmap();
}
XSetWMHints(wxGlobalDisplay(), (Window) GetMainWindow(), wmHints);
// smaller
wxPoint wxTopLevelWindowX11::GetClientAreaOrigin() const
{
+ // In fact wxFrame::GetClientAreaOrigin
+ // does the required calculation already.
+#if 0
if (this->IsKindOf(CLASSINFO(wxFrame)))
{
wxFrame* frame = (wxFrame*) this;
if (frame->GetMenuBar())
return wxPoint(0, frame->GetMenuBar()->GetSize().y);
}
+#endif
return wxPoint(0, 0);
}
void wxTopLevelWindowX11::DoGetClientSize( int *width, int *height ) const
{
wxWindowX11::DoGetClientSize(width, height);
+ // Done by wxTopLevelWindow
+#if 0
if (this->IsKindOf(CLASSINFO(wxFrame)))
{
wxFrame* frame = (wxFrame*) this;
if (frame->GetStatusBar())
(*height) -= frame->GetStatusBar()->GetSize().y;
}
+#endif
}
void wxTopLevelWindowX11::DoSetClientSize(int width, int height)
{
- // TODO - take menubar and status line into account
wxWindowX11::DoSetClientSize(width, height);
#if 0
if (!GetMainWindow())