größte freie Desktop-Fläche für neue Fenster

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
DelUser01

größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

eine Denksportaufgabe?

Hallo

ich hänge an einem Problem...
Vorwort:
mit meinem Programm können beliebig viele zusammenhängene Fenster geöffnet werden.
Vor längerer Zeit habe ich Funktionen erstellt welche für jedes neue Fenster die bestmögliche Position errechnet.
Warum auch immer funktioniert das bei den heutigen 4k-Desktops nicht mehr, auf denen (eigentlich) ausreichend Platz für Programmfenster sein sollte.

ALSO suche/benötige ich eine Rechenroutine, welche für das nächste neu zu öffnende Programmfenster den größtmöglichen freien Platz auf dem Desktop herausfindet.
- der größtmögliche freie Platz bezieht sich ausschließlich auf durch Fenster meiner Programme belegen Fläche.
- Desktop-Fläche welche durch Fenster von Fremdprogrammen belegt sind werden ignoriert.
- Desktop-Flächen welche durch meine Programme belegt sind liegen vor.

Vielleicht eigentlich eine logische Denkaufgabe - ich stehe momentan vor einer Wand :banghead:
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von AUGE_OHR »

willst du meine Tetris Lösung haben ... sollte mal eine Demo zur "automatischen" Lösung werden ... :badgrin:

jetzt im Ernst : das zu "berechnen" könnte ziemlich lange dauern wenn du nicht mehr Einschränkungen machen kannst.
ausgehend von einer Position {0,0} und Grösse {x,y} des neuen Fenster müsste man "in Schritten" prüfen ob es ein anderes Fenster "trifft"

Code: Alles auswählen

      FOR x := 1 TO aDesk[1]-aNewSize[1] STEP nXstep
         FOR y := 1 TO aDesk[2]-aNewSize[2] STEP nYstep
            aNewPos := {x,y}

            FOR i := 1 TO LEN(aFenster)
               aPos[1]  := aFenster[i][xPos ]
               aPos[2]  := aFenster[i][yPos ]
               aSize[1] := aFenster[i][xSize]
               aSize[2] := aFenster[i][ySize]

               IF HitWindow(aNewPos,aNewSize, aPos,aSize)
ein "HitWindow" ist gegeben wenn einer der 4 neuen Ecken in einem anderen Fenster liegt.
wenn nun das neue Fenster grösser ist muss man anders herum prüfen ob das kleine in das grosse passt.
gruss by OHR
Jimmy
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von HaPe »

Morgen Roland !
ALSO suche/benötige ich eine Rechenroutine, welche für das nächste neu zu öffnende Programmfenster den größtmöglichen freien Platz auf dem Desktop herausfindet.
Hast du einen Fenster-Manager im deinem Programm?
Ich frage deshalb weil ich den Eindruck habe dass man suchen muß; mit einem Fenster-Manager wird beim Öffnen und Schließen der Fenster dies protokolliert und man weiß im Vorfeld wo noch wie viel Platz ist.
Frage: Kann man die Größe der Fenster ändern, ist also ein Sizer vorhanden?
--
Hans-Peter
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von brandelh »

Ich denke es ist viel Einfacher vorher den Platz logisch z.B. für 4 oder 6 oder 9 Fenster zu planen und diese Größen zu berechnen.
Dann musst du nur wissen, ob Platz 4 z.B. belegt ist und den nächsten freien suchen ...
Die Position und Größe legt man mit SetPosAndSize() fest ...

Wenn es unabhängige Programme sind wird es komplexer ...
Gruß
Hubert
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

  1. Es geht nur um bestimmte verbundene (gekoppelte) Fenster.
  2. Die Position und Größe der vorhandenen Fenster kann abgefragt werden bzw. ist zwischengespeichert.
  3. Die Fenster haben beliebige Größen.
  4. Meist sind es nur 2 bis 5 Fenster.
  5. Es gibt Fenster, da wird die Größe und Position automatisch gespeichert und sollen/müssen auch dort wieder angezeigt werden. Diese Fenster werden aber bei der Berechnung der Position neuer Fenster berücksichtigt.
  6. vorhandene Fenster werden nicht verschoben um das neue Fenster anzuzeigen
    (es gibt eine Funktion welche alle Fenster proportional verschiebt).
Im Grunde geht es "nur" darum, auf dem Desktop die größtmögliche rechteckige Fläche zu finden bei der am wenigsten Fläche der anderen zu berücksichtigenden Fenster überdeckt wird.
Dort wird dann das neue Fenster reingesetzt.
Für das nächste Fenster wird dann wieder gesucht.

Wenn einer einen großen Monitor hat ist das erst einmal die schnellste Lösung.
Ist die Desktopfläche zu klein bzw. geht der freie Platz aus kann man auch nichts machen.

Zum einen geht es darum, dass der User mit einem großen Monitor den höchstmöglichen automatischen Komfort hat. Zum anderen soll der User leichter die Möglichkeit haben zwischen den Fenstern mit der Maus hin und herzuspringen ohne das richtige Fenster auf der Taskleiste suchen zu müssen.

Ich hatte einen Fenster Manager, der funktionierrte aber nur richtig so lange alle Fenster die gleiche Größe hatten.
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

@Jimmy

ob "Tetris" ein passender Ansatz ist weiß ich nicht.
Es geht ja "nur" um rechteckige Fenster und keines wird verschoben.
Das neue Fenster soll ja entweder irgendwo vollständig reinpassen oder mit minimalsten Überschneidungen drübergelegt werden.
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von HaPe »

Hallo Roland !

Zwei Fragen:
- Sind das Fenster in einer Applikation/EXE oder 1 Fenster je Applikation/EXE welche du platzieren möchtest.
- Du hast geschrieben "... so lange alle Fenster die gleiche Größe hatten." Das heißt die Fenster haben jetzt eine unterschiedliche Größe. Ist dessen Größe veränderbar bzw. hast du auch einen Font-Sizer?
Ein Weg könnte sein den Monitor nicht in Pixel sondern in etwas größere Bereiche (vermutlich wie bei Jimmys Tetris-Lösung) einzuteilen.
Dann in eine Tabelle/Array je Bereich schreiben ob bzw. wer diesen Bereich belegt.
Das wäre analog einer automatischen Lagerplatz-Findung mit Größenangabe oder einer CAM-Lösung zur optimalen Positionierung von Konturen bei einem Blech-Laser um den Platz auf einer großen Tafel optimal auszunutzen.
--
Hans-Peter
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

HaPe hat geschrieben: Sa, 24. Mär 2018 11:25Sind das Fenster in einer Applikation/EXE oder 1 Fenster je Applikation/EXE welche du platzieren möchtest.
Beides.
Es sind eigenständige EXE (XbpCrt) die aber "miteinander reden", und es können XbpDialog-Fenster innerhalb einer dieser EXE sein.
HaPe hat geschrieben: Sa, 24. Mär 2018 11:25Das heißt die Fenster haben jetzt eine unterschiedliche Größe
Ja - je nach Gusto des jeweiligen Users.
HaPe hat geschrieben: Sa, 24. Mär 2018 11:25Ist dessen Größe veränderbar bzw. hast du auch einen Font-Sizer?
Ja - aber beim Öffnen eines neuen Fensters sind die Start-Werte mir ja bekannt.
HaPe hat geschrieben: Sa, 24. Mär 2018 11:25Ein Weg könnte sein den Monitor nicht in Pixel sondern in etwas größere Bereiche (vermutlich wie bei Jimmys Tetris-Lösung) einzuteilen.
Dann in eine Tabelle/Array je Bereich schreiben ob bzw. wer diesen Bereich belegt. Das wäre analog einer automatischen Lagerplatz-Findung.
Meine bisherige Lösung basiert auf dem Ansatz den Desktop in Bereiche aufzuteilen und dort die neuen Fenster zu platzieren.
Ich habe auch Hilfsmittel mit denen mit einem Mausklick die neuen Fenster besser verteilt werden können. Das ist schon ein Klick zu viel für die Anwender...
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

Zusatz:

Durch die individuell wählbare Schriftgröße der Fenster gibt es User, da passen gerade zwei Fenster auf einen 4k-Desktop (ein Schriftzeichen ca. 1cm hoch).
Ein anderer arbeitet mit mittelgroßer Schrift und kann locker einige Fenster unterbringen.
Der nächste arbeitet mit großem Hauptfenster, nutzt aber mittelgroße und kleine Schrift in den Hilfsfenstern.

Wenn man alle Fenster immer neu anordnen könnte wäre es einfacher - darf aber nicht gemacht werden.
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von HaPe »

Hallo Roland !
Meine bisherige Lösung basiert auf dem Ansatz den Desktop in Bereiche aufzuteilen und dort die neuen Fenster zu platzieren.
Ich habe auch Hilfsmittel mit denen mit einem Mausklick die neuen Fenster besser verteilt werden können. Das ist schon ein Klick zu viel für die Anwender...
Deine Anwender sind ja ganz schön verwöhnt #-o

Ich wage es fast nicht zu fragen, aber wäre es nicht möglich dass sich der Anwender nur einmal einstellen muss wie die vielen Fenster optimal auf den Monitor passen und später diese Fenster wieder benutzerdefiniert genau an dieser Stelle geöffnet werden?
Im Moment kann ich mir nicht vorstellen dass ein Mitarbeiter/in mehr als 4 bis 6 Fenster von immer unterschiedlichen Applikationen/Bereichen im Programm zu öffnen hat sodaß ein hin- und wieder manuelles Anordnen diesen überfordert.

Der Fachbegriff in CAD/CAM heisst Verschachtelung.
Suche mal in Google/Bing/... mit "+verschachtelung +rechteck"
--
Hans-Peter
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

HaPe hat geschrieben: Sa, 24. Mär 2018 11:54Deine Anwender sind ja ganz schön verwöhnt
Ja
HaPe hat geschrieben: Sa, 24. Mär 2018 11:54Ich wage es fast nicht zu fragen, aber wäre es nicht möglich dass sich der Anwender nur einmal einstellen muss wie die vielen Fenster optimal auf den Monitor passen und später diese Fenster wieder benutzerdefiniert genau an dieser Stelle geöffnet werden?
Im Prinzip ja - beißt sich aber mit ...ganz schön verwöhnt... :-)
HaPe hat geschrieben: Sa, 24. Mär 2018 11:54Im Moment kann ich mir nicht vorstellen dass ein Mitarbeiter/in mehr als 4 bis 6 Fenster von immer unterschiedlichen Applikationen/Bereichen im Programm zu öffnen hat sodaß ein hin- und wieder manuelles Anordnen diesen überfordert.
Dazu müsste ich Dir die Funktions-Philosophie meiner Programmsteuerung zeigen/erklären.
An allen Arbeitsplätzen machen die User täglich viele Hilfsfenster auf und wieder zu. Im Büro sind das täglich Umengen an Hilfs-Fenstern. Da sprechen wir nicht von kleinen Auswahlfenstern für Sortierung, Drucker o.ä. - das sind immer vollständige EXE-Fenster mit allen Funktionen.
Dazu kommen noch die permanent geöffneten Fenster der Dokumenten-/Belegverwaltung.
Da kommt schon was zusammen.

Die automatische Positionierung muss funktionieren, sonst wird das Fensterschieben schnell lästig.
(es geht nicht mehr richtig - es ist schon lästig...)
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von HaPe »

Hallo Roland !
An allen Arbeitsplätzen machen die User täglich viele Hilfsfenster auf und wieder zu.
Sind das modale Fenster?
Wenn nein, wäre es nicht möglich eine Taskleiste im Programm bzw. in einem Programm/Fenster-Manager zu haben?
Das heißt, er macht diese Fenster nicht zu sondern legt diese in die deine Taskleiste?

Ich habe das in meinen Programmen auch (aber nur eine EXE).
Guggst du hier:
slalomxxl.jpg
slalomxxl.jpg (187.52 KiB) 12166 mal betrachtet
--
Hans-Peter
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

@Hans-Peter

am Ende des Tages hätte da mancher unüberschaubar viele Icons auf der Taskleiste :-)

Die "normalen" Auswahlfenster (Sortierung, Drucker, usw.) sind Modal.
Die (Slave-) EXEs jedoch sind vollständig eingene Programme, gekoppelt mit dem aufrufenden (Master-) EXE. Dieses Master-/Slave-Prinzip ist (fast) unbegrnzt nutzbar (1 zu X). Also solange der User noch durchblickt.
Sonst mach er das Hauptfenster zu und alles ist weg...
Das kann ich Dir mal per Remote zeigen.
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

P.S.
würde mich den richtigen Berechnungsansatz auch was kosten lassen :thumbup:
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von Wolfgang Ciriack »

Ich denke, dem Anwender ist schon zuzumuten, dass er nach der Installation des Programms einmalig seine Fenster so positioniert, wie er sie haben möchte.
Dann merkt man sich die Positionen der Fenster und öffnet sie beim nächsten Mal wieder an derselben Stelle. Hätte auch den Vorteil, das die Fenster immer an der "gewohnten" Stelle geöffnet werden.
Viele Grüße
Wolfgang
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

@Hans-Peter

Es gibt die Möglichkeit, die Hilfsfenster geöffnet zu lassen. Das habe ich inzwischen selbst schon vergessen. Das wird aber nichtmehr verwendet da es verschiedentlich durch Fehlbedinung zu Problemen führte und manche User verwirrt hat.
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von Herbert »

Ich mache es so, dass jedes Fenster wo es geöffnet ist/war mit dessen Position und Grösse festgehalten wird und an derselben Stelle später wiedererscheint.In diesem Fall musst du einfach schauen, ob an der neuen Stelle ein Fenster momentan vorhanden ist (Falls verschiedene EXE dies bewirken, musst du das neben der Positionsangaben zusätzlich extern in einer Tabelle festhalten), springst eine Position weiter und schaust, ob ein Fenster da ist.

Falls alle Fenster gleich gross sind: Teile deinen Bildschirm in eigens benannte Bereichsflächen auf. Loop durch alle Flächen, schauen ob frei und falls frei, dann aufgrund der Fläche die Position festlegen und einfügen. Dies ist das Verhalten eines Dashboards.
In dem Fall kannst das Ganze sogar verfeinern, indem beim Verschieben eines Fensters an einen andern Platz, das vermeintlich dahinter liegende Fenster wegschiebst, also mit dem zu Schiebenden vertauschst. Dasselbe beim Schliessen: könntest die Nachfolgenden nachrücken lassen.

Diese Aufgabe kann eine eigene Klasse lösen.

Aber da taucht ein anderer Gedanke auf: Wieso müssen alle Fenster nebeneinander liegen? Braucht der Benutzer alle Informationen parallel? Heute sind die Windowsanwender intuitiv genug und schieben ohne zu überlegen die Fenster umher, wie gerade benötigt.

Bei Hilfefenstern ohnehin sollen diese sogar überlagernd erscheinen, es soll ja etwas erklärt werden, anschliessend in der Regel wieder geschlossen oder weggeschoben.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
komnick
UDF-Programmierer
UDF-Programmierer
Beiträge: 75
Registriert: Mi, 04. Jun 2014 9:56
Wohnort: Berlin
Hat sich bedankt: 1 Mal
Danksagung erhalten: 5 Mal

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von komnick »

Hallo Roland,

du könntest die Aufgabe mit Rekursion lösen:
Wenn du n Fenster offen hast, dann betrachte das n-te Fenster: Der gesuchte Platz befindet sich über, unter, rechts oder links von diesem Fenster. Für jedes dieser vier kleineren Rechtecke musst du deine eigene Funktion rekursiv aufrufen. In diesen Aufrufen sucht deine Funktion den freien Platz unter Berücksichtigung der ersten (n-1) offenen Fenster.

Das wird bei vielen Fenstern langsam, wäre bei 2-6 Fenstern aber nicht so schlimm.

Lieben Gruß
Martin
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

Herbert hat geschrieben: Mo, 26. Mär 2018 8:47Ich mache es so, dass jedes Fenster wo es geöffnet ist/war mit dessen Position und Grösse festgehalten wird und an derselben Stelle später wiedererscheint...
So mache ich das mit bestimmten Fenstern auch.
Herbert hat geschrieben: Mo, 26. Mär 2018 8:47Bei Hilfefenstern ohnehin sollen diese sogar überlagernd erscheinen, es soll ja etwas erklärt werden, anschliessend in der Regel wieder geschlossen oder weggeschoben.
War ein Fehler von mir das pauschal "Hilfsfenster" zu nennen - Neben-/Zusazufenster würde das eher treffen. Der nachfolgene Punkt bringt hoffentlich eine Detaillierte Erklärung warum.
Herbert hat geschrieben: Mo, 26. Mär 2018 8:47Aber da taucht ein anderer Gedanke auf: Wieso müssen alle Fenster nebeneinander liegen? Braucht der Benutzer alle Informationen parallel?
Das ist der springende Punkt!
In den Zusatzfenstern können weitere Informationen angezeigt werden.
Z.B. um viel mehr Daten zu einem Artikel anzuzeigen wie in einem Hauptfenster möglich.
Z.B. um mehrstufige Auswertungen darzustellen, jede Stufe in einem eigenen Fenster.
Nun könnte man sagen, das kann ja mit jedem Programm gemacht werden, zig Fenster nebeneinander und in jedem eine andere Ansicht auf (z.B.) den Artikel.
Das Plus ist aber, dass die Fenster gekoppelt sind und die Daten überall synchron positioniert werden.

Praxisbeispiel:
1. Fenster: Artikel-Übersicht
2. Fenster: Artikel-Detailansicht 1 (abhängig von 1.)
3. Fenster: Lager-Disposition zum Artikel (abhängig von 1.)
4. Fenster: Kunden pro Artikel (abhängig von 1.)
5. Fenster: Kunden-Detailansicht 1 (abhängig von 4.)

Wird nun in Fenster 1 auf einen anderen Artikel positioniert werden die Daten in allen anderen Fenstern nachpositioniert.
Werden in Fenster 4 mehrere Adressen angezeigt kann man auch hier jetzt den Cursor bewegen und nur das Fenster 5 wird geändert.
Usw... solange man versteht was man da tut :-)
Der User muss sich nicht um die Kopplung kümmern.
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

Hallo Martin
komnick hat geschrieben: Mo, 26. Mär 2018 10:42du könntest die Aufgabe mit Rekursion lösen:
Wenn du n Fenster offen hast, dann betrachte das n-te Fenster: Der gesuchte Platz befindet sich über, unter, rechts oder links von diesem Fenster. Für jedes dieser vier kleineren Rechtecke musst du deine eigene Funktion rekursiv aufrufen. In diesen Aufrufen sucht deine Funktion den freien Platz unter Berücksichtigung der ersten (n-1) offenen Fenster.
So ähnlich habe ich das in der Vergangenheit auch gemacht, bzw. so sollte es laufen. Warum auch immer geht das manchmal nicht mehr. Ausgerechnet beim ersten Zusatzfenster mach das Programm den Fehler - und manchmal klappt das prima.
Der Fenster-Verteilfunktion ist schon recht alt, da ist man noch nicht davon ausgegangen, dass mehr als 4 Fenster ohne Überlagerung auf den Desktop passen :-)
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von UliTs »

Hallo Roland,

hast Du inzwischen eine zufriedenstellende Routine dafür?

Uli

P.S. Du bist nicht in Dresden, oder?
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

Hallo Uli
UliTs hat geschrieben: Sa, 21. Apr 2018 10:08hast Du inzwischen eine zufriedenstellende Routine dafür?
Wie mann's nimmt. Wie schon geschrieben habe ich den Vorschlag von Martin aufgegriffen und eine ältere Berechnungsmethode wieder reaktiviert und verbessert, welche die freien Flächen um das Hauptfenster herum prüft und dort platziert. Ist aber noch nicht bis zuletzt durchgedacht.

Das ist aber nicht der "neue Ansatz" den ich mir vorgestellt hatte...
UliTs hat geschrieben: Sa, 21. Apr 2018 10:08P.S. Du bist nicht in Dresden, oder?
Nein - ich sitze bei dem schönen Wetter im Büro.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von UliTs »

Ich habe mal ein paar Bilder zum besseren Verständnis gezeichnet Das rote Fenster ist ein bestehendes Fenster, welches nicht überlagert werden soll.
Die grünen Fenster (auch im nächsten Post) sind jeweils die größtmöglichen Fenster links, rechts, oben und unten vom bestehenden Fenster. In diesem Fall würdest Du also das neue Fenster entsprechend dem unteren grünen Fenster positionieren. Richtig?
Dateianhänge
Größtmögliches Fenster rechts vom bestehenden Fenster
Größtmögliches Fenster rechts vom bestehenden Fenster
FensterOben.png (868 Bytes) 11919 mal betrachtet
Größtmögliches Fenster links vom bestehenden Fenster
Größtmögliches Fenster links vom bestehenden Fenster
FensterLinks.png (871 Bytes) 11919 mal betrachtet
Fenster, welches nicht verdeckt werden soll
Fenster, welches nicht verdeckt werden soll
Fenster.png (864 Bytes) 11919 mal betrachtet
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von UliTs »

s.o.
Dateianhänge
Größtmögliches Fenster unterhalb vom bestehenden Fenster
Größtmögliches Fenster unterhalb vom bestehenden Fenster
FensterUnten.png (866 Bytes) 11917 mal betrachtet
Größtmögliches Fenster rechts vom bestehenden Fenster
Größtmögliches Fenster rechts vom bestehenden Fenster
FensterRechts.png (744 Bytes) 11917 mal betrachtet
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
DelUser01

Re: größte freie Desktop-Fläche für neue Fenster

Beitrag von DelUser01 »

@Uli

Schritt 1)
Größtmögliche freie grüne Flächen suchen für weiteres rotes Fenster - soweit richtig.

Schritt 2)
Feststellen ob in die ermittelten grünen Flächen noch ein rotes Fenster vollständig reinpasst:
JA: Ganz unten ganz links (optimal?) platzieren. (in Deinem Beispiel)
(NEIN: siehe Schritt 4)

Schritt 3)
Selbiges Spiel für das dritte rote Fenster: Größtmögliche freie grüne Flächen suchen.

Schritt 4)
Feststellen ob in die ermittelten grünen Flächen noch ein rotes Fenster reinpasst:
JA: optimal platzieren
NEIN: größte grüne Fläche suchen welche die geringste Überlappung mit den vorhandenen roten Fenstern hat. Dort dann das nächste rote Fenster platzieren.

Schritt 5) usw...

- Optimal Platzieren soll heißen, dass das neue Fenster möglichst dort hingesetzt werden sollte bei der die übrigbleibende grüne Fläche nicht unnötig weiter zerteilt würde.
- Sind die Fenster groß und der Desktop klein würde man anders platzieren als bei großem Desktop und kleinen Fenstern.
Antworten