From c49245f8baabd69afd7302c43474d3bdd247fb89 Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Thu, 22 Jul 1999 23:39:47 +0000
Subject: [PATCH] 1. added wxGetNumberFromUser (to textdlgg.cpp and dialogs
 sample) 2. wxTE_RICH style added to wxMSW, the text controls don't use
 RICHEDIT    class by default any more 3. wxRadioBox doesn't generate button
 events any more (grrr...) 4. commented out code in log.cpp restored and a bug
 corrected

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3088 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/latex/wx/function.tex    |  27 ++++++
 include/wx/Makefile.am        |   1 +
 include/wx/defs.h             |   3 +
 include/wx/generic/textdlgg.h |  14 +++
 include/wx/msw/radiobox.h     |  29 +++---
 include/wx/msw/statbox.h      |  23 +++--
 include/wx/msw/wx.rc          |  14 ++-
 samples/dialogs/dialogs.cpp   |  23 +++++
 samples/dialogs/dialogs.h     |  32 ++++---
 src/common/log.cpp            |   4 +-
 src/generic/textdlgg.cpp      | 161 +++++++++++++++++++++++++++++++++-
 src/msw/app.cpp               |  10 ++-
 src/msw/radiobox.cpp          |  31 -------
 src/msw/statbox.cpp           |  37 +++-----
 src/msw/textctrl.cpp          |   5 +-
 15 files changed, 302 insertions(+), 112 deletions(-)

diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex
index 3ea9eb34d3..a42a929f31 100644
--- a/docs/latex/wx/function.tex
+++ b/docs/latex/wx/function.tex
@@ -472,6 +472,33 @@ if (s)
 
 <wx/filedlg.h>
 
+\membersection{::wxGetNumberFromUser}\label{wxgetnumberfromuser}
+
+\func{long}{wxGetNumberFromUser}{
+    \param{const wxString\& }{message},
+    \param{const wxString\& }{prompt},
+    \param{const wxString\& }{caption},
+    \param{long }{value},
+    \param{long }{min = 0},
+    \param{long }{max = 100},
+    \param{wxWindow *}{parent = NULL},
+    \param{const wxPoint\& }{pos = wxDefaultPosition}}
+
+Shows a dialog asking the user for numeric input. The dialogs title is set to 
+{\it caption}, it contains a (possibly) multiline {\it message} above the
+single line {\it prompt} and the zone for entering the number.
+
+The number entered must be in the range {\it min}..{\it max} (both of which
+should be positive) and {\it value} is the initial value of it. If the user
+enters an invalid value or cancels the dialog, the function will return -1.
+
+Dialog is centered on its {\it parent} unless an explicit position is given in 
+{\it pos}.
+
+\wxheading{Include files}
+
+<wx/textdlg.h>
+
 \membersection{::wxGetTextFromUser}\label{wxgettextfromuser}
 
 \func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
diff --git a/include/wx/Makefile.am b/include/wx/Makefile.am
index 8d69600bf1..1eb350ba98 100644
--- a/include/wx/Makefile.am
+++ b/include/wx/Makefile.am
@@ -59,6 +59,7 @@ wx_include_HEADERS = \
  event.h \
  expr.h \
  extdlg.h \
+ ffile.h \
  file.h \
  fileconf.h \
  filedlg.h \
diff --git a/include/wx/defs.h b/include/wx/defs.h
index bfa0d45da7..ba9105ed99 100644
--- a/include/wx/defs.h
+++ b/include/wx/defs.h
@@ -693,6 +693,9 @@ enum
 #define wxTE_READONLY       0x0010
 #define wxTE_MULTILINE      0x0020
 #define wxTE_PROCESS_TAB    0x0040
+// this style means to use RICHEDIT control and does something only under wxMSW
+// and Win32 and is silently ignored under all other platforms
+#define wxTE_RICH           0x0080
 
 /*
  * wxComboBox style flags
diff --git a/include/wx/generic/textdlgg.h b/include/wx/generic/textdlgg.h
index be592594f6..bd3716ecda 100644
--- a/include/wx/generic/textdlgg.h
+++ b/include/wx/generic/textdlgg.h
@@ -52,6 +52,10 @@ private:
     DECLARE_EVENT_TABLE()
 };
 
+// ----------------------------------------------------------------------------
+// functions to get a string or a number from user
+// ----------------------------------------------------------------------------
+
 wxString WXDLLEXPORT
 wxGetTextFromUser(const wxString& message,
                   const wxString& caption = wxGetTextFromUserPromptStr,
@@ -61,5 +65,15 @@ wxGetTextFromUser(const wxString& message,
                   int y = -1,
                   bool centre = TRUE);
 
+long WXDLLEXPORT
+wxGetNumberFromUser(const wxString& message,
+                    const wxString& prompt,
+                    const wxString& caption,
+                    long value = 0,
+                    long min = 0,
+                    long max = 100,
+                    wxWindow *parent = (wxWindow *)NULL,
+                    const wxPoint& pos = wxDefaultPosition);
+
 #endif
     // __TEXTDLGH_G__
diff --git a/include/wx/msw/radiobox.h b/include/wx/msw/radiobox.h
index 998c6880e6..b867313031 100644
--- a/include/wx/msw/radiobox.h
+++ b/include/wx/msw/radiobox.h
@@ -6,21 +6,20 @@
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:   	wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_RADIOBOX_H_
 #define _WX_RADIOBOX_H_
 
 #ifdef __GNUG__
-#pragma interface "radiobox.h"
+    #pragma interface "radiobox.h"
 #endif
 
 #include "wx/control.h"
 
 WXDLLEXPORT_DATA(extern const wxChar*) wxRadioBoxNameStr;
 
-// List box item
 class WXDLLEXPORT wxBitmap;
 
 class WXDLLEXPORT wxRadioBox : public wxControl
@@ -30,13 +29,6 @@ class WXDLLEXPORT wxRadioBox : public wxControl
 public:
     wxRadioBox();
 
-#if WXWIN_COMPATIBILITY
-    wxRadioBox(wxWindow *parent, wxFunction func, const char *title,
-            int x = -1, int y = -1, int width = -1, int height = -1,
-            int n = 0, char **choices = NULL,
-            int majorDim = 0, long style = wxRA_HORIZONTAL, const char *name = wxRadioBoxNameStr);
-#endif // WXWIN_COMPATIBILITY
-
     wxRadioBox(wxWindow *parent, wxWindowID id, const wxString& title,
             const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
             int n = 0, const wxString choices[] = NULL,
@@ -85,16 +77,23 @@ public:
     int GetNumberOfRowsOrCols() const { return m_noRowsOrCols; }
     void SetNumberOfRowsOrCols(int n) { m_noRowsOrCols = n; }
 
-    // Implementation
+    // implementation only from now on
+    // -------------------------------
+
     WXHWND *GetRadioButtons() const { return m_radioButtons; }
     bool ContainsHWND(WXHWND hWnd) const;
     void SendNotificationEvent();
 
-    long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
-
     // get the number of buttons per column/row
-    inline int GetNumVer() const;
-    inline int GetNumHor() const;
+    int GetNumVer() const;
+    int GetNumHor() const;
+
+#if WXWIN_COMPATIBILITY
+    wxRadioBox(wxWindow *parent, wxFunction func, const char *title,
+            int x = -1, int y = -1, int width = -1, int height = -1,
+            int n = 0, char **choices = NULL,
+            int majorDim = 0, long style = wxRA_HORIZONTAL, const char *name = wxRadioBoxNameStr);
+#endif // WXWIN_COMPATIBILITY
 
 protected:
     void SubclassRadioButton(WXHWND hWndBtn);
diff --git a/include/wx/msw/statbox.h b/include/wx/msw/statbox.h
index 87393c2f47..acd5511c8c 100644
--- a/include/wx/msw/statbox.h
+++ b/include/wx/msw/statbox.h
@@ -29,21 +29,21 @@ public:
     wxStaticBox() { }
 
     wxStaticBox(wxWindow *parent, wxWindowID id,
-        const wxString& label,
-        const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize,
-        long style = 0,
-        const wxString& name = wxStaticBoxNameStr)
+                const wxString& label,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxString& name = wxStaticBoxNameStr)
     {
         Create(parent, id, label, pos, size, style, name);
     }
 
     bool Create(wxWindow *parent, wxWindowID id,
-        const wxString& label,
-        const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize,
-        long style = 0,
-        const wxString& name = wxStaticBoxNameStr);
+                const wxString& label,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxString& name = wxStaticBoxNameStr);
 
     // implementation from now on
     // --------------------------
@@ -59,9 +59,6 @@ public:
     virtual bool AcceptsFocus() const { return FALSE; }
 
 protected:
-    virtual void DoSetSize(int x, int y,
-                           int width, int height,
-                           int sizeFlags = wxSIZE_AUTO);
     virtual wxSize DoGetBestSize();
 
 private:
diff --git a/include/wx/msw/wx.rc b/include/wx/msw/wx.rc
index 34ee12e83a..1ca1d48c6d 100644
--- a/include/wx/msw/wx.rc
+++ b/include/wx/msw/wx.rc
@@ -44,14 +44,18 @@ wxResizeableDialog DIALOG DISCARDABLE  34, 22, 144, 75
 STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
 CAPTION ""
 BEGIN
-	LTEXT "", -1,-2,-2,1,1   //necessary for __WATCOMC__
+#ifdef __WATCOMC__
+	LTEXT "", -1,-2,-2,1,1
+#endif
 END
 
 wxCaptionDialog DIALOG DISCARDABLE  34, 22, 144, 75
-STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
+STYLE DS_MODALFRAME | WS_CAPTION | WS_POPUP | WS_SYSMENU
 CAPTION "Dummy dialog"
 BEGIN
-	LTEXT "", -1,-2,-2,1,1   //necessary for __WATCOMC__
+#ifdef __WATCOMC__
+	LTEXT "", -1,-2,-2,1,1
+#endif
 END
 
 //
@@ -60,7 +64,9 @@ END
 wxNoCaptionDialog DIALOG 34, 22, 144, 75
 STYLE WS_POPUP
 BEGIN
-	LTEXT "", -1,-2,-2,1,1   //necessary for __WATCOMC__
+#ifdef __WATCOMC__
+	LTEXT "", -1,-2,-2,1,1
+#endif
 END
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp
index daf445cefb..7bc832a80d 100644
--- a/samples/dialogs/dialogs.cpp
+++ b/samples/dialogs/dialogs.cpp
@@ -78,6 +78,7 @@ bool MyApp::OnInit(void)
   file_menu->AppendSeparator();
   file_menu->Append(DIALOGS_MESSAGE_BOX, "&Message box");
   file_menu->Append(DIALOGS_TEXT_ENTRY,  "Text &entry");
+  file_menu->Append(DIALOGS_NUM_ENTRY, "&Numeric entry\tCtrl-N");
   file_menu->Append(DIALOGS_SINGLE_CHOICE,  "&Single choice");
   file_menu->Append(DIALOGS_EXT_DIALOG,  "&Extended dialog");
   file_menu->AppendSeparator();
@@ -237,6 +238,27 @@ void MyFrame::MessageBox(wxCommandEvent& WXUNUSED(event) )
   dialog.ShowModal();
 }
 
+void MyFrame::NumericEntry(wxCommandEvent& WXUNUSED(event) )
+{
+    long res = wxGetNumberFromUser("", "Enter a number:", "Numeric input test",
+                                   50, 0, 100, this);
+
+    wxString msg;
+    int icon;
+    if ( res == -1 )
+    {
+        msg = "Invalid number entered or dialog cancelled.";
+        icon = wxICON_HAND;
+    }
+    else
+    {
+        msg.Printf("You've entered %lu", res);
+        icon = wxICON_INFORMATION;
+    }
+
+    wxMessageBox(msg, "Numeric test result", wxOK | icon, this);
+}
+
 void MyFrame::TextEntry(wxCommandEvent& WXUNUSED(event) )
 {
   wxTextEntryDialog dialog(this, "This is a small sample\nA long, long string to test out the text entrybox",
@@ -362,6 +384,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     EVT_MENU(DIALOGS_CHOOSE_FONT,                MyFrame::ChooseFont)
     EVT_MENU(DIALOGS_MESSAGE_BOX,                MyFrame::MessageBox)
     EVT_MENU(DIALOGS_TEXT_ENTRY,                MyFrame::TextEntry)
+    EVT_MENU(DIALOGS_NUM_ENTRY,                MyFrame::NumericEntry)
     EVT_MENU(DIALOGS_SINGLE_CHOICE,                MyFrame::SingleChoice)
     EVT_MENU(DIALOGS_FILE_OPEN,                    MyFrame::FileOpen)
     EVT_MENU(DIALOGS_FILE_SAVE,                    MyFrame::FileSave)
diff --git a/samples/dialogs/dialogs.h b/samples/dialogs/dialogs.h
index 3143996187..b0f79f0116 100644
--- a/samples/dialogs/dialogs.h
+++ b/samples/dialogs/dialogs.h
@@ -6,7 +6,7 @@
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:   	wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef __DIALOGSH__
@@ -14,8 +14,9 @@
 
 // Define a new application type
 class MyApp: public wxApp
-{ public:
-    bool OnInit(void);
+{
+public:
+    bool OnInit();
 
     wxFont       m_canvasFont;
     wxColour     m_canvasTextColour;
@@ -23,15 +24,17 @@ class MyApp: public wxApp
 
 // Define a new frame type
 class MyFrame: public wxFrame
-{ public:
-    MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos,
-		const wxSize& size);
+{
+public:
+    MyFrame(wxWindow *parent, const wxString& title,
+            const wxPoint& pos, const wxSize& size);
 
     void ChooseColour(wxCommandEvent& event);
     void ChooseFont(wxCommandEvent& event);
     void MessageBox(wxCommandEvent& event);
     void SingleChoice(wxCommandEvent& event);
     void TextEntry(wxCommandEvent& event);
+    void NumericEntry(wxCommandEvent& event);
     void FileOpen(wxCommandEvent& event);
     void FileSave(wxCommandEvent& event);
     void DirChoose(wxCommandEvent& event);
@@ -42,20 +45,20 @@ class MyFrame: public wxFrame
     void ChooseColourGeneric(wxCommandEvent& event);
     void ChooseFontGeneric(wxCommandEvent& event);
 #endif
+
     void OnExit(wxCommandEvent& event);
-	
+
   DECLARE_EVENT_TABLE()
 };
 
 class MyCanvas: public wxScrolledWindow
 {
- public:
-  MyCanvas(wxWindow *parent):
-      wxScrolledWindow(parent)
-    {
-    }
-  void OnPaint(wxPaintEvent& event);
-DECLARE_EVENT_TABLE()
+public:
+    MyCanvas(wxWindow *parent) : wxScrolledWindow(parent) { }
+
+    void OnPaint(wxPaintEvent& event);
+
+    DECLARE_EVENT_TABLE()
 };
 
 
@@ -72,6 +75,7 @@ DECLARE_EVENT_TABLE()
 #define DIALOGS_DIR_CHOOSE                  10
 #define DIALOGS_TIP                         11
 #define DIALOGS_EXT_DIALOG                  12
+#define DIALOGS_NUM_ENTRY                   13
 
 #endif
 
diff --git a/src/common/log.cpp b/src/common/log.cpp
index 318f0706b3..b29f583649 100644
--- a/src/common/log.cpp
+++ b/src/common/log.cpp
@@ -323,7 +323,7 @@ void wxLog::TimeStamp(wxString *str)
         wxChar buf[256];
         time_t timeNow;
         (void)time(&timeNow);
-//        wxStrftime(buf, WXSIZEOF(buf), ms_timestamp, localtime(&timeNow));
+        wxStrftime(buf, WXSIZEOF(buf), ms_timestamp, localtime(&timeNow));
 
         str->Empty();
         *str << buf << _T(": ");
@@ -577,7 +577,6 @@ void wxLogGui::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
                 if ( !m_bErrors ) {
                     m_aMessages.Empty();
                     m_aTimes.Empty();
-                    m_bHasMessages = TRUE;
                     m_bErrors = TRUE;
                 }
                 // fall through
@@ -590,6 +589,7 @@ void wxLogGui::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
 
                 m_aMessages.Add(szString);
                 m_aTimes.Add((long)t);
+                m_bHasMessages = TRUE;
                 break;
     }
 }
diff --git a/src/generic/textdlgg.cpp b/src/generic/textdlgg.cpp
index ea9700ee66..723216cf9a 100644
--- a/src/generic/textdlgg.cpp
+++ b/src/generic/textdlgg.cpp
@@ -45,11 +45,40 @@
 
 #include "wx/generic/textdlgg.h"
 
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxNumberEntryDialog : public wxDialog
+{
+public:
+    wxNumberEntryDialog(wxWindow *parent,
+                        const wxString& message,
+                        const wxString& prompt,
+                        const wxString& caption,
+                        long value, long min, long max,
+                        const wxPoint& pos);
+
+    long GetValue() const { return m_value; }
+
+    // implementation only
+    void OnOK(wxCommandEvent& event);
+    void OnCancel(wxCommandEvent& event);
+
+protected:
+    wxTextCtrl *m_spinctrl; // TODO replace it with wxSpinCtrl once it's done
+
+    long m_value, m_min, m_max;
+
+private:
+    DECLARE_EVENT_TABLE()
+};
+
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
 
-#define wxID_TEXT 3000
+static const int wxID_TEXT = 3000;
 
 // ============================================================================
 // implementation
@@ -60,6 +89,11 @@
 // ----------------------------------------------------------------------------
 
 #if !USE_SHARED_LIBRARY
+BEGIN_EVENT_TABLE(wxNumberEntryDialog, wxDialog)
+    EVT_BUTTON(wxID_OK, wxNumberEntryDialog::OnOK)
+    EVT_BUTTON(wxID_CANCEL, wxNumberEntryDialog::OnCancel)
+END_EVENT_TABLE()
+
 BEGIN_EVENT_TABLE(wxTextEntryDialog, wxDialog)
     EVT_BUTTON(wxID_OK, wxTextEntryDialog::OnOK)
 END_EVENT_TABLE()
@@ -135,3 +169,128 @@ void wxTextEntryDialog::OnOK(wxCommandEvent& WXUNUSED(event) )
     EndModal(wxID_OK);
 }
 
+// ----------------------------------------------------------------------------
+// wxNumberEntryDialog
+// ----------------------------------------------------------------------------
+
+wxNumberEntryDialog::wxNumberEntryDialog(wxWindow *parent,
+                                         const wxString& message,
+                                         const wxString& prompt,
+                                         const wxString& caption,
+                                         long value,
+                                         long min,
+                                         long max,
+                                         const wxPoint& pos)
+                   : wxDialog(parent, -1, caption,
+                              pos, wxDefaultSize,
+                              wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL)
+{
+    // init members
+    // ------------
+
+    m_value = value;
+    m_max = max;
+    m_min = min;
+
+    // calculate the sizes
+    // -------------------
+
+    wxArrayString lines;
+    wxSize sizeText = SplitTextMessage(message, &lines);
+
+    wxSize sizeBtn = GetStandardButtonSize();
+
+    int wPrompt, hPrompt;
+    GetTextExtent(prompt, &wPrompt, &hPrompt);
+
+    long wText = wxMax(2*sizeBtn.GetWidth(),
+                       wxMax(wPrompt, sizeText.GetWidth()));
+    long hText = GetStandardTextHeight();
+
+    long wDialog = 5*LAYOUT_X_MARGIN + wText + wPrompt;
+    long hDialog = 2*LAYOUT_Y_MARGIN +
+                   sizeText.GetHeight() * lines.GetCount() +
+                   2*LAYOUT_Y_MARGIN +
+                   hText +
+                   2*LAYOUT_Y_MARGIN +
+                   sizeBtn.GetHeight() +
+                   2*LAYOUT_Y_MARGIN;
+
+    // create the controls
+    // -------------------
+
+    // message
+    long x = 2*LAYOUT_X_MARGIN;
+    long y = CreateTextMessage(lines,
+                               wxPoint(x, 2*LAYOUT_Y_MARGIN),
+                               sizeText);
+
+    y += 2*LAYOUT_X_MARGIN;
+
+    // prompt
+    (void)new wxStaticText(this, -1, prompt,
+                           wxPoint(x, y),
+                           wxSize(wPrompt, hPrompt));
+
+    // spin ctrl
+    wxString valStr;
+    valStr.Printf("%lu", m_value);
+    m_spinctrl = new wxTextCtrl(this, -1, valStr,
+                                wxPoint(x + wPrompt + LAYOUT_X_MARGIN, y),
+                                wxSize(wText, hText));
+    y += hText + 2*LAYOUT_X_MARGIN;
+
+    // and buttons
+    CreateStandardButtons(wDialog, y, sizeBtn.GetWidth(), sizeBtn.GetHeight());
+
+    // set the dialog size and position
+    SetClientSize(wDialog, hDialog);
+    if ( pos == wxDefaultPosition )
+    {
+        // centre the dialog if no explicit position given
+        Centre(wxBOTH | wxCENTER_FRAME);
+    }
+
+    m_spinctrl->SetFocus();
+}
+
+void wxNumberEntryDialog::OnOK(wxCommandEvent& event)
+{
+    if ( (sscanf(m_spinctrl->GetValue(), "%lu", &m_value) != 1) ||
+         (m_value < m_min) || (m_value > m_max) )
+    {
+        // not a number or out of range
+        m_value = -1;
+    }
+
+    EndModal(wxID_OK);
+}
+
+void wxNumberEntryDialog::OnCancel(wxCommandEvent& event)
+{
+    m_value = -1;
+
+    EndModal(wxID_CANCEL);
+}
+
+// ----------------------------------------------------------------------------
+// global functions
+// ----------------------------------------------------------------------------
+
+// wxGetTextFromUser is in utilscmn.cpp
+
+long wxGetNumberFromUser(const wxString& msg,
+                         const wxString& prompt,
+                         const wxString& title,
+                         long value,
+                         long min,
+                         long max,
+                         wxWindow *parent,
+                         const wxPoint& pos)
+{
+    wxNumberEntryDialog dialog(parent, msg, prompt, title,
+                               value, min, max, pos);
+    (void)dialog.ShowModal();
+
+    return dialog.GetValue();
+}
diff --git a/src/msw/app.cpp b/src/msw/app.cpp
index 2982fd9716..359863bcc2 100644
--- a/src/msw/app.cpp
+++ b/src/msw/app.cpp
@@ -204,15 +204,19 @@ bool wxApp::Initialize()
 
 #endif // __WIN95__
 
+#if wxUSE_OLE
+
+#ifdef __WIN16__
     // for OLE, enlarge message queue to be as large as possible
     int iMsg = 96;
-    while (!SetMessageQueue(iMsg) && (iMsg -= 8));
+    while (!SetMessageQueue(iMsg) && (iMsg -= 8))
+        ;
+#endif // Win16
 
-#if wxUSE_OLE
     // we need to initialize OLE library
     if ( FAILED(::OleInitialize(NULL)) )
         wxLogError(_("Cannot initialize OLE"));
-#endif
+#endif // wxUSE_OLE
 
 #if wxUSE_CTL3D
     if (!Ctl3dRegister(wxhInstance))
diff --git a/src/msw/radiobox.cpp b/src/msw/radiobox.cpp
index 0c1467a237..7e44bde49e 100644
--- a/src/msw/radiobox.cpp
+++ b/src/msw/radiobox.cpp
@@ -682,37 +682,6 @@ void wxRadioBox::Command (wxCommandEvent & event)
     ProcessCommand (event);
 }
 
-long wxRadioBox::MSWWindowProc(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam)
-{
-    long rc = 0;
-    bool processed = FALSE;
-
-    switch ( msg )
-    {
-        case WM_NCHITTEST:
-            {
-                int xPos = LOWORD(lParam);  // horizontal position of cursor
-                int yPos = HIWORD(lParam);  // vertical position of cursor
-
-                ScreenToClient(&xPos, &yPos);
-
-                // Make sure you can drag by the top of the groupbox, but let
-                // other (enclosed) controls get mouse events also
-                if ( yPos < 10 )
-                {
-                    rc = HTCLIENT;
-                    processed = TRUE;
-                }
-            }
-            break;
-    }
-
-    if ( !processed )
-        rc = wxControl::MSWWindowProc(msg, wParam, lParam);
-
-    return rc;
-}
-
 void wxRadioBox::SubclassRadioButton(WXHWND hWndBtn)
 {
 #ifdef __WIN32__
diff --git a/src/msw/statbox.cpp b/src/msw/statbox.cpp
index 32de3fc979..10f9310197 100644
--- a/src/msw/statbox.cpp
+++ b/src/msw/statbox.cpp
@@ -6,7 +6,7 @@
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:       wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -113,23 +113,10 @@ wxSize wxStaticBox::DoGetBestSize()
     return wxSize(wBox, hBox);
 }
 
-void wxStaticBox::DoSetSize(int x, int y, int width, int height, int sizeFlags)
-{
-    wxControl::DoSetSize(x, y, width, height, sizeFlags);
-
-    return;
-
-    // the static box should always be on the bottom of the Z-order, otherwise
-    // it may hide controls which are positioned inside it
-    if ( !::SetWindowPos(GetHwnd(), HWND_TOP, 0, 0, 0, 0,
-                         SWP_NOMOVE | SWP_NOSIZE) )
-    {
-        wxLogLastError(_T("SetWindowPos"));
-    }
-}
-
 WXHBRUSH wxStaticBox::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
-            WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
+                                 WXUINT message,
+                                 WXWPARAM wParam,
+                                 WXLPARAM lParam)
 {
 #if wxUSE_CTL3D
   if ( m_useCtl3D )
@@ -174,9 +161,9 @@ void wxStaticBox::OnEraseBackground(wxEraseEvent& event)
     // Alternatively, just make sure that wxStaticBox is always at the back! There are probably
     // few other circumstances where it matters about child clipping. But what about painting onto
     // to panel, inside a groupbox? Doesn't appear, because the box wipes it out.
-  wxWindow *parent = 0; //GetParent();
-  if ( parent && parent->GetHWND() && (::GetWindowLong((HWND) parent->GetHWND(), GWL_STYLE) & WS_CLIPCHILDREN) )
-  {
+    wxWindow *parent = GetParent();
+    if ( parent && parent->GetHWND() && (::GetWindowLong((HWND) parent->GetHWND(), GWL_STYLE) & WS_CLIPCHILDREN) )
+    {
         // TODO: May in fact need to generate a paint event for inside this
         // control's rectangle, otherwise all controls are going to be clipped -
         // ugh.
@@ -189,11 +176,11 @@ void wxStaticBox::OnEraseBackground(wxEraseEvent& event)
         ::FillRect ((HDC) event.GetDC()->GetHDC(), &rect, hBrush);
         ::DeleteObject(hBrush);
         ::SetMapMode((HDC) event.GetDC()->GetHDC(), mode);
-  }
-  else
-  {
-    event.Skip();
-  }
+    }
+    else
+    {
+        event.Skip();
+    }
 }
 
 long wxStaticBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp
index 55e3e77492..3ba5f18f0e 100644
--- a/src/msw/textctrl.cpp
+++ b/src/msw/textctrl.cpp
@@ -164,10 +164,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
     const wxChar *windowClass = _T("EDIT");
 
 #if wxUSE_RICHEDIT
-    // multiline edit controls are RICHEDITs except for those which have a
-    // simple border (VZ: why??)
-    if ( (m_windowStyle & wxTE_MULTILINE) &&
-         !(m_windowStyle & wxSIMPLE_BORDER) )
+    if ( m_windowStyle & wxTE_RICH )
     {
         msStyle |= ES_AUTOVSCROLL;
         m_isRich = TRUE;
-- 
2.50.0

