IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

GtkWindow signal "minimize" n'existe pas.


Sujet :

GTK+ avec C & C++

  1. #1
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut GtkWindow signal "minimize" n'existe pas.
    Salut les GThacKtivistes,

    J'ai fait un programme de lecture de vidéos basé sur libvlc ayant pout interface graphique gtk+-3.0.

    La barre de progression, button play/pause, etc... sont compris dans une GtkWindow que j'ajuste.

    Le problème récurrent et que je n'arrive pas a résoudre malgré tout mes efforts,

    est issue du faîte que l'on fait apparaître et disparaitre la fenêtre des contrôles, par un click.

    Et du coup je n'arrive pas a la faire disparaitre (gtk_widget_hide(...)) quand ont "minimize" l'application.

    Car y a pas de signal "on-minimize"...

    ---

    Alors quand ont fait une pause par exemple et l'on "minimize" la fenêtre principale la fenêtre des contrôles

    reste sur le bureau alors que la fenêtre principale est réduite.

    ---

    J'ai chercher sans trouver de solution et m'en remets a vous du coup.

    Merci pour vos réponses éclairées.

  2. #2
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut J'ai réussis !
    Bonjours,

    En faites c'est possible en passant par le signal: "window-state-event".

    Comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    static gboolean hide_controls_on_iconify(GtkWidget *widget, GdkEventWindowState *event,GtkWidget *controls) { // The variable controls is a window.
     
      if (event->type == GDK_WINDOW_STATE) {
     
        if (event->changed_mask == GDK_WINDOW_STATE_ICONIFIED) {
     
          gtk_widget_hide(controls) ;
     
          is_pressed = FALSE ; // Variable to control if the controls are shown or hidden.
     
        }
     
      }
     
      return FALSE ;
     
    }

  3. #3
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut Sauvegarder la visibilté de la barre (fenêtre) des controls.
    Seulement,

    en voulant sauvegarder le status des controls comme montré ci-dessous:

    (C.a.d quand on "minimize" la fenêtre principale et après les controls sont afficher quand ont la "re-maximize".)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    static gboolean hide_controls_on_iconify(GtkWidget *widget, GdkEventWindowState *event,GtkWidget *controls) { // The variable controls is a window.
     
      if (event->type == GDK_WINDOW_STATE) {
     
        if (event->changed_mask == GDK_WINDOW_STATE_ICONIFIED) {
     
          gtk_widget_hide(controls) ;
     
          is_pressed = FALSE ; // Variable to control if the controls are shown or hidden.
     
        }
        else {
     
          if (! is_pressed) {
     
            gtk_widget_show_all(controls) ;
     
            is _pressed = TRUE ;
     
          } 
        }
     
      }
     
      return FALSE ;
     
    }
    Quand ont "minimize" la fenêtre principale la fenêtre des controls restent affichés, m€rde !

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo