|
|
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: 24655 (0x604f)
Types: TextFile
Names: »ibed.c«
└─⟦8648bda34⟧ Bits:30007244 EUUGD5_II: X11R5
└─⟦87c3ac0e0⟧ »./contrib-3/contrib-3.00«
└─⟦de8ce1454⟧
└─⟦this⟧ »contrib/lib/iv/src/bin/ibuild/ibed.c«
/*
* 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.
*/
/*
* IB editor main class implementation.
* $Header: /master/3.0/iv/src/bin/ibuild/RCS/ibed.c,v 1.2 91/09/27 14:08:04 tang Exp $
*/
#include "ibbox.h"
#include "ibbutton.h"
#include "ibclasses.h"
#include "ibcreator.h"
#include "ibcmds.h"
#include "ibdeck.h"
#include "ibdialog.h"
#include "ibed.h"
#include "ibeditor.h"
#include "ibframe.h"
#include "ibinteractor.h"
#include "ibkybd.h"
#include "ibmenu.h"
#include "ibscene.h"
#include "ibshaper.h"
#include "ibtoolpanel.h"
#include "ibtools.h"
#include "ibvars.h"
#include "ibviewport.h"
#include <Unidraw/catalog.h>
#include <Unidraw/ctrlinfo.h>
#include <Unidraw/editor.h>
#include <Unidraw/editorinfo.h>
#include <Unidraw/globals.h>
#include <Unidraw/keymap.h>
#include <Unidraw/kybd.h>
#include <Unidraw/page.h>
#include <Unidraw/selection.h>
#include <Unidraw/statevars.h>
#include <Unidraw/stateviews.h>
#include <Unidraw/uctrls.h>
#include <Unidraw/unidraw.h>
#include <Unidraw/viewer.h>
#include <Unidraw/Commands/align.h>
#include <Unidraw/Commands/catcmds.h>
#include <Unidraw/Commands/edit.h>
#include <Unidraw/Commands/struct.h>
#include <Unidraw/Commands/transforms.h>
#include <Unidraw/Commands/viewcmds.h>
#include <Unidraw/Commands/brushcmd.h>
#include <Unidraw/Commands/colorcmd.h>
#include <Unidraw/Commands/font.h>
#include <Unidraw/Components/line.h>
#include <Unidraw/Components/rect.h>
#include <Unidraw/Components/text.h>
#include <Unidraw/Graphic/label.h>
#include <Unidraw/Graphic/polygons.h>
#include <Unidraw/Graphic/splines.h>
#include <Unidraw/Tools/grcomptool.h>
#include <Unidraw/Tools/magnify.h>
#include <Unidraw/Tools/move.h>
#include <Unidraw/Tools/reshape.h>
#include <Unidraw/Tools/select.h>
#include <Unidraw/Tools/stretch.h>
#include <InterViews/adjuster.h>
#include <InterViews/bitmap.h>
#include <InterViews/border.h>
#include <InterViews/box.h>
#include <InterViews/frame.h>
#include <InterViews/glue.h>
#include <InterViews/menu.h>
#include <InterViews/message.h>
#include <InterViews/panner.h>
#include <InterViews/shape.h>
#include <InterViews/window.h>
#include <InterViews/world.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*****************************************************************************/
const float VIEWER_WIDTH = 0;
const float VIEWER_HEIGHT = 6;
/*****************************************************************************/
static const char* brAttrib = "border";
static const char* fontAttrib = "font";
static const char* fgAttrib = "fgcolor";
static const char* bgAttrib = "bgcolor";
static const char* patAttrib = "pattern";
static const char* initBrAttrib = "initialborder";
static const char* initFontAttrib = "initialfont";
static const char* initFgAttrib = "initialfgcolor";
static const char* initBgAttrib = "initialbgcolor";
static const char* initPatAttrib = "initialpattern";
/*****************************************************************************/
inline void InsertSeparator (PulldownMenu* pdm) {
pdm->GetScene()->Insert(
new VBox(
new VGlue(2, 0, 0),
new HBorder,
new VGlue(2, 0, 0)
)
);
}
inline PulldownMenu* MakePulldown (const char* name) {
return new PulldownMenu(new Message(name, Center, round(.1*cm)));
}
/*****************************************************************************/
IBEditor::IBEditor (GraphicComp* comp) {
Init(comp);
}
IBEditor::IBEditor (const char* file) {
if (file == nil) {
Init();
} else {
Catalog* catalog = unidraw->GetCatalog();
GraphicComp* comp;
if (catalog->Retrieve(file, (Component*&) comp)) {
Init(comp);
} else {
Init();
fprintf(stderr, "ibuild: couldn't open %s\n", file);
}
}
}
void IBEditor::Init(GraphicComp* comp) {
SetClassName("IBEditor");
ManagedWindow* window = new ApplicationWindow(this);
window->name("InterViews interface builder");
window->icon_name("ibuild");
SetWindow(window);
if (comp == nil) {
SceneComp* scomp = new SceneComp;
scomp->GetClassNameVar()->SetName("[root]");
scomp->GetClassNameVar()->SetBaseClass("[root]");
_comp = scomp;
} else {
_comp = comp;
}
_curCtrl = new ControlState;
_selection = new Selection;
_tab = nil;
_keymap = new KeyMap;
InitStateVars();
InitViewer();
Insert(new Frame(Interior()));
_keymap->Execute(CODE_SELECT);
}
void IBEditor::InitStateVars () {
_name = new CompNameVar(_comp);
_modifStatus = new ModifStatusVar(_comp);
_magnif = new MagnifVar;
_font = new FontVar;
_brush = new BrushVar;
_color = new ColorVar;
_pattern = new PatternVar;
Catalog* catalog = unidraw->GetCatalog();
const char* brIndex = catalog->GetAttribute(initBrAttrib);
const char* fontIndex = catalog->GetAttribute(initFontAttrib);
const char* patIndex = catalog->GetAttribute(initPatAttrib);
const char* fgIndex = catalog->GetAttribute(initFgAttrib);
const char* bgIndex = catalog->GetAttribute(initBgAttrib);
_brush->SetBrush(catalog->ReadBrush(brAttrib, atoi(brIndex)));
_font->SetFont(catalog->ReadFont(fontAttrib, atoi(fontIndex)));
_pattern->SetPattern(catalog->ReadPattern(patAttrib, atoi(patIndex)));
_color->SetColors(
catalog->ReadColor(fgAttrib, atoi(fgIndex)),
catalog->ReadColor(bgAttrib, atoi(bgIndex))
);
IBNameVar::SetUniqueFlag(true);
}
IBEditor::~IBEditor () {
delete _keymap;
delete _selection;
delete _tab;
}
Component* IBEditor::GetComponent () { return _comp; }
Viewer* IBEditor::GetViewer (int id) { return (id == 0) ? _viewer : nil; }
KeyMap* IBEditor::GetKeyMap () { return _keymap; }
Selection* IBEditor::GetSelection () { return _selection; }
ToolPanel* IBEditor::GetToolPanel () { return _toolpanel; }
StateVar* IBEditor::GetState (const char* name) {
if (strcmp(name, "FontVar") == 0) {
return _font;
} else if (strcmp(name, "BrushVar") == 0) {
return _brush;
} else if (strcmp(name, "ColorVar") == 0) {
return _color;
} else if (strcmp(name, "PatternVar") == 0) {
return _pattern;
} else if (strcmp(name, "CompNameVar") == 0) {
return _name;
} else if (strcmp(name, "ModifStatusVar") == 0) {
return _modifStatus;
} else if (strcmp(name, "MagnifVar") == 0) {
return _magnif;
} else {
return Editor::GetState(name);
}
}
Tool* IBEditor::GetCurTool () {
UControl* c = (UControl*) _curCtrl->Selection();
return (Tool*) c->GetControlInfo()->GetOwner();
}
void IBEditor::SetComponent (Component* comp) {
if (comp == nil || comp->IsA(GRAPHIC_COMP)) {
_comp = (GraphicComp*) comp;
}
}
void IBEditor::SetViewer (Viewer* v, int i) {
if (i == 0) {
_viewer = v;
}
}
void IBEditor::SetKeyMap (KeyMap* k) { _keymap = k; }
void IBEditor::SetSelection (Selection* s) { _selection = s; }
Interactor* IBEditor::Interior () {
int gap = round(.1*cm);
int wpanner = round(1.5*cm);
_toolpanel = new ToolPanel(_curCtrl, _keymap);
HBox* attr = new HBox (
new BrushVarView(_brush, _color),
new VBorder,
new PatternVarView(_pattern, _color),
new VBorder,
new HGlue,
new FontVarView(_font, Right)
);
HBox* status = new HBox(
new HBox (
new BrushVarView(_brush, _color),
new VBorder,
new PatternVarView(_pattern, _color),
new VBorder
),
new HBox (
new HGlue(gap, 0, 0),
new ModifStatusVarView(_modifStatus),
new CompNameVarView(_name, Left),
new HGlue,
new FontVarView(_font, Right),
new MagnifVarView(_magnif, Right)
)
);
HBox* panel = new HBox(
new VBox(
status,
new HBorder,
new HBox(Tools(), new HGlue),
new HBorder,
new HBox(Commands(), new HGlue)
),
new VBorder,
new Panner(_viewer, wpanner)
);
VBox* staticview = new VBox(
_viewer,
new HBorder,
_toolpanel
);
panel->Propagate(false);
staticview->Propagate(false);
return new VBox(
panel,
new HBorder,
staticview
);
}
Interactor* IBEditor::Commands () {
MenuBar* commands = new MenuBar;
commands->Include(FileMenu());
commands->Include(EditMenu());
commands->Include(CompositionMenu());
commands->Include(FontMenu());
commands->Include(BrushMenu());
commands->Include(ColorMenu("FgColor", fgAttrib));
commands->Include(ColorMenu("BgColor", bgAttrib));
commands->Include(AlignMenu());
commands->Include(ViewMenu());
return commands;
}
Interactor* IBEditor::Tools () {
HBox* tools = new HBox;
Include(
new SelectTool(new ControlInfo("Select", KLBL_SELECT, CODE_SELECT)),
tools
);
Include(
new MoveTool(new ControlInfo("Move", KLBL_MOVE, CODE_MOVE)), tools
);
Include(
new StretchTool(new ControlInfo("Resize", KLBL_STRETCH, CODE_STRETCH)),
tools
);
Include(
new ExamineTool(new ControlInfo("Examine", KLBL_EXAMINE,CODE_EXAMINE)),
tools
);
Include(
new RelateTool(new ControlInfo("Relate", KLBL_RELATE,CODE_RELATE)),
tools
);
Include(
new ReshapeTool(new ControlInfo("Edit", KLBL_RESHAPE, CODE_RESHAPE)),
tools
);
Include(
new MagnifyTool(new ControlInfo("Magnify", KLBL_MAGNIFY, CODE_MAGNIFY)),
tools
);
Include(
new NarrowTool(new ControlInfo("Narrow", KLBL_NARROW,CODE_NARROW)),
tools
);
return tools;
}
static Graphic* ScreenBoundary () {
Coord x[32], y[32];
World* world = unidraw->GetWorld();
Coord xmax = world->Width();
Coord ymax = world->Height();
Coord screenWidth = xmax + round(2*inches);
Coord screenHeight = ymax + round(0.25*inches);
Coord sx0 = 0, sy0 = 0;
Coord sx1 = screenWidth;
Coord sy1 = screenHeight;
Coord dx = (sx1 - xmax) / 2;
Coord dy = (sy1 - ymax) / 2;
Coord fx0 = dx;
Coord fy0 = dy;
Coord fx1 = dx + xmax;
Coord fy1 = dy + ymax;
Coord sseamx = fx0 + xmax/2;
Coord sseamy = 0;
Coord fseamx = sseamx;
Coord fseamy = fy0;
x[0] = x[1] = x[2] = x[11] = x[12] = x[13] = sseamx;
y[0] = y[1] = y[2] = y[11] = y[12] = y[13] = sseamy;
x[3] = x[4] = x[5] = x[6] = sx1;
x[7] = x[8] = x[9] = x[10] = sx0;
y[3] = y[4] = sy0;
y[5] = y[6] = y[7] = y[8] = sy1;
y[9] = y[10] = sy0;
x[14] = x[15] = x[16] = x[29] = x[30] = x[31] = fseamx;
y[14] = y[15] = y[16] = y[29] = y[30] = y[31] = fseamy;
x[17] = x[18] = x[19] = x[20] = x[21] = x[22] = fx0;
x[23] = x[24] = x[25] = x[26] = x[27] = x[28] = fx1;
y[17] = y[18] = y[19] = fy0;
y[20] = y[21] = y[22] = y[23] = y[24] = y[25] = fy1;
y[26] = y[27] = y[28] = fy0;
return new F_ClosedBSpline(x, y, 32, stdgraphic);
}
void IBEditor::InitViewer () {
const int vw = round(VIEWER_WIDTH * inches);
const int vh = round(VIEWER_HEIGHT * inches);
GraphicView* view = (GraphicView*) _comp->Create(COMPONENT_VIEW);
_comp->Attach(view);
_viewer = new Viewer(this, view, new Page(ScreenBoundary()), nil, vw, vh);
view->Update();
}
void IBEditor::Include (Command* cmd, PulldownMenu* pdm) {
ControlInfo* ctrlInfo = cmd->GetControlInfo();
UControl* ctrl = new CommandControl(ctrlInfo);
_keymap->Register(ctrl);
if (pdm != nil) pdm->Include(ctrl);
cmd->SetEditor(this);
}
void IBEditor::Include (Tool* tool, Box* box) {
ControlInfo* ctrlInfo = tool->GetControlInfo();
UControl* ctrl = new HPanelControl(ctrlInfo, _curCtrl);
_keymap->Register(ctrl);
box->Insert(ctrl);
}
PulldownMenu* IBEditor::FontMenu () {
Catalog* catalog = unidraw->GetCatalog();
PulldownMenu* pdm = MakePulldown("Font");
int i = 1;
PSFont* font = catalog->ReadFont(fontAttrib, i);
while (font != nil) {
TextGraphic* text = new TextGraphic(
font->GetPrintFontAndSize(), stdgraphic
);
text->SetFont(font);
Include(new FontCmd(new ControlInfo(new TextComp(text)), font), pdm);
font = catalog->ReadFont(fontAttrib, ++i);
}
return pdm;
}
static float MENU_WIDTH = 1; /* in cm */
static float MENU_HEIGHT = 0.5;
PulldownMenu* IBEditor::BrushMenu () {
Catalog* catalog = unidraw->GetCatalog();
PulldownMenu* pdm = MakePulldown("Border");
int i = 1;
PSBrush* br = catalog->ReadBrush(brAttrib, i);
while (br != nil) {
ControlInfo* ctrlInfo;
if (br->None()) {
ctrlInfo = new ControlInfo("None");
} else {
Line* line = new Line(0, 0, round(MENU_WIDTH*cm), 0, stdgraphic);
line->SetBrush(br);
ctrlInfo = new ControlInfo(new LineComp(line));
}
Include(new BrushCmd(ctrlInfo, br), pdm);
br = catalog->ReadBrush(brAttrib, ++i);
}
return pdm;
}
PulldownMenu* IBEditor::ColorMenu (const char* name, const char* attrib){
Catalog* catalog = unidraw->GetCatalog();
PulldownMenu* pdm = MakePulldown(name);
int i = 1;
PSColor* color = catalog->ReadColor(attrib, i);
while (color != nil) {
ControlInfo* ctrlInfo;
Coord w = round(MENU_WIDTH*cm);
Coord h = round(MENU_HEIGHT*cm);
SF_Rect* sfr = new SF_Rect(0, 0, w, h, stdgraphic);
sfr->SetColors(color, color);
ctrlInfo = new ControlInfo(new RectComp(sfr), color->GetName());
if (strcmp(attrib, fgAttrib) == 0) {
Include(new ColorCmd(ctrlInfo, color, nil), pdm);
} else {
Include(new ColorCmd(ctrlInfo, nil, color), pdm);
}
color = catalog->ReadColor(attrib, ++i);
}
return pdm;
}
PulldownMenu* IBEditor::AlignMenu () {
PulldownMenu* pdm = MakePulldown("Align");
Include(
new AlignCmd(
new ControlInfo("Left", KLBL_ALGNLEFT, CODE_ALGNLEFT),
Left, Left
), pdm
);
Include(
new AlignCmd(
new ControlInfo("Right", KLBL_ALGNRIGHT, CODE_ALGNRIGHT),
Right, Right
), pdm
);
Include(
new AlignCmd(
new ControlInfo("Bottom", KLBL_ALGNBOT, CODE_ALGNBOT),
Bottom, Bottom
), pdm
);
Include(
new AlignCmd(
new ControlInfo("Top", KLBL_ALGNTOP, CODE_ALGNTOP), Top, Top
), pdm
);
Include(
new AlignCmd(
new ControlInfo("Vert Center", KLBL_ALGNVCTR, CODE_ALGNVCTR),
VertCenter, VertCenter
), pdm
);
Include(
new AlignCmd(
new ControlInfo("Horiz Center", KLBL_ALGNHCTR, CODE_ALGNHCTR),
HorizCenter, HorizCenter
), pdm
);
Include(
new AlignCmd(
new ControlInfo("Center", KLBL_ALGNCTR, CODE_ALGNCTR),
Center, Center
), pdm
);
Include(
new AlignCmd(
new ControlInfo("TopLeft", " ", ""),
TopLeft, TopLeft
), pdm
);
Include(
new AlignCmd(
new ControlInfo("CenterLeft", " ", ""),
CenterLeft, CenterLeft
), pdm
);
Include(
new AlignCmd(
new ControlInfo("BottomLeft", " ", ""),
BottomLeft, BottomLeft
), pdm
);
Include(
new AlignCmd(
new ControlInfo("TopCenter", " ", ""),
TopCenter, TopCenter
), pdm
);
Include(
new AlignCmd(
new ControlInfo("BottomCenter", " ", ""),
BottomCenter, BottomCenter
), pdm
);
Include(
new AlignCmd(
new ControlInfo("TopRight", " ", ""),
TopRight, TopRight
), pdm
);
Include(
new AlignCmd(
new ControlInfo("CenterRight", " ", ""),
CenterRight, CenterRight
), pdm
);
Include(
new AlignCmd(
new ControlInfo("BottomRight", " ", ""),
BottomRight, BottomRight
), pdm
);
return pdm;
}
PulldownMenu* IBEditor::FileMenu () {
PulldownMenu* pdm = MakePulldown("File");
Include(
new AboutCmd(new ControlInfo("About ibuild", KLBL_ABOUT, CODE_ABOUT))
);
Include(
new TabCmd(new ControlInfo("Tab", KLBL_TAB, CODE_TAB))
);
SceneComp* scomp = new SceneComp;
scomp->GetClassNameVar()->SetName("[root]");
scomp->GetClassNameVar()->SetBaseClass("[root]");
Include(
new NewCompCmd(
new ControlInfo("New", KLBL_NEWCOMP, CODE_NEWCOMP), scomp
),
pdm
);
Include(
new RevertCmd(new ControlInfo("Revert", KLBL_REVERT, CODE_REVERT)),
pdm
);
InsertSeparator(pdm);
Include(
new ViewCompCmd(
new ControlInfo("Open...", KLBL_VIEWCOMP, CODE_VIEWCOMP)
), pdm
);
Include(
new SaveCompCmd(new ControlInfo("Save", KLBL_SAVECOMP, CODE_SAVECOMP)),
pdm
);
Include(
new SaveCompAsCmd(
new ControlInfo("Save As...", KLBL_SAVECOMPAS, CODE_SAVECOMPAS)
), pdm
);
Include(
new CodeCmd(
new ControlInfo("Generate...", KLBL_PRINT, CODE_PRINT)
), pdm
);
Include(
new NewToolCmd(
new ControlInfo("Create Tool...", KLBL_NEWTOOL, CODE_NEWTOOL)
), pdm
);
Include(
new ToolsCmd(
new ControlInfo("Tools...", KLBL_TOOLS, CODE_TOOLS)
), pdm
);
Include(
new ExeCmd(
new ControlInfo("Execute...", KLBL_EXE, CODE_EXE)
), pdm
);
InsertSeparator(pdm);
Include(
new QuitCmd(
new ControlInfo("Quit", KLBL_QUIT, CODE_QUIT)
), pdm
);
return pdm;
}
PulldownMenu* IBEditor::EditMenu () {
PulldownMenu* pdm = MakePulldown("Edit");
Include(
new UndoCmd(
new ControlInfo("Undo", KLBL_UNDO, CODE_UNDO)
), pdm
);
Include(
new RedoCmd(
new ControlInfo("Redo", KLBL_REDO, CODE_REDO)
), pdm
);
InsertSeparator(pdm);
Include(
new CutCmd(
new ControlInfo("Cut", KLBL_CUT, CODE_CUT)
), pdm
);
Include(
new CopyCmd(
new ControlInfo("Copy", KLBL_COPY, CODE_COPY)
), pdm
);
Include(
new PasteCmd(
new ControlInfo("Paste", KLBL_PASTE,CODE_PASTE)
), pdm
);
Include(
new DupCmd(
new ControlInfo("Duplicate", KLBL_DUP, CODE_DUP)
), pdm
);
Include(
new DeleteCmd(
new ControlInfo("Delete", KLBL_DEL, CODE_DEL)
), pdm
);
Include(
new SlctAllCmd(
new ControlInfo("Select All", KLBL_SLCTALL, CODE_SLCTALL)
), pdm
);
InsertSeparator(pdm);
Include(
new GlueVisibilityCmd(
new ControlInfo("Show Glue", KLBL_SHOWGLUE, CODE_SHOWGLUE), true
), pdm
);
Include(
new GlueVisibilityCmd(
new ControlInfo("Hide Glue", KLBL_HIDEGLUE, CODE_HIDEGLUE), false
), pdm
);
Include(
new PlaceCmd(
new ControlInfo(
"Natural Size", KLBL_NATURALSIZE, CODE_NATURALSIZE
), nil
), pdm
);
return pdm;
}
PulldownMenu* IBEditor::CompositionMenu () {
PulldownMenu* pdm = MakePulldown("Composition");
Include(
new UngroupCmd(
new ControlInfo("Dissolve Scene", KLBL_UNGROUP, CODE_UNGROUP)
), pdm
);
InsertSeparator(pdm);
Include(
new SceneCmd(
new ControlInfo("HBox", KLBL_HBOX, CODE_HBOX), new HBoxComp
), pdm
);
Include(
new SceneCmd(
new ControlInfo("VBox", KLBL_VBOX, CODE_VBOX), new VBoxComp
), pdm
);
Include(
new SceneCmd(
new ControlInfo("Deck", KLBL_DECK, CODE_DECK), new DeckComp
), pdm
);
FrameGraphic* framegr = new FrameGraphic(nil, stdgraphic);
FrameComp* framecomp = new FrameComp(framegr);
Include(
new MonoSceneCmd(
new ControlInfo("Frame", KLBL_FRAME, CODE_FRAME), framecomp
), pdm
);
ShadowFrameGraphic* shadowgr = new ShadowFrameGraphic(nil, stdgraphic);
FrameComp* shadowframe = new FrameComp(shadowgr);
Include(
new MonoSceneCmd(
new ControlInfo(
"ShadowFrame", KLBL_SHADOWFRAME, CODE_SHADOWFRAME), shadowframe
), pdm
);
ViewportGraphic* viewportgr = new ViewportGraphic(nil, stdgraphic);
ViewportComp* viewportcomp = new ViewportComp(viewportgr);
Include(
new MonoSceneCmd(
new ControlInfo("Viewport", KLBL_VIEWPORT, CODE_VIEWPORT),
viewportcomp
), pdm
);
Include(
new SceneCmd(
new ControlInfo("MenuBar", KLBL_MBCMD, CODE_MBCMD),new MenuBarComp
), pdm
);
Include(
new SceneCmd(
new ControlInfo("Shaper", KLBL_SHAPER, CODE_SHAPER),new ShaperComp
), pdm
);
/*
Include(
new SceneCmd(
new ControlInfo("Popup Menu", KLBL_PUCMD, CODE_PUCMD),
new PopupMenuComp
), pdm
);
InsertSeparator(pdm);
*/
InsertSeparator(pdm);
MonoSceneClass* monoSceneClass = new MonoSceneClass(new IBGraphic);
Include(
new MonoSceneCmd(
new ControlInfo(
"MonoScene Subclass", KLBL_MSCLASS, CODE_MSCLASS
), monoSceneClass
), pdm
);
DialogClass* dialogClass = new DialogClass(new IBGraphic);
Include(
new MonoSceneCmd(
new ControlInfo(
"Dialog Subclass", KLBL_DIALOGCLASS, CODE_DIALOGCLASS
), dialogClass
), pdm
);
EditorComp* edcomp = new EditorComp(new IBGraphic);
Include(
new MonoSceneCmd(
new ControlInfo(
"Editor Subclass", KLBL_EDCOMP, CODE_EDCOMP
), edcomp
), pdm
);
InsertSeparator(pdm);
Include(
new ReorderCmd(
new ControlInfo("Reorder", KLBL_REORDER, CODE_REORDER)
), pdm
);
Include(
new FrontCmd(
new ControlInfo("Raise", KLBL_FRONT, CODE_FRONT)
), pdm
);
Include(
new BackCmd(
new ControlInfo("Lower", KLBL_BACK, CODE_BACK)
), pdm
);
return pdm;
}
PulldownMenu* IBEditor::ViewMenu () {
PulldownMenu* pdm = MakePulldown("View");
Include(
new NewViewCmd(
new ControlInfo("New View", KLBL_NEWVIEW, CODE_NEWVIEW)
), pdm
);
Include(
new CloseEditorCmd(
new ControlInfo("Close View", KLBL_CLOSEEDITOR, CODE_CLOSEEDITOR)
), pdm
);
InsertSeparator(pdm);
Include(
new NavigateCmd(
new ControlInfo("View Parent", KLBL_VIEWPARENT, CODE_VIEWPARENT)
), pdm
);
Include(
new NavigateCmd(
new ControlInfo("View Root", KLBL_VIEWROOT, CODE_VIEWROOT), true
), pdm
);
InsertSeparator(pdm);
Include(
new NormSizeCmd(
new ControlInfo("Normal Size", KLBL_NORMSIZE, CODE_NORMSIZE)
), pdm
);
Include(
new RedToFitCmd(
new ControlInfo("Reduce to Fit", KLBL_REDTOFIT, CODE_REDTOFIT)
), pdm
);
Include(
new CenterCmd(
new ControlInfo("Center Screen", KLBL_CENTER, CODE_CENTER)
), pdm
);
return pdm;
}