]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/cshelp.cpp
Give wxListBox a GetClassDefaultAttributes so wxCalendarCtrl (and
[wxWidgets.git] / src / common / cshelp.cpp
index 75749750c9268f711a036cc0b889e522a4815b53..2ae62269b1fb6db4f7aa9163048a7747fe11456e 100644 (file)
@@ -13,7 +13,7 @@
 // declarations
 // ============================================================================
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "cshelp.h"
 #endif
 
@@ -56,6 +56,8 @@ public:
 
 //// Data
     wxContextHelp* m_contextHelp;
+
+    DECLARE_NO_COPY_CLASS(wxContextHelpEvtHandler)
 };
 
 // ============================================================================
@@ -89,21 +91,21 @@ wxContextHelp::~wxContextHelp()
 
 // Not currently needed, but on some systems capture may not work as
 // expected so we'll leave it here for now.
-#if 0
+#ifdef __WXMOTIF__
 static void wxPushOrPopEventHandlers(wxContextHelp* help, wxWindow* win, bool push)
 {
     if (push)
         win->PushEventHandler(new wxContextHelpEvtHandler(help));
     else
-        win->PopEventHandler();
+        win->PopEventHandler(TRUE);
 
-    wxNode* node = win->GetChildren().First();
+    wxWindowList::compatibility_iterator node = win->GetChildren().GetFirst();
     while (node)
     {
-        wxWindow* child = (wxWindow*) node->Data();
+        wxWindow* child = node->GetData();
         wxPushOrPopEventHandlers(help, child, push);
 
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 #endif
@@ -126,8 +128,11 @@ bool wxContextHelp::BeginContextHelp(wxWindow* win)
 
     m_status = FALSE;
 
+#ifdef __WXMOTIF__
+    wxPushOrPopEventHandlers(this, win, TRUE);
+#else
     win->PushEventHandler(new wxContextHelpEvtHandler(this));
-    //wxPushOrPopEventHandlers(this, win, TRUE);
+#endif
 
     win->CaptureMouse();
 
@@ -135,8 +140,11 @@ bool wxContextHelp::BeginContextHelp(wxWindow* win)
 
     win->ReleaseMouse();
 
+#ifdef __WXMOTIF__
+    wxPushOrPopEventHandlers(this, win, FALSE);
+#else
     win->PopEventHandler(TRUE);
-    //wxPushOrPopEventHandlers(this, win, FALSE);
+#endif
 
     win->SetCursor(oldCursor);
 
@@ -144,14 +152,14 @@ bool wxContextHelp::BeginContextHelp(wxWindow* win)
     {
         wxPoint pt;
         wxWindow* winAtPtr = wxFindWindowAtPointer(pt);
-    /*
+
+#if 0
         if (winAtPtr)
         {
-    wxString msg;
-        msg.Printf("Picked %s (%d)", (const char*) winAtPtr->GetName(), winAtPtr->GetId());
-        cout << msg << '\n';
+            printf("Picked %s (%d)\n", winAtPtr->GetName().c_str(),
+                   winAtPtr->GetId());
         }
-    */
+#endif
 
         if (winAtPtr)
             DispatchEvent(winAtPtr, pt);
@@ -224,7 +232,7 @@ bool wxContextHelp::DispatchEvent(wxWindow* win, const wxPoint& pt)
     while (subjectOfHelp && !eventProcessed)
     {
         wxHelpEvent helpEvent(wxEVT_HELP, subjectOfHelp->GetId(), pt) ;
-        helpEvent.SetEventObject(this);
+        helpEvent.SetEventObject(subjectOfHelp);
 
         eventProcessed = win->GetEventHandler()->ProcessEvent(helpEvent);
 
@@ -246,7 +254,6 @@ bool wxContextHelp::DispatchEvent(wxWindow* win, const wxPoint& pt)
  * to put the application into context help mode.
  */
 
-#if !defined(__WXMSW__)
 static const char * csquery_xpm[] = {
 "12 11 2 1",
 "  c None",
@@ -262,7 +269,6 @@ static const char * csquery_xpm[] = {
 "     ..     ",
 "     ..     ",
 "            "};
-#endif
 
 IMPLEMENT_CLASS(wxContextHelpButton, wxBitmapButton)
 
@@ -281,7 +287,7 @@ wxContextHelpButton::wxContextHelpButton(wxWindow* parent,
                                                         ),
                                     pos, size, style)
 #else
-                   : wxBitmapButton(parent, id, wxBITMAP(csquery),
+                   : wxBitmapButton(parent, id, wxBitmap(csquery_xpm),
                                     pos, size, style)
 #endif
 {
@@ -326,30 +332,34 @@ wxHelpProvider::~wxHelpProvider()
 
 wxString wxSimpleHelpProvider::GetHelp(const wxWindowBase *window)
 {
-    bool wasFound;
-    wxString text = m_hashWindows.Get((long)window, &wasFound);
-    if ( !wasFound )
-        text = m_hashIds.Get(window->GetId());
+    wxLongToStringHashMap::iterator it = m_hashWindows.find((long)window);
+
+    if ( it == m_hashWindows.end() )
+    {
+        it = m_hashIds.find(window->GetId());
+        if ( it == m_hashIds.end() )
+            return wxEmptyString;
+    }
 
-    return text;
+    return it->second;
 }
 
 void wxSimpleHelpProvider::AddHelp(wxWindowBase *window, const wxString& text)
 {
-    m_hashWindows.Delete((long)window);
-    m_hashWindows.Put((long)window, text);
+    m_hashWindows.erase((long)window);
+    m_hashWindows[(long)window] = text;
 }
 
 void wxSimpleHelpProvider::AddHelp(wxWindowID id, const wxString& text)
 {
-    m_hashIds.Delete((long)id);
-    m_hashIds.Put(id, text);
+    m_hashIds.erase((long)id);
+    m_hashIds[id] = text;
 }
 
 // removes the association
 void wxSimpleHelpProvider::RemoveHelp(wxWindowBase* window)
 {
-    m_hashWindows.Delete((long)window);
+    m_hashWindows.erase((long)window);
 }
 
 bool wxSimpleHelpProvider::ShowHelp(wxWindowBase *window)
@@ -417,7 +427,7 @@ bool wxHelpControllerHelpProvider::ShowHelp(wxWindowBase *window)
 // Convenience function for turning context id into wxString
 wxString wxContextId(int id)
 {
-    return wxString(IntToString(id));
+    return wxString::Format(_T("%d"), id);
 }
 
 // ----------------------------------------------------------------------------