]> git.saurik.com Git - wxWidgets.git/commitdiff
my wxMotif fixes (merged with Robert's changes), wxMotif compiles, links
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 29 Jun 1999 12:34:18 +0000 (12:34 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 29 Jun 1999 12:34:18 +0000 (12:34 +0000)
and runs... until you click in the menu, that is.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

28 files changed:
include/wx/dialog.h
include/wx/generic/gridg.h
include/wx/generic/textdlgg.h
include/wx/gtk/dialog.h
include/wx/gtk1/dialog.h
include/wx/motif/clipbrd.h
include/wx/motif/dialog.h
include/wx/motif/window.h
include/wx/msw/dialog.h
src/generic/gridg.cpp
src/generic/msgdlgg.cpp
src/generic/tipdlg.cpp
src/gtk/Makefile.am
src/gtk1/Makefile.am
src/motif/Makefile.am
src/motif/app.cpp
src/motif/bmpbuttn.cpp
src/motif/button.cpp
src/motif/choice.cpp
src/motif/clipbrd.cpp
src/motif/control.cpp
src/motif/dataobj.cpp
src/motif/dialog.cpp
src/motif/filedlg.cpp
src/motif/font.cpp
src/motif/frame.cpp
src/motif/mdi.cpp
src/motif/region.cpp

index a14930b5b07e4fb16af4ec40eb8c89f53ebdb2d1..709d6f5f0bdc47a933ae3539a590434b2f5ba227 100644 (file)
@@ -1,3 +1,14 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/dialog.h
+// Purpose:     wxDialogBase class
+// Author:      Vadim Zeitlin
+// Modified by:
+// Created:     29.06.99
+// RCS-ID:      $Id$
+// Copyright:   (c) Vadim Zeitlin
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
 #ifndef _WX_DIALOG_H_BASE_
 #define _WX_DIALOG_H_BASE_
 
@@ -6,6 +17,12 @@
 
 class WXDLLEXPORT wxDialogBase : public wxPanel
 {
+public:
+    // the modal dialogs have a return code - usually the id of the last
+    // pressed button
+    void SetReturnCode(int returnCode) { m_returnCode = returnCode; }
+    int GetReturnCode() const { return m_returnCode; }
+
 protected:
     // functions to help with dialog layout
     // ------------------------------------
@@ -43,6 +60,9 @@ protected:
     // as the height of just text which may be retrieved from
     // wxGetCharHeight())
     long GetStandardTextHeight();
+
+    // the return code from modal dialog
+    int m_returnCode;
 };
 
 #if defined(__WXMSW__)
index 213a5fadbaad1ed53ebe851520bfc0a9652a9026..81a409bea1c32d893f03cfadbfdd69caa73380cc 100644 (file)
@@ -2,8 +2,9 @@
 // Name:        gridg.h
 // Purpose:     wxGenericGrid
 // Author:      Julian Smart
-// Modified by: Michael Bedward 20 April 1999
-//                Added edit in place facility
+// Modified by: Michael Bedward 
+//                Added edit in place facility, 20 April 1999
+//                Added cursor key control, 29 Jun 1999
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Copyright:   (c)
@@ -226,7 +227,9 @@ public:
     void OnMouseEvent(wxMouseEvent& event);
     void OnSize(wxSizeEvent& event);
     void OnText(wxCommandEvent& ev);
+    void OnTextEnter(wxCommandEvent& ev);
     void OnTextInPlace(wxCommandEvent& ev);
+    void OnTextInPlaceEnter(wxCommandEvent& ev);
     void OnGridScroll(wxScrollEvent& ev);
 
 protected:
index 5b0e013ccb119280f16e83a4e688167cab91eaad..be592594f638d0804ff429e6e23721ee97127e8b 100644 (file)
@@ -20,6 +20,8 @@
 
 #include "wx/dialog.h"
 
+class WXDLLEXPORT wxTextCtrl;
+
 // Handy dialog functions (will be converted into classes at some point)
 WXDLLEXPORT_DATA(extern const wxChar*) wxGetTextFromUserPromptStr;
 WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString;
index ac1f0db9a01abd8e04eeac41807dc3938f5eb40f..cc3cbcac1a95744ae52768c6f2666ccbf3489472 100644 (file)
@@ -87,9 +87,6 @@ public:
     virtual void Maximize() { }
     virtual void Restore() { }
 
-    void SetReturnCode(int returnCode) { m_returnCode = returnCode; }
-    int GetReturnCode() const { return m_returnCode; }
-
     // implementation
 
     virtual void GtkOnSize( int x, int y, int width, int height );
@@ -108,8 +105,6 @@ protected:
                            int sizeFlags = wxSIZE_AUTO);
 
 private:
-    int m_returnCode;
-
     DECLARE_EVENT_TABLE()
 };
 
index ac1f0db9a01abd8e04eeac41807dc3938f5eb40f..cc3cbcac1a95744ae52768c6f2666ccbf3489472 100644 (file)
@@ -87,9 +87,6 @@ public:
     virtual void Maximize() { }
     virtual void Restore() { }
 
-    void SetReturnCode(int returnCode) { m_returnCode = returnCode; }
-    int GetReturnCode() const { return m_returnCode; }
-
     // implementation
 
     virtual void GtkOnSize( int x, int y, int width, int height );
@@ -108,8 +105,6 @@ protected:
                            int sizeFlags = wxSIZE_AUTO);
 
 private:
-    int m_returnCode;
-
     DECLARE_EVENT_TABLE()
 };
 
index dceeabcfaac0e0b152baeea1a09b47c291e8fc11..781a9a0b94240d215e94eff5300bc321fc09d48f 100644 (file)
@@ -9,7 +9,7 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_CLIPBRD_H_
 #endif
 
 #include "wx/defs.h"
-#include "wx/setup.h"
+
+#if wxUSE_CLIPBOARD
 
 #include "wx/dataobj.h"
 
-#include "wx/list.h"
 #include "wx/module.h"
 
 bool WXDLLEXPORT wxOpenClipboard();
@@ -48,35 +48,35 @@ class WXDLLEXPORT wxClipboard: public wxObject
   DECLARE_DYNAMIC_CLASS(wxClipboard)
 
 public:
+
   wxClipboard();
   ~wxClipboard();
 
   // open the clipboard before SetData() and GetData()
   virtual bool Open();
-  
+
   // close the clipboard after SetData() and GetData()
   virtual void Close();
-  
+
   // can be called several times
   virtual bool SetData( wxDataObject *data );
 
-  // format available on the clipboard ? 
-  // supply ID if private format, the same as wxPrivateDataObject::SetId() 
+  // format available on the clipboard ?
+  // supply ID if private format, the same as wxPrivateDataObject::SetId()
   virtual bool IsSupported( wxDataFormat format );
-  
+
   // fill data with data on the clipboard (if available)
   virtual bool GetData( wxDataObject *data );
-  
+
   // clears wxTheClipboard and the system's clipboard if possible
   virtual void Clear();
 
   /// If primary == TRUE, use primary selection in all further ops,
   /// primary=FALSE resets it.
   inline void UsePrimarySelection(bool primary = TRUE) { m_usePrimary = primary; }
-    
- // implementation 
+
+ // implementation
+
   bool              m_open;
   wxList            m_data;
   bool              m_usePrimary;
@@ -92,7 +92,7 @@ WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard;
 class wxClipboardModule: public wxModule
 {
   DECLARE_DYNAMIC_CLASS(wxClipboardModule)
-  
+
 public:
     wxClipboardModule() {}
     bool OnInit();
@@ -154,7 +154,7 @@ class WXDLLEXPORT wxClipboard : public wxObject
   char *GetClipboardData(char *format, long *length, long time);
 
   /* Get the clipboard client directly. Will be NULL if clipboard data
-     is a string, or if some other application owns the clipboard. 
+     is a string, or if some other application owns the clipboard.
      This can be useful for shortcutting data translation, if the
      clipboard user can check for a specific client. (This is used
      by the wxMediaEdit class.) */
@@ -170,5 +170,7 @@ WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard;
 #endif
   // Old clipboard class
 
+#endif // wxUSE_CLIPBOARD
+
 #endif
     // _WX_CLIPBRD_H_
index b929956e96836a80b4b91bbb340884ababc5a152..da9d0382f1b480521ebebc414abd421fd6033669 100644 (file)
@@ -6,22 +6,20 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_DIALOG_H_
 #define _WX_DIALOG_H_
 
 #ifdef __GNUG__
-#pragma interface "dialog.h"
+    #pragma interface "dialog.h"
 #endif
 
-#include "wx/panel.h"
-
 WXDLLEXPORT_DATA(extern const char*) wxDialogNameStr;
 
 // Dialog boxes
-class WXDLLEXPORT wxDialog : public wxPanel
+class WXDLLEXPORT wxDialog : public wxDialogBase
 {
 DECLARE_DYNAMIC_CLASS(wxDialog)
 
@@ -67,47 +65,43 @@ public:
     void Lower();
 
     virtual bool IsIconized() const;
-    void Fit();
 
     void SetTitle(const wxString& title);
     wxString GetTitle() const ;
 
-    //  bool OnClose();
-    void OnCharHook(wxKeyEvent& event);
-    void OnCloseWindow(wxCloseEvent& event);
-
     void SetModal(bool flag);
 
-    virtual void Centre(int direction = wxBOTH);
-    virtual bool IsModal() const { return ((GetWindowStyleFlag() & wxDIALOG_MODAL) == wxDIALOG_MODAL); }
+    virtual bool IsModal() const
+        { return ((GetWindowStyleFlag() & wxDIALOG_MODAL) == wxDIALOG_MODAL); }
 
     virtual int ShowModal();
     virtual void EndModal(int retCode);
 
-    void SetReturnCode(int returnCode) { m_returnCode = returnCode; }
-    int GetReturnCode() const { return m_returnCode; }
+    // Implementation
+    virtual void ChangeFont(bool keepOriginalSize = TRUE);
+    virtual void ChangeBackgroundColour();
+    virtual void ChangeForegroundColour();
+    inline WXWidget GetTopWidget() const { return m_mainWidget; }
+    inline WXWidget GetClientWidget() const { return m_mainWidget; }
 
     // Standard buttons
     void OnOK(wxCommandEvent& event);
     void OnApply(wxCommandEvent& event);
     void OnCancel(wxCommandEvent& event);
+
     void OnPaint(wxPaintEvent &event);
 
     // Responds to colour changes
     void OnSysColourChanged(wxSysColourChangedEvent& event);
 
-    // Implementation
-    virtual void ChangeFont(bool keepOriginalSize = TRUE);
-    virtual void ChangeBackgroundColour();
-    virtual void ChangeForegroundColour();
-    inline WXWidget GetTopWidget() const { return m_mainWidget; }
-    inline WXWidget GetClientWidget() const { return m_mainWidget; }
+    //  bool OnClose();
+    void OnCharHook(wxKeyEvent& event);
+    void OnCloseWindow(wxCloseEvent& event);
 
 public:
     //// Motif-specific
     bool          m_modalShowing;
     wxString      m_dialogTitle;
-    int           m_returnCode;
 
 protected:
     virtual void DoSetSize(int x, int y,
index 3a165449c131f5e280a0fae10292f7c2016db60a..90be6d70375e6ad74b3b46adc12f42124c81e0ed 100644 (file)
@@ -173,6 +173,10 @@ public:
     void ClearUpdateRegion() { m_updateRegion.Clear(); }
     void SetUpdateRegion(const wxRegion& region) { m_updateRegion = region; }
 
+    // sets the fore/background colour for the given widget
+    static void DoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour);
+    static void DoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour = FALSE);
+
 protected:
     // event handlers (not virtual by design)
     void OnIdle(wxIdleEvent& event);
@@ -212,8 +216,6 @@ protected:
 public:
     // Change properties
     virtual void ChangeFont(bool keepOriginalSize = TRUE);             // Change to the current font (often overridden)
-    virtual void DoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour);
-    virtual void DoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour = FALSE);
 
     // Change background and foreground colour using current background colour
     // setting (Motif generates foreground based on background)
index ccc130f2acba264f7e23566c043a8488183bd6bf..917667ed4f75969d05daaad11ffa45d879819c94 100644 (file)
@@ -60,9 +60,6 @@ public:
 
     ~wxDialog();
 
-    void SetReturnCode(int returnCode) { m_returnCode = returnCode; }
-    int GetReturnCode() const { return m_returnCode; }
-
     virtual bool Destroy();
 
     virtual void DoSetClientSize(int width, int height);
@@ -132,8 +129,7 @@ private:
     WXHWND                m_hwndToolTip;
 #endif // tooltips
 
-    int m_returnCode;
-
+private:
     DECLARE_EVENT_TABLE()
 };
 
index db89849d024315e861f69f9a7b010ca7c64ec193..3f21090c2396ad69ca0d1f7ef3effeb469251b23 100644 (file)
@@ -2,38 +2,40 @@
 // Name:        gridg.cpp
 // Purpose:     wxGenericGrid
 // Author:      Julian Smart
-// Modified by: Michael Bedward 20 Apr 1999
-//                Added edit in place facility
+// Modified by: Michael Bedward
+//                Added edit in place facility, 20 Apr 1999
+//                Added cursor key control, 29 Jun 1999
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
-#pragma implementation "gridg.h"
-#pragma interface
+    #pragma implementation "gridg.h"
+    #pragma interface
 #endif
 
 // For compilers that support precompilation, includes "wx/wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
-  #include "wx/utils.h"
-  #include "wx/dcclient.h"
-  #include "wx/dcmemory.h"
-  #include "wx/textctrl.h"
+    #include "wx/utils.h"
+    #include "wx/dcclient.h"
+    #include "wx/dcmemory.h"
+    #include "wx/textctrl.h"
+    #include "wx/settings.h"
 #endif
 
 #include <string.h>
 
 #include "wx/string.h"
+
 #include "wx/generic/gridg.h"
-#include "wx/settings.h"
 
 // Set to zero to use no double-buffering
 #ifdef __WXMSW__
@@ -56,6 +58,8 @@ BEGIN_EVENT_TABLE(wxGenericGrid, wxPanel)
     EVT_MOUSE_EVENTS(wxGenericGrid::OnMouseEvent)
     EVT_TEXT(wxGRID_TEXT_CTRL, wxGenericGrid::OnText)
     EVT_TEXT(wxGRID_EDIT_IN_PLACE_TEXT_CTRL, wxGenericGrid::OnTextInPlace)
+    EVT_TEXT_ENTER(wxGRID_TEXT_CTRL, wxGenericGrid::OnTextEnter)
+    EVT_TEXT_ENTER(wxGRID_EDIT_IN_PLACE_TEXT_CTRL, wxGenericGrid::OnTextInPlaceEnter)
     EVT_COMMAND_SCROLL(wxGRID_HSCROLL, wxGenericGrid::OnGridScroll)
     EVT_COMMAND_SCROLL(wxGRID_VSCROLL, wxGenericGrid::OnGridScroll)
 
@@ -92,7 +96,7 @@ wxGenericGrid::wxGenericGrid(void)
 
   m_editInPlace = TRUE;
   m_inOnTextInPlace = FALSE;
-  
+
 #if defined(__WIN95__)
   m_scrollWidth = wxSystemSettings::GetSystemMetric(wxSYS_VSCROLL_X);
 #elif defined(__WXGTK__)
@@ -215,7 +219,7 @@ bool wxGenericGrid::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos,
   m_textItem = new wxTextCtrl(m_editingPanel, wxGRID_TEXT_CTRL, "",
                               wxPoint(m_editControlPosition.x, m_editControlPosition.y),
                               wxSize(m_editControlPosition.width, -1),
-                              0);
+                              wxTE_PROCESS_ENTER);
   m_textItem->Show(TRUE);
   m_textItem->SetFocus();
   int controlW, controlH;
@@ -233,12 +237,12 @@ bool wxGenericGrid::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos,
 //  SetSize(pos.x, pos.y, size.x, size.y);
 
   m_inPlaceTextItem = new wxTextCtrl( (wxPanel*)this, wxGRID_EDIT_IN_PLACE_TEXT_CTRL, "",
-                                     wxPoint( m_currentRect.x-2, m_currentRect.y-2 ), 
-                                     wxSize( m_currentRect.width+4, m_currentRect.height+4 ), 
-                                     wxNO_BORDER );
+                                      wxPoint( m_currentRect.x-2, m_currentRect.y-2 ),
+                                      wxSize( m_currentRect.width+4, m_currentRect.height+4 ),
+                                      wxNO_BORDER | wxTE_PROCESS_ENTER );
   m_inPlaceTextItem->Show(TRUE);
   m_inPlaceTextItem->SetFocus();
-  
+
   return TRUE;
 }
 
@@ -800,8 +804,8 @@ void wxGenericGrid::DrawColumnLabel(wxDC *dc, wxRect *rect, int col)
     rect2.height -= 4;
     dc->SetTextForeground(GetLabelTextColour());
     dc->SetFont(GetLabelTextFont());
-       if ( !cell->GetTextValue().IsNull() )
-       DrawTextRect(dc, cell->GetTextValue(), &rect2, GetLabelAlignment(wxHORIZONTAL));
+        if ( !cell->GetTextValue().IsNull() )
+            DrawTextRect(dc, cell->GetTextValue(), &rect2, GetLabelAlignment(wxHORIZONTAL));
   }
 }
 
@@ -853,8 +857,8 @@ void wxGenericGrid::DrawRowLabel(wxDC *dc, wxRect *rect, int row)
     rect2.height -= 4;
     dc->SetTextForeground(GetLabelTextColour());
     dc->SetFont(GetLabelTextFont());
-       if ( !cell->GetTextValue().IsNull() )
-       DrawTextRect(dc, cell->GetTextValue(), &rect2, GetLabelAlignment(wxVERTICAL));
+        if ( !cell->GetTextValue().IsNull() )
+            DrawTextRect(dc, cell->GetTextValue(), &rect2, GetLabelAlignment(wxVERTICAL));
   }
 }
 
@@ -931,8 +935,8 @@ void wxGenericGrid::DrawCellValue(wxDC *dc, wxRect *rect, int row, int col)
       dc->SetTextForeground(cell->GetTextColour());
       dc->SetFont(cell->GetFont());
 
-         if ( !cell->GetTextValue().IsNull() )
-       DrawTextRect(dc, cell->GetTextValue(), &rect2, cell->GetAlignment());
+          if ( !cell->GetTextValue().IsNull() )
+              DrawTextRect(dc, cell->GetTextValue(), &rect2, cell->GetAlignment());
     }
   }
 }
@@ -970,16 +974,16 @@ void wxGenericGrid::AdjustScrollbars(void)
     int widthCount = 0;
 
     int i;
-       int nx = 0;
+        int nx = 0;
     for (i = m_scrollPosX ; i < m_totalCols; i++)
     {
       widthCount += m_colWidths[i];
-         // A partial bit doesn't count, we still have to scroll to see the
-         // rest of it
+          // A partial bit doesn't count, we still have to scroll to see the
+          // rest of it
       if (widthCount + m_leftOfSheet + m_verticalLabelWidth > (cw-vertScrollBarWidth))
         break;
-         else
-           nx ++;
+          else
+               nx ++;
 
     }
 
@@ -993,16 +997,16 @@ void wxGenericGrid::AdjustScrollbars(void)
     int heightCount = 0;
 
     int i;
-       int ny = 0;
+        int ny = 0;
     for (i = m_scrollPosY ; i < m_totalRows; i++)
     {
       heightCount += m_rowHeights[i];
-         // A partial bit doesn't count, we still have to scroll to see the
-         // rest of it
+          // A partial bit doesn't count, we still have to scroll to see the
+          // rest of it
       if (heightCount + m_topOfSheet + m_horizontalLabelHeight > (ch-horizScrollBarHeight))
         break;
-         else
-           ny ++;
+          else
+            ny ++;
     }
 
     noVertSteps += ny;
@@ -1010,8 +1014,8 @@ void wxGenericGrid::AdjustScrollbars(void)
 
   if (m_totalGridWidth + vertScrollBarWidth <= cw)
   {
-       if ( m_hScrollBar )
-       m_hScrollBar->Show(FALSE);
+        if ( m_hScrollBar )
+            m_hScrollBar->Show(FALSE);
     SetScrollPosX(0);
   }
   else
@@ -1068,7 +1072,7 @@ void wxGenericGrid::AdjustScrollbars(void)
 void wxGenericGrid::OnSize(wxSizeEvent& WXUNUSED(event) )
 {
   if (!m_vScrollBar || !m_hScrollBar)
-         return;
+          return;
 
   AdjustScrollbars();
 
@@ -1350,7 +1354,7 @@ void wxGenericGrid::OnMouseEvent(wxMouseEvent& ev)
         SetCursor(*wxSTANDARD_CURSOR);
         int cw, ch;
         GetClientSize(&cw, &ch);
-               wxSizeEvent evt;
+                wxSizeEvent evt;
         OnSize(evt);
         break;
       }
@@ -1416,17 +1420,17 @@ void wxGenericGrid::OnSelectCellImplementation(wxDC *dc, int row, int col)
     {
       HighlightCell(dc);
     }
-  
+
 
   // Highlight the new cell and copy its content to the edit control
   SetCurrentRect(m_wCursorRow, m_wCursorColumn);
   wxGridCell *cell = GetCell(m_wCursorRow, m_wCursorColumn);
   if (cell)
   {
-       if ( cell->GetTextValue().IsNull() )
-               m_textItem->SetValue("");
-       else
-       m_textItem->SetValue(cell->GetTextValue());
+        if ( cell->GetTextValue().IsNull() )
+                m_textItem->SetValue("");
+        else
+            m_textItem->SetValue(cell->GetTextValue());
   }
 
   SetGridClippingRegion(dc);
@@ -1434,30 +1438,30 @@ void wxGenericGrid::OnSelectCellImplementation(wxDC *dc, int row, int col)
 
   if ( m_editable && m_editInPlace )
     {
-      m_inPlaceTextItem->SetSize( m_currentRect.x-2, m_currentRect.y-2, 
-                                 m_currentRect.width+4, m_currentRect.height+4 );
+      m_inPlaceTextItem->SetSize( m_currentRect.x-2, m_currentRect.y-2,
+                                  m_currentRect.width+4, m_currentRect.height+4 );
 
       if ( cell )
-       {
-         if ( cell->GetTextValue().IsNull() )
-           {
-             m_inPlaceTextItem->SetValue( "" );
-           }
-         else
-           {
-             m_inPlaceTextItem->SetFont( cell->GetFont() );
-             m_inPlaceTextItem->SetValue( cell->GetTextValue() );
-           }
-       }
-      
+        {
+          if ( cell->GetTextValue().IsNull() )
+            {
+              m_inPlaceTextItem->SetValue( "" );
+            }
+          else
+            {
+              m_inPlaceTextItem->SetFont( cell->GetFont() );
+              m_inPlaceTextItem->SetValue( cell->GetTextValue() );
+            }
+        }
+
       m_inPlaceTextItem->Show(TRUE);
       m_inPlaceTextItem->SetFocus();
     }
   else
-    {      
+    {
       // 1) Why isn't this needed for Windows??
       // Probably because of the SetValue?? JS.
-      // 2) Arrrrrgh. This isn't needed anywhere, 
+      // 2) Arrrrrgh. This isn't needed anywhere,
       // of course. One hour of debugging... RR.
       //
       // 3) It *is* needed for Motif - michael
@@ -1472,7 +1476,7 @@ void wxGenericGrid::OnSelectCellImplementation(wxDC *dc, int row, int col)
 
   OnSelectCell(row, col);
   wxGridEvent g_evt2(GetId(), wxEVT_GRID_SELECT_CELL, this, row, col);
-  GetEventHandler()->ProcessEvent(g_evt2);  
+  GetEventHandler()->ProcessEvent(g_evt2);
 }
 
 wxGridCell *wxGenericGrid::OnCreateCell(void)
@@ -1529,22 +1533,22 @@ void wxGenericGrid::HighlightCell(wxDC *dc)
   dc->DrawLine( m_currentRect.x + 1,
                 m_currentRect.y + 1,
                 m_currentRect.x + m_currentRect.width - 1,
-               m_currentRect.y + 1);
+                m_currentRect.y + 1);
   // Right
   dc->DrawLine( m_currentRect.x + m_currentRect.width - 1,
                 m_currentRect.y + 1,
                 m_currentRect.x + m_currentRect.width - 1,
-               m_currentRect.y +m_currentRect.height - 1 );
+                m_currentRect.y +m_currentRect.height - 1 );
   // Bottom
   dc->DrawLine( m_currentRect.x + m_currentRect.width - 1,
                 m_currentRect.y + m_currentRect.height - 1,
                 m_currentRect.x + 1,
-               m_currentRect.y + m_currentRect.height - 1);
+                m_currentRect.y + m_currentRect.height - 1);
   // Left
   dc->DrawLine( m_currentRect.x + 1,
                 m_currentRect.y + m_currentRect.height - 1,
-               m_currentRect.x + 1,
-               m_currentRect.y + 1);
+                m_currentRect.x + 1,
+                m_currentRect.y + 1);
 
   dc->SetLogicalFunction(wxCOPY);
 }
@@ -2011,8 +2015,8 @@ void wxGenericGrid::SetEditable(bool edit)
 
     if (m_inPlaceTextItem)
       {
-       m_inPlaceTextItem->Show(TRUE);
-       m_inPlaceTextItem->SetFocus();
+        m_inPlaceTextItem->Show(TRUE);
+        m_inPlaceTextItem->SetFocus();
       }
   }
   else
@@ -2023,10 +2027,10 @@ void wxGenericGrid::SetEditable(bool edit)
       m_textItem->Show(FALSE);
       m_editingPanel->Show(FALSE);
     }
-    
+
     if ( m_inPlaceTextItem )
       {
-       m_inPlaceTextItem->Show(FALSE);
+        m_inPlaceTextItem->Show(FALSE);
       }
   }
   UpdateDimensions();
@@ -2053,37 +2057,37 @@ void wxGenericGrid::SetEditInPlace(bool edit)
   if ( m_editInPlace != edit )
     {
       m_editInPlace = edit;
-      
+
       if ( m_editInPlace )  // switched on
-       {
-         if ( m_currentRectVisible && m_editable )
-           {
-             m_inPlaceTextItem->SetSize( m_currentRect.x-2, m_currentRect.y-2, 
-                                         m_currentRect.width+4, m_currentRect.height+4 );
-
-             wxGridCell *cell = GetCell(m_wCursorRow, m_wCursorColumn);
-
-             if ( cell )
-               {
-                 if ( cell->GetTextValue().IsNull() )
-                   {
-                     m_inPlaceTextItem->SetValue( "" );
-                   }
-                 else
-                   {
-                     m_inPlaceTextItem->SetFont( cell->GetFont() );
-                     m_inPlaceTextItem->SetValue( cell->GetTextValue() );
-                   }
-               }
-         
-             m_inPlaceTextItem->Show( TRUE );
-             m_inPlaceTextItem->SetFocus();      
-           }
-       }
+        {
+          if ( m_currentRectVisible && m_editable )
+            {
+              m_inPlaceTextItem->SetSize( m_currentRect.x-2, m_currentRect.y-2,
+                                          m_currentRect.width+4, m_currentRect.height+4 );
+
+              wxGridCell *cell = GetCell(m_wCursorRow, m_wCursorColumn);
+
+              if ( cell )
+                {
+                  if ( cell->GetTextValue().IsNull() )
+                    {
+                      m_inPlaceTextItem->SetValue( "" );
+                    }
+                  else
+                    {
+                      m_inPlaceTextItem->SetFont( cell->GetFont() );
+                      m_inPlaceTextItem->SetValue( cell->GetTextValue() );
+                    }
+                }
+
+              m_inPlaceTextItem->Show( TRUE );
+              m_inPlaceTextItem->SetFocus();
+            }
+        }
       else  // switched off
-       {
-         m_inPlaceTextItem->Show( FALSE );
-       }
+        {
+          m_inPlaceTextItem->Show( FALSE );
+        }
     }
 }
 
@@ -2558,30 +2562,49 @@ void wxGenericGrid::OnText(wxCommandEvent& WXUNUSED(ev) )
       wxGenericGrid *grid = this;
       wxGridCell *cell = grid->GetCell(grid->GetCursorRow(), grid->GetCursorColumn());
       if (cell && grid->CurrentCellVisible())
-       {
-         cell->SetTextValue(grid->GetTextItem()->GetValue());
-         if ( m_editInPlace && !m_inOnTextInPlace )
-           {
-             m_inPlaceTextItem->SetValue( grid->GetTextItem()->GetValue() );
-           }
-    
-         wxClientDC dc(grid);
-
-         dc.BeginDrawing();
-         grid->SetGridClippingRegion(& dc);
-         grid->DrawCellBackground(& dc, &grid->GetCurrentRect(), grid->GetCursorRow(), grid->GetCursorColumn());
-         grid->DrawCellValue(& dc, &grid->GetCurrentRect(), grid->GetCursorRow(), grid->GetCursorColumn());
-         if ( !(m_editable && m_editInPlace ) ) grid->HighlightCell(& dc);
-         dc.DestroyClippingRegion();
-         dc.EndDrawing();
-
-         //grid->OnCellChange(grid->GetCursorRow(), grid->GetCursorColumn());
-         wxGridEvent g_evt(GetId(), wxEVT_GRID_CELL_CHANGE, grid,
-                           grid->GetCursorRow(), grid->GetCursorColumn());
-         GetEventHandler()->ProcessEvent(g_evt);
-
-         //    grid->DrawCellText();
-       }
+        {
+          cell->SetTextValue(grid->GetTextItem()->GetValue());
+          if ( m_editInPlace && !m_inOnTextInPlace )
+            {
+              m_inPlaceTextItem->SetValue( grid->GetTextItem()->GetValue() );
+            }
+
+          wxClientDC dc(grid);
+
+          dc.BeginDrawing();
+          grid->SetGridClippingRegion(& dc);
+          grid->DrawCellBackground(& dc, &grid->GetCurrentRect(), grid->GetCursorRow(), grid->GetCursorColumn());
+          grid->DrawCellValue(& dc, &grid->GetCurrentRect(), grid->GetCursorRow(), grid->GetCursorColumn());
+          if ( !(m_editable && m_editInPlace ) ) grid->HighlightCell(& dc);
+          dc.DestroyClippingRegion();
+          dc.EndDrawing();
+
+          //grid->OnCellChange(grid->GetCursorRow(), grid->GetCursorColumn());
+          wxGridEvent g_evt(GetId(), wxEVT_GRID_CELL_CHANGE, grid,
+                            grid->GetCursorRow(), grid->GetCursorColumn());
+          GetEventHandler()->ProcessEvent(g_evt);
+
+          //    grid->DrawCellText();
+        }
+    }
+}
+
+void wxGenericGrid::OnTextEnter(wxCommandEvent& WXUNUSED(ev) )
+{
+  // move the cursor down the current row (if possible)
+  // when the enter key has been pressed
+  //
+  if ( m_editable )
+    {
+      if ( GetCursorRow() < GetRows()-1 )
+        {
+          wxClientDC dc( this );
+          dc.BeginDrawing();
+          OnSelectCellImplementation(& dc,
+                                     GetCursorRow()+1,
+                                     GetCursorColumn() );
+          dc.EndDrawing();
+        }
     }
 }
 
@@ -2592,12 +2615,31 @@ void wxGenericGrid::OnTextInPlace(wxCommandEvent& ev )
       wxGenericGrid *grid = this;
       wxGridCell *cell = grid->GetCell(grid->GetCursorRow(), grid->GetCursorColumn());
       if (cell && grid->CurrentCellVisible())
-       {
-         m_inOnTextInPlace = TRUE;
-         grid->GetTextItem()->SetValue( m_inPlaceTextItem->GetValue() );
-         OnText( ev );    
-         m_inOnTextInPlace = FALSE;
-       }
+        {
+          m_inOnTextInPlace = TRUE;
+          grid->GetTextItem()->SetValue( m_inPlaceTextItem->GetValue() );
+          OnText( ev );
+          m_inOnTextInPlace = FALSE;
+        }
+    }
+}
+
+void wxGenericGrid::OnTextInPlaceEnter(wxCommandEvent& WXUNUSED(ev) )
+{
+  // move the cursor down the current row (if possible)
+  // when the enter key has been pressed
+  //
+  if ( m_editable )
+    {
+      if ( GetCursorRow() < GetRows()-1 )
+        {
+          wxClientDC dc( this );
+          dc.BeginDrawing();
+          OnSelectCellImplementation(& dc,
+                                     GetCursorRow()+1,
+                                     GetCursorColumn() );
+          dc.EndDrawing();
+        }
     }
 }
 
@@ -2606,7 +2648,7 @@ void wxGenericGrid::OnGridScroll(wxScrollEvent& ev)
   static bool inScroll = FALSE;
 
   if ( inScroll )
-       return;
+        return;
 
   if ( m_editInPlace ) m_inPlaceTextItem->Show(FALSE);
 
@@ -2639,10 +2681,10 @@ void wxGenericGrid::OnGridScroll(wxScrollEvent& ev)
 
   if ( m_editInPlace && m_currentRectVisible )
     {
-      m_inPlaceTextItem->SetSize( m_currentRect.x-2, m_currentRect.y-2, 
-                                 m_currentRect.width+4, m_currentRect.height+4 );
+      m_inPlaceTextItem->SetSize( m_currentRect.x-2, m_currentRect.y-2,
+                                  m_currentRect.width+4, m_currentRect.height+4 );
       m_inPlaceTextItem->Show( TRUE );
-      m_inPlaceTextItem->SetFocus();     
+      m_inPlaceTextItem->SetFocus();
     }
 
   inScroll = FALSE;
index 968cd112908f7ce264e10fe8bcbb38798427ff4e..54882a12937c11ddad5273f344d018b31c68d0e0 100644 (file)
@@ -28,8 +28,7 @@
     #include "wx/statbmp.h"
     #include "wx/layout.h"
     #include "wx/intl.h"
-    #include "wx/dcclient.h"
-    #include "wx/settings.h"
+    #include "wx/icon.h"
 #endif
 
 #include <stdio.h>
@@ -169,11 +168,11 @@ wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent,
 
     // get the longest caption and also calc the number of buttons
     size_t nBtn, nButtons = 0;
-    long width, widthBtnMax = 0;
+    int width, widthBtnMax = 0;
     for ( nBtn = 0; nBtn < Btn_Max; nBtn++ ) {
         if ( buttons[nBtn] ) {
             nButtons++;
-            dc.GetTextExtent(buttons[nBtn]->GetLabel(), &width, NULL);
+            GetTextExtent(buttons[nBtn]->GetLabel(), &width, NULL);
             if ( width > widthBtnMax )
                 widthBtnMax = width;
         }
index 8ea6f3cf6b7af580d49b0fe99aecab0cf7f2582d..ef44a8057cf19a0ce44eee7b162756cca7836a5a 100644 (file)
@@ -18,7 +18,7 @@
 // ----------------------------------------------------------------------------
 
 #ifdef __GNUG__
-    #pragma implementation "windowbase.h"
+    #pragma implementation "tipdlg.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
     #include "wx/statbox.h"
     #include "wx/statbmp.h"
     #include "wx/dialog.h"
+    #include "wx/icon.h"
+    #include "wx/intl.h"
+    #include "wx/layout.h"
+    #include "wx/settings.h"
+    #include "wx/textctrl.h"
 #endif // WX_PRECOMP
 
 #include "wx/statline.h"
@@ -175,7 +180,7 @@ wxTipDialog::wxTipDialog(wxWindow *parent,
     wxIcon icon("wxICON_TIP");
 #else
     #include "wx/generic/tip.xpm"
-    wxIcon icon(info);
+    wxIcon icon(tipIcon);
 #endif
 
     wxStaticBitmap *bmp = new wxStaticBitmap(this, -1, icon);
index 21d7518267c5faae704ee3e530c7205e17c34212..41d9a0c355fe5abf7047180c7f88edd9db784968 100644 (file)
@@ -14,8 +14,6 @@ LIBS = $(GUILIBS)
 
 VPATH = .:${srcdir}:${srcdir}/../common:${srcdir}/../generic:${EXTRA_VPATH}
 
-EXTRA_DIST = "${srcdir}/../common ${srcdir}/../generic ${srcdir}"
-
 lib_LTLIBRARIES = @WX_LIBRARY_NAME@
 EXTRA_LTLIBRARIES = libwx_gtk.la libwx_motif.la libwx_msw.la
 
index 21d7518267c5faae704ee3e530c7205e17c34212..41d9a0c355fe5abf7047180c7f88edd9db784968 100644 (file)
@@ -14,8 +14,6 @@ LIBS = $(GUILIBS)
 
 VPATH = .:${srcdir}:${srcdir}/../common:${srcdir}/../generic:${EXTRA_VPATH}
 
-EXTRA_DIST = "${srcdir}/../common ${srcdir}/../generic ${srcdir}"
-
 lib_LTLIBRARIES = @WX_LIBRARY_NAME@
 EXTRA_LTLIBRARIES = libwx_gtk.la libwx_motif.la libwx_msw.la
 
index f898f12162dd79b5860aa390082d76721453fd5e..f920cecc9e6cc8a38dff9b39a3965c43db116dd0 100644 (file)
@@ -54,6 +54,7 @@ libwx_motif_la_SOURCES = \
  db.cpp \
  dbtable.cpp \
  dcbase.cpp \
+ dlgcmn.cpp \
  docmdi.cpp \
  docview.cpp \
  dynlib.cpp \
@@ -129,6 +130,7 @@ libwx_motif_la_SOURCES = \
  statusbr.cpp \
  tabg.cpp \
  textdlgg.cpp \
+ tipdlg.cpp \
  treectrl.cpp \
 \
  threadpsx.cpp \
index 2ccea798a93a8e13c99fbe6775ffdd5e4c40ba85..0ccb67f1dd5174c3340150b1f95308b3d3a3473a 100644 (file)
@@ -32,7 +32,7 @@
 #include "wx/intl.h"
 
 #if wxUSE_THREADS
-#include "wx/thread.h"
+    #include "wx/thread.h"
 #endif
 
 #if wxUSE_WX_RESOURCES
index bf9a57a63ffb484b252fe62ed34256c8003bc92e..358149b072103da1ac33795e52eea3ea5d77c341 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -45,31 +45,31 @@ bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bit
     m_buttonBitmapOriginal = bitmap;
     m_buttonBitmapSelected = bitmap;
     m_buttonBitmapSelectedOriginal = bitmap;
-    
+
     SetName(name);
     SetValidator(validator);
     parent->AddChild(this);
-    
+
     m_backgroundColour = parent->GetBackgroundColour() ;
     m_foregroundColour = parent->GetForegroundColour() ;
     m_windowStyle = style;
     m_marginX = 0;
     m_marginY = 0;
-    
+
     /*
     int x = pos.x;
     int y = pos.y;
     int width = size.x;
     int height = size.y;
     */
-    
+
     if (id == -1)
         m_windowId = NewControlId();
     else
         m_windowId = id;
-    
+
     Widget parentWidget = (Widget) parent->GetClientWidget();
-    
+
     /*
     * Patch Note (important)
     * There is no major reason to put a defaultButtonThickness here.
@@ -80,7 +80,7 @@ bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bit
     * in the ::SetDefaultButton method.
     */
     Widget buttonWidget = XtVaCreateManagedWidget ("button",
-        
+
         // Gadget causes problems for default button operation.
 #if wxUSE_GADGETS
         xmPushButtonGadgetClass, parentWidget,
@@ -89,29 +89,29 @@ bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bit
 #endif
         //                  XmNdefaultButtonShadowThickness, 1, // See comment for wxButton::SetDefault
         NULL);
-    
+
     m_mainWidget = (WXWidget) buttonWidget;
-    
+
     m_font = parent->GetFont();
     ChangeFont(FALSE);
-    
+
     ChangeBackgroundColour ();
-    
+
     DoSetBitmap();
-    
+
     XtAddCallback (buttonWidget, XmNactivateCallback, (XtCallbackProc) wxButtonCallback,
         (XtPointer) this);
-    
+
     SetCanAddEventHandler(TRUE);
     AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y);
-    
+
     return TRUE;
 }
 
 wxBitmapButton::~wxBitmapButton()
 {
     SetBitmapLabel(wxNullBitmap);
-    
+
     if (m_insensPixmap)
         XmDestroyPixmap (DefaultScreenOfDisplay ((Display*) GetXDisplay()), (Pixmap) m_insensPixmap);
 }
@@ -120,7 +120,7 @@ void wxBitmapButton::SetBitmapLabel(const wxBitmap& bitmap)
 {
     m_buttonBitmapOriginal = bitmap;
     m_buttonBitmap = bitmap;
-    
+
     DoSetBitmap();
 }
 
@@ -128,7 +128,7 @@ void wxBitmapButton::SetBitmapSelected(const wxBitmap& sel)
 {
     m_buttonBitmapSelected = sel;
     m_buttonBitmapSelectedOriginal = sel;
-    
+
     DoSetBitmap();
 };
 
@@ -142,7 +142,7 @@ void wxBitmapButton::SetBitmapDisabled(const wxBitmap& disabled)
 {
     m_buttonBitmapDisabled = disabled;
     m_buttonBitmapDisabledOriginal = disabled;
-    
+
     DoSetBitmap();
 };
 
@@ -153,7 +153,7 @@ void wxBitmapButton::DoSetBitmap()
         Pixmap pixmap = 0;
         Pixmap insensPixmap = 0;
         Pixmap armPixmap = 0;
-        
+
         // Must re-make the bitmap to have its transparent areas drawn
         // in the current widget background colour.
         if (m_buttonBitmapOriginal.GetMask())
@@ -161,18 +161,18 @@ void wxBitmapButton::DoSetBitmap()
             int backgroundPixel;
             XtVaGetValues((Widget) m_mainWidget, XmNbackground, &backgroundPixel,
                 NULL);
-            
+
             wxColour col;
             col.SetPixel(backgroundPixel);
-            
+
             wxBitmap newBitmap = wxCreateMaskedBitmap(m_buttonBitmapOriginal, col);
             m_buttonBitmap = newBitmap;
-            
+
             pixmap = (Pixmap) m_buttonBitmap.GetPixmap();
         }
         else
             pixmap = (Pixmap) m_buttonBitmap.GetLabelPixmap(m_mainWidget);
-        
+
         if (m_buttonBitmapDisabledOriginal.Ok())
         {
             if (m_buttonBitmapDisabledOriginal.GetMask())
@@ -180,13 +180,13 @@ void wxBitmapButton::DoSetBitmap()
                 int backgroundPixel;
                 XtVaGetValues((Widget) m_mainWidget, XmNbackground, &backgroundPixel,
                     NULL);
-                
+
                 wxColour col;
                 col.SetPixel(backgroundPixel);
-                
+
                 wxBitmap newBitmap = wxCreateMaskedBitmap(m_buttonBitmapDisabledOriginal, col);
                 m_buttonBitmapDisabled = newBitmap;
-                
+
                 insensPixmap = (Pixmap) m_buttonBitmapDisabled.GetPixmap();
             }
             else
@@ -194,7 +194,7 @@ void wxBitmapButton::DoSetBitmap()
         }
         else
             insensPixmap = (Pixmap) m_buttonBitmap.GetInsensPixmap(m_mainWidget);
-        
+
         // Now make the bitmap representing the armed state
         if (m_buttonBitmapSelectedOriginal.Ok())
         {
@@ -203,13 +203,13 @@ void wxBitmapButton::DoSetBitmap()
                 int backgroundPixel;
                 XtVaGetValues((Widget) m_mainWidget, XmNarmColor, &backgroundPixel,
                     NULL);
-                
+
                 wxColour col;
                 col.SetPixel(backgroundPixel);
-                
+
                 wxBitmap newBitmap = wxCreateMaskedBitmap(m_buttonBitmapSelectedOriginal, col);
                 m_buttonBitmapSelected = newBitmap;
-                
+
                 armPixmap = (Pixmap) m_buttonBitmapSelected.GetPixmap();
             }
             else
@@ -217,14 +217,14 @@ void wxBitmapButton::DoSetBitmap()
         }
         else
             armPixmap = (Pixmap) m_buttonBitmap.GetArmPixmap(m_mainWidget);
-        
+
         if (insensPixmap == pixmap) // <- the Get...Pixmap()-functions return the same pixmap!
         {
             insensPixmap =
                 XCreateInsensitivePixmap(DisplayOfScreen(XtScreen((Widget) m_mainWidget)), pixmap);
             m_insensPixmap = (WXPixmap) insensPixmap;
         }
-        
+
         XtVaSetValues ((Widget) m_mainWidget,
             XmNlabelPixmap, pixmap,
             XmNlabelInsensitivePixmap, insensPixmap,
@@ -248,7 +248,7 @@ void wxBitmapButton::DoSetBitmap()
 void wxBitmapButton::ChangeBackgroundColour()
 {
     DoChangeBackgroundColour(m_mainWidget, m_backgroundColour, TRUE);
-    
+
     // Must reset the bitmaps since the colours have changed.
     DoSetBitmap();
 }
index f48bab42301e3d96203098fcda6a097babcc5828..ac7c31cfec9fe393a05f5940d6708c90059ca371 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -15,6 +15,7 @@
 
 #include "wx/button.h"
 #include "wx/utils.h"
+#include "wx/panel.h"
 
 #include <Xm/PushBG.h>
 #include <Xm/PushB.h>
@@ -41,21 +42,21 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label,
     m_backgroundColour = parent->GetBackgroundColour();
     m_foregroundColour = parent->GetForegroundColour();
     m_font = parent->GetFont();
-    
+
     parent->AddChild((wxButton *)this);
-    
+
     if (id == -1)
         m_windowId = NewControlId();
     else
         m_windowId = id;
-    
+
     wxString label1(wxStripMenuCodes(label));
-    
+
     XmString text = XmStringCreateSimple ((char*) (const char*) label1);
     Widget parentWidget = (Widget) parent->GetClientWidget();
-    
+
     XmFontList fontList = (XmFontList) m_font.GetFontList(1.0, XtDisplay(parentWidget));
-    
+
     /*
     * Patch Note (important)
     * There is no major reason to put a defaultButtonThickness here.
@@ -72,29 +73,27 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label,
         XmNlabelString, text,
         //                  XmNdefaultButtonShadowThickness, 1, // See comment for wxButton::SetDefault
         NULL);
-    
+
     XmStringFree (text);
-    
+
     XtAddCallback ((Widget) m_mainWidget, XmNactivateCallback, (XtCallbackProc) wxButtonCallback,
         (XtPointer) this);
-    
+
     SetCanAddEventHandler(TRUE);
     AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y);
-    
+
     ChangeBackgroundColour();
-    
+
     return TRUE;
 }
 
 void wxButton::SetDefault()
 {
-    wxWindow *parent = (wxWindow *)GetParent();
-/*
-    TODO
-    if (parent)
-        parent->SetDefaultItem(this);
-*/
-    
+    wxWindow *parent = GetParent();
+    wxPanel *panel = wxDynamicCast(panel, wxPanel);
+    if ( panel )
+        panel->SetDefaultItem(this);
+
     // We initially do not set XmNdefaultShadowThickness, to have small buttons.
     // Unfortunately, buttons are now mis-aligned. We try to correct this
     // now -- setting this ressource to 1 for each button in the same row.
@@ -109,16 +108,16 @@ void wxButton::SetDefault()
             bool managed = XtIsManaged((Widget) item->GetMainWidget());
             if (managed)
                 XtUnmanageChild ((Widget) item->GetMainWidget());
-            
+
             XtVaSetValues ((Widget) item->GetMainWidget(),
                 XmNdefaultButtonShadowThickness, 1,
                 NULL);
-            
+
             if (managed)
                 XtManageChild ((Widget) item->GetMainWidget());
         }
-    }                          // while
-    
+    } // while
+
     //  XtVaSetValues((Widget)handle, XmNshowAsDefault, 1, NULL);
     XtVaSetValues ((Widget) parent->GetMainWidget(), XmNdefaultButton, (Widget) GetMainWidget(), NULL);
 }
@@ -133,7 +132,7 @@ void wxButtonCallback (Widget w, XtPointer clientData, XtPointer WXUNUSED(ptr))
     if (!wxGetWindowFromTable(w))
         // Widget has been deleted!
         return;
-    
+
     wxButton *item = (wxButton *) clientData;
     wxCommandEvent event (wxEVT_COMMAND_BUTTON_CLICKED, item->GetId());
     event.SetEventObject(item);
index 528d0607f000b7f8ae24d25f289cd4e0c10fdc5a..cc98f181c339c30e787e919cb408937cc8d9614f 100644 (file)
@@ -119,10 +119,11 @@ bool wxChoice::Create(wxWindow *parent, wxWindowID id,
     // that I have found the code responsible for this behaviour.
 #if XmVersion >= 1002
 #if XmVersion <  2000
-    Widget optionLabel = XmOptionLabelGadget ((Widget) m_buttonWidget);
     // JACS, 24/1/99: this seems to cause a malloc crash later on, e.g.
     // in controls sample.
-    //    XtUnmanageChild (optionLabel);
+    //
+    // Widget optionLabel = XmOptionLabelGadget ((Widget) m_buttonWidget);
+    // XtUnmanageChild (optionLabel);
 #endif
 #endif
 
index c5046a0db0a3880b61af678636627a2d15c1e89e..0cc48a40f01c35107459b5b80eae9eaa13a97d85 100644 (file)
 #pragma implementation "clipbrd.h"
 #endif
 
+#include "wx/defs.h"
+
+#if wxUSE_CLIPBOARD
+
 #include "wx/app.h"
 #include "wx/frame.h"
 #include "wx/bitmap.h"
@@ -529,3 +533,4 @@ char *wxClipboard::GetClipboardData(char *format, long *length, long time)
 }
 #endif
 
+#endif // wxUSE_CLIPBOARD
index 38e35741fa616418751e82da68114800db73a875..70fa4f3d3ce66c1c0be80d2f913a3ed244693194 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -14,6 +14,7 @@
 #endif
 
 #include "wx/control.h"
+#include "wx/panel.h"
 #include "wx/utils.h"
 
 #include <Xm/Xm.h>
@@ -38,15 +39,12 @@ wxControl::~wxControl()
 {
     // If we delete an item, we should initialize the parent panel,
     // because it could now be invalid.
-/*
-    TODO
-    wxWindow *parent = (wxWindow *)GetParent();
-    if (parent)
+    wxPanel *panel = wxDynamicCast(GetParent(), wxPanel);
+    if (panel)
     {
-        if (parent->GetDefaultItem() == (wxButton*) this)
-            parent->SetDefaultItem((wxButton*) NULL);
+        if (panel->GetDefaultItem() == this)
+            panel->SetDefaultItem((wxButton*) NULL);
     }
-*/
 }
 
 void wxControl::SetLabel(const wxString& label)
@@ -54,9 +52,9 @@ void wxControl::SetLabel(const wxString& label)
     Widget widget = (Widget) GetLabelWidget() ;
     if (!widget)
         return;
-    
+
     wxStripMenuCodes((char*) (const char*) label, wxBuffer);
-    
+
     XmString text = XmStringCreateSimple (wxBuffer);
     XtVaSetValues (widget,
         XmNlabelString, text,
@@ -70,13 +68,13 @@ wxString wxControl::GetLabel() const
     Widget widget = (Widget) GetLabelWidget() ;
     if (!widget)
         return wxEmptyString;
-    
+
     XmString text;
     char *s;
     XtVaGetValues (widget,
         XmNlabelString, &text,
         NULL);
-    
+
     if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s))
     {
         wxString str(s);
@@ -110,24 +108,24 @@ void wxControl::ProcessCommand (wxCommandEvent & event)
 void wxControl::Centre (int direction)
 {
     int x, y, width, height, panel_width, panel_height, new_x, new_y;
-    
+
     wxWindow *parent = (wxWindow *) GetParent ();
     if (!parent)
         return;
-    
+
     parent->GetClientSize (&panel_width, &panel_height);
     GetSize (&width, &height);
     GetPosition (&x, &y);
-    
+
     new_x = x;
     new_y = y;
-    
+
     if (direction & wxHORIZONTAL)
         new_x = (int) ((panel_width - width) / 2);
-    
+
     if (direction & wxVERTICAL)
         new_y = (int) ((panel_height - height) / 2);
-    
+
     SetSize (new_x, new_y, width, height);
 }
 
index b41b06164e6d5407ba9aca50b953b99bdee6e496..2fdd9dd815c823968da368603c8ac25f809efc9e 100644 (file)
@@ -4,13 +4,17 @@
 // Author:      Julian Smart
 // Id:          $Id$
 // Copyright:   (c) 1998 Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
 #pragma implementation "dataobj.h"
 #endif
 
+#include "wx/defs.h"
+
+#if wxUSE_CLIPBOARD
+
 #include "wx/dataobj.h"
 #include "wx/app.h"
 
@@ -298,3 +302,4 @@ void wxPrivateDataObject::WriteData( const void *data, void *dest ) const
     memcpy( dest, data, GetSize() );
 }
 
+#endif // wxUSE_CLIPBOARD
index d298056eb68c5bfef407405f8663790ea84ed71d..72ec1d98dadd9db858b206c21aef692671285a89 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -94,43 +94,43 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id,
     m_windowStyle = style;
     m_modalShowing = FALSE;
     m_dialogTitle = title;
-    
+
     m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE);
     m_foregroundColour = *wxBLACK;
-    
+
     SetName(name);
-    
+
     if (!parent)
         wxTopLevelWindows.Append(this);
-    
+
     if (parent) parent->AddChild(this);
-    
+
     if ( id == -1 )
         m_windowId = (int)NewControlId();
     else
         m_windowId = id;
-    
+
     Widget parentWidget = (Widget) 0;
     if (parent)
         parentWidget = (Widget) parent->GetTopWidget();
     if (!parent)
         parentWidget = (Widget) wxTheApp->GetTopLevelWidget();
-    
+
     wxASSERT_MSG( (parentWidget != (Widget) 0), "Could not find a suitable parent shell for dialog." );
-    
+
     Arg args[2];
     XtSetArg (args[0], XmNdefaultPosition, False);
     XtSetArg (args[1], XmNautoUnmanage, False);
     Widget dialogShell = XmCreateBulletinBoardDialog(parentWidget, (char*) (const char*) name, args, 2);
     m_mainWidget = (WXWidget) dialogShell;
-    
+
     // We don't want margins, since there is enough elsewhere.
     XtVaSetValues(dialogShell,
         XmNmarginHeight,   0,
         XmNmarginWidth,    0,
         XmNresizePolicy, XmRESIZE_NONE,
         NULL) ;
-    
+
     Widget shell = XtParent(dialogShell) ;
     if (!title.IsNull())
     {
@@ -140,21 +140,21 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id,
             NULL);
         XmStringFree(str);
     }
-    
+
     m_font = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
     ChangeFont(FALSE);
-    
+
     wxAddWindowToTable(dialogShell, this);
-    
+
     // Intercept CLOSE messages from the window manager
     Atom WM_DELETE_WINDOW = XmInternAtom(XtDisplay(shell), "WM_DELETE_WINDOW", False);
-    
+
     /* Remove and add WM_DELETE_WINDOW so ours is only handler */
     /* Why do we have to do this for wxDialog, but not wxFrame? */
     XmRemoveWMProtocols(shell, &WM_DELETE_WINDOW, 1);
     XmAddWMProtocols(shell, &WM_DELETE_WINDOW, 1);
     XmActivateWMProtocol(shell, WM_DELETE_WINDOW);
-    
+
     // Modified Steve Hammes for Motif 2.0
 #if (XmREVISION > 1 || XmVERSION > 1)
     XmAddWMProtocolCallback(shell, WM_DELETE_WINDOW, (XtCallbackProc) wxCloseDialogCallback, (XtPointer)this);
@@ -163,14 +163,14 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id,
 #else
     XmAddWMProtocolCallback(shell, WM_DELETE_WINDOW, (void (*)())wxCloseDialogCallback, (caddr_t)this);
 #endif
-    
+
     XtTranslations ptr ;
     XtOverrideTranslations(dialogShell,
         ptr = XtParseTranslationTable("<Configure>: resize()"));
     XtFree((char *)ptr);
-    
+
     // Can't remember what this was about... but I think it's necessary.
-    
+
     if (wxUSE_INVISIBLE_RESIZE)
     {
         if (pos.x > -1)
@@ -179,13 +179,13 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id,
         if (pos.y > -1)
             XtVaSetValues(dialogShell, XmNy, pos.y,
             NULL);
-        
+
         if (size.x > -1)
             XtVaSetValues(dialogShell, XmNwidth, size.x, NULL);
         if (size.y > -1)
             XtVaSetValues(dialogShell, XmNheight, size.y, NULL);
     }
-    
+
     // This patch come from Torsten Liermann lier@lier1.muc.de
     if (XmIsMotifWMRunning(shell))
     {
@@ -204,7 +204,7 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id,
             decor |= MWM_DECOR_MINIMIZE;
         if (m_windowStyle & wxMAXIMIZE_BOX)
             decor |= MWM_DECOR_MAXIMIZE;
-        
+
         XtVaSetValues(shell,XmNmwmDecorations,decor,NULL) ;
     }
     // This allows non-Motif window managers to support at least the
@@ -214,18 +214,18 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id,
         if ((m_windowStyle & wxCAPTION) != wxCAPTION)
             XtVaSetValues((Widget) shell,XmNoverrideRedirect,TRUE,NULL);
     }
-    
+
     XtRealizeWidget(dialogShell);
-    
+
     XtAddCallback(dialogShell,XmNunmapCallback,
         (XtCallbackProc)wxUnmapBulletinBoard,this) ;
-    
+
     // Positioning of the dialog doesn't work properly unless the dialog
     // is managed, so we manage without mapping to the screen.
     // To show, we map the shell (actually it's parent).
     if (!wxUSE_INVISIBLE_RESIZE)
         XtVaSetValues(shell, XmNmappedWhenManaged, FALSE, NULL);
-    
+
     if (!wxUSE_INVISIBLE_RESIZE)
     {
         XtManageChild(dialogShell);
@@ -233,15 +233,15 @@ bool wxDialog::Create(wxWindow *parent, wxWindowID id,
     }
     XtAddEventHandler(dialogShell,ExposureMask,FALSE,
         wxUniversalRepaintProc, (XtPointer) this);
-    
+
     XtAddEventHandler(dialogShell,
         ButtonPressMask | ButtonReleaseMask | PointerMotionMask | KeyPressMask,
         FALSE,
         wxDialogBoxEventHandler,
         (XtPointer)this);
-    
+
     ChangeBackgroundColour();
-    
+
     return TRUE;
 }
 
@@ -252,7 +252,7 @@ void wxDialog::SetModal(bool flag)
     else
         if ( m_windowStyle & wxDIALOG_MODAL )
             m_windowStyle -= wxDIALOG_MODAL ;
-        
+
         wxModelessWindows.DeleteObject(this);
         if (!flag)
             wxModelessWindows.Append(this);
@@ -263,29 +263,29 @@ wxDialog::~wxDialog()
     if (m_mainWidget)
       XtRemoveEventHandler((Widget) m_mainWidget, ExposureMask, FALSE,
           wxUniversalRepaintProc, (XtPointer) this);
-    
+
     m_modalShowing = FALSE;
     if (!wxUSE_INVISIBLE_RESIZE && m_mainWidget)
     {
         XtUnmapWidget((Widget) m_mainWidget);
     }
-    
+
     wxTopLevelWindows.DeleteObject(this);
-    
+
     if ( (GetWindowStyleFlag() & wxDIALOG_MODAL) != wxDIALOG_MODAL )
         wxModelessWindows.DeleteObject(this);
-    
+
     // If this is the last top-level window, exit.
     if (wxTheApp && (wxTopLevelWindows.Number() == 0))
     {
         wxTheApp->SetTopWindow(NULL);
-        
+
         if (wxTheApp->GetExitOnFrameDelete())
         {
             wxTheApp->ExitMainLoop();
         }
     }
-    
+
     // This event-flushing code used to be in wxWindow::PostDestroyChildren (wx_dialog.cpp)
     // but I think this should work, if we destroy the children first.
     // Note that this might need to be done for wxFrame also.
@@ -312,7 +312,7 @@ void wxDialog::OnCharHook(wxKeyEvent& event)
         wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
         cancelEvent.SetEventObject( this );
         GetEventHandler()->ProcessEvent(cancelEvent);
-        
+
         return;
     }
     // We didn't process this event.
@@ -355,7 +355,7 @@ void wxDialog::SetTitle(const wxString& title)
     if (!title.IsNull())
     {
         XmString str = XmStringCreateSimple((char*) (const char*) title);
-        XtVaSetValues((Widget) m_mainWidget, 
+        XtVaSetValues((Widget) m_mainWidget,
             XmNtitle, (char*) (const char*) title,
             XmNdialogTitle, str, // Roberto Cocchi
             XmNiconName, (char*) (const char*) title,
@@ -369,35 +369,6 @@ wxString wxDialog::GetTitle() const
     return m_dialogTitle;
 }
 
-void wxDialog::Centre(int direction)
-{
-    int x_offset,y_offset ;
-    int display_width, display_height;
-    int  width, height, x, y;
-    wxWindow *parent = GetParent();
-    if ((direction & wxCENTER_FRAME) && parent)
-    {
-        parent->GetPosition(&x_offset,&y_offset) ;
-        parent->GetSize(&display_width,&display_height) ;
-    }
-    else
-    {
-        wxDisplaySize(&display_width, &display_height);
-        x_offset = 0 ;
-        y_offset = 0 ;
-    }
-    
-    GetSize(&width, &height);
-    GetPosition(&x, &y);
-    
-    if (direction & wxHORIZONTAL)
-        x = (int)((display_width - width)/2);
-    if (direction & wxVERTICAL)
-        y = (int)((display_height - height)/2);
-    
-    SetSize(x+x_offset, y+y_offset, width, height);
-}
-
 void wxDialog::Raise()
 {
     Window parent_window = XtWindow((Widget) m_mainWidget),
@@ -435,16 +406,16 @@ void wxDialog::Lower()
 bool wxDialog::Show(bool show)
 {
     m_isShown = show;
-    
+
     if (show)
     {
         if (!wxUSE_INVISIBLE_RESIZE)
             XtMapWidget(XtParent((Widget) m_mainWidget));
         else
-            XtManageChild((Widget) m_mainWidget) ; 
-        
+            XtManageChild((Widget) m_mainWidget) ;
+
         XRaiseWindow(XtDisplay((Widget) m_mainWidget), XtWindow((Widget) m_mainWidget));
-        
+
     }
     else
     {
@@ -452,11 +423,11 @@ bool wxDialog::Show(bool show)
             XtUnmapWidget(XtParent((Widget) m_mainWidget));
         else
             XtUnmanageChild((Widget) m_mainWidget) ;
-        
+
         XFlush(XtDisplay((Widget) wxTheApp->GetTopLevelWidget()));
         XSync(XtDisplay((Widget) wxTheApp->GetTopLevelWidget()), FALSE);
     }
-    
+
     return TRUE;
 }
 
@@ -464,43 +435,43 @@ bool wxDialog::Show(bool show)
 int wxDialog::ShowModal()
 {
     m_windowStyle |= wxDIALOG_MODAL;
-    
+
     Show(TRUE);
-    
+
     if (m_modalShowing)
         return 0;
-    
+
     wxModalShowingStack.Insert((wxObject *)TRUE);
-    
+
     m_modalShowing = TRUE;
     XtAddGrab((Widget) m_mainWidget, TRUE, FALSE);
-    
+
     XEvent event;
-    
+
     // Loop until we signal that the dialog should be closed
     while ((wxModalShowingStack.Number() > 0) && ((int)(wxModalShowingStack.First()->Data()) != 0))
     {
         //        XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMAll);
-        
+
         XtAppNextEvent((XtAppContext) wxTheApp->GetAppContext(), &event);
         wxTheApp->ProcessXEvent((WXEvent*) &event);
     }
-    
+
     // Remove modal dialog flag from stack
     wxNode *node = wxModalShowingStack.First();
     if (node)
         delete node;
-    
+
     // Now process all events in case they get sent to a destroyed dialog
     XSync(XtDisplay((Widget) wxTheApp->GetTopLevelWidget()), FALSE);
     while (XtAppPending((XtAppContext) wxTheApp->GetAppContext()))
     {
         XFlush(XtDisplay((Widget) wxTheApp->GetTopLevelWidget()));
         XtAppNextEvent((XtAppContext) wxTheApp->GetAppContext(), &event);
-        
+
         wxTheApp->ProcessXEvent((WXEvent*) &event);
     }
-    
+
     // TODO: is it safe to call this, if the dialog may have been deleted
     // by now? Probably only if we're using delayed deletion of dialogs.
     return GetReturnCode();
@@ -510,16 +481,16 @@ void wxDialog::EndModal(int retCode)
 {
     if (!m_modalShowing)
         return;
-    
+
     SetReturnCode(retCode);
-    
+
     // Strangely, we don't seem to need this now.
     //    XtRemoveGrab((Widget) m_mainWidget);
-    
+
     Show(FALSE);
-    
+
     m_modalShowing = FALSE;
-    
+
     wxNode *node = wxModalShowingStack.First();
     if (node)
         node->SetData((wxObject *)FALSE);
@@ -575,12 +546,12 @@ void wxDialog::OnCloseWindow(wxCloseEvent& event)
     // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog.
 
     static wxList closing;
-    
+
     if ( closing.Member(this) )
         return;
-    
+
     closing.Append(this);
-    
+
     wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
     cancelEvent.SetEventObject( this );
     GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog
@@ -607,29 +578,24 @@ void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& WXUNUSED(event))
     Refresh();
 }
 
-void wxDialog::Fit()
-{
-    wxWindow::Fit();
-}
-
 // Handle a close event from the window manager
-static void wxCloseDialogCallback( Widget WXUNUSED(widget), XtPointer client_data, 
+static void wxCloseDialogCallback( Widget WXUNUSED(widget), XtPointer client_data,
                                   XmAnyCallbackStruct *WXUNUSED(cbs))
 {
     wxDialog *dialog = (wxDialog *)client_data;
     wxCloseEvent closeEvent(wxEVT_CLOSE_WINDOW, dialog->GetId());
     closeEvent.SetEventObject(dialog);
-    
+
     // May delete the dialog (with delayed deletion)
     dialog->GetEventHandler()->ProcessEvent(closeEvent);
 }
 
-void wxDialogBoxEventHandler (Widget    wid,
-                                     XtPointer WXUNUSED(client_data),
-                                     XEvent*   event,
-                                     Boolean *continueToDispatch)
+void wxDialogBoxEventHandler(Widget    wid,
+                             XtPointer WXUNUSED(client_data),
+                             XEvent*   event,
+                             Boolean*  continueToDispatch)
 {
-    wxDialog *dialog = (wxDialog *)wxWidgetHashTable->Get((long)wid);
+    wxDialog *dialog = (wxDialog *)wxGetWindowFromTable(wid);
     if (dialog)
     {
         wxMouseEvent wxevent(wxEVT_NULL);
@@ -667,7 +633,7 @@ void wxDialogBoxEventHandler (Widget    wid,
                     {
                         keyEvent.SetEventType(wxEVT_CHAR);
                         dialog->GetEventHandler()->ProcessEvent(keyEvent);
-                   }
+                    }
                 }
             }
         }
index ed6a27f8754dd6c51e713af953935ccc60ef2480..bb2daaa3cbf755b1a54eabfddeab8ed51497735f 100644 (file)
 IMPLEMENT_CLASS(wxFileDialog, wxDialog)
 #endif
 
-#define        DEFAULT_FILE_SELECTOR_SIZE 0
+#define DEFAULT_FILE_SELECTOR_SIZE 0
 // Let Motif defines the size of File
 // Selector Box (if 1), or fix it to
 // wxFSB_WIDTH x wxFSB_HEIGHT (if 0)
-#define        wxFSB_WIDTH                600
+#define wxFSB_WIDTH                600
 #define wxFSB_HEIGHT               500
 
 
@@ -51,27 +51,27 @@ wxString wxFileSelector(const char *title,
 {
     // If there's a default extension specified but no filter, we create a suitable
     // filter.
-    
+
     wxString filter2("");
     if ( defaultExtension && !filter )
         filter2 = wxString("*.") + wxString(defaultExtension) ;
     else if ( filter )
         filter2 = filter;
-    
+
     wxString defaultDirString;
     if (defaultDir)
         defaultDirString = defaultDir;
     else
         defaultDirString = "";
-    
+
     wxString defaultFilenameString;
     if (defaultFileName)
         defaultFilenameString = defaultFileName;
     else
         defaultFilenameString = "";
-    
+
     wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y));
-    
+
     if ( fileDialog.ShowModal() == wxID_OK )
     {
         return fileDialog.GetPath();
@@ -89,11 +89,11 @@ wxString wxFileSelectorEx(const char *title,
                        wxWindow* parent,
                        int       x,
                        int       y)
-                       
+
 {
     wxFileDialog fileDialog(parent, title ? title : "", defaultDir ? defaultDir : "",
         defaultFileName ? defaultFileName : "", filter ? filter : "", flags, wxPoint(x, y));
-    
+
     if ( fileDialog.ShowModal() == wxID_OK )
     {
         *defaultFilterIndex = fileDialog.GetFilterIndex();
@@ -106,7 +106,7 @@ wxString wxFileSelectorEx(const char *title,
 wxString wxFileDialog::m_fileSelectorAnswer = "";
 bool wxFileDialog::m_fileSelectorReturned = FALSE;
 
-void wxFileSelCancel( Widget WXUNUSED(fs), XtPointer WXUNUSED(client_data), 
+void wxFileSelCancel( Widget WXUNUSED(fs), XtPointer WXUNUSED(client_data),
                      XmFileSelectionBoxCallbackStruct *WXUNUSED(cbs) )
 {
     wxFileDialog::m_fileSelectorAnswer = "";
@@ -145,11 +145,11 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
 
 static void wxChangeListBoxColours(wxWindow* win, Widget widget)
 {
-    win->DoChangeBackgroundColour((WXWidget) widget, *wxWHITE);
+    wxWindow::DoChangeBackgroundColour((WXWidget) widget, *wxWHITE);
 
     // Change colour of the scrolled areas of the listboxes
     Widget listParent = XtParent (widget);
-    win->DoChangeBackgroundColour((WXWidget) listParent, *wxWHITE, TRUE);
+    wxWindow::DoChangeBackgroundColour((WXWidget) listParent, *wxWHITE, TRUE);
 
     Widget hsb = (Widget) 0;
     Widget vsb = (Widget) 0;
@@ -157,13 +157,13 @@ static void wxChangeListBoxColours(wxWindow* win, Widget widget)
         XmNhorizontalScrollBar, &hsb,
         XmNverticalScrollBar, &vsb,
         NULL);
-    
+
    /* TODO: should scrollbars be affected? Should probably have separate
     * function to change them (by default, taken from wxSystemSettings)
     */
     wxColour backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE);
-    win->DoChangeBackgroundColour((WXWidget) hsb, backgroundColour, TRUE);
-    win->DoChangeBackgroundColour((WXWidget) vsb, backgroundColour, TRUE);
+    wxWindow::DoChangeBackgroundColour((WXWidget) hsb, backgroundColour, TRUE);
+    wxWindow::DoChangeBackgroundColour((WXWidget) vsb, backgroundColour, TRUE);
 
     if (hsb)
       XtVaSetValues (hsb,
@@ -178,7 +178,7 @@ static void wxChangeListBoxColours(wxWindow* win, Widget widget)
 int wxFileDialog::ShowModal()
 {
     wxBeginBusyCursor();
-    
+
     //  static char fileBuf[512];
     Widget parentWidget = (Widget) 0;
     if (m_parent)
@@ -187,7 +187,7 @@ int wxFileDialog::ShowModal()
     }
     else
         parentWidget = (Widget) wxTheApp->GetTopLevelWidget();
-    
+
     Widget fileSel = XmCreateFileSelectionDialog(parentWidget, "file_selector", NULL, 0);
     XtUnmanageChild(XmFileSelectionBoxGetChild(fileSel, XmDIALOG_HELP_BUTTON));
 
@@ -195,18 +195,22 @@ int wxFileDialog::ShowModal()
     Widget selectionWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_TEXT);
     Widget dirListWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_DIR_LIST);
     Widget fileListWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_LIST);
+
+    // code using these vars disabled
+#if 0
     Widget okWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_OK_BUTTON);
     Widget applyWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_APPLY_BUTTON);
     Widget cancelWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_CANCEL_BUTTON);
+#endif
+
 
-    
     Widget shell = XtParent(fileSel);
-    
+
     if (!m_message.IsNull())
         XtVaSetValues(shell, XmNtitle, (char*) (const char*) m_message, NULL);
-    
+
     wxString entirePath("");
-    
+
     if ((m_dir != "") && (m_fileName != ""))
     {
         entirePath = m_dir + wxString("/") + m_fileName;
@@ -219,12 +223,12 @@ int wxFileDialog::ShowModal()
     {
         entirePath = m_fileName;
     }
-    
+
     if (entirePath != "")
     {
         XmTextSetString(selectionWidget, (char*) (const char*) entirePath);
     }
-    
+
     if (m_wildCard != "")
     {
         wxString filter("");
@@ -232,28 +236,28 @@ int wxFileDialog::ShowModal()
             filter = m_dir + wxString("/") + m_wildCard;
         else
             filter = m_wildCard;
-        
+
         XmTextSetString(filterWidget, (char*) (const char*) filter);
         XmFileSelectionDoSearch(fileSel, NULL);
     }
-    
+
     // Suggested by Terry Gitnick, 16/9/97, because of change in Motif
     // file selector on Solaris 1.5.1.
     if ( m_dir != "" )
     {
         XmString thePath = XmStringCreateLtoR ((char*) (const char*) m_dir,
             XmSTRING_DEFAULT_CHARSET);
-        
+
         XtVaSetValues (fileSel,
             XmNdirectory, thePath,
             NULL);
-        
+
         XmStringFree(thePath);
     }
-    
+
     XtAddCallback(fileSel, XmNcancelCallback, (XtCallbackProc)wxFileSelCancel, (XtPointer)NULL);
     XtAddCallback(fileSel, XmNokCallback, (XtCallbackProc)wxFileSelOk, (XtPointer)NULL);
-    
+
     //#if XmVersion > 1000
     // I'm not sure about what you mean with XmVersion.
     // If this is for Motif1.1/Motif1.2, then check XmVersion>=1200
@@ -273,22 +277,23 @@ int wxFileDialog::ShowModal()
     DoChangeBackgroundColour((WXWidget) filterWidget, *wxWHITE);
     DoChangeBackgroundColour((WXWidget) selectionWidget, *wxWHITE);
 
-    /* For some reason this crashes
+    // apparently, this provokes a crash
+#if 0
     DoChangeBackgroundColour((WXWidget) okWidget, m_backgroundColour, TRUE);
     DoChangeBackgroundColour((WXWidget) cancelWidget, m_backgroundColour, TRUE);
     DoChangeBackgroundColour((WXWidget) applyWidget, m_backgroundColour, TRUE);
-    */
+#endif
 
     wxChangeListBoxColours(this, dirListWidget);
     wxChangeListBoxColours(this, fileListWidget);
-    
+
     XtManageChild(fileSel);
 
     m_fileSelectorAnswer = "";
     m_fileSelectorReturned = FALSE;
-    
+
     wxEndBusyCursor();
-    
+
     XtAddGrab(XtParent(fileSel), TRUE, FALSE);
     XEvent event;
     while (!m_fileSelectorReturned)
@@ -296,13 +301,13 @@ int wxFileDialog::ShowModal()
         XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMAll);
     }
     XtRemoveGrab(XtParent(fileSel));
-    
+
     XmUpdateDisplay((Widget) wxTheApp->GetTopLevelWidget()); // Experimental
-    
+
     //  XtDestroyWidget(fileSel);
     XtUnmapWidget(XtParent(fileSel));
     XtDestroyWidget(XtParent(fileSel));
-    
+
     // Now process all events, because otherwise
     // this might remain on the screen
     XSync(XtDisplay((Widget) wxTheApp->GetTopLevelWidget()), FALSE);
@@ -312,11 +317,11 @@ int wxFileDialog::ShowModal()
         XtAppNextEvent((XtAppContext) wxTheApp->GetAppContext(), &event);
         XtDispatchEvent(&event);
     }
-    
+
     m_path = m_fileSelectorAnswer;
     m_fileName = wxFileNameFromPath(m_fileSelectorAnswer);
     m_dir = wxPathOnly(m_path);
-    
+
     if (m_fileName == "")
         return wxID_CANCEL;
     else
@@ -328,19 +333,20 @@ static wxString
 wxDefaultFileSelector(bool load, const char *what, const char *extension, const char *default_name, wxWindow *parent)
 {
     char *ext = (char *)extension;
-    
-    char prompt[50];
+
+    wxString prompt;
     wxString str;
     if (load)
-        str = "Load %s file";
+        str = _("Load %s file");
     else
-        str = "Save %s file";
-    sprintf(prompt, wxGetTranslation(str), what);
-    
-    if (*ext == '.') ext++;
-    char wild[60];
-    sprintf(wild, "*.%s", ext);
-    
+        str = _("Save %s file");
+    prompt.Printf(str, what);
+
+    if (*ext == '.')
+        ext++;
+    wxString wild;
+    wild.Printf("*.%s", ext);
+
     return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent);
 }
 
index 106415a5b3c7959ceaddd8a88eb3bfad6ab2b85e..4b46312660b357f9fc2896a6fdc79ce5a77ba3d0 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -35,13 +35,13 @@ wxXFont::wxXFont()
 
 wxXFont::~wxXFont()
 {
-    XFontStruct* fontStruct = (XFontStruct*) m_fontStruct;
     XmFontList fontList = (XmFontList) m_fontList;
-    
+
     XmFontListFree (fontList);
-    
+
     // TODO: why does freeing the font produce a segv???
     // Note that XFreeFont wasn't called in wxWin 1.68 either.
+    // XFontStruct* fontStruct = (XFontStruct*) m_fontStruct;
     //        XFreeFont((Display*) m_display, fontStruct);
 }
 
@@ -65,7 +65,7 @@ wxFontRefData::wxFontRefData(const wxFontRefData& data)
     m_weight = data.m_weight;
     m_underlined = data.m_underlined;
     m_faceName = data.m_faceName;
-    
+
     // Don't have to copy actual fonts, because they'll be created
     // on demand.
 }
@@ -91,7 +91,7 @@ wxFont::wxFont()
 wxFont::wxFont(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName)
 {
     Create(pointSize, family, style, weight, underlined, faceName);
-    
+
     if ( wxTheFontList )
         wxTheFontList->Append(this);
 }
@@ -100,16 +100,16 @@ bool wxFont::Create(int pointSize, int family, int style, int weight, bool under
 {
     UnRef();
     m_refData = new wxFontRefData;
-    
+
     M_FONTDATA->m_family = family;
     M_FONTDATA->m_style = style;
     M_FONTDATA->m_weight = weight;
     M_FONTDATA->m_pointSize = pointSize;
     M_FONTDATA->m_underlined = underlined;
     M_FONTDATA->m_faceName = faceName;
-    
+
     RealizeResource();
-    
+
     return TRUE;
 }
 
@@ -143,54 +143,54 @@ void wxFont::Unshare()
 void wxFont::SetPointSize(int pointSize)
 {
     Unshare();
-    
+
     M_FONTDATA->m_pointSize = pointSize;
-    
+
     RealizeResource();
 }
 
 void wxFont::SetFamily(int family)
 {
     Unshare();
-    
+
     M_FONTDATA->m_family = family;
-    
+
     RealizeResource();
 }
 
 void wxFont::SetStyle(int style)
 {
     Unshare();
-    
+
     M_FONTDATA->m_style = style;
-    
+
     RealizeResource();
 }
 
 void wxFont::SetWeight(int weight)
 {
     Unshare();
-    
+
     M_FONTDATA->m_weight = weight;
-    
+
     RealizeResource();
 }
 
 void wxFont::SetFaceName(const wxString& faceName)
 {
     Unshare();
-    
+
     M_FONTDATA->m_faceName = faceName;
-    
+
     RealizeResource();
 }
 
 void wxFont::SetUnderlined(bool underlined)
 {
     Unshare();
-    
+
     M_FONTDATA->m_underlined = underlined;
-    
+
     RealizeResource();
 }
 
@@ -276,10 +276,10 @@ wxXFont* wxFont::GetInternalFont(double scale, WXDisplay* display) const
 {
     if (!Ok())
         return (wxXFont*) NULL;
-    
+
     long intScale = long(scale * 100.0 + 0.5); // key for wxXFont
     int pointSize = (M_FONTDATA->m_pointSize * 10 * intScale) / 100;
-    
+
     wxNode* node = M_FONTDATA->m_fonts.First();
     while (node)
     {
@@ -288,17 +288,17 @@ wxXFont* wxFont::GetInternalFont(double scale, WXDisplay* display) const
             return f;
         node = node->Next();
     }
-    
+
     WXFontStructPtr font = LoadQueryFont(pointSize, M_FONTDATA->m_family,
         M_FONTDATA->m_style, M_FONTDATA->m_weight, M_FONTDATA->m_underlined);
-    
+
     if (!font)
     {
         // search up and down by stepsize 10
         int max_size = pointSize + 20 * (1 + (pointSize/180));
         int min_size = pointSize - 20 * (1 + (pointSize/180));
         int i;
-        
+
         // Search for smaller size (approx.)
         for (i=pointSize-10; !font && i >= 10 && i >= min_size; i -= 10)
             font = LoadQueryFont(i, M_FONTDATA->m_family, M_FONTDATA->m_style, M_FONTDATA->m_weight, M_FONTDATA->m_underlined);
@@ -307,7 +307,7 @@ wxXFont* wxFont::GetInternalFont(double scale, WXDisplay* display) const
             font = LoadQueryFont(i, M_FONTDATA->m_family, M_FONTDATA->m_style, M_FONTDATA->m_weight, M_FONTDATA->m_underlined);
         // Try default family
         if (!font && M_FONTDATA->m_family != wxDEFAULT)
-            font = LoadQueryFont(pointSize, wxDEFAULT, M_FONTDATA->m_style, 
+            font = LoadQueryFont(pointSize, wxDEFAULT, M_FONTDATA->m_style,
             M_FONTDATA->m_weight, M_FONTDATA->m_underlined);
         // Bogus font
         if (!font)
@@ -368,12 +368,12 @@ WXFontStructPtr wxFont::LoadQueryFont(int pointSize, int family, int style,
     default:           xweight = "*";
         break;
     }
-    
+
     sprintf(wxBuffer, "-*-%s-%s-%s-normal-*-*-%d-*-*-*-*-*-*",
         xfamily, xweight, xstyle, pointSize);
-    
+
     Display *dpy = (Display*) wxGetDisplay();
     XFontStruct* font = XLoadQueryFont(dpy, wxBuffer);
-    
+
     return (WXFontStructPtr) font;
 }
index 08cb475d7dd8765e2fd6d2dee2dc905d31545d1a..9a57776df70638d60e7cb6396a4d402250cf31db 100644 (file)
@@ -53,9 +53,9 @@
 extern wxHashTable *wxWidgetHashTable;
 
 void wxCloseFrameCallback(Widget, XtPointer, XmAnyCallbackStruct *cbs);
-void wxFrameFocusProc(Widget workArea, XtPointer clientData, 
+void wxFrameFocusProc(Widget workArea, XtPointer clientData,
                       XmAnyCallbackStruct *cbs);
-static void wxFrameMapProc(Widget frameShell, XtPointer clientData, 
+static void wxFrameMapProc(Widget frameShell, XtPointer clientData,
                            XCrossingEvent * event);
 
 extern wxList wxModelessWindows;
@@ -92,10 +92,10 @@ wxFrame::wxFrame()
 
     m_frameMenuBar = NULL;
     m_frameStatusBar = NULL;
-    
+
     m_parent = NULL;
     m_iconized = FALSE;
-    
+
     //// Motif-specific
     m_frameShell = (WXWidget) NULL;
     m_frameWidget = (WXWidget) NULL;;
@@ -115,16 +115,16 @@ bool wxFrame::Create(wxWindow *parent,
 {
     if (!parent)
         wxTopLevelWindows.Append(this);
-    
+
     SetName(name);
-    
+
     m_windowStyle = style;
     m_frameMenuBar = NULL;
 #if wxUSE_TOOLBAR
     m_frameToolBar = NULL ;
 #endif // wxUSE_TOOLBAR
     m_frameStatusBar = NULL;
-    
+
     //// Motif-specific
     m_frameShell = (WXWidget) NULL;
     m_frameWidget = (WXWidget) NULL;;
@@ -132,23 +132,23 @@ bool wxFrame::Create(wxWindow *parent,
     m_clientArea = (WXWidget) NULL;;
     m_visibleStatus = TRUE;
     m_title = "";
-    
+
     m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE);
     m_foregroundColour = *wxBLACK;
     m_font = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
-    
+
     if ( id > -1 )
         m_windowId = id;
     else
         m_windowId = (int)NewControlId();
-    
+
     if (parent) parent->AddChild(this);
-    
+
     wxModelessWindows.Append(this);
-    
+
     int x = pos.x; int y = pos.y;
     int width = size.x; int height = size.y;
-    
+
     if (wxTopLevelUsed)
         // Change suggested by Matthew Flatt
         m_frameShell = (WXWidget) XtAppCreateShell(name, wxTheApp->GetClassName(), topLevelShellWidgetClass, (Display*) wxGetDisplay(), NULL, 0);
@@ -157,30 +157,30 @@ bool wxFrame::Create(wxWindow *parent,
         m_frameShell = wxTheApp->GetTopLevelWidget();
         wxTopLevelUsed = TRUE;
     }
-    
-    XtVaSetValues((Widget) m_frameShell, 
+
+    XtVaSetValues((Widget) m_frameShell,
         // Allows menu to resize
         XmNallowShellResize, True,
         XmNdeleteResponse, XmDO_NOTHING,
         XmNmappedWhenManaged, False,
         XmNiconic, (style & wxICONIZE) ? TRUE : FALSE,
         NULL);
-    
+
     if (!title.IsNull())
-        XtVaSetValues((Widget) m_frameShell, 
+        XtVaSetValues((Widget) m_frameShell,
         XmNtitle, (const char*) title,
         NULL);
-    
+
     m_frameWidget = (WXWidget) XtVaCreateManagedWidget("main_window",
         xmMainWindowWidgetClass, (Widget) m_frameShell,
         XmNresizePolicy, XmRESIZE_NONE,
         NULL);
-    
+
     m_workArea = (WXWidget) XtVaCreateWidget("form",
         xmFormWidgetClass, (Widget) m_frameWidget,
         XmNresizePolicy, XmRESIZE_NONE,
         NULL);
-    
+
     m_clientArea = (WXWidget) XtVaCreateWidget("client",
         xmBulletinBoardWidgetClass, (Widget) m_workArea,
         XmNmarginWidth, 0,
@@ -194,33 +194,34 @@ bool wxFrame::Create(wxWindow *parent,
 
     XtAddEventHandler((Widget) m_clientArea, ExposureMask,FALSE,
         wxUniversalRepaintProc, (XtPointer) this);
-    
+
     XtVaSetValues((Widget) m_frameWidget,
         XmNworkWindow, (Widget) m_workArea,
         NULL);
-    
+
     XtManageChild((Widget) m_clientArea);
     XtManageChild((Widget) m_workArea);
-    
-    wxASSERT_MSG ((wxWidgetHashTable->Get((long)m_workArea) == (wxObject*) NULL), "Widget table clash in frame.cpp") ;
-    
+
+    wxASSERT_MSG( !wxGetWindowFromTable((Widget)m_workArea),
+                 "Widget table clash in frame.cpp") ;
+
     wxAddWindowToTable((Widget) m_workArea, this);
-    
+
     XtTranslations ptr ;
-    
+
     XtOverrideTranslations((Widget) m_workArea,
         ptr = XtParseTranslationTable("<Configure>: resize()"));
-    
+
     XtFree((char *)ptr);
-    
-    XtAddCallback((Widget) m_workArea, XmNfocusCallback, 
+
+    XtAddCallback((Widget) m_workArea, XmNfocusCallback,
         (XtCallbackProc)wxFrameFocusProc, (XtPointer)this);
-    
+
     /* Part of show-&-hide fix */
     XtAddEventHandler((Widget) m_frameShell, StructureNotifyMask,
         False, (XtEventHandler)wxFrameMapProc,
         (XtPointer)m_workArea);
-    
+
     if (x > -1)
         XtVaSetValues((Widget) m_frameShell, XmNx, x, NULL);
     if (y > -1)
@@ -229,11 +230,11 @@ bool wxFrame::Create(wxWindow *parent,
         XtVaSetValues((Widget) m_frameShell, XmNwidth, width, NULL);
     if (height > -1)
         XtVaSetValues((Widget) m_frameShell, XmNheight, height, NULL);
-    
+
     m_mainWidget = m_frameWidget;
-    
+
     ChangeFont(FALSE);
-    
+
     // This patch comes from Torsten Liermann lier@lier1.muc.de
     if (XmIsMotifWMRunning( (Widget) m_frameShell ))
     {
@@ -264,7 +265,7 @@ bool wxFrame::Create(wxWindow *parent,
             XtVaSetValues((Widget) m_frameShell,XmNoverrideRedirect,TRUE,NULL);
     }
     XtRealizeWidget((Widget) m_frameShell);
-    
+
     // Intercept CLOSE messages from the window manager
     Atom WM_DELETE_WINDOW = XmInternAtom(XtDisplay((Widget) m_frameShell), "WM_DELETE_WINDOW", False);
 #if (XmREVISION > 1 || XmVERSION > 1)
@@ -276,16 +277,16 @@ bool wxFrame::Create(wxWindow *parent,
     XmAddWMProtocolCallback((Widget) m_frameShell, WM_DELETE_WINDOW, (void (*)())wxCloseFrameCallback, (caddr_t)this);
 #endif
 #endif
-    
+
     ChangeBackgroundColour();
-    
+
     PreResize();
-    
+
     wxSizeEvent sizeEvent(wxSize(width, height), GetId());
     sizeEvent.SetEventObject(this);
-    
+
     GetEventHandler()->ProcessEvent(sizeEvent);
-    
+
     return TRUE;
 }
 
@@ -301,7 +302,7 @@ wxFrame::~wxFrame()
     if (m_frameMenuBar)
     {
         m_frameMenuBar->DestroyMenuBar();
-        
+
         // Hack to stop core dump on Ultrix, OSF, for some strange reason.
 #if MOTIF_MENUBAR_DELETE_FIX
         GetMenuBar()->SetMainWidget((WXWidget) NULL);
@@ -309,59 +310,59 @@ wxFrame::~wxFrame()
         delete m_frameMenuBar;
         m_frameMenuBar = NULL;
     }
-    
+
     wxTopLevelWindows.DeleteObject(this);
     wxModelessWindows.DeleteObject(this);
-    
+
     if (m_frameStatusBar)
         delete m_frameStatusBar;
-    
+
     DestroyChildren();
-    
+
     /*
     int i;
     for (i = 0; i < wxMAX_STATUS; i++)
     if (statusTextWidget[i])
     XtDestroyWidget (statusTextWidget[i]);
-    
+
       if (statusLineForm)
       XtDestroyWidget (statusLineForm);
-      
+
         if (statusLineWidget)
         XtDestroyWidget (statusLineWidget);
     */
-    
+
     if (m_workArea)
     {
         wxDeleteWindowFromTable((Widget) m_workArea);
-        
+
         XtDestroyWidget ((Widget) m_workArea);
     }
-    
+
     if (m_frameWidget)
     {
         wxDeleteWindowFromTable((Widget) m_frameWidget);
         XtDestroyWidget ((Widget) m_frameWidget);
     }
-    
+
     if (m_frameShell)
         XtDestroyWidget ((Widget) m_frameShell);
-    
+
     SetMainWidget((WXWidget) NULL);
-    
+
     /* Check if it's the last top-level window */
-    
+
     if (wxTheApp && (wxTopLevelWindows.Number() == 0))
     {
         wxTheApp->SetTopWindow(NULL);
-        
+
         if (wxTheApp->GetExitOnFrameDelete())
         {
             // Signal to the app that we're going to close
             wxTheApp->ExitMainLoop();
         }
     }
-    
+
 }
 
 // Get size *available for subwindows* i.e. excluding menu bar, toolbar etc.
@@ -369,7 +370,7 @@ void wxFrame::GetClientSize(int *x, int *y) const
 {
     Dimension xx, yy;
     XtVaGetValues((Widget) m_workArea, XmNwidth, &xx, XmNheight, &yy, NULL);
-    
+
     if (m_frameStatusBar)
     {
         int sbw, sbh;
@@ -397,7 +398,7 @@ void wxFrame::GetClientSize(int *x, int *y) const
     {
     wxWindow *win = (wxWindow *)node->Data();
     hasSubPanel = (win->IsKindOf(CLASSINFO(wxPanel)) && !win->IsKindOf(CLASSINFO(wxDialog)));
-    
+
       if (hasSubPanel)
       break;
       }
@@ -408,7 +409,7 @@ void wxFrame::GetClientSize(int *x, int *y) const
       }
       }
     */
-    
+
     *x = xx; *y = yy;
 }
 
@@ -421,7 +422,7 @@ void wxFrame::DoSetClientSize(int width, int height)
     // main window area, and adding on to the new client area
     if (width > -1)
         XtVaSetValues((Widget) m_workArea, XmNwidth, width, NULL);
-    
+
     if (height > -1)
     {
         if (m_frameStatusBar)
@@ -441,16 +442,16 @@ void wxFrame::DoSetClientSize(int width, int height)
                 height += tbh;
         }
 #endif // wxUSE_TOOLBAR
-        
+
         XtVaSetValues((Widget) m_workArea, XmNheight, height, NULL);
     }
     PreResize();
-    
+
     wxSizeEvent sizeEvent(wxSize(width, height), GetId());
     sizeEvent.SetEventObject(this);
-    
+
     GetEventHandler()->ProcessEvent(sizeEvent);
-    
+
 }
 
 void wxFrame::GetSize(int *width, int *height) const
@@ -465,7 +466,7 @@ void wxFrame::GetPosition(int *x, int *y) const
     Window parent_window = XtWindow((Widget) m_frameShell),
         next_parent   = XtWindow((Widget) m_frameShell),
         root          = RootWindowOfScreen(XtScreen((Widget) m_frameShell));
-    
+
     // search for the parent that is child of ROOT, because the WM may
     // reparent twice and notify only the next parent (like FVWM)
     while (next_parent != root) {
@@ -492,14 +493,14 @@ void wxFrame::DoSetSize(int x, int y, int width, int height, int sizeFlags)
         XtVaSetValues((Widget) m_frameWidget, XmNwidth, width, NULL);
     if (height > -1)
         XtVaSetValues((Widget) m_frameWidget, XmNheight, height, NULL);
-    
+
     if (!(height == -1 && width == -1))
     {
         PreResize();
-        
+
         wxSizeEvent sizeEvent(wxSize(width, height), GetId());
         sizeEvent.SetEventObject(this);
-        
+
         GetEventHandler()->ProcessEvent(sizeEvent);
     }
 }
@@ -508,9 +509,9 @@ bool wxFrame::Show(bool show)
 {
     if (!m_frameShell)
         return wxWindow::Show(show);
-    
+
     m_visibleStatus = show; /* show-&-hide fix */
-    
+
     m_isShown = show;
     if (show) {
         XtMapWidget((Widget) m_frameShell);
@@ -526,7 +527,7 @@ void wxFrame::Iconize(bool iconize)
 {
     if (!iconize)
         Show(TRUE);
-    
+
     if (m_frameShell)
         XtVaSetValues((Widget) m_frameShell, XmNiconic, (Boolean)iconize, NULL);
 }
@@ -535,7 +536,7 @@ void wxFrame::Iconize(bool iconize)
 void wxFrame::Maximize(bool maximize)
 {
     Show(TRUE);
-    
+
     if (maximize && m_frameShell)
         XtVaSetValues((Widget) m_frameShell, XmNiconic, FALSE, NULL);
 }
@@ -544,7 +545,7 @@ bool wxFrame::IsIconized() const
 {
     if (!m_frameShell)
         return FALSE;
-    
+
     Boolean iconic;
     XtVaGetValues((Widget) m_frameShell, XmNiconic, &iconic, NULL);
     return iconic;
@@ -561,11 +562,11 @@ void wxFrame::SetTitle(const wxString& title)
 {
     if (title == m_title)
         return;
-    
+
     m_title = title;
-    
+
     if (!title.IsNull())
-        XtVaSetValues((Widget) m_frameShell, 
+        XtVaSetValues((Widget) m_frameShell,
         XmNtitle, (const char*) title,
         XmNiconName, (const char*) title,
         NULL);
@@ -574,13 +575,13 @@ void wxFrame::SetTitle(const wxString& title)
 void wxFrame::SetIcon(const wxIcon& icon)
 {
     m_icon = icon;
-    
+
     if (!m_frameShell)
         return;
-    
+
     if (!icon.Ok() || !icon.GetPixmap())
         return;
-    
+
     XtVaSetValues((Widget) m_frameShell, XtNiconPixmap, icon.GetPixmap(), NULL);
 }
 
@@ -588,21 +589,21 @@ wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id,
                                         const wxString& name)
 {
     wxStatusBar *statusBar = NULL;
-    
+
     statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20),
         style, name);
-    
+
     // Set the height according to the font and the border size
     wxClientDC dc(statusBar);
     dc.SetFont(statusBar->GetFont());
-    
+
     long x, y;
     dc.GetTextExtent("X", &x, &y);
-    
+
     int height = (int)( (y  * 1.1) + 2* statusBar->GetBorderY());
-    
+
     statusBar->SetSize(-1, -1, 100, height);
-    
+
     statusBar->SetFieldsCount(number);
     return statusBar;
 }
@@ -611,9 +612,9 @@ wxStatusBar* wxFrame::CreateStatusBar(int number, long style, wxWindowID id,
                                       const wxString& name)
 {
     // Calling CreateStatusBar twice is an error.
-    wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, 
+    wxCHECK_MSG( m_frameStatusBar == NULL, FALSE,
         "recreating status bar in wxFrame" );
-    
+
     m_frameStatusBar = OnCreateStatusBar(number, style, id,
         name);
     if ( m_frameStatusBar )
@@ -628,14 +629,14 @@ wxStatusBar* wxFrame::CreateStatusBar(int number, long style, wxWindowID id,
 void wxFrame::SetStatusText(const wxString& text, int number)
 {
     wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set text for" );
-    
+
     m_frameStatusBar->SetStatusText(text, number);
 }
 
 void wxFrame::SetStatusWidths(int n, const int widths_field[])
 {
     wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set widths for" );
-    
+
     m_frameStatusBar->SetStatusWidths(n, widths_field);
     PositionStatusBar();
 }
@@ -644,12 +645,12 @@ void wxFrame::PositionStatusBar()
 {
     if (!m_frameStatusBar)
         return;
-    
+
     int w, h;
     GetClientSize(&w, &h);
     int sw, sh;
     m_frameStatusBar->GetSize(&sw, &sh);
-    
+
     // Since we wish the status bar to be directly under the client area,
     // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS.
     m_frameStatusBar->SetSize(0, h, w, sh);
@@ -670,16 +671,16 @@ void wxFrame::SetMenuBar(wxMenuBar *menuBar)
         m_frameMenuBar = NULL;
         return;
     }
-    
+
     // Currently can't set it twice
     //    wxASSERT_MSG( (m_frameMenuBar == (wxMenuBar*) NULL), "Cannot set the menubar more than once");
-    
+
     if (m_frameMenuBar)
     {
         m_frameMenuBar->DestroyMenuBar();
         delete m_frameMenuBar;
     }
-    
+
     m_frameMenuBar = menuBar;
     m_frameMenuBar->CreateMenuBar(this);
 }
@@ -694,7 +695,7 @@ void wxFrame::Fit()
     {
         // Find a child that's a subwindow, but not a dialog box.
         wxWindow *win = (wxWindow *)node->Data();
-        
+
         if (!win->IsKindOf(CLASSINFO(wxFrame)) &&
             !win->IsKindOf(CLASSINFO(wxDialog)))
         {
@@ -702,7 +703,7 @@ void wxFrame::Fit()
             int x, y;
             win->GetSize(&width, &height);
             win->GetPosition(&x, &y);
-            
+
             if ((x + width) > max_width)
                 max_width = x + width;
             if ((y + height) > max_height)
@@ -718,14 +719,14 @@ void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
 {
     SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE));
     Refresh();
-    
+
     if ( m_frameStatusBar )
     {
         wxSysColourChangedEvent event2;
         event2.SetEventObject( m_frameStatusBar );
         m_frameStatusBar->ProcessEvent(event2);
     }
-    
+
     // Propagate the event to the non-top-level children
     wxWindow::OnSysColourChanged(event);
 }
@@ -741,14 +742,14 @@ void wxFrame::OnSize(wxSizeEvent& event)
         return;
     }
 #endif
-    
+
     // do we have _exactly_ one child?
     wxWindow *child = NULL;
     for ( wxNode *node = GetChildren().First(); node; node = node->Next() )
     {
         wxWindow *win = (wxWindow *)node->Data();
         if ( !win->IsKindOf(CLASSINFO(wxFrame))  &&
-            !win->IsKindOf(CLASSINFO(wxDialog)) && 
+            !win->IsKindOf(CLASSINFO(wxDialog)) &&
             (win != GetStatusBar())
 #if wxUSE_TOOLBAR
              && (win != GetToolBar())
@@ -760,15 +761,15 @@ void wxFrame::OnSize(wxSizeEvent& event)
             child = win;
         }
     }
-    
+
     if ( child ) {
         // we have exactly one child - set it's size to fill the whole frame
         int clientW, clientH;
         GetClientSize(&clientW, &clientH);
-        
+
         int x = 0;
         int y = 0;
-        
+
         child->SetSize(x, y, clientW, clientH);
     }
 }
@@ -835,15 +836,15 @@ void wxFrame::Centre(int direction)
 {
     int display_width, display_height, width, height, x, y;
     wxDisplaySize(&display_width, &display_height);
-    
+
     GetSize(&width, &height);
     GetPosition(&x, &y);
-    
+
     if (direction & wxHORIZONTAL)
         x = (int)((display_width - width)/2);
     if (direction & wxVERTICAL)
         y = (int)((display_height - height)/2);
-    
+
     SetSize(x, y, width, height);
 }
 
@@ -885,7 +886,7 @@ wxPoint wxFrame::GetClientAreaOrigin() const
     {
         int w, h;
         GetToolBar()->GetSize(& w, & h);
-        
+
         if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL)
         {
             pt.x += w;
@@ -903,7 +904,7 @@ wxPoint wxFrame::GetClientAreaOrigin() const
 void wxFrame::ScreenToClient(int *x, int *y) const
 {
     wxWindow::ScreenToClient(x, y);
-    
+
     // We may be faking the client origin.
     // So a window that's really at (0, 30) may appear
     // (to wxWin apps) to be at (0, 0).
@@ -920,7 +921,7 @@ void wxFrame::ClientToScreen(int *x, int *y) const
     wxPoint pt1(GetClientAreaOrigin());
     *x += pt1.x;
     *y += pt1.y;
-    
+
     wxWindow::ClientToScreen(x, y);
 }
 
@@ -929,7 +930,7 @@ wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& nam
 {
     wxCHECK_MSG( m_frameToolBar == NULL, FALSE,
         "recreating toolbar in wxFrame" );
-    
+
     wxToolBar* toolBar = OnCreateToolBar(style, id, name);
     if (toolBar)
     {
@@ -961,14 +962,14 @@ wxToolBar *wxFrame::GetToolBar() const
 void wxFrame::PositionToolBar()
 {
     int cw, ch;
-    
+
     GetClientSize(& cw, &ch);
-    
+
     if (GetToolBar())
     {
         int tw, th;
         GetToolBar()->GetSize(& tw, & th);
-        
+
         if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL)
         {
             // Use the 'real' position. wxSIZE_NO_ADJUSTMENTS
@@ -989,7 +990,7 @@ void wxFrame::CaptureMouse()
 {
     if (m_winCaptured)
         return;
-    
+
     if (GetMainWidget())
         XtAddGrab((Widget) m_frameShell, TRUE, FALSE);
     m_winCaptured = TRUE;
@@ -999,7 +1000,7 @@ void wxFrame::ReleaseMouse()
 {
     if (!m_winCaptured)
         return;
-    
+
     if (GetMainWidget())
         XtRemoveGrab((Widget) m_frameShell);
     m_winCaptured = FALSE;
@@ -1039,25 +1040,24 @@ void wxFrame::Lower(void)
     XLowerWindow(XtDisplay((Widget) m_frameShell), parent_window);
 }
 
-void wxFrameFocusProc(Widget workArea, XtPointer clientData, 
+void wxFrameFocusProc(Widget workArea, XtPointer clientData,
                       XmAnyCallbackStruct *cbs)
 {
-    wxFrame *frame = (wxFrame *)clientData;
-    
     // wxDebugMsg("focus proc from frame %ld\n",(long)frame);
     // TODO
-    //  frame->GetEventHandler()->OnSetFocus();
+    // wxFrame *frame = (wxFrame *)clientData;
+    // frame->GetEventHandler()->OnSetFocus();
 }
 
 /* MATTEW: Used to insure that hide-&-show within an event cycle works */
-static void wxFrameMapProc(Widget frameShell, XtPointer clientData, 
+static void wxFrameMapProc(Widget frameShell, XtPointer clientData,
                            XCrossingEvent * event)
 {
-    wxFrame *frame = (wxFrame *)wxWidgetHashTable->Get((long)clientData);
-    
+    wxFrame *frame = (wxFrame *)wxGetWindowFromTable((Widget)clientData);
+
     if (frame) {
         XEvent *e = (XEvent *)event;
-        
+
         if (e->xany.type == MapNotify)
         {
             // Iconize fix
@@ -1109,10 +1109,10 @@ void wxFrame::ChangeForegroundColour()
 void wxCloseFrameCallback(Widget widget, XtPointer client_data, XmAnyCallbackStruct *cbs)
 {
     wxFrame *frame = (wxFrame *)client_data;
-    
+
     wxCloseEvent closeEvent(wxEVT_CLOSE_WINDOW, frame->GetId());
     closeEvent.SetEventObject(frame);
-    
+
     // May delete the frame (with delayed deletion)
     frame->GetEventHandler()->ProcessEvent(closeEvent);
 }
index 57786a54b9244d83a574b58fae79f1b86005717f..b5b7a97d1a238740fbc4cedef702afab4a815367 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -33,7 +33,7 @@
 extern wxList wxModelessWindows;
 
 // Implemented in frame.cpp
-extern void wxFrameFocusProc(Widget workArea, XtPointer clientData, 
+extern void wxFrameFocusProc(Widget workArea, XtPointer clientData,
                              XmAnyCallbackStruct *cbs);
 
 #define wxID_NOTEBOOK_CLIENT_AREA wxID_HIGHEST + 100
@@ -76,19 +76,19 @@ bool wxMDIParentFrame::Create(wxWindow *parent,
     m_clientWindow = (wxMDIClientWindow*) NULL;
     m_activeChild = (wxMDIChildFrame*) NULL;
     m_activeMenuBar = (wxMenuBar*) NULL;
-    
+
     bool success = wxFrame::Create(parent, id, title, pos, size, style, name);
     if (success)
     {
         // TODO: app cannot override OnCreateClient since
         // wxMDIParentFrame::OnCreateClient will still be called
         // (we're in the constructor). How to resolve?
-        
+
         m_clientWindow = OnCreateClient();
-        
+
         // Uses own style for client style
         m_clientWindow->CreateClient(this, GetWindowStyleFlag());
-        
+
         int w, h;
         GetClientSize(& w, & h);
         m_clientWindow->SetSize(0, 0, w, h);
@@ -102,9 +102,9 @@ wxMDIParentFrame::~wxMDIParentFrame()
 {
     // Make sure we delete the client window last of all
     RemoveChild(m_clientWindow);
-    
+
     DestroyChildren();
-    
+
     delete m_clientWindow;
     m_clientWindow = NULL;
 }
@@ -112,7 +112,7 @@ wxMDIParentFrame::~wxMDIParentFrame()
 void wxMDIParentFrame::SetMenuBar(wxMenuBar *menu_bar)
 {
     m_frameMenuBar = menu_bar;
-    
+
     SetChildMenuBar((wxMDIChildFrame*) NULL);
 }
 
@@ -126,7 +126,7 @@ void wxMDIParentFrame::OnSize(wxSizeEvent& event)
     int y = 0;
     int width, height;
     GetClientSize(&width, &height);
-    
+
     if ( GetClientWindow() )
         GetClientWindow()->SetSize(x, y, width, height);
 }
@@ -158,14 +158,14 @@ wxMDIClientWindow *wxMDIParentFrame::OnCreateClient()
 void wxMDIParentFrame::SetChildMenuBar(wxMDIChildFrame* child)
 {
     wxMenuBar* oldMenuBar = m_activeMenuBar;
-    
+
     if (child == (wxMDIChildFrame*) NULL)  // No child: use parent frame
     {
         if (GetMenuBar() && (GetMenuBar() != m_activeMenuBar))
         {
             //            if (m_activeMenuBar)
             //                m_activeMenuBar->DestroyMenuBar();
-            
+
             m_activeMenuBar = GetMenuBar();
             m_activeMenuBar->CreateMenuBar(this);
             /*
@@ -174,7 +174,7 @@ void wxMDIParentFrame::SetChildMenuBar(wxMDIChildFrame* child)
             */
             if (oldMenuBar && oldMenuBar->GetMainWidget())
                 XtUnmapWidget((Widget) oldMenuBar->GetMainWidget());
-            
+
         }
     }
     else if (child->GetMenuBar() == (wxMenuBar*) NULL) // No child menu bar: use parent frame
@@ -199,7 +199,7 @@ void wxMDIParentFrame::SetChildMenuBar(wxMDIChildFrame* child)
         {
             //            if (m_activeMenuBar)
             //                m_activeMenuBar->DestroyMenuBar();
-            
+
             m_activeMenuBar = child->GetMenuBar();
             m_activeMenuBar->CreateMenuBar(this);
             /*
@@ -219,20 +219,20 @@ bool wxMDIParentFrame::ProcessEvent(wxEvent& event)
     static wxEventType inEvent = wxEVT_NULL;
     if (inEvent == event.GetEventType())
         return FALSE;
-    
+
     inEvent = event.GetEventType();
-    
+
     bool res = FALSE;
     if (m_activeChild && event.IsKindOf(CLASSINFO(wxCommandEvent)))
     {
         res = m_activeChild->GetEventHandler()->ProcessEvent(event);
     }
-    
+
     if (!res)
         res = GetEventHandler()->wxEvtHandler::ProcessEvent(event);
-    
+
     inEvent = wxEVT_NULL;
-    
+
     return res;
 }
 
@@ -252,7 +252,7 @@ void wxMDIParentFrame::DoSetClientSize(int width, int height)
 void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
 {
     // TODO
-    
+
     // Propagate the event to the non-top-level children
     wxFrame::OnSysColourChanged(event);
 }
@@ -299,31 +299,31 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent,
                              const wxString& name)
 {
     SetName(name);
-    
+
     m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE);
     m_foregroundColour = *wxBLACK;
     m_font = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
-    
+
     if ( id > -1 )
         m_windowId = id;
     else
         m_windowId = (int)NewControlId();
-    
+
     wxMDIClientWindow* clientWindow = parent->GetClientWindow();
-    
+
     wxASSERT_MSG( (clientWindow != (wxWindow*) NULL), "Missing MDI client window.");
-    
+
     if (clientWindow) clientWindow->AddChild(this);
-    
+
     SetMDIParentFrame(parent);
-    
-    int x = pos.x; int y = pos.y;
-    int width = size.x; int height = size.y;
+
+    int width = size.x;
+    int height = size.y;
     if (width == -1)
         width = 200; // TODO: give reasonable default
     if (height == -1)
         height = 200; // TODO: give reasonable default
-    
+
     // We're deactivating the old child
     wxMDIChildFrame* oldActiveChild = parent->GetActiveChild();
     if (oldActiveChild)
@@ -332,13 +332,13 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent,
         event.SetEventObject( oldActiveChild );
         oldActiveChild->GetEventHandler()->ProcessEvent(event);
     }
-    
+
     // This is the currently active child
     parent->SetActiveChild((wxMDIChildFrame*) this);
-    
+
     // This time we'll try a bog-standard bulletin board for
     // the 'frame'. A main window doesn't seem to work.
-    
+
     m_mainWidget = (WXWidget) XtVaCreateWidget("client",
         xmBulletinBoardWidgetClass, (Widget) clientWindow->GetTopWidget(),
         XmNmarginWidth, 0,
@@ -354,22 +354,22 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent,
 
     XtAddEventHandler((Widget) m_mainWidget, ExposureMask,FALSE,
         wxUniversalRepaintProc, (XtPointer) this);
-    
+
     SetCanAddEventHandler(TRUE);
     AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y);
-    
-    ChangeBackgroundColour();   
-    
+
+    ChangeBackgroundColour();
+
     XtManageChild((Widget) m_mainWidget);
-    
+
     SetTitle(title);
-    
+
     clientWindow->AddPage(this, title, TRUE);
     clientWindow->Refresh();
-    
+
     // Positions the toolbar and status bar -- but we don't have any.
     //    PreResize();
-    
+
     wxModelessWindows.Append(this);
     return TRUE;
 }
@@ -380,19 +380,19 @@ wxMDIChildFrame::~wxMDIChildFrame()
     if (m_mainWidget)
       XtRemoveEventHandler((Widget) m_mainWidget, ExposureMask,FALSE,
         wxUniversalRepaintProc, (XtPointer) this);
-    
+
     if (GetMDIParentFrame())
     {
         wxMDIParentFrame* parentFrame = GetMDIParentFrame();
-        
+
         if (parentFrame->GetActiveChild() == this)
             parentFrame->SetActiveChild((wxMDIChildFrame*) NULL);
         wxMDIClientWindow* clientWindow = parentFrame->GetClientWindow();
-        
+
         // Remove page if still there
         if (clientWindow->RemovePage(this))
             clientWindow->Refresh();
-        
+
         // Set the selection to the first remaining page
         if (clientWindow->GetPageCount() > 0)
         {
@@ -415,14 +415,14 @@ void wxMDIChildFrame::OnRaise()
     wxMDIParentFrame* parentFrame = (wxMDIParentFrame*) GetParent() ;
     wxMDIChildFrame* oldActiveChild = parentFrame->GetActiveChild();
     parentFrame->SetActiveChild(this);
-    
+
     if (oldActiveChild)
     {
         wxActivateEvent event(wxEVT_ACTIVATE, FALSE, oldActiveChild->GetId());
         event.SetEventObject( oldActiveChild );
         oldActiveChild->GetEventHandler()->ProcessEvent(event);
     }
-    
+
     wxActivateEvent event(wxEVT_ACTIVATE, TRUE, this->GetId());
     event.SetEventObject( this );
     this->GetEventHandler()->ProcessEvent(event);
@@ -432,7 +432,7 @@ void wxMDIChildFrame::OnLower()
 {
     wxMDIParentFrame* parentFrame = (wxMDIParentFrame*) GetParent() ;
     wxMDIChildFrame* oldActiveChild = parentFrame->GetActiveChild();
-    
+
     if (oldActiveChild == this)
     {
         wxActivateEvent event(wxEVT_ACTIVATE, FALSE, oldActiveChild->GetId());
@@ -483,7 +483,7 @@ void wxMDIChildFrame::SetMenuBar(wxMenuBar *menuBar)
     // Don't create the underlying menubar yet; need to recreate
     // it every time the child is activated.
     m_frameMenuBar = menuBar;
-    
+
     // We make the assumption that if you're setting the menubar,
     // this is the currently active child.
     GetMDIParentFrame()->SetChildMenuBar(this);
@@ -495,7 +495,7 @@ void wxMDIChildFrame::SetIcon(const wxIcon& icon)
     m_icon = icon;
     if (m_icon.Ok())
     {
-        // Not appropriate since there are no icons in 
+        // Not appropriate since there are no icons in
         // a tabbed window
     }
 }
@@ -577,7 +577,7 @@ wxMDIClientWindow::~wxMDIClientWindow()
     // By the time this destructor is called, the child frames will have been
     // deleted and removed from the notebook/client window.
     DestroyChildren();
-    
+
     m_mainWidget = (WXWidget) 0;
 }
 
@@ -585,7 +585,7 @@ bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style)
 {
     //    m_windowParent = parent;
     //    m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE);
-    
+
     bool success = wxNotebook::Create(parent, wxID_NOTEBOOK_CLIENT_AREA, wxPoint(0, 0), wxSize(100, 100), 0);
     if (success)
     {
@@ -653,7 +653,7 @@ void wxMDIClientWindow::OnPageChanged(wxNotebookEvent& event)
             wxActivateEvent event(wxEVT_ACTIVATE, TRUE, activeChild->GetId());
             event.SetEventObject( activeChild );
             activeChild->GetEventHandler()->ProcessEvent(event);
-            
+
             if (activeChild->GetMDIParentFrame())
             {
                 activeChild->GetMDIParentFrame()->SetActiveChild(activeChild);
index d4ced6405db74940d03cb09a86e2fa8f70e151c9..a939adba66a8cd2483ed3289b81b4ae837e31a7a 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:   Region class
 // Author:    Markus Holzem/Julian Smart
 // Created:   Fri Oct 24 10:46:34 MET 1997
-// RCS-ID:       $Id$
+// RCS-ID:      $Id$
 // Copyright: (c) 1997 Markus Holzem/Julian Smart
 // Licence:   wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -19,8 +19,8 @@
 // #include "wx/motif/private.h"
 
 #if !USE_SHARED_LIBRARY
-       IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject)
-       IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject)
+    IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject)
+    IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject)
 #endif
 
 //-----------------------------------------------------------------------------
 
 class WXDLLEXPORT wxRegionRefData : public wxGDIRefData {
 public:
-       wxRegionRefData()
-       {
-               m_region = XCreateRegion();
-       }
-
-       wxRegionRefData(const wxRegionRefData& data)
-       {
-               m_region = XCreateRegion();
-               XUnionRegion(m_region, data.m_region, m_region);
-       }
-
-       ~wxRegionRefData()
-       {
-               XDestroyRegion(m_region);
-       }
+    wxRegionRefData()
+    {
+        m_region = XCreateRegion();
+    }
+
+    wxRegionRefData(const wxRegionRefData& data)
+    {
+        m_region = XCreateRegion();
+        XUnionRegion(m_region, data.m_region, m_region);
+    }
+
+    ~wxRegionRefData()
+    {
+        XDestroyRegion(m_region);
+    }
     Region  m_region;
 };
 
@@ -64,24 +64,24 @@ wxRegion::wxRegion(long x, long y, long w, long h)
 {
     m_refData = new wxRegionRefData;
 
-       XRectangle rect;
-       rect.x          = x;
-       rect.y          = y;
-       rect.width      = w;
-       rect.height = h;
-       XUnionRectWithRegion(&rect, M_REGION, M_REGION);
+    XRectangle rect;
+    rect.x        = x;
+    rect.y        = y;
+    rect.width    = w;
+    rect.height = h;
+    XUnionRectWithRegion(&rect, M_REGION, M_REGION);
 }
 
 wxRegion::wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight)
 {
     m_refData = new wxRegionRefData;
 
-       XRectangle rect;
-       rect.x          = topLeft.x;
-       rect.y          = topLeft.y;
-       rect.width      = bottomRight.x - topLeft.x;
-       rect.height = bottomRight.y - topLeft.y;
-       XUnionRectWithRegion(&rect, M_REGION, M_REGION);
+    XRectangle rect;
+    rect.x        = topLeft.x;
+    rect.y        = topLeft.y;
+    rect.width    = bottomRight.x - topLeft.x;
+    rect.height = bottomRight.y - topLeft.y;
+    XUnionRectWithRegion(&rect, M_REGION, M_REGION);
 }
 
 wxRegion::wxRegion(const wxRect& rect)
@@ -89,9 +89,9 @@ wxRegion::wxRegion(const wxRect& rect)
     m_refData = new wxRegionRefData;
 
     XRectangle rect1;
-    rect1.x            = rect.x;
-    rect1.y            = rect.y;
-    rect1.width        = rect.width;
+    rect1.x        = rect.x;
+    rect1.y        = rect.y;
+    rect1.width    = rect.width;
     rect1.height = rect.height;
     XUnionRectWithRegion(&rect1, M_REGION, M_REGION);
 }
@@ -125,33 +125,32 @@ void wxRegion::Clear()
 //! Combine rectangle (x, y, w, h) with this.
 bool wxRegion::Combine(long x, long y, long width, long height, wxRegionOp op)
 {
-       // Don't change shared data
-       if (!m_refData) {
-               m_refData = new wxRegionRefData();
-       } else if (m_refData->GetRefCount() > 1) {
-               wxRegionRefData* ref = (wxRegionRefData*)m_refData;
-               UnRef();
-               m_refData = new wxRegionRefData(*ref);
-       }
+    // Don't change shared data
+    if (!m_refData) {
+        m_refData = new wxRegionRefData();
+    } else if (m_refData->GetRefCount() > 1) {
+        wxRegionRefData* ref = (wxRegionRefData*)m_refData;
+        UnRef();
+        m_refData = new wxRegionRefData(*ref);
+    }
     // If ref count is 1, that means it's 'ours' anyway so no action.
 
     Region rectRegion = XCreateRegion();
 
-       XRectangle rect;
-       rect.x          = x;
-       rect.y          = y;
-       rect.width      = width;
-       rect.height = height;
-       XUnionRectWithRegion(&rect, rectRegion, rectRegion);
+    XRectangle rect;
+    rect.x        = x;
+    rect.y        = y;
+    rect.width    = width;
+    rect.height = height;
+    XUnionRectWithRegion(&rect, rectRegion, rectRegion);
 
-    int mode = 0; // TODO platform-specific code
     switch (op)
     {
         case wxRGN_AND:
-               XIntersectRegion(M_REGION, rectRegion, M_REGION);
+            XIntersectRegion(M_REGION, rectRegion, M_REGION);
             break ;
         case wxRGN_OR:
-               XUnionRegion(M_REGION, rectRegion, M_REGION);
+            XUnionRegion(M_REGION, rectRegion, M_REGION);
             break ;
         case wxRGN_XOR:
             // TODO
@@ -171,28 +170,27 @@ bool wxRegion::Combine(long x, long y, long width, long height, wxRegionOp op)
 //! Union /e region with this.
 bool wxRegion::Combine(const wxRegion& region, wxRegionOp op)
 {
-       if (region.Empty())
-               return FALSE;
-
-       // Don't change shared data
-       if (!m_refData) {
-               m_refData = new wxRegionRefData();
-       } else  if (m_refData->GetRefCount() > 1) {
-               wxRegionRefData* ref = (wxRegionRefData*)m_refData;
-               UnRef();
-               m_refData = new wxRegionRefData(*ref);
-       }
-
-    int mode = 0; // TODO platform-specific code
+    if (region.Empty())
+        return FALSE;
+
+    // Don't change shared data
+    if (!m_refData) {
+        m_refData = new wxRegionRefData();
+    } else    if (m_refData->GetRefCount() > 1) {
+        wxRegionRefData* ref = (wxRegionRefData*)m_refData;
+        UnRef();
+        m_refData = new wxRegionRefData(*ref);
+    }
+
     switch (op)
     {
         case wxRGN_AND:
-               XIntersectRegion(M_REGION, ((wxRegionRefData*)region.m_refData)->m_region,
-                                M_REGION);
+            XIntersectRegion(M_REGION, ((wxRegionRefData*)region.m_refData)->m_region,
+                 M_REGION);
             break ;
         case wxRGN_OR:
-               XUnionRegion(M_REGION, ((wxRegionRefData*)region.m_refData)->m_region,
-                                M_REGION);
+            XUnionRegion(M_REGION, ((wxRegionRefData*)region.m_refData)->m_region,
+                 M_REGION);
             break ;
         case wxRGN_XOR:
             // TODO
@@ -221,16 +219,16 @@ bool wxRegion::Combine(const wxRect& rect, wxRegionOp op)
 // Outer bounds of region
 void wxRegion::GetBox(long& x, long& y, long&w, long &h) const
 {
-       if (m_refData) {
-               XRectangle rect;
-               XClipBox(M_REGION, &rect);
-               x = rect.x;
-               y = rect.y;
-               w = rect.width;
-               h = rect.height;
-       } else {
-               x = y = w = h = 0;
-       }
+    if (m_refData) {
+        XRectangle rect;
+        XClipBox(M_REGION, &rect);
+        x = rect.x;
+        y = rect.y;
+        w = rect.width;
+        h = rect.height;
+    } else {
+        x = y = w = h = 0;
+    }
 }
 
 wxRect wxRegion::GetBox() const
@@ -243,7 +241,7 @@ wxRect wxRegion::GetBox() const
 // Is region empty?
 bool wxRegion::Empty() const
 {
-       return m_refData ? XEmptyRegion(M_REGION) : TRUE;
+    return m_refData ? XEmptyRegion(M_REGION) : TRUE;
 }
 
 //-----------------------------------------------------------------------------
@@ -253,8 +251,8 @@ bool wxRegion::Empty() const
 // Does the region contain the point (x,y)?
 wxRegionContain wxRegion::Contains(long x, long y) const
 {
-       if (!m_refData)
-               return wxOutRegion;
+    if (!m_refData)
+        return wxOutRegion;
 
     // TODO. Return wxInRegion if within region.
     if (0)
@@ -265,30 +263,30 @@ wxRegionContain wxRegion::Contains(long x, long y) const
 // Does the region contain the point pt?
 wxRegionContain wxRegion::Contains(const wxPoint& pt) const
 {
-       if (!m_refData)
-               return wxOutRegion;
+    if (!m_refData)
+        return wxOutRegion;
 
-       return XPointInRegion(M_REGION, pt.x, pt.y) ? wxInRegion : wxOutRegion;
+    return XPointInRegion(M_REGION, pt.x, pt.y) ? wxInRegion : wxOutRegion;
 }
 
 // Does the region contain the rectangle (x, y, w, h)?
 wxRegionContain wxRegion::Contains(long x, long y, long w, long h) const
 {
-       if (!m_refData)
-               return wxOutRegion;
-
-       switch (XRectInRegion(M_REGION, x, y, w, h)) {
-           case RectangleIn:   return wxInRegion;
-           case RectanglePart: return wxPartRegion;
-       }
-       return wxOutRegion;
+    if (!m_refData)
+        return wxOutRegion;
+
+    switch (XRectInRegion(M_REGION, x, y, w, h)) {
+        case RectangleIn:    return wxInRegion;
+        case RectanglePart: return wxPartRegion;
+    }
+    return wxOutRegion;
 }
 
 // Does the region contain the rectangle rect
 wxRegionContain wxRegion::Contains(const wxRect& rect) const
 {
-       if (!m_refData)
-               return wxOutRegion;
+    if (!m_refData)
+        return wxOutRegion;
 
     long x, y, w, h;
     x = rect.x;
@@ -299,9 +297,9 @@ wxRegionContain wxRegion::Contains(const wxRect& rect) const
 }
 
 ///////////////////////////////////////////////////////////////////////////////
-//                                                                                                                                                      //
-//                                                        wxRegionIterator                                                              //
-//                                                                                                                                                      //
+//                                                                             //
+//                               wxRegionIterator                                 //
+//                                                                             //
 ///////////////////////////////////////////////////////////////////////////////
 
 /*!
@@ -324,7 +322,7 @@ wxRegionIterator::wxRegionIterator(const wxRegion& region)
 {
     m_rects = NULL;
 
-       Reset(region);
+    Reset(region);
 }
 
 /*!
@@ -332,17 +330,17 @@ wxRegionIterator::wxRegionIterator(const wxRegion& region)
  */
 void wxRegionIterator::Reset(const wxRegion& region)
 {
-       m_current = 0;
-       m_region = region;
+    m_current = 0;
+    m_region = region;
 
     if (m_rects)
         delete[] m_rects;
 
     m_rects = NULL;
 
-       if (m_region.Empty())
-               m_numRects = 0;
-       else
+    if (m_region.Empty())
+        m_numRects = 0;
+    else
     {
         // TODO create m_rects and fill with rectangles for this region
         m_numRects = 0;
@@ -355,8 +353,8 @@ void wxRegionIterator::Reset(const wxRegion& region)
  */
 void wxRegionIterator::operator ++ ()
 {
-       if (m_current < m_numRects)
-               ++m_current;
+    if (m_current < m_numRects)
+        ++m_current;
 }
 
 /*!
@@ -365,35 +363,35 @@ void wxRegionIterator::operator ++ ()
  */
 void wxRegionIterator::operator ++ (int)
 {
-       if (m_current < m_numRects)
-               ++m_current;
+    if (m_current < m_numRects)
+        ++m_current;
 }
 
 long wxRegionIterator::GetX() const
 {
-       if (m_current < m_numRects)
-               return m_rects[m_current].x;
-       return 0;
+    if (m_current < m_numRects)
+        return m_rects[m_current].x;
+    return 0;
 }
 
 long wxRegionIterator::GetY() const
 {
-       if (m_current < m_numRects)
-               return m_rects[m_current].y;
-       return 0;
+    if (m_current < m_numRects)
+        return m_rects[m_current].y;
+    return 0;
 }
 
 long wxRegionIterator::GetW() const
 {
-       if (m_current < m_numRects)
-               return m_rects[m_current].width ;
-       return 0;
+    if (m_current < m_numRects)
+        return m_rects[m_current].width ;
+    return 0;
 }
 
 long wxRegionIterator::GetH() const
 {
-       if (m_current < m_numRects)
-               return m_rects[m_current].height;
-       return 0;
+    if (m_current < m_numRects)
+        return m_rects[m_current].height;
+    return 0;
 }