|
|
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: T i
Length: 6114 (0x17e2)
Types: TextFile
Names: »ibinteractor.h«
└─⟦8648bda34⟧ Bits:30007244 EUUGD5_II: X11R5
└─⟦87c3ac0e0⟧ »./contrib-3/contrib-3.00«
└─⟦de8ce1454⟧
└─⟦this⟧ »contrib/lib/iv/src/bin/ibuild/ibinteractor.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.
*/
/*
* Interactor component declarations.
* $Header: /master/3.0/iv/src/bin/ibuild/RCS/ibinteractor.h,v 1.2 91/09/27 14:14:18 tang Exp $
*/
#ifndef ibinteractor_h
#define ibinteractor_h
#include <Unidraw/Components/grcomp.h>
#include <Unidraw/Components/grview.h>
#include <Unidraw/Commands/datas.h>
class ButtonState;
class ButtonStateVar;
class CanvasVar;
class Clipboard;
class Editor;
class EditorInfo;
class HVGraphic;
class InfoDialog;
class MemberNameVar;
class InstanceNameVar;
class InteractorComp;
class IBShape;
class ShapeVar;
class StateVar;
class SubclassNameVar;
class Transformer;
class IBGraphic;
class lbrtData : public VoidData {
public:
lbrtData(InteractorComp*);
virtual ~lbrtData();
public:
Coord _l, _b, _r, _t;
IBShape* _ibshape;
Transformer* _tr;
};
class Props {
public:
Props(const char*);
virtual ~Props();
void SetPropsText(const char*);
const char* GetPropsText();
Props* Copy();
void Read(istream&);
void Write(ostream&);
private:
char* _props;
int _size;
};
inline const char* Props::GetPropsText () { return _props; }
class InteractorComp : public GraphicComps {
public:
virtual ~InteractorComp();
virtual void Interpret(Command*);
virtual void Uninterpret(Command*);
virtual void Resize();
virtual void Reconfig();
virtual InteractorComp* GetIComp(Iterator);
virtual boolean IsAScene();
virtual boolean IsANewScope();
virtual boolean IsRelatableTo(InteractorComp*);
virtual boolean IsRelatable();
virtual void Relate(InteractorComp*);
virtual void Unrelate(InteractorComp*);
CanvasVar* GetCanvasVar();
SubclassNameVar* GetClassNameVar();
InstanceNameVar* GetInstanceNameVar();
MemberNameVar* GetMemberNameVar();
ShapeVar* GetShapeVar();
Props* GetProps();
void Propagate(Command*);
void Unpropagate(Command*);
virtual IBGraphic* GetIBGraphic();
virtual ButtonStateVar* GetButtonStateVar();
virtual InteractorComp& operator = (InteractorComp&);
virtual StateVar* GetState(const char*);
virtual void SetState(const char*, StateVar*);
virtual void StoreCanvas(Command*);
virtual void RestoreCanvas(Command*);
virtual void Read(istream&);
virtual void Write(ostream&);
virtual ClassId GetClassId();
virtual boolean IsA(ClassId);
virtual void Instantiate();
protected:
InteractorComp(IBGraphic* = nil);
void Place(InteractorComp*);
void Place(InteractorComp*, Coord, Coord, Coord, Coord);
protected:
CanvasVar* _canvasVar;
SubclassNameVar* _classNameVar;
InstanceNameVar* _instanceNameVar;
MemberNameVar* _memberVar;
ShapeVar* _shapeVar;
Props* _props;
private:
void InitCanvas(InteractorComp*);
};
inline CanvasVar* InteractorComp::GetCanvasVar () { return _canvasVar; }
inline SubclassNameVar* InteractorComp::GetClassNameVar () {
return _classNameVar;
}
inline InstanceNameVar* InteractorComp::GetInstanceNameVar () {
return _instanceNameVar;
}
inline ShapeVar* InteractorComp::GetShapeVar () { return _shapeVar; }
inline Props* InteractorComp::GetProps () { return _props; }
inline MemberNameVar* InteractorComp::GetMemberNameVar () {
return _memberVar;
}
inline ButtonStateVar* InteractorComp::GetButtonStateVar () { return nil; }
inline boolean InteractorComp::IsAScene() { return false; }
inline boolean InteractorComp::IsANewScope() { return false; }
inline boolean InteractorComp::IsRelatableTo(InteractorComp*) { return false; }
inline boolean InteractorComp::IsRelatable() { return false; }
class InteractorView : public GraphicViews {
public:
InteractorComp* GetInteractorComp();
virtual Graphic* GetGraphic();
virtual Manipulator* CreateManipulator(Viewer*,Event&,Transformer*,Tool*);
virtual Command* InterpretManipulator(Manipulator*);
virtual void Interpret(Command*);
virtual InfoDialog* GetInfoDialog();
virtual ClassId GetClassId();
virtual boolean IsA(ClassId);
protected:
InteractorView(InteractorComp* = nil);
virtual boolean UpdateCanvasVar();
boolean Different(Graphic*, Graphic*);
void GetABSCoord(Editor*, Coord&, Coord&, Coord&, Coord&);
};
class HVComp : public InteractorComp {
public:
virtual void Reconfig();
HVGraphic* GetHVGraphic();
virtual void Read(istream&);
virtual void Write(ostream&);
virtual ClassId GetClassId();
virtual boolean IsA(ClassId);
protected:
HVComp(HVGraphic* = nil);
virtual HVGraphic* InitGraphic(Orientation, int = 1);
};
class HVView : public InteractorView {
public:
virtual void Update();
virtual Manipulator* CreateManipulator(Viewer*,Event&,Transformer*,Tool*);
virtual Command* InterpretManipulator(Manipulator*);
HVComp* GetHVComp();
virtual ClassId GetClassId();
virtual boolean IsA(ClassId);
protected:
HVView(HVComp* = nil);
virtual HVComp* InitComp(Coord, Coord, Coord, Coord);
};
#endif