]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/helpext.cpp
refactored wxGTK scrolling: it has now fully-functioning wxScrollHelper and a lot...
[wxWidgets.git] / src / generic / helpext.cpp
index f3cbfe6687b62f921e51bbb952f049bd3b01fdab..f52d28f367edcb80e682341ab2d42545830f012e 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        helpext.cpp
-// Purpose:     an external help controller for wxWindows
+// Name:        src/generic/helpext.cpp
+// Purpose:     an external help controller for wxWidgets
 // Author:      Karsten Ballueder
 // Modified by:
 // Created:     04/01/98
@@ -9,17 +9,13 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
-#   pragma implementation "wxexthlp.h"
-#endif
-
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
     #pragma hdrstop
 #endif
 
-#if wxUSE_HELP
+#if wxUSE_HELP && !defined(__WXWINCE__) && (!defined(__WXMAC__) || defined(__WXMAC_OSX__))
 
 #ifndef WX_PRECOMP
     #include "wx/setup.h"
@@ -29,6 +25,7 @@
     #include "wx/intl.h"
     #include "wx/msgdlg.h"
     #include "wx/choicdlg.h"
+    #include "wx/log.h"
 #endif
 
 #include "wx/helpbase.h"
@@ -44,6 +41,7 @@
 
 #ifdef __WXMSW__
 #include <windows.h>
+#include "wx/msw/winundef.h"
 #endif
 
 // ----------------------------------------------------------------------------
@@ -121,10 +119,9 @@ wxExtHelpController::DisplayHelp(const wxString &relativeURL)
       wxLogSysError(_("Cannot open URL '%s'"), relativeURL.c_str());
       return false;
    }
-   else
-      return true;
 
-#elif  defined(__WXPM__)
+   return true;
+#elif  defined(__OS2__)
 
    wxString url;
    url << m_MapFile << '\\' << relativeURL.BeforeFirst('#');
@@ -137,7 +134,7 @@ wxExtHelpController::DisplayHelp(const wxString &relativeURL)
 //      return false;
 //   }
 //   else
-      return TRUE;
+      return true;
 
 #elif defined(__DOS__)
 
@@ -173,7 +170,7 @@ wxExtHelpController::DisplayHelp(const wxString &relativeURL)
                  << WXEXTHELP_SEPARATOR << relativeURL << wxT(")");
          success = wxExecute(command);
          if(success != 0 ) // returns PID on success
-            return TRUE;
+            return true;
       }
    }
 #endif
@@ -198,11 +195,11 @@ void wxExtHelpController::DeleteList()
 {
    if(m_MapList)
    {
-      wxNode *node = m_MapList->GetFirst();
+      wxList::compatibility_iterator node = m_MapList->GetFirst();
       while (node)
       {
          delete (wxExtHelpMapEntry *)node->GetData();
-         delete node;
+         m_MapList->Erase(node);
          node = m_MapList->GetFirst();
       }
       delete m_MapList;
@@ -231,7 +228,7 @@ bool wxExtHelpController::LoadFile(const wxString& ifile)
 
    wxBusyCursor b; // display a busy cursor
 
-   if(! ifile.IsEmpty())
+   if(! ifile.empty())
    {
       file = ifile;
       if(! wxIsAbsolutePath(file))
@@ -254,7 +251,7 @@ bool wxExtHelpController::LoadFile(const wxString& ifile)
       // set to be "de", then look in "/usr/local/myapp/help/de/"
       // first and fall back to "/usr/local/myapp/help" if that
       // doesn't exist.
-      if(wxGetLocale() && !wxGetLocale()->GetName().IsEmpty())
+      if(wxGetLocale() && !wxGetLocale()->GetName().empty())
       {
          wxString newfile;
          newfile << WXEXTHELP_SEPARATOR << wxGetLocale()->GetName();
@@ -273,7 +270,7 @@ bool wxExtHelpController::LoadFile(const wxString& ifile)
 #endif
 
       if(! wxDirExists(file))
-         return FALSE;
+         return false;
 
       mapFile << file << WXEXTHELP_SEPARATOR << WXEXTHELP_MAPFILE;
    }
@@ -281,7 +278,7 @@ bool wxExtHelpController::LoadFile(const wxString& ifile)
       mapFile = m_MapFile;
 
    if(! wxFileExists(mapFile))
-      return FALSE;
+      return false;
 
    DeleteList();
    m_MapList = new wxList;
@@ -289,7 +286,7 @@ bool wxExtHelpController::LoadFile(const wxString& ifile)
 
    FILE *input = wxFopen(mapFile,wxT("rt"));
    if(! input)
-      return FALSE;
+      return false;
    do
    {
       if(fgets(buffer,WXEXTHELP_BUFLEN,input) && *buffer != WXEXTHELP_COMMENTCHAR)
@@ -301,13 +298,13 @@ bool wxExtHelpController::LoadFile(const wxString& ifile)
             break; // error
          for(i=0; isdigit(buffer[i])||isspace(buffer[i])||buffer[i]=='-'; i++)
             ; // find begin of URL
-         url = wxT("");
+         url = wxEmptyString;
          while(buffer[i] && ! isspace(buffer[i]) && buffer[i] !=
                WXEXTHELP_COMMENTCHAR)
             url << (wxChar) buffer[i++];
          while(buffer[i] && buffer[i] != WXEXTHELP_COMMENTCHAR)
             i++;
-         doc = wxT("");
+         doc = wxEmptyString;
          if(buffer[i])
             doc = wxString::FromAscii( (buffer + i + 1) ); // skip the comment character
          m_MapList->Append(new wxExtHelpMapEntry(id,url,doc));
@@ -317,7 +314,7 @@ bool wxExtHelpController::LoadFile(const wxString& ifile)
    fclose(input);
 
    m_MapFile = file; // now it's valid
-   return TRUE;
+   return true;
 }
 
 
@@ -325,10 +322,10 @@ bool
 wxExtHelpController::DisplayContents()
 {
    if(! m_NumOfEntries)
-      return FALSE;
+      return false;
 
    wxString contents;
-   wxNode *node = m_MapList->GetFirst();
+   wxList::compatibility_iterator node = m_MapList->GetFirst();
    wxExtHelpMapEntry *entry;
    while(node)
    {
@@ -341,7 +338,7 @@ wxExtHelpController::DisplayContents()
       node = node->GetNext();
    }
 
-   bool rc = FALSE;
+   bool rc = false;
    wxString file;
    file << m_MapFile << WXEXTHELP_SEPARATOR << contents;
    if(file.Contains(wxT('#')))
@@ -350,17 +347,17 @@ wxExtHelpController::DisplayContents()
       rc = DisplaySection(CONTENTS_ID);
 
    // if not found, open homemade toc:
-   return rc ? TRUE : KeywordSearch(wxT(""));
+   return rc ? true : KeywordSearch(wxEmptyString);
 }
 
 bool
 wxExtHelpController::DisplaySection(int sectionNo)
 {
    if(! m_NumOfEntries)
-      return FALSE;
+      return false;
 
    wxBusyCursor b; // display a busy cursor
-   wxNode *node = m_MapList->GetFirst();
+   wxList::compatibility_iterator node = m_MapList->GetFirst();
    wxExtHelpMapEntry *entry;
    while(node)
    {
@@ -369,7 +366,7 @@ wxExtHelpController::DisplaySection(int sectionNo)
          return DisplayHelp(entry->url);
       node = node->GetNext();
    }
-   return FALSE;
+   return false;
 }
 
 bool wxExtHelpController::DisplaySection(const wxString& section)
@@ -389,10 +386,11 @@ wxExtHelpController::DisplayBlock(long blockNo)
 }
 
 bool
-wxExtHelpController::KeywordSearch(const wxString& k)
+wxExtHelpController::KeywordSearch(const wxString& k,
+                                   wxHelpSearchMode WXUNUSED(mode))
 {
    if(! m_NumOfEntries)
-      return FALSE;
+      return false;
 
    wxString     *choices = new wxString[m_NumOfEntries];
    wxString     *urls = new wxString[m_NumOfEntries];
@@ -400,8 +398,8 @@ wxExtHelpController::KeywordSearch(const wxString& k)
 
    int          idx = 0, j;
    bool         rc;
-   bool         showAll = k.IsEmpty();
-   wxNode       *node = m_MapList->GetFirst();
+   bool         showAll = k.empty();
+   wxList::compatibility_iterator node = m_MapList->GetFirst();
    wxExtHelpMapEntry *entry;
 
    {
@@ -411,14 +409,14 @@ wxExtHelpController::KeywordSearch(const wxString& k)
       {
          entry = (wxExtHelpMapEntry *)node->GetData();
          compB = entry->doc; compB.LowerCase();
-         if((showAll || compB.Contains(k)) && ! compB.IsEmpty())
+         if((showAll || compB.Contains(k)) && ! compB.empty())
          {
             urls[idx] = entry->url;
             // doesn't work:
             // choices[idx] = (**i).doc.Contains((**i).doc.Before(WXEXTHELP_COMMENTCHAR));
-            //if(choices[idx].IsEmpty()) // didn't contain the ';'
+            //if(choices[idx].empty()) // didn't contain the ';'
             //   choices[idx] = (**i).doc;
-            choices[idx] = wxT("");
+            choices[idx] = wxEmptyString;
             for(j=0;entry->doc.c_str()[j]
                    && entry->doc.c_str()[j] != WXEXTHELP_COMMENTCHAR; j++)
                choices[idx] << entry->doc.c_str()[j];
@@ -433,7 +431,7 @@ wxExtHelpController::KeywordSearch(const wxString& k)
    else if(idx == 0)
    {
       wxMessageBox(_("No entries found."));
-      rc = FALSE;
+      rc = false;
    }
    else
    {
@@ -443,7 +441,7 @@ wxExtHelpController::KeywordSearch(const wxString& k)
       if(idx != -1)
          rc = DisplayHelp(urls[idx]);
       else
-         rc = FALSE;
+         rc = false;
    }
    delete[] urls;
    delete[] choices;
@@ -454,7 +452,7 @@ wxExtHelpController::KeywordSearch(const wxString& k)
 
 bool wxExtHelpController::Quit()
 {
-   return TRUE;
+   return true;
 }
 
 void wxExtHelpController::OnQuit()