Installing a (minimal) calendar plug-in for Mailer
This commit is contained in:
parent
70ab204a40
commit
cc5b9cfdb4
5
Makefile
5
Makefile
|
@ -1,6 +1,6 @@
|
||||||
PACKAGE = Calendar
|
PACKAGE = Calendar
|
||||||
VERSION = 0.0.0
|
VERSION = 0.0.0
|
||||||
SUBDIRS = data src
|
SUBDIRS = data src tools
|
||||||
RM ?= rm -f
|
RM ?= rm -f
|
||||||
LN ?= ln -f
|
LN ?= ln -f
|
||||||
TAR ?= tar -czvf
|
TAR ?= tar -czvf
|
||||||
|
@ -29,6 +29,9 @@ dist:
|
||||||
$(PACKAGE)-$(VERSION)/src/Makefile \
|
$(PACKAGE)-$(VERSION)/src/Makefile \
|
||||||
$(PACKAGE)-$(VERSION)/src/calendar.h \
|
$(PACKAGE)-$(VERSION)/src/calendar.h \
|
||||||
$(PACKAGE)-$(VERSION)/src/project.conf \
|
$(PACKAGE)-$(VERSION)/src/project.conf \
|
||||||
|
$(PACKAGE)-$(VERSION)/tools/calendar.c \
|
||||||
|
$(PACKAGE)-$(VERSION)/tools/Makefile \
|
||||||
|
$(PACKAGE)-$(VERSION)/tools/project.conf \
|
||||||
$(PACKAGE)-$(VERSION)/Makefile \
|
$(PACKAGE)-$(VERSION)/Makefile \
|
||||||
$(PACKAGE)-$(VERSION)/COPYING \
|
$(PACKAGE)-$(VERSION)/COPYING \
|
||||||
$(PACKAGE)-$(VERSION)/project.conf
|
$(PACKAGE)-$(VERSION)/project.conf
|
||||||
|
|
45
tools/Makefile
Normal file
45
tools/Makefile
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
TARGETS = calendar.so
|
||||||
|
PREFIX = /usr/local
|
||||||
|
DESTDIR =
|
||||||
|
LIBDIR = $(PREFIX)/lib
|
||||||
|
CC ?= cc
|
||||||
|
CPPFLAGSF?=
|
||||||
|
CPPFLAGS?=
|
||||||
|
CFLAGSF = -W -fPIC `pkg-config --cflags libDesktop Mailer`
|
||||||
|
CFLAGS = -Wall -g -O2 -pedantic
|
||||||
|
LDFLAGSF= `pkg-config --libs libDesktop`
|
||||||
|
AR ?= ar
|
||||||
|
RANLIB ?= ranlib
|
||||||
|
CCSHARED?= $(CC) -shared
|
||||||
|
RM ?= rm -f
|
||||||
|
LN ?= ln -f
|
||||||
|
MKDIR ?= mkdir -p
|
||||||
|
INSTALL ?= install
|
||||||
|
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
calendar_OBJS = calendar.o
|
||||||
|
calendar_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
|
||||||
|
calendar_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
|
||||||
|
|
||||||
|
calendar.so: $(calendar_OBJS)
|
||||||
|
$(CCSHARED) -o calendar.so $(calendar_OBJS) $(calendar_LDFLAGS)
|
||||||
|
|
||||||
|
calendar.o: calendar.c
|
||||||
|
$(CC) $(calendar_CFLAGS) -c calendar.c
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) -- $(calendar_OBJS)
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
$(RM) -- $(TARGETS)
|
||||||
|
|
||||||
|
install: $(TARGETS)
|
||||||
|
$(MKDIR) $(DESTDIR)$(LIBDIR)/Mailer/plugins
|
||||||
|
$(INSTALL) -m 0644 -- calendar.so $(DESTDIR)$(LIBDIR)/Mailer/plugins/calendar.so
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
$(RM) -- $(DESTDIR)$(LIBDIR)/Mailer/plugins/calendar.so
|
||||||
|
|
||||||
|
.PHONY: all clean distclean install uninstall
|
105
tools/calendar.c
Normal file
105
tools/calendar.c
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
/* $Id$ */
|
||||||
|
/* Copyright (c) 2012 Pierre Pronchery <khorben@defora.org> */
|
||||||
|
/* This file is part of DeforaOS Desktop Mailer */
|
||||||
|
/* 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 <stdlib.h>
|
||||||
|
#include <Desktop/Mailer/plugin.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* Mailing-lists */
|
||||||
|
/* private */
|
||||||
|
/* types */
|
||||||
|
typedef struct _MailerPlugin Calendar;
|
||||||
|
|
||||||
|
struct _MailerPlugin
|
||||||
|
{
|
||||||
|
MailerPluginHelper * helper;
|
||||||
|
|
||||||
|
/* widgets */
|
||||||
|
GtkWidget * widget;
|
||||||
|
GtkWidget * calendar;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* protected */
|
||||||
|
/* prototypes */
|
||||||
|
/* plug-in */
|
||||||
|
static MailerPlugin * _calendar_init(MailerPluginHelper * helper);
|
||||||
|
static void _calendar_destroy(Calendar * calendar);
|
||||||
|
static GtkWidget * _calendar_get_widget(Calendar * calendar);
|
||||||
|
|
||||||
|
|
||||||
|
/* public */
|
||||||
|
/* variables */
|
||||||
|
/* plug-in */
|
||||||
|
MailerPluginDefinition plugin =
|
||||||
|
{
|
||||||
|
"Calendar",
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
_calendar_init,
|
||||||
|
_calendar_destroy,
|
||||||
|
_calendar_get_widget,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* protected */
|
||||||
|
/* functions */
|
||||||
|
/* plug-in */
|
||||||
|
/* calendar_init */
|
||||||
|
static MailerPlugin * _calendar_init(MailerPluginHelper * helper)
|
||||||
|
{
|
||||||
|
Calendar * calendar;
|
||||||
|
|
||||||
|
if((calendar = malloc(sizeof(*calendar))) == NULL)
|
||||||
|
return NULL;
|
||||||
|
calendar->helper = helper;
|
||||||
|
calendar->widget = gtk_vbox_new(FALSE, 4);
|
||||||
|
/* XXX code duplicated from the Calendar class */
|
||||||
|
calendar->calendar = gtk_calendar_new();
|
||||||
|
gtk_calendar_set_display_options(GTK_CALENDAR(calendar->calendar),
|
||||||
|
GTK_CALENDAR_SHOW_HEADING
|
||||||
|
| GTK_CALENDAR_SHOW_DAY_NAMES
|
||||||
|
| GTK_CALENDAR_SHOW_WEEK_NUMBERS);
|
||||||
|
#if GTK_CHECK_VERSION(2, 14, 0)
|
||||||
|
gtk_calendar_set_detail_height_rows(GTK_CALENDAR(calendar->calendar),
|
||||||
|
1);
|
||||||
|
# if 0 /* XXX allow callbacks to be re-used from the Calendar class */
|
||||||
|
gtk_calendar_set_detail_func(GTK_CALENDAR(calendar->calendar),
|
||||||
|
(GtkCalendarDetailFunc)_calendar_on_detail, calendar,
|
||||||
|
NULL);
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
gtk_box_pack_start(GTK_BOX(calendar->widget), calendar->calendar, TRUE,
|
||||||
|
TRUE, 0);
|
||||||
|
gtk_widget_show_all(calendar->widget);
|
||||||
|
return calendar;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* calendar_destroy */
|
||||||
|
static void _calendar_destroy(Calendar * calendar)
|
||||||
|
{
|
||||||
|
free(calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* calendar_get_widget */
|
||||||
|
static GtkWidget * _calendar_get_widget(Calendar * calendar)
|
||||||
|
{
|
||||||
|
return calendar->widget;
|
||||||
|
}
|
10
tools/project.conf
Normal file
10
tools/project.conf
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
targets=calendar
|
||||||
|
cflags_force=-W -fPIC `pkg-config --cflags libDesktop Mailer`
|
||||||
|
cflags=-Wall -g -O2 -pedantic
|
||||||
|
ldflags_force=`pkg-config --libs libDesktop`
|
||||||
|
dist=Makefile
|
||||||
|
|
||||||
|
[calendar]
|
||||||
|
type=plugin
|
||||||
|
sources=calendar.c
|
||||||
|
install=$(LIBDIR)/Mailer/plugins
|
Loading…
Reference in New Issue
Block a user