Get/SetTitle only for wxTopLevelWindow (wxX11 part, final)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Włodzimierz Skiba 2005-11-10 12:03:39 +00:00
parent 75865c8dc7
commit ffd84c9476
6 changed files with 212 additions and 237 deletions

View File

@ -154,23 +154,10 @@ public:
// return true if the frame is in fullscreen mode
virtual bool IsFullScreen() const = 0;
#if defined(__WXMSW__) || \
defined(__WXMGL__) || \
defined(__WXMOTIF__) || \
defined(__WXPM__) || \
defined(__WXMAC__) || \
defined(__WXCOCOA__) || \
defined(__WXGTK__)
// FIXME: This is work in progress about moving SetTitle/GetTitle from wxWindow
// to wxTopLevelWindow so initially enabled in wxMSW only to observe results
// and continue on other platforms
// the title (or label, see below) of the window: the text which the
// window shows
// the title of the top level window: the text which the
// window shows usually at the top of the frame/dialog in dedicated bar
virtual void SetTitle(const wxString& title) = 0;
virtual wxString GetTitle() const = 0;
#endif
// Set the shape of the window to the given region.
// Returns true if the platform supports this feature (and the

View File

@ -168,31 +168,11 @@ public:
// window attributes
// -----------------
#if !defined(__WXMSW__) && \
!defined(__WXMGL__) && \
!defined(__WXMOTIF__) && \
!defined(__WXPM__) && \
!defined(__WXMAC__) && \
!defined(__WXCOCOA__) && \
!defined(__WXGTK__)
// FIXME: This is work in progress about moving SetTitle/GetTitle from wxWindow
// to wxTopLevelWindow so initially enabled in wxMSW only to observe results
// and continue on other platforms
virtual void SetTitle( const wxString& WXUNUSED(title) ) {}
virtual wxString GetTitle() const { return wxEmptyString; }
// label is just the same as the title (but for, e.g., buttons it
// makes more sense to speak about labels)
virtual void SetLabel(const wxString& label) { SetTitle(label); }
virtual wxString GetLabel() const { return GetTitle(); }
#else
// label is just the same as the title (but for, e.g., buttons it
// makes more sense to speak about labels)
// label is just the same as the title (but for, e.g., buttons it
// makes more sense to speak about labels), title access
// is available from wxTLW classes only (frames, dialogs)
virtual void SetLabel(const wxString& label) = 0;
virtual wxString GetLabel() const = 0;
#endif
// the window name is used for ressource setting in X, it is not the
// same as the window title/label

View File

@ -46,30 +46,30 @@ public:
virtual ~wxTopLevelWindowX11();
// implement base class pure virtuals
virtual void Maximize(bool maximize = TRUE);
virtual void Maximize(bool maximize = true);
virtual bool IsMaximized() const;
virtual void Iconize(bool iconize = TRUE);
virtual void Iconize(bool iconize = true);
virtual bool IsIconized() const;
virtual void SetIcon(const wxIcon& icon) { SetIcons( wxIconBundle( icon ) ); }
virtual void SetIcons(const wxIconBundle& icons);
virtual void Restore();
virtual bool Show( bool show = TRUE );
virtual bool Show( bool show = true );
virtual bool ShowFullScreen( bool show, long style = wxFULLSCREEN_ALL );
virtual bool IsFullScreen() const { return m_fsIsShowing; }
virtual void SetTitle( const wxString& title);
virtual wxString GetTitle() const;
// implementation
void SetNeedResizeInIdle( bool set = TRUE )
void SetNeedResizeInIdle( bool set = true )
{ m_needResizeInIdle = set; }
void SetConfigureGeometry( int x, int y, int width, int height )
{ m_x = x; m_y = y; m_width = width; m_height = height; }
virtual bool SetShape(const wxRegion& region);
protected:
// common part of all ctors
void Init();
@ -92,7 +92,7 @@ protected:
int width, int height,
int sizeFlags = wxSIZE_AUTO);
virtual void DoGetPosition( int *x, int *y ) const;
// Is the frame currently iconized?
bool m_iconized;
@ -106,7 +106,7 @@ protected:
bool m_fsIsMaximized;
bool m_fsIsShowing;
wxString m_title;
// Geometry
int m_x,m_y,m_width,m_height;
};
@ -115,4 +115,3 @@ protected:
//extern WXDLLEXPORT_DATA(wxWindowList) wxModelessWindows;
#endif // _WX_X11_TOPLEVEL_H_

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: window.h
// Name: wx/x11/window.h
// Purpose: wxWindow class
// Author: Julian Smart
// Modified by:
@ -22,10 +22,10 @@ class WXDLLIMPEXP_CORE wxWindowX11 : public wxWindowBase
{
friend class WXDLLEXPORT wxDC;
friend class WXDLLEXPORT wxWindowDC;
public:
wxWindowX11() { Init(); }
wxWindowX11(wxWindow *parent,
wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
@ -36,36 +36,39 @@ public:
Init();
Create(parent, id, pos, size, style, name);
}
virtual ~wxWindowX11();
bool Create(wxWindow *parent,
wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPanelNameStr);
virtual void Raise();
virtual void Lower();
virtual bool Show( bool show = TRUE );
virtual bool Enable( bool enable = TRUE );
virtual void SetLabel(const wxString& label);
virtual wxString GetLabel() const;
virtual bool Show( bool show = true );
virtual bool Enable( bool enable = true );
virtual void SetFocus();
virtual void WarpPointer(int x, int y);
virtual void Refresh( bool eraseBackground = TRUE,
const wxRect *rect = (const wxRect *) NULL );
virtual void Refresh( bool eraseBackground = true,
const wxRect *rect = (const wxRect *) NULL );
virtual void Update();
virtual bool SetBackgroundColour( const wxColour &colour );
virtual bool SetForegroundColour( const wxColour &colour );
virtual bool SetCursor( const wxCursor &cursor );
virtual bool SetFont( const wxFont &font );
virtual int GetCharHeight() const;
virtual int GetCharWidth() const;
virtual void GetTextExtent(const wxString& string,
@ -74,91 +77,91 @@ public:
int *externalLeading = (int *) NULL,
const wxFont *theFont = (const wxFont *) NULL)
const;
virtual void ScrollWindow( int dx, int dy,
const wxRect* rect = (wxRect *) NULL );
virtual void DoSetSizeHints(int minW, int minH,
int maxW = -1, int maxH = -1,
int incW = -1, int incH = -1);
int maxW = wxDefaultCoord, int maxH = wxDefaultCoord,
int incW = wxDefaultCoord, int incH = wxDefaultCoord);
#if wxUSE_DRAG_AND_DROP
virtual void SetDropTarget( wxDropTarget *dropTarget );
#endif // wxUSE_DRAG_AND_DROP
// Accept files for dragging
virtual void DragAcceptFiles(bool accept);
// Get the unique identifier of a window
virtual WXWindow GetHandle() const { return GetMainWindow(); }
// implementation from now on
// --------------------------
// accessors
// ---------
// Get main X11 window
virtual WXWindow GetMainWindow() const;
// Get X11 window representing the client area
virtual WXWindow GetClientAreaWindow() const;
void SetLastClick(int button, long timestamp)
{ m_lastButton = button; m_lastTS = timestamp; }
int GetLastClickedButton() const { return m_lastButton; }
long GetLastClickTime() const { return m_lastTS; }
// Gives window a chance to do something in response to a size message, e.g.
// arrange status bar, toolbar etc.
virtual bool PreResize();
// Generates paint events from m_updateRegion
void SendPaintEvents();
// Generates paint events from flag
void SendNcPaintEvents();
// Generates erase events from m_clearRegion
void SendEraseEvents();
// Clip to paint region?
bool GetClipPaintRegion() { return m_clipPaintRegion; }
// Return clear region
wxRegion &GetClearRegion() { return m_clearRegion; }
void NeedUpdateNcAreaInIdle( bool update = TRUE ) { m_updateNcArea = update; }
void NeedUpdateNcAreaInIdle( bool update = true ) { m_updateNcArea = update; }
// Inserting into main window instead of client
// window. This is mostly for a wxWindow's own
// scrollbars.
void SetInsertIntoMain( bool insert = TRUE ) { m_insertIntoMain = insert; }
void SetInsertIntoMain( bool insert = true ) { m_insertIntoMain = insert; }
bool GetInsertIntoMain() { return m_insertIntoMain; }
// sets the fore/background colour for the given widget
static void DoChangeForegroundColour(WXWindow widget, wxColour& foregroundColour);
static void DoChangeBackgroundColour(WXWindow widget, wxColour& backgroundColour, bool changeArmColour = FALSE);
static void DoChangeBackgroundColour(WXWindow widget, wxColour& backgroundColour, bool changeArmColour = false);
// I don't want users to override what's done in idle so everything that
// has to be done in idle time in order for wxX11 to work is done in
// OnInternalIdle
virtual void OnInternalIdle();
protected:
// Responds to colour changes: passes event on to children.
void OnSysColourChanged(wxSysColourChangedEvent& event);
// For double-click detection
long m_lastTS; // last timestamp
int m_lastButton; // last pressed button
protected:
WXWindow m_mainWindow;
WXWindow m_clientWindow;
bool m_insertIntoMain;
bool m_winCaptured;
wxRegion m_clearRegion;
bool m_clipPaintRegion;
@ -182,11 +185,11 @@ protected:
#if wxUSE_TOOLTIPS
virtual void DoSetToolTip( wxToolTip *tip );
#endif // wxUSE_TOOLTIPS
private:
// common part of all ctors
void Init();
DECLARE_DYNAMIC_CLASS(wxWindowX11)
DECLARE_NO_COPY_CLASS(wxWindowX11)
DECLARE_EVENT_TABLE()
@ -208,12 +211,11 @@ class WXDLLEXPORT wxNoOptimize
public:
wxNoOptimize() { ms_count++; }
~wxNoOptimize() { ms_count--; }
static bool CanOptimize() { return ms_count == 0; }
protected:
static int ms_count;
};
#endif
// _WX_WINDOW_H_
#endif // _WX_WINDOW_H_

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////
// Name: x11/toplevel.cpp
// Name: src/x11/toplevel.cpp
// Purpose: implements wxTopLevelWindow for X11
// Author: Julian Smart
// Modified by:
@ -50,20 +50,20 @@ bool wxMWMIsRunning(Window w);
void wxTopLevelWindowX11::Init()
{
m_iconized =
m_maximizeOnShow = FALSE;
m_maximizeOnShow = false;
// unlike (almost?) all other windows, frames are created hidden
m_isShown = FALSE;
m_isShown = false;
// Data to save/restore when calling ShowFullScreen
m_fsStyle = 0;
m_fsIsMaximized = FALSE;
m_fsIsShowing = FALSE;
m_needResizeInIdle = FALSE;
m_x = -1;
m_y = -1;
m_fsIsMaximized = false;
m_fsIsShowing = false;
m_needResizeInIdle = false;
m_x = wxDefaultCoord;
m_y = wxDefaultCoord;
m_width = 20;
m_height = 20;
}
@ -84,45 +84,45 @@ bool wxTopLevelWindowX11::Create(wxWindow *parent,
SetName(name);
m_windowId = id == -1 ? NewControlId() : id;
m_windowId = id == wxID_ANY ? NewControlId() : id;
if (parent)
parent->AddChild(this);
wxTopLevelWindows.Append(this);
Display *xdisplay = wxGlobalDisplay();
int xscreen = DefaultScreen( xdisplay );
Visual *xvisual = DefaultVisual( xdisplay, xscreen );
Window xparent = RootWindow( xdisplay, xscreen );
Colormap cm = DefaultColormap( xdisplay, xscreen );
if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)
m_backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE);
else
m_backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE);
m_backgroundColour.CalcPixel( (WXColormap) cm );
m_hasBgCol = TRUE;
m_hasBgCol = true;
m_x = pos.x;
if (m_x < -1)
m_x = 10;
m_y = pos.y;
if (m_y < 0)
m_y = 10;
m_width = size.x;
if (m_width < 0)
m_width = 500;
m_height = size.y;
if (m_height < 0)
m_height = 380;
#if !wxUSE_NANOX
XSetWindowAttributes xattributes;
long xattributes_mask =
CWBorderPixel | CWBackPixel;
@ -134,27 +134,27 @@ bool wxTopLevelWindowX11::Create(wxWindow *parent,
xattributes_mask |= CWOverrideRedirect;
xattributes.override_redirect = True;
}
if (!HasFlag( wxFULL_REPAINT_ON_RESIZE ))
{
xattributes_mask |= CWBitGravity;
xattributes.bit_gravity = NorthWestGravity;
}
xattributes_mask |= CWEventMask;
xattributes.event_mask =
xattributes.event_mask =
ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
ButtonMotionMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask |
KeymapStateMask | FocusChangeMask | ColormapChangeMask | StructureNotifyMask |
PropertyChangeMask;
Window xwindow = XCreateWindow( xdisplay, xparent, m_x, m_y, m_width, m_height,
0, DefaultDepth(xdisplay,xscreen), InputOutput, xvisual, xattributes_mask, &xattributes );
#else
long backColor, foreColor;
backColor = GR_RGB(m_backgroundColour.Red(), m_backgroundColour.Green(), m_backgroundColour.Blue());
foreColor = GR_RGB(m_foregroundColour.Red(), m_foregroundColour.Green(), m_foregroundColour.Blue());
Window xwindow = XCreateWindowWithColor( xdisplay, xparent, m_x, m_y, m_width, m_height,
0, 0, InputOutput, xvisual, backColor, foreColor);
#endif
@ -213,11 +213,11 @@ bool wxTopLevelWindowX11::Create(wxWindow *parent,
size_hints.height = m_height;
size_hints.win_gravity = NorthWestGravity;
XSetWMNormalHints( xdisplay, xwindow, &size_hints);
XWMHints wm_hints;
wm_hints.flags = InputHint | StateHint;
if (GetParent())
{
{
wm_hints.flags |= WindowGroupHint;
wm_hints.window_group = (Window) GetParent()->GetMainWindow();
}
@ -231,12 +231,12 @@ bool wxTopLevelWindowX11::Create(wxWindow *parent,
XSetWMProtocols( xdisplay, xwindow, wm_protocols, 2);
#endif
wxSetWMDecorations( xwindow, style);
SetTitle(title);
return TRUE;
return true;
}
wxTopLevelWindowX11::~wxTopLevelWindowX11()
@ -259,7 +259,7 @@ wxTopLevelWindowX11::~wxTopLevelWindowX11()
void wxTopLevelWindowX11::OnInternalIdle()
{
wxWindow::OnInternalIdle();
// Do this only after the last idle event so that
// all windows have been updated before a new
// round of size events is sent
@ -268,8 +268,8 @@ void wxTopLevelWindowX11::OnInternalIdle()
wxSizeEvent event( GetClientSize(), GetId() );
event.SetEventObject( this );
GetEventHandler()->ProcessEvent( event );
m_needResizeInIdle = FALSE;
m_needResizeInIdle = false;
}
}
@ -282,15 +282,15 @@ bool wxTopLevelWindowX11::Show(bool show)
if (show)
{
wxSizeEvent event(GetSize(), GetId());
event.SetEventObject(this);
GetEventHandler()->ProcessEvent(event);
m_needResizeInIdle = FALSE;
m_needResizeInIdle = false;
}
bool ret = wxWindowX11::Show(show);
return ret;
}
@ -306,7 +306,7 @@ void wxTopLevelWindowX11::Maximize(bool maximize)
bool wxTopLevelWindowX11::IsMaximized() const
{
// TODO
return TRUE;
return true;
}
void wxTopLevelWindowX11::Iconize(bool iconize)
@ -315,7 +315,7 @@ void wxTopLevelWindowX11::Iconize(bool iconize)
{
if (XIconifyWindow(wxGlobalDisplay(),
(Window) GetMainWindow(), DefaultScreen(wxGlobalDisplay())) != 0)
m_iconized = TRUE;
m_iconized = true;
}
}
@ -330,7 +330,7 @@ void wxTopLevelWindowX11::Restore()
if (m_iconized && GetMainWindow())
{
XMapWindow(wxGlobalDisplay(), (Window) GetMainWindow());
m_iconized = FALSE;
m_iconized = false;
}
}
@ -343,24 +343,24 @@ bool wxTopLevelWindowX11::ShowFullScreen(bool show, long style)
if (show)
{
if (IsFullScreen())
return FALSE;
return false;
m_fsIsShowing = TRUE;
m_fsIsShowing = true;
m_fsStyle = style;
// TODO
return TRUE;
return true;
}
else
{
if (!IsFullScreen())
return FALSE;
return false;
m_fsIsShowing = FALSE;
m_fsIsShowing = false;
// TODO
return TRUE;
return true;
}
}
@ -410,7 +410,7 @@ bool wxTopLevelWindowX11::SetShape(const wxRegion& region)
void wxTopLevelWindowX11::SetTitle(const wxString& title)
{
m_title = title;
if (GetMainWindow())
{
#if wxUSE_UNICODE
@ -467,12 +467,12 @@ void wxTopLevelWindowX11::DoSetClientSize(int width, int height)
m_width = width;
m_height = height;
if (m_width == old_width && m_height == old_height)
return;
// wxLogDebug("DoSetClientSize: %s (%ld) %dx%d", GetClassInfo()->GetClassName(), GetId(), width, height);
#if !wxUSE_NANOX
XSizeHints size_hints;
size_hints.flags = PSize;
@ -480,7 +480,7 @@ void wxTopLevelWindowX11::DoSetClientSize(int width, int height)
size_hints.height = height;
XSetWMNormalHints( wxGlobalDisplay(), (Window) GetMainWindow(), &size_hints );
#endif
wxWindowX11::DoSetClientSize(width, height);
}
@ -491,24 +491,24 @@ void wxTopLevelWindowX11::DoSetSize(int x, int y, int width, int height, int siz
int old_width = m_width;
int old_height = m_height;
if (x != -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
if (x != wxDefaultCoord || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
m_x = x;
if (y != -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
if (y != wxDefaultCoord || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
m_y = y;
if (width != -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
if (width != wxDefaultCoord || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
m_width = width;
if (height != -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
if (height != wxDefaultCoord || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
m_height = height;
if (m_x == old_x && m_y == old_y && m_width == old_width && m_height == old_height)
return;
// wxLogDebug("DoSetSize: %s (%ld) %d, %d %dx%d", GetClassInfo()->GetClassName(), GetId(), x, y, width, height);
#if !wxUSE_NANOX
#if !wxUSE_NANOX
XSizeHints size_hints;
size_hints.flags = 0;
size_hints.flags |= PPosition;
@ -521,7 +521,7 @@ void wxTopLevelWindowX11::DoSetSize(int x, int y, int width, int height, int siz
#endif
wxWindowX11::DoSetSize(x, y, width, height, sizeFlags);
#if 0
Display *display = wxGlobalDisplay();
Window root = RootWindowOfScreen(DefaultScreenOfDisplay(display));
@ -551,20 +551,20 @@ void wxTopLevelWindowX11::DoSetSize(int x, int y, int width, int height, int siz
windowChanges.stack_mode = 0;
int valueMask = CWX | CWY | CWWidth | CWHeight;
if (x != -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
if (x != wxDefaultCoord || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
{
valueMask |= CWX;
}
if (y != -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
if (y != wxDefaultCoord || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
{
valueMask |= CWY;
}
if (width != -1)
if (width != wxDefaultCoord)
{
windowChanges.width = wxMax(1, width);
valueMask |= CWWidth;
}
if (height != -1)
if (height != wxDefaultCoord)
{
windowChanges.height = wxMax(1, height);
valueMask |= CWHeight;
@ -651,7 +651,7 @@ void wxTopLevelWindowX11::DoGetPosition(int *x, int *y) const
#define MWM_INPUT_FULL_APPLICATION_MODAL 3
#define MWM_INPUT_APPLICATION_MODAL MWM_INPUT_PRIMARY_APPLICATION_MODAL
#define MWM_TEAROFF_WINDOW (1L<<0)
#define MWM_TEAROFF_WINDOW (1L<<0)
#endif
@ -729,18 +729,18 @@ bool wxSetWMDecorations(Window w, long style)
}
GrSetWMProperties(w, & wmProp);
#else
Atom mwm_wm_hints = XInternAtom(wxGlobalDisplay(),"_MOTIF_WM_HINTS", False);
if (mwm_wm_hints == 0)
return FALSE;
return false;
MwmHints hints;
hints.flags = MWM_HINTS_DECORATIONS | MWM_HINTS_FUNCTIONS;
hints.decorations = 0;
hints.functions = 0;
if ((style & wxSIMPLE_BORDER) || (style & wxNO_BORDER))
{
// leave zeros
@ -752,25 +752,25 @@ bool wxSetWMDecorations(Window w, long style)
if ((style & wxCAPTION) != 0)
hints.decorations |= MWM_DECOR_TITLE;
if ((style & wxSYSTEM_MENU) != 0)
hints.decorations |= MWM_DECOR_MENU;
if ((style & wxCLOSE_BOX) != 0)
hints.functions |= MWM_FUNC_CLOSE;
if ((style & wxMINIMIZE_BOX) != 0)
{
hints.functions |= MWM_FUNC_MINIMIZE;
hints.decorations |= MWM_DECOR_MINIMIZE;
}
if ((style & wxMAXIMIZE_BOX) != 0)
{
hints.functions |= MWM_FUNC_MAXIMIZE;
hints.decorations |= MWM_DECOR_MAXIMIZE;
}
if ((style & wxRESIZE_BORDER) != 0)
{
hints.functions |= MWM_FUNC_RESIZE;
@ -779,13 +779,11 @@ bool wxSetWMDecorations(Window w, long style)
}
XChangeProperty(wxGlobalDisplay(),
w,
mwm_wm_hints, mwm_wm_hints,
32, PropModeReplace,
(unsigned char *) &hints, PROP_MOTIF_WM_HINTS_ELEMENTS);
w,
mwm_wm_hints, mwm_wm_hints,
32, PropModeReplace,
(unsigned char *) &hints, PROP_MOTIF_WM_HINTS_ELEMENTS);
#endif
return TRUE;
return true;
}

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: windows.cpp
// Name: src/x11/windows.cpp
// Purpose: wxWindow
// Author: Julian Smart
// Modified by:
@ -96,24 +96,24 @@ void wxWindowX11::Init()
// X11-specific
m_mainWindow = (WXWindow) 0;
m_clientWindow = (WXWindow) 0;
m_insertIntoMain = FALSE;
m_updateNcArea = FALSE;
m_insertIntoMain = false;
m_updateNcArea = false;
m_winCaptured = FALSE;
m_needsInputFocus = FALSE;
m_isShown = TRUE;
m_winCaptured = false;
m_needsInputFocus = false;
m_isShown = true;
m_lastTS = 0;
m_lastButton = 0;
}
// real construction (Init() must have been called before!)
bool wxWindowX11::Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name)
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name)
{
wxCHECK_MSG( parent, FALSE, wxT("can't create wxWindow without parent") );
wxCHECK_MSG( parent, false, wxT("can't create wxWindow without parent") );
CreateBase(parent, id, pos, size, style, wxDefaultValidator, name);
@ -148,16 +148,16 @@ bool wxWindowX11::Create(wxWindow *parent, wxWindowID id,
size2.y = 20;
wxPoint pos2(pos);
if (pos2.x == -1)
if (pos2.x == wxDefaultCoord)
pos2.x = 0;
if (pos2.y == -1)
if (pos2.y == wxDefaultCoord)
pos2.y = 0;
#if wxUSE_TWO_WINDOWS
bool need_two_windows =
((( wxSUNKEN_BORDER | wxRAISED_BORDER | wxSIMPLE_BORDER | wxHSCROLL | wxVSCROLL ) & m_windowStyle) != 0);
#else
bool need_two_windows = FALSE;
bool need_two_windows = false;
#endif
#if wxUSE_NANOX
@ -314,7 +314,7 @@ bool wxWindowX11::Create(wxWindow *parent, wxWindowID id,
}
// Is a subwindow, so map immediately
m_isShown = TRUE;
m_isShown = true;
// Without this, the cursor may not be restored properly (e.g. in splitter
// sample).
@ -325,7 +325,7 @@ bool wxWindowX11::Create(wxWindow *parent, wxWindowID id,
// for example
// SetSize(pos.x, pos.y, size.x, size.y);
return TRUE;
return true;
}
// Destructor
@ -336,7 +336,7 @@ wxWindowX11::~wxWindowX11()
if (g_captureWindow == this)
g_captureWindow = NULL;
m_isBeingDeleted = TRUE;
m_isBeingDeleted = true;
DestroyChildren();
@ -385,11 +385,11 @@ void wxWindowX11::SetFocus()
wxLogTrace( _T("focus"), _T("wxWindowX11::SetFocus: %s"), GetClassInfo()->GetClassName());
// XSetInputFocus( wxGlobalDisplay(), xwindow, RevertToParent, CurrentTime );
XSetInputFocus( wxGlobalDisplay(), xwindow, RevertToNone, CurrentTime );
m_needsInputFocus = FALSE;
m_needsInputFocus = false;
}
else
{
m_needsInputFocus = TRUE;
m_needsInputFocus = true;
}
}
@ -419,9 +419,9 @@ wxWindow *wxWindowBase::DoFindFocus()
bool wxWindowX11::Enable(bool enable)
{
if ( !wxWindowBase::Enable(enable) )
return FALSE;
return false;
return TRUE;
return true;
}
bool wxWindowX11::Show(bool show)
@ -441,7 +441,7 @@ bool wxWindowX11::Show(bool show)
XUnmapWindow(xdisp, xwindow);
}
return TRUE;
return true;
}
// Raise the window to the top of the Z order
@ -458,11 +458,22 @@ void wxWindowX11::Lower()
XLowerWindow( wxGlobalDisplay(), (Window) m_mainWindow );
}
void wxWindowX11::SetLabel(const wxString& WXUNUSED(label))
{
// TODO
}
wxString wxWindowX11::GetLabel() const
{
// TODO
return wxEmptyString;
}
void wxWindowX11::DoCaptureMouse()
{
if ((g_captureWindow != NULL) && (g_captureWindow != this))
{
wxASSERT_MSG(FALSE, wxT("Trying to capture before mouse released."));
wxASSERT_MSG(false, wxT("Trying to capture before mouse released."));
// Core dump now
int *tmp = NULL;
@ -502,7 +513,7 @@ void wxWindowX11::DoCaptureMouse()
return;
}
m_winCaptured = TRUE;
m_winCaptured = true;
}
}
@ -522,7 +533,7 @@ void wxWindowX11::DoReleaseMouse()
// wxLogDebug( "Ungrabbed pointer in %s", GetName().c_str() );
m_winCaptured = FALSE;
m_winCaptured = false;
}
bool wxWindowX11::SetFont(const wxFont& font)
@ -530,10 +541,10 @@ bool wxWindowX11::SetFont(const wxFont& font)
if ( !wxWindowBase::SetFont(font) )
{
// nothing to do
return FALSE;
return false;
}
return TRUE;
return true;
}
bool wxWindowX11::SetCursor(const wxCursor& cursor)
@ -541,12 +552,12 @@ bool wxWindowX11::SetCursor(const wxCursor& cursor)
if ( !wxWindowBase::SetCursor(cursor) )
{
// no change
return FALSE;
return false;
}
Window xwindow = (Window) m_clientWindow;
wxCHECK_MSG( xwindow, FALSE, wxT("invalid window") );
wxCHECK_MSG( xwindow, false, wxT("invalid window") );
wxCursor cursorToUse;
if (m_cursor.Ok())
@ -558,7 +569,7 @@ bool wxWindowX11::SetCursor(const wxCursor& cursor)
XDefineCursor( wxGlobalDisplay(), xwindow, xcursor );
return TRUE;
return true;
}
// Coordinates relative to the window
@ -727,7 +738,7 @@ void wxWindowX11::DoSetToolTip(wxToolTip * WXUNUSED(tooltip))
bool wxWindowX11::PreResize()
{
return TRUE;
return true;
}
// Get total size
@ -838,25 +849,25 @@ void wxWindowX11::DoSetSize(int x, int y, int width, int height, int sizeFlags)
int new_w = attr.width;
int new_h = attr.height;
if (x != -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
if (x != wxDefaultCoord || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
{
int yy = 0;
AdjustForParentClientOrigin( x, yy, sizeFlags);
new_x = x;
}
if (y != -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
if (y != wxDefaultCoord || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
{
int xx = 0;
AdjustForParentClientOrigin( xx, y, sizeFlags);
new_y = y;
}
if (width != -1)
if (width != wxDefaultCoord)
{
new_w = width;
if (new_w <= 0)
new_w = 20;
}
if (height != -1)
if (height != wxDefaultCoord)
{
new_h = height;
if (new_h <= 0)
@ -1047,16 +1058,16 @@ int wxWindowX11::GetCharWidth() const
}
void wxWindowX11::GetTextExtent(const wxString& string,
int *x, int *y,
int *descent, int *externalLeading,
const wxFont *theFont) const
int *x, int *y,
int *descent, int *externalLeading,
const wxFont *theFont) const
{
wxFont fontToUse = GetFont();
if (theFont) fontToUse = *theFont;
wxCHECK_RET( fontToUse.Ok(), wxT("invalid font") );
if (string.IsEmpty())
if (string.empty())
{
if (x) (*x) = 0;
if (y) (*y) = 0;
@ -1201,7 +1212,7 @@ void wxWindowX11::SendPaintEvents()
{
// wxLogDebug("SendPaintEvents: %s (%ld)", GetClassInfo()->GetClassName(), GetId());
m_clipPaintRegion = TRUE;
m_clipPaintRegion = true;
wxPaintEvent paint_event( GetId() );
paint_event.SetEventObject( this );
@ -1209,7 +1220,7 @@ void wxWindowX11::SendPaintEvents()
m_updateRegion.Clear();
m_clipPaintRegion = FALSE;
m_clipPaintRegion = false;
}
void wxWindowX11::SendNcPaintEvents()
@ -1249,7 +1260,7 @@ void wxWindowX11::SendNcPaintEvents()
nc_paint_event.SetEventObject( this );
GetEventHandler()->ProcessEvent( nc_paint_event );
m_updateNcArea = FALSE;
m_updateNcArea = false;
}
// ----------------------------------------------------------------------------
@ -1300,7 +1311,7 @@ void wxWindowX11::OnInternalIdle()
// If it couldn't set the focus now, there's
// no point in trying again.
m_needsInputFocus = FALSE;
m_needsInputFocus = false;
}
g_GettingFocus = NULL;
}
@ -1315,13 +1326,13 @@ static bool DoAddWindowToTable(wxWindowHash *hash, Window w, wxWindow *win)
{
wxLogDebug( wxT("Widget table clash: new widget is 0x%08x, %s"),
(unsigned int)w, win->GetClassInfo()->GetClassName());
return FALSE;
return false;
}
wxLogTrace( wxT("widget"), wxT("XWindow 0x%08x <-> window %p (%s)"),
(unsigned int) w, win, win->GetClassInfo()->GetClassName());
return TRUE;
return true;
}
static inline wxWindow *DoGetWindowFromTable(wxWindowHash *hash, Window w)
@ -1478,11 +1489,11 @@ bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Window window,
{
eventType = wxEVT_RIGHT_UP;
}
else return FALSE;
else return false;
}
else
{
return FALSE;
return false;
}
wxevent.SetEventType(eventType);
@ -1508,10 +1519,10 @@ bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Window window,
wxevent.SetId(win->GetId());
wxevent.SetEventObject(win);
return TRUE;
return true;
}
}
return FALSE;
return false;
}
bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Window WXUNUSED(win), XEvent *xevent, bool isAscii)
@ -1551,7 +1562,7 @@ bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Window WXUNUSED(win
default:
break;
}
return FALSE;
return false;
}
// ----------------------------------------------------------------------------
@ -1572,15 +1583,15 @@ bool wxWindowX11::SetBackgroundColour(const wxColour& col)
// the background ourselves.
// XSetWindowBackground( xdisplay, (Window) m_clientWindow, m_backgroundColour.GetPixel() );
return TRUE;
return true;
}
bool wxWindowX11::SetForegroundColour(const wxColour& col)
{
if ( !wxWindowBase::SetForegroundColour(col) )
return FALSE;
return false;
return TRUE;
return true;
}
// ----------------------------------------------------------------------------
@ -1662,7 +1673,7 @@ bool wxWinModule::OnInit()
g_eraseGC = XCreateGC( xdisplay, xroot, 0, NULL );
XSetFillStyle( xdisplay, g_eraseGC, FillSolid );
return TRUE;
return true;
}
void wxWinModule::OnExit()
@ -1670,5 +1681,3 @@ void wxWinModule::OnExit()
Display *xdisplay = wxGlobalDisplay();
XFreeGC( xdisplay, g_eraseGC );
}