]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/cshelp.cpp
wxFileName::Normalize(wxPATH_NORM_ENV_VARS) now works
[wxWidgets.git] / src / common / cshelp.cpp
index 43ebbef496ae20f7df9c44ce255f0904e39ed6bf..9e41da6a8acb805e420cee301e68e602cfbf4109 100644 (file)
@@ -6,14 +6,14 @@
 // Created:     08/09/2000
 // RCS-ID:      $Id$
 // Copyright:   (c) 2000 Julian Smart, Vadim Zeitlin
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 // 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)
 };
 
 // ============================================================================
@@ -144,14 +146,14 @@ bool wxContextHelp::BeginContextHelp(wxWindow* win)
     {
         wxPoint pt;
         wxWindow* winAtPtr = wxFindWindowAtPointer(pt);
-       /*
+    /*
         if (winAtPtr)
         {
-       wxString msg;
+    wxString msg;
         msg.Printf("Picked %s (%d)", (const char*) winAtPtr->GetName(), winAtPtr->GetId());
         cout << msg << '\n';
         }
-       */
+    */
 
         if (winAtPtr)
             DispatchEvent(winAtPtr, pt);
@@ -170,6 +172,7 @@ bool wxContextHelp::EndContextHelp()
 bool wxContextHelp::EventLoop()
 {
     m_inHelp = TRUE;
+
     while ( m_inHelp )
     {
         if (wxTheApp->Pending())
@@ -181,6 +184,7 @@ bool wxContextHelp::EventLoop()
             wxTheApp->ProcessIdle();
         }
     }
+
     return TRUE;
 }
 
@@ -223,6 +227,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).
@@ -243,7 +248,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",
@@ -259,7 +263,6 @@ static const char * csquery_xpm[] = {
 "     ..     ",
 "     ..     ",
 "            "};
-#endif
 
 IMPLEMENT_CLASS(wxContextHelpButton, wxBitmapButton)
 
@@ -272,8 +275,15 @@ wxContextHelpButton::wxContextHelpButton(wxWindow* parent,
                                          const wxPoint& pos,
                                          const wxSize& size,
                                          long style)
-                   : wxBitmapButton(parent, id, wxBITMAP(csquery),
+#if defined(__WXPM__)
+                   : wxBitmapButton(parent, id, wxBitmap(wxCSQUERY_BITMAP
+                                                         ,wxBITMAP_TYPE_RESOURCE
+                                                        ),
+                                    pos, size, style)
+#else
+                   : wxBitmapButton(parent, id, wxBitmap(csquery_xpm),
                                     pos, size, style)
+#endif
 {
 }
 
@@ -301,6 +311,11 @@ void wxHelpProvider::AddHelp(wxWindowID WXUNUSED(id),
 {
 }
 
+// removes the association
+void wxHelpProvider::RemoveHelp(wxWindowBase* WXUNUSED(window))
+{
+}
+
 wxHelpProvider::~wxHelpProvider()
 {
 }
@@ -311,22 +326,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.Put((long)window, text);
+    m_hashWindows.erase((long)window);
+    m_hashWindows[(long)window] = text;
 }
 
 void wxSimpleHelpProvider::AddHelp(wxWindowID id, const wxString& text)
 {
-    m_hashIds.Put(id, text);
+    m_hashIds.erase((long)id);
+    m_hashIds[id] = text;
+}
+
+// removes the association
+void wxSimpleHelpProvider::RemoveHelp(wxWindowBase* window)
+{
+    m_hashWindows.erase((long)window);
 }
 
 bool wxSimpleHelpProvider::ShowHelp(wxWindowBase *window)
@@ -394,7 +421,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);
 }
 
 // ----------------------------------------------------------------------------