]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/cshelp.cpp
wxSTC begins to work on wxMac...
[wxWidgets.git] / src / common / cshelp.cpp
index 3921a21c963c1e5fd5a43c3efba079a256cd9c56..43ebbef496ae20f7df9c44ce255f0904e39ed6bf 100644 (file)
@@ -87,6 +87,27 @@ wxContextHelp::~wxContextHelp()
         EndContextHelp();
 }
 
+// Not currently needed, but on some systems capture may not work as
+// expected so we'll leave it here for now.
+#if 0
+static void wxPushOrPopEventHandlers(wxContextHelp* help, wxWindow* win, bool push)
+{
+    if (push)
+        win->PushEventHandler(new wxContextHelpEvtHandler(help));
+    else
+        win->PopEventHandler();
+
+    wxNode* node = win->GetChildren().First();
+    while (node)
+    {
+        wxWindow* child = (wxWindow*) node->Data();
+        wxPushOrPopEventHandlers(help, child, push);
+
+        node = node->Next();
+    }
+}
+#endif
+
 // Begin 'context help mode'
 bool wxContextHelp::BeginContextHelp(wxWindow* win)
 {
@@ -103,7 +124,10 @@ bool wxContextHelp::BeginContextHelp(wxWindow* win)
     //    wxSetCursor(cursor);
 #endif
 
+    m_status = FALSE;
+
     win->PushEventHandler(new wxContextHelpEvtHandler(this));
+    //wxPushOrPopEventHandlers(this, win, TRUE);
 
     win->CaptureMouse();
 
@@ -112,6 +136,7 @@ bool wxContextHelp::BeginContextHelp(wxWindow* win)
     win->ReleaseMouse();
 
     win->PopEventHandler(TRUE);
+    //wxPushOrPopEventHandlers(this, win, FALSE);
 
     win->SetCursor(oldCursor);
 
@@ -167,24 +192,25 @@ bool wxContextHelpEvtHandler::ProcessEvent(wxEvent& event)
         m_contextHelp->EndContextHelp();
         return TRUE;
     }
-    
+
     if ((event.GetEventType() == wxEVT_CHAR) ||
         (event.GetEventType() == wxEVT_KEY_DOWN) ||
         (event.GetEventType() == wxEVT_ACTIVATE) ||
         (event.GetEventType() == wxEVT_MOUSE_CAPTURE_CHANGED))
     {
-        m_contextHelp->SetStatus(FALSE);
+        // May have already been set to TRUE by a left-click
+        //m_contextHelp->SetStatus(FALSE);
         m_contextHelp->EndContextHelp();
         return TRUE;
     }
-    
+
     if ((event.GetEventType() == wxEVT_PAINT) ||
         (event.GetEventType() == wxEVT_ERASE_BACKGROUND))
     {
         event.Skip();
         return FALSE;
     }
-    
+
     return TRUE;
 }
 
@@ -198,7 +224,7 @@ bool wxContextHelp::DispatchEvent(wxWindow* win, const wxPoint& pt)
         wxHelpEvent helpEvent(wxEVT_HELP, subjectOfHelp->GetId(), pt) ;
         helpEvent.SetEventObject(this);
         eventProcessed = win->GetEventHandler()->ProcessEvent(helpEvent);
-        
+
         // Go up the window hierarchy until the event is handled (or not).
         // I.e. keep submitting ancestor windows until one is recognised
         // by the app code that processes the ids and displays help.
@@ -218,7 +244,7 @@ bool wxContextHelp::DispatchEvent(wxWindow* win, const wxPoint& pt)
  */
 
 #if !defined(__WXMSW__)
-static char * csquery_xpm[] = {
+static const char * csquery_xpm[] = {
 "12 11 2 1",
 "  c None",
 ". c #000000",
@@ -251,7 +277,7 @@ wxContextHelpButton::wxContextHelpButton(wxWindow* parent,
 {
 }
 
-void wxContextHelpButton::OnContextHelp(wxCommandEvent& event)
+void wxContextHelpButton::OnContextHelp(wxCommandEvent& WXUNUSED(event))
 {
     wxContextHelp contextHelp(GetParent());
 }
@@ -305,6 +331,7 @@ void wxSimpleHelpProvider::AddHelp(wxWindowID id, const wxString& text)
 
 bool wxSimpleHelpProvider::ShowHelp(wxWindowBase *window)
 {
+#if wxUSE_TIPWINDOW
     static wxTipWindow* s_tipWindow = NULL;
 
     if (s_tipWindow)
@@ -323,6 +350,7 @@ bool wxSimpleHelpProvider::ShowHelp(wxWindowBase *window)
 
         return TRUE;
     }
+#endif // wxUSE_TIPWINDOW
 
     return FALSE;
 }