From: pshannon@iapetus.cv.nrao.edu (Paul Shannon)
Subject: text classes in 3.1; 2.6 vs. 3.x
Organization: nrao
Distribution: comp
Date: Wed, 11 Nov 1992 15:28:43 GMT

I'm beginning a project using IV 3.1b3 which will provide context-
sensitive help to a large and complex image processing system.  The
help program will rely on Texinfo, and will function like Sun's
AnswerBook in many regards.

I've read through all of the documentation available at 
interviews.stanford.edu, and I'm confused:  almost all of the 
examples (sted, ivinfo, doc) use classes from IV 2.6.  Just to be
sure I wasn't missing something obvious, I did this search:


cd /iapetus/iv/src/include
iapetus.include> find . -print -exec grep -i text {} ';'

and when I exclude all of the 2.6 files, almost all of the hits I
got were from Unidraw Classes (see end of posting for a list).

I don't understand 

    - what happened to the IV design between 2.6 and 3.0
    - if I should avoid 2.6 classes for a new project
    - what to replace the 2.6 text classes with if that's the right
      thing to do.
    - should I use Unidraw classes even if my project is not really
      a "domain-specific graphical editor"?

Can you help me on these questions?  Thanks.

 - Paul

------------  occurrences of "text" in IV 3.1b3 include files -----------

./IV-look/field.h
 * FieldEditor -- simple editor for text fields
    virtual const String* text() const;
.
./InterViews/regexp.h
    char *textStart;
    int Search(const char* text, int length, int index, int range);
    int Match(const char* text, int length, int index);

./Unidraw/Components/psformat.h
static const float PSV_TEXTOFFSET    =  7; // changed text positions on scre
en
                                           // text positions on prfloatout
static const float PSV_NONREDUNDANT  =  3; // eliminated unnecessary text
                                           // poly pofloats, and text data
./Unidraw/Components/psview.h
    virtual void TextGS(ostream&);
    virtual void TextProc(ostream&);

./Unidraw/Components/text.h
 * Text component declarations.
#ifndef unidraw_components_text_h
#define unidraw_components_text_h
class TextGraphic;
class TextManip;
class TextComp : public GraphicComp {
    TextComp(TextGraphic* = nil);
    TextGraphic* GetText();
class TextView : public GraphicView {
    TextView(TextComp* = nil);
    TextComp* GetTextComp();
    virtual boolean TextChanged();
class TextGraphic : public ULabel {
    TextGraphic(const char*, int h, Graphic* = nil);
    TextGraphic(const char*, Graphic*);
    virtual boolean operator == (TextGraphic&);
    virtual boolean operator != (TextGraphic&);
    virtual void getExtent(float&, float&, float&, float&, float&, Graphic*)
;
class PSText : public PostScriptView {
    PSText(TextComp* = nil);

./Unidraw/manips.h
 * TextManip - creates and edits text
class TextBuffer;
class TextDisplay;
class TextManip : public Manipulator {
    TextManip(Viewer*, Painter*, Coord tab, Tool* = nil);
    TextManip(Viewer*, Painter*, Coord h, Coord tab, Tool* = nil);
    TextManip(
    TextManip(
    virtual ~TextManip();
    virtual const char* GetText(int&);
    void InsertText(const char*, int);
    void DeleteText(int);
    void BeginningOfText(),             EndOfText();
    void InitTextDisplay(const char*, int);
    void PlaceTextDisplay (Coord, Coord);
    TextBuffer* _text;
    TextDisplay* _display;
inline int TextManip::Dot () { return _dot; }
inline int TextManip::Mark () { return _mark; }
inline const Event& TextManip::GraspEvent () { return _grasp_e; }

./Unidraw/viewer.h
class TextDisplay;
    virtual void InitTextDisplay(TextDisplay*, Painter*);
    virtual void IncurTextDisplayDamage(TextDisplay*, Painter*);


Newsgroups: comp.windows.interviews