]> git.saurik.com Git - wxWidgets.git/commitdiff
Make it easier to not use wxPopupWindow in wxSTC, and for now, don't
authorRobin Dunn <robin@alldunn.com>
Fri, 3 May 2002 23:30:40 +0000 (23:30 +0000)
committerRobin Dunn <robin@alldunn.com>
Fri, 3 May 2002 23:30:40 +0000 (23:30 +0000)
use it at all for the AutoComplete window.

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

contrib/include/wx/stc/stc.h
contrib/src/stc/PlatWX.cpp
contrib/src/stc/ScintillaWX.cpp
contrib/src/stc/stc.h.in
include/wx/stc/stc.h
src/stc/PlatWX.cpp
src/stc/ScintillaWX.cpp
src/stc/stc.h.in
wxPython/contrib/stc/msw/stc_.cpp
wxPython/contrib/stc/msw/stc_.py

index ab01bf1887fe284c910f0667dcaa590534bfc63c..62bc6db59417f7e344e558498683f24e6903f508 100644 (file)
 #include <wx/wx.h>
 #include <wx/dnd.h>
 
+//----------------------------------------------------------------------
+
+// Should a wxPopupWindow be used for the call tips and autocomplete windows?
+#ifndef wxSTC_USE_POPUP
+#define wxSTC_USE_POPUP 1
+#endif
+
 //----------------------------------------------------------------------
 // BEGIN generated section.  The following code is automatically generated
 //       by gen_iface.py.  Do not edit this file.  Edit stc.h.in instead
index c4fcfb5123f2473035a918cbf320d0adce2e3062..23dd10d5bd4c23e2534229ef85ba44676ae9a6cb 100644 (file)
@@ -673,19 +673,20 @@ BEGIN_EVENT_TABLE(wxSTCListBox, wxListBox)
     EVT_SET_FOCUS(wxSTCListBox::OnFocus)
 END_EVENT_TABLE()
 
+#undef wxSTC_USE_POPUP
+#define wxSTC_USE_POPUP 0  // Leave it off for this one...
 
 
 // A window to place the listbox upon.  If wxPopupWindow is supported then
 // that will be used so the listbox can extend beyond the client area of the
 // wxSTC if needed.
-
-#if wxUSE_POPUPWIN
+#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
 #include <wx/popupwin.h>
 #define wxSTCListBoxWinBase wxPopupWindow
 #define param2  wxBORDER_NONE  // popup's 2nd param is flags
 #else
 #define wxSTCListBoxWinBase wxWindow
-#define param2 -1 // wxWindows 2nd param is ID
+#define param2 -1 // wxWindow's 2nd param is ID
 #endif
 
 class wxSTCListBoxWin : public wxSTCListBoxWinBase {
@@ -693,6 +694,7 @@ public:
     wxSTCListBoxWin(wxWindow* parent, wxWindowID id)
         : wxSTCListBoxWinBase(parent, param2) {
         lb = new wxSTCListBox(this, id);
+        lb->SetCursor(wxCursor(wxCURSOR_ARROW));
     }
 
     void OnSize(wxSizeEvent& event) {
@@ -703,9 +705,9 @@ public:
         event.Skip();
     }
 
-    wxListBox* GetLB() { return lb; }
+        wxListBox* GetLB() { return lb; }
 
-#if wxUSE_POPUPWIN
+#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
     virtual void DoSetSize(int x, int y,
                            int width, int height,
                            int sizeFlags = wxSIZE_AUTO) {
@@ -755,8 +757,8 @@ PRectangle ListBox::GetDesiredRect() {
     rc.left = 0;
     if (sz.x > 400)
         sz.x = 400;
-    if (sz.y > 160)  // TODO:  Use desiredVisibleRows??
-        sz.y = 160;
+    if (sz.y > 140)  // TODO:  Use desiredVisibleRows??
+        sz.y = 140;
     rc.right = sz.x;
     rc.bottom = sz.y;
     return rc;
index f7336a7196d052321b9ab7ac3c5d591d5c7f325f..e45084ca7052a3842ae48483b760ab1c77f19134 100644 (file)
@@ -63,7 +63,7 @@ void  wxSTCDropTarget::OnLeave() {
 #endif
 
 
-#if wxUSE_POPUPWIN
+#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
 #include <wx/popupwin.h>
 #define wxSTCCallTipBase wxPopupWindow
 #define param2  wxBORDER_NONE  // popup's 2nd param is flags
@@ -88,7 +88,7 @@ public:
         delete surfaceWindow;
     }
 
-#if wxUSE_POPUPWIN
+#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
     virtual void DoSetSize(int x, int y,
                            int width, int height,
                            int sizeFlags = wxSIZE_AUTO) {
@@ -98,6 +98,21 @@ public:
             GetParent()->ClientToScreen(NULL, &y);
         wxSTCCallTipBase::DoSetSize(x, y, width, height, sizeFlags);
     }
+
+    virtual bool Show( bool show = TRUE ) {
+        bool retval = wxSTCCallTipBase::Show(show);
+        if (show) {
+            CaptureMouse();
+        }
+        else {
+            ReleaseMouse();
+        }
+        return retval;
+    }
+
+    void OnLeftDown(wxMouseEvent& ) {
+        Show(FALSE);
+    }
 #endif
 
 private:
@@ -107,6 +122,9 @@ private:
 
 BEGIN_EVENT_TABLE(wxSTCCallTip, wxSTCCallTipBase)
     EVT_PAINT(wxSTCCallTip::OnPaint)
+#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
+    EVT_LEFT_DOWN(wxSTCCallTip::OnLeftDown)
+#endif
 END_EVENT_TABLE()
 
 
index f7b01cb837257df98e527e0a1cc98e880a46087b..0e56b08abba2625b79dc23632846b4c47c99a41a 100644 (file)
 #include <wx/wx.h>
 #include <wx/dnd.h>
 
+//----------------------------------------------------------------------
+
+// Should a wxPopupWindow be used for the call tips and autocomplete windows?
+#ifndef wxSTC_USE_POPUP
+#define wxSTC_USE_POPUP 1
+#endif
+
 //----------------------------------------------------------------------
 // BEGIN generated section.  The following code is automatically generated
 //       by gen_iface.py.  Do not edit this file.  Edit stc.h.in instead
index ab01bf1887fe284c910f0667dcaa590534bfc63c..62bc6db59417f7e344e558498683f24e6903f508 100644 (file)
 #include <wx/wx.h>
 #include <wx/dnd.h>
 
+//----------------------------------------------------------------------
+
+// Should a wxPopupWindow be used for the call tips and autocomplete windows?
+#ifndef wxSTC_USE_POPUP
+#define wxSTC_USE_POPUP 1
+#endif
+
 //----------------------------------------------------------------------
 // BEGIN generated section.  The following code is automatically generated
 //       by gen_iface.py.  Do not edit this file.  Edit stc.h.in instead
index c4fcfb5123f2473035a918cbf320d0adce2e3062..23dd10d5bd4c23e2534229ef85ba44676ae9a6cb 100644 (file)
@@ -673,19 +673,20 @@ BEGIN_EVENT_TABLE(wxSTCListBox, wxListBox)
     EVT_SET_FOCUS(wxSTCListBox::OnFocus)
 END_EVENT_TABLE()
 
+#undef wxSTC_USE_POPUP
+#define wxSTC_USE_POPUP 0  // Leave it off for this one...
 
 
 // A window to place the listbox upon.  If wxPopupWindow is supported then
 // that will be used so the listbox can extend beyond the client area of the
 // wxSTC if needed.
-
-#if wxUSE_POPUPWIN
+#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
 #include <wx/popupwin.h>
 #define wxSTCListBoxWinBase wxPopupWindow
 #define param2  wxBORDER_NONE  // popup's 2nd param is flags
 #else
 #define wxSTCListBoxWinBase wxWindow
-#define param2 -1 // wxWindows 2nd param is ID
+#define param2 -1 // wxWindow's 2nd param is ID
 #endif
 
 class wxSTCListBoxWin : public wxSTCListBoxWinBase {
@@ -693,6 +694,7 @@ public:
     wxSTCListBoxWin(wxWindow* parent, wxWindowID id)
         : wxSTCListBoxWinBase(parent, param2) {
         lb = new wxSTCListBox(this, id);
+        lb->SetCursor(wxCursor(wxCURSOR_ARROW));
     }
 
     void OnSize(wxSizeEvent& event) {
@@ -703,9 +705,9 @@ public:
         event.Skip();
     }
 
-    wxListBox* GetLB() { return lb; }
+        wxListBox* GetLB() { return lb; }
 
-#if wxUSE_POPUPWIN
+#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
     virtual void DoSetSize(int x, int y,
                            int width, int height,
                            int sizeFlags = wxSIZE_AUTO) {
@@ -755,8 +757,8 @@ PRectangle ListBox::GetDesiredRect() {
     rc.left = 0;
     if (sz.x > 400)
         sz.x = 400;
-    if (sz.y > 160)  // TODO:  Use desiredVisibleRows??
-        sz.y = 160;
+    if (sz.y > 140)  // TODO:  Use desiredVisibleRows??
+        sz.y = 140;
     rc.right = sz.x;
     rc.bottom = sz.y;
     return rc;
index f7336a7196d052321b9ab7ac3c5d591d5c7f325f..e45084ca7052a3842ae48483b760ab1c77f19134 100644 (file)
@@ -63,7 +63,7 @@ void  wxSTCDropTarget::OnLeave() {
 #endif
 
 
-#if wxUSE_POPUPWIN
+#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
 #include <wx/popupwin.h>
 #define wxSTCCallTipBase wxPopupWindow
 #define param2  wxBORDER_NONE  // popup's 2nd param is flags
@@ -88,7 +88,7 @@ public:
         delete surfaceWindow;
     }
 
-#if wxUSE_POPUPWIN
+#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
     virtual void DoSetSize(int x, int y,
                            int width, int height,
                            int sizeFlags = wxSIZE_AUTO) {
@@ -98,6 +98,21 @@ public:
             GetParent()->ClientToScreen(NULL, &y);
         wxSTCCallTipBase::DoSetSize(x, y, width, height, sizeFlags);
     }
+
+    virtual bool Show( bool show = TRUE ) {
+        bool retval = wxSTCCallTipBase::Show(show);
+        if (show) {
+            CaptureMouse();
+        }
+        else {
+            ReleaseMouse();
+        }
+        return retval;
+    }
+
+    void OnLeftDown(wxMouseEvent& ) {
+        Show(FALSE);
+    }
 #endif
 
 private:
@@ -107,6 +122,9 @@ private:
 
 BEGIN_EVENT_TABLE(wxSTCCallTip, wxSTCCallTipBase)
     EVT_PAINT(wxSTCCallTip::OnPaint)
+#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
+    EVT_LEFT_DOWN(wxSTCCallTip::OnLeftDown)
+#endif
 END_EVENT_TABLE()
 
 
index f7b01cb837257df98e527e0a1cc98e880a46087b..0e56b08abba2625b79dc23632846b4c47c99a41a 100644 (file)
 #include <wx/wx.h>
 #include <wx/dnd.h>
 
+//----------------------------------------------------------------------
+
+// Should a wxPopupWindow be used for the call tips and autocomplete windows?
+#ifndef wxSTC_USE_POPUP
+#define wxSTC_USE_POPUP 1
+#endif
+
 //----------------------------------------------------------------------
 // BEGIN generated section.  The following code is automatically generated
 //       by gen_iface.py.  Do not edit this file.  Edit stc.h.in instead
index 97b37af3cabd2334a3cd5c09e7693fb223ae37d5..e08469d4d706ee596135d6cdaaa37b3028e677f3 100644 (file)
@@ -11032,6 +11032,7 @@ SWIGEXPORT(void) initstc_c() {
         SWIG_globals = SWIG_newvarlink();
         m = Py_InitModule("stc_c", stc_cMethods);
         d = PyModule_GetDict(m);
+        PyDict_SetItemString(d,"wxSTC_USE_POPUP", PyInt_FromLong((long) 1));
         PyDict_SetItemString(d,"wxSTC_INVALID_POSITION", PyInt_FromLong((long) -1));
         PyDict_SetItemString(d,"wxSTC_START", PyInt_FromLong((long) 2000));
         PyDict_SetItemString(d,"wxSTC_OPTIONAL_START", PyInt_FromLong((long) 3000));
index 4be749e5250fa72a4a8a6fd6ae568e1a3e1d37e0..3e189c0e64f8eba28f6a37d1d1da5a2921d15861 100644 (file)
@@ -1158,6 +1158,7 @@ class wxStyledTextEvent(wxStyledTextEventPtr):
 
 #-------------- VARIABLE WRAPPERS ------------------
 
+wxSTC_USE_POPUP = stc_c.wxSTC_USE_POPUP
 wxSTC_INVALID_POSITION = stc_c.wxSTC_INVALID_POSITION
 wxSTC_START = stc_c.wxSTC_START
 wxSTC_OPTIONAL_START = stc_c.wxSTC_OPTIONAL_START