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

Aktuelle Zeit: Mo Mai 20, 2024 22:49

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



Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: X11: Fenster Position und Größe
BeitragVerfasst: Do Mai 03, 2012 14:46 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

weiß jemand wie ich via X11 die Fenster position und größe auslesen kann?

Setzen kann ich es via XResizeWindow() bzw XMoveWindow(), nur wie ich die aktuellen Werte rausbekomme - dazu finde ich leider nichts :(

Aya


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Mai 03, 2012 15:07 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Wie wär's mit XGetWindowAttributes?

_________________
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  
BeitragVerfasst: Do Mai 03, 2012 15:20 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Die schaut gut aus und hab ich irgendwie übersehen - danke! :)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Mai 03, 2012 15:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Dann noch 2 andere Fragen zu X11.. :)

1) Wie kann ich denn ein Fenster ein/ausblenden (nicht minimieren, also so wie ShowWindow() unter Windows).

2) Was ist der korrekte Weg ein Fenster in den Vollbild Modus zu bringen? (Unter Windows wäre es ChangeDisplaySettings mit CDS_FULLSCREEN).

Aya


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Mai 03, 2012 17:47 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Dez 03, 2008 12:01
Beiträge: 167
Wohnort: /country/germany
Programmiersprache: C++ / FreeBASIC
1) Das müssten XMapWindow und XUnmapWindow sein.
2) Das ist etwas komplizierter, da es so nicht von Anfang an im X-Server geplant war. Möglich ist es aber, und wird aktuell wohl gerne mit XRandr gemacht. Dazu finde ich gerade irgendwie nur zwei Links bei meinen Bookmarks:
http://glfw.svn.sourceforge.net/viewvc/ ... iew=markup
http://sfml.svn.sourceforge.net/viewvc/ ... iew=markup

Ich hab es selbst damit noch nicht fertig umgesetzt, ich weiß aber das irgendwo im Netz noch ein besseres Beispiel rumgeistert, ich weiß nur nicht mehr wo.

_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Mai 03, 2012 17:57 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Fullscreen ist ein sehr leidiges Thema, mit dem wir uns auch in Pythonic Universe auseinander setzen müssen. Gerade, sobald man über mehrere Bildschirme spannen will, wird es echt widerlich.

Normalen Fullscreen bekommt man sauber über den _NET_WM_STATE-Hint. Wenn man über mehrere Monitore will, braucht man _NET_WM_FULLSCREEN_MONITORS, was bei den meisten verbreiteten Fenstermanagern nicht richtig funktioniert (Problem ist aber auch, erstmal korrekten Code dafür zu schreiben, wenn man nicht wirklich in X11 drin steckt).

grüße

_________________
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  
BeitragVerfasst: Do Mai 03, 2012 18:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Dez 03, 2008 12:01
Beiträge: 167
Wohnort: /country/germany
Programmiersprache: C++ / FreeBASIC
Lord Horazont hat geschrieben:
Normalen Fullscreen bekommt man sauber über den _NET_WM_STATE-Hint.


Ah, stimmt. Die Beschäftigung damit liegt bei mir etwas zurück, da hab ich etwas durcheinandergeworfen. XRandr brauchte man, wenn das Vollbildfenster eine andere Auflösung haben sollte als der Bildschirm ursprünglich hatte.

_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Mai 04, 2012 13:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
darkinsanity hat geschrieben:
XRandr brauchte man, wenn das Vollbildfenster eine andere Auflösung haben sollte als der Bildschirm ursprünglich hatte.

Nicht nur dafür. xrandr bietet (mit xinerama) überhaupt erstmal die Informationen über die verfügbaren Displays (Größe, Anordnung, …).

greetings

_________________
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  
BeitragVerfasst: Mi Mai 16, 2012 17:19 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Falls dieser Thread noch jemanden interessiert, wir haben es inzwischen hinbekommen, unter EWMH-konformen Fenstermanagern Fullscreen zu erzeugen. Der Code dazu ist hier bzw der Header mit den Docs hier.

grüße
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  
BeitragVerfasst: Mi Mai 16, 2012 21:14 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Dez 03, 2008 12:01
Beiträge: 167
Wohnort: /country/germany
Programmiersprache: C++ / FreeBASIC
Nett, ich werde meinen Code demnächst mal generalüberholen und mich dabei mal an deinem orientieren ;)

_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Mai 18, 2012 10:34 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Also, wenn ich mir das hier so anschau... Ich habe bei mir X11-Code drin, den brauche ich eigentlich jetzt tagtäglich, weil ich mich nur mehr in Linux aufhalte. Ist haupsächlich dazu da, um Opengl zum Laufen zu bringen, aber in paar andere Dinge auch - z.B. habe ich damals das Copy/Paste von Text implementiert (z.B. GEdit=>MeinProgramm und umgekehrt), was ganz schön haarig war und ich habe ziemlich viel im Internet stochern müssen, um das hinzukriegen. Ich weiß nicht, ob es eine neuere Variante davon gibt, aber die, die ich benutzen musste, war schrecklich umständlich. Wenn Ihr Interesse habt, kann ich meinen Sourcecode für X11 zur Verfügung stellen - ist aber natürlich Free Pascal, Delphimode.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Mai 18, 2012 14:28 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hey Traude,

Das wäre vielleicht garnicht so schlecht. Vorallem die Clipboards wollten wir eigentlich auch noch haben, da ist eine Codereferenz sicherlich hilfreich. Vielleicht haben wir aber auch eine neuere Variante, ich weiß nicht so genau (ich mache das X11 interface nicht, das macht jemand anders ;) ).

grüße

_________________
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  
BeitragVerfasst: Fr Mai 18, 2012 15:06 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
OK, ich häng es hier einfach rein. Es sind drei Dateien: ein OsSupport.pas, das ist die Hauptdatei, die das Interface definiert und zwei Includes dazu. Der Hauptteil des X11-Code befindet sich in OSSupportX11.inc. Ich hoffe, es hilft.
Viele Grüße
Traude


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Mai 19, 2012 21:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Dez 03, 2008 12:01
Beiträge: 167
Wohnort: /country/germany
Programmiersprache: C++ / FreeBASIC
So, um auch mal etwas beizutragen: Ich habe es heute Nacht geschafft fullscreen-support für X11 in meine Fenster-Klasse einzubauen. Ich benutze dazu "_NET_WM_STATE" und XRandR, mit dem die aktuelle Auflösung gesichert und im Destruktor wiederhergestellt wird. Hab es auch gleich mal mit KDE unter Linux Mint 12 getestet und es hat funktioniert ;)
Da ich mir denken kann dass es auch andere hier interessiert, gibt es hier den Code und hier den Header.
Abhängigkeiten sind eben die Libraries X11, Xrandr und ich verwende in der Klasse auch glew.

_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Mai 20, 2012 10:34 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hat sich schon irgendwer Gedanken über das Problem gemacht, dass der X-Server bei unterschiedlichen Auflösungen eine unterschiedliche Anzahl von Bildschirmen aktiv haben kann? Bei mir zum Beispiel sind bei 2560x1024 beide Bildschirme aktiv, darunter aber nur einer. Zu allem überfluss weiß davon bei mir nur Xinerama, xrandr hat keine idee davon (es kennt zwar die Auflösungen, hält es aber für einen großen Bildschirm; nvidia twinview halt).

grüße

_________________
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  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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.010s | 14 Queries | GZIP : On ]