von private_lock » 04 Mär 2017, 12:02
Hallo ds10!
Keine Sorge, ich verstehe auch nicht immer alles, wie ich im anderen Thema drüben gemerkt habe
![Smile :-)](./images/smilies/icon_smile.gif)
Also einfach fragen, weil fragen kost ja nix. Ich hab das Thema auf beobachten und sollte hoffentlich nicht morgen tot umfallen.
A) Erinnerungsfenster
Genau genommen hast Du sie also gerade nicht im Blick, wenn sie seit Jahren auf einer Todo-Liste schlummern konnten *g* Bei mir dagegen ist es genau andersherum. Mit dem wirklich guten Lieblingssendungssystem komme ich nahezu drum herum, das Hauptfenster überhaupt noch öffnen zu müssen, das schlummert bei mir minimiert in der Taskleiste (
Tray-Icon in KDE kaputt). Ich könnte also sagen, für mich sind die Dialoge die wesentliche Interaktions-Schnittstelle beim alltäglichen Umgang mit TVB
B) Datenupdate
Änderung an der Plugin-Schnittstelle?
alt: Hier ist das Datenupdate, gib mir eine Komponente, die den User informiert, und in der Du alles selbst kontrollierst
neu: Hier ist das Datenupdate, welche Liste von Sendungen soll ich dem User speziell zeigen
Bislang habe ich den Dialog händisch maximiert, und das merkt TVB sich definitiv nicht. Aber ich werde mal darauf achten, wie groß er übermorgen rauskommt, wenn ich ihn morgen von Hand größer ziehe.
C) Suche
Kein Kommentar?
Animationen? ... Na gut, das Meer zu verlassen hat vielleicht Vorteile gebracht, aber wir hätten auf den Bäumen bleiben sollen *grins*
Ja, mir ist klar, dass man damit ne Menge Sch... treiben kann, wenn alles klicki bunti rumwobbelt. Speziell die Fenstergröße zu animieren halte ich dagegen für relativ einfach. Es braucht nur einen Timer-Thread, der die Höhe in kleinen Inkrementen setzt, das Neuzeichnen ist eh schon implementiert, wenn der Nutzer selbst mit der Maus am Fensterrand ziehen würde.
Beim weichen Scrollen ist das Neuzeichnen ebenfalls schon implementiert. Es fehlt wieder nur ein Timer-Thread, der eine Bewegung simuliert, indem die Scrollposition neu gesetzt wird. Die Maus-Scroll-Event müssen dazu abgefangen und uminterpretiert werden. Jedes fügt eine Beschleunigungsphase und eine Verzögerungsphase hinzu, so dass sich mehrere Events zu einer höheren Geschwindigkeit addieren und gleichzeitig die anderen Verzögerungen weiter hinausschieben, so dass eine größere Distanz zurückgelegt wird -> scroll+scroll ist weiter als scroll ... Pause ... scroll ... Oh und wenn die Scroll-Richtung gewechselt wird, muss die Animation abgebrochen werden, um sofort anzuhalten und dem Nutzer das Gefühl absoluter Kontrolle zu lassen.
Am wichtigsten ließe sich das weiche Scrollen später (wenn es stabil läuft) auf die Programmtabelle anwenden. Allerdings ist dort besonders kritisch, dass der Zeichenvorgang vermutlich sehr aufwändig ist und somit doch eine Änderung an der Zeichenroutine nötig werden könnte. Im Grund müsste die Tabelle mit ausreichend Platz um das eigentliche Anzeigefenster herum im Speicher fertig gerendert werden, so dass das letztliche Anzeigen verhältnismäßig billig wird. Leider treibt das den Speicherverbrauch hoch ... das gerenderte Bild sollte beim Minimieren unbedingt freigegeben werden. Eine Kompromisslösung könnte sein, den herein-scrollenden Bereich nur als Wireframe zu zeichnen, bis die Animation zum Stillstand gekommen ist. Andererseits werden Rechner immer schneller und meiner macht schon eine wirklich gute Figur, wenn ich die Tabelle mit der Maus greife und ziehe, das ruckelt nur wenig, so dass es vermutlich für ein "weiches stottern" ausreicht ... Gibt dann halt eine Einstellung, wie butterweich & aufwändig das Scrollen animiert werden soll (sprich in welchen großen bzw. kleinen Zeit-Incrementen erneut gezeichnet wird), um die Rechenleistung zukünftiger CPUs auszureizen.
Es gibt sogar ein
Code-Beispiel!
MfG
private_lock
PS: Ob man John F. Kennedy auch auf Software anwenden kann?
“We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard."
Hallo ds10!
Keine Sorge, ich verstehe auch nicht immer alles, wie ich im anderen Thema drüben gemerkt habe :-) Also einfach fragen, weil fragen kost ja nix. Ich hab das Thema auf beobachten und sollte hoffentlich nicht morgen tot umfallen.
A) Erinnerungsfenster
Genau genommen hast Du sie also gerade nicht im Blick, wenn sie seit Jahren auf einer Todo-Liste schlummern konnten *g* Bei mir dagegen ist es genau andersherum. Mit dem wirklich guten Lieblingssendungssystem komme ich nahezu drum herum, das Hauptfenster überhaupt noch öffnen zu müssen, das schlummert bei mir minimiert in der Taskleiste ([url=https://bugs.kde.org/show_bug.cgi?id=362941]Tray-Icon in KDE kaputt[/url]). Ich könnte also sagen, für mich sind die Dialoge die wesentliche Interaktions-Schnittstelle beim alltäglichen Umgang mit TVB
B) Datenupdate
Änderung an der Plugin-Schnittstelle?
alt: Hier ist das Datenupdate, gib mir eine Komponente, die den User informiert, und in der Du alles selbst kontrollierst
neu: Hier ist das Datenupdate, welche Liste von Sendungen soll ich dem User speziell zeigen
Bislang habe ich den Dialog händisch maximiert, und das merkt TVB sich definitiv nicht. Aber ich werde mal darauf achten, wie groß er übermorgen rauskommt, wenn ich ihn morgen von Hand größer ziehe.
C) Suche
Kein Kommentar?
Animationen? ... Na gut, das Meer zu verlassen hat vielleicht Vorteile gebracht, aber wir hätten auf den Bäumen bleiben sollen *grins*
Ja, mir ist klar, dass man damit ne Menge Sch... treiben kann, wenn alles klicki bunti rumwobbelt. Speziell die Fenstergröße zu animieren halte ich dagegen für relativ einfach. Es braucht nur einen Timer-Thread, der die Höhe in kleinen Inkrementen setzt, das Neuzeichnen ist eh schon implementiert, wenn der Nutzer selbst mit der Maus am Fensterrand ziehen würde.
Beim weichen Scrollen ist das Neuzeichnen ebenfalls schon implementiert. Es fehlt wieder nur ein Timer-Thread, der eine Bewegung simuliert, indem die Scrollposition neu gesetzt wird. Die Maus-Scroll-Event müssen dazu abgefangen und uminterpretiert werden. Jedes fügt eine Beschleunigungsphase und eine Verzögerungsphase hinzu, so dass sich mehrere Events zu einer höheren Geschwindigkeit addieren und gleichzeitig die anderen Verzögerungen weiter hinausschieben, so dass eine größere Distanz zurückgelegt wird -> scroll+scroll ist weiter als scroll ... Pause ... scroll ... Oh und wenn die Scroll-Richtung gewechselt wird, muss die Animation abgebrochen werden, um sofort anzuhalten und dem Nutzer das Gefühl absoluter Kontrolle zu lassen.
Am wichtigsten ließe sich das weiche Scrollen später (wenn es stabil läuft) auf die Programmtabelle anwenden. Allerdings ist dort besonders kritisch, dass der Zeichenvorgang vermutlich sehr aufwändig ist und somit doch eine Änderung an der Zeichenroutine nötig werden könnte. Im Grund müsste die Tabelle mit ausreichend Platz um das eigentliche Anzeigefenster herum im Speicher fertig gerendert werden, so dass das letztliche Anzeigen verhältnismäßig billig wird. Leider treibt das den Speicherverbrauch hoch ... das gerenderte Bild sollte beim Minimieren unbedingt freigegeben werden. Eine Kompromisslösung könnte sein, den herein-scrollenden Bereich nur als Wireframe zu zeichnen, bis die Animation zum Stillstand gekommen ist. Andererseits werden Rechner immer schneller und meiner macht schon eine wirklich gute Figur, wenn ich die Tabelle mit der Maus greife und ziehe, das ruckelt nur wenig, so dass es vermutlich für ein "weiches stottern" ausreicht ... Gibt dann halt eine Einstellung, wie butterweich & aufwändig das Scrollen animiert werden soll (sprich in welchen großen bzw. kleinen Zeit-Incrementen erneut gezeichnet wird), um die Rechenleistung zukünftiger CPUs auszureizen.
Es gibt sogar ein [url=https://stackoverflow.com/questions/15604399/simple-way-of-creating-an-animated-jscrollpane-in-java]Code-Beispiel[/url]!
MfG
private_lock
PS: Ob man John F. Kennedy auch auf Software anwenden kann?
“We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard."