// ============================================================ // 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; } } } // 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)"; } } } : 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 6 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). 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_variokurve"; label = "Vario-Kurve (horizontale Kurve, 30/60/90 Grad)"; } : radio_button { key = "wahl_liniegf"; label = "Neue Linie: GF (Gefaellestrecke)"; value = "1"; } : 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)"; } : radio_button { key = "wahl_linieende"; label = "Neue Linie BIS Kettenende (danach Separator + ES-Element)"; } } } // PROTOTYP "Zurueck"-Button (siehe Plan curious-prancing-parasol.md): ersetzt // ok_cancel durch eine eigene 3-Button-Zeile. done_dialog-Codes: 0=Abbrechen // (unveraendert, is_cancel -> ESC/Leertaste wirkt weiterhin), 1=Weiter // (unveraendert, is_default), NEU 2=Zurueck (verwirft das zuletzt gebaute // Kettenglied und fragt es neu ab, siehe vflw-gruppe-naechstes-element-impl/ // vfl-modus-abbruch-sichern). : 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 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; }