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 expérimenté
    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.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  2. #2
    Membre expérimenté
    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 ;
     
    }
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  3. #3
    Membre expérimenté
    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 !
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!