neingeist
/
arduinisten
Archived
1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

654 lines
18 KiB
Plaintext

#usage "<b>Example: Dialogs</b>\n"
"<p>"
"<author>Author: support@cadsoft.de</author>"
// THIS PROGRAM IS PROVIDED AS IS AND WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED
// Revision 1 : Path for bitmap corrected 2005.12.21 support@cadsoft.de
string cmd = "";
int Value = 42;
int Wert = 7;
int Val = 0;
string st = "";
int Result = 0;
string msg = "";
string Colors[] = { "red"
, "green", "blue", "pink"
, "yellow", "cyan", "magenta"
, "brown", "white", "black"
, "gray", "orange"
};
int Selected = 2; // initially selects "blue"
string Text = "example text";
int Lines = 0;
// Checkboxes in Dialog
int mirror = 0;
int rotate = 1;
int flip = 0;
int black = 1;
int swap = 1;
int solid = 0;
int scaled = 0;
int align = 0;
//use dlgRadioButton only in dlgGroup!
Result = dlgDialog("EAGLE Version 4 / ULP Demonstration") {
dlgHBoxLayout {
dlgStretch(0);
dlgGroup("Use RadioButton only in dlgGroup!") {
dlgStretch(0);
dlgGridLayout {
dlgCell(1, 1) dlgRadioButton("&Top", align);
dlgCell(2, 0) dlgRadioButton("&Left ", align);
dlgCell(2, 1) dlgRadioButton("&Center", align);
dlgCell(2, 2) dlgRadioButton("&Right ", align);
dlgCell(3, 1) dlgRadioButton("&Bottom", align);
// 30 pixels fixed distance
dlgCell(1, 6) { dlgSpacing(30); dlgCheckBox("R&otate", rotate); };
dlgCell(2, 6) { dlgSpacing(30); dlgCheckBox("&Mirror", mirror); };
dlgCell(3, 6) { dlgSpacing(30); dlgCheckBox("&Flip", flip); };
}
}
dlgStretch(0);
dlgVBoxLayout {
dlgHBoxLayout {
dlgSpacing(20);
dlgStretch(0);
dlgPushButton("+OK") dlgAccept();
dlgStretch(1);
}
dlgHBoxLayout {
dlgSpacing(20);
dlgStretch(0);
dlgPushButton("-ESC") dlgReject();
dlgStretch(1);
}
}
dlgStretch(1);
}
dlgStretch(1);
};
if (Result == 0) exit (0);
// a complex menu
// default is VBoxLayout
Text += "\nextend example text with Text+=...";
align = 0;
Result = dlgDialog("Version 4 - ULP test"){
string fbmp;
sprintf(fbmp, "<img src='%seagle.bmp'>", filedir(argv[0]) ); // make absolute path for bitmap file 2005.12.21 alf@cadsoft.de
dlgStretch(0); // no dynamic distance on top
dlgHBoxLayout {
dlgStretch(0); // no dynamic distance on left border
dlgLabel(fbmp); // display a BMP file
dlgStretch(0); // no dynamic distance to next object
dlgGroup("ULP-Test Edit") { // start a group
dlgHBoxLayout dlgSpacing(600); // make 600 pixel spacing
dlgHBoxLayout { // horizontal direction in horizontal direction
dlgVBoxLayout dlgSpacing(300); // a vertical Box 300 pixels high
dlgTextEdit(Text); // editor window 600 x 300 pixels
}
}
dlgStretch(1); // dynamic distance to the right border
}
dlgHBoxLayout {
dlgStretch(0); // no dynamic distance allowed
dlgGroup("ULP-Test Radio") { // start a frame for a group
dlgHBoxLayout dlgSpacing(100); // a horizontle box min. 100 pixels wide
// Minimum is 80 pixels (by Windows/Microsoft)
// is the displayed Text in Combobox larger than 80 pixels
// then the Box width is automatically extended
dlgLabel("&Color"); // the & character marks the ALT-Key
dlgComboBox(Colors, Selected);
dlgRadioButton("&Center", align);
dlgRadioButton("&Bottom", align);
}
dlgSpacing(20);
dlgStretch(0);
dlgVBoxLayout {
dlgStretch(1);
dlgCheckBox("&Mirror", mirror);
dlgStretch(0);
dlgCheckBox("&Rotate", rotate);
dlgStretch(1);
}
dlgSpacing(10);
dlgStretch(0);
dlgLabel("Enter a &Number between 0 and 99");
dlgSpacing(5);
dlgStretch(0);
dlgHBoxLayout {
dlgIntEdit(Value, 0, 99);
}
dlgSpacing(10);
dlgStretch(0);
dlgGroup("Reset") {
dlgStretch(0);
dlgLabel("change values, press reset and look");
dlgStretch(1);
dlgPushButton("Reset") dlgReset();
dlgStretch(1);
}
dlgStretch(1);
}
dlgStretch(0);
dlgSpacing(10);
dlgHBoxLayout {
dlgStretch(0);
dlgSpacing(550);
dlgPushButton("+OK") dlgAccept();
dlgStretch(0);
dlgSpacing(25);
dlgPushButton("-Cancel") dlgReject();
dlgStretch(1);
}
dlgStretch(1);
};
if (Result == 0) exit (0);
// Dialog window with Button
align = 0;
Text = "\n\nCELL example\ndefine cells\n";
Result = dlgDialog(" EAGLE Version 4 / GRID/CELL Demonstration"){
dlgGridLayout { // Grid & Cell
dlgCell(0, 0) dlgLabel("Cell 0,0");
dlgCell(0, 1) dlgLabel("Cell 0,1");
dlgCell(0, 2) dlgLabel("Cell 0,2");
dlgCell(0, 3) dlgLabel("Cell 0,3");
dlgCell(0, 4) dlgLabel("Cell 0,4");
dlgCell(0, 5) dlgLabel("Cell 0,5");
dlgCell(0, 6) dlgLabel("Cell 0,6");
dlgCell(0, 7) dlgLabel("Cell 0,7");
dlgCell(0, 8) dlgLabel("Cell 0,8");
dlgCell(0, 9) dlgLabel("Cell 0,9");
dlgCell(0, 10) dlgLabel("Cell 0,10");
dlgCell(0, 11) dlgLabel("Cell 0,11");
dlgCell(1, 0) dlgLabel("Cell 1,0");
dlgCell(2, 0) dlgLabel("Cell 2,0");
dlgCell(3, 0) dlgLabel("Cell 3,0");
dlgCell(4, 0) dlgLabel("Cell 4,0");
dlgCell(5, 0) dlgLabel("Cell 5,0");
dlgCell(6, 0) dlgLabel("Cell 6,0");
dlgCell(7, 0) dlgLabel("Cell 7,0");
dlgCell(8, 0) dlgLabel("Cell 8,0");
dlgCell(9, 0) dlgLabel("Cell 9,0");
dlgCell(10, 0) dlgLabel("Cell 10,0");
dlgCell(11, 0) dlgLabel("Cell 11,0");
dlgCell(1, 2, 4, 6) dlgTextEdit(Text);
dlgCell(1, 8) dlgComboBox(Colors, Selected);
dlgCell(2, 8) dlgCheckBox("&Mirror", mirror);
dlgCell(3, 8) dlgCheckBox("&Rotate", rotate);
dlgCell(4, 8, 4, 8) dlgGroup("Gruop") {
dlgGridLayout {
dlgCell(6, 8) dlgRadioButton("&Top", align);
dlgCell(7, 8) dlgRadioButton("&Center", align);
dlgCell(8, 8) dlgRadioButton("&Bottom", align);
}
}
dlgCell(6, 4) dlgPushButton("+OK") dlgAccept();
dlgCell(7, 4) dlgPushButton("-CANCEL\n\nStop ULP\nand\nExit") dlgReject();
dlgCell(7, 2) dlgPushButton("Reset") dlgReset();
dlgCell(1, 1) dlgLabel("<img src='"+ filedir(argv[0])+"eagle.bmp'>"); // this is a absolute path 2005.12.21 alf@cadsoft.de
dlgCell(1, 8) dlgLabel("<img src=eagle.bmp>"); // this is a relativ path 2005.12.21 alf@cadfsoft.de
dlgCell(9, 1) dlgLabel("<img src=eagle.bmp>");
dlgCell(9, 8) dlgLabel("<img src=eagle.bmp>");
}
dlgLabel("a small example for Grid & Cell");
};
if (Result == 0) exit (0);
Result = dlgDialog("Checkbox Demonstration"){
dlgGroup("Orientation and Print") {
dlgCheckBox("&Mirror", mirror);
dlgCheckBox("&Rotate", rotate);
dlgCheckBox("&Flip", flip);
dlgCheckBox("&Black", black);
dlgCheckBox("&Solid", solid);
dlgCheckBox("S&caled", scaled);
}
dlgVBoxLayout {
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("+OK") dlgAccept();
dlgStretch(0);
}
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("-Cancel") dlgReject();
dlgStretch(0);
}
}
};
if (Result == 0) exit (0);
// Comboboxes
Result = dlgDialog("Combobox"){
dlgComboBox(Colors, Selected);
dlgVBoxLayout {
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("+OK") dlgAccept();
dlgStretch(0);
}
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("-Cancel") dlgReject();
dlgStretch(0);
}
}
};
if (Result == 0) exit (0);
// GridLayout - define cell by cell content
Result = dlgDialog("Grid Layout"){
dlgGridLayout {
dlgCell(0, 0) dlgLabel("Row 0/Col 0");
dlgCell(1, 0) dlgLabel("Row 1/Col 0");
dlgCell(0, 4) dlgLabel("Row 0/Col 4");
dlgCell(5, 5) dlgLabel("Row 5/Col 5");
dlgCell(10, 20) dlgPushButton("+OK") dlgAccept();
dlgCell(10, 24) dlgPushButton("-Cancel") dlgReject();
}
};
if (Result == 0) exit (0);
// input a Integer-Value
Result = dlgDialog("IntEdit"){
dlgHBoxLayout {
dlgLabel("Enter a &Number between 0 and 99");
dlgIntEdit(Value, 0, 99);
}
dlgVBoxLayout {
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("+OK") dlgAccept();
dlgStretch(0);
}
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("-Cancel") dlgReject();
dlgStretch(0);
}
}
};
if (Result == 0) exit (0);
// List box selection field
Result = dlgDialog("List Box") {
dlgListBox(Colors, Selected)
dlgAccept();
};
dlgMessageBox("selected Color " + Colors[Selected]);
if (Result == 0) exit (0);
//Multi column list view selection field
string Colours[] = { "red\tThe color RED", "green\tThe color GREEN", "blue\tThe color BLUE" };
Selected = 1;
Result = dlgDialog("ListView") {
dlgListView("Name\tDescription", Colours, Selected) dlgAccept();
dlgPushButton("+OK") dlgAccept();
};
dlgMessageBox("last selected\n" + Colours[Selected]);
if (Result == 0) exit (0);
// Predefined Button OK
Result = dlgDialog("Hello") {
dlgLabel("Hello world");
dlgPushButton("+OK") dlgAccept();
// look at the '+' character
};
// Radio Button
// can be used only in a dglGroup
align = 0;
Result = dlgDialog("RadioButton") {
dlgGroup("Alignment") {
dlgRadioButton("&Top", align);
dlgRadioButton("&Center", align);
dlgRadioButton("&Bottom", align);
dlgPushButton("+OK") dlgAccept();
dlgPushButton("-Cancel") dlgReject();
}
};
if (Result == 0) exit (0);
// Input a real value
real rValue = 33.333;
Result = dlgDialog("RealEdit"){
dlgHBoxLayout {
dlgLabel("Enter a &Number between 0.0 and 99.0");
dlgRealEdit(rValue, 0.0, 99.0);
dlgVBoxLayout {
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("+OK") dlgAccept();
dlgStretch(0);
}
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("-Cancel") dlgReject();
dlgStretch(0);
}
}
}
};
if (Result == 0) exit (0);
sprintf(st, "%f", rValue);
dlgMessageBox("last real value = " + st);
// Define additional space in a box layout context
// space is given in pixels
Result = dlgDialog("Spacing V-Box"){
dlgVBoxLayout {
dlgLabel("Label V1");
dlgSpacing(70);
dlgLabel("Label V2");
}
};
if (Result == 0) exit (0);
Result = dlgDialog("Spacing HBox"){
dlgHBoxLayout {
dlgLabel("Label H1");
dlgSpacing(100);
dlgLabel("Label H2");
}
};
if (Result == 0) exit (0);
// Select two values
Result = dlgDialog("Spinbox - select value for X and Y") {
dlgVBoxLayout {
dlgLabel("select &X"); // character & mark selected by ALT+Key
dlgSpinBox(Value, 0, 99);
dlgLabel("select &Y");
dlgSpinBox(Wert, -99, 99);
dlgPushButton("+OK") dlgAccept();
// + is the Default-Button [ENTER]
dlgPushButton("-throw away") dlgReject();
// - is the Cancel-Button [ESC]
};
};
if (Result == 0) exit (0);
dlgMessageBox("ATTENTION:\ndrag the next menu border line!", "OK");
// Define an empty stretchable space in a box layout context
Result = dlgDialog("Stretch horizontal") {
dlgHBoxLayout {
dlgStretch(0);
dlgPushButton("+OK") dlgAccept();
dlgStretch(5);
dlgPushButton("Key B");
dlgStretch(15);
dlgPushButton("Key C");
dlgStretch(40);
dlgPushButton("-Cancel") dlgReject();
dlgStretch(5);
}
};
if (Result == 0) exit (0);
dlgMessageBox(" ATTENTION:\ndrag the next menu border line!", "OK");
Result = dlgDialog("Stretch vertical") {
dlgVBoxLayout {
dlgStretch(0);
dlgPushButton("+OK") dlgAccept();
dlgStretch(5);
dlgPushButton("Key 2");
dlgStretch(15);
dlgPushButton("Key 3");
dlgStretch(40);
dlgPushButton("-Cancel") dlgReject();
dlgStretch(0);
}
};
if (Result == 0) exit (0);
// Defines a string entry field
// define fixed length by dlgSpacing
string Name = "Linus Torvalds";
Result = dlgDialog("dlgStringEdit") {
dlgHBoxLayout dlgSpacing(400);
dlgStretch(0);
dlgLabel("Enter &Name");
dlgStretch(0);
dlgStringEdit(Name);
dlgVBoxLayout {
dlgStretch(0);
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("+OK") dlgAccept();
dlgStretch(0);
}
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("-Cancel") dlgReject();
dlgStretch(0);
}
dlgStretch(10);
};
dlgStretch(1);
};
if (Result == 0) exit (0);
dlgMessageBox("the last selected \n" + Name);
// Define a tab page
align = 0;
int p_align = 0;
Result = dlgDialog("Container for tab pages") {
//Define a container for tab pages
dlgTabWidget {
dlgTabPage("&Video") {
dlgHBoxLayout {
dlgLabel("<img src=eagle.bmp>");
}
dlgHBoxLayout {
dlgLabel("Video mode");
dlgGroup("Gruppe") {
dlgRadioButton("&Black and White", align);
dlgRadioButton("&White and Black", align);
}
}
}
dlgTabPage("&Printer") {
dlgLabel("Printer setup");
dlgGroup("Gruppe") {
dlgRadioButton("&Top", p_align);
dlgRadioButton("&Center", p_align);
dlgRadioButton("&Bottom", p_align);
}
}
dlgTabPage("&Memory") {
dlgLabel("Memory setup");
dlgCheckBox("R&otate", rotate);
dlgCheckBox("Mi&rror", mirror);
dlgCheckBox("&Flip", flip);
dlgCheckBox("&Swap", swap);
}
dlgTabPage("&Export") {
dlgLabel("select a file name for WRITE");
dlgHBoxLayout {
dlgStretch(0);
dlgPushButton("&File") {
string fileName;
fileName = dlgFileOpen("select a File", "*.*", "*.BRD\n*.SCH\n*.SCH\n*.ULP");
};
dlgStretch(1);
}
}
dlgTabPage("&Input") {
dlgLabel("select a file for read");
dlgHBoxLayout {
dlgStretch(0);
dlgPushButton("&File") {
string fileName;
fileName = dlgFileOpen("select a File", "*.*", "");
};
dlgStretch(1);
}
}
dlgTabPage("&Help") {
dlgLabel("<img src=eagle.bmp>");
dlgLabel("Copyright (c) 1988-2000 CadSoft Computer GmbH");
}
}
dlgHBoxLayout {
dlgStretch(0);
dlgPushButton("+OK") dlgAccept();
dlgStretch(0);
dlgLabel(" <--------> ");
dlgStretch(0);
dlgPushButton("-Cancel") dlgReject();
dlgStretch(1);
}
};
if (Result == 0) exit (0);
string sresult;
sprintf(sresult, "%d", Value);
cmd = "selected X = " + sresult + ".\n";
sprintf(sresult, "%d", Wert);
cmd += "selected Y = " + sresult + ".\n";
Result = dlgDialog("Editor Window") {
dlgTextEdit(cmd);
dlgHBoxLayout {
dlgPushButton("+OK") dlgAccept();
dlgPushButton("-Cancel") dlgReject();
}
};
if (Result == 0) exit (0);
dlgMessageBox(cmd);
//Define a multiline text viewer field
Text = "This is some text.\nLine 2\nLine 3";
string Text2 = "This is the 2nd text.\nLine 2\nLine 3";
Text2 += "\n...\n...\n...\n...\nScroll-\nbars\non?\n";
Text2 += "OK\nEnd.";
Result = dlgDialog("List Window") {
dlgVBoxLayout {
dlgLabel("&View the text");
dlgTextView(Text);
dlgLabel("Vie&w the text");
dlgTextView(Text2);
}
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("+OK") dlgAccept();
}
};
if (Result == 0) exit (0);
// Button
int haveButton = 1;
Result = dlgDialog("Test") {
dlgLabel("Start");
if (haveButton)
dlgPushButton("Here") dlgAccept();
};
if (Result == 0) exit (0);
Result = dlgDialog("'3 Boxes close by ESC") {
dlgHBoxLayout {
dlgLabel("Box 1");
dlgLabel("Box 2");
dlgLabel("Box 3");
dlgPushButton("+OK") dlgAccept();
}
};
if (Result == 0) exit (0);
Result = dlgDialog("selected Color") {
dlgVBoxLayout {
dlgLabel("selected Color");
dlgLabel(Colors[Selected]);
}
};
if (Result == 0) exit (0);
// Redisplays the dialog after changing values
string Status[] = { "Idle", "1st run", "2nd run", "3rd run", "Finished" } ;
int stat = 0;
string labstr = Status[0];
Result = dlgDialog("Test") {
dlgLabel(labstr);
dlgPushButton("+OK") dlgAccept(42);
dlgPushButton("Cancel") dlgReject(-3);
dlgPushButton("Run") {
if (stat < 4) stat++;
labstr = Status[stat];
dlgRedisplay();
// some program action here...
}
dlgPushButton("Reset") {
dlgReset();
stat = 0;
labstr = Status[stat];
dlgRedisplay();
}
};
if (Result == 0) exit (0);
sprintf(cmd, "%d", Result);
dlgMessageBox(cmd);
int Number = 99;
string dlgStr = "Empty";
real rVal = 9.99;
Result = dlgDialog("Reset Int & Real to 0") {
dlgIntEdit(Number);
dlgRealEdit(rVal);
dlgStringEdit(dlgStr);
dlgPushButton("+OK") dlgAccept(42);
dlgPushButton("Cancel") dlgReject();
dlgPushButton("Reset") dlgReset();
};
if (Result == 0) exit (0);
// File handling
int n = 0;
char b[];
string fileName = dlgFileOpen("select File", "*.*", "*.BRD\n*.SCH\n*.SCH\n*.ULP");
int nBytes = fileread(b, fileName);
for (int x = 0; x < nBytes; x++) {
cmd += b[x];
}
dlgMessageBox(fileName +"\nread", "OK");