]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/tex2rtf/src/htmlutil.cpp
Define SF_UNICODE if undefined
[wxWidgets.git] / utils / tex2rtf / src / htmlutil.cpp
index d29e17b7f3f24ec2b491ef1798d1f2a8516304da..c91ca52c9f4c7696c2d34225ce95a6970ca48ba0 100644 (file)
 #include "tex2rtf.h"
 #include "table.h"
 
 #include "tex2rtf.h"
 #include "table.h"
 
+
+extern wxHashTable TexReferences;
+
+
 extern void DecToHex(int, char *);
 void GenerateHTMLIndexFile(char *fname);
 
 extern void DecToHex(int, char *);
 void GenerateHTMLIndexFile(char *fname);
 
@@ -76,6 +80,11 @@ static bool inTable = FALSE;
 // This is defined in the Tex2Any library.
 extern char *BigBuffer;
 
 // This is defined in the Tex2Any library.
 extern char *BigBuffer;
 
+// DHS Two-column table dimensions.
+static int TwoColWidthA = -1;
+static int TwoColWidthB = -1;
+
+
 class HyperReference: public wxObject
 {
  public:
 class HyperReference: public wxObject
 {
  public:
@@ -1189,8 +1198,12 @@ void HTMLOnMacro(int macroId, int no_args, bool start)
   {
     if ( start )
         TexOutput("\n<TABLE>\n");
   {
     if ( start )
         TexOutput("\n<TABLE>\n");
-    else
+    else {
         TexOutput("\n</TABLE>\n");
         TexOutput("\n</TABLE>\n");
+    // DHS 
+        TwoColWidthA = -1;
+        TwoColWidthB = -1;
+    }
     break;
   }
   case ltPAR:
     break;
   }
   case ltPAR:
@@ -1894,6 +1907,9 @@ bool HTMLOnArgument(int macroId, int arg_no, bool start)
             if (helpRefText)
               TraverseChildrenFromChunk(helpRefText);
             TexOutput(" (REF NOT FOUND)");
             if (helpRefText)
               TraverseChildrenFromChunk(helpRefText);
             TexOutput(" (REF NOT FOUND)");
+            wxString errBuf;
+            errBuf.Printf("Warning: unresolved reference '%s'", refName);
+            OnInform((char *)errBuf.c_str());
           }
         }
         else TexOutput("??");
           }
         }
         else TexOutput("??");
@@ -2021,7 +2037,7 @@ bool HTMLOnArgument(int macroId, int arg_no, bool start)
       if (imageFile)
         delete[] imageFile;
       imageFile = NULL;
       if (imageFile)
         delete[] imageFile;
       imageFile = NULL;
-      if (f)
+      if (!f.IsEmpty())
       {
         imageFile = copystring(f);
       }
       {
         imageFile = copystring(f);
       }
@@ -2089,17 +2105,29 @@ bool HTMLOnArgument(int macroId, int arg_no, bool start)
 */
     if (arg_no == 1)
     {
 */
     if (arg_no == 1)
     {
-        if ( start )
-            TexOutput("\n<TR><TD VALIGN=TOP>\n");
-        else
+      if ( start ) {
+        // DHS
+       if (TwoColWidthA > -1) {
+          char buf[100];
+          sprintf(buf,"\n<TR><TD VALIGN=TOP WIDTH=%d>\n",TwoColWidthA);
+          TexOutput(buf);
+        } else
+          TexOutput("\n<TR><TD VALIGN=TOP>\n");
+      }  else
             TexOutput("\n</TD>\n");
     }
     if (arg_no == 2)
     {
             TexOutput("\n</TD>\n");
     }
     if (arg_no == 2)
     {
-        if ( start )
-            TexOutput("\n<TD VALIGN=TOP>\n");
-        else
-            TexOutput("\n</TD></TR>\n");
+      // DHS
+      if ( start ) {
+       if (TwoColWidthB > -1) {
+          char buf[100];
+          sprintf(buf,"\n<TD VALIGN=TOP WIDTH=%d>\n",TwoColWidthB);
+          TexOutput(buf);
+        } else 
+           TexOutput("\n<TD VALIGN=TOP>\n");
+      }  else
+           TexOutput("\n</TD></TR>\n");
     }
     return TRUE;
     break;
     }
     return TRUE;
     break;
@@ -2153,6 +2181,30 @@ bool HTMLOnArgument(int macroId, int arg_no, bool start)
       TexOutput("<HR><P>\n");
     break;
   }
       TexOutput("<HR><P>\n");
     break;
   }
+  // DHS
+  case ltTWOCOLWIDTHA:
+  {
+    if (start)
+    {
+      char *val = GetArgData();
+      float points = ParseUnitArgument(val);
+      TwoColWidthA = (int)((points * 100.0) / 72.0);
+    }
+    return FALSE;
+    break;
+  }
+  // DHS
+  case ltTWOCOLWIDTHB:
+  {
+    if (start)
+    {
+      char *val = GetArgData();
+      float points = ParseUnitArgument(val);
+      TwoColWidthB = (int)((points * 100.0) / 72.0);
+    }
+    return FALSE;
+    break;
+  }
   /*
    * Accents
    *
   /*
    * Accents
    *