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) +\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} + + + \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;