SAlut! j'aimerais savoir s'il est possible de faire du plein écran avec GTK? Si oui comment? Merci de me répondre
SAlut! j'aimerais savoir s'il est possible de faire du plein écran avec GTK? Si oui comment? Merci de me répondre
Salut,
oui, j'utilise le code svuivant :
Essaye ca et on verra :-)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 //fenetre, qui doit etre en "full screen" GtkWidget *m_window; gboolean m_fullscreen; //c'est clair, n'est-ce pas ? //retenir dans mémoire pour "full screen" les dernieres valeurs gint m_window_x; gint m_window_y; gint m_window_w; gint m_window_h; void CMapWindow::SwitchFullScreen () { if ( m_fullscreen ) { gtk_widget_hide ( m_window ); gtk_window_set_type_hint ( GTK_WINDOW ( m_window ), GDK_WINDOW_TYPE_HINT_NORMAL ); // gtk_window_set_accept_focus ( GTK_WINDOW ( m_window ), TRUE ); // gtk_window_unfullscreen ( GTK_WINDOW ( m_window ) ); gtk_window_set_decorated ( GTK_WINDOW ( m_window ), TRUE ); gtk_window_move ( GTK_WINDOW ( m_window ), m_window_x, m_window_y ); gtk_window_resize ( GTK_WINDOW ( m_window ), m_window_w, m_window_h ); } else { gtk_window_get_position ( (GtkWindow*)( m_window ), &m_window_x, &m_window_y ); gtk_window_get_size ( GTK_WINDOW ( m_window ), &m_window_w, &m_window_h ); gtk_widget_hide ( m_window ); gtk_window_set_decorated ( GTK_WINDOW ( m_window ), FALSE ); gtk_window_set_type_hint ( GTK_WINDOW ( m_window ), GDK_WINDOW_TYPE_HINT_DESKTOP ); // gtk_window_set_accept_focus ( GTK_WINDOW ( m_window ), TRUE ); // gtk_window_fullscreen ( GTK_WINDOW ( m_window ) ); gtk_window_move ( GTK_WINDOW ( m_window ), 0, 0 ); GdkScreen *screen = gtk_window_get_screen ( GTK_WINDOW ( m_window ) ); gtk_window_resize ( GTK_WINDOW ( m_window ), gdk_screen_get_width (screen), gdk_screen_get_height (screen) ); } m_fullscreen = !m_fullscreen; gtk_window_present ( GTK_WINDOW ( m_window ) ); }
Bon courage. Fredy
(Desole pour mon francais)
Pas persuadé puisque la fenêtre est en plein écran quand m_fullscreen vaut false
Bref, voici un code complet et minimale qui fait ça :
Et pour info quand on fait du C++, gtkmm c'est mieux :
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 #include <gtk/gtk.h> int main (int argc, char **argv) { GtkWidget *window = NULL; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_decorated (GTK_WINDOW (window), FALSE); gtk_window_maximize (GTK_WINDOW (window)); gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DESKTOP); g_signal_connect (G_OBJECT(window), "destroy", gtk_main_quit, NULL); gtk_widget_show_all (window); gtk_main (); return 0; }
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 #include <gtkmm.h> class FSWindow : public Gtk::Window { public: FSWindow () { this->set_type_hint (Gdk::WINDOW_TYPE_HINT_DESKTOP); this->set_decorated (false); this->maximize (); } }; int main (int argc, char **argv) { Gtk::Main kit(argc, argv); FSWindow win; win.show_all (); kit.run(win); return 0; }
Je sais que ce sujet est ancien, mais
au lieu de
gtk_window_maximize()
qui laisse apparaitre la barre des tâches,
préférez
gtk_window_fullscreen()
Partager