Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/10/2007, à 19:30

fanatux

Créer une applet pr le panel gnome

Bonjour je voudrais créer une petite aplet pour le panel gnome
le principe:
une petite icone sur le panel ou quand on clique dessus il y a un petit menu avec 2 choix:
-compiz
-metacity

si on clique sur le premier, cela entraine l'execution de la commande "compiz --replace"
et pr le 2eme "metacity --replace"

Je ne veut pas savoir si il existe une autre methode c'est surtout pour apprendre un peu a programmer et me familiariser avec les outils de devellopement.

Le pb (ben ouais sinon je n'ecrirai pas ici smile c'est que je ne sait pas comment on fait (ben ouais sinon je ne chercherais pas a l'apprendre smile

J'aimerais bien m'inspirer des source d'une applet deja dispo sur ubuntu mais je ne les trouves pas, ou alors sur d'autres sources mais lesquelles?

Si vous pouviez m'aider a demarrer ce serait sympa merci!!!!


HM lar's Ubuntu
-------------------------------------------------------------
Jamendo: Portail de musique libre // hooseek Pour un internet solidaire

Hors ligne

#2 Le 29/10/2007, à 22:08

meushi

Re : Créer une applet pr le panel gnome

salut

tu ouvres tes dépots de sources (commentés par défaut), tu télécharges l'applet de ton choix, par exemple network-manager-gnome qui contient l'applet du manager de réseau, et puis tu vas fouiner dans tout ca = )

(peut-être pas la meilleure méthode mais sûr de fonctionner)

edit: si tu veux faire ca en python: http://www.pygtk.org/articles/applets_arturogf/

sinon tu pourrais sûrement télécharger la source d'un applet sur gnome-look.org

bon courage = )

Dernière modification par meushi (Le 29/10/2007, à 22:09)

Hors ligne

#3 Le 30/10/2007, à 12:44

fanatux

Re : Créer une applet pr le panel gnome

merci jvais essayer sa!


HM lar's Ubuntu
-------------------------------------------------------------
Jamendo: Portail de musique libre // hooseek Pour un internet solidaire

Hors ligne

#4 Le 30/10/2007, à 23:10

obiwankennedy

Re : Créer une applet pr le panel gnome

http://renaudguezennec.homelinux.org/pr … n,3-8.html

j'ai traduit et amélioré un tutorial d'un australien, là dessus. J'espère que ça peut t'aider.


Voilà donne  moi un retour sur la traduction et je t'aiderai plus en détail si tu veux. (j'en ai ecrite une d'applet gnome).

Dernière modification par obiwankennedy (Le 28/02/2009, à 02:32)


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#5 Le 31/10/2007, à 19:57

fanatux

Re : Créer une applet pr le panel gnome

alors la traduction, disons que c'est criblé de fautes mais jveux bien t'aider a corriger, je vois un panneau d'autentification, c'est un wiki? jpeu modifier directement le txt?
sinon niveau manipulation jbloque au moment de la compilation, je ne comprend pas, le my_applet.c, il vient d'où? je doit le créer? que contient il?


HM lar's Ubuntu
-------------------------------------------------------------
Jamendo: Portail de musique libre // hooseek Pour un internet solidaire

Hors ligne

#6 Le 31/10/2007, à 20:05

fanatux

Re : Créer une applet pr le panel gnome

c'est bon j'ai telechargé le fichier example en bas de la page, je vais voir ce que je peut en faire


HM lar's Ubuntu
-------------------------------------------------------------
Jamendo: Portail de musique libre // hooseek Pour un internet solidaire

Hors ligne

#7 Le 31/10/2007, à 20:09

fanatux

Re : Créer une applet pr le panel gnome

guillaume@guillaume-laptop:/usr/lib/gnome-panel$ sudo cp '/home/guillaume/Desktop/myexample' /usr/lib/gnome-panel/myexampleguillaume@guillaume-laptop:/usr/lib/gnome-panel$ sudo gcc $(pkg-config --cflags --libs libpanelapplet-2.0) -o myexample my_applet.c
my_applet.c: In function «on_button_press":
my_applet.c:23: attention : assignment from incompatible pointer type
my_applet.c:26: erreur: «GNOMEICONDIR" undeclared (first use in this function)
my_applet.c:26: erreur: (Each undeclared identifier is reported only once
my_applet.c:26: erreur: for each function it appears in.)
my_applet.c:26: erreur: expected «)" before string constant
my_applet.c:26: attention : assignment from incompatible pointer type
my_applet.c: In function «display_about_dialog":
my_applet.c:70: erreur: «VERSION" undeclared (first use in this function)
my_applet.c:76: attention : assignment makes pointer from integer without a cast
my_applet.c: Hors de toute fonction :
my_applet.c:100: attention : initialization from incompatible pointer type
my_applet.c:101: attention : initialization from incompatible pointer type
my_applet.c: In function «example_applet_fill":
my_applet.c:115: erreur: «GNOMEICONDIR" undeclared (first use in this function)
my_applet.c:115: erreur: expected «)" before string constant

hum hum hum, jvai manger mais cela ne m'inspire pas... atoute


HM lar's Ubuntu
-------------------------------------------------------------
Jamendo: Portail de musique libre // hooseek Pour un internet solidaire

Hors ligne

#8 Le 01/11/2007, à 15:12

obiwankennedy

Re : Créer une applet pr le panel gnome

Il est possible que ça soit une vieille version en faite... désolé.
essaie avec ceci.

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <panel-applet.h>
#include <gtk/gtk.h>
#include <glib.h>

#define TAILLE 179
#define FILE "/home/obiwan/applet/data"

typedef struct
{
		GtkWidget *label;
        GtkWidget *label1;
        GtkWidget *label2;
        GtkWidget *label3;
        GtkWidget *boite;
        GIOChannel* from;
        gchar* str_return;
        GTimeVal temps;
        GDate date;
        guint doy;
        guint i;
}verbs;



static void myexample_applet_properties_dialog (BonoboUIComponent *uic,gpointer _myverbs,const char *cname) 
{
	printf("je suis dans le truc %s \n",cname);
	guint i =0;

	verbs *myverbs=(verbs *)_myverbs;
 	g_get_current_time(&(*myverbs).temps);
    g_date_set_time_val(&(myverbs->date),&(myverbs->temps));
    myverbs->doy=g_date_get_day_of_year(&(myverbs->date));
    myverbs->doy=myverbs->doy%TAILLE;


    if(myverbs->from!=NULL)
    {	
    	myverbs->from= g_io_channel_new_file(FILE,"r",NULL);
		
            while((g_io_channel_read_line(myverbs->from,&(myverbs->str_return),NULL,NULL,NULL)==G_IO_STATUS_NORMAL)&&(i!=myverbs->doy))
                {
                   i++;
                }
            myverbs->boite = gtk_hbox_new(FALSE,4); 
			gtk_label_set_label(GTK_LABEL(myverbs->label),strtok(myverbs->str_return,"\t"));
    	   	gtk_label_set_label(GTK_LABEL(myverbs->label1),strtok(NULL,"\t"));
			gtk_label_set_label(GTK_LABEL(myverbs->label2),strtok(NULL,"\t"));
			gtk_label_set_label(GTK_LABEL(myverbs->label3),strtok(NULL,"\t"));
			
			gtk_box_pack_start(GTK_BOX(myverbs->boite), myverbs->label, FALSE, FALSE, 2);
			gtk_box_pack_start(GTK_BOX(myverbs->boite), myverbs->label1, FALSE, FALSE, 2);
			gtk_box_pack_start(GTK_BOX(myverbs->boite), myverbs->label2, FALSE, FALSE,2);
			gtk_box_pack_start(GTK_BOX(myverbs->boite),myverbs->label3, FALSE, FALSE, 2);
				
			   /* Affichage de la boite de message */
    			//gtk_dialog_run(GTK_DIALOG(pAbout));

   			 /* Destruction de la boite de message */
   				
   			//	 gtk_container_add (GTK_CONTAINER (uic), myverbs->boite);

				//gtk_widget_show_all (GTK_WIDGET (uic));

	}
	
}
static const char Context_menu_xml [] =
	   "<popup name=\"button3\">\n"
	   "   <menuitem name=\"Properties Item\" "
	   "             verb=\"ExampleProperties\" "
	   "           _label=\"_Mise à jour\"\n"
	   "          pixtype=\"stock\" "
	   "          pixname=\"gtk-refresh\"/>\n"
	   "</popup>\n";


static BonoboUIVerb myexample_menu_verbs [] = {
	        BONOBO_UI_VERB ("ExampleProperties",myexample_applet_properties_dialog),
	        BONOBO_UI_VERB_END
	};
	
static gboolean
myexample_applet_fill (PanelApplet *applet,
   const gchar *iid,
   gpointer data)
{
	guint i=0;
	verbs* myverbs=g_malloc(sizeof(verbs));

	myverbs->str_return=NULL;


	

	if (strcmp (iid, "OAFIID:ExampleApplet") != 0)
		return FALSE;

	myverbs->str_return =g_malloc(100);

	myverbs->boite = gtk_hbox_new(FALSE,4); 
	
	myverbs->from= g_io_channel_new_file(FILE,"r",NULL);
	g_get_current_time(&(myverbs->temps));
	
	g_date_set_time_val(&(myverbs->date),&(myverbs->temps));
 	myverbs->doy=g_date_get_day_of_year(&(myverbs->date));
	myverbs->doy=myverbs->doy%TAILLE;


	if(myverbs->from!=NULL)
	{
		
		while((g_io_channel_read_line(myverbs->from,&(myverbs->str_return),NULL,NULL,NULL)==G_IO_STATUS_NORMAL)&&(i!=myverbs->doy))
		{
			i++;
		}   	
	myverbs->label = gtk_label_new (strtok(myverbs->str_return,"\t"));
	myverbs->label1 = gtk_label_new (strtok(NULL,"\t"));
	myverbs->label2 = gtk_label_new(strtok(NULL,"\t"));
	myverbs->label3 = gtk_label_new (strtok(NULL,"\n"));

	gtk_box_pack_start(GTK_BOX(myverbs->boite), myverbs->label, FALSE, FALSE, 2);
	gtk_box_pack_start(GTK_BOX(myverbs->boite), myverbs->label1, FALSE, FALSE, 2);
	gtk_box_pack_start(GTK_BOX(myverbs->boite), myverbs->label2, FALSE, FALSE,2);
	gtk_box_pack_start(GTK_BOX(myverbs->boite),myverbs->label3, FALSE, FALSE, 2);
	
	panel_applet_setup_menu (PANEL_APPLET (applet),
                         Context_menu_xml,
                         myexample_menu_verbs,
	                      myverbs);

	gtk_container_add (GTK_CONTAINER (applet), myverbs->boite);

	gtk_widget_show_all (GTK_WIDGET (applet));

	}
	
	
	return TRUE;
}

PANEL_APPLET_BONOBO_FACTORY ("OAFIID:ExampleApplet_Factory",
                             PANEL_TYPE_APPLET,
                             "The Hello World Applet",
                             "0",
                             myexample_applet_fill,
                             NULL);

pour le fichier my_applet.c. Ce code compile et ne fait aucune erreur chez moi.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#9 Le 01/11/2007, à 17:58

fanatux

Re : Créer une applet pr le panel gnome

ça marche!:D


HM lar's Ubuntu
-------------------------------------------------------------
Jamendo: Portail de musique libre // hooseek Pour un internet solidaire

Hors ligne

#10 Le 01/11/2007, à 21:09

oix02

Re : Créer une applet pr le panel gnome

obiwankennedy a écrit :

http://renaudguezennec.homelinux.org/index,2,3-8.html

j'ai traduit et amélioré un tutorial d'un australien, là dessus. J'espère que ça peut t'aider.


Voilà donne  moi un retour sur la traduction et je t'aiderai plus en détail si tu veux. (j'en ai ecrite une d'applet gnome).

euh chez moi le lien est mort...


Archlinux Rolling Release
/
Kubuntu 10.04 LTS

Hors ligne

#11 Le 02/11/2007, à 13:05

obiwankennedy

Re : Créer une applet pr le panel gnome

oui effectivement le serveur qui héberge le site web est chez moi, en France. Je suis en Irlande donc quand il tombe en rade (ou quand le réseau de ma maison tombe en panne). Je ne suis pas la pour régler le problème dessuite.
Donc il faut un peu de temps avant que tout rentre dans l'ordre mais ça devrai remarcher.

fanatux a écrit :

ça marche!:D

Par contre. Pense à modifier les chemins d'accès aux données de mon programme. J'ai pas encore eu le temps de me pencher là dessus pour faire un truc propre.

Dernière modification par obiwankennedy (Le 02/11/2007, à 14:23)


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#12 Le 02/11/2007, à 18:43

oix02

Re : Créer une applet pr le panel gnome

bah si tu pouvais remonter le topic quand le serveur sera sur patte ça l'ferait wink
merci

Dernière modification par oix02 (Le 02/11/2007, à 18:44)


Archlinux Rolling Release
/
Kubuntu 10.04 LTS

Hors ligne

#13 Le 02/11/2007, à 19:43

obiwankennedy

Re : Créer une applet pr le panel gnome

il l'est.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#14 Le 02/11/2007, à 20:11

oix02

Re : Créer une applet pr le panel gnome

merci big_smile


Archlinux Rolling Release
/
Kubuntu 10.04 LTS

Hors ligne

#15 Le 02/11/2007, à 20:23

manatlan

Re : Créer une applet pr le panel gnome

pour créer ton applet ...

tu aurai pu simplement rajouter un "launcher" button dans ton panel
qui lancerait "popdown" ( http://forum.ubuntu-fr.org/viewtopic.php?id=161458 )
avec tes 2 entrées, et le tour était joué ...


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne