diff options
author | Iain Holmes <iain@src.gnome.org> | 2000-10-05 08:27:52 +0800 |
---|---|---|
committer | Iain Holmes <iain@src.gnome.org> | 2000-10-05 08:27:52 +0800 |
commit | eac1b77c2ff04f5630409500f7582a010a1b3fd7 (patch) | |
tree | 8141f7dfd5b313d2926bda934679c018540892b9 | |
parent | b3046d2a2345a862b65dc6b4c6cbd022519c7091 (diff) | |
download | gsoc2013-evolution-eac1b77c2ff04f5630409500f7582a010a1b3fd7.tar.gz gsoc2013-evolution-eac1b77c2ff04f5630409500f7582a010a1b3fd7.tar.zst gsoc2013-evolution-eac1b77c2ff04f5630409500f7582a010a1b3fd7.zip |
Add the executive summary stuff.
Hopefully nothing is broken.
svn path=/trunk/; revision=5731
42 files changed, 4784 insertions, 0 deletions
diff --git a/executive-summary/.cvsignore b/executive-summary/.cvsignore new file mode 100644 index 0000000000..8f551d62a4 --- /dev/null +++ b/executive-summary/.cvsignore @@ -0,0 +1,2 @@ +core +Makefile.in diff --git a/executive-summary/ChangeLog b/executive-summary/ChangeLog new file mode 100644 index 0000000000..bc60cade9c --- /dev/null +++ b/executive-summary/ChangeLog @@ -0,0 +1,8 @@ +2000-10-04 Iain Holmes <iain@helixcode.com> + + * idl/SummaryComponent.idl: Added a title argument to the + create_view methods. + +2000-09-13 Iain Holmes <iain@helixcode.com> + + * Started the Executive Summary diff --git a/executive-summary/GNOME_Evolution_Summary.oaf.in b/executive-summary/GNOME_Evolution_Summary.oaf.in new file mode 100644 index 0000000000..c02ca3bce0 --- /dev/null +++ b/executive-summary/GNOME_Evolution_Summary.oaf.in @@ -0,0 +1,26 @@ +<oaf_info> + +<oaf_server iid="OAFIID:evolution-shell-component-factory:evolution-executive-summary:e030e71d-0c53-4118-8d48-28757f0a8504" + type="exe" + location="evolution-executive-summary"> + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:GNOME/GenericFactory:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Factory for the Evolution executive summary component."/> +</oaf_server> + +<oaf_server iid="OAFIID:evolution-shell-component:evolution-executive-summary:a978364e-3839-4570-a2a5-98cf0de587e4" + type="factory" + location="OAFIID:evolution-shell-component-factory:evolution-executive-summary:e030e71d-0c53-4118-8d48-28757f0a8504"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:Evolution/ShellComponent:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Evolution component for the executive summary."/> +</oaf_server> + +</oaf_info> diff --git a/executive-summary/GNOME_Evolution_Summary.oafinfo b/executive-summary/GNOME_Evolution_Summary.oafinfo new file mode 100644 index 0000000000..c02ca3bce0 --- /dev/null +++ b/executive-summary/GNOME_Evolution_Summary.oafinfo @@ -0,0 +1,26 @@ +<oaf_info> + +<oaf_server iid="OAFIID:evolution-shell-component-factory:evolution-executive-summary:e030e71d-0c53-4118-8d48-28757f0a8504" + type="exe" + location="evolution-executive-summary"> + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:GNOME/GenericFactory:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Factory for the Evolution executive summary component."/> +</oaf_server> + +<oaf_server iid="OAFIID:evolution-shell-component:evolution-executive-summary:a978364e-3839-4570-a2a5-98cf0de587e4" + type="factory" + location="OAFIID:evolution-shell-component-factory:evolution-executive-summary:e030e71d-0c53-4118-8d48-28757f0a8504"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:Evolution/ShellComponent:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Evolution component for the executive summary."/> +</oaf_server> + +</oaf_info> diff --git a/executive-summary/Makefile.am b/executive-summary/Makefile.am new file mode 100644 index 0000000000..3c14ed5593 --- /dev/null +++ b/executive-summary/Makefile.am @@ -0,0 +1,6 @@ +SUBDIRS = idl widgets evolution-services component test-service + +oafdir = $(datadir)/oaf +oaf_DATA = evolution-executive-summary.oafinfo + +EXTRA_DIST = $(oaf_DATA) diff --git a/executive-summary/component/.cvsignore b/executive-summary/component/.cvsignore new file mode 100644 index 0000000000..8f551d62a4 --- /dev/null +++ b/executive-summary/component/.cvsignore @@ -0,0 +1,2 @@ +core +Makefile.in diff --git a/executive-summary/component/Makefile.am b/executive-summary/component/Makefile.am new file mode 100644 index 0000000000..1cd38c67ce --- /dev/null +++ b/executive-summary/component/Makefile.am @@ -0,0 +1,64 @@ +bin_PROGRAMS = evolution-executive-summary + +INCLUDES = \ + -I$(top_srcdir)/widgets \ + -I$(top_srcdir)/widgets/e-text \ + -I$(top_srcdir) \ + -I$(top_builddir)/shell \ + -I$(top_srcdir)/shell \ + -I$(top_builddir)/executive-summary/evolution-services \ + -I$(top_srcdir)/executive-summary/widgets \ + $(GNOME_VFS_CFLAGS) \ + $(UNICODE_CFLAGS) \ + $(GTKHTML_CFLAGS) \ + -DEVOLUTION_VERSION=\""$(VERSION)"\" \ + -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \ + -DEVOLUTION_ICONSDIR=\""$(iconsdir)"\" \ + -DEVOLUTION_LOCALEDIR=\""$(datadir)/locale"\" \ + -DEVOLUTION_DATADIR=\""$(datadir)"\" \ + -DG_LOG_DOMAIN=\"evolution-executive-summary\" + +CLEANFILES = $(IDL_GENERATED) + +IDL_GENERATED = \ + Executive-Summary.h \ + Executive-Summary-common.c \ + Executive-Summary-skels.c \ + Executive-Summary-stubs.c + +Executive-Summary-impl.o: Executive-Summary.h + +$(IDL_GENERATED): + $(ORBIT_IDL) -I $(datadir)/idl `$(GNOME_CONFIG) --cflags idl` \ + -I$(srcdir) $(srcdir)/../idl/Executive-Summary.idl + +evolution_executive_summary_SOURCES = \ + component-factory.c \ + component-factory.h \ + e-summary.c \ + e-summary.h \ + e-summary-factory.c \ + e-summary-factory.h \ + main.c + +evolution_executive_summary_LDADD = \ + $(top_builddir)/shell/libeshell.a \ + $(top_builddir)/widgets/misc/libemiscwidgets.a \ + $(top_builddir)/e-util/libeutil.la \ + $(top_builddir)/executive-summary/evolution-services/libevolution-services.la \ + $(top_builddir)/executive-summary/widgets/libesummary-widgets.a \ + $(BONOBO_VFS_GNOME_LIBS) \ + $(EXTRA_GNOME_LIBS) \ + $(GTKHTML_LIBS) \ + $(UNICODE_LIBS) + +if ENABLE_PURIFY +PLINK = $(LIBTOOL) --mode=link $(PURIFY) $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ + +all-local: evolution-mail.pure + +evolution-mail.pure: evolution-mail + @rm -f evolution-mail.pure + $(PLINK) $(evolution_mail_LDFLAGS) $(evolution_mail_OBJECTS) $(evolution_mail_LDADD) $(LIBS) + +endif diff --git a/executive-summary/component/Makefile.in b/executive-summary/component/Makefile.in new file mode 100644 index 0000000000..7aed4eb957 --- /dev/null +++ b/executive-summary/component/Makefile.in @@ -0,0 +1,465 @@ +# Makefile.in generated automatically by automake 1.4a from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AS = @AS@ +BONOBO_GNOME_CFLAGS = @BONOBO_GNOME_CFLAGS@ +BONOBO_GNOME_LIBS = @BONOBO_GNOME_LIBS@ +BONOBO_HTML_GNOME_CFLAGS = @BONOBO_HTML_GNOME_CFLAGS@ +BONOBO_HTML_GNOME_LIBS = @BONOBO_HTML_GNOME_LIBS@ +BONOBO_VFS_GNOME_CFLAGS = @BONOBO_VFS_GNOME_CFLAGS@ +BONOBO_VFS_GNOME_LIBS = @BONOBO_VFS_GNOME_LIBS@ +CAPPLET_LIBS = @CAPPLET_LIBS@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +DLLTOOL = @DLLTOOL@ +EVOLUTION_DIR = @EVOLUTION_DIR@ +EXTRA_GNOME_CFLAGS = @EXTRA_GNOME_CFLAGS@ +EXTRA_GNOME_LIBS = @EXTRA_GNOME_LIBS@ +GENCAT = @GENCAT@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_LIBS = @GLIB_LIBS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ +GNOMEUI_LIBS = @GNOMEUI_LIBS@ +GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ +GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ +GNOME_CONFIG = @GNOME_CONFIG@ +GNOME_DOCKLETS_LIBS = @GNOME_DOCKLETS_LIBS@ +GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ +GNOME_LIBDIR = @GNOME_LIBDIR@ +GNOME_LIBS = @GNOME_LIBS@ +GNOME_PILOT_CFLAGS = @GNOME_PILOT_CFLAGS@ +GNOME_PILOT_LIBS = @GNOME_PILOT_LIBS@ +GNOME_PRINT_CFLAGS = @GNOME_PRINT_CFLAGS@ +GNOME_PRINT_LIBS = @GNOME_PRINT_LIBS@ +GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@ +GNOME_VFS_LIBS = @GNOME_VFS_LIBS@ +GNOME_XML_LIB = @GNOME_XML_LIB@ +GNORBA_CFLAGS = @GNORBA_CFLAGS@ +GNORBA_LIBS = @GNORBA_LIBS@ +GPG = @GPG@ +GTKDOC = @GTKDOC@ +GTKHTML_CFLAGS = @GTKHTML_CFLAGS@ +GTKHTML_LIBS = @GTKHTML_LIBS@ +GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_CONFIG = @GTK_CONFIG@ +GTK_LIBS = @GTK_LIBS@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +HAVE_GTK_DOC = @HAVE_GTK_DOC@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +KRB4_CFLAGS = @KRB4_CFLAGS@ +KRB4_LDFLAGS = @KRB4_LDFLAGS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_LDFLAGS = @KRB5_LDFLAGS@ +LDAP_LIBS = @LDAP_LIBS@ +LEX = @LEX@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +OAF_CFLAGS = @OAF_CFLAGS@ +OAF_CONFIG = @OAF_CONFIG@ +OAF_LIBS = @OAF_LIBS@ +OBJDUMP = @OBJDUMP@ +ORBIT_CFLAGS = @ORBIT_CFLAGS@ +ORBIT_CONFIG = @ORBIT_CONFIG@ +ORBIT_IDL = @ORBIT_IDL@ +ORBIT_LIBS = @ORBIT_LIBS@ +PACKAGE = @PACKAGE@ +PGP = @PGP@ +PGP5 = @PGP5@ +PILOT_BINS = @PILOT_BINS@ +PILOT_LIBS = @PILOT_LIBS@ +PISOCK_INCLUDEDIR = @PISOCK_INCLUDEDIR@ +PISOCK_LIBDIR = @PISOCK_LIBDIR@ +PISOCK_LIBS = @PISOCK_LIBS@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PTHREAD_LIB = @PTHREAD_LIB@ +PURIFY = @PURIFY@ +RANLIB = @RANLIB@ +SENDMAIL = @SENDMAIL@ +THREADS_CFLAGS = @THREADS_CFLAGS@ +THREADS_LIBS = @THREADS_LIBS@ +UNICODE_CFLAGS = @UNICODE_CFLAGS@ +UNICODE_LIBS = @UNICODE_LIBS@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XPM_LIBS = @XPM_LIBS@ +YACC = @YACC@ +ZVT_LIBS = @ZVT_LIBS@ +cflags_set = @cflags_set@ +cxxflags_set = @cxxflags_set@ +l = @l@ + +bin_PROGRAMS = evolution-executive-summary + +INCLUDES = -I$(top_srcdir)/widgets -I$(top_srcdir)/widgets/e-text -I$(top_srcdir) -I$(top_builddir)/shell -I$(top_srcdir)/shell -I$(top_builddir)/executive-summary/evolution-services -I$(top_srcdir)/executive-summary/widgets $(GNOME_VFS_CFLAGS) $(UNICODE_CFLAGS) $(GTKHTML_CFLAGS) -DEVOLUTION_VERSION=\""$(VERSION)"\" -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" -DEVOLUTION_ICONSDIR=\""$(iconsdir)"\" -DEVOLUTION_LOCALEDIR=\""$(datadir)/locale"\" -DEVOLUTION_DATADIR=\""$(datadir)"\" -DG_LOG_DOMAIN=\"evolution-executive-summary\" + + +CLEANFILES = $(IDL_GENERATED) + +IDL_GENERATED = Executive-Summary.h Executive-Summary-common.c Executive-Summary-skels.c Executive-Summary-stubs.c + + +evolution_executive_summary_SOURCES = component-factory.c component-factory.h e-summary.c e-summary.h e-summary-factory.c e-summary-factory.h main.c + + +evolution_executive_summary_LDADD = $(top_builddir)/shell/libeshell.a $(top_builddir)/widgets/misc/libemiscwidgets.a $(top_builddir)/e-util/libeutil.la $(top_builddir)/executive-summary/evolution-services/libevolution-services.la $(top_builddir)/executive-summary/widgets/libesummary-widgets.a $(BONOBO_VFS_GNOME_LIBS) $(EXTRA_GNOME_LIBS) $(GTKHTML_LIBS) $(UNICODE_LIBS) + + +@ENABLE_PURIFY_TRUE@PLINK = $(LIBTOOL) --mode=link $(PURIFY) $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../config.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(bin_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +evolution_executive_summary_OBJECTS = component-factory.o e-summary.o \ +e-summary-factory.o main.o +evolution_executive_summary_DEPENDENCIES = \ +$(top_builddir)/shell/libeshell.a \ +$(top_builddir)/widgets/misc/libemiscwidgets.a \ +$(top_builddir)/e-util/libeutil.la \ +$(top_builddir)/executive-summary/evolution-services/libevolution-services.la \ +$(top_builddir)/executive-summary/widgets/libesummary-widgets.a +evolution_executive_summary_LDFLAGS = +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +DEP_FILES = .deps/component-factory.P .deps/e-summary-factory.P \ +.deps/e-summary.P .deps/main.P +SOURCES = $(evolution_executive_summary_SOURCES) +OBJECTS = $(evolution_executive_summary_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .lo .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu executive-summary/component/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +distclean-binPROGRAMS: + +maintainer-clean-binPROGRAMS: + +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + done + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +.s.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +.S.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + +maintainer-clean-libtool: + +evolution-executive-summary: $(evolution_executive_summary_OBJECTS) $(evolution_executive_summary_DEPENDENCIES) + @rm -f evolution-executive-summary + $(LINK) $(evolution_executive_summary_LDFLAGS) $(evolution_executive_summary_OBJECTS) $(evolution_executive_summary_LDADD) $(LIBS) + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = executive-summary/component + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu executive-summary/component/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: install-binPROGRAMS +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-binPROGRAMS +uninstall: uninstall-am +all-am: Makefile $(PROGRAMS) all-local +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ + mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ + mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \ + clean-depend clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \ + distclean-tags distclean-depend distclean-generic \ + clean-am + -rm -f libtool + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-binPROGRAMS \ + maintainer-clean-compile maintainer-clean-libtool \ + maintainer-clean-tags maintainer-clean-depend \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ +maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile mostlyclean-libtool distclean-libtool \ +clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-local all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +Executive-Summary-impl.o: Executive-Summary.h + +$(IDL_GENERATED): + $(ORBIT_IDL) -I $(datadir)/idl `$(GNOME_CONFIG) --cflags idl` \ + -I$(srcdir) $(srcdir)/../idl/Executive-Summary.idl + +@ENABLE_PURIFY_TRUE@all-local: evolution-mail.pure + +@ENABLE_PURIFY_TRUE@evolution-mail.pure: evolution-mail +@ENABLE_PURIFY_TRUE@ @rm -f evolution-mail.pure +@ENABLE_PURIFY_TRUE@ $(PLINK) $(evolution_mail_LDFLAGS) $(evolution_mail_OBJECTS) $(evolution_mail_LDADD) $(LIBS) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/executive-summary/component/component-factory.c b/executive-summary/component/component-factory.c new file mode 100644 index 0000000000..3e9edaafdf --- /dev/null +++ b/executive-summary/component/component-factory.c @@ -0,0 +1,156 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* component-factory.c + * + * Authors: Ettore Perazzoli <ettore@helixcode.com> + * Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <bonobo.h> + +#include "Evolution.h" +#include "evolution-storage.h" + +#include "evolution-shell-component.h" +#include "e-util/e-gui-utils.h" + +#include "component-factory.h" +#include "e-summary-factory.h" + +#define COMPONENT_FACTORY_IID "OAFIID:evolution-shell-component-factory:evolution-executive-summary:e030e71d-0c53-4118-8d48-28757f0a8504" + +static BonoboGenericFactory *factory = NULL; +static gint running_objects = 0; + +static const EvolutionShellComponentFolderType folder_types[] = { + { "executive-summary", "evolution-today.png" }, + { NULL, NULL } +}; + +char *evolution_dir; + +/* EvolutionShellComponent methods and signals */ + +static EvolutionShellComponentResult +create_view (EvolutionShellComponent *shell_component, + const char *physical_uri, + const char *folder_type, + BonoboControl **control_return, + void *closure) +{ + EvolutionShellClient *shell_client; + Evolution_Shell corba_shell; + BonoboControl *control; + + if (g_strcasecmp (folder_type, "executive-summary") != 0) + return EVOLUTION_SHELL_COMPONENT_UNSUPPORTEDTYPE; + + shell_client = evolution_shell_component_get_owner (shell_component); + corba_shell = bonobo_object_corba_objref (BONOBO_OBJECT (shell_client)); + + control = e_summary_factory_new_control (physical_uri, corba_shell); + if (!control) + return EVOLUTION_SHELL_COMPONENT_NOTFOUND; + + *control_return = control; + + return EVOLUTION_SHELL_COMPONENT_OK; +} + +static void +owner_set_cb (EvolutionShellComponent *shell_component, + EvolutionShellClient *shell_client, + const char *evolution_homedir, + gpointer user_data) +{ + Evolution_Shell corba_shell; + + evolution_dir = g_strdup (evolution_homedir); + + corba_shell = bonobo_object_corba_objref (BONOBO_OBJECT (shell_client)); +} + +static void +owner_unset_cb (EvolutionShellComponent *shell_component, + gpointer user_data) +{ + gtk_main_quit (); +} + +static void +factory_destroy (BonoboEmbeddable *embeddable, + gpointer dummy) +{ + running_objects--; + + if (running_objects > 0) + return; + + if (factory) + bonobo_object_unref (BONOBO_OBJECT (factory)); + else + g_warning ("Serious ref counting error"); + factory = NULL; + + gtk_main_quit (); +} + +static BonoboObject * +factory_fn (BonoboGenericFactory *factory, + void *closure) +{ + EvolutionShellComponent *shell_component; + + running_objects++; + + shell_component = evolution_shell_component_new (folder_types, + create_view, + NULL, + NULL, + NULL, + NULL); + gtk_signal_connect (GTK_OBJECT (shell_component), "destroy", + GTK_SIGNAL_FUNC (factory_destroy), NULL); + gtk_signal_connect (GTK_OBJECT (shell_component), "owner_set", + GTK_SIGNAL_FUNC (owner_set_cb), NULL); + gtk_signal_connect (GTK_OBJECT (shell_component), "owner_unset", + GTK_SIGNAL_FUNC (owner_unset_cb), NULL); + + return BONOBO_OBJECT (shell_component); +} + +void +component_factory_init (void) +{ + if (factory != NULL) + return; + + factory = bonobo_generic_factory_new (COMPONENT_FACTORY_IID, + factory_fn, NULL); + + if (factory == NULL) { + e_notice (NULL, GNOME_MESSAGE_BOX_ERROR, + _("Cannot initialize Evolution's Executive Summary component.")); + exit (1); + } +} diff --git a/executive-summary/component/component-factory.h b/executive-summary/component/component-factory.h new file mode 100644 index 0000000000..65e4ad1d56 --- /dev/null +++ b/executive-summary/component/component-factory.h @@ -0,0 +1,31 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* component-factory.h + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Author: Ettore Perazzoli + */ + +#ifndef COMPONENT_FACTORY_H +#define COMPONENT_FACTORY_H + +void component_factory_init (void); + +#endif + + diff --git a/executive-summary/component/e-summary-factory.c b/executive-summary/component/e-summary-factory.c new file mode 100644 index 0000000000..c87985be34 --- /dev/null +++ b/executive-summary/component/e-summary-factory.c @@ -0,0 +1,255 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* e-summary-factory.c + * + * Authors: Ettore Perazzoli <ettore@helixcode.com> + * Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <gnome.h> +#include <bonobo/bonobo-main.h> +#include <bonobo/bonobo-object.h> +#include <bonobo/bonobo-generic-factory.h> +#include <bonobo/bonobo-control.h> + +#include <liboaf/liboaf.h> + +#include "gal/util/e-util.h" +#include "e-util/e-gui-utils.h" + +#include "e-summary-factory.h" + +#include "e-summary.h" +#include "Evolution.h" + +#include <executive-summary-component-client.h> +#include <Executive-Summary.h> + +#include <executive-summary.h> +#include <executive-summary-component.h> + +static GList *control_list = NULL; + +GtkWidget* embed_service (GtkWidget *widget, + ESummary *esummary); +static void update (ExecutiveSummary *summary, + const Evolution_SummaryComponent component, + const char *html, + ESummary *esummary); +static void set_title (ExecutiveSummary *summary, + const Evolution_SummaryComponent component, + const char *title, + void *closure); +static void flash (ExecutiveSummary *summary, + const Evolution_SummaryComponent component, + void *closure); + +BonoboUIVerb verbs[] = { + BONOBO_UI_VERB ("AddService", embed_service), + BONOBO_UI_VERB_END +}; + +static void +set_pixmap (Bonobo_UIContainer container, + const char *xml_path, + const char *icon) +{ + char *path; + GdkPixbuf *pixbuf; + + path = g_concat_dir_and_file (EVOLUTION_DATADIR "/images/evolution/buttons", icon); + + pixbuf = gdk_pixbuf_new_from_file (path); + g_return_if_fail (pixbuf != NULL); + + bonobo_ui_util_set_pixbuf (container, xml_path, pixbuf); + gdk_pixbuf_unref (pixbuf); + g_free (path); +} + +static void +update_pixmaps (Bonobo_UIContainer container) +{ + set_pixmap (container, "/Toolbar/AddService", "add-service.png"); +} + +static void +control_activate (BonoboControl *control, + BonoboUIHandler *uih, + ESummary *esummary) +{ + BonoboUIComponent *component; + Bonobo_UIContainer container; + + container = bonobo_control_get_remote_ui_handler (control); + bonobo_ui_handler_set_container (uih, container); + bonobo_object_release_unref (container, NULL); + + g_assert (container == bonobo_ui_compat_get_container (uih)); + g_return_if_fail (container != CORBA_OBJECT_NIL); + + component = bonobo_ui_compat_get_component (uih); + bonobo_ui_component_add_verb_list_with_data (component, verbs, esummary); + + bonobo_ui_container_freeze (container, NULL); + + bonobo_ui_util_set_ui (component, container, EVOLUTION_DATADIR, + "evolution-executive-summary.xml", + "evolution-executive-summary"); + + update_pixmaps (container); + bonobo_ui_container_thaw (container, NULL); +} + +static void +control_deactivate (BonoboControl *control, + BonoboUIHandler *uih, + ESummary *esummary) +{ + bonobo_ui_component_rm (bonobo_ui_compat_get_component (uih), + bonobo_ui_compat_get_container (uih), "/", NULL); + bonobo_ui_handler_unset_container (uih); +} + +static void +control_activate_cb (BonoboControl *control, + gboolean activate, + gpointer user_data) +{ + BonoboUIHandler *uih; + + uih = bonobo_control_get_ui_handler (control); + g_assert (uih); + + if (activate) + control_activate (control, uih, user_data); + else + control_deactivate (control, uih, user_data); +} + +static void +control_destroy_cb (BonoboControl *control, + gpointer user_data) +{ + GtkWidget *esummary = user_data; + + control_list = g_list_remove (control_list, control); + + gtk_object_destroy (GTK_OBJECT (esummary)); +} + +static void +update (ExecutiveSummary *summary, + const Evolution_SummaryComponent component, + const char *html, + ESummary *esummary) +{ + e_summary_update_window (esummary, summary, html); +} + +static void +set_title (ExecutiveSummary *summary, + const Evolution_SummaryComponent component, + const char *title, + void *closure) +{ + g_print ("Setting title to %s\n", title); +} + +static void +flash (ExecutiveSummary *summary, + const Evolution_SummaryComponent component, + void *closure) +{ + g_print ("FLASH!\n"); +} + +/* A ********very******** + temporary function to embed something +*/ +GtkWidget* +embed_service (GtkWidget *widget, + ESummary *esummary) +{ + ExecutiveSummaryComponentClient *client; + ExecutiveSummary *summary; + char *required_interfaces[2] = {"IDL:Evolution:SummaryComponent:1.0", + NULL}; + char *obj_id; + char *title; + char *html; + + obj_id = bonobo_selector_select_id ("Select a service", + (const char **) required_interfaces); + if (obj_id == NULL) + return NULL; + + client = executive_summary_component_client_new (obj_id); + + if (client == NULL) + return NULL; + + /* Set the owner */ + summary = executive_summary_new (set_title, flash, update, esummary); + executive_summary_component_client_set_owner (client, summary); + + /* Create view */ + html = executive_summary_component_client_create_html_view (client, &title); + e_summary_add_html_service (esummary, summary, html, title); + g_free (html); + + e_summary_rebuild_page (esummary); + return NULL; +} + +BonoboControl * +e_summary_factory_new_control (const char *uri, + const Evolution_Shell shell) +{ + BonoboControl *control; + GtkWidget *esummary; + + esummary = e_summary_new (shell); + if (esummary == NULL) + return NULL; + + gtk_widget_show (esummary); + + control = bonobo_control_new (esummary); + + if (control == NULL) { + gtk_object_destroy (GTK_OBJECT (esummary)); + return NULL; + } + + gtk_signal_connect (GTK_OBJECT (control), "activate", + control_activate_cb, esummary); + + gtk_signal_connect (GTK_OBJECT (control), "destroy", + control_destroy_cb, esummary); + + control_list = g_list_prepend (control_list, control); + + e_summary_rebuild_page (E_SUMMARY (esummary)); + return control; +} diff --git a/executive-summary/component/e-summary-factory.h b/executive-summary/component/e-summary-factory.h new file mode 100644 index 0000000000..e9c8660c82 --- /dev/null +++ b/executive-summary/component/e-summary-factory.h @@ -0,0 +1,32 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* e-summary-factory.h + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _E_SUMMARY_FACTORY_H__ +#define _E_SUMMARY_FACTORY_H__ + +#include <Evolution.h> + +BonoboControl *e_summary_factory_new_control (const char *uri, + const Evolution_Shell shell); + +#endif diff --git a/executive-summary/component/e-summary.c b/executive-summary/component/e-summary.c new file mode 100644 index 0000000000..0684a8c083 --- /dev/null +++ b/executive-summary/component/e-summary.c @@ -0,0 +1,496 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* e-summary.c + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <gnome.h> +#include <bonobo.h> + +#include <gtkhtml/gtkhtml.h> +#include <gtkhtml/gtkhtml-stream.h> +#include <gtk/gtkvbox.h> +#include <gal/util/e-util.h> +#include <e-summary-subwindow.h> + +#include <widgets/misc/e-title-bar.h> +#include <executive-summary.h> + +#include "e-summary.h" + +#define PARENT_TYPE (gtk_vbox_get_type ()) + +static GtkObjectClass *e_summary_parent_class; + +struct _ESummaryPrivate { + GtkWidget *html_scroller; + GtkWidget *html; + + GHashTable *summary_to_window; + GList *window_list; + + GtkHTMLStream *stream; +}; + +typedef enum { + E_SUMMARY_WINDOW_BONOBO, + E_SUMMARY_WINDOW_HTML +} ESummaryWindowType; + +typedef struct _ESummaryWindow { + ExecutiveSummary *summary; + char *title; + + ESummaryWindowType type; + + char *html; + GtkWidget *control; +} ESummaryWindow; + +static gboolean on_object_requested (GtkHTML *html, + GtkHTMLEmbedded *eb, + ESummary *summary); +static void e_summary_window_free (ESummaryWindow *window, + ESummaryPrivate *priv); + +/* GtkObject methods */ + +static void +s2w_foreach (gpointer *key, + gpointer *value, + ESummaryPrivate *priv) +{ + bonobo_object_unref (BONOBO_OBJECT (key)); + e_summary_window_free ((ESummaryWindow *) value, priv); +} + +static void +e_summary_destroy (GtkObject *object) +{ + ESummary *esummary = E_SUMMARY (object); + ESummaryPrivate *priv; + + priv = esummary->private; + if (priv == NULL) + return; + + g_hash_table_foreach (priv->summary_to_window, + s2w_foreach, priv); + g_hash_table_destroy (priv->summary_to_window); + + g_free (esummary->private); + esummary->private = NULL; + + e_summary_parent_class->destroy (object); +} + +static void +e_summary_class_init (GtkObjectClass *object_class) +{ + object_class->destroy = e_summary_destroy; + + e_summary_parent_class = gtk_type_class (PARENT_TYPE); +} + +static char * +e_pixmap_file (const char *filename) +{ + char *ret; + char *edir; + + /* Try the evolution images dir */ + edir = g_concat_dir_and_file (EVOLUTION_DATADIR "/images/evolution", + filename); + + if (g_file_exists (edir)) { + ret = g_strdup (edir); + g_free (edir); + + return ret; + } + + /* Try the evolution button images dir */ + edir = g_concat_dir_and_file (EVOLUTION_DATADIR "/images/evolution/buttons", + filename); + + if (g_file_exists (edir)) { + ret = g_strdup (edir); + g_free (edir); + + return ret; + } + + /* Fall back to the gnome_pixmap_file */ + return gnome_pixmap_file (filename); +} + +static void +request_cb (GtkHTML *html, + const gchar *url, + GtkHTMLStream *stream) +{ + char *filename; + FILE *handle; + + filename = e_pixmap_file (url); + + if (filename == NULL) { + gtk_html_stream_close (stream, GTK_HTML_STREAM_ERROR); + return; + } + + handle = fopen (filename, "r"); + g_free (filename); + + if (handle == NULL) { + gtk_html_stream_close (stream, GTK_HTML_STREAM_ERROR); + return; + } + + while (!feof (handle)) { + char buffer[4096]; + int size; + + /* Clear buffer */ + memset (buffer, 0x00, 4096); + + size = fread (buffer, 1, 4096, handle); + if (size != 4096) { + /* Under run */ + if (feof (handle)) { + gtk_html_stream_write (stream, buffer, size); + gtk_html_stream_close (stream, GTK_HTML_STREAM_OK); + fclose (handle); + return; + } else { + /* Error occurred */ + gtk_html_stream_close (stream, GTK_HTML_STREAM_ERROR); + fclose (handle); + return; + } + } + gtk_html_stream_write (stream, buffer, 4096); + } + + gtk_html_stream_close (stream, GTK_HTML_STREAM_OK); + fclose (handle); +} + +static void +e_summary_start_load (ESummary *summary) +{ + ESummaryPrivate *priv; + char *header = "<html><body>"; + + priv = summary->private; + priv->stream = gtk_html_begin (GTK_HTML (priv->html)); + gtk_html_write (GTK_HTML (priv->html), priv->stream, + header, strlen (header)); +} + +static void +load_default (ESummary *summary) +{ + ESummaryPrivate *priv; + char *def = "<table width=\"100%\"><tr><td align=\"right\"><img src=\"ccsplash.png\"></td></tr></table><hr>"; + + g_return_if_fail (summary != NULL); + g_return_if_fail (IS_E_SUMMARY (summary)); + + priv = summary->private; + + g_return_if_fail (priv->stream != NULL); + + gtk_html_write (GTK_HTML (priv->html), priv->stream, def, strlen (def)); +} + +static void +e_summary_end_load (ESummary *summary) +{ + ESummaryPrivate *priv; + char *footer = "<hr></body></html>"; + + priv = summary->private; + gtk_html_write (GTK_HTML (priv->html), priv->stream, + footer, strlen (footer)); + gtk_html_end (GTK_HTML (priv->html), priv->stream, GTK_HTML_STREAM_OK); + + priv->stream = NULL; +} + +static void +e_summary_init (ESummary *esummary) +{ + GdkColor bgcolour = {0, 0xdfff, 0xdfff, 0xffff}; + ESummaryPrivate *priv; + + esummary->private = g_new0 (ESummaryPrivate, 1); + priv = esummary->private; + g_print ("priv: %p\n", priv); + + priv->window_list = NULL; + /* HTML widget */ + priv->html_scroller = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->html_scroller), + GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); + priv->html = gtk_html_new (); + gtk_html_set_editable (GTK_HTML (priv->html), FALSE); + gtk_signal_connect (GTK_OBJECT (priv->html), "url-requested", + GTK_SIGNAL_FUNC (request_cb), NULL); + gtk_signal_connect (GTK_OBJECT (priv->html), "object-requested", + GTK_SIGNAL_FUNC (on_object_requested), esummary); + + gtk_html_set_default_background_color (GTK_HTML (priv->html), &bgcolour); + gtk_container_add (GTK_CONTAINER (priv->html_scroller), priv->html); + gtk_widget_show_all (priv->html_scroller); + + e_summary_rebuild_page (esummary); + + /* Pack stuff */ + gtk_box_pack_start (GTK_BOX (esummary), priv->html_scroller, + TRUE, TRUE, 0); + + /* Init hashtable */ + priv->summary_to_window = g_hash_table_new (NULL, NULL); +} + +E_MAKE_TYPE (e_summary, "ESummary", ESummary, e_summary_class_init, + e_summary_init, PARENT_TYPE); + +GtkWidget * +e_summary_new (const Evolution_Shell shell) +{ + ESummary *esummary; + + esummary = gtk_type_new (e_summary_get_type ()); + + return GTK_WIDGET (esummary); +} + +static gboolean +on_object_requested (GtkHTML *html, + GtkHTMLEmbedded *eb, + ESummary *summary) +{ + ESummaryWindow *window; + int type; + + if (sscanf (eb->classid, "cid:%d-%p", &type, &window) != 2) { + g_warning ("Could not get the window reference\n"); + return FALSE; + } + + switch (type) { + case 1: + g_assert_not_reached (); + break; + + case 2: + gtk_widget_show (window->control); + + gtk_widget_ref (GTK_WIDGET (window->control)); + if (window->control->parent != NULL) { + gtk_container_remove (GTK_CONTAINER (window->control->parent), window->control); + } + gtk_container_add (GTK_CONTAINER (eb), window->control); + + gtk_widget_unref (GTK_WIDGET (window->control)); + break; + + default: + g_assert_not_reached (); + } + + return TRUE; +} + +static void +e_summary_display_window (ESummary *esummary, + ESummaryWindow *window) +{ + ESummaryPrivate *priv; + char *footer = "</td></tr></table>"; + char *title_cid, *body_cid; + + priv = esummary->private; + + title_cid = g_strdup_printf ("<table height=\"100%%\" width=\"100%%\"><tr><td bgcolor=\"#ff0000\" align=\"left\"><b>%s</b></td></tr><tr><td>", window->title); + gtk_html_write (GTK_HTML (priv->html), priv->stream, title_cid, + strlen (title_cid)); + g_free (title_cid); + + switch (window->type) { + case E_SUMMARY_WINDOW_HTML: + gtk_html_write (GTK_HTML (priv->html), priv->stream, + window->html, strlen (window->html)); + break; + + case E_SUMMARY_WINDOW_BONOBO: + body_cid = g_strdup_printf ("<object classid=\"cid:2-%p\"></object>", window); + gtk_html_write (GTK_HTML (priv->html), priv->stream, + body_cid, strlen (body_cid)); + break; + + default: + break; + } + + gtk_html_write (GTK_HTML (priv->html), priv->stream, + footer, strlen (footer)); +} + +void +e_summary_rebuild_page (ESummary *esummary) +{ + ESummaryPrivate *priv; + GList *windows; + char *service_table = "<table numcols=\"2\" width=\"100%\">"; + int loc; + + g_return_if_fail (esummary != NULL); + g_return_if_fail (IS_E_SUMMARY (esummary)); + + priv = esummary->private; + + gtk_layout_freeze (GTK_LAYOUT (priv->html)); + e_summary_start_load (esummary); + load_default (esummary); + + /* Load the start of the services */ + gtk_html_write (GTK_HTML (priv->html), priv->stream, service_table, + strlen (service_table)); + /* Load each of the services */ + loc = 0; + for (windows = priv->window_list; windows; windows = windows->next) { + ESummaryWindow *window; + + window = windows->data; + + if (loc % 2 == 0) { + g_print ("new line:%d\n", loc); + if (loc != 0) { + gtk_html_write (GTK_HTML (priv->html), + priv->stream, "</tr>", 5); + } + gtk_html_write (GTK_HTML (priv->html), + priv->stream, "<tr>", 4); + } + + gtk_html_write (GTK_HTML (priv->html), priv->stream, + "<td>", 4); + + e_summary_display_window (esummary, window); + + gtk_html_write (GTK_HTML (priv->html), priv->stream, "</td>", 5); + loc++; + } + + gtk_html_write (GTK_HTML (priv->html), priv->stream, "</tr></table>", + 13); + e_summary_end_load (esummary); + gtk_layout_thaw (GTK_LAYOUT (priv->html)); +} + +void +e_summary_add_html_service (ESummary *esummary, + ExecutiveSummary *summary, + const char *html, + const char *title) +{ + ESummaryWindow *window; + ESummaryPrivate *priv; + + window = g_new0 (ESummaryWindow, 1); + window->type = E_SUMMARY_WINDOW_HTML; + window->html = g_strdup (html); + window->title = g_strdup (title); + + window->summary = summary; + priv = esummary->private; + priv->window_list = g_list_append (priv->window_list, window); + + g_hash_table_insert (priv->summary_to_window, summary, window); +} + +void +e_summary_add_bonobo_service (ESummary *esummary, + ExecutiveSummary *summary, + GtkWidget *control, + const char *title) +{ + ESummaryWindow *window; + ESummaryPrivate *priv; + + window = g_new0 (ESummaryWindow, 1); + window->type = E_SUMMARY_WINDOW_BONOBO; + window->control = control; + + window->title = g_strdup (title); + window->summary = summary; + + priv = esummary->private; + priv->window_list = g_list_append (priv->window_list, window); + + g_hash_table_insert (priv->summary_to_window, summary, window); +} + +static void +e_summary_window_free (ESummaryWindow *window, + ESummaryPrivate *priv) +{ + g_free (window->title); + if (window->type == E_SUMMARY_WINDOW_BONOBO) + gtk_widget_unref (window->control); + else + g_free (window->html); + + priv->window_list = g_list_remove (priv->window_list, window); + + g_hash_table_remove (priv->summary_to_window, window->summary); + g_free (window); +} + +void +e_summary_update_window (ESummary *esummary, + ExecutiveSummary *summary, + const char *html) +{ + ESummaryWindow *window; + ESummaryPrivate *priv; + + g_return_if_fail (esummary != NULL); + g_return_if_fail (IS_E_SUMMARY (esummary)); + g_return_if_fail (summary != NULL); + + priv = esummary->private; + window = g_hash_table_lookup (priv->summary_to_window, summary); + + g_return_if_fail (window != NULL); + + g_free (window->html); + window->html = g_strdup (html); + + e_summary_rebuild_page (esummary); +} + diff --git a/executive-summary/component/e-summary.h b/executive-summary/component/e-summary.h new file mode 100644 index 0000000000..5aa608b5e0 --- /dev/null +++ b/executive-summary/component/e-summary.h @@ -0,0 +1,69 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* e-summary.h + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _E_SUMMARY_H__ +#define _E_SUMMARY_H__ + +#include <gtk/gtksignal.h> +#include <gtkhtml/gtkhtml.h> +#include <gtk/gtkvbox.h> +#include <executive-summary.h> + +#include "shell/Evolution.h" + +#define E_SUMMARY_TYPE (e_summary_get_type ()) +#define E_SUMMARY(obj) (GTK_CHECK_CAST ((obj), E_SUMMARY_TYPE, ESummary)) +#define E_SUMMARY_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_SUMMARY_TYPE, ESummaryClass)) +#define IS_E_SUMMARY(obj) (GTK_CHECK_TYPE ((obj), E_SUMMARY_TYPE)) +#define IS_E_SUMMARY_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_SUMMARY_TYPE)) + +typedef struct _ESummaryPrivate ESummaryPrivate; +typedef struct _ESummary ESummary; +typedef struct _ESummaryClass ESummaryClass; + +struct _ESummary { + GtkVBox parent; + + ESummaryPrivate *private; +}; + +struct _ESummaryClass { + GtkVBoxClass parent_class; +}; + +GtkType e_summary_get_type (void); +GtkWidget *e_summary_new (const Evolution_Shell shell); +void e_summary_rebuild_page (ESummary *esummary); +void e_summary_add_html_service (ESummary *esummary, + ExecutiveSummary *summary, + const char *html, + const char *title); +void e_summary_add_bonobo_service (ESummary *esummary, + ExecutiveSummary *summary, + GtkWidget *control, + const char *title); +void e_summary_update_window (ESummary *esummary, + ExecutiveSummary *summary, + const char *html); + +#endif diff --git a/executive-summary/component/executive-summary.png b/executive-summary/component/executive-summary.png Binary files differnew file mode 100644 index 0000000000..10a122f39e --- /dev/null +++ b/executive-summary/component/executive-summary.png diff --git a/executive-summary/component/main.c b/executive-summary/component/main.c new file mode 100644 index 0000000000..265baf7e86 --- /dev/null +++ b/executive-summary/component/main.c @@ -0,0 +1,80 @@ +/* + * main.c: The core of the executive summary component. + * + * Copyright (C) 2000 Helix Code, Inc + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Author: Iain Holmes <iain@helixcode.com> + */ + +#include <config.h> + +#include <signal.h> + +#include <gnome.h> +#include <bonobo/bonobo-main.h> +#include <bonobo/bonobo-object-directory.h> +#include <liboaf/liboaf.h> + +#ifdef GTKHTML_HAVE_GCONF +#include <gconf/gconf.h> +#endif + +#include "gal/widgets/e-gui-utils.h" +#include "gal/widgets/e-cursors.h" +#include "gal/widgets/e-unicode.h" + +#include "component-factory.h" + +int +main (int argc, + char **argv) +{ + CORBA_ORB orb; + + bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR); + textdomain (PACKAGE); + + gnome_init_with_popt_table ("evolution-executive-summary", VERSION, + argc, argv, oaf_popt_options, 0, NULL); + orb = oaf_init (argc, argv); + + gdk_rgb_init (); + if (bonobo_init (orb, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE) { + g_error (_("Executive summary component could not initialize Bonobo.\n" + "If there was a warning message about the " + "RootPOA, it probably means\nyou compiled " + "Bonobo against GOAD instead of OAF.")); + } + +#ifdef GTKHTML_HAVE_GCONF + gconf_init (argc, argv, NULL); +#endif + + e_unicode_init (); + + e_cursors_init (); + + component_factory_init (); + + signal (SIGSEGV, SIG_DFL); + signal (SIGBUS, SIG_DFL); + + bonobo_main (); + + return 0; +} diff --git a/executive-summary/default-header.html b/executive-summary/default-header.html new file mode 100644 index 0000000000..64fc119ea6 --- /dev/null +++ b/executive-summary/default-header.html @@ -0,0 +1,14 @@ +<html> +<head> +<title>Evolution - Executive Summary</title> +</head> + +<body bgcolor="#ffffff"> +<table> +<tr valign="center"> +<td align="right"><img src="executive-summary.png"></td> +</tr> +</table> +</body> +</html> + diff --git a/executive-summary/evolution-executive-summary.oafinfo b/executive-summary/evolution-executive-summary.oafinfo new file mode 100644 index 0000000000..c02ca3bce0 --- /dev/null +++ b/executive-summary/evolution-executive-summary.oafinfo @@ -0,0 +1,26 @@ +<oaf_info> + +<oaf_server iid="OAFIID:evolution-shell-component-factory:evolution-executive-summary:e030e71d-0c53-4118-8d48-28757f0a8504" + type="exe" + location="evolution-executive-summary"> + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:GNOME/GenericFactory:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Factory for the Evolution executive summary component."/> +</oaf_server> + +<oaf_server iid="OAFIID:evolution-shell-component:evolution-executive-summary:a978364e-3839-4570-a2a5-98cf0de587e4" + type="factory" + location="OAFIID:evolution-shell-component-factory:evolution-executive-summary:e030e71d-0c53-4118-8d48-28757f0a8504"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:Evolution/ShellComponent:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Evolution component for the executive summary."/> +</oaf_server> + +</oaf_info> diff --git a/executive-summary/evolution-services/.cvsignore b/executive-summary/evolution-services/.cvsignore new file mode 100644 index 0000000000..b4ccf20181 --- /dev/null +++ b/executive-summary/evolution-services/.cvsignore @@ -0,0 +1,6 @@ +Executive-Summary.h +Executive-Summary-common.c +Executive-Summary-skels.c +Executive-Summary-stubs.c +Makefile.in +core diff --git a/executive-summary/evolution-services/Makefile.am b/executive-summary/evolution-services/Makefile.am new file mode 100644 index 0000000000..8373dc72ab --- /dev/null +++ b/executive-summary/evolution-services/Makefile.am @@ -0,0 +1,58 @@ +lib_LTLIBRARIES = libevolution-services.la + +INCLUDES = \ + -I$(top_srcdir)/widgets \ + -I$(top_srcdir)/widgets/e-text \ + -I$(top_srcdir) \ + -I$(top_builddir)/shell \ + -I$(top_srcdir)/shell \ + $(GNOME_VFS_CFLAGS) \ + $(UNICODE_CFLAGS) \ + $(GTKHTML_CFLAGS) \ + -DEVOLUTION_VERSION=\""$(VERSION)"\" \ + -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \ + -DEVOLUTION_ICONSDIR=\""$(iconsdir)"\" \ + -DEVOLUTION_LOCALEDIR=\""$(datadir)/locale"\" \ + -DEVOLUTION_DATADIR=\""$(datadir)"\" \ + -DG_LOG_DOMAIN=\"evolution-services\" + +IDL_GENERATED = \ + Executive-Summary.h \ + Executive-Summary-common.c \ + Executive-Summary-skels.c \ + Executive-Summary-stubs.c + +Executive-Summary-impl.o: Executive-Summary.h + +$(IDL_GENERATED): $(IDLS) + $(ORBIT_IDL) -I $(datadir)/idl `$(GNOME_CONFIG) --cflags idl` \ + -I$(srcdir) $(srcdir)/../idl/Executive-Summary.idl + +libevolution_services_la_SOURCES = \ + $(IDL_GENERATED) \ + executive-summary.c \ + executive-summary.h \ + executive-summary-client.c \ + executive-summary-client.h \ + executive-summary-component.c \ + executive-summary-component.h \ + executive-summary-component-client.c \ + executive-summary-component-client.h + +libevolution_services_la_LIBADD = \ + $(top_builddir)/e-util/libeutil.la \ + $(BONOBO_VFS_GNOME_LIBS) \ + $(EXTRA_GNOME_LIBS) \ + $(GTKHTML_LIBS) \ + $(UNICODE_LIBS) + +if ENABLE_PURIFY +PLINK = $(LIBTOOL) --mode=link $(PURIFY) $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ + +all-local: evolution-mail.pure + +evolution-mail.pure: evolution-mail + @rm -f evolution-mail.pure + $(PLINK) $(evolution_mail_LDFLAGS) $(evolution_mail_OBJECTS) $(evolution_mail_LDADD) $(LIBS) + +endif diff --git a/executive-summary/evolution-services/Makefile.in b/executive-summary/evolution-services/Makefile.in new file mode 100644 index 0000000000..141fb0011b --- /dev/null +++ b/executive-summary/evolution-services/Makefile.in @@ -0,0 +1,462 @@ +# Makefile.in generated automatically by automake 1.4a from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AS = @AS@ +BONOBO_GNOME_CFLAGS = @BONOBO_GNOME_CFLAGS@ +BONOBO_GNOME_LIBS = @BONOBO_GNOME_LIBS@ +BONOBO_HTML_GNOME_CFLAGS = @BONOBO_HTML_GNOME_CFLAGS@ +BONOBO_HTML_GNOME_LIBS = @BONOBO_HTML_GNOME_LIBS@ +BONOBO_VFS_GNOME_CFLAGS = @BONOBO_VFS_GNOME_CFLAGS@ +BONOBO_VFS_GNOME_LIBS = @BONOBO_VFS_GNOME_LIBS@ +CAPPLET_LIBS = @CAPPLET_LIBS@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +DLLTOOL = @DLLTOOL@ +EVOLUTION_DIR = @EVOLUTION_DIR@ +EXTRA_GNOME_CFLAGS = @EXTRA_GNOME_CFLAGS@ +EXTRA_GNOME_LIBS = @EXTRA_GNOME_LIBS@ +GENCAT = @GENCAT@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_LIBS = @GLIB_LIBS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ +GNOMEUI_LIBS = @GNOMEUI_LIBS@ +GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ +GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ +GNOME_CONFIG = @GNOME_CONFIG@ +GNOME_DOCKLETS_LIBS = @GNOME_DOCKLETS_LIBS@ +GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ +GNOME_LIBDIR = @GNOME_LIBDIR@ +GNOME_LIBS = @GNOME_LIBS@ +GNOME_PILOT_CFLAGS = @GNOME_PILOT_CFLAGS@ +GNOME_PILOT_LIBS = @GNOME_PILOT_LIBS@ +GNOME_PRINT_CFLAGS = @GNOME_PRINT_CFLAGS@ +GNOME_PRINT_LIBS = @GNOME_PRINT_LIBS@ +GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@ +GNOME_VFS_LIBS = @GNOME_VFS_LIBS@ +GNOME_XML_LIB = @GNOME_XML_LIB@ +GNORBA_CFLAGS = @GNORBA_CFLAGS@ +GNORBA_LIBS = @GNORBA_LIBS@ +GPG = @GPG@ +GTKDOC = @GTKDOC@ +GTKHTML_CFLAGS = @GTKHTML_CFLAGS@ +GTKHTML_LIBS = @GTKHTML_LIBS@ +GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_CONFIG = @GTK_CONFIG@ +GTK_LIBS = @GTK_LIBS@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +HAVE_GTK_DOC = @HAVE_GTK_DOC@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +KRB4_CFLAGS = @KRB4_CFLAGS@ +KRB4_LDFLAGS = @KRB4_LDFLAGS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_LDFLAGS = @KRB5_LDFLAGS@ +LDAP_LIBS = @LDAP_LIBS@ +LEX = @LEX@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +OAF_CFLAGS = @OAF_CFLAGS@ +OAF_CONFIG = @OAF_CONFIG@ +OAF_LIBS = @OAF_LIBS@ +OBJDUMP = @OBJDUMP@ +ORBIT_CFLAGS = @ORBIT_CFLAGS@ +ORBIT_CONFIG = @ORBIT_CONFIG@ +ORBIT_IDL = @ORBIT_IDL@ +ORBIT_LIBS = @ORBIT_LIBS@ +PACKAGE = @PACKAGE@ +PGP = @PGP@ +PGP5 = @PGP5@ +PILOT_BINS = @PILOT_BINS@ +PILOT_LIBS = @PILOT_LIBS@ +PISOCK_INCLUDEDIR = @PISOCK_INCLUDEDIR@ +PISOCK_LIBDIR = @PISOCK_LIBDIR@ +PISOCK_LIBS = @PISOCK_LIBS@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PTHREAD_LIB = @PTHREAD_LIB@ +PURIFY = @PURIFY@ +RANLIB = @RANLIB@ +SENDMAIL = @SENDMAIL@ +THREADS_CFLAGS = @THREADS_CFLAGS@ +THREADS_LIBS = @THREADS_LIBS@ +UNICODE_CFLAGS = @UNICODE_CFLAGS@ +UNICODE_LIBS = @UNICODE_LIBS@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XPM_LIBS = @XPM_LIBS@ +YACC = @YACC@ +ZVT_LIBS = @ZVT_LIBS@ +cflags_set = @cflags_set@ +cxxflags_set = @cxxflags_set@ +l = @l@ + +lib_LTLIBRARIES = libevolution-services.la + +INCLUDES = -I$(top_srcdir)/widgets -I$(top_srcdir)/widgets/e-text -I$(top_srcdir) -I$(top_builddir)/shell -I$(top_srcdir)/shell $(GNOME_VFS_CFLAGS) $(UNICODE_CFLAGS) $(GTKHTML_CFLAGS) -DEVOLUTION_VERSION=\""$(VERSION)"\" -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" -DEVOLUTION_ICONSDIR=\""$(iconsdir)"\" -DEVOLUTION_LOCALEDIR=\""$(datadir)/locale"\" -DEVOLUTION_DATADIR=\""$(datadir)"\" -DG_LOG_DOMAIN=\"evolution-services\" + + +IDL_GENERATED = Executive-Summary.h Executive-Summary-common.c Executive-Summary-skels.c Executive-Summary-stubs.c + + +libevolution_services_la_SOURCES = $(IDL_GENERATED) executive-summary.c executive-summary.h executive-summary-client.c executive-summary-client.h executive-summary-component.c executive-summary-component.h executive-summary-component-client.c executive-summary-component-client.h + + +libevolution_services_la_LIBADD = $(top_builddir)/e-util/libeutil.la $(BONOBO_VFS_GNOME_LIBS) $(EXTRA_GNOME_LIBS) $(GTKHTML_LIBS) $(UNICODE_LIBS) + + +@ENABLE_PURIFY_TRUE@PLINK = $(LIBTOOL) --mode=link $(PURIFY) $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../config.h +CONFIG_CLEAN_FILES = +LTLIBRARIES = $(lib_LTLIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libevolution_services_la_LDFLAGS = +libevolution_services_la_DEPENDENCIES = \ +$(top_builddir)/e-util/libeutil.la +libevolution_services_la_OBJECTS = Executive-Summary-common.lo \ +Executive-Summary-skels.lo Executive-Summary-stubs.lo \ +executive-summary.lo executive-summary-client.lo \ +executive-summary-component.lo executive-summary-component-client.lo +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +DEP_FILES = .deps/Executive-Summary-common.P \ +.deps/Executive-Summary-skels.P .deps/Executive-Summary-stubs.P \ +.deps/executive-summary-client.P \ +.deps/executive-summary-component-client.P \ +.deps/executive-summary-component.P .deps/executive-summary.P +SOURCES = $(libevolution_services_la_SOURCES) +OBJECTS = $(libevolution_services_la_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .lo .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu executive-summary/evolution-services/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLTLIBRARIES: + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + +distclean-libLTLIBRARIES: + +maintainer-clean-libLTLIBRARIES: + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(libdir) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \ + else :; fi; \ + done + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ + done + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +.s.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +.S.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + +maintainer-clean-libtool: + +libevolution-services.la: $(libevolution_services_la_OBJECTS) $(libevolution_services_la_DEPENDENCIES) + $(LINK) -rpath $(libdir) $(libevolution_services_la_LDFLAGS) $(libevolution_services_la_OBJECTS) $(libevolution_services_la_LIBADD) $(LIBS) + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = executive-summary/evolution-services + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu executive-summary/evolution-services/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: install-libLTLIBRARIES +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-libLTLIBRARIES +uninstall: uninstall-am +all-am: Makefile $(LTLIBRARIES) all-local +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(libdir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \ + mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ + mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \ + clean-depend clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-libLTLIBRARIES distclean-compile \ + distclean-libtool distclean-tags distclean-depend \ + distclean-generic clean-am + -rm -f libtool + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-libLTLIBRARIES \ + maintainer-clean-compile maintainer-clean-libtool \ + maintainer-clean-tags maintainer-clean-depend \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \ +clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \ +uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \ +distclean-compile clean-compile maintainer-clean-compile \ +mostlyclean-libtool distclean-libtool clean-libtool \ +maintainer-clean-libtool tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-local all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +Executive-Summary-impl.o: Executive-Summary.h + +$(IDL_GENERATED): $(IDLS) + $(ORBIT_IDL) -I $(datadir)/idl `$(GNOME_CONFIG) --cflags idl` \ + -I$(srcdir) $(srcdir)/../idl/Executive-Summary.idl + +@ENABLE_PURIFY_TRUE@all-local: evolution-mail.pure + +@ENABLE_PURIFY_TRUE@evolution-mail.pure: evolution-mail +@ENABLE_PURIFY_TRUE@ @rm -f evolution-mail.pure +@ENABLE_PURIFY_TRUE@ $(PLINK) $(evolution_mail_LDFLAGS) $(evolution_mail_OBJECTS) $(evolution_mail_LDADD) $(LIBS) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/executive-summary/evolution-services/executive-summary-client.c b/executive-summary/evolution-services/executive-summary-client.c new file mode 100644 index 0000000000..2ea9175bd9 --- /dev/null +++ b/executive-summary/evolution-services/executive-summary-client.c @@ -0,0 +1,162 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* executive-summary-client.c + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <bonobo.h> +#include <gnome.h> +#include <gal/util/e-util.h> + +#include "Executive-Summary.h" +#include "executive-summary-client.h" +#include "executive-summary-component.h" + +#define PARENT_TYPE BONOBO_OBJECT_CLIENT_TYPE +static BonoboObjectClass *parent_class = NULL; + +struct _ExecutiveSummaryClientPrivate { + int dummy; +}; + +static void +executive_summary_client_destroy (GtkObject *object) +{ + ExecutiveSummaryClient *client; + ExecutiveSummaryClientPrivate *priv; + + client = EXECUTIVE_SUMMARY_CLIENT (object); + priv = client->private; + + if (priv == NULL) + return; + + g_free (priv); + client->private = NULL; + + (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); +} + +static void +executive_summary_client_init (ExecutiveSummaryClient *client) +{ + ExecutiveSummaryClientPrivate *priv; + + priv = g_new0 (ExecutiveSummaryClientPrivate, 1); + client->private = priv; +} + +static void +executive_summary_client_class_init (ExecutiveSummaryClientClass *client) +{ + GtkObjectClass *object_class; + + object_class = GTK_OBJECT_CLASS (client); + parent_class = gtk_type_class (PARENT_TYPE); + + object_class->destroy = executive_summary_client_destroy; +} + +void +executive_summary_client_construct (ExecutiveSummaryClient *client, + CORBA_Object corba_object) +{ + g_return_if_fail (client != NULL); + g_return_if_fail (IS_EXECUTIVE_SUMMARY_CLIENT (client)); + g_return_if_fail (corba_object != CORBA_OBJECT_NIL); + + bonobo_object_client_construct (BONOBO_OBJECT_CLIENT (client), corba_object); +} + +E_MAKE_TYPE (executive_summary_client, "ExecutiveSummaryClient", + ExecutiveSummaryClient, executive_summary_client_class_init, + executive_summary_client_init, PARENT_TYPE); + +void +executive_summary_client_set_title (ExecutiveSummaryClient *client, + ExecutiveSummaryComponent *component, + const char *title) +{ + Evolution_Summary summary; + Evolution_SummaryComponent corba_object; + CORBA_Environment ev; + + CORBA_exception_init (&ev); + summary = bonobo_object_corba_objref (BONOBO_OBJECT (client)); + corba_object = bonobo_object_corba_objref (BONOBO_OBJECT (component)); + + Evolution_Summary_set_title (summary, corba_object, title, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("Error setting title to %s:%s", title, CORBA_exception_id (&ev)); + } + + CORBA_exception_free (&ev); +} + +void +executive_summary_client_flash (ExecutiveSummaryClient *client, + ExecutiveSummaryComponent *component) +{ + Evolution_Summary summary; + Evolution_SummaryComponent corba_object; + CORBA_Environment ev; + + CORBA_exception_init (&ev); + summary = bonobo_object_corba_objref (BONOBO_OBJECT (client)); + corba_object = bonobo_object_corba_objref (BONOBO_OBJECT (component)); + + Evolution_Summary_flash (summary, corba_object, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("Error flashing"); + } + + CORBA_exception_free (&ev); +} + +void +executive_summary_client_update (ExecutiveSummaryClient *client, + ExecutiveSummaryComponent *component, + char *html) +{ + Evolution_Summary summary; + Evolution_SummaryComponent corba_object; + CORBA_Environment ev; + + CORBA_exception_init (&ev); + summary = bonobo_object_corba_objref (BONOBO_OBJECT (client)); + corba_object = bonobo_object_corba_objref (BONOBO_OBJECT (component)); + + Evolution_Summary_update_html_component (summary, corba_object, + html, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("Error updating the component"); + } + + CORBA_exception_free (&ev); +} + + diff --git a/executive-summary/evolution-services/executive-summary-client.h b/executive-summary/evolution-services/executive-summary-client.h new file mode 100644 index 0000000000..a2b350c4c6 --- /dev/null +++ b/executive-summary/evolution-services/executive-summary-client.h @@ -0,0 +1,62 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* executive-summary-client.h + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _EXECUTIVE_SUMMARY_COMPONENT_CLIENT_H__ +#define _EXECUTIVE_SUMMARY_COMPONENT_CLIENT_H__ + +#include <bonobo.h> +#include "executive-summary-component.h" + +#define EXECUTIVE_SUMMARY_CLIENT_TYPE (executive_summary_client_get_type ()) +#define EXECUTIVE_SUMMARY_CLIENT(obj) (GTK_CHECK_CAST ((obj), EXECUTIVE_SUMMARY_CLIENT_TYPE, ExecutiveSummaryClient)) +#define EXECUTIVE_SUMMARY_CLIENT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EXECUTIVE_SUMMARY_CLIENT_TYPE, ExecutiveSummaryClientClass)) +#define IS_EXECUTIVE_SUMMARY_CLIENT(obj) (GTK_CHECK_TYPE ((obj), EXECUTIVE_SUMMARY_CLIENT_TYPE)) +#define IS_EXECUTIVE_SUMMARY_CLIENT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), EXECUTIVE_SUMMARY_CLIENT_TYPE)) + +typedef struct _ExecutiveSummaryClientPrivate ExecutiveSummaryClientPrivate; +typedef struct _ExecutiveSummaryClient ExecutiveSummaryClient; +typedef struct _ExecutiveSummaryClientClass ExecutiveSummaryClientClass; + +struct _ExecutiveSummaryClient { + BonoboObjectClient parent; + + ExecutiveSummaryClientPrivate *private; +}; + +struct _ExecutiveSummaryClientClass { + BonoboObjectClientClass parent_class; +}; + +GtkType executive_summary_client_get_type (void); +void executive_summary_client_construct (ExecutiveSummaryClient *client, + CORBA_Object object); +void executive_summary_client_set_title (ExecutiveSummaryClient *client, + ExecutiveSummaryComponent *component, + const char *title); +void executive_summary_client_flash (ExecutiveSummaryClient *client, + ExecutiveSummaryComponent *component); +void executive_summary_client_update (ExecutiveSummaryClient *client, + ExecutiveSummaryComponent *component, + char *html); + +#endif diff --git a/executive-summary/evolution-services/executive-summary-component-client.c b/executive-summary/evolution-services/executive-summary-component-client.c new file mode 100644 index 0000000000..b33a876450 --- /dev/null +++ b/executive-summary/evolution-services/executive-summary-component-client.c @@ -0,0 +1,285 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* executive-summary-component-client.c + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <bonobo.h> +#include <gnome.h> +#include <gal/util/e-util.h> + +#include <liboaf/liboaf.h> + +#include <Executive-Summary.h> +#include "executive-summary-component-client.h" +#include "executive-summary.h" + +#define PARENT_TYPE BONOBO_OBJECT_CLIENT_TYPE +static BonoboObjectClass *parent_class = NULL; + +struct _ExecutiveSummaryComponentClientPrivate { + int dummy; +}; + +static void +executive_summary_component_client_destroy (GtkObject *object) +{ + ExecutiveSummaryComponentClient *client; + ExecutiveSummaryComponentClientPrivate *priv; + + client = EXECUTIVE_SUMMARY_COMPONENT_CLIENT (object); + priv = client->private; + + if (priv == NULL) + return; + + g_free (priv); + client->private = NULL; + + (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); +} + +static void +executive_summary_component_client_init (ExecutiveSummaryComponentClient *client) +{ + ExecutiveSummaryComponentClientPrivate *priv; + + priv = g_new0 (ExecutiveSummaryComponentClientPrivate, 1); + client->private = priv; +} + +static void +executive_summary_component_client_class_init (ExecutiveSummaryComponentClientClass *klass) +{ + GtkObjectClass *object_class; + + object_class = GTK_OBJECT_CLASS (klass); + object_class->destroy = executive_summary_component_client_destroy; + + parent_class = gtk_type_class (PARENT_TYPE); +} + +void +executive_summary_component_client_construct (ExecutiveSummaryComponentClient *client, + CORBA_Object corba_object) +{ + g_return_if_fail (client != NULL); + g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_CLIENT (client)); + g_return_if_fail (corba_object != CORBA_OBJECT_NIL); + + bonobo_object_client_construct (BONOBO_OBJECT_CLIENT (client), corba_object); +} + +ExecutiveSummaryComponentClient* +executive_summary_component_client_new (const char *id) +{ + ExecutiveSummaryComponentClient *client; + CORBA_Environment ev; + CORBA_Object corba_object; + + g_return_val_if_fail (id != NULL, NULL); + + CORBA_exception_init (&ev); + + corba_object = oaf_activate_from_id ((char *)id, 0, NULL, &ev); + if (ev._major != CORBA_NO_EXCEPTION) { + CORBA_exception_free (&ev); + g_warning ("Could not start %s\n", id); + return NULL; + } + + CORBA_exception_free (&ev); + + if (corba_object == CORBA_OBJECT_NIL) { + g_warning ("Could not activate %s\n", id); + return NULL; + } + + client = gtk_type_new (executive_summary_component_client_get_type ()); + executive_summary_component_client_construct (client, corba_object); + + return client; +} + +/* External API */ +void +executive_summary_component_client_set_owner (ExecutiveSummaryComponentClient *client, + ExecutiveSummary *summary) +{ + Evolution_SummaryComponent component; + Evolution_Summary corba_object; + CORBA_Environment ev; + + g_return_if_fail (client != NULL); + g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_CLIENT (client)); + g_return_if_fail (summary != NULL); + g_return_if_fail (IS_EXECUTIVE_SUMMARY (summary)); + + CORBA_exception_init (&ev); + component = bonobo_object_corba_objref (BONOBO_OBJECT (client)); + corba_object = bonobo_object_corba_objref (BONOBO_OBJECT (summary)); + + g_return_if_fail (corba_object != CORBA_OBJECT_NIL); + Evolution_SummaryComponent_set_owner (component, corba_object, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("Error setting owner"); + } + + CORBA_exception_free (&ev); + return; +} + +void +executive_summary_component_client_unset_owner (ExecutiveSummaryComponentClient *client) +{ + Evolution_SummaryComponent component; + CORBA_Environment ev; + + g_return_if_fail (client != NULL); + g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_CLIENT (client)); + + CORBA_exception_init (&ev); + component = bonobo_object_corba_objref (BONOBO_OBJECT (client)); + + Evolution_SummaryComponent_unset_owner (component, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("Error unsetting owner"); + } + + CORBA_exception_free (&ev); + return; +} + +void +executive_summary_component_client_supports (ExecutiveSummaryComponentClient *client, + gboolean *bonobo, + gboolean *html) +{ + Evolution_SummaryComponent component; + CORBA_Environment ev; + + g_return_if_fail (client != NULL); + g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_CLIENT (client)); + + CORBA_exception_init (&ev); + component = bonobo_object_corba_objref (BONOBO_OBJECT (client)); + + Evolution_SummaryComponent_supports (component, bonobo, html, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("Error checking supports"); + } + + CORBA_exception_free (&ev); + return; +} + +Bonobo_Control +executive_summary_component_client_create_bonobo_view (ExecutiveSummaryComponentClient *client, + char **title) +{ + Bonobo_Control control; + Evolution_SummaryComponent component; + CORBA_Environment ev; + + g_return_val_if_fail (client != NULL, CORBA_OBJECT_NIL); + g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_CLIENT (client), + CORBA_OBJECT_NIL); + + CORBA_exception_init (&ev); + component = bonobo_object_corba_objref (BONOBO_OBJECT (client)); + control = Evolution_SummaryComponent_create_bonobo_view (component, title, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("Error creating view"); + CORBA_exception_free (&ev); + return CORBA_OBJECT_NIL; + } + + CORBA_exception_free (&ev); + + return control; +} + +char * +executive_summary_component_client_create_html_view (ExecutiveSummaryComponentClient *client, + char **title) +{ + CORBA_char *ret_html; + Evolution_SummaryComponent component; + CORBA_Environment ev; + + g_return_val_if_fail (client != NULL, NULL); + g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_CLIENT (client), + NULL); + + CORBA_exception_init (&ev); + component = bonobo_object_corba_objref (BONOBO_OBJECT (client)); + + g_print ("Here\n"); + ret_html = Evolution_SummaryComponent_create_html_view (component, title, &ev); + g_print ("Not here - %s\n", ret_html); + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("Error creating HTML view"); + CORBA_exception_free (&ev); + return NULL; + } + + CORBA_exception_free (&ev); + + return (char *)g_strdup (ret_html); +} + +void +executive_summary_component_client_configure (ExecutiveSummaryComponentClient *client) +{ + Evolution_SummaryComponent component; + CORBA_Environment ev; + + g_return_if_fail (client != NULL); + g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_CLIENT (client)); + + CORBA_exception_init (&ev); + component = bonobo_object_corba_objref (BONOBO_OBJECT (client)); + Evolution_SummaryComponent_configure (component, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("Error configuring service"); + bonobo_object_unref (BONOBO_OBJECT (client)); + CORBA_exception_free (&ev); + return; + } + + CORBA_exception_free (&ev); + + return; +} + +E_MAKE_TYPE (executive_summary_component_client, + "ExecutiveSummaryComponentClient", + ExecutiveSummaryComponentClient, + executive_summary_component_client_class_init, + executive_summary_component_client_init, PARENT_TYPE) diff --git a/executive-summary/evolution-services/executive-summary-component-client.h b/executive-summary/evolution-services/executive-summary-component-client.h new file mode 100644 index 0000000000..bfb3ea1939 --- /dev/null +++ b/executive-summary/evolution-services/executive-summary-component-client.h @@ -0,0 +1,68 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* executive-summary-component-client.h + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _EXECUTIVE_SUMMARY_COMPONENT_CLIENT_H__ +#define _EXECUTIVE_SUMMARY_COMPONENT_CLIENT_H__ + +#include <bonobo.h> +#include <executive-summary.h> + +#define EXECUTIVE_SUMMARY_COMPONENT_CLIENT_TYPE (executive_summary_component_client_get_type ()) +#define EXECUTIVE_SUMMARY_COMPONENT_CLIENT(obj) (GTK_CHECK_CAST ((obj), EXECUTIVE_SUMMARY_COMPONENT_CLIENT_TYPE, ExecutiveSummaryComponentClient)) +#define EXECUTIVE_SUMMARY_COMPONENT_CLIENT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EXECUTIVE_SUMMARY_COMPONENT_CLIENT_TYPE, ExecutiveSummaryComponentClientClass)) +#define IS_EXECUTIVE_SUMMARY_COMPONENT_CLIENT(obj) (GTK_CHECK_TYPE ((obj), EXECUTIVE_SUMMARY_COMPONENT_CLIENT_TYPE)) +#define IS_EXECUTIVE_SUMMARY_COMPONENT_CLIENT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), EXECUTIVE_SUMMARY_COMPONENT_CLIENT_TYPE)) + +typedef struct _ExecutiveSummaryComponentClientPrivate ExecutiveSummaryComponentClientPrivate; +typedef struct _ExecutiveSummaryComponentClient ExecutiveSummaryComponentClient; +typedef struct _ExecutiveSummaryComponentClientClass ExecutiveSummaryComponentClientClass; + +struct _ExecutiveSummaryComponentClient { + BonoboObjectClient parent; + + ExecutiveSummaryComponentClientPrivate *private; +}; + +struct _ExecutiveSummaryComponentClientClass { + BonoboObjectClientClass parent_class; +}; + +GtkType executive_summary_component_client_get_type (void); +ExecutiveSummaryComponentClient *executive_summary_component_client_new (const char *id); + +void executive_summary_component_client_set_owner (ExecutiveSummaryComponentClient *client, + ExecutiveSummary *summary); +void executive_summary_component_client_unset_owner (ExecutiveSummaryComponentClient *client); + +void executive_summary_component_client_supports (ExecutiveSummaryComponentClient *client, + gboolean *bonobo, + gboolean *html); +Bonobo_Control executive_summary_component_client_create_bonobo_view (ExecutiveSummaryComponentClient *client, + char **title); + +char *executive_summary_component_client_create_html_view (ExecutiveSummaryComponentClient *client, + char **title); + +void executive_summary_component_client_configure (ExecutiveSummaryComponentClient *client); + +#endif diff --git a/executive-summary/evolution-services/executive-summary-component.c b/executive-summary/evolution-services/executive-summary-component.c new file mode 100644 index 0000000000..97e1d6ec97 --- /dev/null +++ b/executive-summary/evolution-services/executive-summary-component.c @@ -0,0 +1,400 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* executive-summary-component.c - Bonobo implementation of + * SummaryComponent.idl + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <bonobo.h> +#include <gnome.h> +#include <gal/util/e-util.h> + +#include "Executive-Summary.h" +#include "executive-summary.h" +#include "executive-summary-component.h" +#include "executive-summary-client.h" + +static void executive_summary_component_destroy (GtkObject *object); +static void executive_summary_component_init (ExecutiveSummaryComponent *component); +static void executive_summary_component_class_init (ExecutiveSummaryComponentClass *esc_class); + +#define PARENT_TYPE (bonobo_object_get_type ()) + +static BonoboObjectClass *parent_class; + +struct _ExecutiveSummaryComponentPrivate { + EvolutionServicesCreateBonoboViewFn create_bonobo_view; + EvolutionServicesCreateHtmlViewFn create_html_view; + EvolutionServicesConfigureFn configure; + + ExecutiveSummaryClient *owner_client; + + void *closure; +}; + +/* CORBA interface */ +static POA_Evolution_SummaryComponent__vepv SummaryComponent_vepv; + +static POA_Evolution_SummaryComponent * +create_servant (void) +{ + POA_Evolution_SummaryComponent *servant; + CORBA_Environment ev; + + servant = (POA_Evolution_SummaryComponent *)g_new0 (BonoboObjectServant, 1); + servant->vepv = &SummaryComponent_vepv; + + CORBA_exception_init (&ev); + POA_Evolution_SummaryComponent__init ((PortableServer_Servant) servant, &ev); + if (ev._major != CORBA_NO_EXCEPTION) { + g_free (servant); + CORBA_exception_free (&ev); + return NULL; + } + + CORBA_exception_free (&ev); + + return servant; +} + +static void +impl_Evolution_SummaryComponent_supports (PortableServer_Servant servant, + CORBA_boolean *html, + CORBA_boolean *bonobo, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + ExecutiveSummaryComponent *component; + ExecutiveSummaryComponentPrivate *priv; + + bonobo_object = bonobo_object_from_servant (servant); + component = EXECUTIVE_SUMMARY_COMPONENT (bonobo_object); + priv = component->private; + + *html = (priv->create_html_view != NULL); + *bonobo = (priv->create_bonobo_view != NULL); +} + +static void +impl_Evolution_SummaryComponent_set_owner (PortableServer_Servant servant, + Evolution_Summary summary, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + ExecutiveSummaryComponent *component; + ExecutiveSummaryComponentPrivate *priv; + ExecutiveSummaryClient *client; + Evolution_Summary summary_duplicate; + + bonobo_object = bonobo_object_from_servant (servant); + component = EXECUTIVE_SUMMARY_COMPONENT (bonobo_object); + priv = component->private; + + /* Create a summary client */ + client = gtk_type_new (executive_summary_client_get_type ()); + + summary_duplicate = CORBA_Object_duplicate (summary, ev); + executive_summary_client_construct (client, summary_duplicate); + + priv->owner_client = client; +} + +static void +impl_Evolution_SummaryComponent_unset_owner (PortableServer_Servant servant, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + ExecutiveSummaryComponent *component; + ExecutiveSummaryComponentPrivate *priv; + + bonobo_object = bonobo_object_from_servant (servant); + component = EXECUTIVE_SUMMARY_COMPONENT (bonobo_object); + priv = component->private; + + if (priv->owner_client == NULL) + return; + + bonobo_object_unref (BONOBO_OBJECT (priv->owner_client)); + priv->owner_client = NULL; +} + +static Bonobo_Control +impl_Evolution_SummaryComponent_create_bonobo_view (PortableServer_Servant servant, + CORBA_char **title, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + ExecutiveSummaryComponent *component; + ExecutiveSummaryComponentPrivate *priv; + BonoboControl *control; + char *initial_title; + + bonobo_object = bonobo_object_from_servant (servant); + component = EXECUTIVE_SUMMARY_COMPONENT (bonobo_object); + priv = component->private; + + control = (* priv->create_bonobo_view) (component, &initial_title, + priv->closure); + + *title = CORBA_string_dup (initial_title ? initial_title:""); + g_free (initial_title); + return bonobo_object_corba_objref (BONOBO_OBJECT (control)); +} + +static CORBA_char * +impl_Evolution_SummaryComponent_create_html_view (PortableServer_Servant servant, + CORBA_char **title, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + ExecutiveSummaryComponent *component; + ExecutiveSummaryComponentPrivate *priv; + CORBA_char *ret_str; + char *ret_html; + char *initial_title; + + bonobo_object = bonobo_object_from_servant (servant); + component = EXECUTIVE_SUMMARY_COMPONENT (bonobo_object); + priv = component->private; + + ret_html = (* priv->create_html_view) (component, &initial_title, + priv->closure); + + *title = CORBA_string_dup (initial_title ? initial_title:""); + g_free (initial_title); + + ret_str = CORBA_string_dup (ret_html ? ret_html:""); + g_free (ret_html); + return ret_str; +} + +static void +impl_Evolution_SummaryComponent_configure (PortableServer_Servant servant, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + ExecutiveSummaryComponent *component; + ExecutiveSummaryComponentPrivate *priv; + + bonobo_object = bonobo_object_from_servant (servant); + component = EXECUTIVE_SUMMARY_COMPONENT (bonobo_object); + priv = component->private; + + (* priv->configure) (component, priv->closure); +} + +static void +executive_summary_component_destroy (GtkObject *object) +{ + ExecutiveSummaryComponent *component; + ExecutiveSummaryComponentPrivate *priv; + CORBA_Environment ev; + + component = EXECUTIVE_SUMMARY_COMPONENT (object); + priv = component->private; + + if (priv == NULL) + return; + + CORBA_exception_init (&ev); + + if (priv->owner_client != NULL) { + bonobo_object_unref (BONOBO_OBJECT (priv->owner_client)); + priv->owner_client = NULL; + } + + CORBA_exception_free (&ev); + + g_free (priv); + component->private = NULL; + + (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); +} + +/* Init */ +static void +corba_class_init (void) +{ + POA_Evolution_SummaryComponent__vepv *vepv; + POA_Evolution_SummaryComponent__epv *epv; + PortableServer_ServantBase__epv *base_epv; + + base_epv = g_new0 (PortableServer_ServantBase__epv, 1); + base_epv->_private = NULL; + base_epv->finalize = NULL; + base_epv->default_POA = NULL; + + epv = g_new0 (POA_Evolution_SummaryComponent__epv, 1); + epv->supports = impl_Evolution_SummaryComponent_supports; + epv->set_owner = impl_Evolution_SummaryComponent_set_owner; + epv->unset_owner = impl_Evolution_SummaryComponent_unset_owner; + epv->create_bonobo_view = impl_Evolution_SummaryComponent_create_bonobo_view; + epv->create_html_view = impl_Evolution_SummaryComponent_create_html_view; + epv->configure = impl_Evolution_SummaryComponent_configure; + + vepv = &SummaryComponent_vepv; + vepv->_base_epv = base_epv; + vepv->Bonobo_Unknown_epv = bonobo_object_get_epv (); + vepv->Evolution_SummaryComponent_epv = epv; +} + +static void +executive_summary_component_class_init (ExecutiveSummaryComponentClass *klass) +{ + GtkObjectClass *object_class; + + object_class = GTK_OBJECT_CLASS (klass); + object_class->destroy = executive_summary_component_destroy; + + parent_class = gtk_type_class (PARENT_TYPE); + + corba_class_init (); +} + +static void +executive_summary_component_init (ExecutiveSummaryComponent *component) +{ + ExecutiveSummaryComponentPrivate *priv; + + priv = g_new0 (ExecutiveSummaryComponentPrivate, 1); + + priv->create_bonobo_view = NULL; + priv->create_html_view = NULL; + priv->configure = NULL; + + priv->owner_client = NULL; + priv->closure = NULL; + + component->private = priv; +} + +void +executive_summary_component_construct (ExecutiveSummaryComponent *component, + Evolution_SummaryComponent corba_object, + EvolutionServicesCreateBonoboViewFn create_bonobo, + EvolutionServicesCreateHtmlViewFn create_html, + EvolutionServicesConfigureFn configure, + void *closure) +{ + ExecutiveSummaryComponentPrivate *priv; + + g_return_if_fail (component != NULL); + g_return_if_fail (corba_object != CORBA_OBJECT_NIL); + + bonobo_object_construct (BONOBO_OBJECT (component), corba_object); + + priv = component->private; + + priv->create_bonobo_view = create_bonobo; + priv->create_html_view = create_html; + priv->configure = configure; + + priv->closure = closure; +} + +BonoboObject * +executive_summary_component_new (EvolutionServicesCreateBonoboViewFn create_bonobo, + EvolutionServicesCreateHtmlViewFn create_html, + EvolutionServicesConfigureFn configure, + void *closure) +{ + ExecutiveSummaryComponent *component; + POA_Evolution_SummaryComponent *servant; + Evolution_SummaryComponent corba_object; + + servant = create_servant (); + if (servant == NULL) + return NULL; + + component = gtk_type_new (executive_summary_component_get_type ()); + corba_object = bonobo_object_activate_servant (BONOBO_OBJECT (component), + servant); + + executive_summary_component_construct (component, corba_object, + create_bonobo, create_html, + configure, closure); + + return BONOBO_OBJECT (component); +} + +E_MAKE_TYPE (executive_summary_component, "ExecutiveSummaryComponent", + ExecutiveSummaryComponent, executive_summary_component_class_init, + executive_summary_component_init, PARENT_TYPE); + +void +executive_summary_component_set_title (ExecutiveSummaryComponent *component, + const char *title) +{ + ExecutiveSummaryComponentPrivate *priv; + + g_return_if_fail (component != NULL); + g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT (component)); + + priv = component->private; + + if (priv->owner_client == NULL) { + g_warning ("Component not owned!"); + return; + } + + executive_summary_client_set_title (priv->owner_client, component, + title); +} + +void +executive_summary_component_flash (ExecutiveSummaryComponent *component) +{ + ExecutiveSummaryComponentPrivate *priv; + + g_return_if_fail (component != NULL); + g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT (component)); + + priv = component->private; + + if (priv->owner_client == NULL) { + g_warning ("Component not owned!"); + return; + } + + executive_summary_client_flash (priv->owner_client, component); +} + +void +executive_summary_component_update (ExecutiveSummaryComponent *component, + char *html) +{ + ExecutiveSummaryComponentPrivate *priv; + + g_return_if_fail (component != NULL); + g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT (component)); + + priv = component->private; + + if (priv->owner_client == NULL) { + g_warning ("Component not ownded!"); + return; + } + + executive_summary_client_update (priv->owner_client, component, html); +} diff --git a/executive-summary/evolution-services/executive-summary-component.h b/executive-summary/evolution-services/executive-summary-component.h new file mode 100644 index 0000000000..75c1e23eb7 --- /dev/null +++ b/executive-summary/evolution-services/executive-summary-component.h @@ -0,0 +1,70 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* executive-summary-component.h + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _EXECUTIVE_SUMMARY_COMPONENT_H__ +#define _EXECUTIVE_SUMMARY_COMPONENT_H__ + +#include <gtk/gtksignal.h> +#include <bonobo.h> + +#define EXECUTIVE_SUMMARY_COMPONENT_TYPE (executive_summary_component_get_type ()) +#define EXECUTIVE_SUMMARY_COMPONENT(obj) (GTK_CHECK_CAST ((obj), EXECUTIVE_SUMMARY_COMPONENT_TYPE, ExecutiveSummaryComponent)) +#define EXECUTIVE_SUMMARY_COMPONENT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EXECUTIVE_SUMMARY_COMPONENT_TYPE, ExecutiveSummaryComponentClass)) +#define IS_EXECUTIVE_SUMMARY_COMPONENT(obj) (GTK_CHECK_TYPE ((obj), EXECUTIVE_SUMMARY_COMPONENT_TYPE)) +#define IS_EXECUTIVE_SUMMARY_COMPONENT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), EXECUTIVE_SUMMARY_COMPONENT_TYPE)) + +typedef struct _ExecutiveSummaryComponentPrivate ExecutiveSummaryComponentPrivate; +typedef struct _ExecutiveSummaryComponent ExecutiveSummaryComponent; +typedef struct _ExecutiveSummaryComponentClass ExecutiveSummaryComponentClass; + +typedef BonoboObject *(* EvolutionServicesCreateBonoboViewFn) (ExecutiveSummaryComponent *component, + char **title, + void *closure); +typedef char *(* EvolutionServicesCreateHtmlViewFn) (ExecutiveSummaryComponent *component, + char **title, + void *closure); +typedef void (* EvolutionServicesConfigureFn) (ExecutiveSummaryComponent *component, + void *closure); + +struct _ExecutiveSummaryComponent { + BonoboObject parent; + + ExecutiveSummaryComponentPrivate *private; +}; + +struct _ExecutiveSummaryComponentClass { + BonoboObjectClass parent_class; +}; + +GtkType executive_summary_component_get_type (void); + +BonoboObject *executive_summary_component_new (EvolutionServicesCreateBonoboViewFn create_bonobo, + EvolutionServicesCreateHtmlViewFn create_html, + EvolutionServicesConfigureFn configure, + void *closure); +void executive_summary_component_set_title (ExecutiveSummaryComponent *component, + const char *title); +void executive_summary_component_flash (ExecutiveSummaryComponent *component); +void executive_summary_component_update (ExecutiveSummaryComponent *component, + char *html); +#endif diff --git a/executive-summary/evolution-services/executive-summary.c b/executive-summary/evolution-services/executive-summary.c new file mode 100644 index 0000000000..08e4146466 --- /dev/null +++ b/executive-summary/evolution-services/executive-summary.c @@ -0,0 +1,241 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* executive-summary.c - Bonobo implementation of Summary.idl + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <bonobo.h> +#include <gnome.h> +#include <gal/util/e-util.h> + +#include "Executive-Summary.h" +#include "executive-summary.h" + +static void executive_summary_destroy (GtkObject *object); +static void executive_summary_class_init (ExecutiveSummaryClass *es_class); +static void executive_summary_init (ExecutiveSummary *es); + +#define PARENT_TYPE (bonobo_object_get_type ()) + +static BonoboObjectClass *parent_class; + +struct _ExecutiveSummaryPrivate { + EvolutionServicesSetTitleFn set_title; + EvolutionServicesFlashFn flash; + EvolutionServicesUpdateFn update; + + void *closure; +}; + +/* CORBA interface implementation */ +static POA_Evolution_Summary__vepv Summary_vepv; + +static POA_Evolution_Summary * +create_servant (void) +{ + POA_Evolution_Summary *servant; + CORBA_Environment ev; + + servant = (POA_Evolution_Summary *)g_new0 (BonoboObjectServant, 1); + servant->vepv = &Summary_vepv; + + CORBA_exception_init (&ev); + + POA_Evolution_Summary__init ((PortableServer_Servant) servant, &ev); + if (ev._major != CORBA_NO_EXCEPTION) { + g_free (servant); + CORBA_exception_free (&ev); + return NULL; + } + + CORBA_exception_free (&ev); + + return servant; +} + +static void +impl_Evolution_Summary_set_title (PortableServer_Servant servant, + const Evolution_SummaryComponent component, + const CORBA_char *title, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + ExecutiveSummary *summary; + ExecutiveSummaryPrivate *priv; + + bonobo_object = bonobo_object_from_servant (servant); + summary = EXECUTIVE_SUMMARY (bonobo_object); + priv = summary->private; + + (* priv->set_title) (summary, component, title, priv->closure); +} + +static void +impl_Evolution_Summary_flash (PortableServer_Servant servant, + const Evolution_SummaryComponent component, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + ExecutiveSummary *summary; + ExecutiveSummaryPrivate *priv; + + bonobo_object = bonobo_object_from_servant (servant); + summary = EXECUTIVE_SUMMARY (bonobo_object); + priv = summary->private; + + (* priv->flash) (summary, component, priv->closure); +} + +static void +impl_Evolution_Summary_update_html_component (PortableServer_Servant servant, + const Evolution_SummaryComponent component, + CORBA_char *html, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + ExecutiveSummary *summary; + ExecutiveSummaryPrivate *priv; + + bonobo_object = bonobo_object_from_servant (servant); + summary = EXECUTIVE_SUMMARY (bonobo_object); + priv = summary->private; + + (* priv->update) (summary, component, html, priv->closure); +} + +/* GtkObject methods */ +static void +executive_summary_destroy (GtkObject *object) +{ + ExecutiveSummary *es; + ExecutiveSummaryPrivate *priv; + + es = EXECUTIVE_SUMMARY (object); + priv = es->private; + + if (priv == NULL) + return; + + g_free (priv); + es->private = NULL; +} + +/* Initialisation */ + +static void +corba_class_init (void) +{ + POA_Evolution_Summary__vepv *vepv; + POA_Evolution_Summary__epv *epv; + PortableServer_ServantBase__epv *base_epv; + + base_epv = g_new0 (PortableServer_ServantBase__epv, 1); + base_epv->_private = NULL; + base_epv->finalize = NULL; + base_epv->default_POA = NULL; + + epv = g_new0 (POA_Evolution_Summary__epv, 1); + epv->set_title = impl_Evolution_Summary_set_title; + epv->flash = impl_Evolution_Summary_flash; + epv->update_html_component = impl_Evolution_Summary_update_html_component; + + vepv = &Summary_vepv; + vepv->_base_epv = base_epv; + vepv->Bonobo_Unknown_epv = bonobo_object_get_epv (); + vepv->Evolution_Summary_epv = epv; +} + +static void +executive_summary_class_init (ExecutiveSummaryClass *es_class) +{ + GtkObjectClass *object_class; + + object_class = (GtkObjectClass *) es_class; + + object_class->destroy = executive_summary_destroy; + + parent_class = gtk_type_class (PARENT_TYPE); + corba_class_init (); +} + +static void +executive_summary_init (ExecutiveSummary *es) +{ + ExecutiveSummaryPrivate *priv; + + priv = g_new0 (ExecutiveSummaryPrivate, 1); + es->private = priv; + + priv->set_title = NULL; + priv->flash = NULL; + priv->closure = NULL; +} + +E_MAKE_TYPE (executive_summary, "ExecutiveSummary", ExecutiveSummary, + executive_summary_class_init, executive_summary_init, PARENT_TYPE); + +void +executive_summary_construct (ExecutiveSummary *es, + Evolution_Summary corba_object, + EvolutionServicesSetTitleFn set_title, + EvolutionServicesFlashFn flash, + EvolutionServicesUpdateFn update, + void *closure) +{ + ExecutiveSummaryPrivate *priv; + + bonobo_object_construct (BONOBO_OBJECT (es), corba_object); + + priv = es->private; + priv->set_title = set_title; + priv->flash = flash; + priv->update = update; + priv->closure = closure; +} + +BonoboObject * +executive_summary_new (EvolutionServicesSetTitleFn set_title, + EvolutionServicesFlashFn flash, + EvolutionServicesUpdateFn update, + void *closure) +{ + POA_Evolution_Summary *servant; + Evolution_Summary corba_object; + ExecutiveSummary *es; + + servant = create_servant (); + if (servant == NULL) + return NULL; + + es = gtk_type_new (executive_summary_get_type ()); + + corba_object = bonobo_object_activate_servant (BONOBO_OBJECT (es), + servant); + executive_summary_construct (es, corba_object, set_title, flash, + update, closure); + + return BONOBO_OBJECT (es); +} + + diff --git a/executive-summary/evolution-services/executive-summary.h b/executive-summary/evolution-services/executive-summary.h new file mode 100644 index 0000000000..e2d5557d69 --- /dev/null +++ b/executive-summary/evolution-services/executive-summary.h @@ -0,0 +1,75 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* executive-summary.h + * + * Authors: Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + * + * 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; either version 2 of the + * License, or (at your option) any later version. + * + * 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, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _EXECUTIVE_SUMMARY_H__ +#define _EXECUTIVE_SUMMARY_H__ + +#include <gtk/gtksignal.h> +#include <bonobo.h> +#include "Executive-Summary.h" + +#define EXECUTIVE_SUMMARY_TYPE (executive_summary_get_type ()) +#define EXECUTIVE_SUMMARY(obj) (GTK_CHECK_CAST ((obj), EXECUTIVE_SUMMARY_TYPE, ExecutiveSummary)) +#define EXECUTIVE_SUMMARY_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EXECUTIVE_SUMMARY_TYPE, ExecutiveSummaryClass)) +#define IS_EXECUTIVE_SUMMARY(obj) (GTK_CHECK_TYPE ((obj), EXECUTIVE_SUMMARY_TYPE)) +#define IS_EXECUTIVE_SUMMARY_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), EXECUTIVE_SUMMARY_TYPE)) + +typedef struct _ExecutiveSummaryPrivate ExecutiveSummaryPrivate; +typedef struct _ExecutiveSummary ExecutiveSummary; +typedef struct _ExecutiveSummaryClass ExecutiveSummaryClass; + +typedef void (* EvolutionServicesSetTitleFn) (ExecutiveSummary *summary, + const Evolution_SummaryComponent component, + const char *title, + void *closure); +typedef void (* EvolutionServicesFlashFn) (ExecutiveSummary *summary, + const Evolution_SummaryComponent component, + void *closure); +typedef void (* EvolutionServicesUpdateFn) (ExecutiveSummary *summary, + const Evolution_SummaryComponent component, + const char *html, + void *closure); + +struct _ExecutiveSummary { + BonoboObject parent; + + ExecutiveSummaryPrivate *private; +}; + +struct _ExecutiveSummaryClass { + BonoboObjectClass parent_class; +}; + +GtkType executive_summary_get_type (void); +void executive_summary_construct (ExecutiveSummary *es, + Evolution_Summary corba_object, + EvolutionServicesSetTitleFn set_title, + EvolutionServicesFlashFn flash, + EvolutionServicesUpdateFn update, + void *closure); +BonoboObject *executive_summary_new (EvolutionServicesSetTitleFn set_title, + EvolutionServicesFlashFn flash, + EvolutionServicesUpdateFn update, + void *closure); + +#endif diff --git a/executive-summary/idl/.cvsignore b/executive-summary/idl/.cvsignore new file mode 100644 index 0000000000..70845e08eb --- /dev/null +++ b/executive-summary/idl/.cvsignore @@ -0,0 +1 @@ +Makefile.in diff --git a/executive-summary/idl/Executive-Summary.idl b/executive-summary/idl/Executive-Summary.idl new file mode 100644 index 0000000000..ac3809e299 --- /dev/null +++ b/executive-summary/idl/Executive-Summary.idl @@ -0,0 +1,3 @@ +#include <Bonobo.idl> +#include <SummaryComponent.idl> +#include <Summary.idl> diff --git a/executive-summary/idl/Makefile.am b/executive-summary/idl/Makefile.am new file mode 100644 index 0000000000..84cca5934d --- /dev/null +++ b/executive-summary/idl/Makefile.am @@ -0,0 +1,31 @@ +INCLUDES = \ + -I$(top_srcdir)/widgets \ + -I$(top_srcdir)/widgets/e-text \ + -I$(top_srcdir) \ + -I$(top_builddir)/shell \ + -I$(top_srcdir)/shell \ + $(GNOME_VFS_CFLAGS) \ + $(UNICODE_CFLAGS) \ + $(GTKHTML_CFLAGS) \ + -DEVOLUTION_VERSION=\""$(VERSION)"\" \ + -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \ + -DEVOLUTION_ICONSDIR=\""$(iconsdir)"\" \ + -DEVOLUTION_LOCALEDIR=\""$(datadir)/locale"\" \ + -DEVOLUTION_DATADIR=\""$(datadir)"\" \ + -DG_LOG_DOMAIN=\"evolution-executive-summary\" + +EXTRA_DIST = $(IDLS) + +CLEANFILES = $(IDL_GENERATED) + +IDLS = \ + Executive-Summary.idl \ + Summary.idl \ + SummaryComponent.idl + +IDL_GENERATED = \ + Executive-Summary.h \ + Executive-Summary-common.c \ + Executive-Summary-skels.c \ + Executive-Summary-stubs.c + diff --git a/executive-summary/idl/Makefile.in b/executive-summary/idl/Makefile.in new file mode 100644 index 0000000000..bf5a1a117b --- /dev/null +++ b/executive-summary/idl/Makefile.in @@ -0,0 +1,286 @@ +# Makefile.in generated automatically by automake 1.4a from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AS = @AS@ +BONOBO_GNOME_CFLAGS = @BONOBO_GNOME_CFLAGS@ +BONOBO_GNOME_LIBS = @BONOBO_GNOME_LIBS@ +BONOBO_HTML_GNOME_CFLAGS = @BONOBO_HTML_GNOME_CFLAGS@ +BONOBO_HTML_GNOME_LIBS = @BONOBO_HTML_GNOME_LIBS@ +BONOBO_VFS_GNOME_CFLAGS = @BONOBO_VFS_GNOME_CFLAGS@ +BONOBO_VFS_GNOME_LIBS = @BONOBO_VFS_GNOME_LIBS@ +CAPPLET_LIBS = @CAPPLET_LIBS@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +DLLTOOL = @DLLTOOL@ +EVOLUTION_DIR = @EVOLUTION_DIR@ +EXTRA_GNOME_CFLAGS = @EXTRA_GNOME_CFLAGS@ +EXTRA_GNOME_LIBS = @EXTRA_GNOME_LIBS@ +GENCAT = @GENCAT@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_LIBS = @GLIB_LIBS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ +GNOMEUI_LIBS = @GNOMEUI_LIBS@ +GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ +GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ +GNOME_CONFIG = @GNOME_CONFIG@ +GNOME_DOCKLETS_LIBS = @GNOME_DOCKLETS_LIBS@ +GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ +GNOME_LIBDIR = @GNOME_LIBDIR@ +GNOME_LIBS = @GNOME_LIBS@ +GNOME_PILOT_CFLAGS = @GNOME_PILOT_CFLAGS@ +GNOME_PILOT_LIBS = @GNOME_PILOT_LIBS@ +GNOME_PRINT_CFLAGS = @GNOME_PRINT_CFLAGS@ +GNOME_PRINT_LIBS = @GNOME_PRINT_LIBS@ +GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@ +GNOME_VFS_LIBS = @GNOME_VFS_LIBS@ +GNOME_XML_LIB = @GNOME_XML_LIB@ +GNORBA_CFLAGS = @GNORBA_CFLAGS@ +GNORBA_LIBS = @GNORBA_LIBS@ +GPG = @GPG@ +GTKDOC = @GTKDOC@ +GTKHTML_CFLAGS = @GTKHTML_CFLAGS@ +GTKHTML_LIBS = @GTKHTML_LIBS@ +GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_CONFIG = @GTK_CONFIG@ +GTK_LIBS = @GTK_LIBS@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +HAVE_GTK_DOC = @HAVE_GTK_DOC@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +KRB4_CFLAGS = @KRB4_CFLAGS@ +KRB4_LDFLAGS = @KRB4_LDFLAGS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_LDFLAGS = @KRB5_LDFLAGS@ +LDAP_LIBS = @LDAP_LIBS@ +LEX = @LEX@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +OAF_CFLAGS = @OAF_CFLAGS@ +OAF_CONFIG = @OAF_CONFIG@ +OAF_LIBS = @OAF_LIBS@ +OBJDUMP = @OBJDUMP@ +ORBIT_CFLAGS = @ORBIT_CFLAGS@ +ORBIT_CONFIG = @ORBIT_CONFIG@ +ORBIT_IDL = @ORBIT_IDL@ +ORBIT_LIBS = @ORBIT_LIBS@ +PACKAGE = @PACKAGE@ +PGP = @PGP@ +PGP5 = @PGP5@ +PILOT_BINS = @PILOT_BINS@ +PILOT_LIBS = @PILOT_LIBS@ +PISOCK_INCLUDEDIR = @PISOCK_INCLUDEDIR@ +PISOCK_LIBDIR = @PISOCK_LIBDIR@ +PISOCK_LIBS = @PISOCK_LIBS@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PTHREAD_LIB = @PTHREAD_LIB@ +PURIFY = @PURIFY@ +RANLIB = @RANLIB@ +SENDMAIL = @SENDMAIL@ +THREADS_CFLAGS = @THREADS_CFLAGS@ +THREADS_LIBS = @THREADS_LIBS@ +UNICODE_CFLAGS = @UNICODE_CFLAGS@ +UNICODE_LIBS = @UNICODE_LIBS@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XPM_LIBS = @XPM_LIBS@ +YACC = @YACC@ +ZVT_LIBS = @ZVT_LIBS@ +cflags_set = @cflags_set@ +cxxflags_set = @cxxflags_set@ +l = @l@ + +INCLUDES = -I$(top_srcdir)/widgets -I$(top_srcdir)/widgets/e-text -I$(top_srcdir) -I$(top_builddir)/shell -I$(top_srcdir)/shell $(GNOME_VFS_CFLAGS) $(UNICODE_CFLAGS) $(GTKHTML_CFLAGS) -DEVOLUTION_VERSION=\""$(VERSION)"\" -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" -DEVOLUTION_ICONSDIR=\""$(iconsdir)"\" -DEVOLUTION_LOCALEDIR=\""$(datadir)/locale"\" -DEVOLUTION_DATADIR=\""$(datadir)"\" -DG_LOG_DOMAIN=\"evolution-executive-summary\" + + +EXTRA_DIST = $(IDLS) + +CLEANFILES = $(IDL_GENERATED) + +IDLS = Executive-Summary.idl Summary.idl SummaryComponent.idl + + +IDL_GENERATED = Executive-Summary.h Executive-Summary-common.c Executive-Summary-skels.c Executive-Summary-stubs.c + +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../config.h +CONFIG_CLEAN_FILES = +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu executive-summary/idl/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +tags: TAGS +TAGS: + + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = executive-summary/idl + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu executive-summary/idl/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-generic clean-am + -rm -f libtool + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: tags distdir info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/executive-summary/idl/Summary.idl b/executive-summary/idl/Summary.idl new file mode 100644 index 0000000000..59f13910b3 --- /dev/null +++ b/executive-summary/idl/Summary.idl @@ -0,0 +1,52 @@ +/*-*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * CORBA interface for the Evolution shell. + * + * Authors: + * Iain Holmes <iain@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + */ + +#include <Bonobo.idl> + +module Evolution { + interface SummaryComponent; + + interface Summary: Bonobo::Unknown { + exception NoSubWindow {}; + + /** + * set_title: + * @component: The SummaryComponent whose window to set the title. + * @title: The title. + * + * Sets the title of the subwindow that displays @component + * to @title + */ + void set_title (in SummaryComponent component, + in string title) + raises (NoSubWindow); + + /** + * flash: + * @component: The SummaryComponent that owns a subwindow. + * + * Flashes the subwindow that displays @component. + */ + void flash (in SummaryComponent component) + raises (NoSubWindow); + + /** + * update_html_component: + * @component: The SummaryComponent that owns a subwindow. + * @html: The new html that defines a component. + * + * Requests that the html that displays @component is changed + * to @html. + */ + void update_html_component (in SummaryComponent component, + in string html) + raises (NoSubWindow); + }; +}; diff --git a/executive-summary/idl/SummaryComponent.idl b/executive-summary/idl/SummaryComponent.idl new file mode 100644 index 0000000000..4282a91f2b --- /dev/null +++ b/executive-summary/idl/SummaryComponent.idl @@ -0,0 +1,64 @@ +/*-*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * CORBA interface for the Evolution shell. + * + * Authors: + * Ettore Perazzoli <ettore@helixcode.com> + * + * Copyright (C) 2000 Helix Code, Inc. + */ + +/* TODO: Needs Exceptions */ + +#include <Bonobo.idl> + +module Evolution { + interface Summary; + + interface SummaryComponent: Bonobo::Unknown { + + /** + * supports: + * @html: Does it support HTML? + * @bonobo: Does it support Bonobo Controls? + * + * Sets the @html and @bonobo arguments to TRUE + * if the component supports that type of + * embedding + */ + void supports (out boolean bonobo, out boolean html); + + /** + * set_owner: + * @summary: A Summary object. + * + * Sets the owner of the component. + */ + void set_owner (in Summary owner); + + /** + * unset_owner: + * + * Unsets the owner of the component. + */ + void unset_owner (); + + /** + * create_view: + * + * Creates a summary of the data that the component has. + * Returns: A @BonoboControl of the view. + */ + Bonobo::Control create_bonobo_view (out string title); + + string create_html_view (out string title); + + /** + * configure: + * + * Instructs the component to open a preferences dialog. + */ + void configure (); + + }; +}; diff --git a/executive-summary/test-service/.cvsignore b/executive-summary/test-service/.cvsignore new file mode 100644 index 0000000000..29a25bc638 --- /dev/null +++ b/executive-summary/test-service/.cvsignore @@ -0,0 +1,2 @@ +Makefile.in +core diff --git a/executive-summary/test-service/GNOME_Evolution_Summary_test.oaf.in b/executive-summary/test-service/GNOME_Evolution_Summary_test.oaf.in new file mode 100644 index 0000000000..2c2329255d --- /dev/null +++ b/executive-summary/test-service/GNOME_Evolution_Summary_test.oaf.in @@ -0,0 +1,27 @@ +<oaf_info> + +<oaf_server iid="OAFIID:evolution-summary-component-factory:test-service:0ea887d5-622b-4b8c-b525-18aa1cbe18a6" + type="exe" + location="test-service"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:GNOME:GenericFactory:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Factory for the test component."/> +</oaf_server> + +<oaf_server iid="OAFIID:evolution-summary-component:test-service:d3cb3ed6-a654-4337-8aa0-f443751d6d1b" + type="factory" + location="OAFIID:evolution-summary-component-factory:test-service:0ea887d5-622b-4b8c-b525-18aa1cbe18a6"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:Evolution:SummaryComponent:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Test service"/> +</oaf_server> + +</oaf_info> diff --git a/executive-summary/test-service/GNOME_Evolution_Summary_test.oafinfo b/executive-summary/test-service/GNOME_Evolution_Summary_test.oafinfo new file mode 100644 index 0000000000..2c2329255d --- /dev/null +++ b/executive-summary/test-service/GNOME_Evolution_Summary_test.oafinfo @@ -0,0 +1,27 @@ +<oaf_info> + +<oaf_server iid="OAFIID:evolution-summary-component-factory:test-service:0ea887d5-622b-4b8c-b525-18aa1cbe18a6" + type="exe" + location="test-service"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:GNOME:GenericFactory:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Factory for the test component."/> +</oaf_server> + +<oaf_server iid="OAFIID:evolution-summary-component:test-service:d3cb3ed6-a654-4337-8aa0-f443751d6d1b" + type="factory" + location="OAFIID:evolution-summary-component-factory:test-service:0ea887d5-622b-4b8c-b525-18aa1cbe18a6"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:Evolution:SummaryComponent:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Test service"/> +</oaf_server> + +</oaf_info> diff --git a/executive-summary/test-service/Makefile.am b/executive-summary/test-service/Makefile.am new file mode 100644 index 0000000000..4604d89dfc --- /dev/null +++ b/executive-summary/test-service/Makefile.am @@ -0,0 +1,21 @@ +bin_PROGRAMS = test-service + +CFLAGS += -g +INCLUDES = \ + -I$(top_srcdir) \ + -I$(srcdir)/../evolution-services \ + $(EXTRA_GNOME_CFLAGS) \ + $(BONOBO_HTML_GNOME_CFLAGS) \ + $(UNICODE_CFLAGS) + +test_service_SOURCES = \ + main.c + +test_service_LDADD = \ + $(top_builddir)/executive-summary/evolution-services/libevolution-services.la \ + $(BONOBO_VFS_GNOME_LIBS) \ + $(EXTRA_GNOME_LIBS) +oafdir = $(datadir)/oaf +oaf_DATA = test-service.oafinfo + +EXTRA_DIST = $(oaf_DATA) diff --git a/executive-summary/test-service/Makefile.in b/executive-summary/test-service/Makefile.in new file mode 100644 index 0000000000..50e83f823f --- /dev/null +++ b/executive-summary/test-service/Makefile.in @@ -0,0 +1,464 @@ +# Makefile.in generated automatically by automake 1.4a from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AS = @AS@ +BONOBO_GNOME_CFLAGS = @BONOBO_GNOME_CFLAGS@ +BONOBO_GNOME_LIBS = @BONOBO_GNOME_LIBS@ +BONOBO_HTML_GNOME_CFLAGS = @BONOBO_HTML_GNOME_CFLAGS@ +BONOBO_HTML_GNOME_LIBS = @BONOBO_HTML_GNOME_LIBS@ +BONOBO_VFS_GNOME_CFLAGS = @BONOBO_VFS_GNOME_CFLAGS@ +BONOBO_VFS_GNOME_LIBS = @BONOBO_VFS_GNOME_LIBS@ +CAPPLET_LIBS = @CAPPLET_LIBS@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CPP = @CPP@ +DATADIRNAME = @DATADIRNAME@ +DLLTOOL = @DLLTOOL@ +EVOLUTION_DIR = @EVOLUTION_DIR@ +EXTRA_GNOME_CFLAGS = @EXTRA_GNOME_CFLAGS@ +EXTRA_GNOME_LIBS = @EXTRA_GNOME_LIBS@ +GENCAT = @GENCAT@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_LIBS = @GLIB_LIBS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ +GNOMEUI_LIBS = @GNOMEUI_LIBS@ +GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ +GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ +GNOME_CONFIG = @GNOME_CONFIG@ +GNOME_DOCKLETS_LIBS = @GNOME_DOCKLETS_LIBS@ +GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ +GNOME_LIBDIR = @GNOME_LIBDIR@ +GNOME_LIBS = @GNOME_LIBS@ +GNOME_PILOT_CFLAGS = @GNOME_PILOT_CFLAGS@ +GNOME_PILOT_LIBS = @GNOME_PILOT_LIBS@ +GNOME_PRINT_CFLAGS = @GNOME_PRINT_CFLAGS@ +GNOME_PRINT_LIBS = @GNOME_PRINT_LIBS@ +GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@ +GNOME_VFS_LIBS = @GNOME_VFS_LIBS@ +GNOME_XML_LIB = @GNOME_XML_LIB@ +GNORBA_CFLAGS = @GNORBA_CFLAGS@ +GNORBA_LIBS = @GNORBA_LIBS@ +GPG = @GPG@ +GTKDOC = @GTKDOC@ +GTKHTML_CFLAGS = @GTKHTML_CFLAGS@ +GTKHTML_LIBS = @GTKHTML_LIBS@ +GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_CONFIG = @GTK_CONFIG@ +GTK_LIBS = @GTK_LIBS@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +HAVE_GTK_DOC = @HAVE_GTK_DOC@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +KRB4_CFLAGS = @KRB4_CFLAGS@ +KRB4_LDFLAGS = @KRB4_LDFLAGS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_LDFLAGS = @KRB5_LDFLAGS@ +LDAP_LIBS = @LDAP_LIBS@ +LEX = @LEX@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +OAF_CFLAGS = @OAF_CFLAGS@ +OAF_CONFIG = @OAF_CONFIG@ +OAF_LIBS = @OAF_LIBS@ +OBJDUMP = @OBJDUMP@ +ORBIT_CFLAGS = @ORBIT_CFLAGS@ +ORBIT_CONFIG = @ORBIT_CONFIG@ +ORBIT_IDL = @ORBIT_IDL@ +ORBIT_LIBS = @ORBIT_LIBS@ +PACKAGE = @PACKAGE@ +PGP = @PGP@ +PGP5 = @PGP5@ +PILOT_BINS = @PILOT_BINS@ +PILOT_LIBS = @PILOT_LIBS@ +PISOCK_INCLUDEDIR = @PISOCK_INCLUDEDIR@ +PISOCK_LIBDIR = @PISOCK_LIBDIR@ +PISOCK_LIBS = @PISOCK_LIBS@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PTHREAD_LIB = @PTHREAD_LIB@ +PURIFY = @PURIFY@ +RANLIB = @RANLIB@ +SENDMAIL = @SENDMAIL@ +THREADS_CFLAGS = @THREADS_CFLAGS@ +THREADS_LIBS = @THREADS_LIBS@ +UNICODE_CFLAGS = @UNICODE_CFLAGS@ +UNICODE_LIBS = @UNICODE_LIBS@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XPM_LIBS = @XPM_LIBS@ +YACC = @YACC@ +ZVT_LIBS = @ZVT_LIBS@ +cflags_set = @cflags_set@ +cxxflags_set = @cxxflags_set@ +l = @l@ + +bin_PROGRAMS = test-service + +CFLAGS = -g +INCLUDES = -I$(top_srcdir) -I$(srcdir)/../evolution-services $(EXTRA_GNOME_CFLAGS) $(BONOBO_HTML_GNOME_CFLAGS) $(UNICODE_CFLAGS) + + +test_service_SOURCES = main.c + + +test_service_LDADD = $(top_builddir)/executive-summary/evolution-services/libevolution-services.la $(BONOBO_VFS_GNOME_LIBS) $(EXTRA_GNOME_LIBS) + +oafdir = $(datadir)/oaf +oaf_DATA = test-service.oafinfo + +EXTRA_DIST = $(oaf_DATA) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../config.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(bin_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +test_service_OBJECTS = main.o +test_service_DEPENDENCIES = \ +$(top_builddir)/executive-summary/evolution-services/libevolution-services.la +test_service_LDFLAGS = +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DATA = $(oaf_DATA) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +DEP_FILES = .deps/main.P +SOURCES = $(test_service_SOURCES) +OBJECTS = $(test_service_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .lo .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu executive-summary/test-service/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +distclean-binPROGRAMS: + +maintainer-clean-binPROGRAMS: + +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + done + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +.s.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +.S.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + +maintainer-clean-libtool: + +test-service: $(test_service_OBJECTS) $(test_service_DEPENDENCIES) + @rm -f test-service + $(LINK) $(test_service_LDFLAGS) $(test_service_OBJECTS) $(test_service_LDADD) $(LIBS) + +install-oafDATA: $(oaf_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(oafdir) + @list='$(oaf_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(oafdir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(oafdir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(oafdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(oafdir)/$$p; \ + fi; fi; \ + done + +uninstall-oafDATA: + @$(NORMAL_UNINSTALL) + list='$(oaf_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(oafdir)/$$p; \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = executive-summary/test-service + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu executive-summary/test-service/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: install-binPROGRAMS +install-exec: install-exec-am + +install-data-am: install-oafDATA +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-binPROGRAMS uninstall-oafDATA +uninstall: uninstall-am +all-am: Makefile $(PROGRAMS) $(DATA) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(oafdir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ + mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ + mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \ + clean-depend clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \ + distclean-tags distclean-depend distclean-generic \ + clean-am + -rm -f libtool + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-binPROGRAMS \ + maintainer-clean-compile maintainer-clean-libtool \ + maintainer-clean-tags maintainer-clean-depend \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ +maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile mostlyclean-libtool distclean-libtool \ +clean-libtool maintainer-clean-libtool uninstall-oafDATA \ +install-oafDATA tags mostlyclean-tags distclean-tags clean-tags \ +maintainer-clean-tags distdir mostlyclean-depend distclean-depend \ +clean-depend maintainer-clean-depend info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/executive-summary/test-service/main.c b/executive-summary/test-service/main.c new file mode 100644 index 0000000000..719722a599 --- /dev/null +++ b/executive-summary/test-service/main.c @@ -0,0 +1,132 @@ +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <gnome.h> +#include <bonobo.h> +#include <executive-summary-component.h> +#include <liboaf/liboaf.h> + +static int running_views = 0; +ExecutiveSummaryComponent *component; + +#define TEST_SERVICE_ID "OAFIID:evolution-summary-component-factory:test-service:0ea887d5-622b-4b8c-b525-18aa1cbe18a6" + +static BonoboGenericFactory *factory = NULL; + +void +clicked_cb (GtkWidget *widget, + gpointer data) +{ + executive_summary_component_set_title (component, "Iain's title"); + executive_summary_component_flash (component); +} + +void +view_destroyed (GtkWidget *widget, + gpointer data) +{ + running_views--; + + g_print ("Destroying view: %d\n", running_views); + + if (running_views <= 0) { + g_print ("No views left, quitting\n"); + gtk_main_quit (); + } +} + +static BonoboObject * +create_view (ExecutiveSummaryComponent *component, + char **title, + void *closure) +{ + BonoboControl *control; + GtkWidget *button; + + *title = g_strdup ("This is the test bonobo service"); + button = gtk_button_new_with_label ("A test service with a whole button"); + gtk_signal_connect (GTK_OBJECT (button), "clicked", + GTK_SIGNAL_FUNC (clicked_cb), NULL); + + control = bonobo_control_new (button); + gtk_signal_connect (GTK_OBJECT (control), "destroy", + GTK_SIGNAL_FUNC (view_destroyed), NULL); + + gtk_widget_show_all (button); + + g_assert (control != NULL); + + return BONOBO_OBJECT (control); +} + +static char * +create_html (ExecutiveSummaryComponent *component, + char **title, + void *closure) +{ + *title = g_strdup ("This is the test service"); + return g_strdup ("<b>This is<p>An <i>HTML</i></b><br><h1>Component!!!</h1>"); +} + +static void +configure (ExecutiveSummaryComponent *component, + void *closure) +{ + GtkWidget *window, *label; + + g_print ("configuring\n"); + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + label = gtk_label_new ("This is a configuration dialog.\nNo it really is"); + + gtk_container_add (GTK_CONTAINER (window), label); + gtk_widget_show_all (window); +} + +static BonoboObject * +factory_fn (BonoboGenericFactory *_factory, + void *closure) +{ + running_views++; + component = executive_summary_component_new (create_view, + create_html, + configure, + NULL); + gtk_signal_connect (GTK_OBJECT (component), "destroy", + GTK_SIGNAL_FUNC (view_destroyed), NULL); + return BONOBO_OBJECT (component); +} + +void +test_service_factory_init (void) +{ + if (factory != NULL) + return; + + factory = bonobo_generic_factory_new (TEST_SERVICE_ID, factory_fn, NULL); + if (factory == NULL) { + g_warning ("Cannot initialize test service"); + exit (0); + } +} + +int +main (int argc, char **argv) +{ + CORBA_ORB orb; + + gnome_init_with_popt_table ("Test service", VERSION, + argc, argv, oaf_popt_options, 0, NULL); + orb = oaf_init (argc, argv); + + if (bonobo_init (orb, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE) { + g_error ("Could not initialize Bonobo"); + } + + test_service_factory_init (); + + bonobo_main (); + + return 0; +} + diff --git a/executive-summary/test-service/test-service.oafinfo b/executive-summary/test-service/test-service.oafinfo new file mode 100644 index 0000000000..2c2329255d --- /dev/null +++ b/executive-summary/test-service/test-service.oafinfo @@ -0,0 +1,27 @@ +<oaf_info> + +<oaf_server iid="OAFIID:evolution-summary-component-factory:test-service:0ea887d5-622b-4b8c-b525-18aa1cbe18a6" + type="exe" + location="test-service"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:GNOME:GenericFactory:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Factory for the test component."/> +</oaf_server> + +<oaf_server iid="OAFIID:evolution-summary-component:test-service:d3cb3ed6-a654-4337-8aa0-f443751d6d1b" + type="factory" + location="OAFIID:evolution-summary-component-factory:test-service:0ea887d5-622b-4b8c-b525-18aa1cbe18a6"> + + <oaf_attribute name="repo_ids" type="stringv"> + <item value="IDL:Evolution:SummaryComponent:1.0"/> + </oaf_attribute> + + <oaf_attribute name="description" type="string" + value="Test service"/> +</oaf_server> + +</oaf_info> |