Forum Programmation.c GTK: Dimensions d'un objet d'un panneau redimensionnable.

Posté par  .
Étiquettes : aucune
0
3
jan.
2006
Bonjour à tous !

Bon je tâte du GTK depuis quelques temps déjà, et à force de naviguer entre les FAQs, les spécifications et les tables des symboles de GTK,GDK et autres (qui sont, reconnaissons-le, très bien documentés sur le site idoine), j'arrive à me démerder à peu près, à produire une interface graphique en C sous GTK sans utiliser d'artifice comme Glade ou autre et à écrire du code pas trop dégueu.

Par contre, je ne parviens pas à résoudre le problème suivant : J'ai une fenêtre qui contient un panneau redimensionnable vertical (un vpaned avec la poignée au milieu), lequel contient

en haut : Une eventbox contenant une image (pour que je puisse cliquer dessus et récupérer les coordonnées du clic). Cette image a une taille fixe mais si le container s'agrandit, l'image doit rester centrée et être entourée de noir. Çà, ça marche.

en bas: une textbox (gtk_text_view).

Le problème : Je souhaite fixer la hauteur de cette textbox à trois lignes par défaut, et qu'elle le reste lorsque l'image est redimensionnée (l'espace gagné allant au profit de l'image dans l'autre volet du panneau). En revanche,
l'utilisateur doit pouvoir, lui, redimensionner le panneau et donc agrandir la taille de la zone de texte.

Il s'agit donc, en fait, de définir la position de la barre de séparation non pas selon un pourcentage de la hauteur du panneau mais selon un nombre de pixels fixe, et par rapport au bas du panneau, et non le haut.

Quelqu'un a-t-il déjà fait ce genre de manip' ? Pouvez-vous m'aider ?

Merci d'avance et joyeuse année 2006.
  • # Les GtkPaned

    Posté par  . Évalué à 2.

    Les GtkVpaned dérivent directement des GtkPaned. Tu peuc donc regarder la doc de ceux-ci pour fixer la position de la barre médiane. Il existe entre autre la fonction :
    void gtk_paned_set_position (GtkPaned *paned, gint position);

    Sets the position of the divider between the two panes.

    paned : a GtkPaned widget
    position : pixel position of divider, a negative value means that the position is unset.
    • [^] # Re: Les GtkPaned

      Posté par  . Évalué à 2.

      Oui, mais comment fais-tu pour que le repère soit le bas du tableau et pas le haut ? Gravité ?
      • [^] # Re: Les GtkPaned

        Posté par  . Évalué à 1.

        Tu ne peux pas inverser l'odre left/top en premier. Il te faut faire une soustraction entre la taille actuelle de la fenêtre et la taille du paned2. Tu fixes ensuite la position de la barre avec le résultat obtenu.
        • [^] # Re: Les GtkPaned

          Posté par  . Évalué à 2.

          Et cela fait suer parce que cela oblige à mettre en place un gestionnaire spécial à l'écoute des signaux de la fenêtre. De plus, la fenêtre est déjà redimensionnée automatiquement par GTK, puis manuellement par mon code. Ça se voit et ça consomme des ressources, spécialement quand le serveur X est déporté sur un Thin Client.

          Je vais essayer de faire autrement. Avec les attributs shrinkable ou autre, ce doit bien être possible.

          Merci quand même.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.