Forum: PC-Programmierung gtk.h mit Xlib.h kombinieren


von Franz (Gast)


Lesenswert?

Wie ist es möglich ein Fenster mit einem Button mit Hilfe der gtk.h zu 
erstellen, in dem dann mit der xlib.h auch noch eine Linie gezeichnet 
werden soll. Mir ist nicht klar wie die Fenster-ID von gtk.h an xlib.h 
übergeben werden kann? Mir ist auch bewusst, dass gtk eine DrawingArea
anbietet in die mit cairo gezeichnet werden kann, allerdings wünsche ich 
mir explizit die Zeichenarbeit mit Xlib.h zu erledigen...
Danke für alle konstruktiven Antworten

von Planlos (Gast)


Lesenswert?

gdk_x11_drawable_get_xid()
http://developer.gimp.org/api/2.0/gdk/gdk-X-Window-System-Interaction.html


Beachte: GTK+ will eigentlich X11-Unabhängig sein/werden, also auch 
unter Wayland/MIR/Windows/... laufen.
Solche X11-Spezifischen Sachen unterlaufen das.

Ohne triftigen Grund sollte man sowas nicht machen.

Ach ja: "ich habe die Linien-Zeichen-Funktion in der GTK-Doku nicht 
gefunden" ist kein triftiger Grund.

von KlausR (Gast)


Lesenswert?

Franz schrieb:
> Mir ist auch bewusst, dass gtk eine DrawingArea
> anbietet in die mit cairo gezeichnet werden kann, allerdings wünsche ich
> mir explizit die Zeichenarbeit mit Xlib.h zu erledigen...

Dazu brauchts doch kein Cairo. 
http://www.gtk.org/api/2.6/gdk/gdk-Drawing-Primitives.html
Ich habe hier noch das X-Lib Programming Manual stehen. Angeschafft vor 
ca. 20 Jahren. Nicht mehr angerührt seit ca. 15 Jahren...

von Georg A. (georga)


Lesenswert?

Mal davon abgesehen, dass eine Linie sicher kein Effizienzproblem beim 
Durchreichen durch GTK ausmacht, gibt es natürlich Funktionen, an die 
darunterliegenden X11-IDs zu kommen.

gtk2: GDK_WINDOW_XWINDOW und GDK_WINDOW_XDISPLAY  aus gdkx.h
gtk3: GDK_WINDOW_XID und GDK_WINDOW_XDISPLAY aus x11/gdkx11window.h und 
x11/gdkx11display.h

Aber wie schon von anderen gesagt, eigentlich braucht man sowas nicht 
(mehr).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.