Tiré de GTK+ Reference Manual
acryline 2007 Boosteur de petits projets

Utiliser  GTK+ sur le Système X Window 

Utiliser GTK+ sur le Système  X Window —  Aspects X11 de l'utilisation de GTK+

GTK+ pour le Sytème  X Window 

Sous UNIX, le serveur X est celui par défaut pour GTK+. Donc vous n'avez rien de spécial à faire lorsque vous le compilez, et tout marchera comme attendu.

Pour mélanger des appels XLib de bas niveau à des appels GTK+, regardez Interaction GDK avec le système X-Window. dans le manuel GDK.

Spécification d'arguments X-11

Le serveur comprend certains arguments additionnels.

--display display Le nom du serveur X pour ouvrir à la place de celui spécifié dans la variable d'environnement DISPLAY.

--screen screen_number Le nombre d'écran pour l'affichage. Cela remplace un nombre d'écran qui aurait pu être spécifié dans la variable DISPLAY ou par l'argument --display. Si cet écran ne peut pas être activé, alors GTK+ se rabattra sur celui spécifié dans la variable DISPLY; cette option peut être utile quand un programme enregistre son état avec un gestionnaire de session pour le reprendre plus tard, il peut sauvegarder l'état de l'écran, sans s'inquièter d'un éventuel redémarrage avec un autre écran.

--sync Créé toutes les requêtes de manières synchronisées. C'est une option utile pour debogguer, mais cela ralentit considérablement les performances.

--gxid-host host Le serveur pour contacter le démon gxid; remplace la variable d'environnement GXID_HOST.

--gxid-port port Le port pour se connecter au démon gxid; remplace la variable d'environnement GXID_PORT. Cette option est utilisable uniquement si GTK+ a été configuré avec: --gdk-target=x11.


Les variables d'environnement spécifiques à X-11

Le serveur X peut voir son comportement influencé par certaines variables d'environnement.

GXID_HOST, GXID_PORT Le port et le serveur pour contacter le démon gxid. gxid c'est nécessaire seulement si le serveur X ne supporte par d'utiliser le pointeur et le dispositif ajouté, et seuleument si GTK+ est configuré avec --with-xinput=gxi.XFree86 et Xorg n'ont pas cette restriction.

GDK_USE_XFT Si cette variable est mis à 1, GTK+ le moteur Xft de Pango aulieu du serveur lorsque cela sera possible. (i.e. Quand le serveur X supporte l'extension XRender et qur Pango a été compilé avec le support Xft).

Compréhension de l'architecture X-11

Les personnes migrant depuis MacOS ou Windows trouve souvent certains aspect du serveur X étranges. Cette section offre une introduction au concept de base du système X. Pour plus de détails, le livre que le plus de personne utilise est Xlib Programming Manual par Adrian Nye; Ce livre est un volume de la série O'Reilly dédiée au Système X Window.

Les standards sont une autre ressource si vous pouvez dans les détails de hauts niveaux de X-11, en particulier ICCCM et Extended Window Manager. Pour des suggestions de spécifications : freedesktop.org qui contient de spécifications pertinentes.

Le manuel GDK couvre l'utilisation de la XLib dans un programme GTK.

Server, client, window manager

D'autres gestionnaire de fenêtre typiques, laisse toutes les foncionnalités en charge à l' application. Avec X, chaque application implique trois programmes: le serveur X, l'application (appellée client parce qu'elle est un client du serveur X), et un client spécial appellé le gestionnaire de fenêtre.

Le serveur X se charge de la gestion des ressources, des processus de dessin, et distribue les évenements que ce soit du clavier ou de la souris qui pourrait interrêssés l'application. Le client peut aussi interroger le serveur X pour créer une fenêtre, dessiner un cercler, déplacer des fenêtres, ect...

Le gestionnaire de fenêtre se charge du rendu des cadres et des bords autours de la fenêtres; il dit aussi la taille finale de chaque fenêtre, et l'état des fenêtres tel que "taille maximum", "taille minimum", etc ... Sous Windows et MacOS l'application a d'avantage de choses à gérer. Avec X-11, si vous souhaitez modifier l'état d'une fenêtre ou changer son cadre, vous devez interroger le gestionnaire de fenêtre pour le faire à votre place, en utilisant une convention établie.

GTK+ possède des fonctions pour interroger le gestionnaire de fenêtre pour faire des choses très varièes; voyez par exemple gtk_window_iconify() ou gtk_window_maximize() ou bien gtk_window_set_decorated(). Gardez à l'esprit que gtk_window_move() et la taille de la fenêtre sont finalement contrôllés par le gestionnaire de fenêtre ainsi le plupart des gestionnaires de fenêtre ingoreront certaines requêtes de temps en temps, pour garder une belle interface graphique.