/usr/include/OverlayUnidraw/oved.h is in ivtools-dev 1.2.11a1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 | /*
* Copyright (c) 1994-1999 Vectaport Inc.
* Copyright (c) 1990, 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 names of the copyright holders not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The copyright holders make
* no representations about the suitability of this software for any purpose.
* It is provided "as is" without express or implied warranty.
*
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL THE COPYRIGHT HOLDERS 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.
*
*/
/*
` * Main class for overlay editor, derived from idraw Editor class.
*/
#ifndef oved_h
#define oved_h
#include <UniIdraw/ided.h>
#include <OverlayUnidraw/ovkit.h>
#include <InterViews/action.h>
// extern "C" {
#include <ComUtil/comutil.h>
// }
class AttributeList;
class ComTerpServ;
class Editor;
class GraphicView;
class Grid;
class EivTextEditor;
class ObservableText;
class OverlayComp;
class OverlayPanner;
class OverlayViewer;
class OverlaysView;
class PtrLocState;
class UPage;
class TextObserver;
class Viewer;
//: function pointer to method that constructs an OverlayEditor
// for use in EditorLauncherAction.
typedef OverlayEditor* (*editor_launcher)();
//: action to construct and launch an OverlayEditor.
// can be generalized to constructing and launching an Editor in the future,
// if anyone so desires.
class EditorLauncherAction : public Action {
public:
EditorLauncherAction(editor_launcher edlauncher)
{ _editor_launcher = edlauncher; }
virtual void execute() { (*_editor_launcher)(); }
protected:
editor_launcher _editor_launcher;
};
//: editor derived from IdrawEditor.
class OverlayEditor : public IdrawEditor {
public:
OverlayEditor(OverlayComp*, OverlayKit* ok = OverlayKit::Instance());
// construct an editor for editing a given component, using the 'ok'
// OverlayKit to build the surrounding menus and tools.
OverlayEditor(const char* file, OverlayKit* ok = OverlayKit::Instance());
// construct an editor for opening and editing a given component, specified
// the pathname 'file, using the 'ok' OverlayKit to build the surrounding
// menus and tools.
OverlayEditor(boolean initflag, OverlayKit* ok = OverlayKit::Instance());
// constructor for use of derived classes. Probably could be protected.
virtual ~OverlayEditor();
virtual void Update();
// update every viewer associated with this editor (usually only one).
virtual void InitCommands();
// to be filled in by derived classes, for any kind of initialization
// that needs to occur after the environment has been fully constructed,
// i.e. after the viewer has been displayed on the screen (after a call
// to OverlayViewer::Resize()).
OverlayViewer* GetOverlayViewer() { return (OverlayViewer*)GetViewer(); }
// return pointer to default viewer.
virtual Tool* GetCurTool();
// return pointer to current default tool.
virtual void SetCurTool(Tool*);
// set current default tool.
virtual void SetComponent(Component*);
// set new component tree, informing them of their new editor.
virtual void ReplaceComponent(Component*);
// set new component tree, informing them of their new editor, and delete old one.
virtual void Annotate(OverlayComp*);
// invoke annotation dialog box for this component.
virtual void AttrEdit(OverlayComp*);
// invoke dialog box for editing attribute list (property list) associated
// with this component.
ObservableText* MouseDocObservable();
// return pointer to observable text that contains current mouse documentation
// (a text string associated with the current tool).
virtual void InformComponents();
// inform components in the tree of the current editor.
virtual OverlaysView* GetFrame(int index=-1);
// return current frame number. -1 unless multi-frame editor.
boolean IsClean();
// checks modified status flag.
virtual void ResetStateVars();
// to be filled in by derived classses.
static int nedlauncher();
// number of editor launching function pointers in static list.
static void add_edlauncher(const char* name, editor_launcher);
// add editor launching function pointer to list.
static editor_launcher edlauncher(const char *);
// get editor launching function pointer by 'name'.
static editor_launcher edlauncher(int symid);
// get editor launching function pointer by 'symid'.
static AttributeList* edlauncherlist() { return _edlauncherlist; }
// return pointer to static list of editor launching function pointers.
static int ncomterp();
// number of ComTerpServ objects in static list.
static void add_comterp(const char* name, ComTerpServ* comterp);
// add ComTerpServ to static list.
static ComTerpServ* comterp(const char *);
// get ComTerpServ by 'name' from static list.
static ComTerpServ* comterp(int symid);
// get ComTerpServ by 'symid' from static list.
static AttributeList* comterplist() { return _comterplist; }
// return pointer to static list of ComTerpServ objects.
virtual void DoAutoNewFrame() { };
// empty method for use by multi-frame editors for creating a new frame
// when auto-new-frame is enabled.
static boolean opaque_flag();
// return global flag indicating whether opaque tranformations are enabled.
PtrLocState* ptrlocstate() { return _ptrlocstate; }
// state variable for displaying pointer location within document.
void ptrlocstate(PtrLocState* ptrlocstate) { _ptrlocstate = ptrlocstate; }
// set state variable for displaying pointer location within document.
virtual void ExecuteCmd(Command* cmd);
// indirect command execution for distributed whiteboard mechanism.
// actual mechanism implemented in ComEditor.
void SetText();
// set contents of text-editor.
void ClearText();
// clear contents of text-editor.
EivTextEditor* TextEditor() { return _texteditor; }
// return pointer to text-editor that holds current frame annotation.
void UpdateText(OverlayComp*, boolean update =true);
// update contents of text-editor with frame annotation.
OverlayKit* overlay_kit() { return _overlay_kit; }
// return pointer to paired OverlayKit
protected:
void Init(OverlayComp* = nil, const char* = "OverlayEditor");
// construct empty component tree if necessary, and pass to
// OverlayKit for the rest of initialization process.
Interactor* Interior();
// lay out the Interactor based interior of a drawing editor.
OverlayPanner* make_panner();
// make panner/zoomer/slider buttons, paying attention to
// command line arguments/default resources for positioning and enable/disable
// hints.
int panner_align();
// handle -panner_align or -pal command line argument.
virtual ComTerpServ* GetComTerp() { return nil; }
// return nil because this is not a ComEditor.
virtual ComTerpServ* comterp() { return nil; }
// return nil because this is not a ComEditor.
virtual void SetComTerp(ComTerpServ* terp) { }
// do nothing because this is not a ComEditor
virtual void comterp(ComTerpServ* terp) { }
// do nothing because this is not a ComEditor
protected:
OverlayKit* _overlay_kit;
Tool* _curtool;
ObservableText* _mousedoc;
PtrLocState* _ptrlocstate;
EivTextEditor* _texteditor;
static AttributeList* _edlauncherlist;
static AttributeList* _comterplist;
friend class OverlayKit;
};
declareActionCallback(OverlayEditor)
inline ObservableText* OverlayEditor::MouseDocObservable() { return _mousedoc; }
#endif
|