Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 04:33

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 27 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 11:19 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Klar ginge das schon, aber es ist nicht user freundlich ;)
Im moment jhabe ich es so gelöst das wenn das Popup nicht ins bild passt oben und unten einfach die scroll balken wie auch bei Windows angezeigt werden... aber das ist halt einach sehr ungünstig, weil man wenn man das menü nicht kennt erstmal auf der suche ist wo die einträge sind..


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 11:41 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also ich muss Aya dort aber recht geben. Ich persönlich sehe in einer Anwendung für Endbenutzer an erster Stelle die Bedienung und die Benutzerfreundlichkeit. Ich finde nichts schlimmer als ein Programm was ein "Eigenleben" bei der Bedienung hat. Besonders "gutes" Beispiel ist IrfanView. Wirklich tolles Programm, welches ich dauerhaft seit ca. 8 Jahren benutze. Aber die Menüs und Dialoge sind mittlerweile teils wirklich Gruselig. Aber da muss man zum Glück seltener rein. Aber in der 4.10 hat er das Verhalten des Zooms in meinen Augen vollkommen verhauen! Ich benutze aktuell die 4.0 und wenn sich an dem Zoom nichts ändert war das meine letzte Version davon.

Hat zwar nichts mit einem Popup zu tun aber ist das gleiche Prinzip. Das verhalten der Popups kennt jeder. Und das ist eigentlich auch überall gleich. wenn man mal von den angepassten Menüs absieht (die ich immer deaktiviere). Und da sollte man sich meiner Meinung nach überlegen ob man daran etwas verändert. Zu mal das Flipbook auch wesentlich kleiner Fenster haben wird als zum Beispiel Blender. Und da kommt das vermutlich häufiger zu solchen Fällen.

Evtl würde auch die zweite Möglichkeit genügen. Also seperates Fenster und OpenGL Kontext. Im schlimmsten Fall hätte man eben die Texturen doppelt. Aber dafür haben sie dann das gleiche Design (für mich auch sehr wichtig) und durch das simple Fenster auch viel einfacher zu implementieren als Popups. Weil Fenster brauchst du so oder so und dann wäre es wieder in deiner Hand was du machst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 11:45 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
IMHO sind Popupmenüs auch nicht benutzerfreundlich.
Entstanden sind sie wohl nur weil die Entwickler/Designer den Bildschirm mit überflüssigem Müll vollgeballert haben und dann merkten dass da noch ein Feld reinmuss. Mit Müll meine ich Objekte, die natürlich einen Sinn bzw eine Funktion haben aber in dem Moment für den Benutzer nicht unbedingt brauchbar sind.

Achtung blöder Spruch: Weniger ist mehr. :D


Gruß
damadmax

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 11:48 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Lossy eX hat geschrieben:
Evtl würde auch die zweite Möglichkeit genügen. Also seperates Fenster und OpenGL Kontext. Im schlimmsten Fall hätte man eben die Texturen doppelt. Aber dafür haben sie dann das gleiche Design (für mich auch sehr wichtig) und durch das simple Fenster auch viel einfacher zu implementieren als Popups. Weil Fenster brauchst du so oder so und dann wäre es wieder in deiner Hand was du machst.

Da hab ich halt die befürchung das es evtl irgendwo probleme gibt wenn ich aufeinmal 10 m kleine fenster habe, die alle OpenGL benutzen.. oder ist das problemlos machbar? Also ich meine, klar machbar aufjedenfall, aber performance technisch? Da gäbe es ja ohne ende context wechsel etc..


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 12:31 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
damadmax: Popups sind context sensitiv. Also abhängig von dem zu Grund liegenden Objekt.

Man könnte natürlich anstelle der Popups auch einen vollkommen anderen Ansatz wählen. Aber wie der aussehen könnte hängt vollkommen von der Anwendung ab. Ohne die Sinnvoll gesehen zu haben kann man da keine sinnvolle Aussage treffen.

Aya: "aufeinmal 10 m kleine fenster" 10 m? Was meinst du damit? Das Popup wäre nur ein einziges Fenster. Der Inhalt dieses Fensters ist nahezu statisch außer du bewegst die Maus darüber etc. Also von daher denke ich, dass die Anzahl der Kontextwechsel sich so in Grenzen halten sollte. Kosten wird es aber in jedem Fall etwas.

Aber du hast doch so oder so mehr als nur 1 Fenster, oder? Wenn ja hättest du dieses Problem ja in jedem Fall. Du darfst da natürlich nur dann neu zeichnen, wenn sich etwas verändert hat und den Kontext nur dann wechseln, wenn es sein muss. Da würde ich mir sogar die Mühe machen und einen KontextManager davor klemmen. Wobei du da aber auch nicht die dglOpenGL zum Wechseln benutzen solltest sondern direkte Systemfunktionen. Die dglOpenGL macht da leider etwas mehr. Selbst wenn keine Extension geladen werden müssen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 13:13 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Lossy eX hat geschrieben:
Aya: "aufeinmal 10 m kleine fenster" 10 m? Was meinst du damit? Das Popup wäre nur ein einziges Fenster. Der Inhalt dieses Fensters ist nahezu statisch außer du bewegst die Maus darüber etc. Also von daher denke ich, dass die Anzahl der Kontextwechsel sich so in Grenzen halten sollte. Kosten wird es aber in jedem Fall etwas.


Das "m" war ein tippfehler, das gehört da nicht hin '^^
Und ich meinte das im sinne von, wenn das popup menü nen submenü hat, und das wieder nen submenü etc.. das geht halt schnell... :)

Und, soll ich die fenster immer erst dann erstellen wenn sie benötigt werden und dannach wieder killen, oder sollen die dauerhaft immer da sein und nur ihre visibility ändern etc...? Was wäre da sinnvoller?

Lossy eX hat geschrieben:
Aber du hast doch so oder so mehr als nur 1 Fenster, oder? Wenn ja hättest du dieses Problem ja in jedem Fall. Du darfst da natürlich nur dann neu zeichnen, wenn sich etwas verändert hat und den Kontext nur dann wechseln, wenn es sein muss. Da würde ich mir sogar die Mühe machen und einen KontextManager davor klemmen. Wobei du da aber auch nicht die dglOpenGL zum Wechseln benutzen solltest sondern direkte Systemfunktionen. Die dglOpenGL macht da leider etwas mehr. Selbst wenn keine Extension geladen werden müssen.


die dglOpenGL kann ich leider sowieso nicht benutzen, weil C++.. ;)

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 14:42 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ah. Okay. Untermenüs hatte ich ehrlich gerade gar nicht bedacht. Aber mehr als eines würde ich auch nicht machen. Sonst findet das sowieso keiner mehr. ;)

Was du aber nicht vergessen solltest. Wenn du in einem Untermenü bist, dann hast du evtl 3 RCs aber der des Ober Popus wurde nur ein Mal aktiviert um es zu zeichnen. Du musst es ja nicht laufend neu zeichnen sondern nur wenn sich etwas verändert hat. Wenn dein HauptRC eine Animation hat, dann brauchst du für die popups ja nur kurz auf einen anderen RC wechseln. Ich denke das ist von Aufwand her sogar vernachlässigbar, da alles irgendwie mit Benutzerinteraktion zusammenhängt.

Ob du die Fenster behalten solltest oder nicht kann ich dir nicht sagen. Weil du hast typischerweise für jedes Fenster einen RC. Doublebuffered, Tiefenbuffer, Texturen etc. Das dürfte schon ein bisschen was an GRAM sein. Auf der anderen Seite weiß ich aber nicht wie lange es dauert einen RC zu erstellen. Die Texturen etc. solltest du wenn möglich sharen. Ansonsten musst du sie neu hochladen und das dauert auch etwas Zeit. Also das ist die Wahl zwischen Zeit oder kostbarem GRAM. Allerdings denke ich selbst eine Verzögerung von 100 ms ist durchaus noch im Rahmen dessen was man ertragen kann um es als Angenehm zu empfinden. Wenn das Fenster schon da ist aber der Inhalt noch nicht gezeichnet wurde, dann sind wohl auch 200 ms drin.

Hast du denn schon mal überlegt obs nicht evtl sogar auch noch eine ganz andere Möglichkeit gibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 14:46 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Lossy eX hat geschrieben:
Hast du denn schon mal überlegt obs nicht evtl sogar auch noch eine ganz andere Möglichkeit gibt?

Eine ganz andere möglichkeit statt PopupMenus?
Die einzige alternative wären lauter kleine tool buttons, aber das finde ich weit unübersichtlicher als ein gut strukturiertes menü ;)

Allerdings will ich meine UI die ich grad bastel ja auch noch anderweitig verwenden dann später = die Popup Menüs sollten so oder so gehen.

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 15:31 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Gut, dass du sie später brauchst ist sicher ein Argument. ;)

Alternativen. Na ja. Ich kenne deine Anwendung nicht deswegen kann ich nicht sagen wie und wo man da was machen könnte. Wie immer sind der Phantasie keine Grenzen gesetzt. Wenn es sich an etwas Bekanntem orientiert sollte es sich aber auch nicht zu stark anders verhalten. Aber Möglichkeiten wären zum Beispiel:
- sich einblendenden Schaltflächen (ich habe bewusst nicht Buttons gesagt)
- drag & drop. Also erst gar keine Popupbefehle für etwas was man intuitiv von links nach rechts ziehen will.
- so eine kontextsensitive Bar wie das im WindowsExplorer der Fall ist. Die hat je nach Objekt ganz unterschiedliche Befehle.
- in Black & White 2 gab es glaube ich ein rundes Popupmenü wie das Hauptmenü von Projekt W. Nur kleiner und um die Maus verteilt. Damit könnte man auch Untermenüs realisieren. Passt aber nicht in alle Designkonzepte. Darf man dann vermutlich auch nicht ganz so verspielt gestalten. Spart aber durchaus Wege mit der Maus.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 20:01 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Wurde mein Vorschlag übersehen oder nur stillschweigend abgelehnt? Ich will mich hier jetzt nicht aufdrängen, aber nen Kommentar wäre schon nett :wink: (vielleicht habe ich auch einfach den Kommentar übersehen :roll: )
Lord Horazont hat geschrieben:
Eine spontane Idee, falls du auf minifenster angewiesen bist: Du könntest (um leistung beim erstellen der Fenster zu sparen) den Popup/Dropdown-Inhalt in deinem Hauptkontext (z.B. im AUX-Buffer oder einem FBO) rendern und dann per BitBlt auf dein Popup kopieren. Damit sparst du dir nervige Dinge wie Context Sharing und so. Und da du dann sowieso keine Alphatransparenzen haben kannst (es sei denn, du benutzt layered windows, wobei das so eine Sache mit der performance ist...), fällt das ja auch nicht weiter auf.


Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2008 20:04 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Bei der sache mit dem BitBlt ist wieder das problem der platformunabhängigkeit.. sprich ich müßte ür jedes OS wieder ne eigene BitBlt funktion implementieren etc, das was ich ja mit OpenGL grad zu umgehen versuche ;)

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 18, 2008 10:13 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Wie wärs mit Docks wie im VS oder Delphi ab der 2005er. Die ließen sich auch über scissor und nem zweiten Renderpass realisieren. Sprich: an den Rändern des Fensters kleine Laschen die bei MouseOver dann ein Menü einblenden.

p.s.: zu viele Untermenüs würde ich sowieso vermeiden. Höchstens zwei Ebenen, alles andere wird wieder zur Suchorgie.

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 27 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]