2013-02-16 4 views
1

J'écris un programme de messagerie relativement simple en C avec GTK, et je voudrais placer ma fenêtre de visualisation de message dans un coin particulier de l'écran, donc c'est à l'écart .Placez la fenêtre GTK dans un coin de l'écran

La documentation répertorie une fonction gtk_window_set_gravity qui spécifie quel coin de la fenêtre ses coordonnées sont relatives, et en traçant d'autres par gtk_window_move, a constaté que le code suivant la position de la fenêtre dans le coin inférieur droit de l'écran, en ignorant les scénarios à plusieurs têtes.

gtk_window_set_gravity(GTK_WINDOW(win), GDK_GRAVITY_SOUTH_EAST); 
gtk_window_move(GTK_WINDOW(win), gdk_screen_width() - window_width, gdk_screen_height() - window_height); 

Je suis à peu près un novice à travailler avec GTK, et plus encore un novice d'utiliser l'interface GTK directement (ayant été en utilisant PyGTK à la place), donc je ne sais même pas où commencer à regarder à droite à présent.

Répondre

1

Il s'avère que la réponse à ce problème peut être trouvée dans GDK, pas GTK.

Le code suivant est ce que je suis parvenu à comprendre:

GdkDisplay *display = gdk_display_get_default(); 
// 0 for the first screen, as we're only concerned about the first one 
GdkScreen *screen = gdk_display_get_screen(display, 0); 
screen_width = gdk_screen_get_width(screen); 
screen_height = gdk_screen_get_height(screen); 

Notez que vous aurez besoin d'utiliser l'appel de fonction gdk_display_get_n_screens(display) pour déterminer le nombre d'écrans si vous êtes intéressé par un écran autre que le premier. Pour référence, consultez la documentation pour GdkDisplay, GdkScreen et multi-heading.

Questions connexes