]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/tex2rtf/src/tex2rtf.cpp
Warning fixes found under hardest mode of OpenWatcom. Seems clean in Borland, MinGW...
[wxWidgets.git] / utils / tex2rtf / src / tex2rtf.cpp
index 14a8974018c3d6e69dbfbfa89caae86a7cdfaa24..4bb4f431db8d292ce507ee273e5bb4b0360bc5c5 100644 (file)
 #endif
 
 #ifndef NO_GUI
-#include "wx/help.h"
-#include "wx/timer.h"
-#endif
+    #include "wx/timer.h"
+    #include "wx/help.h"
+    #include "wx/cshelp.h"
+    #include "wx/helphtml.h"
+    #ifdef __WXMSW__
+        #include "wx/msw/helpchm.h"
+    #else
+        #include "wx/html/helpctrl.h"
+    #endif
+#endif // !NO_GUI
 
 #if wxUSE_IOSTREAMH
 #include <iostream.h>
@@ -59,7 +66,7 @@ static inline wxChar* copystring(const wxChar* s)
     { return wxStrcpy(new wxChar[wxStrlen(s) + 1], s); }
 #endif
 
-const float versionNo = TEX2RTF_VERSION_NUMBER;
+const float versionNo = (float)TEX2RTF_VERSION_NUMBER;
 
 TexChunk *currentMember = NULL;
 bool startedSections = false;
@@ -78,18 +85,17 @@ extern wxChar *TexTmpBibName;      // Temporary bibliography output file name
 extern wxList ColourTable;
 extern TexChunk *TopLevel;
 
-
-
 #if wxUSE_HELP
-wxHelpController *HelpInstance = NULL;
+wxHelpControllerBase *HelpInstance = NULL;
 #endif // wxUSE_HELP
 
 #ifdef __WXMSW__
 static wxChar *ipc_buffer = NULL;
 static wxChar Tex2RTFLastStatus[100];
 Tex2RTFServer *TheTex2RTFServer = NULL;
-#endif
-#endif
+#endif // __WXMSW__
+
+#endif // !NO_GUI
 
 wxChar *bulletFile = NULL;
 
@@ -148,7 +154,7 @@ bool MyApp::OnInit()
   WinHelpContentsFileName = new wxChar[300];
   RefFileName = new wxChar[300];
 
-  ColourTable.DeleteContents(true);
+  WX_CLEAR_LIST(wxList,ColourTable);
 
   int n = 1;
 
@@ -281,8 +287,9 @@ bool MyApp::OnInit()
 #ifdef NO_GUI
       ShowOptions();
       exit(1);
-#endif
+#else
       return false;
+#endif
     }
   }
 
@@ -293,11 +300,6 @@ bool MyApp::OnInit()
   TheTex2RTFServer->Create(_T("TEX2RTF"));
 #endif
 
-#if defined(__WXMSW__) && defined(__WIN16__)
-  // Limit to max Windows array size
-  if (BufSize > 64) BufSize = 64;
-#endif
-
   TexInitialize(BufSize);
   ResetContentsLevels(0);
 
@@ -309,7 +311,9 @@ bool MyApp::OnInit()
 
     // Create the main frame window
     frame = new MyFrame(NULL, wxID_ANY, _T("Tex2RTF"), wxDefaultPosition, wxSize(400, 300));
+#if wxUSE_STATUSBAR
     frame->CreateStatusBar(2);
+#endif // wxUSE_STATUSBAR
 
     // Give it an icon
     // TODO: uncomment this when we have tex2rtf.xpm
@@ -347,10 +351,10 @@ bool MyApp::OnInit()
 
     wxMenu *options_menu = new wxMenu;
 
-    options_menu->Append(TEX_OPTIONS_CURELY_BRACE, _T("Curley brace matching"), _T("Checks for mismatched curley braces"),true);
+    options_menu->Append(TEX_OPTIONS_CURLEY_BRACE, _T("Curley brace matching"), _T("Checks for mismatched curley braces"),true);
     options_menu->Append(TEX_OPTIONS_SYNTAX_CHECKING, _T("Syntax checking"), _T("Syntax checking for common errors"),true);
 
-    options_menu->Check(TEX_OPTIONS_CURELY_BRACE, checkCurleyBraces);
+    options_menu->Check(TEX_OPTIONS_CURLEY_BRACE, checkCurleyBraces);
     options_menu->Check(TEX_OPTIONS_SYNTAX_CHECKING, checkSyntax);
 
     wxMenu *help_menu = new wxMenu;
@@ -372,7 +376,11 @@ bool MyApp::OnInit()
 //    ShowOptions();
 
 #if wxUSE_HELP
-    HelpInstance = new wxHelpController();
+#if wxUSE_MS_HTML_HELP && !defined(__WXUNIVERSAL__)
+    HelpInstance = new wxCHMHelpController;
+#else
+    HelpInstance = new wxHtmlHelpController;
+#endif
     HelpInstance->Initialize(_T("tex2rtf"));
 #endif // wxUSE_HELP
 
@@ -385,16 +393,26 @@ bool MyApp::OnInit()
     if (path != _T(""))
       ReadCustomMacros((wxChar *)path.c_str());
 
+#if wxUSE_STATUSBAR
     wxStrcpy(buf, _T("In "));
-
-    if (winHelp && (convertMode == TEX_RTF))
-      wxStrcat(buf, _T("WinHelp RTF"));
-    else if (!winHelp && (convertMode == TEX_RTF))
-      wxStrcat(buf, _T("linear RTF"));
-    else if (convertMode == TEX_HTML) wxStrcat(buf, _T("HTML"));
-    else if (convertMode == TEX_XLP) wxStrcat(buf, _T("XLP"));
-      wxStrcat(buf, _T(" mode."));
+    switch (convertMode)
+    {
+      case TEX_RTF:
+        wxStrcat(buf, (winHelp) ? _T("WinHelp RTF") : _T("linear RTF"));
+        break;
+      case TEX_HTML:
+        wxStrcat(buf, _T("HTML"));
+        break;
+      case TEX_XLP:
+        wxStrcat(buf, _T("XLP"));
+        break;
+      default:
+        wxStrcat(buf, _T("unknown"));
+        break;
+    }
+    wxStrcat(buf, _T(" mode."));
     frame->SetStatusText(buf, 1);
+#endif // wxUSE_STATUSBAR
 
     frame->Show(true);
     return true;
@@ -412,13 +430,14 @@ bool MyApp::OnInit()
       ReadCustomMacros((wxChar*)path.c_str());
 
     Go();
-    if (runTwice) 
+    if (runTwice)
     {
         Go();
     }
 #ifdef NO_GUI
     return true;
 #else
+    OnExit(); // Do cleanup since OnExit won't be called now
     return false;
 #endif
   }
@@ -436,12 +455,12 @@ int MyApp::OnExit()
     node = CustomMacroList.GetFirst();
   }
   MacroDefs.BeginFind();
-  node = MacroDefs.Next();
-  while (node)
+  wxHashTable::Node* mNode = MacroDefs.Next();
+  while (mNode)
   {
-    TexMacroDef* def = (TexMacroDef*) node->GetData();
+    TexMacroDef* def = (TexMacroDef*) mNode->GetData();
     delete def;
-    node = MacroDefs.Next();
+    mNode = MacroDefs.Next();
   }
   MacroDefs.Clear();
 #ifdef __WXMSW__
@@ -597,7 +616,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     EVT_MENU(TEX_MODE_WINHELP, MyFrame::OnModeWinHelp)
     EVT_MENU(TEX_MODE_HTML, MyFrame::OnModeHTML)
     EVT_MENU(TEX_MODE_XLP, MyFrame::OnModeXLP)
-    EVT_MENU(TEX_OPTIONS_CURELY_BRACE, MyFrame::OnOptionsCurleyBrace)
+    EVT_MENU(TEX_OPTIONS_CURLEY_BRACE, MyFrame::OnOptionsCurleyBrace)
     EVT_MENU(TEX_OPTIONS_SYNTAX_CHECKING, MyFrame::OnOptionsSyntaxChecking)
     EVT_MENU(TEX_HELP, MyFrame::OnHelp)
     EVT_MENU(TEX_ABOUT, MyFrame::OnAbout)
@@ -642,7 +661,9 @@ void MyFrame::OnGo(wxCommandEvent& WXUNUSED(event))
 
       if (stopRunning)
       {
+#if wxUSE_STATUSBAR
         SetStatusText(_T("Build aborted!"));
+#endif // wxUSE_STATUSBAR
         wxString errBuf;
         errBuf.Printf(_T("\nErrors encountered during this pass: %lu\n"), errorCount);
         OnInform((wxChar *)errBuf.c_str());
@@ -676,9 +697,11 @@ void MyFrame::OnSaveFile(wxCommandEvent& WXUNUSED(event))
       if (s != _T(""))
       {
         textWindow->SaveFile(s);
+#if wxUSE_STATUSBAR
         wxChar buf[350];
         wxSnprintf(buf, sizeof(buf), _T("Saved text to %s"), (const wxChar*) s.c_str());
         frame->SetStatusText(buf, 0);
+#endif // wxUSE_STATUSBAR
       }
 }
 
@@ -733,7 +756,9 @@ void MyFrame::OnModeRTF(wxCommandEvent& WXUNUSED(event))
       winHelp = false;
       InputFile = NULL;
       OutputFile = NULL;
+#if wxUSE_STATUSBAR
       SetStatusText(_T("In linear RTF mode."), 1);
+#endif // wxUSE_STATUSBAR
 }
 
 void MyFrame::OnModeWinHelp(wxCommandEvent& WXUNUSED(event))
@@ -742,7 +767,9 @@ void MyFrame::OnModeWinHelp(wxCommandEvent& WXUNUSED(event))
       winHelp = true;
       InputFile = NULL;
       OutputFile = NULL;
+#if wxUSE_STATUSBAR
       SetStatusText(_T("In WinHelp RTF mode."), 1);
+#endif // wxUSE_STATUSBAR
 }
 
 void MyFrame::OnModeHTML(wxCommandEvent& WXUNUSED(event))
@@ -751,7 +778,9 @@ void MyFrame::OnModeHTML(wxCommandEvent& WXUNUSED(event))
       winHelp = false;
       InputFile = NULL;
       OutputFile = NULL;
+#if wxUSE_STATUSBAR
       SetStatusText(_T("In HTML mode."), 1);
+#endif // wxUSE_STATUSBAR
 }
 
 void MyFrame::OnModeXLP(wxCommandEvent& WXUNUSED(event))
@@ -759,12 +788,15 @@ void MyFrame::OnModeXLP(wxCommandEvent& WXUNUSED(event))
       convertMode = TEX_XLP;
       InputFile = NULL;
       OutputFile = NULL;
+#if wxUSE_STATUSBAR
       SetStatusText(_T("In XLP mode."), 1);
+#endif // wxUSE_STATUSBAR
 }
 
 void MyFrame::OnOptionsCurleyBrace(wxCommandEvent& WXUNUSED(event))
 {
     checkCurleyBraces = !checkCurleyBraces;
+#if wxUSE_STATUSBAR
     if (checkCurleyBraces)
     {
         SetStatusText(_T("Checking curley braces: YES"), 1);
@@ -773,12 +805,14 @@ void MyFrame::OnOptionsCurleyBrace(wxCommandEvent& WXUNUSED(event))
     {
         SetStatusText(_T("Checking curley braces: NO"), 1);
     }
+#endif // wxUSE_STATUSBAR
 }
 
 
 void MyFrame::OnOptionsSyntaxChecking(wxCommandEvent& WXUNUSED(event))
 {
     checkSyntax = !checkSyntax;
+#if wxUSE_STATUSBAR
     if (checkSyntax)
     {
         SetStatusText(_T("Checking syntax: YES"), 1);
@@ -787,6 +821,7 @@ void MyFrame::OnOptionsSyntaxChecking(wxCommandEvent& WXUNUSED(event))
     {
         SetStatusText(_T("Checking syntax: NO"), 1);
     }
+#endif // wxUSE_STATUSBAR
 }
 
 
@@ -864,13 +899,8 @@ void ChooseOutputFile(bool force)
     }
     case TEX_HTML:
     {
-#if defined(__WXMSW__) && defined(__WIN16__)
-      wxStrcpy(extensionBuf, _T("htm"));
-      wxStrcat(wildBuf, _T("htm"));
-#else
       wxStrcpy(extensionBuf, _T("html"));
       wxStrcat(wildBuf, _T("html"));
-#endif
       break;
     }
   }
@@ -953,7 +983,7 @@ bool Go(void)
       TexCleanUp();
       return false;
     }
-#ifndef NO_GUI
+#if !defined(NO_GUI) && wxUSE_STATUSBAR
     if (isInteractive)
     {
       wxString buf;
@@ -1016,11 +1046,13 @@ bool Go(void)
         OnInform((wxChar *)buf.c_str());
     }
 
+#if wxUSE_STATUSBAR
     if (isInteractive)
     {
       buf.Printf(_T("Done, %d %s."), passNumber, (passNumber > 1) ? _T("passes") : _T("pass"));
       frame->SetStatusText((wxChar *)buf.c_str());
     }
+#endif // wxUSE_STATUSBAR
 #else
     buf.Printf(_T("Done, %d %s."), passNumber, (passNumber > 1) ? _T("passes") : _T("pass"));
     OnInform((wxChar *)buf.c_str());
@@ -1039,7 +1071,7 @@ bool Go(void)
   TexCleanUp();
   startedSections = false;
 
-#ifndef NO_GUI
+#if !defined(NO_GUI) && wxUSE_STATUSBAR
   frame->SetStatusText(_T("Aborted by user."));
 #endif // GUI
 
@@ -1085,9 +1117,9 @@ void OnInform(const wxChar *msg)
     (*frame->textWindow) << msg << _T("\n");
 /* This whole block of code is just wrong I think.  It would behave
    completely wrong under anything other than MSW due to the ELSE
-       with no statement, and the cout calls would fail under MSW, as
-       the code in this block is compiled if !NO_GUI This code has been 
-       here since v1.1 of this file too. - gt
+   with no statement, and the cout calls would fail under MSW, as
+   the code in this block is compiled if !NO_GUI This code has been
+   here since v1.1 of this file too. - gt
   else
 #ifdef __WXMSW__
   {
@@ -1181,10 +1213,6 @@ Tex2RTFConnection::Tex2RTFConnection(wxChar *buf, int size):wxDDEConnection(buf,
 {
 }
 
-Tex2RTFConnection::~Tex2RTFConnection(void)
-{
-}
-
 bool SplitCommand(wxChar *data, wxChar *firstArg, wxChar *secondArg)
 {
   firstArg[0] = 0;
@@ -1274,7 +1302,7 @@ bool Tex2RTFConnection::OnExecute(const wxString& WXUNUSED(topic), wxChar *data,
     {
       // Try for a setting
       wxStrcpy(Tex2RTFLastStatus, RegisterSetting(firstArg, secondArg, false));
-#ifndef NO_GUI
+#if !defined(NO_GUI) && wxUSE_STATUSBAR
       if (frame && wxStrcmp(firstArg, _T("conversionMode")) == 0)
       {
         wxChar buf[100];