fb567949be
Bisher war der geklickte Punkt immer der KettenANFANG. Oft steht aber das
andere Ende fest - typisch der Anschluss an einen Kreisel. Modus 1 fragt
deshalb jetzt ganz am Anfang nach der Bau-Richtung:
vorwaerts = geklickter Punkt ist der Kettenanfang (alles wie bisher)
rueckwaerts= er ist das Kettenende, genauer das KS_AUS des ES-Elements
ABLAUF RUECKWAERTS
ES setzen? + Winkel + Seite + Fahrtrichtung (2. Punkt) in EINEM Dialog, dann
"Neue Linie: GF" und die Laengenfrage mit drei Optionen:
1 Kettenanfang klicken -> + Neigungswinkel, Anfangshoehe wird gerechnet
2 Anfangshoehe vorgeben -> + Neigungswinkel, Laenge wird gerechnet
3 Parallel zum Kreisel -> nur Abstand (nur mit ES waehlbar)
Danach ist die Kette fertig. Die Spiegelfrage "Ist das der Kettenanfang?"
mit optionalem AS und Weiterbauen ist bewusst NICHT enthalten (Nutzer-
Entscheidung: vorerst kleiner Umfang).
ANKER
Das ES wird mit insert-block-mixed-to-ks und xy-ref/z-ref="KS_AUS" EXAKT auf
den geklickten Punkt gesetzt; alles Weitere wird daraus zurueckgerechnet
(vfl-rueck-punkt) und dann normal vorwaerts platziert. Gleiches Ergebnis,
aber mit den erprobten Einfuege-Primitiven. Eine Rest-Ungenauigkeit landet
am Kettenanfang statt am Kreisel-Anschluss.
Option 3 spiegelt die Vorwaerts-Variante: Bogenseite = Gegenseite der
ES-Seite, Bogenwinkel hebt den gemessenen ES-Schwenk auf. Dafuer werden die
bereits getesteten Kerne vfl-par-bogen-waehlen/vfl-par-gf-laenge
wiederverwendet - die Zuordnung (ES 30 links -> 30-Grad-Bogen rechts usw.)
faellt daraus heraus, statt gepflegt zu werden.
ZWEI FEHLER, DIE DER ERSTE BRICSCAD-TEST GEFUNDEN HAT
1. vflw-gruppe-as-impl legt VIER Werte in die Pending-Queue (ja/nein,
Winkel, Seite, Punkt). Die Ja/Nein-Antwort wurde nicht konsumiert, alles
rutschte eine Position weiter - der Winkel bekam die "1" der Ja/Nein-
Frage, Blockname "ES_Element_1_links". Die Frage wird jetzt gestellt und
ausgewertet; "Nein" ist dabei sinnvoll belegt (Kette endet direkt am
geklickten Punkt, Richtung ueber vfl-frage-fahrtrichtung-p2).
2. insert-block-ks-to-ks richtet immer den EINGANG eines Blocks aus.
Rueckwaerts sitzt der Bogen VOR dem GF-Stueck, sein AUSGANG muss also auf
der GF-Achse liegen - der Eingang ist um den Bogenschwenk vorzudrehen
(hz-bogen = hz-ein - bogen-turn). Ohne das zeigte der Ausgang um genau den
Bogenwinkel daneben, KS_AUS und KS_EIN trafen sich nicht. Gilt fuer den
Probe-Bau UND das echte Einfuegen - waere nur eins gedreht, saesse der
Bogen richtig orientiert an der falschen Stelle.
BEDIENUNG
- Kurze Entscheidungen im Rueckwaerts-Ablauf als Radio-Buttons statt
Auswahlliste (vfl-menu-radio).
- Beim Klick auf den Kettenanfang haengt der Cursor auf der Kettenachse
(neuer Wrapper vfl-in-point-achse ueber das vorhandene
vfl-getpoint-achse): ab dort kann nur noch entlang dieser Achse gebaut
werden, ein frei schwenkendes Gummiband gaukelte eine Freiheit vor.
- Zahlen-Dialoge belegen ihr Feld jetzt mit der Vorgabe vor. Die Prompts
tragen sie ohnehin in Klammern ("[3]", "<2154.0>"), der Dialog hat sie nur
ignoriert - bewusst generisch geloest (vflw-vorgabe-aus-prompt), die
Luecke hatten alle Zahlen-Dialoge des Assistenten.
- vflw_as beschriftet Seite und Achse neutral, weil derselbe Dialog jetzt
AS (vorwaerts) und ES (rueckwaerts) bedient; die Punkt-Anzeige heisst beim
ES "Endpunkt".
ABWAERTSKOMPATIBILITAET
Die Richtungsfrage steht VOR der AS-Frage und journalisiert ihren WERT
("vor"/"rueck") statt eines Index - ein Index "1"/"2" waere von der
nachfolgenden AS-Ja/Nein-Antwort nicht zu unterscheiden. Fehlt der Eintrag,
ist es ein Alt-Journal und es wird vorwaerts gebaut. Dafuer der neue Wrapper
vfl-menu-strwert.
TESTS
12 neue file- und zeichnungsfreie Unit-Tests: vfl-rueck-punkt (Rundlauf
vorwaerts/rueckwaerts) und vflw-vorgabe-aus-prompt (gegen die echten
Prompt-Texte, inkl. der Stolperstellen "0 < Winkel <= 3" ohne schliessendes
">" und dem Nachsatz in runden Klammern). TEST_UNIT konnte noch nicht
laufen - BricsCAD war die ganze Sitzung geoeffnet. Der Rueckwaerts-Bau
selbst ist vom Nutzer in BricsCAD geprueft und bestaetigt.
SSG_LIB.cui ist das von BricsCAD neu erzeugte Kompilat zur Menue-Aenderung
des vorigen Commits.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1214 lines
44 KiB
Plaintext
1214 lines
44 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;
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// 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;
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// ============================================================
|
|
// 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;
|
|
}
|
|
}
|
|
|
|
// "back" nutzt hier done_dialog 3 statt 2 - Code 2 ist bereits durch den
|
|
// "Punkt waehlen..."-Button oben belegt (siehe vflw-gruppe-punkt-hoehe-impl).
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// 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. Radio-Buttons statt Dropdown, Labels daher fest auf Deutsch
|
|
// (siehe Kommentar bei vfc_typ in variofoerderer.dcl).
|
|
vflw_as : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: toggle {
|
|
key = "setzen";
|
|
label = "Ja, setzen";
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Winkel:";
|
|
key = "winkel";
|
|
: radio_button { key = "winkel_90"; label = "90 Grad"; value = "1"; }
|
|
: radio_button { key = "winkel_30"; label = "30 Grad"; }
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Seite:";
|
|
key = "seite";
|
|
: radio_button { key = "seite_links"; label = "Links"; value = "1"; }
|
|
: radio_button { key = "seite_rechts"; label = "Rechts"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Wie vflw_as, aber ZUSAETZLICH mit der Zufuehrungsachse (2. Punkt) in
|
|
// DEMSELBEN Bildschirm - nur fuer das AS-Element am Kettenanfang von Modus 1
|
|
// (Nutzer-Vorgabe 2026-10-21: "Achse und links/rechts gehoeren in ein
|
|
// Fenster", beide zusammen legen AS-Lage UND Kettenrichtung fest: der 2.
|
|
// Punkt gibt die KS_EIN-Achse, links/rechts die AS-Variante und damit die
|
|
// KS_AUS-Richtung). Eigener Dialog statt einer dauerhaft ausgegrauten
|
|
// Punkt-Zeile in vflw_as - denselben Dialog nutzt auch das ES-Element am
|
|
// Kettenende, wo es gar keine Zufuehrungsachse gibt (gleiche Begruendung wie
|
|
// bei vflw_winkel_seite vs. vflw_winkel_seite_30_90).
|
|
// Punktwahl-Zeile nach dem Muster von vflw_punkt_zahl: der Button schliesst
|
|
// den Dialog (done_dialog 2), danach laeuft (getpoint) auf der
|
|
// Kommandozeile, danach wird der Dialog neu gezeigt - darum nutzt "back"
|
|
// hier Code 3.
|
|
vflw_as_achse : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: toggle {
|
|
key = "setzen";
|
|
label = "Ja, setzen";
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Winkel:";
|
|
key = "winkel";
|
|
: radio_button { key = "winkel_90"; label = "90 Grad"; value = "1"; }
|
|
: radio_button { key = "winkel_30"; label = "30 Grad"; }
|
|
}
|
|
// Beschriftungen bewusst NEUTRAL: derselbe Dialog dient dem AS-Element
|
|
// am Kettenanfang (vorwaerts) UND dem ES-Element am Kettenende
|
|
// (rueckwaerts bauen, 2026-10-22). Welches Element gemeint ist, sagt die
|
|
// Kopfzeile ("kopf").
|
|
: boxed_radio_column {
|
|
label = "Seite (Element schleust nach):";
|
|
key = "seite";
|
|
: radio_button { key = "seite_links"; label = "Links"; value = "1"; }
|
|
: radio_button { key = "seite_rechts"; label = "Rechts"; }
|
|
}
|
|
: boxed_column {
|
|
label = "Fahrtrichtung (2. Punkt):";
|
|
// Startpunkt der Kette - er ist der Sitz des AS-Elements UND der
|
|
// Ausgangspunkt der Achse; waehrend der Punktwahl haengt das
|
|
// Gummiband an ihm (vfl-getpoint mit Basispunkt).
|
|
: text {
|
|
key = "start_anzeige";
|
|
label = "";
|
|
width = 46;
|
|
}
|
|
: row {
|
|
: button {
|
|
key = "pick";
|
|
label = "2. Punkt waehlen...";
|
|
fixed_width = true;
|
|
width = 20;
|
|
}
|
|
: text {
|
|
key = "pt_anzeige";
|
|
label = "(ohne Achse: Richtung aus dem naechsten Klick)";
|
|
width = 46;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Winkel (30/60/90) + Seite - fuer GF-Bogen, wo alle drei Winkel geometrisch
|
|
// gueltig sind. Fuer AS-/ES-Element (wo 60 Grad NIE gueltig ist) stattdessen
|
|
// vflw_winkel_seite_30_90 verwenden (siehe vflw-gruppe-winkel-seite-impl/
|
|
// vfl-glied-as-es-dialog) - eine staendig ausgegraute, nie waehlbare Option
|
|
// verwirrt mehr als sie nutzt, daher ein eigener schlankerer Dialog statt
|
|
// mode_tile-Deaktivierung. Radio-Buttons statt Dropdown, Labels fest deutsch.
|
|
vflw_winkel_seite : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Winkel:";
|
|
key = "winkel";
|
|
: radio_button { key = "winkel_30"; label = "30 Grad"; }
|
|
: radio_button { key = "winkel_60"; label = "60 Grad"; }
|
|
: radio_button { key = "winkel_90"; label = "90 Grad"; value = "1"; }
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Seite:";
|
|
key = "seite";
|
|
: radio_button { key = "seite_links"; label = "Links"; value = "1"; }
|
|
: radio_button { key = "seite_rechts"; label = "Rechts"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Winkel (NUR 30/90, kein 60) + Seite - fuer AS-/ES-Element, wo 60 Grad
|
|
// geometrisch nie eine gueltige Option ist (anders als GF-Bogen/Vario-Kurve,
|
|
// siehe vflw_winkel_seite). Tile-Keys bewusst identisch zu vflw_winkel_seite
|
|
// (winkel_30/winkel_90/seite_links/seite_rechts), damit vflw-gruppe-winkel-
|
|
// seite-impl/vfl-glied-as-es-dialog denselben set_tile/get_tile-Code fuer
|
|
// beide Dialoge nutzen koennen.
|
|
vflw_winkel_seite_30_90 : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Winkel:";
|
|
key = "winkel";
|
|
: radio_button { key = "winkel_30"; label = "30 Grad"; }
|
|
: radio_button { key = "winkel_90"; label = "90 Grad"; value = "1"; }
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Seite:";
|
|
key = "seite";
|
|
: radio_button { key = "seite_links"; label = "Links"; value = "1"; }
|
|
: radio_button { key = "seite_rechts"; label = "Rechts"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Nur Winkel (30/90 Grad), OHNE Seite - fuer "QC Linie mit GF" (Option 4),
|
|
// deren AS-/ES-Seite ausserhalb dieses Dialogs feststeht (ES-Seite = AS-
|
|
// Seite, keine eigene Frage). Radio-Buttons statt Dropdown.
|
|
vflw_qc_winkel : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Winkel:";
|
|
key = "winkel";
|
|
: radio_button { key = "winkel_30"; label = "30 Grad"; }
|
|
: radio_button { key = "winkel_90"; label = "90 Grad"; value = "1"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Vario-Kurve: Winkel + Seite + Variante (aussen/innen) in einem Bildschirm.
|
|
// Radio-Buttons statt Dropdown, Labels fest deutsch.
|
|
vflw_variokurve : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Winkel:";
|
|
key = "winkel";
|
|
: radio_button { key = "winkel_30"; label = "30 Grad"; }
|
|
: radio_button { key = "winkel_60"; label = "60 Grad"; }
|
|
: radio_button { key = "winkel_90"; label = "90 Grad"; value = "1"; }
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Seite:";
|
|
key = "seite";
|
|
: radio_button { key = "seite_links"; label = "Links"; value = "1"; }
|
|
: radio_button { key = "seite_rechts"; label = "Rechts"; }
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Variante:";
|
|
key = "variante";
|
|
: radio_button { key = "variante_aussen"; label = "Aussen"; value = "1"; }
|
|
: radio_button { key = "variante_innen"; label = "Innen"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// 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. Radio-Buttons statt Dropdown, Labels fest deutsch.
|
|
vflw_gefaelle : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Eingabe als:";
|
|
key = "modus";
|
|
: radio_button { key = "modus_winkel"; label = "Neigungswinkel eingeben"; value = "1"; }
|
|
: radio_button { key = "modus_hoehe"; label = "Gegebene Hoehe (Zielhoehe)"; }
|
|
}
|
|
: text {
|
|
key = "wlabel";
|
|
label = "";
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 10;
|
|
}
|
|
// Nur befuellt/sichtbar relevant, wenn vflw-gruppe-gefaelle-impl mit
|
|
// nur-winkel=T aufgerufen wird (Zweig "Zielhoehe zuerst festlegen" bei
|
|
// "Neue Linie: GF") - zeigt dann den Hinweis, dass deltaL daraus
|
|
// berechnet wird, statt der sonst hier stehenden Hoehe-Option.
|
|
: text {
|
|
key = "hinweis";
|
|
label = "";
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// "Wie soll die Laenge dieser Gefaellestrecke bestimmt werden?" (Neue Linie:
|
|
// GF) - Endpunkt-Pick (heutiges Verhalten) ODER Zielhoehe zuerst festlegen
|
|
// (Laenge wird dann aus Zielhoehe+Winkel berechnet, siehe
|
|
// vflw-gruppe-gf-laenge-modus-impl). Nur gezeigt, wenn bereits ein Frame
|
|
// existiert (Kettenanfang braucht weiterhin zwingend den Pick fuer die
|
|
// Richtung). Radio-Buttons statt Dropdown, Labels fest deutsch.
|
|
vflw_gf_laenge_modus : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
key = "modus";
|
|
label = "";
|
|
: radio_button { key = "modus_endpunkt"; label = "Endpunkt waehlen (Laenge ergibt sich)"; value = "1"; }
|
|
: radio_button { key = "modus_hoehe"; label = "Zielhoehe festlegen (Laenge wird berechnet)"; }
|
|
: radio_button { key = "modus_steigend"; label = "Steigende GF (Sonderfall, bis 3 Grad)"; }
|
|
: radio_button { key = "modus_qc"; label = "QC Linie mit GF (automatische Auf-Ab-Berechnung)"; }
|
|
// Nur am Kettenanfang mit AS-Element UND festgelegter Zufuehrungsachse
|
|
// waehlbar - sonst fehlt die Bezugsachse fuer den Abstand. Wird in
|
|
// vflw-gruppe-gf-laenge-modus-impl per mode_tile deaktiviert (anders
|
|
// als eine NIE waehlbare Kachel ist diese kontextabhaengig, siehe
|
|
// "sepnach" in vflw_sep_gf).
|
|
: radio_button { key = "modus_parallel"; label = "Parallel zum Kreisel weiterbauen (Abstand)"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Zweig C ("Steigende GF") Unterfrage: dieselben 2 Optionen wie oben
|
|
// (Endpunkt/Zielhoehe), aber OHNE die 3. Kachel "Steigend" - die existiert in
|
|
// diesem Kontext nicht mehr (wir sind ja schon im Steigend-Zweig). Bisher lief
|
|
// diese Frage mangels eigenem Dialog auf den generischen Dropdown-Fallback
|
|
// (vflw_wahl) hinaus - siehe vflw-gruppe-gf-steigend-untermodus-impl.
|
|
vflw_gf_steigend_untermodus : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
key = "modus";
|
|
label = "";
|
|
: radio_button { key = "modus_endpunkt"; label = "Endpunkt waehlen (Laenge ergibt sich)"; value = "1"; }
|
|
: radio_button { key = "modus_hoehe"; label = "Zielhoehe festlegen (Laenge wird berechnet)"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Separator VOR/NACH bei "Neue Linie: GF": beide Ja/Nein-Fragen in einem
|
|
// Bildschirm (Toggles, da echte Ja/Nein-Fragen - kein Radio-Cluster noetig).
|
|
// Siehe vflw-gruppe-sep-gf-impl in vf_linienzug.lsp.
|
|
vflw_sep_gf : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: toggle {
|
|
key = "sepvor";
|
|
label = "Separator VOR dieser Gefaellestrecke";
|
|
}
|
|
: toggle {
|
|
key = "sepnach";
|
|
label = "Separator NACH dieser Gefaellestrecke";
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Horizontales Stueck: nur noch "Foerderer-Ende?" (3 Optionen) - kein
|
|
// Separator mehr (siehe vfl-baue-horizontal-koerper). Kein Punkt-Feld -
|
|
// siehe Kopfkommentar oben. Radio-Buttons statt Dropdown, Labels daher fest
|
|
// auf Deutsch (siehe Kommentar bei vfc_typ in variofoerderer.dcl).
|
|
vflw_horizontal : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Foerderer-Ende:";
|
|
key = "istende";
|
|
|
|
: radio_button {
|
|
key = "istende_0";
|
|
label = "Ja (nur Motorstation setzen)";
|
|
value = "1";
|
|
}
|
|
: radio_button {
|
|
key = "istende_1";
|
|
label = "Nein (weiterbauen)";
|
|
}
|
|
: radio_button {
|
|
key = "istende_2";
|
|
label = "Ja (Motorstation setzen, Kettenende definieren)";
|
|
}
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// "Naechstes Element waehlen" - Hauptmenue des Linienzug-Aufbaus (Modus 1).
|
|
// IMMER alle 5 Optionen im Dialog vorhanden (stabile Keys) - "Vario-Kurve"
|
|
// wird per mode_tile deaktiviert, wenn kein echter Kettenanfang vorliegt
|
|
// (siehe vflw-gruppe-naechstes-element-impl, das dort auch die Positions-
|
|
// Nummerierung passend umrechnet). Radio-Buttons statt Dropdown, Labels fest
|
|
// deutsch, OHNE Nummern-Prefix (anders als die Konsolen-Variante - hier
|
|
// braucht es keine Zifferneingabe). GF-Optionen stehen zuerst, VF-Optionen
|
|
// danach (nur Reihenfolge, kein echtes 2-Spalten-Layout: radio_button-Tiles
|
|
// muessen DIREKTE Kinder EINES Clusters sein, sonst ist die gegenseitige
|
|
// Ausschliesslichkeit kaputt - siehe Warnung bei vflw_winkel_hoehen unten,
|
|
// per Test bestaetigt). "Neue Linie BIS Kettenende" ist kein Radio mehr,
|
|
// sondern der eigene Button "OK und Abschliessen" unten (ruft direkt Slot 6
|
|
// auf, ohne vorher eine Radio-Auswahl zu verlangen).
|
|
vflw_naechstes_element : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
key = "wahl";
|
|
label = "";
|
|
: radio_button { key = "wahl_gfbogen"; label = "GF-Bogen (horizontale Kurve)"; }
|
|
: radio_button { key = "wahl_liniegf"; label = "Neue Linie: GF (Gefaellestrecke)"; value = "1"; }
|
|
: radio_button { key = "wahl_variokurve"; label = "Vario-Kurve (horizontale Kurve, 30/60/90 Grad)"; }
|
|
: radio_button { key = "wahl_linievf"; label = "Neue Linie: Ab/Auf VF (VarioFoerderer-Einheit)"; }
|
|
: radio_button { key = "wahl_horizontalvf"; label = "Neue VF mit horizontalem Anfang (Horizontal-Stueck)"; }
|
|
}
|
|
}
|
|
|
|
// PROTOTYP "Zurueck"-Button (siehe Plan curious-prancing-parasol.md): ersetzt
|
|
// ok_cancel durch eine eigene 4-Button-Zeile. done_dialog-Codes: 0=Abbrechen
|
|
// (unveraendert, is_cancel -> ESC/Leertaste wirkt weiterhin), 1=Weiter
|
|
// (unveraendert, is_default), 2=Zurueck (verwirft das zuletzt gebaute
|
|
// Kettenglied und fragt es neu ab, siehe vflw-gruppe-naechstes-element-impl/
|
|
// vfl-modus-abbruch-sichern), NEU 3=Abschliessen (entspricht der fruehen
|
|
// Radio-Option "Neue Linie BIS Kettenende" - ignoriert die Radio-Auswahl).
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "abschliessen"; label = "OK und Abschliessen"; fixed_width = true; width = 18; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// "Ist das das Kettenende?" (Linie-GF-Segment-Schleife) - 3 feste Optionen.
|
|
// Radio-Buttons statt Dropdown, Labels fest deutsch.
|
|
vflw_kettenende : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
key = "wahl";
|
|
label = "";
|
|
: radio_button { key = "wahl_ja_es"; label = "Ja (ES-Element setzen)"; }
|
|
: radio_button { key = "wahl_ja_ohne_es"; label = "Ja (ohne ES-Element setzen)"; }
|
|
: radio_button { key = "wahl_nein"; label = "Nein (weiterbauen)"; value = "1"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// "Ist das Kettenende?" (2-Optionen-Variante - Ja/Nein statt der 3-Optionen-
|
|
// Variante vflw_kettenende oben). Radio-Buttons statt Dropdown, Labels fest
|
|
// deutsch.
|
|
vflw_ist_kettenende_2opt : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
key = "wahl";
|
|
label = "";
|
|
: radio_button { key = "wahl_ja"; label = "Ja (Separator + ES-Element setzen)"; }
|
|
: radio_button { key = "wahl_nein"; label = "Nein (weiterbauen)"; value = "1"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// GF-Verteilung (halbe Staustrecke am Ausgang GF2 oder alles am Einlauf
|
|
// GF1) - wiederverwendet fuer Modus 1 (vfl-vf-einheit-abschluss) UND Modus 3
|
|
// (Segment-Loop, br-gf-mode). Radio-Buttons statt Dropdown, Labels fest
|
|
// deutsch.
|
|
vflw_gf_verteilung : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
key = "wahl";
|
|
label = "";
|
|
: radio_button { key = "wahl_haelfte"; label = "Haelfte am Einlauf (GF1) + Haelfte am Ausgang (GF2)"; }
|
|
: radio_button { key = "wahl_einlauf"; label = "Alles am Einlauf (GF1), kein GF2"; value = "1"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// "Naechstes im VF" (innerhalb einer laufenden VF-Einheit weiterbauen):
|
|
// Horizontaler Foerderer / Vario-Kurve / Auf-Ab-Foerderer. Radio-Buttons
|
|
// statt Dropdown, Labels fest deutsch.
|
|
vflw_naechstes_im_vf : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
key = "wahl";
|
|
label = "";
|
|
: radio_button { key = "wahl_horizontal"; label = "Horizontaler Foerderer (Linie ohne Hoehendifferenz)"; }
|
|
: radio_button { key = "wahl_variokurve"; label = "Vario-Kurve (30/60/90 Grad)"; }
|
|
: radio_button { key = "wahl_aufab"; label = "Auf/Ab-Foerderer (Linie mit Hoehendifferenz)"; value = "1"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Punkt-7-Winkel/Hoehen-Tabelle (vfl-waehle-winkel-hoehen-tabelle): 12 feste
|
|
// Radio-Slots (einer je Standard-Winkel 3-51 Grad), nicht baubare per
|
|
// mode_tile deaktiviert. WICHTIG: die radio_button-Tiles muessen DIREKTE
|
|
// Kinder eines radio_column/radio_row/boxed_radio_column-Clusters sein - eine
|
|
// Verschachtelung ueber : row {} INNERHALB des Clusters (fruehere Version)
|
|
// hebt die gegenseitige Ausschliesslichkeit auf (per Test bestaetigt: mehrere
|
|
// Radios gleichzeitig waehlbar, keins abwaehlbar)! Die Endhoehe steht daher
|
|
// NICHT im selben row-Tile, sondern in einer PARALLELEN Text-Spalte rechts
|
|
// daneben (eigene column AUSSERHALB des Radio-Clusters, per aeusserem : row
|
|
// nebeneinandergestellt, gleiche Zeilenreihenfolge) - dynamisch befuellt via
|
|
// vflw-gruppe-winkel-hoehen-impl (zeigt auch bei nicht baubaren Winkeln den
|
|
// Grund, siehe dortige Kommentare).
|
|
vflw_winkel_hoehen : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: text { label = "Winkel waehlen:"; }
|
|
: row {
|
|
: radio_column {
|
|
key = "wahl";
|
|
: radio_button { key = "w_3"; label = "3 Grad"; }
|
|
: radio_button { key = "w_6"; label = "6 Grad"; }
|
|
: radio_button { key = "w_9"; label = "9 Grad"; }
|
|
: radio_button { key = "w_12"; label = "12 Grad"; }
|
|
: radio_button { key = "w_15"; label = "15 Grad"; }
|
|
: radio_button { key = "w_18"; label = "18 Grad"; }
|
|
: radio_button { key = "w_21"; label = "21 Grad"; }
|
|
: radio_button { key = "w_27"; label = "27 Grad"; }
|
|
: radio_button { key = "w_33"; label = "33 Grad"; }
|
|
: radio_button { key = "w_39"; label = "39 Grad"; }
|
|
: radio_button { key = "w_45"; label = "45 Grad"; }
|
|
: radio_button { key = "w_51"; label = "51 Grad"; }
|
|
}
|
|
: column {
|
|
: text { key = "h_3"; label = ""; width = 48; }
|
|
: text { key = "h_6"; label = ""; width = 48; }
|
|
: text { key = "h_9"; label = ""; width = 48; }
|
|
: text { key = "h_12"; label = ""; width = 48; }
|
|
: text { key = "h_15"; label = ""; width = 48; }
|
|
: text { key = "h_18"; label = ""; width = 48; }
|
|
: text { key = "h_21"; label = ""; width = 48; }
|
|
: text { key = "h_27"; label = ""; width = 48; }
|
|
: text { key = "h_33"; label = ""; width = 48; }
|
|
: text { key = "h_39"; label = ""; width = 48; }
|
|
: text { key = "h_45"; label = ""; width = 48; }
|
|
: text { key = "h_51"; label = ""; width = 48; }
|
|
}
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Winkel-Wahl aus berechne-alle-winkel (Zielhoehe-basierter Solve, mehrere
|
|
// gueltige Winkel): wie vflw_winkel_hoehen (radio_column direkt, Text-Spalte
|
|
// parallel daneben), aber die Text-Spalte zeigt L_GF+L_VF statt Endhoehe
|
|
// (dynamisch befuellt, siehe vflw-gruppe-winkel-wahl-impl).
|
|
vflw_winkel_wahl : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: text { label = "Winkel waehlen:"; }
|
|
: row {
|
|
: radio_column {
|
|
key = "wahl";
|
|
: radio_button { key = "w_3"; label = "3 Grad"; }
|
|
: radio_button { key = "w_6"; label = "6 Grad"; }
|
|
: radio_button { key = "w_9"; label = "9 Grad"; }
|
|
: radio_button { key = "w_12"; label = "12 Grad"; }
|
|
: radio_button { key = "w_15"; label = "15 Grad"; }
|
|
: radio_button { key = "w_18"; label = "18 Grad"; }
|
|
: radio_button { key = "w_21"; label = "21 Grad"; }
|
|
: radio_button { key = "w_27"; label = "27 Grad"; }
|
|
: radio_button { key = "w_33"; label = "33 Grad"; }
|
|
: radio_button { key = "w_39"; label = "39 Grad"; }
|
|
: radio_button { key = "w_45"; label = "45 Grad"; }
|
|
: radio_button { key = "w_51"; label = "51 Grad"; }
|
|
}
|
|
: column {
|
|
: text { key = "h_3"; label = ""; width = 48; }
|
|
: text { key = "h_6"; label = ""; width = 48; }
|
|
: text { key = "h_9"; label = ""; width = 48; }
|
|
: text { key = "h_12"; label = ""; width = 48; }
|
|
: text { key = "h_15"; label = ""; width = 48; }
|
|
: text { key = "h_18"; label = ""; width = 48; }
|
|
: text { key = "h_21"; label = ""; width = 48; }
|
|
: text { key = "h_27"; label = ""; width = 48; }
|
|
: text { key = "h_33"; label = ""; width = 48; }
|
|
: text { key = "h_39"; label = ""; width = 48; }
|
|
: text { key = "h_45"; label = ""; width = 48; }
|
|
: text { key = "h_51"; label = ""; width = 48; }
|
|
}
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Generische Ja/Nein-Rueckfrage (2 Radio-Buttons, dynamischer Kopftext) -
|
|
// wiederverwendet z.B. fuer "trotzdem mit Mindestlaenge bauen?" (Zu-kurz-
|
|
// Nachfrage in vfl-baue-horizontal-koerper). Radio-Buttons statt Dropdown,
|
|
// Labels fest deutsch (nur "kopf" wird je Aufruf per set_tile befuellt).
|
|
// Drei Groessenvarianten (1/3/6 Kopf-Zeilen) statt EINER Variante mit immer 6
|
|
// Zeilen: DCL kann Tiles nicht dynamisch ausblenden/schrumpfen - ein leeres
|
|
// text-Tile belegt trotzdem seine volle Zeilenhoehe (grosse Luecke bei kurzen
|
|
// Hinweisen wie "Zusaetzlichen Separator einfuegen?"). vflw-gruppe-ja-nein-impl
|
|
// waehlt anhand der per vflw-umbruch-zeilen ermittelten Zeilenzahl die
|
|
// passende Variante (1/3/6). Alle drei teilen dieselben Tile-Keys "kopf1".."kopfN"
|
|
// plus "wahl"/"wahl_ja"/"wahl_nein"/"back"/"accept"/"cancel" - der Aufrufer
|
|
// muss dadurch NICHT zwischen ihnen unterscheiden, ausser bei new_dialog/
|
|
// set_tile fuer die (in der kleineren Variante gar nicht vorhandenen) hoeheren
|
|
// kopfN-Tiles.
|
|
vflw_ja_nein_1 : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
: column {
|
|
: text { key = "kopf1"; label = ""; width = 70; }
|
|
: boxed_radio_column {
|
|
key = "wahl";
|
|
label = "";
|
|
: radio_button { key = "wahl_ja"; label = "Ja"; value = "1"; }
|
|
: radio_button { key = "wahl_nein"; label = "Nein"; }
|
|
}
|
|
}
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
vflw_ja_nein_3 : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
: column {
|
|
: text { key = "kopf1"; label = ""; width = 70; }
|
|
: text { key = "kopf2"; label = ""; width = 70; }
|
|
: text { key = "kopf3"; label = ""; width = 70; }
|
|
: boxed_radio_column {
|
|
key = "wahl";
|
|
label = "";
|
|
: radio_button { key = "wahl_ja"; label = "Ja"; value = "1"; }
|
|
: radio_button { key = "wahl_nein"; label = "Nein"; }
|
|
}
|
|
}
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
vflw_ja_nein_6 : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
: column {
|
|
: text { key = "kopf1"; label = ""; width = 70; }
|
|
: text { key = "kopf2"; label = ""; width = 70; }
|
|
: text { key = "kopf3"; label = ""; width = 70; }
|
|
: text { key = "kopf4"; label = ""; width = 70; }
|
|
: text { key = "kopf5"; label = ""; width = 70; }
|
|
: text { key = "kopf6"; label = ""; width = 70; }
|
|
: boxed_radio_column {
|
|
key = "wahl";
|
|
label = "";
|
|
: radio_button { key = "wahl_ja"; label = "Ja"; value = "1"; }
|
|
: radio_button { key = "wahl_nein"; label = "Nein"; }
|
|
}
|
|
}
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Generische Auf/Ab-Richtungsfrage (2 Radio-Buttons, dynamischer Kopftext) -
|
|
// wiederverwendet fuer Punkt 7 (Kletter-Teilstrecke ohne Zielhoehe, sowohl
|
|
// "Naechstes im VF" als auch "Neue Linie: Ab/Auf VF" mit reduziertem
|
|
// Eingang). Radio-Buttons statt Dropdown, Labels fest deutsch.
|
|
vflw_richtung : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
key = "richtung";
|
|
label = "";
|
|
: radio_button { key = "richtung_auf"; label = "Auf"; value = "1"; }
|
|
: radio_button { key = "richtung_ab"; label = "Ab"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// Startpunkt-Typ (kein eindeutiger GF-/VF-Baustein per KS_AUS-Scan erkannt,
|
|
// siehe vfl-eingang-modus-bestimmen): EINE flache 3-Optionen-Frage statt
|
|
// verschachtelter Zwei-Schritt-Abfrage - ist der Vorgaenger unklar, sind alle
|
|
// drei Ergebnisse gleichwertig direkt waehlbar. Radio-Buttons statt Dropdown,
|
|
// Labels fest deutsch (GF-Stumpf-Laenge als Default-Wert 400mm statisch im
|
|
// Label, siehe *vfl-gf-min-laenge*).
|
|
vflw_startpunkt_typ : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Eingang:";
|
|
key = "eingang";
|
|
: radio_button { key = "eingang_direkt"; label = "Direkt Umlenkstation (kein GF-Stueck)"; value = "1"; }
|
|
: radio_button { key = "eingang_stumpf"; label = "GF-Stueck (min. 400mm) + Umlenkstation"; }
|
|
: radio_button { key = "eingang_ohne"; label = "Ohne Umlenkstation (VF-Fortsetzung)"; }
|
|
}
|
|
}
|
|
|
|
: row {
|
|
alignment = centered;
|
|
: button { key = "back"; label = "Zurueck"; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "accept"; label = "Ok Weiter"; is_default = true; fixed_width = true; width = 12; }
|
|
spacer;
|
|
: button { key = "cancel"; label = "Abbrechen"; is_cancel = true; fixed_width = true; width = 12; }
|
|
}
|
|
}
|
|
|
|
// ============================================================
|
|
// SEGMENT-GRUPPEN-DIALOGE (Modus 2 + Modus 3) - fassen die pro Segment
|
|
// aufeinanderfolgenden Fragen in EINEM Bildschirm zusammen. "kopf" zeigt
|
|
// dabei immer "Segment i/n ..." (wie die Konsolen-Frage), das jeweils
|
|
// abgefragte Segment ist zusaetzlich in der Zeichnung hervorgehoben
|
|
// (redraw-Highlight, gesetzt von vfl-seg-highlight in vf_linienzug.lsp VOR
|
|
// dem Oeffnen des Dialogs). Aufgerufen aus den vflw-seg-*-impl-Funktionen.
|
|
// ============================================================
|
|
|
|
// Modus 2, Segment "Gerade": Typ (GF/VF) + [nur bei GF aktiv] GF-Neigung.
|
|
// Das Neigungsfeld wird per action_tile auf "typ" aktiviert/deaktiviert.
|
|
// Radio-Buttons statt Dropdown, Labels fest deutsch.
|
|
vflw_seg_linie_m2 : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Typ:";
|
|
key = "typ";
|
|
: radio_button { key = "typ_gf"; label = "GF (Neigungswinkel)"; value = "1"; }
|
|
: radio_button { key = "typ_vf"; label = "VF (Bruecke)"; }
|
|
}
|
|
: text {
|
|
key = "wlabel";
|
|
label = "GF-Neigung (Grad):";
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 10;
|
|
}
|
|
: boxed_column {
|
|
label = "Separator (nur bei GF):";
|
|
: toggle { key = "sep_vor"; label = "Separator VOR diesem GF-Stueck"; }
|
|
: toggle { key = "sep_nach"; label = "Separator NACH diesem GF-Stueck"; }
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Modus 3, Segment "Gerade": Typ (GF / VF-Ab / VF-Auf / VF-Horizontal) + EIN
|
|
// Wertfeld, dessen Beschriftung mit dem Typ umschaltet (GF -> Neigung,
|
|
// VF-Ab/Auf -> Vario-Winkel, VF-Horizontal -> Feld deaktiviert). Umschaltung
|
|
// per action_tile auf "typ" (siehe vflw-seg-linie-m3-impl). Radio-Buttons
|
|
// statt Dropdown, Labels fest deutsch.
|
|
vflw_seg_linie_m3 : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Typ:";
|
|
key = "typ";
|
|
: radio_button { key = "typ_gf"; label = "GF (Neigungswinkel)"; value = "1"; }
|
|
: radio_button { key = "typ_vfab"; label = "VF-Ab"; }
|
|
: radio_button { key = "typ_vfauf"; label = "VF-Auf"; }
|
|
: radio_button { key = "typ_vfhor"; label = "VF-Horizontal"; }
|
|
}
|
|
: text {
|
|
key = "wlabel";
|
|
label = "";
|
|
}
|
|
: edit_box {
|
|
key = "wert";
|
|
label = "";
|
|
edit_width = 10;
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Segment "Eck/Bogen" (Modus 2 + Modus 3 identisch): Typ (GF-Bogen /
|
|
// Vario-Kurve) + [nur bei Vario-Kurve aktiv] Variante (aussen/innen). Die
|
|
// Variante-Gruppe wird per action_tile auf "typ" aktiviert/deaktiviert, die
|
|
// Vario-Kurve-Option selbst ggf. ueber "vario-erlaubt" (mode_tile), siehe
|
|
// vflw-seg-bogen-impl. Radio-Buttons statt Dropdown, Labels fest deutsch.
|
|
vflw_seg_bogen : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Typ:";
|
|
key = "typ";
|
|
: radio_button { key = "typ_gfbogen"; label = "GF-Bogen"; value = "1"; }
|
|
: radio_button { key = "typ_vario"; label = "Vario-Kurve"; }
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Variante:";
|
|
key = "variante";
|
|
: radio_button { key = "variante_aussen"; label = "Aussen"; value = "1"; }
|
|
: radio_button { key = "variante_innen"; label = "Innen"; }
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Modus 2: Lauf-Abschluss, NUR wenn der VF-Lauf das Ende des gewaehlten Pfads
|
|
// ist (kein Back-Lauf danach) - siehe vflw-m2-lauf-abschluss-impl. Radio-
|
|
// Buttons, Labels fest deutsch.
|
|
vflw_m2_lauf_abschluss : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Lauf beenden mit:";
|
|
key = "abschluss";
|
|
: radio_button { key = "abschluss_offen"; label = "Ohne Motorstation (offenes Ende, spaeter fortsetzen)"; }
|
|
: radio_button { key = "abschluss_motor"; label = "Motorstation setzen"; value = "1"; }
|
|
: radio_button { key = "abschluss_motor_es"; label = "Motorstation + ES-Element setzen (Kettenende)"; }
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|
|
|
|
// Modus 2: Lauf-Anfang, NUR wenn der VF-Lauf der Anfang des gewaehlten Pfads
|
|
// ist (kein Front-Lauf davor) - siehe vflw-m2-lauf-anfang-impl. Radio-Buttons,
|
|
// Labels fest deutsch.
|
|
vflw_m2_lauf_anfang : dialog {
|
|
label = "VarioFoerderer Assistent";
|
|
|
|
: column {
|
|
: text {
|
|
key = "kopf";
|
|
label = "";
|
|
width = 60;
|
|
}
|
|
: boxed_radio_column {
|
|
label = "Lauf beginnen mit:";
|
|
key = "anfang";
|
|
: radio_button { key = "anfang_offen"; label = "Ohne Umlenkstation (offener Anfang, spaeter fortsetzen)"; }
|
|
: radio_button { key = "anfang_umlenk"; label = "Umlenkstation direkt (kein GF1/Separator)"; }
|
|
: radio_button { key = "anfang_umlenk_gf1"; label = "Umlenkstation mit GF1 + Separator"; value = "1"; }
|
|
}
|
|
}
|
|
|
|
ok_cancel;
|
|
}
|