From c49245f8baabd69afd7302c43474d3bdd247fb89 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin 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) +\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;