Pages : 1
#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 c'est que je ne sait pas comment on fait (ben ouais sinon je ne chercherais pas a l'apprendre
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!!!!
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
#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?
Hors ligne
#6 Le 31/10/2007, à 20:05
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
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
#10 Le 01/11/2007, à 21:09
- oix02
Re : Créer une applet pr le panel gnome
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.
ç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
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
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