⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmlutil.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
            if ((passNumber == 1 && !runTwice) ||                (passNumber == 2 && runTwice))            {              wxString errBuf;              errBuf.Printf(_T("Warning: unresolved reference '%s'"), refName);              OnInform((wxChar *)errBuf.c_str());            }          }        }        else TexOutput(_T("??"));      }      return false;    }    break;  }  case ltIMAGE:  case ltIMAGEL:  case ltIMAGER:  case ltPSBOXTO:  {    if (arg_no == 2)    {      if (start)      {        wxChar *alignment = _T("");        if (macroId == ltIMAGEL)          alignment = _T(" align=left");        else if  (macroId == ltIMAGER)          alignment = _T(" align=right");        // Try to find an XBM or GIF image first.        wxChar *filename = copystring(GetArgData());        wxChar buf[500];        wxStrcpy(buf, filename);        StripExtension(buf);        wxStrcat(buf, _T(".xbm"));        wxString f = TexPathList.FindValidPath(buf);        if (f == _T("")) // Try for a GIF instead        {          wxStrcpy(buf, filename);          StripExtension(buf);          wxStrcat(buf, _T(".gif"));          f = TexPathList.FindValidPath(buf);        }        if (f == _T("")) // Try for a JPEG instead        {          wxStrcpy(buf, filename);          StripExtension(buf);          wxStrcat(buf, _T(".jpg"));          f = TexPathList.FindValidPath(buf);        }        if (f == _T("")) // Try for a PNG instead        {          wxStrcpy(buf, filename);          StripExtension(buf);          wxStrcat(buf, _T(".png"));          f = TexPathList.FindValidPath(buf);        }        if (f != _T(""))        {          wxChar *inlineFilename = copystring(f);#if 0          wxChar *originalFilename = TexPathList.FindValidPath(filename);          // If we have found the existing filename, make the inline          // image point to the original file (could be PS, for example)          if (originalFilename && (wxStrcmp(inlineFilename, originalFilename) != 0))          {            TexOutput(_T("<A HREF=\""));            TexOutput(ConvertCase(originalFilename));            TexOutput(_T("\">"));            TexOutput(_T("<img src=\""));            TexOutput(ConvertCase(wxFileNameFromPath(inlineFilename)));            TexOutput(_T("\""));            TexOutput(alignment);            TexOutput(_T("></A>"));          }          else#endif          {            TexOutput(_T("<img src=\""));            TexOutput(ConvertCase(wxFileNameFromPath(inlineFilename)));            TexOutput(_T("\""));            TexOutput(alignment);            TexOutput(_T(">"));            delete[] inlineFilename;          }        }        else        {          // Last resort - a link to a PS file.          TexOutput(_T("<A HREF=\""));          TexOutput(ConvertCase(wxFileNameFromPath(filename)));          TexOutput(_T("\">Picture</A>\n"));          wxSnprintf(buf, sizeof(buf), _T("Warning: could not find an inline XBM/GIF for %s."), filename);          OnInform(buf);        }      }    }    return false;  }  // First arg is PSBOX spec (ignored), second is image file, third is map name.  case ltIMAGEMAP:  {    static wxChar *imageFile = NULL;    if (start && (arg_no == 2))    {      // Try to find an XBM or GIF image first.      wxChar *filename = copystring(GetArgData());      wxChar buf[500];      wxStrcpy(buf, filename);      StripExtension(buf);      wxStrcat(buf, _T(".xbm"));      wxString f = TexPathList.FindValidPath(buf);      if (f == _T("")) // Try for a GIF instead      {        wxStrcpy(buf, filename);        StripExtension(buf);        wxStrcat(buf, _T(".gif"));        f = TexPathList.FindValidPath(buf);      }      if (f == _T(""))      {        wxChar buf[300];        wxSnprintf(buf, sizeof(buf), _T("Warning: could not find an inline XBM/GIF for %s."), filename);        OnInform(buf);      }      delete[] filename;      if (imageFile)        delete[] imageFile;      imageFile = NULL;      if (!f.empty())      {        imageFile = copystring(f);      }    }    else if (start && (arg_no == 3))    {      if (imageFile)      {        // First, try to find a .shg (segmented hypergraphics file)        // that we can convert to a map file        wxChar buf[256];        wxStrcpy(buf, imageFile);        StripExtension(buf);        wxStrcat(buf, _T(".shg"));        wxString f = TexPathList.FindValidPath(buf);        if (f != _T(""))        {          // The default HTML file to go to is THIS file (so a no-op)          SHGToMap((wxChar *)f.c_str(), currentFileName);        }        wxChar *mapName = GetArgData();        TexOutput(_T("<A HREF=\"/cgi-bin/imagemap/"));        if (mapName)          TexOutput(mapName);        else          TexOutput(_T("unknown"));        TexOutput(_T("\">"));        TexOutput(_T("<img src=\""));        TexOutput(ConvertCase(wxFileNameFromPath(imageFile)));        TexOutput(_T("\" ISMAP></A><P>"));        delete[] imageFile;        imageFile = NULL;      }    }    return false;  }  case ltINDENTED :  {    if ( arg_no == 1 )        return false;    else    {        return true;    }  }  case ltITEM:  {    if (start)    {      descriptionItemArg = GetArgChunk();      return false;    }    return true;  }  case ltTWOCOLITEM:  case ltTWOCOLITEMRULED:  {/*    if (start && (arg_no == 1))      TexOutput(_T("\n<DT> "));    if (start && (arg_no == 2))      TexOutput(_T("<DD> "));*/    if (arg_no == 1)    {      if ( start ) {        // DHS        if (TwoColWidthA > -1)        {          wxChar buf[100];          wxSnprintf(buf, sizeof(buf), _T("\n<TR><TD VALIGN=TOP WIDTH=%d>\n"),TwoColWidthA);          TexOutput(buf);        }        else        {          TexOutput(_T("\n<TR><TD VALIGN=TOP>\n"));        }        OutputFont();      }  else            TexOutput(_T("\n</FONT></TD>\n"));    }    if (arg_no == 2)    {      // DHS      if ( start )      {        if (TwoColWidthB > -1)        {          wxChar buf[100];          wxSnprintf(buf, sizeof(buf), _T("\n<TD VALIGN=TOP WIDTH=%d>\n"),TwoColWidthB);          TexOutput(buf);        }        else        {          TexOutput(_T("\n<TD VALIGN=TOP>\n"));        }        OutputFont();      }  else           TexOutput(_T("\n</FONT></TD></TR>\n"));    }    return true;  }  case ltNUMBEREDBIBITEM:  {    if (arg_no == 1 && start)    {      TexOutput(_T("\n<DT> "));    }    if (arg_no == 2 && !start)      TexOutput(_T("<P>\n"));    break;  }  case ltBIBITEM:  {    wxChar buf[100];    if (arg_no == 1 && start)    {      wxChar *citeKey = GetArgData();      TexRef *ref = (TexRef *)TexReferences.Get(citeKey);      if (ref)      {        if (ref->sectionNumber) delete[] ref->sectionNumber;        wxSnprintf(buf, sizeof(buf), _T("[%d]"), citeCount);        ref->sectionNumber = copystring(buf);      }      wxSnprintf(buf, sizeof(buf), _T("\n<DT> [%d] "), citeCount);      TexOutput(buf);      citeCount ++;      return false;    }    if (arg_no == 2 && !start)      TexOutput(_T("<P>\n"));    return true;  }  case ltMARGINPAR:  case ltMARGINPARODD:  case ltMARGINPAREVEN:  case ltNORMALBOX:  case ltNORMALBOXD:  {    if (start)    {      TexOutput(_T("<HR>\n"));      return true;    }    else      TexOutput(_T("<HR><P>\n"));    break;  }  // DHS  case ltTWOCOLWIDTHA:  {    if (start)    {      wxChar *val = GetArgData();      float points = ParseUnitArgument(val);      TwoColWidthA = (int)((points * 100.0) / 72.0);    }    return false;  }  // DHS  case ltTWOCOLWIDTHB:  {    if (start)    {      wxChar *val = GetArgData();      float points = ParseUnitArgument(val);      TwoColWidthB = (int)((points * 100.0) / 72.0);    }    return false;  }  /*   * Accents   *   */  case ltACCENT_GRAVE:  {    if (start)    {      wxChar *val = GetArgData();      if (val)      {        switch (val[0])        {          case 'a':           TexOutput(_T("&agrave;"));           break;          case 'e':           TexOutput(_T("&egrave;"));           break;          case 'i':           TexOutput(_T("&igrave;"));           break;          case 'o':           TexOutput(_T("&ograve;"));           break;          case 'u':           TexOutput(_T("&ugrave;"));           break;          case 'A':           TexOutput(_T("&Agrave;"));           break;          case 'E':           TexOutput(_T("&Egrave;"));           break;          case 'I':           TexOutput(_T("&Igrave;"));           break;          case 'O':           TexOutput(_T("&Ograve;"));           break;          case 'U':           TexOutput(_T("&Igrave;"));           break;          default:           break;        }      }    }    return false;  }  case ltACCENT_ACUTE:  {    if (start)    {      wxChar *val = GetArgData();      if (val)      {        switch (val[0])        {          case 'a':           TexOutput(_T("&aacute;"));           break;          case 'e':           TexOutput(_T("&eacute;"));           break;          case 'i':           TexOutput(_T("&iacute;"));           break;          case 'o':           TexOutput(_T("&oacute;"));           break;          case 'u':           TexOutput(_T("&uacute;"));           break;          case 'y':           TexOutput(_T("&yacute;"));           break;          case 'A':           TexOutput(_T("&Aacute;"));           break;          case 'E':           TexOutput(_T("&Eacute;"));           break;          case 'I':           TexOutput(_T("&Iacute;"));           break;          case 'O':           TexOutput(_T("&Oacute;"));           break;          case 'U':           TexOutput(_T("&Uacute;"));           break;          case 'Y':           TexOutput(_T("&Yacute;"));           break;          default:           break;        }      }    }    return false;  }  case ltACCENT_CARET:  {    if (start)    {      wxChar *val = GetArgData();      if (val)      {        switch (val[0])        {          case 'a':           TexOutput(_T("&acirc;"));           break;          case 'e':           TexOutput(_T("&ecirc;"));           break;          case 'i':           TexOutput(_T("&icirc;"));           break;          case 'o':           TexOutput(_T("&ocirc;"));           break;          case 'u':           TexOutput(_T("&ucirc;"));           break;          case 'A':           TexOutput(_T("&Acirc;"));           break;          case 'E':           TexOutput(_T("&Ecirc;"));           break;          case 'I':           TexOutput(_T("&Icirc;"));           break;          case 'O':           TexOutput(_T("&Ocirc;"));           break;          case 'U':           TexOutput(_T("&Icirc;"));           break;          default:           break;        }      }    }    return false;  }  case ltACCENT_TILDE:  {    if (start)    {      wxChar *val = GetArgData();      if (val)      {        switch (val[0])        {          case ' ':           TexOutput(_T("~"));           break;          case 'a':           TexOutput(_T("&atilde;"));           break;          case 'n':           TexOutput(_T("&ntilde;"));           break;          case 'o':           TexOutput(_T("&otilde;"));           break;          case 'A':           TexOutput(_T("&Atilde;"));           break;          case 'N':           TexOutput(_T("&Ntilde;"));           break;          case 'O':           TexOutput(_T("&Otilde;"));           break;          default:           break;        }      }    }    return false;  }  case ltACCENT_UMLAUT:  {    if (start)    {      wxChar *val = GetArgData();      if (val)      {        switch (val[0])        {          case 'a':           TexOutput(_T("&auml;"));           break;          case 'e':           TexOutput(_T("&euml;"));           break;          case 'i':           TexOutput(_T("&iuml;"));           break;          case 'o':           TexOutput(_T("&ouml;"));           break;          case 'u':           TexOutput(_T("&uuml;"));           break;          case 'y':           TexOutput(_T("&yuml;"));           break;          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -