]> git.saurik.com Git - wxWidgets.git/commitdiff
1. bug in wxSplitter corrected: mouse event coords may be negative when the
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 19 May 1999 22:25:41 +0000 (22:25 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 19 May 1999 22:25:41 +0000 (22:25 +0000)
   mouse is captured which made sash roll over the window
2. missing functions added to wxRadioBox
3. non existent functions removed from wxRadioBox and wxControl

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

include/wx/msw/control.h
include/wx/msw/radiobox.h
src/generic/splitter.cpp
src/msw/notebook.cpp
src/msw/radiobox.cpp

index 35d5d8c4c3f51259478c287b146e084b5ce92599..446d49f3332e67b73a2a133de7a42bca81bfefc1 100644 (file)
@@ -34,9 +34,6 @@ public:
    // Calls the callback and appropriate event handlers
    bool ProcessCommand(wxCommandEvent& event);
 
    // Calls the callback and appropriate event handlers
    bool ProcessCommand(wxCommandEvent& event);
 
-   // Places item in centre of panel - so can't be used BEFORE panel->Fit()
-   void Centre(int direction = wxHORIZONTAL);
-
    // MSW-specific
 #ifdef __WIN95__
    virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
    // MSW-specific
 #ifdef __WIN95__
    virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
index bfc72476b1f64376e348c5b0fe3b341c0f4c4961..a750486a0fd48cf88d6595ee1d47360d18db2c50 100644 (file)
@@ -66,8 +66,6 @@ public:
     void GetSize(int *x, int *y) const;
     void GetPosition(int *x, int *y) const;
 
     void GetSize(int *x, int *y) const;
     void GetPosition(int *x, int *y) const;
 
-    wxString GetLabel() const;
-    void SetLabel(const wxString& label);
     void SetLabel(int item, const wxString& label);
     void SetLabel(int item, wxBitmap *bitmap);
     wxString GetLabel(int item) const;
     void SetLabel(int item, const wxString& label);
     void SetLabel(int item, wxBitmap *bitmap);
     wxString GetLabel(int item) const;
index 69ddce49e00d97d80ba5fa424509495b2d528db2..4272fe2514cd812c90e277dd9222e2400e4df4bb 100644 (file)
@@ -263,11 +263,24 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
         // Erase old tracker
         DrawSashTracker(m_oldX, m_oldY);
 
         // Erase old tracker
         DrawSashTracker(m_oldX, m_oldY);
 
-        // Draw new one
-        DrawSashTracker(x, y);
-
+#ifdef __WXMSW__
+        // As we captured the mouse, we may get the mouse events from outside
+        // our window - for example, negative values in x, y. This has a weird
+        // consequence under MSW where we use unsigned values sometimes and
+        // signed ones other times: the coordinates turn as big positive
+        // numbers and so the sash is drawn on the *right* side of the window
+        // instead of the left (or bottom instead of top). Correct this.
         m_oldX = x;
         m_oldY = y;
         m_oldX = x;
         m_oldY = y;
+
+        if ( (short)m_oldX < 0 )
+            m_oldX = 0;
+        if ( (short)m_oldY < 0 )
+            m_oldY = 0;
+#endif // __WXMSW__
+
+        // Draw new one
+        DrawSashTracker(m_oldX, m_oldY);
     }
     else if ( event.LeftDClick() )
     {
     }
     else if ( event.LeftDClick() )
     {
index cdfedb4cb3761a83f41e6bb056bcb7e2f7f9fa43..eb551853d5318c6bebf6d3ee23ff6b19125bc49e 100644 (file)
@@ -123,10 +123,7 @@ bool wxNotebook::Create(wxWindow *parent,
                         const wxString& name)
 {
   // base init
                         const wxString& name)
 {
   // base init
-  SetName(name);
-  SetParent(parent);
-
-  m_windowId = id == -1 ? NewControlId() : id;
+  CreateBase(parent, id, pos, size, style, name);
 
   // colors and font
   m_backgroundColour = wxColour(GetSysColor(COLOR_BTNFACE));
 
   // colors and font
   m_backgroundColour = wxColour(GetSysColor(COLOR_BTNFACE));
index 757b479bebb9cc8f092ac32b2472c1fe66a2a31b..4038a36348b8a7c6adc021201926b9b7b4eb7cec 100644 (file)
@@ -287,8 +287,17 @@ wxRadioBox::~wxRadioBox()
 
 }
 
 
 }
 
+wxString wxRadioBox::GetLabel(int item) const
+{
+    wxCHECK_MSG( item >= 0 && item < m_noItems, "", "invalid radiobox index" );
+
+    return wxGetWindowText(m_radioButtons[item]);
+}
+
 void wxRadioBox::SetLabel(int item, const wxString& label)
 {
 void wxRadioBox::SetLabel(int item, const wxString& label)
 {
+    wxCHECK_RET( item >= 0 && item < m_noItems, "invalid radiobox index" );
+
     m_radioWidth[item] = m_radioHeight[item] = -1;
     SetWindowText((HWND)m_radioButtons[item], label.c_str());
 }
     m_radioWidth[item] = m_radioHeight[item] = -1;
     SetWindowText((HWND)m_radioButtons[item], label.c_str());
 }