]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/window.cpp
mac encodings support
[wxWidgets.git] / src / motif / window.cpp
index d9555d591706e7e4519c9d11dee7b4d9752b3de1..423526f7388d818c2475b688c39ceb4eab638ecb 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "window.h"
 #endif
 
@@ -200,9 +200,6 @@ bool wxWindow::MapOrUnmap(WXWidget widget, bool domap)
 
 void wxWindow::Init()
 {
-    // generic initializations first
-    InitBase();
-
     // Motif-specific
     m_needsRefresh = TRUE;
     m_mainWidget = (WXWidget) 0;
@@ -210,7 +207,6 @@ void wxWindow::Init()
     m_winCaptured = FALSE;
 
     m_isShown = TRUE;
-    m_isBeingDeleted = FALSE;
     
     m_hScrollBar =
     m_vScrollBar =
@@ -374,9 +370,6 @@ wxWindow::~wxWindow()
         DetachWidget(wMain);
     }
 
-    if ( m_parent )
-        m_parent->RemoveChild( this );
-
     // If m_drawingArea, we're a fully-fledged window with drawing area,
     // scrollbars etc. (what wxCanvas used to be)
     if ( m_drawingArea )
@@ -577,7 +570,7 @@ wxWindow *wxWindowBase::FindFocus()
     // (2) The widget with the focus may not be in the widget table
     // depending on which widgets I put in the table
     wxWindow *winFocus = (wxWindow *)NULL;
-    for ( wxWindowList::Node *node = wxTopLevelWindows.GetFirst();
+    for ( wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst();
           node;
           node = node->GetNext() )
     {
@@ -904,7 +897,7 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
     wxBrush brush(GetBackgroundColour(), wxSOLID);
     dc.SetBrush(brush); // FIXME: needed?
 
-    wxWindowList::Node *cnode = m_children.GetFirst();
+    wxWindowList::compatibility_iterator cnode = m_children.GetFirst();
     while (cnode)
     {
         wxWindow *child = cnode->GetData();
@@ -1000,7 +993,7 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
 
     // Now send expose events
 
-    wxList::Node* node = updateRects.GetFirst();
+    wxList::compatibility_iterator  node = updateRects.GetFirst();
     while (node)
     {
         wxRect* rect = (wxRect*) node->GetData();
@@ -1411,6 +1404,7 @@ void wxWindow::DoMoveWindowIntr(int xx, int yy, int w, int h,
                 w -= 2 * (thick + margin);
             }
 
+            if( w < 1 ) w = 1;
             XtVaSetValues ((Widget) m_scrolledWindow, XmNwidth, w, NULL);
         }
 
@@ -1427,6 +1421,7 @@ void wxWindow::DoMoveWindowIntr(int xx, int yy, int w, int h,
                 h -= 2 * (thick + margin);
             }
 
+            if( h < 1 ) h = 1;
             XtVaSetValues ((Widget) m_scrolledWindow, XmNheight, h, NULL);
         }
 
@@ -1577,14 +1572,6 @@ void wxWindow::Refresh(bool eraseBack, const wxRect *rect)
     XSendEvent(display, thisWindow, False, ExposureMask, (XEvent *)&dummyEvent);
 }
 
-void wxWindow::Clear()
-{
-    wxClientDC dc(this);
-    wxBrush brush(GetBackgroundColour(), wxSOLID);
-    dc.SetBackground(brush);
-    dc.Clear();
-}
-
 void wxWindow::DoPaint()
 {
     //TODO : make a temporary gc so we can do the XCopyArea below
@@ -1666,7 +1653,7 @@ void wxWindow::DoPaint()
 // Responds to colour changes: passes event on to children.
 void wxWindow::OnSysColourChanged(wxSysColourChangedEvent& event)
 {
-    wxWindowList::Node *node = GetChildren().GetFirst();
+    wxWindowList::compatibility_iterator node = GetChildren().GetFirst();
     while ( node )
     {
         // Only propagate to non-top-level windows
@@ -1867,6 +1854,15 @@ bool wxWindow::DetachWidget(WXWidget widget)
 // Motif-specific accessors
 // ----------------------------------------------------------------------------
 
+WXWindow wxWindow::GetClientXWindow() const
+{
+    Widget wMain = (Widget)GetClientWidget();
+    if ( wMain )
+        return (WXWindow) XtWindow(wMain);
+    else
+        return (WXWindow) 0;
+}
+
 // Get the underlying X window
 WXWindow wxWindow::GetXWindow() const
 {