Ein UI-Konzept für den Textmodus

Es gibt 78 Antworten in diesem Thema, welches 30.382 mal aufgerufen wurde. Der letzte Beitrag (12. Februar 2021 um 15:56) ist von Retrofan.

  • Soderla, trotz Corona-bedingtem leichten Stress, mein Berufs- und Privatleben zu organisieren bin ich weitergekommen. Meine Assembly-Implementierung hat mittlerweile den Stand der Java-Simulation leicht überholt. Der Code wächst schneller als ich mir das wünsche, da muss ich wohl noch mal ein paar Gedanken spendieren, wie man das etwas straffen kann. Dafür ist der momentane Stand recht flott.

    Anbei ein Beispielprogramm, das ein paar verschiedene Menükonfigurationen durchgeht: Bitte melde dich an, um diesen Anhang zu sehen.. Durch Auswahl von "Next" mit Cursortasten und Return kommt man ins nächste Menü. Oh, Shortcuts gehen übrigens noch nicht.

    Bitte melde dich an, um diesen Anhang zu sehen.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Ah, ok! Meine Idee war, dass die Hauptmenüs in jedem Fall farblich erkennbar sein sollten (auch deren Shortcuts). Außerdem braucht ein Reiter, der bereits den Fokus hat, doch keine Ansteuerung mehr? Und dann sollte auch ausgegraut werden können, oder (unten links im Screenshot)? Und wie willst du mit dem Inhalt der Datenrahmen umgehen? Hier mal ein Screenshot, der meine Anmerkungen zeigen soll:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Arndt

    GoDot C64 Image Processing
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Ah, ok! Meine Idee war, dass die Hauptmenüs in jedem Fall farblich erkennbar sein sollten (auch deren Shortcuts). Außerdem braucht ein Reiter, der bereits den Fokus hat, doch keine Ansteuerung mehr? Und dann sollte auch ausgegraut werden können, oder (unten links im Screenshot)? Und wie willst du mit dem Inhalt der Datenrahmen umgehen? Hier mal ein Screenshot, der meine Anmerkungen zeigen soll:

    Ja, ausgrauen habe ich definitiv auf dem Schirm. Der Inhalt des Bodies kann durch Widgets gehandelt werden (ich habe mittlerweile schon ein simples Text-Widget implementiert), oder halt durch das Programm selber, wenn es etwas komplexes ist.

    Hm, ein aktiver Reiter braucht in der Tat eigentlich nicht mehr den Fokus bekommen. Aber ich fand es konsistenter, wenn man immer alle Elemente anwählen kann und halt nur beim Aktivieren ggfs. nichts passiert.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Hmm, sieht gut aus.

    Ich denke gerade darüber nach ob man das nicht auch alles generieren könnte.

    Hab jetzt nicht alles hierzu gelesen. Vielleicht wurde es bereits erwähnt.

    Ich würde das Ganze als JSON Konstrukt auf dem PC erstellen und dann durch einen Generator/Java schicken der dann Assembly ausgibt.

    Wäre das nicht auch ne Idee?

    "Kaum zu fassen, das bei jedem Menschen, dessen Schädel man nach seinem Tod öffnete, ein Gehirn gefunden wurde".

    Unbekannt


    Meine Projekte : Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.

  • durch einen Generator/Java schicken der dann Assembly ausgibt.

    Ja, das war Korodnys ursprüngliche Idee. Finde ich auch gut, allerdings würde ich evtl. sogar einen grafischen Menü-Editor am PC bevorzugen. In jedem Fall wollte ich aber die Library als Basis haben, da diese es ja auch erlaubt, Menüs dynamisch zu erstellen (und auch den Output eines Editors vereinfacht).

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Ich finde es ebenfalls konsistenter, wenn auch der aktive Reiter angewählt werden kann - im Normalfall hat ja immer erst der Body den Focus, bevor ich (je nach Tab-Position) mit UP oder LEFT auf die Tabs wechsle - dann bin ich automatisch auf dem aktiven Tab, anders geht das gar nicht. Machen moderne GUIs auch so.

    Das bringt mich auch zu einem Änderungsvorschlag: beim Wechsel per CRSR auf die Tabs sollte m.E. immer das aktive Tab ausgewählt werden, das macht das Beispielprogramm anders.

    GoDot: was meinst du mit "Hauptmenüs"?

    Ich glaube wir sind uns alle einig, dass man "komplexere" UIs nicht mehr von Hand programmieren will ;) Ich persönlich würde auch eher zu einem klassischen GUI Designer tendieren, weil das auch potentiellen "Umsteigern" mehr Anreiz bieten würde. Aber je mehr Lösungen, desto besser...

  • beim Wechsel per CRSR auf die Tabs sollte m.E. immer das aktive Tab ausgewählt werden, das macht das Beispielprogramm anders.

    Gute Idee und leicht zu ändern! Mach ich demnächst.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Wo ich gerade von "modernen GUIs" spreche: dort ist es so, dass bei Focus auf den Karteikartenreitern die Cursortasten direkt das nächste/vorherige Tab auswählen ohne dass ENTER gedrückt werden müsste. Zumindest macht GTK dass - aber ich meine unter Windows ist das auch so?

    Keine Ahnung, ob man das Verhalten imitieren sollte... Eigentlich sollte man ja bekannte Bedienmuster kopieren, aber so viele Leute wird es nicht geben, die Karteikartenreiter unter Windows/Linux mit den Cursortasten bedienen.

  • dort ist es so, dass bei Focus auf den Karteikartenreitern die Cursortasten direkt das nächste/vorherige Tab auswählen ohne dass ENTER gedrückt werden müsste

    Das mögliche Problem das ich dabei sehe, ist dass es je nach Widgets ein wenig dauern kann, bis der Body neu dargestellt wurde. Dadurch würde es träge, wenn man viele Tabs hat und durch alle durchsteppen muss.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • was meinst du mit "Hauptmenüs"?

    Die Reiter (die ja statt ganz oben auch mal auf der linken Seite erscheinen können, ich hab irgendwo schon mal "Hufnagel-Menü" dazu gesagt :wink: ). Die Reiter sind ja komplett grau, wenn sie den Fokus haben. In meinem Screenshot ist der Text darin immer noch grau, wenn sie ihn verlieren. Dachte, das wäre für einen User klarer. Auch die Kennzeichnung des Hotkeys wäre dann grau (siehe Post Bitte melde dich an, um diesen Link zu sehen.).

    Arndt

    GoDot C64 Image Processing
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Ein paar Beispiele für den erwähnten Launcher, eines zeigt unseren Dialog im Maximalausbau (Karteikartenreiter, großer Hauptteil, Knöpfe):

    Bitte melde dich an, um diesen Anhang zu sehen.

    Woher kommt denn das hier? Ist das ein Mockup oder gibt's das wirklich?

    C64 - Die einzig wahre PlayStation!
    Bitte melde dich an, um diesen Link zu sehen.

  • Woher kommt denn das hier? Ist das ein Mockup oder gibt's das wirklich?

    Ah, sorry - ich dachte das erkennt jeder der diese "Neues OS/GUI"-Threads liest ;) Das ist ein Teil von Retrofans optisch sehr geilen Bitte melde dich an, um diesen Link zu sehen. für eine Hires-GUI mit dem Namen NaxOS.

  • Ich hatte den Thread anfangs mitgelesen, stimmt. Ist aber auch schon eine Weile her... Jetzt wo Du es sagst, fällt es mir auch wieder ein.

    C64 - Die einzig wahre PlayStation!
    Bitte melde dich an, um diesen Link zu sehen.

  • Bei der Codegröße die ich schon jetzt erreicht habe kommen mir aber ziemliche Zweifel wieviel Speicher man neben so einer schicken Bitmap-GUI noch für die eigentliche Funktionalität übrig hätte :/

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Der Screenshot den ich rausgepickt hatte, war ja auch mehr für eine komplexe UI a la GEOS gedacht, wenn ich das richtig verstanden hatte, und das wäre halt etwas, was ich faszinierend finde. Ein Launcher sollte für mich schlicht und schnell sein. Da ist Zeichensatz wirklich ok.

    C64 - Die einzig wahre PlayStation!
    Bitte melde dich an, um diesen Link zu sehen.

  • Bei der Codegröße die ich schon jetzt erreicht habe kommen mir aber ziemliche Zweifel wieviel Speicher man neben so einer schicken Bitmap-GUI noch für die eigentliche Funktionalität übrig hätte

    Eine recht spezielle Memory-Map hatte ich ja auch (mit Unterstützung) konzipiert und zur Diskussion gestellt. Basis für alle Überlegungen war, eine Speichererweiterung einzusetzen. Als Besonderheit dachte ich dabei an eine 1MB-ROM-Erweiterung (EasyFlash) statt einer RAM-Erweiterung (die aber auch funktionieren würde, wenn Batterie-gepuffert). Es ging dabei ja um mehr als nur um ein GUI – der "Rest" (das OS) muss natürlich auch umgesetzt werden, wenn man so ein (für C64-Verhältnisse komplexes) GUI realisieren will.

    Die im Mockup gezeigten Tabs gehören zum Desktop/Home-Screen, der auch bei meinem Konzept eine separate App wäre. Theoretisch könnte sogar der Code für jeden Tab (App-Launcher/File-Browser/System-Einstellungen) separat vorliegen und blitzschnell aus dem ROM eingeblendet/geladen werden, sobald man umschaltet. Wo das GUI (bzw. dessen Primitives) etc. liegt, kann man der Memory-Map in dem verlinkten Thread (gegen Ende) entnehmen.

    Es sollte aber klar sein, dass es sich dabei nur um ein frühes Konzept handelt (um vor allem das Prinzip des Work/Load-Wechsels bei meiner EF-Nutzung zu erklären) und natürlich während des Prozesses verfeinert und angepasst werden müsste, wenn man das als Basis für ein OS verwenden würde.

    Bitte melde dich an, um diesen Link zu sehen. | Meine Lieblings-Themen im Forum64:

    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • Eine etwa bezogene Frage.. was nutzt man heutzutag um solche Layouts zu erstellen? Natürlich kann ich alles auf dem C64 oder Emulator von Hand eintippen oder aus BASIC ausgeben. Gibt es aber vielleicht andere, bequemere Möglichkeiten?

  • Hier noch ein Beispiel für einen Text-UI-Entwurf, recht aktuell, und von Gregorio Nacu (dem Mann hinter dem Projekt c64os.com):

    Bitte melde dich an, um diesen Link zu sehen.

    EDIT: Bei vimeo hat er auch das Video, was im Twitter-Link eingebettet ist und noch mehr Videos: Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

    Einmal editiert, zuletzt von emulaThor (12. Februar 2021 um 16:00)

  • Hier noch ein Beispiel für einen Text-UI-Entwurf

    Ach guck mal, mein PXL-Font. Ich nehme an, dass der mit seinem JiffyDOS geliefert wurde. Ist allerdings nicht die aktuellste Version. Wem ich die wohl zukommen lassen muss, damit bei zukünftigen Lieferungen die Version 2.3 dabei ist?

    Bitte melde dich an, um diesen Link zu sehen. | Meine Lieblings-Themen im Forum64:

    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.