269 lines
6.9 KiB
Plaintext
269 lines
6.9 KiB
Plaintext
// ============================================================
|
|
// vf_linienzug_wizard.dcl - VF Linienzug Assistent (Modus 1)
|
|
// Zwei GENERISCHE Einzel-Dialoge (vflw_zahl/vflw_wahl) fuer alle Fragen, die
|
|
// im Ablauf isoliert stehen, PLUS mehrere GRUPPEN-Dialoge weiter unten, die
|
|
// Fragen zusammenfassen, die immer unmittelbar hintereinander kommen (z.B.
|
|
// Startpunkt+Starthoehe, AS-Element Ja/Nein+Winkel+Seite). Kopfzeilen/
|
|
// Optionslisten werden zur Laufzeit befuellt, siehe vf_linienzug.lsp,
|
|
// Abschnitte "WIZARD-EINGABE" und "GRUPPEN-DIALOGE".
|
|
// Die ORIGINALEN Konsolen-Fragen (princ + getstring/getreal/getint) bleiben
|
|
// im Code stehen (de/en ueber ssg-text/lang/*.json) - Umschalten zurueck auf
|
|
// reine Konsole: (setq *vfl-wizard-mode* nil) bzw. Befehl VF_WIZARD_AUS.
|
|
// Bricht der Nutzer einen Gruppen-Dialog ab, fallen die betroffenen Fragen
|
|
// automatisch auf die Einzel-Dialoge (vflw_zahl/vflw_wahl) zurueck.
|
|
// ============================================================
|
|
|
|
// Zahlen-Eingabe (ersetzt getreal/getint). "kopf" zeigt den kompletten
|
|
// Original-Prompt-Text (inkl. Default in eckigen Klammern) als Label.
|
|
vflw_zahl : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 16;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Mehrfachauswahl (ersetzt eine princ-Menue-Liste + getstring/getint).
|
|
// "opts" wird zur Laufzeit per start_list/add_list mit den (bereits
|
|
// lokalisierten) Optionstexten befuellt - ein einziger Dialog fuer jede
|
|
// Options-Anzahl (2-5), analog zum bestehenden Muster in
|
|
// dcl/variofoerderer.dcl und dcl/vfl_edit.dcl.
|
|
vflw_wahl : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "opts";
|
|
label = "";
|
|
width = 50;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// ============================================================
|
|
// GRUPPEN-DIALOGE - fassen mehrere Fragen, die im Ablauf IMMER
|
|
// unmittelbar hintereinander kommen, in EINEM Bildschirm zusammen (statt je
|
|
// einem vflw_zahl/vflw_wahl-Dialog pro Frage). Aufgerufen aus den
|
|
// vflw-gruppe-*-Funktionen in vf_linienzug.lsp (Abschnitt "GRUPPEN-DIALOGE").
|
|
// Punktwahl-Zeile (Button + Anzeige) NUR in vflw_punkt_zahl, wo tatsaechlich
|
|
// live gepickt wird: der Button schliesst den Dialog (done_dialog 2), DANACH
|
|
// laeuft (getpoint) auf der Kommandozeile - (getpoint) direkt aus einem
|
|
// action_tile-Callback heraus (Dialog bleibt offen) funktioniert in BricsCAD
|
|
// NICHT (kein Fokuswechsel zur Zeichnung, per Test bestaetigt). Die uebrigen
|
|
// Gruppen-Dialoge (Gefaelle, Ziel-Hoehe, Horizontal-Stueck) picken KEINEN
|
|
// Punkt - der Endpunkt ist an ihrer Aufrufstelle bereits ueber
|
|
// vfl-neue-linie-messen gemessen (nur X/Y, fuer die Segmentlaenge; die Hoehe
|
|
// dort ist ein unabhaengiger Zahlenwert) - sie zeigen deshalb bewusst KEINE
|
|
// Punkt-Zeile, die faelschlich eine hier moegliche Punktwahl suggerieren
|
|
// wuerde.
|
|
// ============================================================
|
|
|
|
// Punkt + EIN Zahlenfeld, mit Punktwahl-Button (siehe oben). Nur fuer
|
|
// "Kettenstart" (Startpunkt + Starthoehe, Modus 1) und Modus 2s
|
|
// Start-/Endpunkt - "kopf"/"wlabel" werden je Aufruf per set_tile passend
|
|
// beschriftet.
|
|
vflw_punkt_zahl : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: row {
|
|
: button {
|
|
key = "pick";
|
|
label = "Punkt waehlen...";
|
|
fixed_width = true;
|
|
width = 18;
|
|
}
|
|
: text {
|
|
key = "pt_anzeige";
|
|
label = "(kein Punkt gewaehlt)";
|
|
}
|
|
}
|
|
: text {
|
|
key = "wlabel";
|
|
label = "";
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 10;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// AS-/ES-Element (Kettenanfang bzw. -ende): Ja/Nein-Toggle + Winkel + Seite
|
|
// in einem Bildschirm - "kopf" traegt die konkrete Frage (AS oder ES),
|
|
// "setzen" bleibt bewusst generisch beschriftet, damit derselbe Dialog fuer
|
|
// beide Faelle passt. Winkel/Seite werden deaktiviert, solange der Toggle
|
|
// aus ist.
|
|
vflw_as : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: toggle {
|
|
key = "setzen";
|
|
label = "Ja, setzen";
|
|
}
|
|
: popup_list {
|
|
key = "winkel";
|
|
label = "Winkel:";
|
|
width = 20;
|
|
}
|
|
: popup_list {
|
|
key = "seite";
|
|
label = "Seite:";
|
|
width = 20;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Winkel + Seite. Wiederverwendet fuer GF-Bogen (3 Winkel-Optionen) UND
|
|
// ES-Element am Kettenende (2 Winkel-Optionen) - die Optionsliste wird pro
|
|
// Aufruf zur Laufzeit befuellt, die Feld-Anzahl ist in beiden Faellen gleich.
|
|
vflw_winkel_seite : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "winkel";
|
|
label = "Winkel:";
|
|
width = 20;
|
|
}
|
|
: popup_list {
|
|
key = "seite";
|
|
label = "Seite:";
|
|
width = 20;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Vario-Kurve: Winkel + Seite + Variante (aussen/innen) in einem Bildschirm.
|
|
vflw_variokurve : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "winkel";
|
|
label = "Winkel:";
|
|
width = 20;
|
|
}
|
|
: popup_list {
|
|
key = "seite";
|
|
label = "Seite:";
|
|
width = 20;
|
|
}
|
|
: popup_list {
|
|
key = "variante";
|
|
label = "Variante:";
|
|
width = 20;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Gefaelle festlegen (Linie GF): Modus (Hoehe/Winkel) + EIN Wertfeld, dessen
|
|
// Beschriftung sich je nach Modus umschaltet (Action-Tile auf "modus", siehe
|
|
// vflw-gruppe-gefaelle-impl in vf_linienzug.lsp). Kein Punkt-Feld - siehe
|
|
// Kopfkommentar oben.
|
|
vflw_gefaelle : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: popup_list {
|
|
key = "modus";
|
|
label = "Eingabe als:";
|
|
width = 40;
|
|
}
|
|
: text {
|
|
key = "wlabel";
|
|
label = "";
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 10;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Horizontales Stueck: Separator-vor + Separator-nach + "Foerderer-Ende?"
|
|
// (3 Optionen) in einem Bildschirm. Kein Punkt-Feld - siehe Kopfkommentar
|
|
// oben.
|
|
vflw_horizontal : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: toggle {
|
|
key = "sepvor";
|
|
label = "Separator VOR dem Stueck";
|
|
}
|
|
: toggle {
|
|
key = "sepnach";
|
|
label = "Separator NACH dem Stueck";
|
|
}
|
|
: popup_list {
|
|
key = "istende";
|
|
label = "Foerderer-Ende:";
|
|
width = 45;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|