|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: D T
Length: 7924 (0x1ef4)
Types: TextFile
Names: »Document.h«
└─⟦8648bda34⟧ Bits:30007244 EUUGD5_II: X11R5
└─⟦87c3ac0e0⟧ »./contrib-3/contrib-3.00«
└─⟦de8ce1454⟧
└─⟦this⟧ »contrib/lib/iv/src/bin/doc/Document.h«
/*
* Copyright (c) 1991 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* Document
*/
#ifndef Document_h
#define Document_h
#include <InterViews/resource.h>
#include <InterViews/boolean.h>
class Application;
class DocumentViewer;
class Glyph;
class Item;
class TextItem;
class PSFigItem;
class TabularItem;
class CounterItem;
class LabelItem;
class RefItem;
class FloatItem;
class PagenumberItem;
class istream;
class ostream;
class TextStyle {
public:
char* _font;
char* _color;
char* _size;
char* _alignment;
};
class TextSource {
public:
char* _source;
char* _name;
boolean _editable;
int _depth;
};
class Document : public Resource {
public:
Document (Application*, int size_hint = 0);
virtual void touch (boolean);
virtual boolean touched ();
virtual const char* name ();
virtual void name (const char*);
virtual const char* document_parameter (const char*);
virtual float document_metric (const char*);
virtual float convert_metric (const char*);
virtual TextItem* body ();
virtual void insert_float (Item*);
virtual void remove_float (Item*);
virtual void change_float (Item*);
virtual void adjust_float (Item*, float x, float y, long page);
virtual Glyph* character (long code, long style);
virtual TextStyle& text_style (long);
virtual TextSource& text_source (long);
virtual long common_source (long source1, long source2);
virtual void relabel ();
virtual void step (const char* counter, const char* context);
virtual void label (const char* name, const char* text);
virtual const char* label (const char* name);
virtual long paste (
istream&, TextItem*, long index, long style, long source
);
virtual void copy (
ostream&, TextItem*, long index, long count, long style, long source
);
virtual void read (istream&);
virtual void read (istream&, TextItem*, long style, long source);
virtual void read (istream&, PSFigItem*, long style, long source);
virtual void read (istream&, TabularItem*, long style, long source);
virtual void read (istream&, CounterItem*, long style, long source);
virtual void read (istream&, LabelItem*, long style, long source);
virtual void read (istream&, RefItem*, long style, long source);
virtual void read (istream&, FloatItem*, long style, long source);
virtual void read (istream&, PagenumberItem*, long style, long source);
virtual void write (ostream&);
virtual void write (ostream&, TextItem*, long style, long source);
virtual void write (ostream&, PSFigItem*, long style, long source);
virtual void write (ostream&, TabularItem*, long style, long source);
virtual void write (ostream&, CounterItem*, long style, long source);
virtual void write (ostream&, LabelItem*, long style, long source);
virtual void write (ostream&, RefItem*, long style, long source);
virtual void write (ostream&, FloatItem*, long style, long source);
virtual void write (ostream&, PagenumberItem*, long style, long source);
virtual long parse_text (const char* buffer);
virtual long unparse_text (char* buffer, long code);
virtual long parse_style (const char* buffer, long old_style);
virtual void unparse_style (char* buffer, long style, long old_style);
virtual void attach (DocumentViewer*);
virtual void detach (DocumentViewer*);
virtual void notify ();
protected:
virtual ~Document ();
virtual long read_verbatim_text (
istream& in, TextItem* text, long index, long style, long source
);
virtual void write_verbatim_text (
ostream& out, TextItem* text, long index, long count,
long style, long source
);
virtual long read_import_text (
istream& in, TextItem* text, long index, long style, long source,
const char* filename
);
virtual void write_import_text (
ostream& out, TextItem* text, long index, long count,
long style, long source, const char* filename
);
virtual long read_macro_text (
istream& in, TextItem* text, long index, long style, long source,
const char* name
);
virtual void write_macro_text (
ostream& out, TextItem* text, long index, long count,
long style, long source, const char* name
);
virtual long read_parameter_text (
istream& in, TextItem* text, long index, long style, long source
);
virtual void write_parameter_text (
ostream& out, TextItem* text, long index, long count,
long style, long source
);
virtual void write_styled_text (
ostream& out, TextItem* text, long index, long count,
long style, long source, const char* name
);
virtual long read_encoded_text (
istream& in, TextItem* text, long index, long style, long source,
long terminator
);
virtual void write_encoded_text (
ostream& out, TextItem* text, long index, long count,
long style, long source
);
long find_style (
long oldstyle,
const char* font, const char* color,
const char* size, const char* align
);
void initialize_style (long style);
void cleanup_style (long style);
long find_source (
long enclosing, long style,
const char* source, const char* name,
boolean generated, boolean unique
);
long nested_source (long enclosing, long source);
void cleanup_source (long source);
long find_macro (const char* name);
void define_macro (long macro, const char* def, boolean save);
void cleanup_macro (long macro);
long find_counter (const char* name);
void define_counter (
long, const char* within, const char* format, long init, boolean save
);
void cleanup_counter (long counter);
long find_parameter (const char* name);
void define_parameter (long, const char* value, boolean save);
void cleanup_parameter (long);
long find_label (const char* name);
void define_label (long, const char* text, boolean save);
void cleanup_label (long label);
long find_float (Item*);
void cleanup_float (long);
void read_name (istream& in, char* buffer);
void read_parameter (istream& in, char* buffer);
int token (istream& in, char* buffer);
int _size_hint;
Application* _application;
char* _name;
boolean _touched;
boolean _relabel;
TextItem* _body;
char* _style_name;
float _format_width;
class StyleInfo_List* _style;
class SourceInfo_List* _source;
class MacroInfo_List* _macro;
class CounterInfo_List* _counter;
class LabelInfo_List* _label;
class FloatInfo_List* _float;
class DocumentParameterInfo_List* _parameter;
class DocumentViewerInfo_List* _viewer;
};
#endif