// declarations
// ============================================================================
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "cshelp.h"
#endif
// 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
m_status = FALSE;
+#ifdef __WXMOTIF__
+ wxPushOrPopEventHandlers(this, win, TRUE);
+#else
win->PushEventHandler(new wxContextHelpEvtHandler(this));
- //wxPushOrPopEventHandlers(this, win, TRUE);
+#endif
win->CaptureMouse();
win->ReleaseMouse();
+#ifdef __WXMOTIF__
+ wxPushOrPopEventHandlers(this, win, FALSE);
+#else
win->PopEventHandler(TRUE);
- //wxPushOrPopEventHandlers(this, win, FALSE);
+#endif
win->SetCursor(oldCursor);
{
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);
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)