Για τον σκοπό αυτό υπάρχουν οι συναρτήσεις XSetWMHints
και XSetNormalHints
.
Η XSetWMHints
ορίζει τα σχετικά με το εικονίδιο (icon). Παίρνει τρία
ορίσματα, το display, το παράθυρο, και μια δομή τύπου XWMHints
. Η δομή
XWMHints
περιέχει στοιχεία για το σχέδιο του εικονιδίου, τη θέση του στην
οθόνη, την αρχική κατάσταση του παραθύρου (κανονική ή iconified), καθώς και
ένα πεδίο μάσκα που προσδιορίζει με τον τρόπο που περιγράφηκε παραπάνω τα
πεδία της δομής που έχουν οριστεί. Η συνάρτηση XSetNormalHints
παίρνει και
αυτή τρία ορίσματα display, παράθυρο και μια δομή XSizeHints
με την βοήθεια
της οποίας, και με αντίστοιχο τρόπο, προσδιορίζει το αρχικό, το μέγιστο και
το ελάχιστο μέγεθος του παραθύρου, το βήμα μεταβολής του μεγέθους του και
άλλα. Οι ορισμοί των συναρτήσεων και των defines που χρησιμοποιούν
βρίσκονται στο include file
Xutil.h
, το οποίο πρέπει να συμπεριλαμβάνεται στο πρόγραμμα αν θέλουμε να
χρησιμοποιήσουμε τις συναρτήσεις.
Παράδειγμα χρήσης των XSetWMHints
και XSetNormalHints
:
#include <Χ11/Xutil.h> #include "theicon" /* περιέχει το bitmap του icon */ . . . XSizeHints sizehints; XWMHints wmhints; Pixmap iconpixmap; . . . /* δημιουργούμε την εικόνα του icon από το αντίστοιχο bitmap */ iconpixmap = XCreateBitmapFromData( display, window, theicon_bits, theicon_width, theicon_height ); wmhints.icon_pixmap = iconpixmap; /* το παράθυρο ξεκινά σε κανονική μορφή */ wmhints.initial_state = NormalState; wmhints.flags = IconPixmapHint | StateHint; XSetWMHints( display, newwindow, &wmhints ); /* προσδιορίζουμε τη θέση, το μέγεθος και το ελάχιστο μέγεθος του παραθύρου */ sizehints.x = 300; sizehints.y = 200; sizehints.width = 250; sizehints.height = 400; sizehints.min_width = 200; sizehints.min_height = 200; sizehints.flags = PPosition | PSize | PMinSize; XSetNormalHints( display, window, &sizehints ); . . .