VisualADE 1.0c
Description File Examples
//---------------------------------------------------------------------------- // Demo1 // // A traditional "hello world" example. //----------------------------------------------------------------------------
Application Demo1 { Window { Panel { Translation { create AddPushButton(Hello World) "Hello World" Quit } } } }
//---------------------------------------------------------------------------- // Demo2 // // A basic window with a menubar. Messages, generated by the user interacting // with the window, are handled by "Translation" objects. All objects are sent // a "create" message when created. //---------------------------------------------------------------------------- MenuBar Demo2MenuBar { Definition { Files { Quit quit } Help { "On Help" postMsgBox(This is a sample help message.); } } }
Application Demo2 { Window Demo2Window { Demo2MenuBar Panel { Translation { create Demo2Window::setTitle(Visual ADE- Demo2); Create AddPushButton(Hello World / Goodbye World) "Hello World / Goodbye World" Quit } } } }
//---------------------------------------------------------------------------- // Demo3 // // A basic window which contains a number of widgets and a menubar. Many widgets // generate a message when the user interacts with them. The messages usually // are the same as their visible label. //---------------------------------------------------------------------------- Panel MyPanel { Panel { Translation { create catchErrors(error); create setLayout(Current, Vertical, 3) create addLabel(Label) create addLabelIcon(terminal) create AddPushButton(Push Button); create addPushIcon(terminal) create AddToggleButton(Toggle Button); create AddToggleIcon(terminal); create AddOptionMenu(&MyOptionMenu) } } Panel { Translation { create addSeparator() } } Panel { Translation { create setLayout(Current, Vertical, 3) create AddPushButton(MsgBox); MsgBox postMsgBox(Sample MsgBox) create AddPushButton(TextEntry); TextEntry postTextEntryBox(Sample TextEntryBox) create AddPushButton(SelBox); SelBox BlockingExecInShell(ls *.dsc > tmp), postSelectionBox(tmp); } } } Menu MyOptionMenu { Definition { Option1 { Option1 PostMsgBox(The option "%1" is NOT supported, InfoMsg); ________ ________ Quit quit } Help { "On Help" postMsgBox(There is no help here, InfoMsg); "On Version" postMsgBox(Version 0.10, InfoMsg); } } } MenuBar MyMenuBar { Definition { Files { About... about ________ ________ Quit quit } Help { "On Help" postMsgBox(This is a panel of just some of the widgets available with VisualADE, InfoMsg); "On Version" postMsgBox(Version 1.00, InfoMsg); } } } Window MyMainWindow { Translation { create setTitle(Panel Widgets Demo); } MyPanel MyMenuBar } Application Demo3 { MyMainWindow }
//---------------------------------------------------------------------------- // Demo4 // // This creates a window with a 2D vector graphics editor, a birds-eye view // (locator) and magnifier (scope), and 2 other views of the graphics in the // main editor. //----------------------------------------------------------------------------
TreeGraph MyTree { Translation TreeXLate { Create loadGraphicsFile(grdata1), updateViewToIncludeAllGraphics(); loadfile postTextEntryBox("Enter name of graphics file to load:", grdata, loadit); loadit deleteContents(), loadGraphicsFile(%1), updateViewToIncludeAllGraphics(), MyEditor::draw(); savefile postTextEntryBox("Enter name of file to save graphics to:", grdata, saveit); saveit saveGraphicsFile(%1); } }
Translation MyPanelXLate { create AddPushButton(Pink); // comments here create AddPushButton(Orange); create AddToggleButton(Black & White); Pink MYEDITOR::setbackgroundcolor(pink); Orange MYEDITOR::setbackgroundcolor(orange); "Black & White" MYEDITOR::setbackgroundcolor(white); "~Black & White" MYEDITOR::setbackgroundcolor(black); create AddToggleButton(2 More Views); "2 More Views" MyView1::hide(False), MyView2::hide(False); "~2 More Views" MyView1::hide(True), MyView2::hide(True);
create AddToggleButton(Locator & Scope); "~Locator & Scope" MyLocator::hide(True), MyScope::hide(True); "Locator & Scope" MyLocator::hide(False), MyScope::hide(False);
create AddPushButton(Zoom in Area); "Zoom in Area" MyEditor::centerCursor(), MyEditor::zoomThruArea(In, start);
create AddPushButton(Import Rectangle); "Import Rectangle" MyTree::addGraphics(Writemode Replace) "Import Rectangle" MyTree::addGraphics(Rectangle 0 0 1000 1000) "Import Rectangle" MyEditor::centerCursor() "Import Rectangle" MyEditor::centerLast() "Import Rectangle" MyEditor::drawLast() "Import Rectangle" MyEditor::simpleDrag(start)
create AddPushButton(Import Graphics); "Import Graphics" MyTree::loadGraphicsFile(grdatafile) "Import Graphics" MyEditor::centerCursor() "Import Graphics" MyEditor::centerLast() "Import Graphics" MyEditor::drawLast() "Import Graphics" MyEditor::simpleDrag(start)
doSomething printf("Timer\n"); } Panel MyPanel { MyPanelXLate } Translation MyTranslation { <Defaults> setBackgroundColor(black); <Defaults> jumpPan <Defaults> selectArea(); <Defaults> deselectAll(); <Defaults> cumulativeSelect(); <Defaults> zoomAroundCursor(); <Defaults> zoomThruArea(); <Defaults> treeNodeDrag();
<Btn1Click> simpleDrag(end); <motion> simpleDrag(move);
<Defaults> iCreateRect();
<btn3Drag> MyPanel::sendTimerMsg(readtimer, Disable, readRouter2), smoothPan(); <btn3Up> MyPanel::sendTimerMsg(readtimer, Enable, readRouter2); <Motion> zoomThruArea(In, Move); <Btn1Click> zoomThruArea(In, End); Create setBackgroundColor(gray); Create setGraph(MyTree); ^<key>g setBackgroundColor(gray); Ctrl<key>w setBackgroundColor(white); <WinMap> hideTextIfTooSmall(); Ctrl<key>m printAllMessages(); ^<key>d dumpTranslations() <key>o onePointPan() <key>r MyTree::placeTopDown(); <key>n showNodes(Toggle), draw ^<key>s MyTree::saveGraphicsFile(data2) Ctrl<key>n MyScope::locatorToolOptions(attachBoxToMouse, Toggle) Ctrl<key>a MyScope::locatorToolOptions(locatorHasBox, Toggle) Ctrl<key>e MyScope::locatorToolOptions(MaintainMagnification, Toggle) ^<key>g MyLocator::locatorToolOptions(anotherGraphicsView, Toggle) ^<key>h MyLocator::dumpTranslations() ^<key>i MyScope::dumpTranslations() <Defaults> expandCursorFootprint();
setbackcolor blockingExecInShell(cut -c14- /usr/lib/X11/rgb.txt | sed 's/ //g' > rgb), postSelectionBox(rgb, Select Color, setcolor) setcolor setBackgroundColor(%1); }
Scope MyScope { Translation { Create setSourceEditor(MyEditor); } }
Editor MyEditor { MyTranslation }
Locator MyLocator { Translation { Create setSourceEditor(MyEditor); } }
View MyView1 { Translation { Create setSourceEditor(MyEditor); } } View MyView2 { Translation { Create setSourceEditor(MyEditor); } }
Layout MyLayout { # col(MyEditor) # col(MyEditor, row(MyLocator, MyScope)) # col(MyEditor, row(MyLocator, MyScope), row(View(MyEditor), View(MyEditor))) # col(row(MyEditor, MyPanel), row(MyLocator, MyScope), row(View(MyEditor), View(MyEditor))) row(col(MyEditor, row(MyLocator, MyScope), row(MyView1, MyView2)), MyPanel) # row(col(MyEditor, row(MyLocator, MyScope), row(View(MyEditor), View(MyEditor))), MyPanel) # col(MyEditor, row(MyLocator, Scope(MyEditor)), row(View(MyEditor), View(MyEditor))) # col(MyEditor, row(locator(MyEditor), scope(MyEditor)), row(View(MyEditor), View(MyEditor))) }
MenuBar MyMenuBar { Definition { Files { Open MyTree::sendMsg(loadfile); Print... About... about ________ Save MyTree::saveGraphicsFile(data2); "Save As" MyTree::sendMsg(savefile); !Close !New ________ Quit quitWithChangesVerified } Edit { !Copy !Paste !Cut !Delete } Options { "Set Background Color..." MyEditor::sendMsg(setbackcolor); "Set Editor Size Small" MyEditor::setSize(300, 300) "Set Editor Size Medium" MyEditor::setSize(500, 500) "Set Editor Size Large" MyEditor::setSize(800, 800) } Help { "On Help" postMsgBox(Click middle mouse button to zoom in.\nClick right button to zoom out.\nMove mouse with right button down to pan., InfoMsg); "On Version" postMsgBox(Version 1.00, InfoMsg); } } }
Translation MyWindowXlate { create setTitle(Sample VisualADE Rectangle Editor); }
Window MyMainWindow { MyWindowXlate MyLayout MyMenuBar } Application Demo4 { MyMainWindow }
//---------------------------------------------------------------------------- // Demo5 // // This creates a window that displays a C++ class hierarchy (from a file that // was previously generated from source code) and allows the user to edit or // print the files that the displayed classes were defined in. //---------------------------------------------------------------------------- TreeGraph MyTree { Translation { create loadDirGraph(classes), assignGraphicsToGraph1(), placeLeftToRight(), updateViewToIncludeAllGraphics(); } }
Editor MyEditor { Translation { create hideTextIfTooSmall(); Create setBackgroundColor(gray); create setGraph(MyTree); create centerCursor(); create zoomAroundCursor(In); create zoomAroundCursor(In); create zoomAroundCursor(In); create zoomAroundCursor(In);
<Defaults> setBackgroundColor(black); <Defaults> jumpPan <Defaults> selectArea(); <Defaults> deselectAll(); <Defaults> cumulativeSelect(); <Defaults> zoomAroundCursor(); <Defaults> zoomThruArea(); <Defaults> smoothPan(); <Defaults> treeNodeDrag(); <Defaults> iCreateRect();
<key>o onePointPan() <key>r MyTree::placeTopDown(); <key>n showNodes(Toggle), draw <Defaults> expandCursorFootprint(); } }
Window otherWin { Panel { Translation { create otherwin::settitle(C++ Browser) create addLabel(Software Farm) create addLabelIcon(swfarm.lgo) create setCursorAppearance(watch), addEditor(&MyEditor), setCursorAppearance(); create addOkCancelHelp(1,0,0,1); Help postMsgBox(Run the 'makehier' script on your\nC++ code to browse your own classes.); } } }
Panel Panel2A { Translation { create addLayout(lay2A1, Current, LabelValue) #, 1, CenterJustified) create addTextField(tlbl, contents here, msgname, Input:,,1) create addTextField(tlbl, contents here, msgname, Input:,,1) create addTextField(tlbl, contents here, msgname, Input:,,1) create addTextField(tlbl, contents here, msgname, Input:,,1) msgname printf(textfield sent: %1\n); create addLabel(techlbl, Technology:, None) create addLabel(manlbl, Manufactuer:, None) create AddOptionMenu(menu2, &TechOptions,, anOption:) create addLabel(otherlbl, Other:, None) create blockingExecInShell(ls *.dsc > tmplist), addScrolledList(tmplist, 4, scrmsg, Description Files:); create blockingExecInShell(ls *.dsc > tmplist), addScrolledList(tmplist, 4, scrmsg, Description Files:); create blockingExecInShell(ls *.dsc > tmplist), addScrolledList(tmplist, 4, scrmsg, Description Files:); } } Panel thePanel { Panel toppanel { Translation { create addLabel(Software Farm) create setcolor(springgreen4) create setbackgroundcolor(linen) create addLabelIcon(swfarm.lgo) create setbackgroundcolor(Software Farm, black) create setcolor(Software Farm, white) create setbackgroundcolor(swfarm.lgo, black) create setbackgroundcolor(black) create addLayout(lay21, Current, Vertical, 1, CenterJustified) create addSeparator() } } Panel Panel2 { Translation { create addScrollPanel(&Panel2A, , 19); create addSeparator() create AddPushButton(post browser); "post browser" postWindow(&otherWin); create AddPushButton("Sample Push Button #1"); create MyMainWindow::setsize(500, 300) create AddPushButton("Sample Push Button #2");
create addSeparator() create addLayout(lay67, Current, Vertical, 3) create AddOptionMenu(menu2, &TechOptions) } } } Menu TechOptions { Definition { Option1 { Option1a PostMsgBox(The option "%1" is NOT supported, InfoMsg); ________ ________ Option2a } things { kind { kind1 kind2 } option { option1 } } Help { !"On Help" postMsgBox(There is no help here, InfoMsg); "On Version" postMsgBox(Version 1.00, InfoMsg); } } }
MenuBar MyMenuBar { Translation { Help printf(help\n), postMsgBox(No help for help); } Definition { Files { Print... Demo5::sendMsg(printmenu); Edit... Demo5::sendMsg(editmenu); About... about ________ ________ Quit quitWithChangesVerified() } !View { } Options { __________ togglebutton ~opt2 printf("opt2 is off\n"); opt2 printf("opt2 is on\n"); } Help { "On Help" postMsgBox(There is no help here, InfoMsg); "On Version" postMsgBox(Version 0.10, InfoMsg); } } } Window MyMainWindow { Translation { create MyMainWindow::setTitle(VisualADE Demo: Sample Dialog Box with C++ Browser Option);
winClose postMsgBox(User Selected Close Menu\n\n *** Do You REALLY want to Quit? ***), quit(); } thePanel MyMenuBar } Application Demo5 { MyMainWindow Translation { create catchErrors(error); error postMsgBox(" *** Error Detected ***\n\n Class: %e1\n Creator: %e2\n Handler: %e3\n Error: %e4\n Severity: %e5\n Description: %e6", ErrorMsg);
printmenu blockingExecInShell(ls *.dsc > tmplist), postMultiSelectionBox(tmplist, Select File(s) to Print, print) print printf(printing %1\n);
editmenu blockingExecInShell(ls *.dsc > tmplist), postMultiSelectionBox(tmplist, Select File(s) to Edit, edit) edit exec(xterm -T 'Config File' -e vi %1); } }
//---------------------------------------------------------------------------- // Demo6 // // This creates a window that can (1) pop up another window that displays a // C++ class hierarchy (from a file that was previously generated from source // code), (2) pop up another window that allows text editing, and (3) // demonstrates the loading and deleting of visualADE description files from // within a description file. //----------------------------------------------------------------------------
TreeGraph MyTree { Translation { create loadDirGraph(classes), assignGraphicsToGraph1(), placeLeftToRight(), updateViewToIncludeAllGraphics(); } }
Editor MyEditor { Translation { create hideTextIfTooSmall(); Create setBackgroundColor(gray); create setGraph(MyTree); create centerCursor(); create zoomAroundCursor(In); create zoomAroundCursor(In); create zoomAroundCursor(In); create zoomAroundCursor(In);
<Defaults> setBackgroundColor(black); <Defaults> jumpPan <Defaults> selectArea(); <Defaults> deselectAll(); <Defaults> cumulativeSelect(); <Defaults> zoomAroundCursor(); <Defaults> zoomThruArea(); <Defaults> smoothPan(); <Defaults> treeNodeDrag(); <Defaults> iCreateRect();
<key>o onePointPan() <key>r MyTree::placeTopDown(); <key>n showNodes(Toggle), draw <Defaults> expandCursorFootprint(); } }
Window otherWin { Panel { Translation { create otherwin::settitle(C++ Browser) create addLabel(Software Farm) create addLabelIcon(swfarm.lgo) create setCursorAppearance(watch), addEditor(&MyEditor), setCursorAppearance(); create addOkCancelHelp(1,0,0,1); Help postMsgBox(Run the 'makehier' script on your\nC++ code to browse your own classes.); } } }
MenuBar MyTextMenuBar { Definition { Files { Open textWinPanel::sendMsg(loadFile); Save textWinPanel::sendMsg(saveFile); "Save As" textWinPanel::sendMsg(saveAsFile); ________ ________ Quit quitWithChangesVerified() } } } Window textWin { MyTextMenuBar Panel textWinPanel { Translation { create textwin::settitle(Text Editor) create copyVariable(FILE::m1.dsc, FILE::m1t.dsc) create copyVariable(m1.dsc, %5)
create copyVariable(FILE::m1.dsc, %4) create setCursorAppearance(watch), addTextEditor(MyTextEd, %4, apply,,30, 20), setCursorAppearance(); create addOkCancelHelp(1,1,1,1); #------ Save As ---------------- saveAsFile postTextEntryBox("Enter name of file to save text to:", defaultfilename, saveit); saveit copyVariable(%1, %2) saveit getValue(MyTextEd) saveit copyVariable(%1, FILE::%2) #------ Save ---------------- saveFile getValue(MyTextEd) saveFile copyVariable(%1, FILE::%5) #------ Open/Load ---------------- loadFile postTextEntryBox("Enter name of text file to load:", filename, loadit); loadit copyVariable(%1, %5) loadit copyVariable(FILE::%5, %4) loadit setValue(MyTextEd, %4) #------ Apply ---------------- apply copyVariable(%1, FILE::%5) } } }
Panel Panel2A { Translation xPanel2A { create addLayout(lay2A1, Current, LabelValue) #, 1, CenterJustified) create addTextField(tlbl, contents here, msgname, Input:,,1) create addTextField(tlbl, contents here, msgname, Input:,,1) create addTextField(tlbl, contents here, msgname, Input:,,1) create addTextField(tlbl3, contents here 3, msgname, Input:,,1) delete delete(tlbl3); msgname printf(textfield sent: %1\n); create addLabel(techlbl, Technology:, None) create addLabel(manlbl, Manufactuer:, None) create AddOptionMenu(optmenu1, &TechOptions,, anOption:) create addLabel(otherlbl, Other:, None) create blockingExecInShell(ls *.dsc > tmplist), addScrolledList(tmplist, 4, scrmsg, Description Files:); create blockingExecInShell(ls *.dsc > tmplist), addScrolledList(tmplist, 4, scrmsg, Description Files:); create blockingExecInShell(ls *.dsc > tmplist), addScrolledList(tmplist, 4, scrmsg, Description Files:); } } Panel thePanel { Panel toppanel { Translation { create addLabel(Software Farm) create setcolor(springgreen4) create setbackgroundcolor(linen) create addLabelIcon(swfarm.lgo) create setbackgroundcolor(Software Farm, black) create setcolor(Software Farm, white) create setbackgroundcolor(swfarm.lgo, black) create setbackgroundcolor(black) create addLayout(lay21, Current, Vertical, 1, CenterJustified) create addSeparator() } } Panel Panel2 { Translation { create addScrollPanel(&Panel2A, , 19); create addSeparator() create AddPushButton(post browser); "post browser" postWindow(&otherWin); create AddPushButton(post text editor); "post text editor" postWindow(&textWin); create AddPushButton(,"Delete entity in Scroll Panel", del); del panel2A::sendMsg(delete); create MyMainWindow::setsize(500, 300) create AddPushButton(,"Delete all entity in Scroll Panel", delall); delall panel2A::deleteContents create AddPushButton(,"Create all entity in Scroll Panel", creall); creall panel2A::hide(panel2A, True) creall panel2A::sendMsg(create) creall panel2A::hide(panel2A, False) create AddPushButton("Run Cmd File"); "Run Cmd File" runCommandFile(testfile);
create AddPushButton("Delete Translation"); "Delete Translation" panel2A::deleteContents "Delete Translation" deleteDescription(xPanel2A)
create AddPushButton("Load Translation"); "Load Translation" loadDescriptionFile(panel.dsc) "Load Translation" Panel2A::appendTranslation(xPanel2A) "Load Translation" Panel2A::hide(Panel2A, True) "Load Translation" Panel2A::sendMsg(create) "Load Translation" Panel2A::hide(Panel2A, False)
create AddPushButton("Change Option Menu"); "Change Option Menu" Panel2A::delete(optmenu1); "Change Option Menu" deleteDescription(TechOptions); "Change Option Menu" loadDescriptionFile(optmenu.dsc) "Change Option Menu" Panel2A::AddOptionMenu(optmenu1, &TechOptions,, anOption:)
create AddPushButton("Sample Push Button #2");
create addSeparator() create addLayout(lay67, Current, Vertical, 3) create AddOptionMenu(menu2, &TechOptions) } } } Menu TechOptions { Definition { Option1 { Option1a PostMsgBox(The option "%1" is NOT supported, InfoMsg); ________ ________ Option2a } things { kind { kind1 kind2 } option { option1 } } Help { !"On Help" postMsgBox(There is no help here, InfoMsg); "On Version" postMsgBox(Version 1.00, InfoMsg); } } }
MenuBar MyMenuBar { Translation { Help printf(help\n), postMsgBox(No help for help); } Definition { Files { Print... Demo6::sendMsg(printmenu); About... about ________ ________ Quit quitWithChangesVerified() } !View { } Options { __________ togglebutton ~opt2 printf("opt2 is off\n"); opt2 printf("opt2 is on\n"); } Help { "On Help" postMsgBox(There is no help here, InfoMsg); "On Version" postMsgBox(Version 0.10, InfoMsg); } } } Window MyMainWindow { Translation { create MyMainWindow::setTitle(VisualADE Demo: Sample Dialog Box with C++ Browser Option);
winClose postMsgBox(User Selected Close Menu\n\n *** Do You REALLY want to Quit? ***), quit(); } thePanel MyMenuBar } Application Demo6 { MyMainWindow Translation { create catchErrors(error); error postMsgBox(" *** Error Detected ***\n\n Class: %e1\n Creator: %e2\n Handler: %e3\n Error: %e4\n Severity: %e5\n Description: %e6", ErrorMsg);
printmenu blockingExecInShell(ls *.dsc > tmplist), postMultiSelectionBox(tmplist, Select File(s) to Print, print) print printf(printing %1\n); } }