Ich werde hier einfach kurz den Code erklären, der in ExampleApplet.c drinsteckt:
Zuerst kommen die Header-Dateien, die eingebunden werden müssen:
#include <stdlib.h> #include <string.h> #include <time.h> #include <panel-applet.h> #include <gtk/gtk.h> #include <gtk/gtklabel.h> #include <libbonoboui.h>
Das hier sind die globalen Variablen, unter denen wir später zwei Sachen ansprechen können: das Label (also der Text unseres Applets) und den Zähler, der einfach mal alle drei Sekunden hochzählt.
GtkWidget *Label; int Counter=0;
Dieser Codeschnipsel wird alle drei Sekunden ausgeführt:
gboolean Timer(gpointer Data) {
char Buffer[256];
Counter++;
snprintf(Buffer,255,"My Applet counted %d times!",Counter);
gtk_label_set(GTK_LABEL(Label),Buffer);
return TRUE;
}
Das hier wird die eigentliche Hauptprozedur. Ein Sanity-Check wird gemacht, das Label generiert, das Laben ins Panel hinzugefügt und dann angezeigt. Zuletzt wird der Callback für den Timer gesetzt.
static int Init_Applet(PanelApplet *Applet, const gchar *IId, gpointer data) {
if (strcmp(IId,"OAFIID:ExampleApplet")!=0) return FALSE;
Label=gtk_label_new("My Applet");
gtk_container_add(GTK_CONTAINER(Applet),Label);
gtk_widget_show_all(GTK_WIDGET(Applet));
g_timeout_add(3000,Timer,Applet);
return TRUE;
}
Und dieser Schnipsel Code registriert uns schlußendlich das ganze Applet. Sehr wichtig!
PANEL_APPLET_BONOBO_FACTORY("OAFIID:ExampleApplet_Factory",
PANEL_TYPE_APPLET,
"Example Applet",
"0", Init_Applet, NULL);
Verfügbare Dateien:
