Changeset 4972


Ignore:
Timestamp:
2003-07-18T04:50:19+12:00 (21 years ago)
Author:
sjboddie
Message:

More changes to the new document formatting code. Added an
AllowExtendedOptions format option which must be set to allow other
new options to work.

Location:
trunk/gsdl/src/recpt
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/recpt/browsetools.cpp

    r4968 r4972  
    2929#include "browsetools.h"
    3030#include "OIDtools.h"
     31#include "gsdlunicode.h"
     32
     33#include <sstream>
     34
    3135
    3236// output_controls displays the detach, expand/contract contents,
     
    101105
    102106void output_titles (cgiargsclass &args, recptproto *collectproto,
    103             formatinfo_t &formatinfo, displayclass &disp,
    104             outconvertclass &outconvert, ostream &textout,
    105             ostream &logout) {
     107            browsermapclass *browsermap, formatinfo_t &formatinfo,
     108            displayclass &disp, outconvertclass &outconvert,
     109            ostream &textout, ostream &logout) {
    106110
    107111  if (args["d"].empty()) return;
     
    117121    return;
    118122
    119   text_tmap options; // no options
     123  text_tmap options;
     124  if (formatinfo.AllowExtendedOptions) {
     125    load_extended_options(options, args, browsermap, formatinfo,
     126              collectproto, disp, outconvert, logout);
     127  }
    120128  textout << outconvert << disp
    121129      << get_formatted_string (args["c"],collectproto, response.docInfo[0], disp,
     
    751759                 ostream &textout, ostream &logout) {
    752760
     761  if (formatinfo.AllowExtendedOptions) {
     762    // If AllowExtendedOptions is set DocumentButtons, DocumentContent, and
     763    // DocumentImages are effectively disabled. We just output the
     764    // DocumentHeading format string and return
     765    output_titles (args, collectproto, browsermap, formatinfo, disp, outconvert, textout, logout);   
     766    return;
     767  }
     768
    753769  int tabcount = 0;
    754770  bool havecontrols = false;
     
    774790      output_cover_image (args, collectproto, disp, outconvert, textout, logout);
    775791    else if (formatinfo.DocumentTitles)
    776       output_titles (args, collectproto, formatinfo, disp, outconvert, textout, logout);
     792      output_titles (args, collectproto, browsermap, formatinfo, disp, outconvert, textout, logout);
    777793    if (args["u"] != "1") {
    778794      output_controls (args, formatinfo.DocumentButtons, collectproto, disp,
     
    813829}
    814830
     831void load_extended_options(text_tmap &options, cgiargsclass &args, browsermapclass *browsers,
     832               formatinfo_t &formatinfo, recptproto *collectproto,
     833               displayclass &disp, outconvertclass &outconvert, ostream &logout) {
     834
     835  options["DocImage"] = get_cover_image();
     836
     837  ostringstream tmpstr(ostringstream::binary);
     838  if (args["gc"] == "1") {
     839    expanded_contents (args, 0, false, browsers, formatinfo,
     840               collectproto, disp, outconvert, tmpstr,
     841               logout);
     842  } else {
     843    contracted_contents (args, 0, false, browsers, formatinfo,
     844             collectproto, disp, outconvert, tmpstr, logout);
     845  }
     846  text_t tmp = (char *)(tmpstr.str().c_str());
     847  int len = tmp.size();
     848  char *ctmp = tmp.getcstr();
     849  utf8inconvertclass utf82text_t;
     850  utf82text_t.setinput(ctmp, len);
     851  convertclass::status_t status;
     852  utf82text_t.convert(tmp, status);
     853  options["DocTOC"] = tmp;
     854  delete ctmp;
     855
     856  options["DocumentButtonDetach"] = "_document:imagedetach_";
     857  if (args["hl"] == "1") {
     858    options["DocumentButtonHighlight"] = "_document:imagenohighlight_";
     859  } else {
     860    options["DocumentButtonHighlight"] = "_document:imagehighlight_";
     861  }
     862  if (args["gc"] == "1") {
     863    options["DocumentButtonExpandContents"] = "_document:imagecontracttoc_";
     864  } else {
     865    options["DocumentButtonExpandContents"] = "_document:imageexpandtoc_";
     866  }
     867  if (args["gt"] == "1") {
     868    options["DocumentButtonExpandText"] = "_document:imagecontracttext_";
     869  } else {
     870    options["DocumentButtonExpandText"] = "_document:imageexpandtext_";
     871  }
     872}
  • trunk/gsdl/src/recpt/browsetools.h

    r4936 r4972  
    6969
    7070void output_titles (cgiargsclass &args, recptproto *collectproto,
    71             formatinfo_t &formatinfo, displayclass &disp,
    72             outconvertclass &outconvert, ostream &textout,
    73             ostream &logout);
     71            browsermapclass *browsermap, formatinfo_t &formatinfo,
     72            displayclass &disp, outconvertclass &outconvert,
     73            ostream &textout, ostream &logout);
    7474
    7575void output_controls (cgiargsclass &args, const text_tarray &ibuttons,
     
    8484             ostream &textout, ostream &logout);
    8585
     86void load_extended_options(text_tmap &options, cgiargsclass &args, browsermapclass *browsers,
     87               formatinfo_t &formatinfo, recptproto *collectproto,
     88               displayclass &disp, outconvertclass &outconvert, ostream &logout);
    8689
    8790#endif
  • trunk/gsdl/src/recpt/documentaction.cpp

    r4936 r4972  
    2525
    2626#include <string.h>
    27 #include <sstream>
    2827
    2928#include "documentaction.h"
     
    592591         ((*format_here).second == "true"))
    593592      formatinfo.DocumentUseHTML = true;
     593    else if (((*format_here).first == "AllowExtendedOptions") &&
     594         ((*format_here).second == "true"))
     595      formatinfo.AllowExtendedOptions = true;
    594596    else
    595597      formatinfo.formatstrings[(*format_here).first] = (*format_here).second;
     
    907909      text_tmap options;
    908910      options["text"] = docresponse.doc;
    909       options["DocImage"] = get_cover_image();
    910 
    911       ostringstream tmpstr(ostringstream::binary);
    912       if (args["gc"] == "1") {
    913      expanded_contents (args, 0, false, browsers, formatinfo,
    914                 collectproto, disp, outconvert, tmpstr,
    915                 logout);
    916       } else {
    917      contracted_contents (args, 0, false, browsers, formatinfo,
    918                   collectproto, disp, outconvert, tmpstr, logout);
    919       }
    920       text_t tmp = (char *)(tmpstr.str().c_str());
    921       int len = tmp.size();
    922       char *ctmp = tmp.getcstr();
    923       utf8inconvertclass utf82text_t;
    924       utf82text_t.setinput(ctmp, len);
    925       convertclass::status_t status;
    926       utf82text_t.convert(tmp, status);
    927       options["DocTOC"] = tmp;
    928       delete ctmp;
    929 
    930       options["DocumentButtonDetach"] = "_document:imagedetach_";
    931       if (args["hl"] == "1") {
    932      options["DocumentButtonHighlight"] = "_document:imagenohighlight_";
    933       } else {
    934      options["DocumentButtonHighlight"] = "_document:imagehighlight_";
    935       }
    936       if (args["gc"] == "1") {
    937      options["DocumentButtonExpandContents"] = "_document:imagecontracttoc_";
    938       } else {
    939      options["DocumentButtonExpandContents"] = "_document:imageexpandtoc_";
    940       }
    941       if (args["gt"] == "1") {
    942      options["DocumentButtonExpandText"] = "_document:imagecontracttext_";
    943       } else {
    944      options["DocumentButtonExpandText"] = "_document:imageexpandtext_";
     911
     912      if (formatinfo.AllowExtendedOptions) {
     913    load_extended_options(options, args, browsers, formatinfo,
     914                  collectproto, disp, outconvert, logout);
    945915      }
    946916     
  • trunk/gsdl/src/recpt/formattools.cpp

    r4936 r4972  
    8686  formatstrings.erase (formatstrings.begin(), formatstrings.end());
    8787  DocumentUseHTML = false;
     88  AllowExtendedOptions = false;
    8889}
    8990
  • trunk/gsdl/src/recpt/formattools.h

    r4936 r4972  
    9696  text_tmap formatstrings;
    9797  bool DocumentUseHTML;
     98  bool AllowExtendedOptions;
    9899};
    99100
Note: See TracChangeset for help on using the changeset viewer.