Added a tool to test the applets independently
This commit is contained in:
parent
8dd77b4e9a
commit
e87ecd7654
4
Makefile
4
Makefile
|
@ -1,6 +1,6 @@
|
||||||
PACKAGE = Panel
|
PACKAGE = Panel
|
||||||
VERSION = 0.2.5
|
VERSION = 0.2.5
|
||||||
SUBDIRS = data include po src
|
SUBDIRS = data include po src tools
|
||||||
RM = rm -f
|
RM = rm -f
|
||||||
LN = ln -f
|
LN = ln -f
|
||||||
TAR = tar -czvf
|
TAR = tar -czvf
|
||||||
|
@ -95,6 +95,8 @@ dist:
|
||||||
$(PACKAGE)-$(VERSION)/src/applets/Makefile \
|
$(PACKAGE)-$(VERSION)/src/applets/Makefile \
|
||||||
$(PACKAGE)-$(VERSION)/src/applets/tasks.atoms \
|
$(PACKAGE)-$(VERSION)/src/applets/tasks.atoms \
|
||||||
$(PACKAGE)-$(VERSION)/src/applets/project.conf \
|
$(PACKAGE)-$(VERSION)/src/applets/project.conf \
|
||||||
|
$(PACKAGE)-$(VERSION)/tools/test.c \
|
||||||
|
$(PACKAGE)-$(VERSION)/tools/project.conf \
|
||||||
$(PACKAGE)-$(VERSION)/COPYING \
|
$(PACKAGE)-$(VERSION)/COPYING \
|
||||||
$(PACKAGE)-$(VERSION)/Makefile \
|
$(PACKAGE)-$(VERSION)/Makefile \
|
||||||
$(PACKAGE)-$(VERSION)/config.h \
|
$(PACKAGE)-$(VERSION)/config.h \
|
||||||
|
|
6
po/fr.po
6
po/fr.po
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Panel 0.0.5\n"
|
"Project-Id-Version: Panel 0.0.5\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-04-16 02:08+0200\n"
|
"POT-Creation-Date: 2011-05-10 15:30+0200\n"
|
||||||
"PO-Revision-Date: 2010-04-22 12:45+0200\n"
|
"PO-Revision-Date: 2010-04-22 12:45+0200\n"
|
||||||
"Last-Translator: Pierre Pronchery <khorben@defora.org>\n"
|
"Last-Translator: Pierre Pronchery <khorben@defora.org>\n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
|
@ -277,3 +277,7 @@ msgstr "Usage: run\n"
|
||||||
#: ../src/window.c:58
|
#: ../src/window.c:58
|
||||||
msgid "Invalid panel size"
|
msgid "Invalid panel size"
|
||||||
msgstr "Taille invalide pour le panel"
|
msgstr "Taille invalide pour le panel"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "USB host mode is enabled"
|
||||||
|
#~ msgstr "Bluetooth actif"
|
||||||
|
|
|
@ -2,5 +2,5 @@ package=Panel
|
||||||
version=0.2.5
|
version=0.2.5
|
||||||
config=h,sh
|
config=h,sh
|
||||||
|
|
||||||
subdirs=data,include,po,src
|
subdirs=data,include,po,src,tools
|
||||||
dist=COPYING,Makefile,config.h,config.sh
|
dist=COPYING,Makefile,config.h,config.sh
|
||||||
|
|
2
tools/.cvsignore
Normal file
2
tools/.cvsignore
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
.cvsignore
|
||||||
|
panel_test
|
39
tools/Makefile
Normal file
39
tools/Makefile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
TARGETS = panel_test
|
||||||
|
PREFIX = /usr/local
|
||||||
|
DESTDIR =
|
||||||
|
BINDIR = $(PREFIX)/bin
|
||||||
|
CC = cc
|
||||||
|
CPPFLAGSF=
|
||||||
|
CPPFLAGS=
|
||||||
|
CFLAGSF = -W `pkg-config --cflags gtk+-2.0`
|
||||||
|
CFLAGS = -Wall -g -O2
|
||||||
|
LDFLAGSF= `pkg-config --libs libSystem gtk+-2.0`
|
||||||
|
RM = rm -f
|
||||||
|
LN = ln -f
|
||||||
|
MKDIR = mkdir -p
|
||||||
|
INSTALL = install
|
||||||
|
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
panel_test_OBJS = test.o
|
||||||
|
panel_test_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
|
||||||
|
panel_test_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
|
||||||
|
|
||||||
|
panel_test: $(panel_test_OBJS)
|
||||||
|
$(CC) -o panel_test $(panel_test_OBJS) $(panel_test_LDFLAGS)
|
||||||
|
|
||||||
|
test.o: test.c
|
||||||
|
$(CC) $(panel_test_CFLAGS) -c test.c
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) -- $(panel_test_OBJS)
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
$(RM) -- $(TARGETS)
|
||||||
|
|
||||||
|
install: $(TARGETS)
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
|
||||||
|
.PHONY: all clean distclean install uninstall
|
8
tools/project.conf
Normal file
8
tools/project.conf
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
targets=panel_test
|
||||||
|
cflags_force=-W `pkg-config --cflags gtk+-2.0`
|
||||||
|
cflags=-Wall -g -O2
|
||||||
|
ldflags_force=`pkg-config --libs libSystem gtk+-2.0`
|
||||||
|
|
||||||
|
[panel_test]
|
||||||
|
type=binary
|
||||||
|
sources=test.c
|
122
tools/test.c
Normal file
122
tools/test.c
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
/* $Id$ */
|
||||||
|
/* Copyright (c) 2011 Pierre Pronchery <khorben@defora.org> */
|
||||||
|
/* This file is part of DeforaOS Desktop Panel */
|
||||||
|
/* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, version 3 of the License.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <dlfcn.h>
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <Panel.h>
|
||||||
|
#include "../config.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* constants */
|
||||||
|
#ifndef PREFIX
|
||||||
|
# define PREFIX "/usr/local"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* private */
|
||||||
|
/* functions */
|
||||||
|
static char const * _helper_config_get(Panel * panel, char const * section,
|
||||||
|
char const * variable);
|
||||||
|
|
||||||
|
static int _test(char * applets[])
|
||||||
|
{
|
||||||
|
char const path[] = PREFIX "/lib/Panel/applets/";
|
||||||
|
char const so[] = ".so";
|
||||||
|
GtkWidget * window;
|
||||||
|
GtkWidget * box;
|
||||||
|
GtkWidget * widget;
|
||||||
|
size_t i;
|
||||||
|
size_t len;
|
||||||
|
char * p = NULL;
|
||||||
|
char * q;
|
||||||
|
void * dl;
|
||||||
|
PanelAppletHelper helper;
|
||||||
|
PanelApplet * pa;
|
||||||
|
|
||||||
|
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||||
|
g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(
|
||||||
|
gtk_main_quit), NULL);
|
||||||
|
gtk_window_set_title(GTK_WINDOW(window), "Applet tester");
|
||||||
|
box = gtk_hbox_new(FALSE, 4);
|
||||||
|
memset(&helper, 0, sizeof(helper));
|
||||||
|
helper.icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
|
||||||
|
helper.config_get = _helper_config_get;
|
||||||
|
for(i = 0; applets[i] != NULL; i++)
|
||||||
|
{
|
||||||
|
len = sizeof(path) + strlen(applets[i]) + sizeof(so);
|
||||||
|
if((q = realloc(p, len)) == NULL)
|
||||||
|
break;
|
||||||
|
p = q;
|
||||||
|
snprintf(p, len, "%s%s%s", path, applets[i], so);
|
||||||
|
if((dl = dlopen(p, RTLD_LAZY)) == NULL)
|
||||||
|
continue;
|
||||||
|
if((pa = dlsym(dl, "applet")) == NULL)
|
||||||
|
{
|
||||||
|
dlclose(dl);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
pa->helper = &helper;
|
||||||
|
if((widget = pa->init(pa)) != NULL)
|
||||||
|
gtk_box_pack_start(GTK_BOX(box), widget, pa->expand,
|
||||||
|
pa->fill, 0);
|
||||||
|
}
|
||||||
|
free(p);
|
||||||
|
gtk_container_add(GTK_CONTAINER(window), box);
|
||||||
|
gtk_widget_show_all(window);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char const * _helper_config_get(Panel * panel, char const * section,
|
||||||
|
char const * variable)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* usage */
|
||||||
|
static int _usage(void)
|
||||||
|
{
|
||||||
|
fputs("Usage: test applet...\n", stderr);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* public */
|
||||||
|
/* functions */
|
||||||
|
/* main */
|
||||||
|
int main(int argc, char * argv[])
|
||||||
|
{
|
||||||
|
int o;
|
||||||
|
|
||||||
|
gtk_init(&argc, &argv);
|
||||||
|
while((o = getopt(argc, argv, "")) != -1)
|
||||||
|
switch(o)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
return _usage();
|
||||||
|
}
|
||||||
|
if(optind == argc)
|
||||||
|
return _usage();
|
||||||
|
_test(&argv[optind]);
|
||||||
|
gtk_main();
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user