Erreurs lors du lancement d'un programme GTK

Erreurs lors du lancement d'un programme GTK - C++ - Programmation

Marsh Posté le 16-04-2003 à 14:31:00    

Voilà, je dois programmer une application avec GTKmm 1.2 (obligatoirement, je peux utiliser gdk, etc etc, mais il faut que ce soit réalisé en C++). Dans cette application, j'ai besoin de cacher les décorations du windowmanager. Est-ce que qqn sait comment faire ?
Merci d'avance !!! :)
 
:hello:

Reply

Marsh Posté le 16-04-2003 à 14:31:00   

Reply

Marsh Posté le 16-04-2003 à 15:30:07    

Le Sot Zi a écrit :

Voilà, je dois programmer une application avec GTKmm 1.2 (obligatoirement, je peux utiliser gdk, etc etc, mais il faut que ce soit réalisé en C++). Dans cette application, j'ai besoin de cacher les décorations du windowmanager. Est-ce que qqn sait comment faire ?
Merci d'avance !!! :)
 
:hello:


Salut,
 
Je crois que tu peux tu peux changer le style des widgets en utilisant un fichier gtkrc que tu charge dans l'application.
 
http://www.linux-france.org/articl [...] ut-18.html
http://linuxmag.linuxmag-france.or [...] thems.html
 
Sinon, tu peux redéfinir les styles directement à l'aide de la class Gtk::Style.
 
http://gtkmm.sourceforge.net/docs/gtk/Gtk::Style.html

Reply

Marsh Posté le 16-04-2003 à 15:33:07    

oui, merci pour ta réponse, mais je ne veux pas les modifier, mais tout simplement les SUPPRIMER... :(

Reply

Marsh Posté le 16-04-2003 à 16:07:30    

Le Sot Zi a écrit :

oui, merci pour ta réponse, mais je ne veux pas les modifier, mais tout simplement les SUPPRIMER... :(


C'est à dire tu veux le style gtk de base ?
 
Tu peux faire un gtk_rc_parse avec le fichier du theme par defaut :
/usr/share/themes/Default/gtk/gtkrc

Reply

Marsh Posté le 16-04-2003 à 16:19:05    

Poireau a écrit :


C'est à dire tu veux le style gtk de base ?
 
Tu peux faire un gtk_rc_parse avec le fichier du theme par defaut :
/usr/share/themes/Default/gtk/gtkrc

nan... Je ne veux plus les bordures des fenetres, style gkrellm... Ou xmms... Il n'y a pas les décorations du window manager autour de ces programmes... Bah, là, je veux la même chose...

Reply

Marsh Posté le 16-04-2003 à 17:19:02    

Le Sot Zi a écrit :

nan... Je ne veux plus les bordures des fenetres, style gkrellm... Ou xmms... Il n'y a pas les décorations du window manager autour de ces programmes... Bah, là, je veux la même chose...


 
Je viens de trouver ça :
http://mail.gnome.org/archives/gtk [...] 00158.html

Reply

Marsh Posté le 16-04-2003 à 17:37:01    

Merci bcp !! :) :jap: ça roule, mais je veux mettre une fenetre par dessus, et je peux pas la voir car elle est tt le temps au dessus... Comment on change les focus ?

Reply

Marsh Posté le 16-04-2003 à 17:56:48    

Le Sot Zi a écrit :

Merci bcp !! :) :jap: ça roule, mais je veux mettre une fenetre par dessus, et je peux pas la voir car elle est tt le temps au dessus... Comment on change les focus ?


C'est plutôt la fenêtre qui est modale nan ?
Essaye le flag GTK_WINDOW_POPUP au lieu de GTK_WINDOW_TOPLEVEL...

Reply

Marsh Posté le 16-04-2003 à 18:34:15    

Poireau a écrit :


C'est plutôt la fenêtre qui est modale nan ?
Essaye le flag GTK_WINDOW_POPUP au lieu de GTK_WINDOW_TOPLEVEL...

bah en fait... La fenetre n'a plus ses bordures grace au flag GTK_WINDOW_POPUP. Donc ce pb est résolu. MAIS mon application possède une autre fenetre qui doit s'afficher au dessus de celle qui n'a pas de bordure. Et là, pb, la fenetre s'ouvre bien, mais se place en dessous de la fenêtre sans bordure... Et moi je veux qu'elle soit au dessus...

Reply

Marsh Posté le 16-04-2003 à 19:04:09    

Le Sot Zi a écrit :

bah en fait... La fenetre n'a plus ses bordures grace au flag GTK_WINDOW_POPUP. Donc ce pb est résolu. MAIS mon application possède une autre fenetre qui doit s'afficher au dessus de celle qui n'a pas de bordure. Et là, pb, la fenetre s'ouvre bien, mais se place en dessous de la fenêtre sans bordure... Et moi je veux qu'elle soit au dessus...


 
La 3ème réponse de la page dont je t'ai donné le lien dit ca :
 
> Usually when you create your main window, you do something like:
> window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
> change that to
> window = gtk_window_new(GTK_WINDOW_POPUP);
>  
 
This is bad, it turns off window management.
 
In GTK 2, use gtk_window_set_decorated()
 
In 1.2, use:
 gtk_widget_realize (window);
 gdk_window_set_decorations (window->window, 0);
 
Havoc


Message édité par Poireau le 16-04-2003 à 19:05:56
Reply

Marsh Posté le 16-04-2003 à 19:04:09   

Reply

Marsh Posté le 16-04-2003 à 20:21:33    

quand je fais le gdk_window_set_decorations (window->window, 0); il ne veut pas compiler... Il me dit qu'il ne veut pas de ->window car pour lui ça n'existe pas !!! je ne comprends pas pk... Si tu veux le message d'erreur exact, dis-le moi, mais comme c au boulot que j'ai ce pb, je ne peux pas te le donner maintenant...
Merci pour ton aide précieuse  
:hello:

Reply

Marsh Posté le 16-04-2003 à 21:25:05    

Le Sot Zi a écrit :

quand je fais le gdk_window_set_decorations (window->window, 0); il ne veut pas compiler... Il me dit qu'il ne veut pas de ->window car pour lui ça n'existe pas !!! je ne comprends pas pk... Si tu veux le message d'erreur exact, dis-le moi, mais comme c au boulot que j'ai ce pb, je ne peux pas te le donner maintenant...
Merci pour ton aide précieuse  
:hello:


Je pense que c'est parce que c'est du code de Gtk et non Gtkmm...
Donc faut voir par là.

Code :
  1. void Gdk::Window::set_decorations (WMDecoration decorations) ;
  2. //--------------------
  3. enum   WMDecoration {
  4.   DECOR_ALL = 1 << 0,
  5.   DECOR_BORDER = 1 << 1,
  6.   DECOR_RESIZEH = 1 << 2,
  7.   DECOR_TITLE = 1 << 3,
  8.   DECOR_MENU = 1 << 4,
  9.   DECOR_MINIMIZE = 1 << 5,
  10.   DECOR_MAXIMIZE = 1 << 6
  11. }


Donc, je suppose qu'en remplaçant decorations par 0, ca doit mettre aucune décorations...
 

Reply

Marsh Posté le 17-04-2003 à 07:31:58    

Poireau a écrit :


Je pense que c'est parce que c'est du code de Gtk et non Gtkmm...
Donc faut voir par là.

Code :
  1. void Gdk::Window::set_decorations (WMDecoration decorations) ;
  2. //--------------------
  3. enum   WMDecoration {
  4.   DECOR_ALL = 1 << 0,
  5.   DECOR_BORDER = 1 << 1,
  6.   DECOR_RESIZEH = 1 << 2,
  7.   DECOR_TITLE = 1 << 3,
  8.   DECOR_MENU = 1 << 4,
  9.   DECOR_MINIMIZE = 1 << 5,
  10.   DECOR_MAXIMIZE = 1 << 6
  11. }


Donc, je suppose qu'en remplaçant decorations par 0, ca doit mettre aucune décorations...
 
 

elle vient pas de GTKmm 2 cette énumération ?

Reply

Marsh Posté le 17-04-2003 à 09:10:02    

en plus c de Gdk, et non pas de Gtk !!!! Le window de Gdk est différent du window de Gtk... :'(

Reply

Marsh Posté le 17-04-2003 à 09:20:55    

Alors vala, j'ai réussi à compiler l'application en faisant ça :
 

Code :
  1. mainwindow *mw=new mainwindow("pwet" );
  2.     gtk_widget_realize ((GtkWidget*)(mw->gtkobj()));
  3.     gdk_window_set_decorations (((GtkWidget*)(mw->gtkobj()))->window, (GdkWMDecoration)0 );


sachant que mainwindow hérite de Gtk::Window. Ca compile, mais j'ai tjs mes saloperies des bordures que je ne veux pas  
 :fou:

Reply

Marsh Posté le 17-04-2003 à 10:05:29    

ha non c bon ça marche maintenant :) :sarcastic:
merci bcp !!!
 
bon, encore à jarter la capture du focus quand on clique dessus... et pk quand je supperpose une image au dessus d'une autre, la plus petite est virée, et comment éviter ce genre de pbs...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed