aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2003-10-22 22:12:47 +0800
committerDan Winship <danw@src.gnome.org>2003-10-22 22:12:47 +0800
commit27e6d3cb39461babf270fc4e6c5ba986af38a85a (patch)
tree91dff8149f50ca834598fa60a749289ebfd62d0c
parent31be44baaaaf661c00292c53f03ebeba336155bd (diff)
downloadgsoc2013-evolution-27e6d3cb39461babf270fc4e6c5ba986af38a85a.tar
gsoc2013-evolution-27e6d3cb39461babf270fc4e6c5ba986af38a85a.tar.gz
gsoc2013-evolution-27e6d3cb39461babf270fc4e6c5ba986af38a85a.tar.bz2
gsoc2013-evolution-27e6d3cb39461babf270fc4e6c5ba986af38a85a.tar.lz
gsoc2013-evolution-27e6d3cb39461babf270fc4e6c5ba986af38a85a.tar.xz
gsoc2013-evolution-27e6d3cb39461babf270fc4e6c5ba986af38a85a.tar.zst
gsoc2013-evolution-27e6d3cb39461babf270fc4e6c5ba986af38a85a.zip
Removed; this code has not been used since pre-1.0.
* executive-summary/*: Removed; this code has not been used since pre-1.0. * my-evolution/*: Removed; gone in evolution 2.0. * notes/*: Removed; never finished and no one is working on it. * configure.in (E_UTIL_{CFLAGS,LIBS}): Remove soup-2.0 since e-proxy is gone. (EVOLUTION_MAIL_{CFLAGS,LIBS}): Remove soup-2.0 since the mailer uses CamelHTTPStream now. (EVOLUTION_EXECUTIVE_SUMMARY_{CFLAGS,LIBS}): Gone (AC_OUTPUT): Remove my-evolution/Makefile * README: evolution no longer depends on soup svn path=/trunk/; revision=22976
-rw-r--r--ChangeLog18
-rw-r--r--README4
-rw-r--r--configure.in11
-rw-r--r--executive-summary/.cvsignore4
-rw-r--r--executive-summary/ChangeLog913
-rw-r--r--executive-summary/Makefile.am12
-rw-r--r--executive-summary/component/.cvsignore10
-rw-r--r--executive-summary/component/Makefile.am88
-rw-r--r--executive-summary/component/component-factory.c154
-rw-r--r--executive-summary/component/component-factory.h30
-rw-r--r--executive-summary/component/e-summary-callbacks.c320
-rw-r--r--executive-summary/component/e-summary-callbacks.h12
-rw-r--r--executive-summary/component/e-summary-factory.c185
-rw-r--r--executive-summary/component/e-summary-factory.h34
-rw-r--r--executive-summary/component/e-summary-prefs.c122
-rw-r--r--executive-summary/component/e-summary-prefs.h45
-rw-r--r--executive-summary/component/e-summary-url.c851
-rw-r--r--executive-summary/component/e-summary-url.h36
-rw-r--r--executive-summary/component/e-summary-util.c131
-rw-r--r--executive-summary/component/e-summary-util.h29
-rw-r--r--executive-summary/component/e-summary.c1340
-rw-r--r--executive-summary/component/e-summary.h115
-rw-r--r--executive-summary/component/executive-summary-config.glade223
-rw-r--r--executive-summary/component/executive-summary.pngbin25562 -> 0 bytes
-rw-r--r--executive-summary/component/main.c79
-rw-r--r--executive-summary/default-header.html14
-rw-r--r--executive-summary/evolution-services/.cvsignore11
-rw-r--r--executive-summary/evolution-services/Makefile.am55
-rw-r--r--executive-summary/evolution-services/executive-summary-client.c171
-rw-r--r--executive-summary/evolution-services/executive-summary-client.h64
-rw-r--r--executive-summary/evolution-services/executive-summary-component-client.c177
-rw-r--r--executive-summary/evolution-services/executive-summary-component-client.h67
-rw-r--r--executive-summary/evolution-services/executive-summary-component-factory-client.c177
-rw-r--r--executive-summary/evolution-services/executive-summary-component-factory-client.h56
-rw-r--r--executive-summary/evolution-services/executive-summary-component-view.c400
-rw-r--r--executive-summary/evolution-services/executive-summary-component-view.h92
-rw-r--r--executive-summary/evolution-services/executive-summary-component.c353
-rw-r--r--executive-summary/evolution-services/executive-summary-component.h83
-rw-r--r--executive-summary/evolution-services/executive-summary-html-view.c340
-rw-r--r--executive-summary/evolution-services/executive-summary-html-view.h64
-rw-r--r--executive-summary/evolution-services/executive-summary.c266
-rw-r--r--executive-summary/evolution-services/executive-summary.h67
-rw-r--r--executive-summary/idl/.cvsignore2
-rw-r--r--executive-summary/idl/Executive-Summary.idl4
-rw-r--r--executive-summary/idl/HtmlView.idl25
-rw-r--r--executive-summary/idl/Makefile.am7
-rw-r--r--executive-summary/idl/Summary.idl20
-rw-r--r--executive-summary/idl/SummaryComponent.idl36
-rw-r--r--executive-summary/summary.html45
-rw-r--r--executive-summary/test-service/.cvsignore9
-rw-r--r--executive-summary/test-service/Makefile.am43
-rw-r--r--executive-summary/test-service/main.c296
-rw-r--r--executive-summary/test-service/rdf-summary.c984
-rw-r--r--executive-summary/widgets/.cvsignore5
-rw-r--r--executive-summary/widgets/Makefile.am32
-rw-r--r--executive-summary/widgets/e-summary-subwindow.c300
-rw-r--r--executive-summary/widgets/e-summary-subwindow.h67
-rw-r--r--executive-summary/widgets/e-summary-title-button.c402
-rw-r--r--executive-summary/widgets/e-summary-title-button.h54
-rw-r--r--executive-summary/widgets/e-summary-titlebar.c411
-rw-r--r--executive-summary/widgets/e-summary-titlebar.h55
-rw-r--r--executive-summary/widgets/edit.xpm19
-rw-r--r--executive-summary/widgets/esummary-window-test.c45
-rw-r--r--executive-summary/widgets/shade.xpm19
-rw-r--r--executive-summary/widgets/x.xpm19
-rw-r--r--my-evolution/.cvsignore13
-rw-r--r--my-evolution/ChangeLog85
-rw-r--r--my-evolution/ChangeLog.pre-1-42572
-rw-r--r--my-evolution/GNOME_Evolution_Summary.server.in.in62
-rwxr-xr-xmy-evolution/Location-translation-script8
-rw-r--r--my-evolution/Locations3057
-rw-r--r--my-evolution/Locations.h2535
-rw-r--r--my-evolution/Makefile.am130
-rw-r--r--my-evolution/apps_evolution_summary.schemas141
-rw-r--r--my-evolution/check-empty.xpm21
-rw-r--r--my-evolution/check-filled.xpm21
-rw-r--r--my-evolution/check-none.xpm20
-rw-r--r--my-evolution/component-factory.c168
-rw-r--r--my-evolution/component-factory.h28
-rw-r--r--my-evolution/e-cell-tri.c119
-rw-r--r--my-evolution/e-cell-tri.h39
-rw-r--r--my-evolution/e-summary-calendar.c633
-rw-r--r--my-evolution/e-summary-calendar.h46
-rw-r--r--my-evolution/e-summary-factory.c137
-rw-r--r--my-evolution/e-summary-factory.h34
-rw-r--r--my-evolution/e-summary-mail.c783
-rw-r--r--my-evolution/e-summary-mail.h55
-rw-r--r--my-evolution/e-summary-offline-handler.c286
-rw-r--r--my-evolution/e-summary-offline-handler.h74
-rw-r--r--my-evolution/e-summary-preferences.c1253
-rw-r--r--my-evolution/e-summary-preferences.h39
-rw-r--r--my-evolution/e-summary-rdf.c651
-rw-r--r--my-evolution/e-summary-rdf.h36
-rw-r--r--my-evolution/e-summary-shown.c663
-rw-r--r--my-evolution/e-summary-shown.h83
-rw-r--r--my-evolution/e-summary-table.c440
-rw-r--r--my-evolution/e-summary-table.h74
-rw-r--r--my-evolution/e-summary-tasks.c618
-rw-r--r--my-evolution/e-summary-tasks.h35
-rw-r--r--my-evolution/e-summary-type.h28
-rw-r--r--my-evolution/e-summary-weather.c823
-rw-r--r--my-evolution/e-summary-weather.h153
-rw-r--r--my-evolution/e-summary.c967
-rw-r--r--my-evolution/e-summary.h178
-rw-r--r--my-evolution/metar.c1017
-rw-r--r--my-evolution/metar.h48
-rw-r--r--my-evolution/my-evolution-html.h68
-rw-r--r--my-evolution/my-evolution.glade890
-rw-r--r--my-evolution/weather.h54
-rw-r--r--notes/.cvsignore4
-rw-r--r--notes/Makefile.am34
-rw-r--r--notes/component-factory.c155
-rw-r--r--notes/component-factory.h7
-rw-r--r--notes/e-bevel-button-util.c189
-rw-r--r--notes/e-bevel-button-util.h12
-rw-r--r--notes/e-bevel-button.c175
-rw-r--r--notes/e-bevel-button.h37
-rw-r--r--notes/e-note.c382
-rw-r--r--notes/e-note.h37
-rw-r--r--notes/main.c52
-rw-r--r--notes/test-notes.c34
121 files changed, 20 insertions, 30405 deletions
diff --git a/ChangeLog b/ChangeLog
index f1d7482fe9..94971539ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2003-10-22 Dan Winship <danw@ximian.com>
+
+ * executive-summary/*: Removed; this code has not been used since
+ pre-1.0.
+
+ * my-evolution/*: Removed; gone in evolution 2.0.
+
+ * notes/*: Removed; never finished and no one is working on it.
+
+ * configure.in (E_UTIL_{CFLAGS,LIBS}): Remove soup-2.0 since
+ e-proxy is gone.
+ (EVOLUTION_MAIL_{CFLAGS,LIBS}): Remove soup-2.0 since the mailer
+ uses CamelHTTPStream now.
+ (EVOLUTION_EXECUTIVE_SUMMARY_{CFLAGS,LIBS}): Gone
+ (AC_OUTPUT): Remove my-evolution/Makefile
+
+ * README: evolution no longer depends on soup
+
2003-10-21 Dan Winship <danw@ximian.com>
* configure.in (GNOME_COMPILE_WARNINGS): Turn off the annoying
diff --git a/README b/README
index 676e8f8952..56b4e1820f 100644
--- a/README
+++ b/README
@@ -68,10 +68,6 @@ dependencies should be compiled in the order they are listed here):
If you have a GNOME 2.0 installation, libgnomecanvas 2.0 is
safe to use.
- * libsoup 1.99.12 or later
-
- ftp://ftp.gnome.org/pub/gnome/sources/libsoup
-
* gtkhtml 3.0.1 or later
ftp://ftp.gnome.org/pub/gnome/sources/gtkhtml
diff --git a/configure.in b/configure.in
index b29fd92db0..9679a64817 100644
--- a/configure.in
+++ b/configure.in
@@ -1109,7 +1109,7 @@ EVO_SET_COMPILE_FLAGS(E_NAME, libgnomeui-2.0 libbonoboui-2.0 gal-2.2 >= $GAL_REQ
AC_SUBST(E_NAME_CFLAGS)
AC_SUBST(E_NAME_LIBS)
-EVO_SET_COMPILE_FLAGS(E_UTIL, gthread-2.0 gconf-2.0 libxml-2.0 libbonoboui-2.0 libglade-2.0 gal-2.2 >= $GAL_REQUIRED libgnomeui-2.0 libgnome-2.0 libgnomecanvas-2.0 soup-2.0 $mozilla_nspr, $THREADS_CFLAGS $MANUAL_NSPR_CFLAGS, $THREADS_LIBS $MANUAL_NSPR_LIBS)
+EVO_SET_COMPILE_FLAGS(E_UTIL, gthread-2.0 gconf-2.0 libxml-2.0 libbonoboui-2.0 libglade-2.0 gal-2.2 >= $GAL_REQUIRED libgnomeui-2.0 libgnome-2.0 libgnomecanvas-2.0 $mozilla_nspr, $THREADS_CFLAGS $MANUAL_NSPR_CFLAGS, $THREADS_LIBS $MANUAL_NSPR_LIBS)
AC_SUBST(E_UTIL_CFLAGS)
AC_SUBST(E_UTIL_LIBS)
@@ -1146,12 +1146,6 @@ AC_SUBST(EVOLUTION_ADDRESSBOOK_CONDUIT_CFLAGS)
AC_SUBST(EVOLUTION_ADDRESSBOOK_CONDUIT_LIBS)
fi
-dnl -- evolution-executive-summary flags
-
-EVO_SET_COMPILE_FLAGS(EVOLUTION_EXECUTIVE_SUMMARY, libbonoboui-2.0 libbonoboui-2.0 gal-2.2 >= $GAL_REQUIRED libgnomeui-2.0 libglade-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 soup-2.0 libgtkhtml-3.1 >= $GTKHTML_REQUIRED)
-AC_SUBST(EVOLUTION_EXECUTIVE_SUMMARY_CFLAGS)
-AC_SUBST(EVOLUTION_EXECUTIVE_SUMMARY_LIBS)
-
dnl --- evolution-calendar flags
EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, libgnome-2.0 libgnomeui-2.0 libbonoboui-2.0 gal-2.2 >= $GAL_REQUIRED libglade-2.0 gnome-vfs-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libgtkhtml-3.1 >= $GTKHTML_REQUIRED, ${GTKHTML_CFLAGS}, ${GTKHTML_LIBS})
@@ -1166,7 +1160,7 @@ fi
dnl --- evolution-mail flags
-EVO_SET_COMPILE_FLAGS(EVOLUTION_MAIL, libgnome-2.0 libgnomeui-2.0 libbonoboui-2.0 gal-2.2 >= $GAL_REQUIRED libglade-2.0 gnome-vfs-module-2.0 soup-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libgtkhtml-3.1 >= $GTKHTML_REQUIRED libxml-2.0 bonobo-activation-2.0 gthread-2.0 gconf-2.0 $mozilla_nss)
+EVO_SET_COMPILE_FLAGS(EVOLUTION_MAIL, libgnome-2.0 libgnomeui-2.0 libbonoboui-2.0 gal-2.2 >= $GAL_REQUIRED libglade-2.0 gnome-vfs-module-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libgtkhtml-3.1 >= $GTKHTML_REQUIRED libxml-2.0 bonobo-activation-2.0 gthread-2.0 gconf-2.0 $mozilla_nss)
AC_SUBST(EVOLUTION_MAIL_CFLAGS)
AC_SUBST(EVOLUTION_MAIL_LIBS)
@@ -1397,7 +1391,6 @@ shell/Makefile
shell/evolution-nognome
shell/glade/Makefile
shell/importer/Makefile
-my-evolution/Makefile
ui/Makefile
views/Makefile
views/addressbook/Makefile
diff --git a/executive-summary/.cvsignore b/executive-summary/.cvsignore
deleted file mode 100644
index a098ff204f..0000000000
--- a/executive-summary/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-core
-Makefile.in
-Makefile
-GNOME_Evolution_Summary.oaf
diff --git a/executive-summary/ChangeLog b/executive-summary/ChangeLog
deleted file mode 100644
index fe9ebfed88..0000000000
--- a/executive-summary/ChangeLog
+++ /dev/null
@@ -1,913 +0,0 @@
-2003-02-06 Ettore Perazzoli <ettore@ximian.com>
-
- * component/e-summary-factory.c (control_activate): Get
- evolution-executive-summary.xml from EVOLUTION_UI_DIRECTORY.
-
-2001-09-14 Ettore Perazzoli <ettore@ximian.com>
-
- [Automake 1.5 fixes pointed out by Richard Boulton
- <richard@tartarus.org>, as per #9258.]
-
- * executive-summary/component/Makefile.am (CLEANFILE): Assign
- directly with `=', not `+='.
- * executive-summary/evolution-services/Makefile.am: Likewise.
-
-2001-07-21 Ettore Perazzoli <ettore@ximian.com>
-
- * component/component-factory.c: Make the "executive-summary"
- folders non-user-creatable by setting `user_creatable' to %FALSE
- in the `EvolutionShellComponentFolderType's.
-
-2001-06-18 Dan Winship <danw@ximian.com>
-
- * test-service/Makefile.am (test_service_LDADD): Remove DB3_LDADD
-
- * component/Makefile.am (evolution_executive_summary_LDADD):
- Remove DB3_LDADD
-
-2001-06-04 Ettore Perazzoli <ettore@ximian.com>
-
- * component/Makefile.am (evolution_executive_summary_LDADD): Move
- `libevolution-services.la' on top.
-
-2001-06-03 Ettore Perazzoli <ettore@ximian.com>
-
- * test-service/Makefile.am (rdf_summary_LDADD): Move
- `$(DB3_LDADD)' before the shared libraries.
-
- * component/Makefile.am (evolution_executive_summary_LDADD): Move
- `$(DB3_LDADD)' before libeutil.
-
-2001-06-01 Ettore Perazzoli <ettore@ximian.com>
-
- * component/Makefile.am (evolution_executive_summary_LDADD): Add
- `$(DB3_LDADD)'.
- * test-service/Makefile.am (test_service_LDADD): Likewise.
- (rdf_summary_LDADD): Likewise.
-
-2001-05-27 Dan Winship <danw@ximian.com>
-
- * component/e-summary-factory.c: #include
- "evolution-shell-component-utils.h" rather than "e-gui-utils.h"
- for e_pixmaps_update.
-
- * component/Makefile.am (evolution_executive_summary_LDADD): Use
- libeshell.la, not libeshell.a (Did Peter forget to commit this?)
-
-2001-05-25 Peter Williams <peterw@ximian.com>
-
- * component/Makefile.am: Reference libeshell.la instead of libeshell.a.
-
-2001-05-23 Kjartan Maraas <kmaraas@gnome.org>
-
- * component/e-summary-url.c: Mark a string for translation.
-
-2001-05-10 Iain Holmes <iain@ximian.com>
-
- * test-service/rdf-summary.c (load_from_stream): Set the time, not the
- timeout id. (duh!)
- (summary_to_string): Get the time, not the timeout id. (DUH!)
- (property_control): Connect the spin button to the item_changed callback.
-
-2001-05-10 Iain Holmes <iain@ximian.com>
-
- * test-service/rdf-summary.c (property_control): Don't let the spinner
- be set to 0
-
-2001-05-10 Iain Holmes <iain@ximian.com>
-
- * test-service/rdf-summary.c (download_cb): Proxy clicked events to
- download.
- (property_control): Connect the Update Now button to the download_cb
- instead of download to prevent a crash.
-
-2001-05-05 Gediminas Paulauskas <menesis@delfi.lt>
-
- * component/Makefile.am, evolution-services/Makefile.am: no need of
- -DEVOLUTION_VERSION
-
- * component/e-summary-callbacks.c: translate window title.
-
- * component/e-summary-url.c (e_summary_url_describe): contents are in
- utf-8, convert to locale.
-
- * test-service/Makefile.am: define EVOLUTION_LOCALEDIR.
-
- * test-service/rdf-summary.c: init gettext.
-
-2001-05-02 Gediminas Paulauskas <menesis@delfi.lt>
-
- * component/e-summary.c: set default content type of html to
- "text/html; charset=utf-8".
-
-2001-04-25 Dan Winship <danw@ximian.com>
-
- * idl/Makefile.am (INCLUDES): Remove this section, which doesn't
- apply to anything since there are no targets in this directory.
-
- * test-service/Makefile.am:
- * evolution-services/Makefile.am:
- * component/Makefile.am: Remove UNICODE_LIBS/UNICODE_CFLAGS
-
-2001-04-14 Michael Meeks <michael@ximian.com>
-
- * idl/Makefile.am: Remove stale build cruftiness.
-
-2001-04-10 Gediminas Paulauskas <menesis@delfi.lt>
-
- * widgets/e-summary-subwindow.c: added some missing includes.
- * widgets/e-summary-title-button.h: same.
-
-2001-04-04 Gediminas Paulauskas <menesis@delfi.lt>
-
- * component/component-factory.c: last time I've broken shortcut view.
- renamed icons properly.
-
-2001-04-01 Gediminas Paulauskas <menesis@delfi.lt>
-
- * component/component-factory.c: Changed folder type icon to tiny
- executive summary icon.
- * component/e-summary-factory.c: replaced set_pixmap with new EPixmap
- cache.
-
-2001-03-29 Kjartan Maraas <kmaraas@gnome.org>
-
- * *.*: Clean up includes. Remove/replace <gnome.h>, <bonobo.h>
- and <gtk/gtk.h>.
-
-2001-03-08 Ettore Perazzoli <ettore@ximian.com>
-
- * component/component-factory.c (factory_fn): Specify a NULL
- `EvolutionShellComponentGetDndSelectionFn'.
-
-2001-02-14 Iain Holmes <iain@ximian.com>
-
- * component/e-summary-url.c (e_summary_url_click): Remove the new
- OTHER uri stuff.
-
-2001-02-14 Christopher James Lahey <clahey@ximian.com>
-
- * component/component-factory.c (component_destroy_cb): Removed
- this unused function.
-
- * evolution-services/executive-summary-html-view.c
- (impl_GNOME_Evolution_Summary_HTMLView_handleURI): Changed the
- declaration of this function to match the signature in the
- generated header file.
-
- * test-service/rdf-summary.c (property_control): Added a cast here.
-
-2001-02-14 Iain Holmes <iain@ximian.com>
-
- * evolution-services/executive-summary-html-view.c
- (executive_summary_html_view_destroy): Don't unref the event source.
- (impl_GNOME_Evolution_Summary_HTMLView_handleURI): Emit the signal.
- (corba_class_init): Hook up the handleURI method.
- (executive_summary_html_view_class_init): Create the signal.
-
- * idl/HTMLView.idl: Add the handleURI method.
-
-2001-02-13 Iain Holmes <iain@ximian.com>
-
- * test-service/rdf-summary.c (property_control): Add an update now button.
-
-2001-02-12 Iain Holmes <iain@ximian.com>
-
- * test-service/rdf-summary.c (property_control): Add a "Update" spinner.
- (property_action): Only download a new RDF if the URL changed. Use a cached
- version otherwise.
-
-2001-02-08 Iain Holmes <iain@ximian.com>
-
- * component/e-summary-url.c (e_summary_url_click): Close and remove the
- window on an idle, so that the whole desktop isn't locked by a
- GNOME-VFS bug.
-
-2001-02-13 Kjartan Maraas <kmaraas@gnome.org>
-
- * Makefile.am: xml-i18n-tools setup for .oaf.in files.
- * GNOME_Evolution_Summary.oaf.in: Mark strings for translation.
- * test-service/Makefile.am: xml-i18n-tools setup for .oaf.in files.
- * test-service/*.oaf.in: Mark strings for translation.
-
-2001-01-23 Iain Holmes <iain@ximian.com>
-
- * component/e-summary.c (e_summary_load_page): Don't strdup the NULL.
-
-2001-01-20 Iain Holmes <iain@ximian.com>
-
- * component/e-summary.c (e_summary_display_window): Free the html
- variable and the header too.
-
-2001-01-22 Christopher James Lahey <clahey@helixcode.com>
-
- * component/e-summary-url.c: Change the callbacks in this file to
- match the callback function types. Fixes warnings.
-
-2001-01-12 Ettore Perazzoli <ettore@helixcode.com>
-
- * component/component-factory.c (factory_fn): Pass NULL as the
- @copy_folder_fn arg to `evolution_shell_component_new()'.
-
- * evolution-services/executive-summary-component.c
- (executive_summary_component_destroy): Remove unused variable.
-
-2001-01-12 Iain Holmes <iain@ximian.com>
-
- * component/e-summary-util.c (e_summary_rm_dir): If base == NULL return;
- Closes bug #37077
-
-2000-12-30 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_rebuild_page): The number of columns
- is no longer hardcoded.
-
- * component/e-summary-prefs.[ch]: Add a columns member, and all the
- necessary code to support it.
-
- * component/e-summary-callbacks.c: Set the columns member.
-
- * test-service/rdf-summary.c: Add a "Show title" button for turning off
- the title if it is taking up too much room.
-
-2000-12-29 Iain Holmes <iain@helixcode.com>
-
- * test-service/rdf-summary.c (view_destroyed): Cancel all pending
- async downloads.
- (load_from_stream): Check if the XML was correctly loaded.
- (read_callback):
- (close_callback):
- (open_callback): Add a cast to remove warnings
-
- * component/e-summary.c (listener_event): Check for the correct event names.
-
-2000-12-28 Iain Holmes <iain@helixcode.com>
-
- * test-service/rdf-summary.c (create_view): Aggregate a
- Bonobo::PersistStream interface.
- (load_from_stream):
- (summary_to_string):
- (save_to_stream):
- (content_types): Functions to load and save an XML document.
-
-2000-12-26 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (make_control_html): Neatened the code.
- (e_summary_add_service): Get the event source that is shared
- between everything.
-
- * component/e-summary-url.c (e_summary_url_click): Use the shared
- event source.
-
- * test-service/rdf-summary.c (create_view): Use the EventSource when
- creating the BonoboPropertyBag.
-
- * test-service/main.c (create_view): Create a shared BonoboEventSource.
-
-2000-12-21 Iain Holmes <iain@helixcode.com>
-
- * test-service/rdf-summary.c (download): Split this function into
- many callbacks, for async action.
-
- * component/e-summary-url.c (e_summary_url_request): Split this
- into async callbacks too.
-
-2000-12-13 Christopher James Lahey <clahey@helixcode.com>
-
- * component/e-summary-callbacks.c (configure_summary): Added a
- cast.
-
-2000-12-13 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_rebuild_page): Display all the windows
- correctly.
- (e_summary_save_state): Remove the whole of the Executive-Summary dir.
-
- * component/e-summary-util.[ch]: Add e_summary_rm_dir, a function to reove
- everything in the path. RC people have a function to do it too, but I can't
- remember how to get RC :)
-
- * component/e-summary-callbacks.c: (configure_summary): Put an HTML
- explanation into the configure dialog.
-
-2000-12-13 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_rebuild_page): Count the number
- of rows correctly.
-
-2000-12-12 Christopher James Lahey <clahey@helixcode.com>
-
- * component/e-summary-callbacks.c: Added #include
- <e-summary-callbacks.h>.
- (destroy_prefs_cb): Added a cast.
- (configure_summary): Added a cast.
-
- * component/e-summary-callbacks.h: Added #include "e-summary.h"
-
- * component/e-summary-url.c (e_summary_url_click): Removed an
- unused variable.
-
- * component/e-summary-util.c: Added #include <e-summary-util.h>
-
- * component/e-summary.c: Added #include <gtkhtml/htmlselection.h>.
- (e_summary_queue_rebuild): Added a cast.
-
- * component/main.c: Added #include <glade/glade.h>.
-
- * test-service/main.c: Changed some variable types to make casting
- easier.
-
- * test-service/rdf-summary.c: Changed some variable types to make
- casting easier.
-
-2000-12-12 Dan Winship <danw@helixcode.com>
-
- * Makefile.am (EXTRA_DIST): Add stuff. (From campd.)
-
-2000-12-11 Iain Holmes <iain@helixcode.com>
-
- * evolution-services/executive-summary-html-view.h: Add a define
- for the "html_changed" signal to name space it. Change the
- function declarations to fit with the below change too.
-
- * evolution-services/executive-summary-html-view.c
- (executive_summary_html_view_new): Create a default BonoboEventSource
- and use the new _full function.
- (executive_summary_html_view_new_full): Creates a new HtmlView with
- the given BonoboEventSource.
- (executive_summary_html_view_get_event_source): Returns the
- BonoboEventSource for the view.
- (executive_summary_html_view_set_html): Use the new #define for the event
- name.
-
- * test-service/rdf-summary.c (create_view): Share the BonoboEventSource
- between the HtmlView and the BonoboPropertyControl.
-
- * component/e-summary.c (html_event): Use the name spaced #define.
- (e_summary_start_load): Add a new hack to set the border width of the
- GtkHTML widget to 0.
- (e_summary_rebuild_page): Redid the way the tables are drawn. Made the
- title icon be constrained to 48.
-
- * evolution-services/executive-summary-component.c
- (impl_GNOME_Evolution_Summary_ComponentFactory_createViw): Fixed a warning.
-
- * component/e-summary-util (e_pixmap_file): Free the edir.
-
-2000-12-08 Iain Holmes <iain@helixcode.com>
-
- * summary.html: Don't hardcode the image paths.
-
-2000-12-08 JP Rosevear <jpr@helixcode.com>
-
- * component/Makefile.am (evolution-executive-summary.pure): Add purify
- options for the build
-
-2000-12-08 JP Rosevear <jpr@helixcode.com>
-
- * Makefile.am: Remove files from extra_dist since they are already
- listed
-
-2000-12-07 Iain Holmes <iain@helixcode.com>
-
- * summary.html: Prettier HTML summary.
-
- * Makefile.am: Install the new summary.html
-
- * component/e-summary.c (load_component): Free corba_subdir and
- corba_stream.
- (save_component): Free corba stuff.
-
-
-2000-12-06 Iain Holmes <iain@helixcode.com>
-
- * e-summary-callbacks.c (new_mail): Update COMPOSER_IID to the new
- style IIDs.
- (configure_summary): Set up to do stuff when preferences are changed.
-
- * e-summary-prefs.c (e_summary_prefs_save): Sync and drop the config file
- so that changes are written to disk.
-
- * e-summary.c (e_summary_reconfigure): Change the summary to the new
- preferences.
-
-2000-12-04 Iain Holmes <iain@helixcode.com>
-
- * test-service/rdf-summary.c (entry_changed): Add a NULL for opt_ev.
-
- * idl/HtmlView.idl: Inherit from Bonobo::Unknown and not
- Bonobo::EventSource.
-
- * evolution-services/executive-summary-html-view.[ch]: Change
- implementation of the EventSource so that it is aggregated onto
- the HtmlView object and not inherited.
-
- * component/e-summary.c (e_summary_window_free): Free the event_source.
- (e_summary_add_service): query for the EventSource interface.
-
-2000-12-01 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_load_state): Fix memory leak.
- (everywhere): Fixed memory leaks, and unref problems.
-
-2000-11-30 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_window_free): remove the
- event listener before destruction.
-
- * component/e-summary-url.c (e_summary_url_click): Handle the
- new PropertyControl api. Add a listener to detect when the page
- is changed, and adjust the property box accordingly.
-
- * test-service/main.c (create_view): Increment running view.
-
-2000-11-29 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c: Big memory leak cleanup.
-
-2000-11-28 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_display_window): If the HTML
- control dies, then just close the open tags.
-
- * component/e-summary-url (e_summary_url_click): Put the control
- into a GnomePropertyBox.
-
- * evolution-services/executive-summary-component.c
- (impl_GNOME_Evolution_Summary_ComponentFactory_createView):
- Duplicate the component.
-
-2000-11-27 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_window_free): Free all the
- interfaces and the component.
- (e_summary_load_state): Fix typos.
-
- * component/e-summary-prefs.c: Fix some typos.
-
- * component/e-summary-url.c: If configure is pressed, retrieve
- the control and embed it in a window.
-
- * test-services/main.c (component_destroyed): assign ud from data
- not from ud!
-
- * test-services/rdf-summary.c (view_destroyed): Connect this
- callback and free the summary.
- (property_control): Made a simple configuration dialog.
-
-2000-11-25 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary-prefs.[ch]: New files to handle loading,
- saving, copying and freeing preferences.
-
- * component/e-summary.c (e_summary_save_state): Use the new
- prefs stuff to save.
- (e_summary_load_state): Use the new prefs stuff to load.
-
- * component/e-summary-factory.c (set_pixmap): Use e_pixmap_file
- to find the pixbuf.
-
-2000-11-24 Iain Holmes <iain@helixcode.com>
-
- * idl/SummaryComponent.idl: Removed the setOwner and unsetOwner
- methods from the Component interface.
-
- * evolution-services/executive-summary.[ch]
- evolution-services/executive-summary-client.[ch]
- evolution-services/executive-summary-component-client.[ch]
- evolution-services/executive-summary-component-view.[ch]:
- Removed.
-
- * component/main.c (main): Stopped ignoring the signals.
-
- * component/executive-summary-config.glade: Glade file for the
- prefs dialog.
-
-2000-11-23 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary-factory.c (embed-service): Moved to
- e-summary-callbacks.c.
- (e_summary_factory_embed_from_id): Moved to e-summary.c and renamed
- e_summary_embed_from_id.
- Added a New Mail button.
-
- * component/e-summary-callbacks.c: New file.
-
-2000-11-22 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_save_state): removed the #if 0s
- and changed the save type to fs.
-
-2000-11-21 Iain Holmes <iain@helixcode.com>
-
- * test-services/rdf-summary.c: Rewrote to use the new services code.
-
- * idl/HtmlView.idl: Inherit from Bonobo::EventSource instead of
- Bonobo::Unknown.
-
-2000-11-20 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_save_state): #if 0'd out the
- PersistStream code till it is fixed.
- (e_summary_window_free): Only Bonobo_Unknown_unref the component,
- not all the other interfaces.
- (e_summary_remove_window): Function to remove the window from the
- window list and free it.
- (make_control_html): Make "id" the address of the window structure.
-
- * component/e-summary-url.c: Reimplemented all the functions that the
- Executive Summary had before the big code change.
-
-2000-11-18 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_save_state): Use Persist stream to
- save the state of all the components.
- (e_summary_load_state): Use Persist stream to load the components again.
- (e_summary_add_service): Add a Property Listener to the property bag to
- be notified of changes to the title or icon.
-
-2000-12-07 Dave Camp <dave@helixcode.com>
-
- * evolution-services/evolution-summary-component.c: Don't include
- executive-summary-client.h.
-
-2000-12-07 Dave Camp <dave@helixcode.com>
-
- * idl/Makefile.am (IDLS): Include HtmlView.idl
-
-2000-11-29 Dan Winship <danw@helixcode.com>
-
- * component/main.c (main): Remove no-longer-needed e_unicode_init.
-
-2000-17-10 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (make_control_html): Set the configure button
- active if there is a Bonobo_PropertyControl object associated with the
- window.
-
- * Makefile.am: Remove the widgets subdirectory.
-
-2000-16-10 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_display_window): Use the property
- bag to get the window title and icon.
-
- * test-service/main.c: (create_view): Add a PropertyBag to the object.
- (set_property): Set the properties.
- (get_property): Get the properties.
-
-2000-15-10 Iain Holmes <iain@helixcode.com>
-
- * evolution-services/executive-summary-component-factory-client.[ch]:
- A client for the factory stuff.
-
-2000-14-10 Iain Holmes <iain@helixcode.com>
-
- * evolution-services/executive-summary-html-view.[ch]: Implementation
- of the HtmlView interface.
-
- * component/e-summary-factory.c
- (e_summary_factory_embed_service_from_id): Rewrote to use the new
- component_factory.
-
- * component/e-summary.c (e_summary_add_service): Rewrote to use
- the new component stuff. Lots of queryInterfaces :)
- (e_summary_window_free): Rewrote.
-
- * test-service/main.c: Rewrote completely as an example of the
- new services.
-
-2000-13-10 Iain Holmes <iain@helixcode.com>
-
- * evolution-services/executive-summary-component.c:
- Created the ExecutiveSummaryComponentFactory type, that implements
- GNOME/Evolution/Summary/ComponentFactory. Changed the way
- GNOME/Evolution/Summary/Component is implemented.
-
- * idl/SummaryComponent.idl: Removed all methods from Component
- execpt setOwner and unsetOwner. Added ComponentFactory interface
- with a createView method.
-
- * idl/HtmlView.idl: New interface for HTML services. One method
- getHtml.
-
-2000-11-10 Iain Holmes <iain@helixcode.com>
-
- * evolution-services/executive-summary-component-view.c
- (executive_summary_component_view_set_title): Removed the
- "wrong side" warning.
-
- * component/e-summary-factory.c (set_icon): Change the view's
- icon.
- (e_summary_factory_embed_service_from_id): Connect to the set_icon
- signal.
-
-2000-11-09 Iain Holmes <iain@helixcode.com>
-
- * test-service/rdf-summary.c: Made Alan Cox's rdf-engine.c from
- Portaloo into a summary component.
-
-2000-11-08 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_window_free): Remove the view
- from the id_to_view hash table.
- (make_control_html): Fix the bottom row comparison.
-
-2000-11-07 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_load_state): Load the HTML
- page for the background.
- (load_html_page): Use GnomeVFS to load this page, and split it
- into a header and footer.
- (e_summary_rebuild_page): If a header and footer exist, use them
- otherwise just load the default.
-
-2000-11-06 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (on_object_requested): Load a bonobo
- service and try to get it to display (Not working yet).
-
-2000-11-04 Iain Holmes <iain@helixcode.com>
-
- * test-service/test-bonobo.c: New file to test Bonobo control
- based services.
-
- * test-service/test-service.oafinfo: Added the details for the
- test-bonobo service.
-
-2000-11-03 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (make_control_html): Make a neater
- function to create the window controls. Check if a window can
- be moved in a certain direction before making a link.
-
- * evolution-services/executive-summary-component-view.c: Added a
- GtkWidget to the private structure to store the control's widget.
-
-2000-11-03 Iain Holmes <iain@helixcode.com>
-
- * evolution-services/executive-summary-component-view.c:
- (executive_summary_component_view_class_init): Add a "configure"
- signal.
-
- * evolution-services/executive-summary-component-view.h: Add the
- default handler in the class type.
-
- * idl/SummaryComponent.idl: Add an id to the configure method.
-
- * evolution-services/executive-summary-component-client.[ch]:
- executive_summary_component_client_configure: Takes a View param.
-
- * component/e-summary-factory.c: Connect to the configure signal
- of the created view and call the configure method.
-
- * component/e-summary-url.c: When the [?] is clicked, emit the
- configure signal.
-
- * test-service/main.c: Connect the configure signal to something.
-
-2000-11-21 Radek Doulik <rodo@helixcode.com>
-
- * component/e-summary.c (e_summary_rebuild_page): use html_engine_is_selection_active
- added some includes
-
-2000-11-11 Matt Bissiri <bissiri@eecs.umich.edu>
-
- * component/e-summary-factory.c: (control_activate_cb),
- (embed_service):
- * evolution-executive-summary.oafinfo:
- * test-service/test-service.oafinfo:
- Update the remaining "IDL:Evolution*" to "IDL:GNOME/Evolution*"
- to sync up with yesterday's IDL re-scoping.
-
-2000-11-10 Matt Bissiri <bissiri@eecs.umich.edu>
-
- * component/Makefile.am: Regenerate the idl-generated files
- if composer idl changes.
-
-2000-11-03 Federico Mena Quintero <federico@helixcode.com>
-
- * evolution-services/Makefile.am: Clean the idl-generated files
- properly.
-
-2000-11-01 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c:
- component/e-summary-factory.c:
- component/e-summary-url.c: Warning's cleanup.
-
-2000-11-01 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_rebuild_page): Requeue the redraw
- if there is a selection on the widget.
-
-2000-11-01 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_display_window): Draw the window
- controls to move, close and configure the window.
- (e_summary_window_move_(left|right|up|down)): Move the window around the
- window list.
-
- * component/e-summary-url.c (e_summary_url_click): Add handlers for the
- window control URIs (close:// configure:// up:// down:// left:// and
- right://).
- (get_protocol): Add support for the new protocols.
- (parse_uri): Ditto.
- (e_summary_url_describe): ditto.
-
-2000-10-30 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary-factory.c (embed_service): Generate the uid here
- and pass it into the create_view method.
-
- * evolution-services/executive-summary-component-client.c
- (executive_summary_component_client_create_view): Use the passed in UID
- to generate a view.
-
- * evolution-services/executive-summary-component.c
- (impl_Evolution_SummaryComponent_create_view): Don't generate the id here
- but use the passed in one instead.
-
- * idl/SummaryComponent.idl: create_view now takes an ID parameter.
-
-2000-10-26 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (load_default): Neaten the Report bug link.
- (e_summary_end_load): Put in a <hr> and a mailto to me.
- (e_summary_new): Create an EvolutionShellClient from the Evolution_Shell.
- (e_summary_get_shell_client): Retrieve the shell-client.
-
- * component/e-summary-url.c (e_summary_url_click): On a PROTOCOL_VIEW
- change the current view to the one specified in the URL.
-
-2000-10-28 Ettore Perazzoli <ettore@helixcode.com>
-
- * component/Makefile.am (INCLUDES): Add
- `-I$(top_builddir)/executive-summary/evolution-services' and
- `-I$(top_srcdir)/executive-summary/evolution-services'.
-
-2000-10-25 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary-url.c (e_summary_url_exec): Execute a program
- specified in the format "exec://program args".
- (e_summary_url_mail_compose): Run the mail composer when a mailto:
- URL is clicked.
-
-2000-10-25 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (e_summary_start_load): Add a hack to stop the
- GtkHTML widget returning to the top when it is redrawn.
-
- * component/e-summary-url.[ch]
- * component/e-summary-util.[ch]: Split some functions out of e-summary.c
-
- * component/Makefile.am: Added the new files, and run orbit-idl on the
- mail composer idl.
-
-2000-10-25 <jpr@helixcode.com>
-
- * component/e-summary-factory.c (control_activate): User
- bonobo_control_get_remote_uid_container, not the old version
-
-2000-10-25 Iain Holmes <iain@helixcode.com>
-
- * test-service/main.c: Store each individual views data with the view.
- Add comments to explain everything.
-
- * evolution-services/executive-summary-component.c
- (impl_Evolution_SummaryComponent_create_view): Only try to create a
- control if the returned control != NULL.
-
-2000-10-25 Iain Holmes <iain@helixcode.com>
-
- * evolution-services/executive-summary-component.c
- (impl_Evolution_SummaryComponent_create_view): Set the UID of the view
- before passing it to the create_view method.
-
-2000-10-25 Iain Holmes <iain@helixcode.com>
-
- * idl/Summary.idl: Added set_icon method, and changed update_html_component
- to update_component. Made all methods take a long ID instead of an
- SummaryComponent.
-
- * idl/SummaryComponent.idl: Combined the create_bonobo_view and
- create_html_view into create_view.
- Added a destroy_view method.
-
- * evolution-services/Makefile.am: Added the 2 new files.
-
- * evolution-services/executive-summary-component-view.[ch]: New
- files implementing a view of an ExecutiveSummaryComponent.
-
- * evolution-services/executive-summary.[ch]
- * evolution-services/executive-summary-client.[ch]
- * evolution-services/executive-summary-component.[ch]
- * evolution-services/executive-summary-component-client.[ch]:
- * component/e-summary-factory.c
- * component/e-summary.c
- * test-service/main.c:
- Updated to use new methods and the new ExecutiveSummaryComponentView
- object.
-
-2000-10-16 Iain Holmes <iain@helixcode.com>
-
- * evolution-services/executive-summary.c (executive_summary_class_init):
- Implement the update, set_title and flash functionality as signals
- instead of methods.
- (impl_Evolution_Summary_set_title): Emit signal.
- (impl_Evolution_Summary_flash): Emit signal.
- (impl_Evolution_Summary_update_html_component): Emit signal.
- (executive_summary_new): Don't need the methods anymore.
- (executive_summary_construct): Same.
- (executive_summary_init): Remove the private initialisation.
-
-2000-10-23 Dan Winship <danw@helixcode.com>
-
- * idl/Makefile.am (INCLUDES):
- * evolution-services/Makefile.am (INCLUDES):
- * component/Makefile.am (INCLUDES): Update EVOLUTION_LOCALEDIR
-
-2000-10-14 Ettore Perazzoli <ettore@helixcode.com>
-
- * evolution-executive-summary.oafinfo: Added
- "evolution:shell-component-icon" property.
-
-2000-10-10 Jacob "Ulysses" Berkman <jacob@helixcode.com>
-
- * evolution-services/Makefile.am (IDLS): make the built sources
- depend on the idl files
-
-2000-10-09 Iain Holmes <iain@helixcode.com>
-
- * idl/SummaryComponent.idl: Added an icon parameter to the
- create_view methods.
-
- * evolution-services/executive-summary-component.c: Implement
- the icon parameter.
-
- * evolution-services/executive-summary-component-client.c: Ditto
-
- * component/e-summary.c: Draw the specified icon.
-
- * component/e-summary-factory.c: Use the icon parameter.
-
-2000-10-09 Iain Holmes <iain@helixcode.com>
-
- * evolution-services/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) to
- find gnomesupport.h
-
-2000-10-06 Iain Holmes <iain@helixcode.com>
-
- * component/e-summary.c (request_cb): Use gnome-vfs to retrieve
- the requested files. Allows services to specify remote urls.
- (load_default, e_summary_display_window, e_summary_rebuild_page):
- Change the html to match TigerT's lovely design.
- (e_summary_add_html_service, e_summary_add_html_service): Add
- the client argument so we can destroy it when we've quit.
- (e_summary_window_update): Only do an update if there isn't one
- pending.
-
- * component/e-summary-factory.c (embed_service): upd.
-
- * test-service/main.c: Made the test service be really silly and count
- the number of seconds since it was started.
-
-2000-10-06 Ettore Perazzoli <ettore@helixcode.com>
-
- * component/Makefile.am (INCLUDES): Fix builddir != srcdir.
-
-2000-10-05 Chris Toshok <toshok@helixcode.com>
-
- * widgets/.cvsignore: ignore more stuff.
-
- * .cvsignore: ignore more stuff.
-
- * idl/.cvsignore: ignore more stuff.
-
- * evolution-services/.cvsignore: ignore more stuff.
-
- * component/.cvsignore: ignore more stuff.
-
- * .cvsignore: add Makefile
-
-2000-10-05 Chris Toshok <toshok@helixcode.com>
-
- * component/component-factory.c: include
- <gal/widgets/e-gui-utils.h> instead of "e-util/e-gui-utils.h" to
- clear up e_notice declaration, and #include <gnome.h> to get "_".
-
-2000-10-05 Michael Meeks <michael@helixcode.com>
-
- * component/e-summary-factory.c (control_activate): upd.
- (set_pixmap): upd. (update_pixmaps): upd.
- (control_activate_cb): upd.
- (control_deactivate): upd.
-
-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/Makefile.am b/executive-summary/Makefile.am
deleted file mode 100644
index 6d9aa83a17..0000000000
--- a/executive-summary/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-SUBDIRS = idl evolution-services component test-service
-
-oafdir = $(datadir)/oaf
-oaf_in_files = GNOME_Evolution_Summary.oaf.in
-oaf_DATA = $(oaf_in_files:.oaf.in=.oaf)
-
-@XML_I18N_MERGE_OAF_RULE@
-
-htmldir = $(datadir)/evolution
-html_DATA = summary.html
-
-EXTRA_DIST = $(oaf_in_files) $(oaf_DATA) $(html_DATA)
diff --git a/executive-summary/component/.cvsignore b/executive-summary/component/.cvsignore
deleted file mode 100644
index 75f1a012f2..0000000000
--- a/executive-summary/component/.cvsignore
+++ /dev/null
@@ -1,10 +0,0 @@
-core
-Makefile.in
-Makefile
-.deps
-.libs
-evolution-executive-summary
-Composer-common.c
-Composer.h
-Composer-stubs.c
-Composer-skels.c \ No newline at end of file
diff --git a/executive-summary/component/Makefile.am b/executive-summary/component/Makefile.am
deleted file mode 100644
index 356665d777..0000000000
--- a/executive-summary/component/Makefile.am
+++ /dev/null
@@ -1,88 +0,0 @@
-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 \
- -I$(top_srcdir)/executive-summary \
- -I$(top_builddir)/executive-summary/evolution-services \
- -I$(top_srcdir)/executive-summary/evolution-services \
- $(EXTRA_GNOME_CFLAGS) \
- $(GNOME_VFS_CFLAGS) \
- $(GTKHTML_CFLAGS) \
- -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \
- -DEVOLUTION_ICONSDIR=\""$(iconsdir)"\" \
- -DEVOLUTION_LOCALEDIR=\""$(localedir)"\" \
- -DEVOLUTION_DATADIR=\""$(datadir)"\" \
- -DG_LOG_DOMAIN=\"evolution-executive-summary\"
-
-COMPOSER_GENERATED = \
- Composer.h \
- Composer-common.c \
- Composer-skels.c \
- Composer-stubs.c
-
-Composer-impl.o: Composer.h
-
-selectnamesdir = $(top_srcdir)/addressbook/gui/component/select-names
-
-IDLS = \
- $(selectnamesdir)/Evolution-Addressbook-SelectNames.idl \
- $(top_srcdir)/composer/Evolution-Composer.idl \
- $(top_srcdir)/composer/Composer.idl
-
-$(COMPOSER_GENERATED): $(IDLS)
- $(ORBIT_IDL) -I $(srcdir) -I $(datadir)/idl `$(GNOME_CONFIG) --cflags idl` \
- $(top_srcdir)/composer/Composer.idl
-
-evolution_executive_summary_SOURCES = \
- $(COMPOSER_GENERATED) \
- component-factory.c \
- component-factory.h \
- e-summary.c \
- e-summary.h \
- e-summary-callbacks.c \
- e-summary-callbacks.h \
- e-summary-factory.c \
- e-summary-factory.h \
- e-summary-prefs.c \
- e-summary-prefs.h \
- e-summary-url.c \
- e-summary-url.h \
- e-summary-util.c \
- e-summary-util.h \
- main.c
-
-evolution_executive_summary_LDADD = \
- $(top_builddir)/executive-summary/evolution-services/libevolution-services.la \
- $(top_builddir)/shell/libeshell.la \
- $(top_builddir)/widgets/misc/libemiscwidgets.a \
- $(top_builddir)/e-util/libeutil.la \
- $(BONOBO_VFS_GNOME_LIBS) \
- $(EXTRA_GNOME_LIBS) \
- -lgal \
- $(GTKHTML_LIBS)
-
-gladedir = $(datadir)/evolution-$(BASE_VERSION)/glade
-glade_DATA = executive-summary-config.glade
-
-if ENABLE_PURIFY
-PLINK = $(LIBTOOL) --mode=link $(PURIFY) $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-
-all-local: evolution-executive-summary.pure
-
-evolution-executive-summary.pure: evolution-executive-summary
- @rm -f evolution-executive-summary.pure
- $(PLINK) $(evolution_executive_summary_OBJECTS) $(evolution_executive_summary_LDADD) $(LIBS)
-
-endif
-
-EXTRA_DIST = $(glade_DATA)
-CLEANFILES = $(COMPOSER_GENERATED)
-BUILT_SOURCES = $(COMPOSER_GENERATED)
-
-dist-hook:
- cd $(distdir); rm -f $(BUILT_SOURCES)
diff --git a/executive-summary/component/component-factory.c b/executive-summary/component/component-factory.c
deleted file mode 100644
index ab917251d2..0000000000
--- a/executive-summary/component/component-factory.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* component-factory.c
- *
- * Authors: Ettore Perazzoli <ettore@ximian.com>
- * Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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/bonobo-object.h>
-#include <bonobo/bonobo-generic-factory.h>
-
-#include "Evolution.h"
-#include "evolution-storage.h"
-
-#include "evolution-shell-component.h"
-#include <gal/widgets/e-gui-utils.h>
-
-#include "component-factory.h"
-#include "e-summary-factory.h"
-
-#define COMPONENT_FACTORY_IID "OAFIID:GNOME_Evolution_Summary_ShellComponentFactory"
-
-static BonoboGenericFactory *factory = NULL;
-static gint running_objects = 0;
-
-static const EvolutionShellComponentFolderType folder_types[] = {
- { "executive-summary", "evolution-today.png", FALSE, NULL, NULL },
- { 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;
- GNOME_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)
-{
- GNOME_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 (BonoboObject *component,
- 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, 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
deleted file mode 100644
index fc10a08046..0000000000
--- a/executive-summary/component/component-factory.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* component-factory.h
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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-callbacks.c b/executive-summary/component/e-summary-callbacks.c
deleted file mode 100644
index 1eff427af9..0000000000
--- a/executive-summary/component/e-summary-callbacks.c
+++ /dev/null
@@ -1,320 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-callbacks.c
- *
- * Author:
- * Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <libgnomeui/gnome-propertybox.h>
-#include <libgnomeui/gnome-file-entry.h>
-#include <libgnome/gnome-i18n.h>
-
-#include <bonobo/bonobo-selector.h>
-
-#include <stdlib.h> /* For atoi */
-
-#include <liboaf/liboaf.h>
-#include <glade/glade.h>
-#include <gtkhtml/gtkhtml.h>
-#include <e-util/e-html-utils.h>
-
-#include "e-summary.h"
-#include "e-summary-callbacks.h"
-
-#include "Composer.h"
-
-#define COMPOSER_IID "OAFIID:GNOME_Evolution_Mail_Composer"
-typedef struct _PropertyData {
- ESummary *esummary;
- GnomePropertyBox *box;
- GladeXML *xml;
-} PropertyData;
-
-/* HTML helper functions from mail/mail-config-gui.c */
-static void
-html_size_req (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- requisition->height = GTK_LAYOUT (widget)->height;
-}
-
-/* Returns a GtkHTML which is already inside a GtkScrolledWindow. If
- * @white is TRUE, the GtkScrolledWindow will be inside a GtkFrame.
- */
-static GtkWidget *
-html_new (gboolean white)
-{
- GtkWidget *html, *scrolled, *frame;
- GtkStyle *style;
-
- html = gtk_html_new ();
- GTK_LAYOUT (html)->height = 0;
- gtk_signal_connect (GTK_OBJECT (html), "size_request",
- GTK_SIGNAL_FUNC (html_size_req), NULL);
- gtk_html_set_editable (GTK_HTML (html), FALSE);
- style = gtk_rc_get_style (html);
-
- if (style) {
- gtk_html_set_default_background_color (GTK_HTML (html),
- white ? &style->white:
- &style->bg[0]);
- }
-
- gtk_widget_set_sensitive (html, FALSE);
- scrolled = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
- GTK_POLICY_NEVER, GTK_POLICY_NEVER);
- gtk_container_add (GTK_CONTAINER (scrolled), html);
- if (white) {
- frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame),
- GTK_SHADOW_ETCHED_IN);
- gtk_container_add (GTK_CONTAINER (frame), scrolled);
- gtk_widget_show_all (frame);
- } else {
- gtk_widget_show_all (scrolled);
- }
-
- return html;
-}
-
-static void
-put_html (GtkHTML *html,
- const char *text)
-{
- GtkHTMLStream *handle;
- char *htmltext;
-
- htmltext = e_text_to_html (text, E_TEXT_TO_HTML_CONVERT_NL);
- handle = gtk_html_begin (html);
- gtk_html_write (html, handle, "<HTML><BODY>", 12);
- gtk_html_write (html, handle, text, strlen (text));
- gtk_html_write (html, handle, "</BODY></HTML>", 14);
- g_free (htmltext);
- gtk_html_end (html, handle, GTK_HTML_STREAM_OK);
-}
-
-void
-embed_service (GtkWidget *widget,
- ESummary *esummary)
-{
- char *required_interfaces[2] = {"IDL:GNOME/Evolution:Summary:ComponentFactory:1.0",
- NULL};
- char *obj_id;
-
- obj_id = bonobo_selector_select_id (_("Select a service"),
- (const char **) required_interfaces);
- if (obj_id == NULL)
- return;
-
- e_summary_embed_service_from_id (esummary, obj_id);
-}
-
-void
-new_mail (GtkWidget *widget,
- ESummary *esummary)
-{
- GNOME_Evolution_Composer_RecipientList *to, *cc, *bcc;
- CORBA_char *subject;
- CORBA_Object composer;
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- composer = oaf_activate_from_id ((char *)COMPOSER_IID, 0, NULL, &ev);
- if (ev._major != CORBA_NO_EXCEPTION || composer == NULL) {
- CORBA_exception_free (&ev);
- g_warning ("Unable to start composer component!");
- return;
- }
- CORBA_exception_free (&ev);
-
- to = GNOME_Evolution_Composer_RecipientList__alloc ();
- to->_length = 0;
- to->_maximum = 0;
- to->_buffer = CORBA_sequence_GNOME_Evolution_Composer_Recipient_allocbuf (0);
-
- cc = GNOME_Evolution_Composer_RecipientList__alloc ();
- cc->_length = 0;
- cc->_maximum = 0;
- cc->_buffer = CORBA_sequence_GNOME_Evolution_Composer_Recipient_allocbuf (0);
-
- bcc = GNOME_Evolution_Composer_RecipientList__alloc ();
- bcc->_length = 0;
- bcc->_maximum = 0;
- bcc->_buffer = CORBA_sequence_GNOME_Evolution_Composer_Recipient_allocbuf (0);
-
- subject = CORBA_string_dup ("");
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_Composer_setHeaders (composer, to, cc,
- bcc, subject, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- CORBA_exception_free (&ev);
- CORBA_free (to);
- CORBA_free (cc);
- CORBA_free (bcc);
- CORBA_free (subject);
-
- g_warning ("Error setting headers!");
- return;
- }
-
- CORBA_free (to);
- CORBA_free (cc);
- CORBA_free (bcc);
- CORBA_free (subject);
-
- GNOME_Evolution_Composer_show (composer, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- CORBA_exception_free (&ev);
- g_warning ("Error showing composer");
- return;
- }
-
- CORBA_exception_free (&ev);
- return;
-}
-
-static void
-destroy_prefs_cb (GtkObject *object,
- PropertyData *data)
-{
- gtk_object_unref (GTK_OBJECT(data->xml));
- g_free (data);
-}
-
-static void
-html_page_changed_cb (GtkEntry *entry,
- PropertyData *data)
-{
- ESummaryPrefs *prefs;
-
- /* Change the tmp prefs so that we can restore if the user cancels */
- prefs = data->esummary->tmp_prefs;
-
- if (prefs->page)
- g_free (prefs->page);
-
- prefs->page = g_strdup (gtk_entry_get_text (entry));
-
- gnome_property_box_changed (data->box);
-}
-
-static void
-column_spinner_changed_cb (GtkEntry *entry,
- PropertyData *data)
-{
- ESummaryPrefs *prefs;
- char *value;
-
- prefs = data->esummary->tmp_prefs;
-
- gnome_property_box_changed (data->box);
- value = gtk_entry_get_text (entry);
- if (value == NULL || *value == '\0')
- return;
-
- prefs->columns = atoi (value);
-}
-
-static void
-apply_prefs_cb (GnomePropertyBox *property_box,
- int page,
- ESummary *esummary)
-{
- g_print ("Applying\n");
-
- if (page != -1)
- return;
-
- esummary->prefs = e_summary_prefs_copy (esummary->tmp_prefs);
-
- e_summary_reconfigure (esummary);
-}
-
-void
-configure_summary (GtkWidget *widget,
- ESummary *esummary)
-{
- static GtkWidget *prefs = NULL;
- PropertyData *data;
- GtkWidget *html_page;
- GtkWidget *vbox, *html, *spinner;
- char *tmp;
-
- if (prefs != NULL) {
- g_assert (GTK_WIDGET_REALIZED (prefs));
- gdk_window_show (prefs->window);
- gdk_window_raise (prefs->window);
- return;
- }
-
- data = g_new (PropertyData, 1);
- data->esummary = esummary;
-
- if (esummary->tmp_prefs != NULL) {
- e_summary_prefs_free (esummary->tmp_prefs);
- }
-
- esummary->tmp_prefs = e_summary_prefs_copy (esummary->prefs);
-
- data->xml = glade_xml_new (EVOLUTION_GLADEDIR
- "/executive-summary-config.glade", NULL);
- prefs = glade_xml_get_widget (data->xml, "summaryprefs");
- data->box = GNOME_PROPERTY_BOX(prefs);
-
- vbox = glade_xml_get_widget (data->xml, "vbox");
- html = html_new (TRUE);
- put_html (GTK_HTML(html),
- _("You can select a different HTML page for the background "
- "of the Executive Summary.\n\nJust leave it blank for the "
- "default"));
- gtk_box_pack_start (GTK_BOX (vbox), html->parent->parent, TRUE, TRUE, 0);
- gtk_box_reorder_child (GTK_BOX (vbox), html->parent->parent, 0);
-
- html_page = glade_xml_get_widget (data->xml, "htmlpage");
-
- if (esummary->prefs->page != NULL)
- gtk_entry_set_text (GTK_ENTRY (gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (html_page))), esummary->prefs->page);
-
- gtk_signal_connect (GTK_OBJECT (gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (html_page))),
- "changed", GTK_SIGNAL_FUNC (html_page_changed_cb),
- data);
-
- spinner = glade_xml_get_widget (data->xml, "columnspinner");
-
- tmp = g_strdup_printf ("%d", esummary->prefs->columns);
- gtk_entry_set_text (GTK_ENTRY (spinner), tmp);
- g_free (tmp);
- gtk_signal_connect (GTK_OBJECT (spinner), "changed",
- GTK_SIGNAL_FUNC (column_spinner_changed_cb), data);
-
- gtk_signal_connect (GTK_OBJECT (prefs), "apply",
- GTK_SIGNAL_FUNC (apply_prefs_cb), esummary);
-
- gtk_signal_connect (GTK_OBJECT (prefs), "destroy",
- GTK_SIGNAL_FUNC (destroy_prefs_cb), data);
- gtk_signal_connect (GTK_OBJECT (prefs), "destroy",
- GTK_SIGNAL_FUNC (gtk_widget_destroyed), &prefs);
-}
-
diff --git a/executive-summary/component/e-summary-callbacks.h b/executive-summary/component/e-summary-callbacks.h
deleted file mode 100644
index 6b908d694c..0000000000
--- a/executive-summary/component/e-summary-callbacks.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __E_SUMMARY_CALLBACKS_H__
-#define __E_SUMMARY_CALLBACKS_H__
-
-#include "e-summary.h"
-
-void embed_service (GtkWidget *widget,
- ESummary *esummary);
-void new_mail (GtkWidget *widget,
- ESummary *esummary);
-void configure_summary (GtkWidget *widget,
- ESummary *esummary);
-#endif
diff --git a/executive-summary/component/e-summary-factory.c b/executive-summary/component/e-summary-factory.c
deleted file mode 100644
index 42b666715d..0000000000
--- a/executive-summary/component/e-summary-factory.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-factory.c
- *
- * Authors: Ettore Perazzoli <ettore@ximian.com>
- * Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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/bonobo-control.h>
-#include <bonobo/bonobo-main.h>
-#include <bonobo/bonobo-object.h>
-#include <bonobo/bonobo-generic-factory.h>
-#include <bonobo/bonobo-ui-util.h>
-
-#include <liboaf/liboaf.h>
-
-#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <gal/util/e-util.h>
-#include "evolution-shell-component-utils.h"
-
-#include "e-summary-factory.h"
-
-#include "e-summary.h"
-#include "e-summary-util.h"
-#include "e-summary-callbacks.h"
-#include "Evolution.h"
-
-#include <evolution-services/Executive-Summary.h>
-#include <evolution-services/executive-summary-component.h>
-#include <evolution-services/executive-summary-component-factory-client.h>
-
-static GList *control_list = NULL;
-
-BonoboUIVerb verbs[] = {
- BONOBO_UI_UNSAFE_VERB ("AddService", embed_service),
- BONOBO_UI_UNSAFE_VERB ("NewMail", new_mail),
- BONOBO_UI_UNSAFE_VERB ("ESummarySettings", configure_summary),
- BONOBO_UI_VERB_END
-};
-
-static EPixmap pixmaps [] = {
- E_PIXMAP ("/Toolbar/AddService", "buttons/add-service.png"),
- E_PIXMAP ("/Toolbar/NewMail", "buttons/compose-message.png"),
- E_PIXMAP_END
-};
-
-static void
-control_activate (BonoboControl *control,
- BonoboUIComponent *ui_component,
- ESummary *esummary)
-{
- Bonobo_UIContainer container;
-
- container = bonobo_control_get_remote_ui_container (control);
- bonobo_ui_component_set_container (ui_component, container);
- bonobo_object_release_unref (container, NULL);
-
- bonobo_ui_component_add_verb_list_with_data (ui_component, verbs, esummary);
-
- bonobo_ui_component_freeze (ui_component, NULL);
-
- bonobo_ui_util_set_ui (ui_component, EVOLUTION_DATADIR,
- EVOLUTION_UI_DIRECTORY "/evolution-executive-summary.xml",
- "evolution-executive-summary");
-
- e_pixmaps_update (ui_component, pixmaps);
-
- bonobo_ui_component_thaw (ui_component, NULL);
-}
-
-static void
-control_deactivate (BonoboControl *control,
- BonoboUIComponent *ui_component,
- ESummary *esummary)
-{
- e_summary_unset_message (esummary);
- bonobo_ui_component_unset_container (ui_component);
-}
-
-static void
-control_activate_cb (BonoboControl *control,
- gboolean activate,
- gpointer user_data)
-{
- ESummary *summary;
- BonoboUIComponent *ui_component;
- Bonobo_ControlFrame control_frame;
- GNOME_Evolution_ShellView shell_view_interface;
- CORBA_Environment ev;
-
- ui_component = bonobo_control_get_ui_component (control);
- g_assert (ui_component != NULL);
-
- if (gtk_object_get_data (GTK_OBJECT (control), "shell_view_interface") == NULL) {
- control_frame = bonobo_control_get_control_frame (control);
- if (control_frame == NULL) {
- goto out;
- }
-
- CORBA_exception_init (&ev);
- shell_view_interface = Bonobo_Unknown_queryInterface (control_frame,
- "IDL:GNOME/Evolution/ShellView:1.0",
- &ev);
- CORBA_exception_free (&ev);
-
- if (shell_view_interface != CORBA_OBJECT_NIL) {
- gtk_object_set_data (GTK_OBJECT (control),
- "shell_view_interface",
- shell_view_interface);
- } else {
- g_warning ("Control frame doesn't have Evolution/ShellView.");
- }
-
- summary = E_SUMMARY (user_data);
- e_summary_set_shell_view_interface (summary,
- shell_view_interface);
- }
-
- out:
- if (activate)
- control_activate (control, ui_component, user_data);
- else
- control_deactivate (control, ui_component, 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));
-}
-
-BonoboControl *
-e_summary_factory_new_control (const char *uri,
- const GNOME_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);
-
- return control;
-}
diff --git a/executive-summary/component/e-summary-factory.h b/executive-summary/component/e-summary-factory.h
deleted file mode 100644
index d047ebd491..0000000000
--- a/executive-summary/component/e-summary-factory.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-factory.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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>
-#include "e-summary.h"
-
-BonoboControl *e_summary_factory_new_control (const char *uri,
- const GNOME_Evolution_Shell shell);
-ESummaryWindow *e_summary_factory_embed_service_from_id (ESummary *esummary,
- const char *obj_id);
-
-#endif
diff --git a/executive-summary/component/e-summary-prefs.c b/executive-summary/component/e-summary-prefs.c
deleted file mode 100644
index fdf51ead1e..0000000000
--- a/executive-summary/component/e-summary-prefs.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-prefs.c: Preference handling routines.
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <stdio.h>
-#include <libgnome/gnome-defs.h>
-#include <libgnome/gnome-config.h>
-#include "e-summary-prefs.h"
-#include "e-summary.h"
-
-void
-e_summary_prefs_free (ESummaryPrefs *prefs)
-{
- g_return_if_fail (prefs != NULL);
-
- g_free (prefs->page);
- g_free (prefs);
-}
-
-ESummaryPrefs *
-e_summary_prefs_new (void)
-{
- ESummaryPrefs *prefs;
-
- prefs = g_new0 (ESummaryPrefs, 1);
- return prefs;
-}
-
-ESummaryPrefs *
-e_summary_prefs_copy (ESummaryPrefs *prefs)
-{
- ESummaryPrefs *copy;
-
- g_return_val_if_fail (prefs != NULL, NULL);
-
- copy = e_summary_prefs_new ();
- copy->page = g_strdup (prefs->page);
- copy->columns = prefs->columns;
-
- return copy;
-}
-
-gboolean
-e_summary_prefs_compare (ESummaryPrefs *p1,
- ESummaryPrefs *p2)
-{
- if (p1 == p2)
- return TRUE;
-
- if (strcmp (p1->page, p2->page) == 0)
- return TRUE;
-
- if (p1->columns == p2->columns)
- return TRUE;
-
- return FALSE;
-}
-
-ESummaryPrefs *
-e_summary_prefs_load (const char *path)
-{
- ESummaryPrefs *prefs;
- char *item;
-
- g_return_val_if_fail (path != NULL, NULL);
- g_return_val_if_fail (*path != '\0', NULL);
-
- prefs = e_summary_prefs_new ();
-
- item = g_strdup_printf ("=%s/e-summary=/executive-summary/page", path);
- prefs->page = gnome_config_get_string (item);
- g_free (item);
-
- item = g_strdup_printf ("=%s/e-summary=/executive-summary/columns=3", path);
- prefs->columns = gnome_config_get_int (item);
- g_free (item);
- return prefs;
-}
-
-void
-e_summary_prefs_save (ESummaryPrefs *prefs,
- const char *path)
-{
- char *item;
-
- g_return_if_fail (prefs != NULL);
- g_return_if_fail (path != NULL);
- g_return_if_fail (*path != '\0');
-
- item = g_strdup_printf ("=%s/e-summary=/executive-summary/page", path);
- gnome_config_set_string (item, prefs->page);
- g_free (item);
-
- item = g_strdup_printf ("=%s/e-summary=/executive-summary/columns", path);
- gnome_config_set_int (item, prefs->columns);
- g_free (item);
-
- gnome_config_sync ();
- gnome_config_drop_all ();
-}
diff --git a/executive-summary/component/e-summary-prefs.h b/executive-summary/component/e-summary-prefs.h
deleted file mode 100644
index e7b2b9b127..0000000000
--- a/executive-summary/component/e-summary-prefs.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-prefs.h: Preference handling routines.
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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_PREFS_H__
-#define __E_SUMMARY_PREFS_H__
-
-typedef struct _ESummaryPrefs ESummaryPrefs;
-struct _ESummaryPrefs {
- char *page; /* Background HTML page URL */
- int columns; /* Number of components per row (Default = 3) */
-
- /* If anything is added here, don't forget to add
- copy, compare, load and save routines to the appropriate
- functions. */
-};
-
-ESummaryPrefs *e_summary_prefs_new (void);
-void e_summary_prefs_free (ESummaryPrefs *prefs);
-ESummaryPrefs *e_summary_prefs_copy (ESummaryPrefs *prefs);
-gboolean e_summary_prefs_compare (ESummaryPrefs *p1,
- ESummaryPrefs *p2);
-ESummaryPrefs *e_summary_prefs_load (const char *path);
-void e_summary_prefs_save (ESummaryPrefs *prefs,
- const char *path);
-
-#endif
diff --git a/executive-summary/component/e-summary-url.c b/executive-summary/component/e-summary-url.c
deleted file mode 100644
index ed4aa7af69..0000000000
--- a/executive-summary/component/e-summary-url.c
+++ /dev/null
@@ -1,851 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-url.c
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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/bonobo-property-control.h>
-#include <bonobo/bonobo-event-source.h>
-#include <bonobo/bonobo-widget.h>
-
-#include <libgnome/gnome-i18n.h>
-#include <libgnome/gnome-url.h>
-#include <libgnome/gnome-exec.h>
-#include <libgnomeui/gnome-propertybox.h>
-
-#include <stdlib.h>
-
-#include <gtkhtml/gtkhtml.h>
-#include <gtkhtml/gtkhtml-stream.h>
-#include <gal/util/e-util.h>
-#include <gal/widgets/e-unicode.h>
-
-#include <liboaf/liboaf.h>
-
-#include <libgnomevfs/gnome-vfs.h>
-#include "e-summary.h"
-#include "e-summary-url.h"
-#include "e-summary-util.h"
-
-#include "Composer.h"
-
-typedef enum _ESummaryProtocol {
- PROTOCOL_NONE,
- PROTOCOL_HTTP,
- PROTOCOL_MAILTO,
- PROTOCOL_VIEW,
- PROTOCOL_EXEC,
- PROTOCOL_FILE,
- PROTOCOL_CLOSE,
- PROTOCOL_LEFT,
- PROTOCOL_RIGHT,
- PROTOCOL_UP,
- PROTOCOL_DOWN,
- PROTOCOL_CONFIGURE,
- PROTOCOL_OTHER
-} ESummaryProtocol;
-
-static char *descriptions[] = {
- N_("Open %s with the default GNOME application"),
- N_("Open %s with the default GNOME web browser"),
- N_("Send an email to %s"),
- N_("Change the view to %s"),
- N_("Run %s"),
- N_("Open %s with the default GNOME application"),
- N_("Close %s"),
- N_("Move %s to the left"),
- N_("Move %s to the right"),
- N_("Move %s into the previous row"),
- N_("Move %s into the next row"),
- N_("Configure %s"),
- N_("Open %s with the default GNOME application")
-};
-
-typedef struct _PropertyDialog {
- BonoboListener *listener;
- int listener_id;
-
- Bonobo_EventSource eventsource;
- GtkWidget *dialog;
-} PropertyDialog;
-#define COMPOSER_IID "OAFIID:GNOME_Evolution_Mail_Composer"
-
-#if HAVECACHE
-static ESummaryCache *image_cache = NULL;
-#endif
-
-gboolean e_summary_url_mail_compose (ESummary *esummary,
- const char *url);
-gboolean e_summary_url_exec (const char *exec);
-
-struct _DownloadInfo {
- GtkHTMLStream *stream;
- char *uri;
- char *buffer;
-
- gboolean error;
-};
-typedef struct _DownloadInfo DownloadInfo;
-
-static void
-close_callback (GnomeVFSAsyncHandle *handle,
- GnomeVFSResult result,
- gpointer data)
-{
- DownloadInfo *info = data;
- if (info->error) {
- gtk_html_stream_close (info->stream, GTK_HTML_STREAM_ERROR);
- } else {
- gtk_html_stream_close (info->stream, GTK_HTML_STREAM_OK);
- }
-
- g_free (info->uri);
- g_free (info->buffer);
- g_free (info);
-}
-
-static void
-read_callback (GnomeVFSAsyncHandle *handle,
- GnomeVFSResult result,
- gpointer buffer,
- GnomeVFSFileSize bytes_requested,
- GnomeVFSFileSize bytes_read,
- gpointer data)
-{
- DownloadInfo *info = data;
- if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) {
- g_warning ("Read error");
- info->error = TRUE;
- gnome_vfs_async_close (handle, close_callback, info);
- }
-
- if (bytes_read == 0) {
- info->error = FALSE;
- gnome_vfs_async_close (handle, close_callback, info);
- } else {
- gtk_html_stream_write (info->stream, buffer, bytes_read);
- gnome_vfs_async_read (handle, buffer, 4095, read_callback,
- info);
- }
-}
-
-static void
-open_callback (GnomeVFSAsyncHandle *handle,
- GnomeVFSResult result,
- DownloadInfo *info)
-{
- if (result != GNOME_VFS_OK) {
- gtk_html_stream_close (info->stream, GTK_HTML_STREAM_ERROR);
- g_free (info->uri);
- g_free (info);
- return;
- }
-
- info->buffer = g_new (char, 4096);
- gnome_vfs_async_read (handle, info->buffer, 4095, read_callback, info);
-}
-
-void
-e_summary_url_request (GtkHTML *html,
- const gchar *url,
- GtkHTMLStream *stream)
-{
- char *filename;
- GnomeVFSAsyncHandle *handle;
- DownloadInfo *info;
-
- g_print ("url: %s\n", url);
- if (strncasecmp (url, "file:", 5) == 0) {
- url += 5;
- filename = e_pixmap_file (url);
- } else if (strchr (url, ':') >= strchr (url, '/')) {
- filename = e_pixmap_file (url);
- } else
- filename = g_strdup (url);
-
- if (filename == NULL) {
- gtk_html_stream_close (stream, GTK_HTML_STREAM_ERROR);
- return;
- }
-
- g_print ("Filename: %s\n", filename);
-
- info = g_new (DownloadInfo, 1);
- info->stream = stream;
- info->uri = filename;
- info->error = FALSE;
-
- gnome_vfs_async_open (&handle, filename, GNOME_VFS_OPEN_READ,
- (GnomeVFSAsyncOpenCallback) open_callback, info);
-}
-
-static char *
-parse_uri (const char *uri,
- ESummaryProtocol protocol,
- ESummary *esummary)
-{
- char *parsed;
- char *p;
- int address;
- ESummaryWindow *window;
-
- switch (protocol) {
-
- case PROTOCOL_HTTP:
- /* "http://" == 7 */
- parsed = g_strdup (uri + 7);
- break;
-
- case PROTOCOL_EXEC:
- /* "exec://" == 7 */
- parsed = g_strdup (uri + 7);
- break;
-
- case PROTOCOL_VIEW:
- /* "view://" == 7 */
- parsed = g_strdup (uri + 7);
- break;
-
- case PROTOCOL_MAILTO:
- /* Fun. Mailto's might be "mailto:" or "mailto://" */
- if (strstr (uri, "mailto://") == NULL) {
- parsed = (char *) (uri + 7);
- } else {
- parsed = (char *) (uri + 9);
- }
-
- /* Now strip anything after a question mark,
- as it is a parameter (that we ignore for the time being) */
- if ( (p = strchr (parsed, '?')) != NULL) {
- parsed = g_strndup (parsed, p - parsed);
- } else {
- parsed = g_strdup (parsed);
- }
-
- break;
-
- case PROTOCOL_CLOSE:
- address = atoi (uri + 8);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- parsed = g_strdup (window->title);
- break;
-
- case PROTOCOL_LEFT:
- address = atoi (uri + 7);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- parsed = g_strdup (window->title);
- break;
-
- case PROTOCOL_RIGHT:
- address = atoi (uri + 8);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- parsed = g_strdup (window->title);
- break;
-
- case PROTOCOL_UP:
- address = atoi (uri + 5);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- parsed = g_strdup (window->title);
- break;
-
- case PROTOCOL_DOWN:
- address = atoi (uri + 7);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- parsed = g_strdup (window->title);
- break;
-
- case PROTOCOL_CONFIGURE:
- address = atoi (uri + 12);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- parsed = g_strdup (window->title);
- break;
-
- case PROTOCOL_NONE:
- case PROTOCOL_OTHER:
- default:
- /* Just return the uneditted uri. */
- parsed = g_strdup (uri);
- break;
- }
-
- return parsed;
-}
-
-static ESummaryProtocol
-get_protocol (const char *url)
-{
- char *lowerurl;
- ESummaryProtocol protocol = PROTOCOL_OTHER;
-
- lowerurl = g_strdup (url);
- g_strdown (lowerurl);
-
- /* Check for no :/ */
- if (strstr (lowerurl, "://") == NULL) {
-
- /* Annoying alternative for mailto URLs */
- if (strncmp (lowerurl, "mailto:", 6) != 0) {
- g_free (lowerurl);
- return PROTOCOL_NONE;
- } else {
- g_free (lowerurl);
- return PROTOCOL_MAILTO;
- }
- }
-
- switch (lowerurl[0]) {
- case 'c':
- switch (lowerurl[1]) {
- case 'l':
- if (strncmp (lowerurl + 2, "ose", 3) == 0)
- protocol = PROTOCOL_CLOSE;
- break;
- case 'o':
- if (strncmp (lowerurl + 2, "nfigure", 7) == 0)
- protocol = PROTOCOL_CONFIGURE;
- break;
- }
-
- case 'd':
- if (strncmp (lowerurl + 1, "own", 3) == 0)
- protocol = PROTOCOL_DOWN;
- break;
-
- case 'e':
- if (strncmp (lowerurl + 1, "xec", 3) == 0)
- protocol = PROTOCOL_EXEC;
- break;
-
- case 'f':
- if (strncmp (lowerurl + 1, "ile", 3) == 0)
- protocol = PROTOCOL_FILE;
- break;
-
- case 'h':
- if (strncmp (lowerurl + 1, "ttp", 3) == 0)
- protocol = PROTOCOL_HTTP;
- break;
-
- case 'l':
- if (strncmp (lowerurl + 1, "eft", 3) == 0)
- protocol = PROTOCOL_LEFT;
- break;
-
- case 'm':
- if (strncmp (lowerurl + 1, "ailto", 5) == 0)
- protocol = PROTOCOL_MAILTO;
- break;
-
- case 'r':
- if (strncmp (lowerurl + 1, "ight", 4) == 0)
- protocol = PROTOCOL_RIGHT;
- break;
-
- case 'u':
- if (lowerurl[1] == 'p')
- protocol = PROTOCOL_UP;
- break;
-
- case 'v':
- if (strncmp (lowerurl + 1, "iew", 3) == 0)
- protocol = PROTOCOL_VIEW;
- break;
-
- default:
- break;
- }
-
- g_free (lowerurl);
-
- return protocol;
-}
-
-static void
-property_apply (GnomePropertyBox *propertybox,
- gint page_num,
- Bonobo_PropertyControl control)
-{
- CORBA_Environment ev;
-
- g_print ("page_num: %d\n", page_num);
-
- CORBA_exception_init (&ev);
- Bonobo_PropertyControl_notifyAction (control, page_num, Bonobo_PropertyControl_APPLY, &ev);
- CORBA_exception_free (&ev);
-}
-
-static void
-property_help (GnomePropertyBox *propertybox,
- gint page_num,
- Bonobo_PropertyControl control)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- Bonobo_PropertyControl_notifyAction (control, page_num, Bonobo_PropertyControl_HELP, &ev);
- CORBA_exception_free (&ev);
-}
-
-static void
-property_event (BonoboListener *listener,
- char *event_name,
- CORBA_any *any,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- PropertyDialog *data = (PropertyDialog *) user_data;
- if (strcmp (event_name, BONOBO_PROPERTY_CONTROL_CHANGED) == 0) {
- gnome_property_box_changed (GNOME_PROPERTY_BOX (data->dialog));
- return;
- }
-}
-
-static void
-dialog_destroyed (GtkObject *object,
- PropertyDialog *dialog)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- Bonobo_EventSource_removeListener (dialog->eventsource,
- dialog->listener_id, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_warning ("Error: %s", CORBA_exception_id (&ev));
- }
-
- bonobo_object_unref (BONOBO_OBJECT (dialog->listener));
- CORBA_exception_free (&ev);
- g_free (dialog);
-}
-
-struct _idle_data {
- ESummary *esummary;
- ESummaryWindow *window;
-};
-
-static gboolean
-idle_remove_window (gpointer data)
-{
- struct _idle_data *id = data;
-
- e_summary_remove_window (id->esummary, id->window);
- e_summary_queue_rebuild (id->esummary);
- g_free (id);
-
- return FALSE;
-}
-
-void
-e_summary_url_click (GtkWidget *widget,
- const char *url,
- ESummary *esummary)
-{
- ESummaryProtocol protocol;
- char *parsed;
- int address;
- ESummaryWindow *window;
- struct _idle_data *id;
- Bonobo_Control control;
- Bonobo_Listener corba_listener;
- GtkWidget *prefsbox, *control_widget;
- CORBA_Environment ev;
- PropertyDialog *data;
- int num_pages, i;
-
- protocol = get_protocol (url);
-
- parsed = parse_uri (url, protocol, esummary);
-
- switch (protocol) {
- case PROTOCOL_MAILTO:
- /* Open a composer window */
- e_summary_url_mail_compose (esummary, parsed);
- break;
-
- case PROTOCOL_VIEW:
- /* Change the EShellView's current uri */
- e_summary_change_current_view (esummary, parsed);
- break;
-
- case PROTOCOL_EXEC:
- /* Execute the rest of the url */
- e_summary_url_exec (parsed);
- break;
-
- case PROTOCOL_CLOSE:
- /* Close the window. */
- address = atoi (url + 8);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- if (window->iid == NULL)
- break;
-
- id = g_new (struct _idle_data, 1);
- id->window = window;
- id->esummary = esummary;
-
- /* Close the window on an idle to work around a bug in
- gnome-vfs which locks the e_summary_remove_window function
- and as gtkhtml has a pointer grab on, this locks the whole
- display. GAH! */
- g_idle_add (idle_remove_window, id);
- break;
-
- case PROTOCOL_CONFIGURE:
- /* Configure the window. . . */
- address = atoi (url + 12);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- if (window->iid == NULL)
- break;
-
- data = g_new (PropertyDialog, 1);
- /* Create the property box */
- prefsbox = gnome_property_box_new ();
- data->dialog = prefsbox;
-
- CORBA_exception_init (&ev);
- data->eventsource = window->event_source;
- data->listener = bonobo_listener_new (property_event, data);
- corba_listener = bonobo_object_corba_objref (BONOBO_OBJECT (data->listener));
- data->listener_id = Bonobo_EventSource_addListener (data->eventsource,
- corba_listener, &ev);
-
- gtk_signal_connect (GTK_OBJECT (prefsbox), "apply",
- GTK_SIGNAL_FUNC (property_apply),
- window->propertycontrol);
- gtk_signal_connect (GTK_OBJECT (prefsbox), "help",
- GTK_SIGNAL_FUNC (property_help),
- window->propertycontrol);
- gtk_signal_connect (GTK_OBJECT (prefsbox), "destroy",
- GTK_SIGNAL_FUNC (dialog_destroyed), data);
-
- num_pages = Bonobo_PropertyControl__get_pageCount (window->propertycontrol, &ev);
- for (i = 0; i < num_pages; i++) {
- control = Bonobo_PropertyControl_getControl (window->propertycontrol, i, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_warning ("Unable to get property control.");
- CORBA_exception_free (&ev);
- break;
- }
- control_widget = bonobo_widget_new_control_from_objref (control,
- CORBA_OBJECT_NIL);
- gnome_property_box_append_page (GNOME_PROPERTY_BOX (prefsbox),
- control_widget,
- gtk_label_new (_("page")));
- }
-
- gtk_widget_show_all (prefsbox);
-
- break;
-
- case PROTOCOL_LEFT:
- /* Window left */
- address = atoi (url + 7);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- if (window->iid == NULL)
- break;
-
- e_summary_window_move_left (esummary, window);
- e_summary_queue_rebuild (esummary);
- break;
-
- case PROTOCOL_RIGHT:
- address = atoi (url + 8);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- if (window->iid == NULL)
- break;
-
- e_summary_window_move_right (esummary, window);
- e_summary_queue_rebuild (esummary);
- break;
-
- case PROTOCOL_UP:
- address = atoi (url + 5);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- if (window->iid == NULL)
- break;
-
- e_summary_window_move_up (esummary, window);
- e_summary_queue_rebuild (esummary);
- break;
-
- case PROTOCOL_DOWN:
- address = atoi (url + 7);
- window = (ESummaryWindow *) GINT_TO_POINTER (address);
- if (window->iid == NULL)
- break;
-
- e_summary_window_move_down (esummary, window);
- e_summary_queue_rebuild (esummary);
- break;
-
- case PROTOCOL_OTHER:
- case PROTOCOL_NONE:
- case PROTOCOL_HTTP:
- case PROTOCOL_FILE:
- default:
- /* Let browser handle it */
- gnome_url_show (url);
- break;
-
- }
-
- g_free (parsed);
-}
-
-static void
-parse_mail_url (char *url,
- GList **cc,
- GList **bcc,
- char **subject)
-{
- char **options;
- int i = 0;
-
- options = g_strsplit (url, "&", 0);
- while (options[i] != NULL) {
- char **params;
-
- params = g_strsplit (options[i], "=", 2);
- if (strcmp (params[0], "subject") == 0) {
- *subject = g_strdup (params[1]);
- } else if (strcmp (params[0], "cc") == 0) {
- *cc = g_list_prepend (*cc, g_strdup (params[1]));
- } else if (strcmp (params[1], "bcc") == 0) {
- *bcc = g_list_prepend (*bcc, g_strdup (params[1]));
- }
-
- g_strfreev (params);
- i++;
- }
-
- g_strfreev (options);
- /* Reverse the list so it's in the correct order */
- *cc = g_list_reverse (*cc);
- *bcc = g_list_reverse (*bcc);
-}
-
-static void
-recipients_from_list (GNOME_Evolution_Composer_RecipientList *recipients,
- GList *list)
-{
- GList *t;
- int i;
-
- for (i = 0, t = list; t; i++, t = t->next) {
- GNOME_Evolution_Composer_Recipient *recipient;
- char *address = (char *)t->data;
-
- recipient = recipients->_buffer + i;
- recipient->name = CORBA_string_dup ("");
- recipient->address = CORBA_string_dup (address ? address : "");
- }
-}
-
-static void
-free_list (GList *list)
-{
- for (; list; list = list->next) {
- g_free (list->data);
- }
-}
-
-gboolean
-e_summary_url_mail_compose (ESummary *esummary,
- const char *url)
-{
- CORBA_Object composer;
- CORBA_Environment ev;
- char *full_address, *address, *proto, *q;
- GNOME_Evolution_Composer_RecipientList *to, *cc, *bcc;
- GNOME_Evolution_Composer_Recipient *recipient;
- CORBA_char *subject;
- GList *gcc = NULL, *gbcc = NULL;
- char *gsubject = NULL;
-
- CORBA_exception_init (&ev);
-
- /* FIXME: Query for IIDs? */
- composer = oaf_activate_from_id ((char *)COMPOSER_IID, 0, NULL, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- CORBA_exception_free (&ev);
- g_warning ("Unable to start composer component!");
- return FALSE;
- }
-
- if ( (proto = strstr (url, "://")) != NULL){
- full_address = proto + 3;
- } else {
- if (strncmp (url, "mailto:", 7) == 0)
- full_address = (char *) (url + 7);
- else
- full_address = (char *) url;
- }
-
- q = strchr (full_address, '?');
- if (q != NULL) {
- address = g_strndup (full_address, q - full_address);
- parse_mail_url (q + 1, &gcc, &gbcc, &gsubject);
- } else {
- address = g_strdup (full_address);
- }
-
- to = GNOME_Evolution_Composer_RecipientList__alloc ();
- to->_length = 1;
- to->_maximum = 1;
- to->_buffer = CORBA_sequence_GNOME_Evolution_Composer_Recipient_allocbuf (to->_maximum);
-
- recipient = to->_buffer;
- recipient->name = CORBA_string_dup ("");
- recipient->address = CORBA_string_dup (address?address:"");
- g_free (address);
-
- /* FIXME: Get these out of the URL */
- cc = GNOME_Evolution_Composer_RecipientList__alloc ();
- cc->_length = g_list_length (gcc);
- cc->_maximum = cc->_length;
- cc->_buffer = CORBA_sequence_GNOME_Evolution_Composer_Recipient_allocbuf (cc->_maximum);
-
- recipients_from_list (cc, gcc);
- free_list (gcc);
- g_list_free (gcc);
-
- bcc = GNOME_Evolution_Composer_RecipientList__alloc ();
- bcc->_length = g_list_length (gbcc);
- bcc->_maximum = bcc->_length;
- bcc->_buffer = CORBA_sequence_GNOME_Evolution_Composer_Recipient_allocbuf (bcc->_maximum);
-
- recipients_from_list (bcc, gbcc);
- free_list (gbcc);
- g_list_free (gbcc);
-
- subject = CORBA_string_dup (gsubject ? gsubject : "");
- g_free (gsubject);
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_Composer_setHeaders (composer, to, cc, bcc, subject, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- CORBA_exception_free (&ev);
- CORBA_free (to);
- CORBA_free (cc);
- CORBA_free (bcc);
- CORBA_free (subject);
-
- g_warning ("%s(%d): Error setting headers", __FUNCTION__, __LINE__);
- return FALSE;
- }
-
- CORBA_free (to);
- CORBA_free (cc);
- CORBA_free (bcc);
- CORBA_free (subject);
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_Composer_show (composer, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- CORBA_exception_free (&ev);
- g_warning ("%s(%d): Error showing composer", __FUNCTION__, __LINE__);
- return FALSE;
- }
-
- CORBA_exception_free (&ev);
-
- /* FIXME: Free the composer? */
-
- return TRUE;
-}
-
-gboolean
-e_summary_url_exec (const char *exec)
-{
- gchar **exec_array;
- int argc;
-
- exec_array = g_strsplit (exec, " ", 0);
-
- argc = 0;
- while (exec_array[argc] != NULL) {
- argc++;
- }
-
- gnome_execute_async (NULL, argc, exec_array);
-
- g_strfreev (exec_array);
- return TRUE;
-}
-
-static char *
-e_summary_url_describe (const char *uri,
- ESummary *esummary)
-{
- ESummaryProtocol protocol;
- char *contents, *description, *tmp;
-
- protocol = get_protocol (uri);
- contents = parse_uri (uri, protocol, esummary);
- tmp = e_utf8_to_locale_string (contents);
-
- description = g_strdup_printf (_(descriptions[protocol]), tmp);
- g_free (tmp);
- g_free (contents);
-
- return description;
-}
-
-void
-e_summary_url_over (GtkHTML *html,
- const char *uri,
- ESummary *esummary)
-{
- char *description;
-
- if (uri != NULL) {
- description = e_summary_url_describe (uri, esummary);
- e_summary_set_message (esummary, description, FALSE);
- g_free (description);
- } else {
- e_summary_unset_message (esummary);
- }
-}
-
-/* Cache stuff */
-#if HAVECACHE
-void
-e_summary_url_init_cache (void)
-{
- if (image_cache != NULL)
- return;
-
- image_cache = e_summary_cache_new ();
-}
-
-void
-e_summary_url_cache_destroy (void)
-{
- if (image_cache == NULL)
- return;
-
- gtk_object_unref (GTK_OBJECT (image_cache));
-
- image_cache = NULL;
-}
-#endif
diff --git a/executive-summary/component/e-summary-url.h b/executive-summary/component/e-summary-url.h
deleted file mode 100644
index 03db66353b..0000000000
--- a/executive-summary/component/e-summary-url.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-url.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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_URL_H__
-#define _E_SUMMARY_URL_H__
-
-void e_summary_url_request (GtkHTML *html,
- const gchar *url,
- GtkHTMLStream *stream);
-void e_summary_url_click (GtkWidget *widget,
- const char *url,
- ESummary *esummary);
-void e_summary_url_over (GtkHTML *html,
- const char *uri,
- ESummary *esummary);
-
-#endif
diff --git a/executive-summary/component/e-summary-util.c b/executive-summary/component/e-summary-util.c
deleted file mode 100644
index 4f7b5f5d6d..0000000000
--- a/executive-summary/component/e-summary-util.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-url.c
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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.
- */
-
-#include <e-summary-util.h>
-
-#include <string.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-
-#include <glib.h>
-#include <libgnome/gnome-defs.h>
-#include <libgnome/gnome-util.h>
-
-/**
- * e_pixmap_file:
- * @filename: Filename of pixmap.
- *
- * Finds @filename in the Evolution or GNOME installation dir.
- *
- * Returns: A newly allocated absolute path to @filename, or NULL
- * if it cannot be found.
- */
-char *
-e_pixmap_file (const char *filename)
-{
- char *ret;
- char *edir;
-
- if (g_file_exists (filename)) {
- ret = g_strdup (filename);
-
- return ret;
- }
-
- /* 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;
- }
- g_free (edir);
-
- /* 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;
- }
- g_free (edir);
-
- /* Fall back to the gnome_pixmap_file */
- return gnome_pixmap_file (filename);
-}
-
-/**
- * e_summary_rm_dir:
- * @path: Full path to the directory or file to be removed.
- *
- * Deletes everything in fullpath.
- */
-void
-e_summary_rm_dir (const char *path)
-{
- DIR *base;
- struct stat statbuf;
- struct dirent *contents;
-
- stat (path, &statbuf);
- if (!S_ISDIR (statbuf.st_mode)) {
- /* Not a directory */
- g_warning ("Removing: %s", path);
- unlink (path);
- return;
- } else {
- g_warning ("Opening: %s", path);
- base = opendir (path);
-
- if (base == NULL)
- return;
-
- contents = readdir (base);
- while (contents != NULL) {
- char *fullpath;
-
- if (strcmp (contents->d_name, ".") == 0||
- strcmp (contents->d_name, "..") ==0) {
- contents = readdir (base);
- continue;
- }
-
- fullpath = g_concat_dir_and_file (path, contents->d_name);
- e_summary_rm_dir (fullpath);
- g_free (fullpath);
-
- contents = readdir (base);
- }
-
- closedir (base);
- rmdir (path);
- }
-}
-
diff --git a/executive-summary/component/e-summary-util.h b/executive-summary/component/e-summary-util.h
deleted file mode 100644
index 185bafcf1f..0000000000
--- a/executive-summary/component/e-summary-util.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-util.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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_UTIL_H__
-#define _E_SUMMARY_UTIL_H__
-
-char *e_pixmap_file (const char *filename);
-void e_summary_rm_dir (const char *filename);
-
-#endif
diff --git a/executive-summary/component/e-summary.c b/executive-summary/component/e-summary.c
deleted file mode 100644
index 7a33ba14ef..0000000000
--- a/executive-summary/component/e-summary.c
+++ /dev/null
@@ -1,1340 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary.c
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <glib.h>
-#include <libgnome/gnome-defs.h>
-#include <libgnome/gnome-i18n.h>
-#include <libgnome/gnome-util.h>
-#include <bonobo/bonobo-object.h>
-#include <bonobo/bonobo-event-source.h>
-#include <bonobo/bonobo-listener.h>
-#include <bonobo/bonobo-property-bag.h>
-#include <bonobo/bonobo-property-control.h>
-#include <bonobo/bonobo-storage.h>
-#include <bonobo/bonobo-stream-client.h>
-
-#include <gtkhtml/gtkhtml.h>
-#include <gtkhtml/gtkhtml-embedded.h>
-#include <gtkhtml/gtkhtml-stream.h>
-#include <gtkhtml/htmlengine.h>
-#include <gtkhtml/htmlselection.h>
-
-#include <gal/util/e-util.h>
-#include <gal/widgets/e-gui-utils.h>
-#include <libgnomevfs/gnome-vfs.h>
-
-#include "e-summary.h"
-#include "e-summary-factory.h"
-#include "e-summary-util.h"
-#include "e-summary-url.h"
-
-#include <evolution-services/executive-summary-component.h>
-#include <evolution-services/executive-summary-component-factory-client.h>
-#include <evolution-services/executive-summary-html-view.h>
-
-#define PARENT_TYPE (gtk_vbox_get_type ())
-
-#define STORAGE_TYPE "fs"
-#define IID_FILE "oaf.id"
-#define DATA_FILE "data"
-
-/* From component-factory.c */
-extern char *evolution_dir;
-
-static GtkObjectClass *e_summary_parent_class;
-
-struct _ESummaryPrivate {
- GNOME_Evolution_Shell shell;
- GNOME_Evolution_ShellView shell_view_interface;
-
- GtkWidget *html_scroller;
- GtkWidget *html;
-
- guint idle;
-
- GtkHTMLStream *stream;
- gboolean grabbed;
-
- GList *window_list;
-
- char *header;
- int header_len;
- char *footer;
- int footer_len;
-};
-
-static gboolean on_object_requested (GtkHTML *html,
- GtkHTMLEmbedded *eb,
- ESummary *summary);
-static void e_summary_save_state (ESummary *esummary,
- const char *path);
-static void e_summary_load_state (ESummary *esummary,
- const char *path);
-
-/* GtkObject methods */
-
-static void
-e_summary_destroy (GtkObject *object)
-{
- ESummary *esummary = E_SUMMARY (object);
- ESummaryPrivate *priv;
- GList *l;
- char *prefix;
-
- priv = esummary->private;
- if (priv == NULL)
- return;
-
- prefix = g_concat_dir_and_file (evolution_dir, "config/");
- e_summary_save_state (esummary, prefix);
- g_free (prefix);
-
- e_summary_prefs_free (esummary->prefs);
- for (l = priv->window_list; l; l = l->next)
- e_summary_window_free (l->data);
- g_list_free (priv->window_list);
-
- g_free (priv->header);
- g_free (priv->footer);
- 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 void
-e_summary_start_load (ESummary *esummary)
-{
- ESummaryPrivate *priv;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- priv = esummary->private;
-
- priv->stream = gtk_html_begin (GTK_HTML (priv->html));
-
- /* HTML hacks */
- /* Hack to stop page returning to the top */
- GTK_HTML (priv->html)->engine->newPage = FALSE;
- /* Hack to make the border width of the page 0 */
- GTK_HTML (priv->html)->engine->leftBorder = 0;
- GTK_HTML (priv->html)->engine->rightBorder = 0;
- GTK_HTML (priv->html)->engine->topBorder = 0;
- GTK_HTML (priv->html)->engine->bottomBorder = 0;
-}
-
-static void
-load_default_header (ESummary *esummary)
-{
- ESummaryPrivate *priv;
- char *def = "<html><body bgcolor=\"#ffffff\">"
- "<table width=\"100%\"><tr><td align=\"right\">"
- "<img src=\"ccsplash.png\"></td></tr></table>"
- "<table><tr><td><a href=\"exec://bug-buddy\"><img src=\"file://gnome-spider.png\" width=\"24\" height=\"24\" border=\"0\">"
- "</a></td><td><a href=\"exec://bug-buddy\">Submit a bug report"
- "</a></td></tr></table><hr>";
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- priv = esummary->private;
-
- g_return_if_fail (priv->stream != NULL);
-
- gtk_html_write (GTK_HTML (priv->html), priv->stream, def, strlen (def));
-}
-static void
-load_default_footer (ESummary *esummary)
-{
- ESummaryPrivate *priv;
- char *footer = "<hr><p align=\"right\">All Executive Summary comments to <a href=\"mailto:iain@ximian.com\">Iain Holmes (iain@ximian.com)</a></p></body></html>";
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- priv = esummary->private;
- gtk_html_write (GTK_HTML (priv->html), priv->stream,
- footer, strlen (footer));
-}
-
-static void
-e_summary_end_load (ESummary *esummary)
-{
- ESummaryPrivate *priv;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- priv = esummary->private;
- 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->prefs = NULL;
- esummary->tmp_prefs = NULL;
- esummary->private = g_new0 (ESummaryPrivate, 1);
- priv = esummary->private;
-
- priv->window_list = NULL;
- priv->idle = 0;
-
- /* 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_html_set_default_content_type (GTK_HTML (priv->html),
- "text/html; charset=utf-8");
- gtk_html_set_default_background_color (GTK_HTML (priv->html), &bgcolour);
- gtk_signal_connect (GTK_OBJECT (priv->html), "url-requested",
- GTK_SIGNAL_FUNC (e_summary_url_request), esummary);
- gtk_signal_connect (GTK_OBJECT (priv->html), "object-requested",
- GTK_SIGNAL_FUNC (on_object_requested), esummary);
- gtk_signal_connect (GTK_OBJECT (priv->html), "link-clicked",
- GTK_SIGNAL_FUNC (e_summary_url_click), esummary);
- gtk_signal_connect (GTK_OBJECT (priv->html), "on-url",
- GTK_SIGNAL_FUNC (e_summary_url_over), esummary);
-
- gtk_container_add (GTK_CONTAINER (priv->html_scroller), priv->html);
- gtk_widget_show_all (priv->html_scroller);
-
- e_summary_queue_rebuild (esummary);
-
- /* Pack stuff */
- gtk_box_pack_start (GTK_BOX (esummary), priv->html_scroller,
- TRUE, TRUE, 0);
-}
-
-E_MAKE_TYPE (e_summary, "ESummary", ESummary, e_summary_class_init,
- e_summary_init, PARENT_TYPE);
-
-GtkWidget *
-e_summary_new (const GNOME_Evolution_Shell shell)
-{
- ESummary *esummary;
- ESummaryPrivate *priv;
- char *path;
-
- esummary = gtk_type_new (e_summary_get_type ());
- priv = esummary->private;
-
- priv->shell = shell;
-
- /* Restore services */
- path = g_concat_dir_and_file (evolution_dir,
- "config");
- e_summary_load_state (esummary, path);
- g_free (path);
-
- return GTK_WIDGET (esummary);
-}
-
-#if 0
-static void
-control_unrealize (GtkHTMLEmbedded *eb,
- GtkWidget *widget)
-{
- g_print ("Removing\n");
-}
-
-static void
-being_unrealized (GtkWidget *widget,
- GtkHTMLEmbedded *eb)
-{
- g_warning ("Widget is being unrealized");
- gtk_container_remove (GTK_CONTAINER (eb), widget);
-}
-
-static void
-being_realized (GtkWidget *widget,
- gpointer user_data)
-{
- gdk_window_ref (widget->window);
-}
-#endif
-
-static gboolean
-on_object_requested (GtkHTML *html,
- GtkHTMLEmbedded *eb,
- ESummary *esummary)
-{
-#if 0
- static GtkWidget *widget = NULL;
- int id;
-
- if (sscanf (eb->classid, "cid:%d", &id) != 1) {
- g_warning ("Could not get the view id: eb->classid = %s",
- eb->classid);
- return FALSE;
- }
-
- if (widget == NULL || !GTK_IS_WIDGET (widget)) {
- g_print ("Create new\n");
- widget = executive_summary_component_view_get_widget (view);
-/* widget = gtk_button_new_with_label ("Hello?"); */
- gtk_signal_connect (GTK_OBJECT (widget), "realize",
- GTK_SIGNAL_FUNC (being_realized), NULL);
- gtk_signal_connect (GTK_OBJECT (widget), "unrealize",
- GTK_SIGNAL_FUNC (being_unrealized), eb);
- g_print ("New widget: %p\n", GTK_BIN (widget)->child);
- } else {
- g_print ("No new\n");
- }
-
- if (widget == NULL) {
- g_warning ("View %d has no GtkWidget.", id);
- return FALSE;
- }
-
- gtk_signal_connect (GTK_OBJECT (eb), "unrealize",
- GTK_SIGNAL_FUNC (control_unrealize), widget);
- gtk_widget_show_all (widget);
- gtk_widget_ref (widget);
-
- if (widget->parent == NULL)
- gtk_container_add (GTK_CONTAINER (eb), widget);
-
-#endif
- return TRUE;
-}
-
-/* Generates the window controls and works out
- if they should be disabled or not */
-static char *
-make_control_html (ESummaryWindow *window,
- int row,
- int col,
- int numwindows)
-{
- char *html, *tmp;
- int id = GPOINTER_TO_INT (window);
- gboolean config;
-
- config = TRUE;
-
- if (window->propertycontrol == CORBA_OBJECT_NIL)
- config = FALSE;
-
- html = g_strdup_printf ("<table><tr><td><a href=\"close://%d\">"
- "<img src=\"service-close.png\" border=\"0\">"
- "</a></td></tr><tr><td>", id);
-
- tmp = html;
- if (!config) {
- html = g_strdup_printf ("%s<img src=\"service-configure.png\">"
- "</td></tr></table>", tmp);
- } else {
- html = g_strdup_printf ("%s<a href=\"configure://%d\">"
- "<img src=\"service-configure.png\" border=\"0\">"
- "</a></td></tr></table>", tmp, id);
- }
- g_free (tmp);
-
- return html;
-}
-
-static void
-e_summary_display_window_title (ESummary *esummary,
- ESummaryWindow *window,
- int row,
- int col,
- int numwindows)
-{
- ESummaryPrivate *priv;
- char *title_html;
- char *control_html;
- char *title_colour[2] = {"bac1b6",
- "cdd1c7"};
-
- priv = esummary->private;
-
- control_html = make_control_html (window, row, col, numwindows);
- title_html = g_strdup_printf ("<td bgcolor=\"#%s\">"
- "<table width=\"100%%\" height=\"100%%\"><tr><td>"
- "<img src=\"%s\" height=\"48\"></td>"
- "<td nowrap align=\"center\" width=\"100%%\">"
- "<b>%s</b></td><td>%s</td></tr></table></td>",
- title_colour[col % 2], window->icon,
- window->title, control_html);
- g_free (control_html);
-
- gtk_html_write (GTK_HTML (priv->html), priv->stream, title_html,
- strlen (title_html));
- g_free (title_html);
-}
-
-static void
-e_summary_display_window (ESummary *esummary,
- ESummaryWindow *window,
- int row,
- int col,
- int numwindows)
-{
- ESummaryPrivate *priv;
- char *footer = "</td>";
- char *header;
- char *colour[2] = {"e6e8e4",
- "edeeeb"};
-
- priv = esummary->private;
-
- header = g_strdup_printf ("<td bgcolor=\"%s\" valign=\"top\">", colour[col % 2]);
- gtk_html_write (GTK_HTML (priv->html), priv->stream, header, strlen (header));
- g_free (header);
-
- if (window->html != CORBA_OBJECT_NIL) {
- char *html = NULL;
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- html = GNOME_Evolution_Summary_HTMLView_getHtml (window->html,
- &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- CORBA_exception_free (&ev);
- g_warning ("Cannot get HTML.");
- if (html)
- CORBA_free (html);
- } else {
- CORBA_exception_free (&ev);
-
- gtk_html_write (GTK_HTML (priv->html), priv->stream,
- html, strlen (html));
- CORBA_free (html);
- }
- } else {
-#if 0
- char *body_cid;
-
- body_cid = g_strdup_printf ("<object classid=\"cid:%d\"></object>", id);
- gtk_html_write (GTK_HTML (priv->html), priv->stream,
- body_cid, strlen (body_cid));
- g_free (body_cid);
-#endif
- }
-
- gtk_html_write (GTK_HTML (priv->html), priv->stream,
- footer, strlen (footer));
-}
-
-static int
-e_summary_rebuild_page (ESummary *esummary)
-{
- ESummaryPrivate *priv;
- GList *windows;
- char *service_table = "<table numcols=\"%d\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" height=\"100%%\" width=\"100%%\">";
- char *tmp;
- int numwindows, numrows;
- int i, j, k;
- int columns;
-
- g_return_val_if_fail (esummary != NULL, FALSE);
- g_return_val_if_fail (IS_E_SUMMARY (esummary), FALSE);
-
- priv = esummary->private;
-
- if (priv->idle == 0) {
- g_warning ("esummary->private->idle == 0! This means that "
- "e_summary_rebuild_page was called by itself and "
- "not queued. You should use e_summary_queue_rebuild "
- "instead.");
- return FALSE;
- }
-
- /* If there is a selection, don't redraw the page so that the selection
- isn't cleared */
- if (GTK_HTML (priv->html)->in_selection == TRUE ||
- html_engine_is_selection_active (GTK_HTML (priv->html)->engine) == TRUE)
- return FALSE;
-
- gtk_layout_freeze (GTK_LAYOUT (priv->html));
- e_summary_start_load (esummary);
-
- if (priv->header == NULL || *priv->header == '\0') {
- load_default_header (esummary);
- } else {
- gtk_html_write (GTK_HTML (priv->html), priv->stream,
- priv->header, priv->header_len);
- }
-
- /* Load the start of the services */
- tmp = g_strdup_printf (service_table, esummary->prefs->columns);
- gtk_html_write (GTK_HTML (priv->html), priv->stream, tmp, strlen (tmp));
- g_free (tmp);
- /* Load each of the services */
- numwindows = g_list_length (priv->window_list);
-
- columns = esummary->prefs->columns;
-
- windows = priv->window_list;
- if (numwindows % columns == 0)
- numrows = numwindows / columns;
- else
- numrows = numwindows / columns + 1;
-
- for (i = 0; i < numrows; i++) {
- GList *window = windows;
-
- /* Do the same row twice:
- Once for the title, once for the contents */
- for (j = 0; j < 2; j++) {
- int limit;
-
- gtk_html_write (GTK_HTML (priv->html), priv->stream,
- "<tr>", 4);
- /* For each window on row i */
- limit = MIN (columns, (numwindows - (i * columns)));
- for (k = 0; k < limit; k++) {
-
- if (window == NULL)
- break;
-
- if (j == 0) {
- e_summary_display_window_title (esummary,
- window->data,
- k, k,
- numwindows);
- } else {
- e_summary_display_window (esummary,
- window->data,
- k, k,
- numwindows);
- }
-
- if (window != NULL)
- window = window->next;
-
- if (window == NULL)
- break;
- }
-
- gtk_html_write (GTK_HTML (priv->html), priv->stream,
- "</tr>", 5);
- if (j == 0)
- window = windows;
- else {
- if (window)
- windows = window;
- else
- break;
- }
- }
- }
- gtk_html_write (GTK_HTML (priv->html), priv->stream, "</tr></table>", 13);
-
- if (priv->footer == NULL || *priv->footer == '\0') {
- load_default_footer (esummary);
- } else {
- gtk_html_write (GTK_HTML (priv->html), priv->stream,
- priv->footer, priv->footer_len);
- }
-
- e_summary_end_load (esummary);
- gtk_layout_thaw (GTK_LAYOUT (priv->html));
-
- priv->idle = 0;
- return FALSE;
-}
-
-/* This is the function that should be called instead of
- e_summary_queue_rebuild. This prevents multiple
- rebuilds happening together. */
-void
-e_summary_queue_rebuild (ESummary *esummary)
-{
- ESummaryPrivate *priv;
-
- priv = esummary->private;
- if (priv->idle != 0)
- return;
-
- priv->idle = g_idle_add ((GSourceFunc) e_summary_rebuild_page, esummary);
-}
-
-static void
-listener_event (BonoboListener *listener,
- char *event_name,
- BonoboArg *event_data,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- ESummaryWindow *window = (ESummaryWindow *) user_data;
-
- if (strcmp (event_name, "Bonobo/Property:change:window_title") == 0) {
- if (window->title != NULL)
- g_free (window->title);
-
- window->title = g_strdup (BONOBO_ARG_GET_STRING (event_data));
- e_summary_queue_rebuild (window->esummary);
- } else if (strcmp (event_name, "Bonobo/Property:change:window_icon") == 0) {
- if (window->icon != NULL)
- g_free (window->icon);
-
- window->icon = g_strdup (BONOBO_ARG_GET_STRING (event_data));
- e_summary_queue_rebuild (window->esummary);
- } else if (strcmp (event_name, EXECUTIVE_SUMMARY_HTML_VIEW_HTML_CHANGED) == 0) {
- e_summary_queue_rebuild (window->esummary);
- }
-
- return;
-}
-
-ESummaryWindow *
-e_summary_add_service (ESummary *esummary,
- GNOME_Evolution_Summary_Component component,
- const char *iid)
-{
- ESummaryWindow *window;
- ESummaryPrivate *priv;
- Bonobo_Unknown unknown = CORBA_OBJECT_NIL;
- Bonobo_Listener listener;
- CORBA_Environment ev;
-
- g_return_val_if_fail (esummary != NULL, NULL);
- g_return_val_if_fail (IS_E_SUMMARY (esummary), NULL);
- g_return_val_if_fail (component != CORBA_OBJECT_NIL, NULL);
-
- priv = esummary->private;
-
- window = g_new0 (ESummaryWindow, 1);
- window->component = component;
- window->iid = g_strdup (iid);
- window->esummary = esummary;
-
- /* See what interfaces our component supports */
- CORBA_exception_init (&ev);
- unknown = Bonobo_Unknown_queryInterface (component,
- "IDL:Bonobo/Control:1.0", &ev);
- window->control = (Bonobo_Control) unknown;
-
- unknown = Bonobo_Unknown_queryInterface (component,
- "IDL:GNOME/Evolution/Summary/HTMLView:1.0",
- &ev);
- window->html = (GNOME_Evolution_Summary_HTMLView) unknown;
-
- /* Check at least one of the above interfaces was supported */
- if (window->html == CORBA_OBJECT_NIL &&
- window->control == CORBA_OBJECT_NIL) {
- CORBA_Environment ev2;
- g_warning ("This component does not support either"
- "Bonobo/Control:1.0 or GNOME/Evolution/Summary/HTMLView:1.0");
-
- CORBA_exception_init (&ev2);
- CORBA_Object_release (component, &ev2);
- CORBA_exception_free (&ev2);
-
- g_free (window);
- return NULL;
- }
-
- unknown = Bonobo_Unknown_queryInterface (component,
- "IDL:Bonobo/PropertyBag:1.0",
- &ev);
- window->propertybag = (Bonobo_PropertyBag) unknown;
-
- window->event_source = Bonobo_Unknown_queryInterface(window->propertybag,
- "IDL:Bonobo/EventSource:1.0", &ev);
- if (window->event_source == CORBA_OBJECT_NIL) {
- g_warning ("There is no Bonobo::EventSource interface");
-
- /* FIXME: Free whatever objects exist */
- g_free (window);
- return NULL;
- }
-
- window->listener = bonobo_listener_new (NULL, NULL);
- gtk_signal_connect (GTK_OBJECT (window->listener), "event_notify",
- GTK_SIGNAL_FUNC (listener_event), window);
- listener = bonobo_object_corba_objref (BONOBO_OBJECT (window->listener));
- window->listener_id = Bonobo_EventSource_addListener (window->event_source, listener, &ev);
-
- unknown = Bonobo_Unknown_queryInterface (component,
- "IDL:Bonobo/PersistStream:1.0",
- &ev);
- window->persiststream = (Bonobo_PersistStream) unknown;
-
- unknown = Bonobo_Unknown_queryInterface (component,
- "IDL:Bonobo/PropertyControl:1.0",
- &ev);
- window->propertycontrol = (Bonobo_PropertyControl) unknown;
-
- /* Cache the title and icon */
- window->title = bonobo_property_bag_client_get_value_string (window->propertybag,
- "window_title",
- NULL);
- g_print ("title: %s\n", window->title);
- window->icon = bonobo_property_bag_client_get_value_string (window->propertybag,
- "window_icon", NULL);
- g_print ("icon: %s\n", window->icon);
-
- CORBA_exception_free (&ev);
- priv->window_list = g_list_append (priv->window_list, window);
-
- return window;
-}
-
-
-ESummaryWindow *
-e_summary_embed_service_from_id (ESummary *esummary,
- const char *obj_id)
-{
- GNOME_Evolution_Summary_Component component;
- ExecutiveSummaryComponentFactoryClient *client;
- ESummaryWindow *window;
-
- client = executive_summary_component_factory_client_new (obj_id);
-
- component = executive_summary_component_factory_client_create_view (client);
-
- /* Don't need the client any more */
- bonobo_object_unref (BONOBO_OBJECT (client));
-
- window = e_summary_add_service (esummary, component, obj_id);
- e_summary_queue_rebuild (esummary);
-
- return window;
-}
-
-void
-e_summary_window_free (ESummaryWindow *window)
-{
- CORBA_Environment ev;
-
- g_return_if_fail (window != NULL);
-
- g_free (window->iid);
- g_free (window->icon);
- g_free (window->title);
-
- CORBA_exception_init (&ev);
-
- if (window->control != CORBA_OBJECT_NIL) {
- bonobo_object_release_unref (window->control, &ev);
- }
-
- if (window->event_source != CORBA_OBJECT_NIL) {
- Bonobo_EventSource_removeListener (window->event_source,
- window->listener_id,
- &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_warning ("CORBA ERROR: %s", CORBA_exception_id (&ev));
- }
- bonobo_object_release_unref (window->event_source, &ev);
- }
-
- bonobo_object_release_unref (window->propertybag, &ev);
- bonobo_object_release_unref (window->persiststream, &ev);
- bonobo_object_release_unref (window->propertycontrol, &ev);
- bonobo_object_unref (BONOBO_OBJECT (window->listener));
- bonobo_object_release_unref (window->html, &ev);
-
- bonobo_object_release_unref (window->component, &ev);
- CORBA_exception_free (&ev);
- g_free (window);
-}
-
-void
-e_summary_remove_window (ESummary *esummary,
- ESummaryWindow *window)
-{
- ESummaryPrivate *priv;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
- g_return_if_fail (window != NULL);
-
- priv = esummary->private;
- priv->window_list = g_list_remove (priv->window_list, window);
- e_summary_window_free (window);
-}
-
-void
-e_summary_set_shell_view_interface (ESummary *esummary,
- GNOME_Evolution_ShellView svi)
-{
- ESummaryPrivate *priv;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
- g_return_if_fail (svi != CORBA_OBJECT_NIL);
-
- priv = esummary->private;
- priv->shell_view_interface = svi;
-}
-
-/* Wrappers for GNOME_Evolution_ShellView */
-void
-e_summary_set_message (ESummary *esummary,
- const char *message,
- gboolean busy)
-{
- ESummaryPrivate *priv;
- GNOME_Evolution_ShellView svi;
- CORBA_Environment ev;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- priv = esummary->private;
-
- svi = priv->shell_view_interface;
- if (svi == NULL)
- return;
-
- CORBA_exception_init (&ev);
- if (message != NULL)
- GNOME_Evolution_ShellView_setMessage (svi, message, busy, &ev);
- else
- GNOME_Evolution_ShellView_setMessage (svi, "", busy, &ev);
- CORBA_exception_free (&ev);
-}
-
-void
-e_summary_unset_message (ESummary *esummary)
-{
- ESummaryPrivate *priv;
- GNOME_Evolution_ShellView svi;
- CORBA_Environment ev;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- priv = esummary->private;
-
- svi = priv->shell_view_interface;
- if (svi == NULL)
- return;
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_ShellView_unsetMessage (svi, &ev);
- CORBA_exception_free (&ev);
-}
-
-void
-e_summary_change_current_view (ESummary *esummary,
- const char *uri)
-{
- ESummaryPrivate *priv;
- GNOME_Evolution_ShellView svi;
- CORBA_Environment ev;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- priv = esummary->private;
-
- svi = priv->shell_view_interface;
- if (svi == NULL)
- return;
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_ShellView_changeCurrentView (svi, uri, &ev);
- CORBA_exception_free (&ev);
-}
-
-void
-e_summary_set_title (ESummary *esummary,
- const char *title)
-{
- ESummaryPrivate *priv;
- GNOME_Evolution_ShellView svi;
- CORBA_Environment ev;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- priv = esummary->private;
-
- svi = priv->shell_view_interface;
- if (svi == NULL)
- return;
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_ShellView_setTitle (svi, title, &ev);
- CORBA_exception_free (&ev);
-}
-
-static void
-e_summary_load_page (ESummary *esummary)
-{
- ESummaryPrivate *priv;
- GnomeVFSHandle *handle = NULL;
- GnomeVFSResult result;
- GtkWidget *toplevel;
- GString *string;
- char *str, *comment;
- char *filename;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- priv = esummary->private;
-
- /* Pass NULL to reset the page to the default */
- if ((esummary->prefs->page) == NULL ||
- *(esummary->prefs->page) == '\0') {
- filename = g_concat_dir_and_file (EVOLUTION_DATADIR, "/evolution/summary.html");
- } else {
- filename = g_strdup (esummary->prefs->page);
- }
-
- toplevel = gtk_widget_get_toplevel (GTK_WIDGET (esummary));
- string = g_string_new ("");
- result = gnome_vfs_open (&handle, filename, GNOME_VFS_OPEN_READ);
- if (result != GNOME_VFS_OK) {
- e_notice (GTK_WINDOW (toplevel), GNOME_MESSAGE_BOX_WARNING,
- _("Cannot open the HTML file:\n%s"), filename);
- g_free (filename);
- return;
- }
-
- g_free (filename);
- while (1) {
- char buffer[4096];
- GnomeVFSFileSize size;
-
- memset (buffer, 0x00, 4096);
- result = gnome_vfs_read (handle, buffer, 4096, &size);
- if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) {
- e_notice (GTK_WINDOW (toplevel), GNOME_MESSAGE_BOX_WARNING,
- _("Error reading data:\n%s"),
- gnome_vfs_result_to_string (result));
- gnome_vfs_close (handle);
- return;
- }
- if (size == 0)
- break; /* EOF */
-
- string = g_string_append (string, buffer);
- }
-
- gnome_vfs_close (handle);
- str = string->str;
- g_string_free (string, FALSE);
-
- comment = strstr (str, "<!-- EVOLUTION EXECUTIVE SUMMARY SERVICES DO NOT REMOVE -->");
- if (comment == NULL) {
- e_notice (NULL, GNOME_MESSAGE_BOX_WARNING,
- _("File does not have a place for the services.\n"));
- g_free (str);
- return;
- }
-
- if (priv->header != NULL)
- g_free (priv->header);
- priv->header = g_strndup (str, comment - str);
- priv->header_len = strlen (priv->header);
-
- if (priv->footer != NULL)
- g_free (priv->footer);
- priv->footer = g_strdup (comment);
- priv->footer_len = strlen (priv->footer);
- g_free (str);
-}
-
-static char *
-load_component_id_stream_read (Bonobo_Stream stream,
- CORBA_Environment *ev)
-{
- Bonobo_Stream_iobuf *buffer;
- GString *str;
- char *ans;
-
- str = g_string_sized_new (256);
-#define READ_CHUNK_SIZE 65536
- do {
- int i;
- Bonobo_Stream_read (stream, READ_CHUNK_SIZE, &buffer, ev);
- if (ev->_major != CORBA_NO_EXCEPTION)
- return NULL;
-
- /* FIXME: make better PLEASE!!!*/
- for (i = 0; i < buffer->_length; i++)
- g_string_append_c (str, buffer->_buffer[i]);
-
- if (buffer->_length <= 0)
- break;
- CORBA_free (buffer);
- } while (1);
-#undef READ_CHUNK_SIZE
- CORBA_free (buffer);
-
- ans = str->str;
- g_string_free (str, FALSE);
-
- return ans;
-}
-
-static char *
-load_component_id (Bonobo_Storage corba_storage,
- CORBA_Environment *ev)
-{
- Bonobo_Stream corba_stream;
- char *iid;
-
- corba_stream = Bonobo_Storage_openStream (corba_storage, IID_FILE,
- Bonobo_Storage_READ, ev);
- if (ev->_major != CORBA_NO_EXCEPTION)
- return NULL;
-
- if (corba_stream) {
- iid = load_component_id_stream_read (corba_stream, ev);
- Bonobo_Unknown_unref (corba_stream, ev);
- CORBA_Object_release (corba_stream, ev);
- } else {
- g_warning ("Cannot find `%s'", IID_FILE);
- return NULL;
- }
-
- return iid;
-}
-
-static void
-load_component (ESummary *esummary,
- BonoboStorage *storage,
- int index)
-{
- char *curdir;
- char *iid;
- Bonobo_Storage corba_subdir;
- Bonobo_Storage corba_storage;
- ESummaryWindow *window;
- CORBA_Environment ev;
-
- curdir = g_strdup_printf ("%08d", index);
- corba_storage = bonobo_object_corba_objref (BONOBO_OBJECT (storage));
- CORBA_exception_init (&ev);
-
- corba_subdir = Bonobo_Storage_openStorage (corba_storage, curdir,
- Bonobo_Storage_READ, &ev);
- if (corba_subdir == CORBA_OBJECT_NIL) {
- g_free (curdir);
- return;
- }
-
- iid = load_component_id (corba_subdir, &ev);
-
- if (iid) {
- Bonobo_Stream corba_stream;
-
- window = e_summary_embed_service_from_id (esummary, iid);
- if (window) {
- if (window->persiststream) {
- corba_stream = Bonobo_Storage_openStream
- (corba_subdir,
- DATA_FILE,
- Bonobo_Storage_READ |
- Bonobo_Storage_CREATE, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_print ("Gah");
- return;
- }
-
- Bonobo_PersistStream_load (window->persiststream,
- corba_stream,
- "", &ev);
- if (ev._major != CORBA_NO_EXCEPTION)
- g_warning ("Could not load `%s'", iid);
-
- bonobo_object_release_unref (corba_stream, &ev);
- }
- }
-
- g_free (iid);
- }
-
- bonobo_object_release_unref (corba_subdir, &ev);
- CORBA_exception_free (&ev);
- g_free (curdir);
-}
-
-void
-e_summary_reconfigure (ESummary *esummary)
-{
- e_summary_load_page (esummary);
- e_summary_queue_rebuild (esummary);
-}
-
-static void
-e_summary_load_state (ESummary *esummary,
- const char *path)
-{
- char *fullpath;
- BonoboStorage *storage;
- Bonobo_Storage corba_storage;
- Bonobo_Storage_DirectoryList *list;
- CORBA_Environment ev;
- int i;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- fullpath = g_strdup_printf ("%s/Executive-Summary", path);
- storage = bonobo_storage_open (STORAGE_TYPE, fullpath,
- Bonobo_Storage_READ |
- Bonobo_Storage_WRITE,
- 0664);
- if (storage != NULL) {
- CORBA_exception_init (&ev);
-
- corba_storage = bonobo_object_corba_objref (BONOBO_OBJECT (storage));
- list = Bonobo_Storage_listContents (corba_storage, "/", 0, &ev);
- if (list) {
- for (i = 0; i < list->_length; i++)
- load_component (esummary, storage, i);
-
- CORBA_free (list);
- }
-
- bonobo_object_unref (BONOBO_OBJECT (storage));
- CORBA_exception_free (&ev);
- }
-
- g_free (fullpath);
-
- /* Load the preferences */
- if (esummary->prefs != NULL)
- e_summary_prefs_free (esummary->prefs);
-
- esummary->prefs = e_summary_prefs_load (path);
- e_summary_reconfigure (esummary);
-}
-
-static void
-save_component (BonoboStorage *storage,
- ESummaryWindow *window,
- int index)
-{
- char *curdir = g_strdup_printf ("%08d", index);
- Bonobo_Storage corba_storage;
- Bonobo_Storage corba_subdir;
- CORBA_Environment ev;
-
- corba_storage = bonobo_object_corba_objref (BONOBO_OBJECT (storage));
- CORBA_exception_init (&ev);
-
- corba_subdir = Bonobo_Storage_openStorage (corba_storage, curdir,
- Bonobo_Storage_CREATE|
- Bonobo_Storage_WRITE|
- Bonobo_Storage_READ, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_warning ("Cannot create '%s'", curdir);
- g_free (curdir);
- } else {
- Bonobo_Stream corba_stream;
-
- g_free (curdir);
- corba_stream = Bonobo_Storage_openStream
- (corba_subdir, IID_FILE,
- Bonobo_Storage_CREATE|
- Bonobo_Storage_READ|
- Bonobo_Storage_WRITE, &ev);
-
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_warning ("EEK: %s", CORBA_exception_id (&ev));
- if (corba_subdir != CORBA_OBJECT_NIL)
- bonobo_object_release_unref (corba_subdir, &ev);
- CORBA_exception_free (&ev);
- return;
- }
-
- bonobo_stream_client_write_string (corba_stream,
- window->iid, TRUE, &ev);
- bonobo_object_release_unref (corba_stream, &ev);
-
- corba_stream = Bonobo_Storage_openStream (corba_subdir, DATA_FILE,
- Bonobo_Storage_CREATE,
- &ev);
- if (window->persiststream != CORBA_OBJECT_NIL) {
- Bonobo_PersistStream_save (window->persiststream,
- corba_stream, "", &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_warning ("Unable to save %s", window->iid);
- }
- }
-
- bonobo_object_release_unref (corba_stream, &ev);
- }
-
- if (corba_subdir != CORBA_OBJECT_NIL)
- bonobo_object_release_unref (corba_subdir, &ev);
- CORBA_exception_free (&ev);
-}
-
-static void
-e_summary_save_state (ESummary *esummary,
- const char *path)
-{
- ESummaryPrivate *priv;
- BonoboStorage *storage;
- Bonobo_Storage corba_storage;
- CORBA_Environment ev;
- GList *windows;
- char *fullpath;
- int i;
-
- g_return_if_fail (esummary != NULL);
- g_return_if_fail (IS_E_SUMMARY (esummary));
-
- priv = esummary->private;
-
- fullpath = g_strdup_printf("%s/Executive-Summary", path);
- g_print ("fullpath: %s\n", fullpath);
-
- e_summary_rm_dir (fullpath);
-
- storage = bonobo_storage_open (STORAGE_TYPE, fullpath,
- Bonobo_Storage_READ |
- Bonobo_Storage_WRITE |
- Bonobo_Storage_CREATE, 0660);
- g_return_if_fail (storage);
-
- CORBA_exception_init (&ev);
- corba_storage = bonobo_object_corba_objref (BONOBO_OBJECT (storage));
-
- i = 0;
- for (windows = priv->window_list; windows; windows = windows->next) {
- save_component (storage, windows->data, i);
- g_print ("IID: %s\n", ((ESummaryWindow *)windows->data)->iid);
- i++;
- }
-
- Bonobo_Storage_commit (corba_storage, &ev);
- CORBA_exception_free (&ev);
- bonobo_object_unref (BONOBO_OBJECT (storage));
-
- e_summary_prefs_save (esummary->prefs, path);
- g_free (fullpath);
-}
-
-void
-e_summary_window_move_left (ESummary *esummary,
- ESummaryWindow *window)
-{
- ESummaryPrivate *priv;
- GList *win_item, *grandparent;
- int position;
-
- priv = esummary->private;
-
- /* Need to cache this location */
- win_item = g_list_find (priv->window_list, window);
-
- /* Find the item 2 previous. */
- if (win_item->prev == NULL)
- return; /* Item was first, can't be moved left */
-
- grandparent = win_item->prev->prev;
-
- /* Remove it from the list */
- priv->window_list = g_list_remove_link (priv->window_list, win_item);
-
- /* Insert it after the grandparent */
- position = g_list_position (priv->window_list, grandparent);
- priv->window_list = g_list_insert (priv->window_list, win_item->data,
- position + 1);
- g_list_free_1 (win_item);
-}
-
-void
-e_summary_window_move_right (ESummary *esummary,
- ESummaryWindow *window)
-{
- ESummaryPrivate *priv;
- GList *win_item, *child;
- int position;
-
- priv = esummary->private;
-
- win_item = g_list_find (priv->window_list, window);
-
- if (win_item->next == NULL)
- return;
-
- child = win_item->next;
-
- priv->window_list = g_list_remove_link (priv->window_list, win_item);
-
- position = g_list_position (priv->window_list, child);
- priv->window_list = g_list_insert (priv->window_list, win_item->data,
- position + 1);
- g_list_free_1 (win_item);
-}
-
-void
-e_summary_window_move_up (ESummary *esummary,
- ESummaryWindow *window)
-{
- ESummaryPrivate *priv;
- GList *win_item;
- int position;
-
- priv = esummary->private;
-
- win_item = g_list_find (priv->window_list, window);
-
- position = g_list_position (priv->window_list, win_item);
- priv->window_list = g_list_remove_link (priv->window_list, win_item);
-
- priv->window_list = g_list_insert (priv->window_list, win_item->data,
- position - 3);
- g_list_free_1 (win_item);
-}
-
-void
-e_summary_window_move_down (ESummary *esummary,
- ESummaryWindow *window)
-{
- ESummaryPrivate *priv;
- GList *win_item;
- int position;
-
- priv = esummary->private;
-
- win_item = g_list_find (priv->window_list, window);
-
- position = g_list_position (priv->window_list, win_item);
- priv->window_list = g_list_remove_link (priv->window_list, win_item);
-
- priv->window_list = g_list_insert (priv->window_list, win_item->data,
- position + 3);
-}
diff --git a/executive-summary/component/e-summary.h b/executive-summary/component/e-summary.h
deleted file mode 100644
index 5469adc6fe..0000000000
--- a/executive-summary/component/e-summary.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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/gtkvbox.h>
-
-#include <bonobo/bonobo-object.h>
-#include <bonobo/bonobo-listener.h>
-#include <bonobo/bonobo-event-source.h>
-#include <Evolution.h>
-#include <evolution-services/Executive-Summary.h>
-
-#include "e-summary-prefs.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;
-typedef struct _ESummaryWindow ESummaryWindow;
-
-struct _ESummaryWindow {
- GNOME_Evolution_Summary_Component component;
-
- Bonobo_Control control;
- GNOME_Evolution_Summary_HTMLView html;
-
- Bonobo_PersistStream persiststream;
- Bonobo_PropertyBag propertybag;
- Bonobo_PropertyControl propertycontrol;
- Bonobo_EventSource event_source;
-
- /* Listener for the event_source */
- BonoboListener *listener;
- int listener_id;
-
- char *iid;
- char *title;
- char *icon;
-
- ESummary *esummary;
-};
-
-struct _ESummary {
- GtkVBox parent;
-
- ESummaryPrefs *prefs;
- ESummaryPrefs *tmp_prefs;
- ESummaryPrivate *private;
-};
-
-struct _ESummaryClass {
- GtkVBoxClass parent_class;
-};
-
-GtkType e_summary_get_type (void);
-GtkWidget *e_summary_new (const GNOME_Evolution_Shell shell);
-void e_summary_queue_rebuild (ESummary *esummary);
-
-void e_summary_window_free (ESummaryWindow *window);
-void e_summary_remove_window (ESummary *esummary,
- ESummaryWindow *window);
-ESummaryWindow *e_summary_add_service (ESummary *esummary,
- GNOME_Evolution_Summary_Component component,
- const char *iid);
-ESummaryWindow * e_summary_embed_service_from_id (ESummary *esummary,
- const char *obj_id);
-
-void e_summary_set_shell_view_interface (ESummary *summary,
- GNOME_Evolution_ShellView svi);
-void e_summary_set_message (ESummary *esummary,
- const char *message,
- gboolean busy);
-void e_summary_unset_message (ESummary *esummary);
-void e_summary_change_current_view (ESummary *esummary,
- const char *uri);
-void e_summary_set_title (ESummary *esummary,
- const char *title);
-
-void e_summary_window_move_left (ESummary *esummary,
- ESummaryWindow *window);
-void e_summary_window_move_right (ESummary *esummary,
- ESummaryWindow *window);
-void e_summary_window_move_up (ESummary *esummary,
- ESummaryWindow *window);
-void e_summary_window_move_down (ESummary *esummary,
- ESummaryWindow *window);
-void e_summary_reconfigure (ESummary *esummary);
-
-#endif
diff --git a/executive-summary/component/executive-summary-config.glade b/executive-summary/component/executive-summary-config.glade
deleted file mode 100644
index 17fd9b0e69..0000000000
--- a/executive-summary/component/executive-summary-config.glade
+++ /dev/null
@@ -1,223 +0,0 @@
-<?xml version="1.0"?>
-<GTK-Interface>
-
-<project>
- <name>Project1</name>
- <program_name>project1</program_name>
- <directory></directory>
- <source_directory>src</source_directory>
- <pixmaps_directory>pixmaps</pixmaps_directory>
- <language>C</language>
- <gnome_support>True</gnome_support>
- <gettext_support>True</gettext_support>
- <use_widget_names>False</use_widget_names>
- <output_main_file>True</output_main_file>
- <output_support_files>True</output_support_files>
- <output_build_files>True</output_build_files>
- <backup_source_files>True</backup_source_files>
- <main_source_file>interface.c</main_source_file>
- <main_header_file>interface.h</main_header_file>
- <handler_source_file>callbacks.c</handler_source_file>
- <handler_header_file>callbacks.h</handler_header_file>
- <support_source_file>support.c</support_source_file>
- <support_header_file>support.h</support_header_file>
- <translatable_strings_file></translatable_strings_file>
-</project>
-
-<widget>
- <class>GnomePropertyBox</class>
- <name>summaryprefs</name>
- <cxx_use_heap>True</cxx_use_heap>
-
- <widget>
- <class>GtkNotebook</class>
- <child_name>GnomePropertyBox:notebook</child_name>
- <name>notebook1</name>
- <border_width>2</border_width>
- <cxx_use_heap>True</cxx_use_heap>
- <can_focus>True</can_focus>
- <show_tabs>True</show_tabs>
- <show_border>True</show_border>
- <tab_pos>GTK_POS_TOP</tab_pos>
- <scrollable>False</scrollable>
- <tab_hborder>2</tab_hborder>
- <tab_vborder>2</tab_vborder>
- <popup_enable>False</popup_enable>
- <child>
- <padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
- </child>
-
- <widget>
- <class>GtkVBox</class>
- <name>vbox</name>
- <border_width>2</border_width>
- <cxx_use_heap>True</cxx_use_heap>
- <homogeneous>False</homogeneous>
- <spacing>8</spacing>
-
- <widget>
- <class>Placeholder</class>
- </widget>
-
- <widget>
- <class>GtkFrame</class>
- <name>frame1</name>
- <border_width>2</border_width>
- <cxx_use_heap>True</cxx_use_heap>
- <label>Appearance</label>
- <label_xalign>0</label_xalign>
- <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
- <child>
- <padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
- </child>
-
- <widget>
- <class>GtkVBox</class>
- <name>vbox2</name>
- <border_width>2</border_width>
- <cxx_use_heap>True</cxx_use_heap>
- <homogeneous>False</homogeneous>
- <spacing>5</spacing>
-
- <widget>
- <class>GtkHBox</class>
- <name>hbox1</name>
- <border_width>2</border_width>
- <cxx_use_heap>True</cxx_use_heap>
- <homogeneous>False</homogeneous>
- <spacing>5</spacing>
- <child>
- <padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
- </child>
-
- <widget>
- <class>GtkLabel</class>
- <name>label2</name>
- <cxx_use_heap>True</cxx_use_heap>
- <label>Background:</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- <child>
- <padding>0</padding>
- <expand>False</expand>
- <fill>False</fill>
- </child>
- </widget>
-
- <widget>
- <class>GnomeFileEntry</class>
- <name>htmlpage</name>
- <cxx_use_heap>True</cxx_use_heap>
- <max_saved>10</max_saved>
- <directory>False</directory>
- <modal>False</modal>
- <child>
- <padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
- </child>
-
- <widget>
- <class>GtkEntry</class>
- <child_name>GnomeEntry:entry</child_name>
- <name>combo-entry1</name>
- <cxx_use_heap>True</cxx_use_heap>
- <can_focus>True</can_focus>
- <editable>True</editable>
- <text_visible>True</text_visible>
- <text_max_length>0</text_max_length>
- <text></text>
- </widget>
- </widget>
- </widget>
-
- <widget>
- <class>GtkHBox</class>
- <name>hbox2</name>
- <border_width>2</border_width>
- <cxx_use_heap>True</cxx_use_heap>
- <homogeneous>False</homogeneous>
- <spacing>5</spacing>
- <child>
- <padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
- </child>
-
- <widget>
- <class>GtkLabel</class>
- <name>label3</name>
- <cxx_use_heap>True</cxx_use_heap>
- <label>Number of columns:</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- <child>
- <padding>0</padding>
- <expand>False</expand>
- <fill>False</fill>
- </child>
- </widget>
-
- <widget>
- <class>GtkSpinButton</class>
- <name>columnspinner</name>
- <cxx_use_heap>True</cxx_use_heap>
- <can_focus>True</can_focus>
- <climb_rate>1</climb_rate>
- <digits>0</digits>
- <numeric>True</numeric>
- <update_policy>GTK_UPDATE_ALWAYS</update_policy>
- <snap>False</snap>
- <wrap>False</wrap>
- <value>1</value>
- <lower>1</lower>
- <upper>100</upper>
- <step>1</step>
- <page>10</page>
- <page_size>10</page_size>
- <child>
- <padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
- </child>
- </widget>
- </widget>
- </widget>
- </widget>
-
- <widget>
- <class>Placeholder</class>
- </widget>
- </widget>
-
- <widget>
- <class>GtkLabel</class>
- <child_name>Notebook:tab</child_name>
- <name>Label</name>
- <cxx_use_heap>True</cxx_use_heap>
- <label>General</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- </widget>
- </widget>
-</widget>
-
-</GTK-Interface>
diff --git a/executive-summary/component/executive-summary.png b/executive-summary/component/executive-summary.png
deleted file mode 100644
index 10a122f39e..0000000000
--- a/executive-summary/component/executive-summary.png
+++ /dev/null
Binary files differ
diff --git a/executive-summary/component/main.c b/executive-summary/component/main.c
deleted file mode 100644
index e23b59c23a..0000000000
--- a/executive-summary/component/main.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * main.c: The core of the executive summary component.
- *
- * Copyright (C) 2000 Ximian, Inc
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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@ximian.com>
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <glib.h>
-#include <libgnome/gnome-defs.h>
-#include <libgnome/gnome-i18n.h>
-#include <libgnomeui/gnome-init.h>
-#include <bonobo/bonobo-main.h>
-#include <liboaf/liboaf.h>
-#include <glade/glade.h>
-
-#ifdef GTKHTML_HAVE_GCONF
-#include <gconf/gconf.h>
-#endif
-
-#include "gal/widgets/e-gui-utils.h"
-#include "gal/widgets/e-cursors.h"
-
-#include <libgnomevfs/gnome-vfs.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 ();
- glade_gnome_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_cursors_init ();
-
- component_factory_init ();
-
- gnome_vfs_init ();
- bonobo_main ();
-
- return 0;
-}
diff --git a/executive-summary/default-header.html b/executive-summary/default-header.html
deleted file mode 100644
index 64fc119ea6..0000000000
--- a/executive-summary/default-header.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<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-services/.cvsignore b/executive-summary/evolution-services/.cvsignore
deleted file mode 100644
index d9807cd94f..0000000000
--- a/executive-summary/evolution-services/.cvsignore
+++ /dev/null
@@ -1,11 +0,0 @@
-Executive-Summary.h
-Executive-Summary-common.c
-Executive-Summary-skels.c
-Executive-Summary-stubs.c
-Makefile.in
-Makefile
-core
-.deps
-.libs
-*.lo
-*.la \ No newline at end of file
diff --git a/executive-summary/evolution-services/Makefile.am b/executive-summary/evolution-services/Makefile.am
deleted file mode 100644
index e371b0ddf4..0000000000
--- a/executive-summary/evolution-services/Makefile.am
+++ /dev/null
@@ -1,55 +0,0 @@
-lib_LTLIBRARIES = libevolution-services.la
-
-INCLUDES = \
- -I$(top_srcdir) \
- -I$(top_builddir)/shell \
- -I$(top_srcdir)/shell \
- -I$(top_srcdir)/executive-summary \
- -I$(top_builddir)/executive-summary \
- $(EXTRA_GNOME_CFLAGS) \
- $(GNOME_VFS_CFLAGS) \
- $(GTKHTML_CFLAGS) \
- -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \
- -DEVOLUTION_ICONSDIR=\""$(iconsdir)"\" \
- -DEVOLUTION_LOCALEDIR=\""$(localedir)"\" \
- -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
-
-IDLS = \
- $(srcdir)/../idl/Executive-Summary.idl \
- $(srcdir)/../idl/Summary.idl \
- $(srcdir)/../idl/SummaryComponent.idl \
- $(srcdir)/../idl/HtmlView.idl
-
-$(IDL_GENERATED): $(IDLS)
- $(ORBIT_IDL) -I $(srcdir) -I $(datadir)/idl `$(GNOME_CONFIG) --cflags idl` \
- $(srcdir)/../idl/Executive-Summary.idl
-
-libevolution_services_la_SOURCES = \
- $(IDL_GENERATED) \
- executive-summary-component.c \
- executive-summary-component.h \
- executive-summary-component-factory-client.c \
- executive-summary-component-factory-client.h \
- executive-summary-html-view.c \
- executive-summary-html-view.h
-
-libevolution_services_la_LIBADD = \
- $(top_builddir)/e-util/libeutil.la \
- $(BONOBO_VFS_GNOME_LIBS) \
- $(EXTRA_GNOME_LIBS) \
- $(GTKHTML_LIBS)
-
-BUILT_SOURCES = $(IDL_GENERATED)
-CLEANFILES = $(BUILT_SOURCES)
-
-dist-hook:
- cd $(distdir); rm -f $(BUILT_SOURCES)
diff --git a/executive-summary/evolution-services/executive-summary-client.c b/executive-summary/evolution-services/executive-summary-client.c
deleted file mode 100644
index b2415810ba..0000000000
--- a/executive-summary/evolution-services/executive-summary-client.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary-client.c
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <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,
- int id,
- const char *title)
-{
- GNOME_Evolution_Summary_ViewFrame summary;
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- summary = bonobo_object_corba_objref (BONOBO_OBJECT (client));
-
- GNOME_Evolution_Summary_ViewFrame_setTitle (summary, id, 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_set_icon (ExecutiveSummaryClient *client,
- int id,
- const char *icon)
-{
- GNOME_Evolution_Summary_ViewFrame summary;
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- summary = bonobo_object_corba_objref (BONOBO_OBJECT (client));
-
- GNOME_Evolution_Summary_ViewFrame_setIcon (summary, id, icon, &ev);
-
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_warning ("Error setting icon to %s:%s", icon, CORBA_exception_id (&ev));
- }
-
- CORBA_exception_free (&ev);
-}
-
-void
-executive_summary_client_flash (ExecutiveSummaryClient *client,
- int id)
-{
- GNOME_Evolution_Summary_ViewFrame summary;
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- summary = bonobo_object_corba_objref (BONOBO_OBJECT (client));
-
- GNOME_Evolution_Summary_ViewFrame_flash (summary, id, &ev);
-
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_warning ("Error flashing");
- }
-
- CORBA_exception_free (&ev);
-}
-
-void
-executive_summary_client_update (ExecutiveSummaryClient *client,
- int id,
- const char *html)
-{
- GNOME_Evolution_Summary_ViewFrame summary;
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- summary = bonobo_object_corba_objref (BONOBO_OBJECT (client));
-
- GNOME_Evolution_Summary_ViewFrame_updateComponent (summary, id, 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
deleted file mode 100644
index 765f9e3988..0000000000
--- a/executive-summary/evolution-services/executive-summary-client.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary-client.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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_CLIENT_H__
-#define _EXECUTIVE_SUMMARY_CLIENT_H__
-
-#include <bonobo/bonobo-object.h>
-#include <evolution-services/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,
- int id,
- const char *title);
-void executive_summary_client_set_icon (ExecutiveSummaryClient *client,
- int id,
- const char *icon);
-void executive_summary_client_flash (ExecutiveSummaryClient *client,
- int id);
-void executive_summary_client_update (ExecutiveSummaryClient *client,
- int id,
- const 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
deleted file mode 100644
index 98247bdb00..0000000000
--- a/executive-summary/evolution-services/executive-summary-component-client.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary-component-client.c
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <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)
-{
- GNOME_Evolution_Summary_Component component;
- GNOME_Evolution_Summary_ViewFrame 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);
- GNOME_Evolution_Summary_Component_setOwner (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)
-{
- GNOME_Evolution_Summary_Component 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));
-
- GNOME_Evolution_Summary_Component_unsetOwner (component, &ev);
-
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_warning ("Error unsetting owner");
- }
-
- 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
deleted file mode 100644
index 5a8e70f0fe..0000000000
--- a/executive-summary/evolution-services/executive-summary-component-client.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary-component-client.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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/bonobo-object.h>
-#include <evolution-services/executive-summary.h>
-#include <evolution-services/executive-summary-component-view.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);
-
-void executive_summary_component_client_configure (ExecutiveSummaryComponentClient *client,
- ExecutiveSummaryComponentView *view);
-void executive_summary_component_client_destroy_view (ExecutiveSummaryComponentClient *client,
- ExecutiveSummaryComponentView *view);
-
-#endif
-
diff --git a/executive-summary/evolution-services/executive-summary-component-factory-client.c b/executive-summary/evolution-services/executive-summary-component-factory-client.c
deleted file mode 100644
index 23b5034849..0000000000
--- a/executive-summary/evolution-services/executive-summary-component-factory-client.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary-component-factory-client.c
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <gal/util/e-util.h>
-
-#include <liboaf/liboaf.h>
-
-#include <Executive-Summary.h>
-#include "executive-summary-component-factory-client.h"
-
-#define PARENT_TYPE BONOBO_OBJECT_CLIENT_TYPE
-static BonoboObjectClass *parent_class = NULL;
-
-struct _ExecutiveSummaryComponentFactoryClientPrivate {
- int dummy;
-};
-
-static void
-executive_summary_component_factory_client_destroy (GtkObject *object)
-{
- ExecutiveSummaryComponentFactoryClient *client;
- ExecutiveSummaryComponentFactoryClientPrivate *priv;
-
- client = EXECUTIVE_SUMMARY_COMPONENT_FACTORY_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_factory_client_init (ExecutiveSummaryComponentFactoryClient *client)
-{
- ExecutiveSummaryComponentFactoryClientPrivate *priv;
-
- priv = g_new0 (ExecutiveSummaryComponentFactoryClientPrivate, 1);
- client->private = priv;
-}
-
-static void
-executive_summary_component_factory_client_class_init (ExecutiveSummaryComponentFactoryClientClass *klass)
-{
- GtkObjectClass *object_class;
-
- object_class = GTK_OBJECT_CLASS (klass);
- object_class->destroy = executive_summary_component_factory_client_destroy;
-
- parent_class = gtk_type_class (PARENT_TYPE);
-}
-
-E_MAKE_TYPE (executive_summary_component_factory_client,
- "ExecutiveSummaryComponentFactoryClient",
- ExecutiveSummaryComponentFactoryClient,
- executive_summary_component_factory_client_class_init,
- executive_summary_component_factory_client_init, PARENT_TYPE)
-
-
-/*** Public API ***/
-/**
- * executive_summary_component_factory_client_construct:
- * @client: The ExecutiveSummaryComponentFactoryClient to construct.
- * @corba_object: The CORBA_Object to construct it from.
- *
- * Constructs a client from the given CORBA_Object.
- */
-void
-executive_summary_component_factory_client_construct (ExecutiveSummaryComponentFactoryClient *client,
- CORBA_Object corba_object)
-{
- g_return_if_fail (client != NULL);
- g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT (client));
- g_return_if_fail (corba_object != CORBA_OBJECT_NIL);
-
- bonobo_object_client_construct (BONOBO_OBJECT_CLIENT (client), corba_object);
-}
-
-/**
- * executive_summary_component_factory_client_new:
- * @id: The OAFIID of the component to activate.
- *
- * Activates the component specified by @id, and creates a server side client
- * for that object.
- *
- * Returns: A pointer to an ExecutiveSummaryComponentFactoryClient object.
- */
-ExecutiveSummaryComponentFactoryClient *
-executive_summary_component_factory_client_new (const char *id)
-{
- ExecutiveSummaryComponentFactoryClient *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_factory_client_get_type ());
- executive_summary_component_factory_client_construct (client,
- corba_object);
-
- return client;
-}
-
-/**
- * executive_summary_component_factory_client_create_view:
- * @client: The client on which to create the view.
- *
- * Creates a new view of a remote component.
- *
- * Returns: A GNOME_Evolution_Summary_Component.
- */
-GNOME_Evolution_Summary_Component
-executive_summary_component_factory_client_create_view (ExecutiveSummaryComponentFactoryClient *client)
-{
- GNOME_Evolution_Summary_ComponentFactory factory;
- GNOME_Evolution_Summary_Component component;
- CORBA_Environment ev;
-
- g_return_val_if_fail (client != NULL, CORBA_OBJECT_NIL);
- g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT (client),
- CORBA_OBJECT_NIL);
-
- CORBA_exception_init (&ev);
- factory = bonobo_object_corba_objref (BONOBO_OBJECT (client));
-
- component = GNOME_Evolution_Summary_ComponentFactory_createView (factory, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- g_warning ("Error creating view: %s", CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return CORBA_OBJECT_NIL;
- }
-
- CORBA_exception_free (&ev);
- return component;
-}
diff --git a/executive-summary/evolution-services/executive-summary-component-factory-client.h b/executive-summary/evolution-services/executive-summary-component-factory-client.h
deleted file mode 100644
index 71cd7af613..0000000000
--- a/executive-summary/evolution-services/executive-summary-component-factory-client.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary-component-factory-client.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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_FACTORY_CLIENT_H__
-#define _EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT_H__
-
-#include <bonobo/bonobo-object-client.h>
-
-#define EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT_TYPE (executive_summary_component_factory_client_get_type ())
-#define EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT(obj) (GTK_CHECK_CAST ((obj), EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT_TYPE, ExecutiveSummaryComponentFactoryClient))
-#define EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT_TYPE, ExecutiveSummaryComponentFactoryClientClass))
-#define IS_EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT(obj) (GTK_CHECK_TYPE ((obj), EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT_TYPE))
-#define IS_EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLIENT_TYPE))
-
-typedef struct _ExecutiveSummaryComponentFactoryClientPrivate ExecutiveSummaryComponentFactoryClientPrivate;
-typedef struct _ExecutiveSummaryComponentFactoryClient ExecutiveSummaryComponentFactoryClient;
-typedef struct _ExecutiveSummaryComponentFactoryClientClass ExecutiveSummaryComponentFactoryClientClass;
-
-struct _ExecutiveSummaryComponentFactoryClient {
- BonoboObjectClient parent;
-
- ExecutiveSummaryComponentFactoryClientPrivate *private;
-};
-
-struct _ExecutiveSummaryComponentFactoryClientClass {
- BonoboObjectClientClass parent_class;
-};
-
-GtkType executive_summary_component_factory_client_get_type (void);
-
-void executive_summary_component_factory_client_construct (ExecutiveSummaryComponentFactoryClient *client,
- CORBA_Object corba_object);
-ExecutiveSummaryComponentFactoryClient *executive_summary_component_factory_client_new (const char *id);
-CORBA_Object executive_summary_component_factory_client_create_view (ExecutiveSummaryComponentFactoryClient *client);
-
-#endif
-
diff --git a/executive-summary/evolution-services/executive-summary-component-view.c b/executive-summary/evolution-services/executive-summary-component-view.c
deleted file mode 100644
index 2b769b3bbe..0000000000
--- a/executive-summary/evolution-services/executive-summary-component-view.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/* -*- 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@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <gal/util/e-util.h>
-
-#include <evolution-services/executive-summary-component.h>
-#include <evolution-services/executive-summary-component-view.h>
-
-struct _ExecutiveSummaryComponentViewPrivate {
- ExecutiveSummaryComponent *component;
-
- BonoboControl *control;
- Bonobo_Control objref;
-
- char *html;
-
- char *title;
- char *icon;
-
- int id;
-};
-
-static GtkObjectClass *parent_class = NULL;
-#define PARENT_TYPE (gtk_object_get_type ())
-
-enum {
- CONFIGURE,
- LAST_SIGNAL
-};
-
-static gint32 view_signals[LAST_SIGNAL] = { 0 };
-
-static void
-executive_summary_component_view_destroy (GtkObject *object)
-{
- ExecutiveSummaryComponentView *view;
- ExecutiveSummaryComponentViewPrivate *priv;
-
- view = EXECUTIVE_SUMMARY_COMPONENT_VIEW (object);
- priv = view->private;
- if (priv == NULL)
- return;
-
- if (priv->component)
- bonobo_object_unref (BONOBO_OBJECT (priv->component));
-
- if (priv->control)
- bonobo_object_unref (BONOBO_OBJECT (priv->control));
-
- g_free (priv->html);
- g_free (priv->title);
- g_free (priv->icon);
-
- g_free (priv);
- view->private = NULL;
-
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-}
-
-static void
-executive_summary_component_view_class_init (ExecutiveSummaryComponentViewClass *view_class)
-{
- GtkObjectClass *object_class;
-
- object_class = GTK_OBJECT_CLASS (view_class);
-
- object_class->destroy = executive_summary_component_view_destroy;
-
- view_signals[CONFIGURE] = gtk_signal_new ("configure",
- GTK_RUN_FIRST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ExecutiveSummaryComponentViewClass, configure),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
- gtk_object_class_add_signals (object_class, view_signals, LAST_SIGNAL);
-
- parent_class = gtk_type_class (PARENT_TYPE);
-}
-
-static void
-executive_summary_component_view_init (ExecutiveSummaryComponentView *view)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
-
- priv = g_new (ExecutiveSummaryComponentViewPrivate, 1);
- view->private = priv;
-
- priv->control = NULL;
- priv->objref = NULL;
- priv->html = NULL;
- priv->title = NULL;
- priv->icon = NULL;
- priv->id = -1;
-}
-
-E_MAKE_TYPE (executive_summary_component_view, "ExecutiveSummaryComponentView",
- ExecutiveSummaryComponentView,
- executive_summary_component_view_class_init,
- executive_summary_component_view_init, PARENT_TYPE);
-
-void
-executive_summary_component_view_construct (ExecutiveSummaryComponentView *view,
- ExecutiveSummaryComponent *component,
- BonoboControl *control,
- const char *html,
- const char *title,
- const char *icon)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
-
- g_return_if_fail (view != NULL);
- g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view));
- g_return_if_fail (control != NULL || html != NULL);
-
- priv = view->private;
-
- if (component != NULL) {
- bonobo_object_ref (BONOBO_OBJECT (component));
- priv->component = component;
- } else {
- priv->component = NULL;
- }
-
- if (control != NULL) {
- bonobo_object_ref (BONOBO_OBJECT (control));
- priv->control = control;
- } else {
- priv->control = NULL;
- }
-
- if (html) {
- priv->html = g_strdup (html);
- } else {
- priv->html = NULL;
- }
-
- if (title) {
- priv->title = g_strdup (title);
- } else {
- priv->title = NULL;
- }
-
- if (icon) {
- priv->icon = g_strdup (icon);
- } else {
- priv->icon = NULL;
- }
-}
-
-ExecutiveSummaryComponentView *
-executive_summary_component_view_new (ExecutiveSummaryComponent *component,
- BonoboControl *control,
- const char *html,
- const char *title,
- const char *icon)
-{
- ExecutiveSummaryComponentView *view;
-
- g_return_val_if_fail (control != NULL || html != NULL, NULL);
-
- view = gtk_type_new (executive_summary_component_view_get_type ());
- executive_summary_component_view_construct (view, component, control,
- html, title, icon);
-
- return view;
-}
-
-void
-executive_summary_component_view_set_title (ExecutiveSummaryComponentView *view,
- const char *title)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
- ExecutiveSummaryComponent *component;
-
- g_return_if_fail (view != NULL);
- g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view));
-
- priv = view->private;
- if (priv->title)
- g_free (priv->title);
- priv->title = g_strdup (title);
-
- component = priv->component;
- if (component == NULL) {
- return;
- }
-
- executive_summary_component_set_title (component, view);
-}
-
-const char *
-executive_summary_component_view_get_title (ExecutiveSummaryComponentView *view)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
-
- g_return_val_if_fail (view != NULL, NULL);
- g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view), NULL);
-
- priv = view->private;
-
- return priv->title;
-}
-
-void
-executive_summary_component_view_set_icon (ExecutiveSummaryComponentView *view,
- const char *icon)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
- ExecutiveSummaryComponent *component;
-
- g_return_if_fail (view != NULL);
- g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view));
-
- priv = view->private;
- if (priv->icon)
- g_free (priv->icon);
- priv->icon = g_strdup (icon);
-
- component = priv->component;
- if (component == NULL) {
- return;
- }
-
- executive_summary_component_set_icon (component, view);
-}
-
-const char *
-executive_summary_component_view_get_icon (ExecutiveSummaryComponentView *view)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
-
- g_return_val_if_fail (view != NULL, NULL);
- g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view), NULL);
-
- priv = view->private;
-
- return priv->icon;
-}
-
-void
-executive_summary_component_view_flash (ExecutiveSummaryComponentView *view)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
- ExecutiveSummaryComponent *component;
-
- g_return_if_fail (view != NULL);
- g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view));
-
- priv = view->private;
- component = priv->component;
- if (component == NULL) {
- g_warning ("Calling %s from the wrong side of the CORBA interface", __FUNCTION__);
- return;
- }
-
- executive_summary_component_flash (component, view);
-}
-
-void
-executive_summary_component_view_set_html (ExecutiveSummaryComponentView *view,
- const char *html)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
- ExecutiveSummaryComponent *component;
-
- g_return_if_fail (view != NULL);
- g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view));
-
- priv = view->private;
- if (priv->html)
- g_free (priv->html);
-
- priv->html = g_strdup (html);
-
- component = priv->component;
- if (component == NULL) {
- return;
- }
-
- executive_summary_component_update (component, view);
-}
-
-void
-executive_summary_component_view_configure (ExecutiveSummaryComponentView *view)
-{
- gtk_signal_emit (GTK_OBJECT (view), view_signals[CONFIGURE]);
-}
-
-const char *
-executive_summary_component_view_get_html (ExecutiveSummaryComponentView *view)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
-
- g_return_val_if_fail (view != NULL, NULL);
- g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view), NULL);
-
- priv = view->private;
-
- return priv->html;
-}
-
-BonoboObject *
-executive_summary_component_view_get_control (ExecutiveSummaryComponentView *view)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
-
- g_return_val_if_fail (view != NULL, NULL);
- g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view), NULL);
-
- priv = view->private;
-
- return (BonoboObject *)priv->control;
-}
-
-void
-executive_summary_component_view_set_id (ExecutiveSummaryComponentView *view,
- int id)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
-
- g_return_if_fail (view != NULL);
- g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view));
-
- priv = view->private;
-
- priv->id = id;
-}
-
-int
-executive_summary_component_view_get_id (ExecutiveSummaryComponentView *view)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
-
- g_return_val_if_fail (view != NULL, -1);
- g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view), -1);
-
- priv = view->private;
-
- return priv->id;
-}
-
-void
-executive_summary_component_view_set_objref (ExecutiveSummaryComponentView *view,
- Bonobo_Control objref)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
-
- g_return_if_fail (view != NULL);
- g_return_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view));
-
- priv = view->private;
-
- if (priv->objref) {
- g_warning ("View already has an objref.");
- return;
- }
-
- priv->objref = objref;
-}
-
-GtkWidget *
-executive_summary_component_view_get_widget (ExecutiveSummaryComponentView *view)
-{
- ExecutiveSummaryComponentViewPrivate *priv;
-
- g_return_val_if_fail (view != NULL, NULL);
- g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW (view), NULL);
-
- priv = view->private;
- if (priv->objref == NULL) {
- g_warning ("View has no objref.");
- return NULL;
- }
-
- return bonobo_widget_new_control_from_objref (priv->objref, NULL);
-}
diff --git a/executive-summary/evolution-services/executive-summary-component-view.h b/executive-summary/evolution-services/executive-summary-component-view.h
deleted file mode 100644
index a204dbe007..0000000000
--- a/executive-summary/evolution-services/executive-summary-component-view.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary-component.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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_VIEW_H__
-#define __EXECUTIVE_SUMMARY_COMPONENT_VIEW_H__
-
-#include <bonobo/bonobo-control.h>
-#include <evolution-services/executive-summary-component.h>
-
-#define EXECUTIVE_SUMMARY_COMPONENT_VIEW_TYPE (executive_summary_component_view_get_type ())
-#define EXECUTIVE_SUMMARY_COMPONENT_VIEW(obj) (GTK_CHECK_CAST ((obj), EXECUTIVE_SUMMARY_COMPONENT_VIEW_TYPE, ExecutiveSummaryComponentView))
-#define EXECUTIVE_SUMMARY_COMPONENT_VIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EXECUTIVE_SUMMARY_COMPONENT_VIEW_TYPE, ExecutiveSummaryComponentClass))
-#define IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW(obj) (GTK_CHECK_TYPE ((obj), EXECUTIVE_SUMMARY_COMPONENT_VIEW_TYPE))
-#define IS_EXECUTIVE_SUMMARY_COMPONENT_VIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), EXECUTIVE_SUMMARY_COMPONENT_VIEW_CLASS_TYPE))
-
-typedef struct _ExecutiveSummaryComponentViewPrivate ExecutiveSummaryComponentViewPrivate;
-typedef struct _ExecutiveSummaryComponentView ExecutiveSummaryComponentView;
-typedef struct _ExecutiveSummaryComponentViewClass ExecutiveSummaryComponentViewClass;
-
-struct _ExecutiveSummaryComponentView {
- GtkObject object;
-
- ExecutiveSummaryComponentViewPrivate *private;
-};
-
-struct _ExecutiveSummaryComponentViewClass {
- GtkObjectClass parent_class;
-
- /* Signals */
- void (* configure) (ExecutiveSummaryComponentView *view);
-};
-
-GtkType executive_summary_component_view_get_type (void);
-void
-executive_summary_component_view_construct (ExecutiveSummaryComponentView *view,
- ExecutiveSummaryComponent *component,
- BonoboControl *control,
- const char *html,
- const char *title,
- const char *icon);
-ExecutiveSummaryComponentView *
-executive_summary_component_view_new (ExecutiveSummaryComponent *component,
- BonoboControl *control,
- const char *html,
- const char *title,
- const char *icon);
-
-void executive_summary_component_view_set_title (ExecutiveSummaryComponentView *view,
- const char *title);
-const char *executive_summary_component_view_get_title (ExecutiveSummaryComponentView *view);
-
-void executive_summary_component_view_set_icon (ExecutiveSummaryComponentView *view,
- const char *icon);
-const char *executive_summary_component_view_get_icon (ExecutiveSummaryComponentView *view);
-
-void executive_summary_component_view_flash (ExecutiveSummaryComponentView *view);
-
-void executive_summary_component_view_set_html (ExecutiveSummaryComponentView *view,
- const char *html);
-const char *executive_summary_component_view_get_html (ExecutiveSummaryComponentView *view);
-BonoboObject *executive_summary_component_view_get_control (ExecutiveSummaryComponentView *view);
-
-int executive_summary_component_view_get_id (ExecutiveSummaryComponentView *view);
-void executive_summary_component_view_set_id (ExecutiveSummaryComponentView *view,
- int id);
-void executive_summary_component_view_configure (ExecutiveSummaryComponentView *view);
-void executive_summary_component_view_set_objref (ExecutiveSummaryComponentView *view,
- Bonobo_Control objref);
-GtkWidget *executive_summary_component_view_get_widget (ExecutiveSummaryComponentView *view);
-
-#endif
-
-
diff --git a/executive-summary/evolution-services/executive-summary-component.c b/executive-summary/evolution-services/executive-summary-component.c
deleted file mode 100644
index cb2fd95ee9..0000000000
--- a/executive-summary/evolution-services/executive-summary-component.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/* -*- 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@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <gal/util/e-util.h>
-
-#include "Executive-Summary.h"
-#include "executive-summary-component.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 ())
-#define FACTORY_PARENT_TYPE (bonobo_object_get_type ())
-
-static BonoboObjectClass *parent_class;
-static BonoboObjectClass *factory_parent_class;
-
-struct _ExecutiveSummaryComponentPrivate {
- int dummy;
-};
-
-struct _ExecutiveSummaryComponentFactoryPrivate {
- EvolutionServicesCreateViewFn create_view;
- void *closure;
-};
-
-/* CORBA interface */
-static POA_GNOME_Evolution_Summary_Component__vepv SummaryComponent_vepv;
-static POA_GNOME_Evolution_Summary_ComponentFactory__vepv ComponentFactory_vepv;
-
-static POA_GNOME_Evolution_Summary_Component *
-create_servant (void)
-{
- POA_GNOME_Evolution_Summary_Component *servant;
- CORBA_Environment ev;
-
- servant = (POA_GNOME_Evolution_Summary_Component *)g_new0 (BonoboObjectServant, 1);
- servant->vepv = &SummaryComponent_vepv;
-
- CORBA_exception_init (&ev);
- POA_GNOME_Evolution_Summary_Component__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
-executive_summary_component_destroy (GtkObject *object)
-{
- ExecutiveSummaryComponent *component;
- ExecutiveSummaryComponentPrivate *priv;
-
- component = EXECUTIVE_SUMMARY_COMPONENT (object);
- priv = component->private;
-
- if (priv == NULL)
- return;
-
- g_free (priv);
- component->private = NULL;
-
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-}
-
-/* Init */
-static void
-corba_class_init (void)
-{
- POA_GNOME_Evolution_Summary_Component__vepv *vepv;
- POA_GNOME_Evolution_Summary_Component__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_GNOME_Evolution_Summary_Component__epv, 1);
-
- vepv = &SummaryComponent_vepv;
- vepv->_base_epv = base_epv;
- vepv->Bonobo_Unknown_epv = bonobo_object_get_epv ();
- vepv->GNOME_Evolution_Summary_Component_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_new (ExecutiveSummaryComponentPrivate, 1);
-
- component->private = priv;
-}
-
-E_MAKE_TYPE (executive_summary_component, "ExecutiveSummaryComponent",
- ExecutiveSummaryComponent, executive_summary_component_class_init,
- executive_summary_component_init, PARENT_TYPE);
-
-
-static void
-executive_summary_component_construct (ExecutiveSummaryComponent *component,
- GNOME_Evolution_Summary_Component corba_object)
-{
- g_return_if_fail (component != NULL);
- g_return_if_fail (corba_object != CORBA_OBJECT_NIL);
-
- bonobo_object_construct (BONOBO_OBJECT (component), corba_object);
-}
-
-
-/*** Public API ***/
-/**
- * executive_summary_component_new:
- *
- * Creates a BonoboObject that implements the Summary::Component interface.
- *
- * Returns: A pointer to a BonoboObject.
- */
-BonoboObject *
-executive_summary_component_new (void)
-{
- ExecutiveSummaryComponent *component;
- POA_GNOME_Evolution_Summary_Component *servant;
- GNOME_Evolution_Summary_Component 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);
-
- return BONOBO_OBJECT (component);
-}
-
-
-/**** ComponentFactory implementation ****/
-
-static POA_GNOME_Evolution_Summary_ComponentFactory *
-create_factory_servant (void)
-{
- POA_GNOME_Evolution_Summary_ComponentFactory *servant;
- CORBA_Environment ev;
-
- servant = (POA_GNOME_Evolution_Summary_ComponentFactory *)g_new0 (BonoboObjectServant, 1);
- servant->vepv = &ComponentFactory_vepv;
-
- CORBA_exception_init (&ev);
- POA_GNOME_Evolution_Summary_ComponentFactory__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 GNOME_Evolution_Summary_Component
-impl_GNOME_Evolution_Summary_ComponentFactory_createView (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- BonoboObject *bonobo_object;
- BonoboObject *view;
- ExecutiveSummaryComponentFactory *factory;
- ExecutiveSummaryComponentFactoryPrivate *priv;
- GNOME_Evolution_Summary_Component component, component_dup;
-
- bonobo_object = bonobo_object_from_servant (servant);
- factory = EXECUTIVE_SUMMARY_COMPONENT_FACTORY (bonobo_object);
- priv = factory->private;
-
- view = (* priv->create_view) (factory, priv->closure);
- g_return_val_if_fail (view != NULL, CORBA_OBJECT_NIL);
-
- component = bonobo_object_corba_objref (BONOBO_OBJECT (view));
-
- component_dup = CORBA_Object_duplicate (component, ev);
-
- return component_dup;
-}
-
-static void
-corba_factory_init (void)
-{
- POA_GNOME_Evolution_Summary_ComponentFactory__vepv *vepv;
- POA_GNOME_Evolution_Summary_ComponentFactory__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_GNOME_Evolution_Summary_ComponentFactory__epv, 1);
- epv->createView = impl_GNOME_Evolution_Summary_ComponentFactory_createView;
-
- vepv = &ComponentFactory_vepv;
- vepv->_base_epv = base_epv;
- vepv->Bonobo_Unknown_epv = bonobo_object_get_epv ();
- vepv->GNOME_Evolution_Summary_ComponentFactory_epv = epv;
-}
-
-/* GtkObject methods */
-static void
-executive_summary_component_factory_destroy (GtkObject *object)
-{
- ExecutiveSummaryComponentFactory *factory;
- ExecutiveSummaryComponentFactoryPrivate *priv;
-
- factory = EXECUTIVE_SUMMARY_COMPONENT_FACTORY (object);
- priv = factory->private;
-
- if (priv == NULL)
- return;
-
- g_free (priv);
- factory->private = NULL;
-
- (* GTK_OBJECT_CLASS (factory_parent_class)->destroy) (object);
-}
-
-static void
-executive_summary_component_factory_class_init (ExecutiveSummaryComponentFactoryClass *klass)
-{
- GtkObjectClass *object_class;
-
- object_class = GTK_OBJECT_CLASS (klass);
- object_class->destroy = executive_summary_component_factory_destroy;
-
- factory_parent_class = gtk_type_class (FACTORY_PARENT_TYPE);
- corba_factory_init ();
-}
-
-static void
-executive_summary_component_factory_init (ExecutiveSummaryComponentFactory *factory)
-{
- ExecutiveSummaryComponentFactoryPrivate *priv;
-
- priv = g_new (ExecutiveSummaryComponentFactoryPrivate, 1);
-
- priv->create_view = NULL;
- priv->closure = NULL;
- factory->private = priv;
-}
-
-E_MAKE_TYPE (executive_summary_component_factory,
- "ExecutiveSummaryComponentFactory",
- ExecutiveSummaryComponentFactory,
- executive_summary_component_factory_class_init,
- executive_summary_component_factory_init, FACTORY_PARENT_TYPE);
-
-static void
-executive_summary_component_factory_construct (ExecutiveSummaryComponentFactory *factory,
- GNOME_Evolution_Summary_ComponentFactory corba_object,
- EvolutionServicesCreateViewFn create_view,
- void *closure)
-{
- ExecutiveSummaryComponentFactoryPrivate *priv;
-
- g_return_if_fail (factory != NULL);
- g_return_if_fail (corba_object != CORBA_OBJECT_NIL);
-
- bonobo_object_construct (BONOBO_OBJECT (factory), corba_object);
- priv = factory->private;
-
- priv->create_view = create_view;
- priv->closure = closure;
-}
-
-
-/*** Public API ***/
-/**
- * executive_summary_component_factory_new:
- * @create_view: A pointer to the function to create a new view.
- * @closure: The data to be passed to the @create_view function when it is
- * called.
- *
- * Creates a BonoboObject that implements the Summary::ComponentFactory
- * interface.
- *
- * Returns: A pointer to a BonoboObject.
- */
-BonoboObject *
-executive_summary_component_factory_new (EvolutionServicesCreateViewFn create_view,
- void *closure)
-{
- ExecutiveSummaryComponentFactory *factory;
- POA_GNOME_Evolution_Summary_ComponentFactory *servant;
- GNOME_Evolution_Summary_ComponentFactory corba_object;
-
- servant = create_factory_servant ();
- if (servant == NULL)
- return NULL;
-
- factory = gtk_type_new (executive_summary_component_factory_get_type ());
- corba_object = bonobo_object_activate_servant (BONOBO_OBJECT (factory),
- servant);
- executive_summary_component_factory_construct (factory, corba_object,
- create_view, closure);
- return BONOBO_OBJECT (factory);
-}
-
diff --git a/executive-summary/evolution-services/executive-summary-component.h b/executive-summary/evolution-services/executive-summary-component.h
deleted file mode 100644
index 23b653d488..0000000000
--- a/executive-summary/evolution-services/executive-summary-component.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary-component.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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/bonobo-object.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;
-
-struct _ExecutiveSummaryComponent {
- BonoboObject parent;
-
- ExecutiveSummaryComponentPrivate *private;
-};
-
-struct _ExecutiveSummaryComponentClass {
- BonoboObjectClass parent_class;
-};
-
-GtkType executive_summary_component_get_type (void);
-
-BonoboObject *executive_summary_component_new (void);
-
-
-/* Factory */
-
-#define EXECUTIVE_SUMMARY_COMPONENT_FACTORY_TYPE (executive_summary_component_factory_get_type ())
-#define EXECUTIVE_SUMMARY_COMPONENT_FACTORY(obj) (GTK_CHECK_CAST ((obj), EXECUTIVE_SUMMARY_COMPONENT_FACTORY_TYPE, ExecutiveSummaryComponentFactory))
-#define EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EXECUTIVE_SUMMARY_COMPONENT_FACTORY_TYPE, ExecutiveSummaryComponentFactoryClass))
-#define IS_EXECUTIVE_SUMMARY_COMPONENT_FACTORY(obj) (GTK_CHECK_TYPE ((obj), EXECUTIVE_SUMMARY_COMPONENT_FACTORY_TYPE))
-#define IS_EXECUTIVE_SUMMARY_COMPONENT_FACTORY_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), EXECUTIVE_SUMMARY_COMPONENT_FACTORY_TYPE))
-
-typedef struct _ExecutiveSummaryComponentFactoryPrivate ExecutiveSummaryComponentFactoryPrivate;
-typedef struct _ExecutiveSummaryComponentFactory ExecutiveSummaryComponentFactory;
-typedef struct _ExecutiveSummaryComponentFactoryClass ExecutiveSummaryComponentFactoryClass;
-
-typedef BonoboObject *(* EvolutionServicesCreateViewFn) (ExecutiveSummaryComponentFactory *factory,
- void *closure);
-
-struct _ExecutiveSummaryComponentFactory {
- BonoboObject parent;
-
- ExecutiveSummaryComponentFactoryPrivate *private;
-};
-
-struct _ExecutiveSummaryComponentFactoryClass {
- BonoboObjectClass parent_class;
-};
-
-GtkType executive_summary_component_factory_get_type (void);
-
-BonoboObject *executive_summary_component_factory_new (EvolutionServicesCreateViewFn create_view,
- void *closure);
-#endif
diff --git a/executive-summary/evolution-services/executive-summary-html-view.c b/executive-summary/evolution-services/executive-summary-html-view.c
deleted file mode 100644
index 054da34fae..0000000000
--- a/executive-summary/evolution-services/executive-summary-html-view.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary-html-view.c - Bonobo implementation of
- * HtmlView.idl
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <gtk/gtksignal.h>
-#include <bonobo/bonobo-event-source.h>
-#include <gal/util/e-util.h>
-
-#include "Executive-Summary.h"
-#include "executive-summary-html-view.h"
-
-static void executive_summary_html_view_destroy (GtkObject *object);
-static void executive_summary_html_view_init (ExecutiveSummaryHtmlView *component);
-static void executive_summary_html_view_class_init (ExecutiveSummaryHtmlViewClass *klass);
-
-#define PARENT_TYPE (bonobo_object_get_type ())
-
-static BonoboObjectClass *parent_class;
-
-enum {
- HANDLE_URI,
- LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-struct _ExecutiveSummaryHtmlViewPrivate {
- BonoboEventSource *event_source;
-
- char *html;
-};
-
-/* CORBA interface */
-static POA_GNOME_Evolution_Summary_HTMLView__vepv HTMLView_vepv;
-
-static POA_GNOME_Evolution_Summary_HTMLView *
-create_servant (void)
-{
- POA_GNOME_Evolution_Summary_HTMLView *servant;
- CORBA_Environment ev;
-
- servant = (POA_GNOME_Evolution_Summary_HTMLView *)g_new0 (BonoboObjectServant, 1);
- servant->vepv = &HTMLView_vepv;
-
- CORBA_exception_init (&ev);
- POA_GNOME_Evolution_Summary_HTMLView__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 CORBA_char *
-impl_GNOME_Evolution_Summary_HTMLView_getHtml (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- BonoboObject *bonobo_object;
- ExecutiveSummaryHtmlView *view;
- ExecutiveSummaryHtmlViewPrivate *priv;
-
- bonobo_object = bonobo_object_from_servant (servant);
- view = EXECUTIVE_SUMMARY_HTML_VIEW (bonobo_object);
- priv = view->private;
-
- return CORBA_string_dup (priv->html? priv->html: "");
-}
-
-static void
-impl_GNOME_Evolution_Summary_HTMLView_handleURI (PortableServer_Servant servant,
- const CORBA_char *uri,
- CORBA_Environment *ev)
-{
- BonoboObject *bonobo_object;
-
- bonobo_object = bonobo_object_from_servant (servant);
-
- gtk_signal_emit (GTK_OBJECT (bonobo_object), signals[HANDLE_URI], uri);
-}
-
-/* GtkObject methods */
-static void
-executive_summary_html_view_destroy (GtkObject *object)
-{
- ExecutiveSummaryHtmlView *view;
- ExecutiveSummaryHtmlViewPrivate *priv;
-
- g_print ("BANG!");
- view = EXECUTIVE_SUMMARY_HTML_VIEW (object);
- priv = view->private;
-
- if (priv == NULL)
- return;
-
- g_free (priv->html);
- g_free (priv);
-
- view->private = NULL;
-
- GTK_OBJECT_CLASS (parent_class)->destroy (object);
-}
-
-static void
-corba_class_init (void)
-{
- POA_GNOME_Evolution_Summary_HTMLView__vepv *vepv;
- POA_GNOME_Evolution_Summary_HTMLView__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_GNOME_Evolution_Summary_HTMLView__epv, 1);
- epv->getHtml = impl_GNOME_Evolution_Summary_HTMLView_getHtml;
- epv->handleURI = impl_GNOME_Evolution_Summary_HTMLView_handleURI;
-
- vepv = &HTMLView_vepv;
- vepv->_base_epv = base_epv;
- vepv->Bonobo_Unknown_epv = bonobo_object_get_epv ();
- vepv->GNOME_Evolution_Summary_HTMLView_epv = epv;
-}
-
-static void
-executive_summary_html_view_class_init (ExecutiveSummaryHtmlViewClass *klass)
-{
- GtkObjectClass *object_class;
-
- object_class = GTK_OBJECT_CLASS (klass);
- object_class->destroy = executive_summary_html_view_destroy;
-
- signals[HANDLE_URI] = gtk_signal_new ("handle_uri", GTK_RUN_FIRST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ExecutiveSummaryHtmlViewClass, handle_uri),
- gtk_marshal_NONE__POINTER,
- GTK_TYPE_NONE, 1,
- GTK_TYPE_POINTER);
-
- gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
-
- parent_class = gtk_type_class (PARENT_TYPE);
-
- corba_class_init ();
-}
-
-static void
-executive_summary_html_view_init (ExecutiveSummaryHtmlView *view)
-{
- ExecutiveSummaryHtmlViewPrivate *priv;
-
- priv = g_new (ExecutiveSummaryHtmlViewPrivate, 1);
- priv->html = NULL;
- priv->event_source = NULL;
-
- view->private = priv;
-}
-
-E_MAKE_TYPE (executive_summary_html_view, "ExecutiveSummaryHtmlView",
- ExecutiveSummaryHtmlView, executive_summary_html_view_class_init,
- executive_summary_html_view_init, PARENT_TYPE);
-
-static void
-executive_summary_html_view_construct (ExecutiveSummaryHtmlView *view,
- BonoboEventSource *event_source,
- GNOME_Evolution_Summary_HTMLView corba_object)
-{
- ExecutiveSummaryHtmlViewPrivate *priv;
-
- g_return_if_fail (view != NULL);
- g_return_if_fail (IS_EXECUTIVE_SUMMARY_HTML_VIEW (view));
- g_return_if_fail (corba_object != CORBA_OBJECT_NIL);
-
- priv = view->private;
-
- priv->event_source = event_source;
- bonobo_object_add_interface (BONOBO_OBJECT (view),
- BONOBO_OBJECT (priv->event_source));
-
- bonobo_object_construct (BONOBO_OBJECT (view), corba_object);
-}
-
-/*** Public API ***/
-/**
- * executive_summary_html_view_new_full:
- * @event_source: A BonoboEventSource that will be aggregated onto the
- * interface.
- *
- * Creates a new BonoboObject that implements
- * the HTMLView.idl interface.
- *
- * Returns: A BonoboObject.
- */
-BonoboObject *
-executive_summary_html_view_new_full (BonoboEventSource *event_source)
-{
- ExecutiveSummaryHtmlView *view;
- POA_GNOME_Evolution_Summary_HTMLView *servant;
- GNOME_Evolution_Summary_HTMLView corba_object;
-
- g_return_val_if_fail (event_source != NULL, NULL);
- g_return_val_if_fail (BONOBO_IS_EVENT_SOURCE (event_source), NULL);
-
- servant = create_servant ();
- if (servant == NULL)
- return NULL;
-
- view = gtk_type_new (executive_summary_html_view_get_type ());
- corba_object = bonobo_object_activate_servant (BONOBO_OBJECT (view),
- servant);
-
- executive_summary_html_view_construct (view, event_source, corba_object);
-
- return BONOBO_OBJECT (view);
-}
-
-/**
- * executive_summary_html_view_new:
- *
- * Creates a new BonoboObject that implements
- * the HTMLView.idl interface.
- * Creates a default Bonobo::EventSource interface that will be aggregated onto
- * the interface.
- *
- * Returns: A BonoboObject.
- */
-BonoboObject *
-executive_summary_html_view_new (void)
-{
- BonoboEventSource *event_source;
-
- event_source = bonobo_event_source_new ();
- return executive_summary_html_view_new_full (event_source);
-}
-
-/**
- * executive_summary_html_view_set_html:
- * @view: The ExecutiveSummaryHtmlView to operate on,
- * @html: The HTML as a string.
- *
- * Sets the HTML string in @view to @html. @html is copied into @view,
- * so after this call you are free to do what you want with @html.
- */
-void
-executive_summary_html_view_set_html (ExecutiveSummaryHtmlView *view,
- const char *html)
-{
- ExecutiveSummaryHtmlViewPrivate *priv;
- CORBA_any any;
- CORBA_short s;
-
- g_return_if_fail (view != NULL);
- g_return_if_fail (IS_EXECUTIVE_SUMMARY_HTML_VIEW (view));
-
- priv = view->private;
- if (priv->html)
- g_free (priv->html);
-
- if (html != NULL)
- priv->html = g_strdup (html);
- else
- priv->html = NULL;
-
- /* Notify any listeners */
- s = 0;
-
- any._type = (CORBA_TypeCode) TC_short;
- any._value = &s;
-
- bonobo_event_source_notify_listeners (BONOBO_EVENT_SOURCE (priv->event_source),
- EXECUTIVE_SUMMARY_HTML_VIEW_HTML_CHANGED,
- &any, NULL);
-}
-
-/**
- * executive_summary_html_view_get_html:
- * @view: The ExecutiveSummaryHtmlView to operate on.
- *
- * Retrieves the HTML stored in @view. This return value is not duplicated
- * before returning, so you should not free it. Instead, if you want to free
- * the HTML stored in @view, you should use
- * executive_summary_html_view_set_html (view, NULL);.
- *
- * Returns: A pointer to the HTML stored in @view.
- */
-const char *
-executive_summary_html_view_get_html (ExecutiveSummaryHtmlView *view)
-{
- ExecutiveSummaryHtmlViewPrivate *priv;
-
- g_return_val_if_fail (view != NULL, NULL);
- g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_HTML_VIEW (view), NULL);
-
- priv = view->private;
- return priv->html;
-}
-
-/**
- * executive_summary_html_view_get_event_source:
- * @view: The ExecutiveSummaryHtmlView to operate on.
- *
- * Retrieves the BonoboEventSource that is used in this view.
- *
- * Returns: A BonoboEventSource pointer.
- */
-BonoboEventSource *
-executive_summary_html_view_get_event_source (ExecutiveSummaryHtmlView *view)
-{
- g_return_val_if_fail (view != NULL, NULL);
- g_return_val_if_fail (IS_EXECUTIVE_SUMMARY_HTML_VIEW (view), NULL);
-
- return view->private->event_source;
-}
diff --git a/executive-summary/evolution-services/executive-summary-html-view.h b/executive-summary/evolution-services/executive-summary-html-view.h
deleted file mode 100644
index d5cf6741fc..0000000000
--- a/executive-summary/evolution-services/executive-summary-html-view.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary-html-view.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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_HTML_VIEW_H__
-#define _EXECUTIVE_SUMMARY_HTML_VIEW_H__
-
-#include <bonobo/bonobo-object.h>
-#include <bonobo/bonobo-event-source.h>
-
-#define EXECUTIVE_SUMMARY_HTML_VIEW_HTML_CHANGED "GNOME:Evolution:Summary:HTMLView:html_changed"
-
-#define EXECUTIVE_SUMMARY_HTML_VIEW_TYPE (executive_summary_html_view_get_type ())
-#define EXECUTIVE_SUMMARY_HTML_VIEW(obj) (GTK_CHECK_CAST ((obj), EXECUTIVE_SUMMARY_HTML_VIEW_TYPE, ExecutiveSummaryHtmlView))
-#define EXECUTIVE_SUMMARY_HTML_VIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EXECUTIVE_SUMMARY_HTML_VIEW_TYPE, ExecutiveSummaryHtmlViewClass))
-#define IS_EXECUTIVE_SUMMARY_HTML_VIEW(obj) (GTK_CHECK_TYPE ((obj), EXECUTIVE_SUMMARY_HTML_VIEW_TYPE))
-#define IS_EXECUTIVE_SUMMARY_HTML_VIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), EXECUTIVE_SUMMARY_HTML_VIEW_TYPE))
-
-typedef struct _ExecutiveSummaryHtmlViewPrivate ExecutiveSummaryHtmlViewPrivate;
-typedef struct _ExecutiveSummaryHtmlView ExecutiveSummaryHtmlView;
-typedef struct _ExecutiveSummaryHtmlViewClass ExecutiveSummaryHtmlViewClass;
-
-struct _ExecutiveSummaryHtmlView {
- BonoboObject parent;
-
- ExecutiveSummaryHtmlViewPrivate *private;
-};
-
-struct _ExecutiveSummaryHtmlViewClass {
- BonoboObjectClass parent_class;
-
- void (* handle_uri) (ExecutiveSummaryHtmlView *view,
- char *uri);
-};
-
-GtkType executive_summary_html_view_get_type (void);
-BonoboObject *executive_summary_html_view_new_full (BonoboEventSource *event_source);
-BonoboObject *executive_summary_html_view_new (void);
-
-void executive_summary_html_view_set_html (ExecutiveSummaryHtmlView *view,
- const char *html);
-const char *executive_summary_html_view_get_html (ExecutiveSummaryHtmlView *view);
-BonoboEventSource *executive_summary_html_view_get_event_source (ExecutiveSummaryHtmlView *view);
-
-#endif
-
diff --git a/executive-summary/evolution-services/executive-summary.c b/executive-summary/evolution-services/executive-summary.c
deleted file mode 100644
index 8be483b750..0000000000
--- a/executive-summary/evolution-services/executive-summary.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/* -*- 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@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <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 ())
-
-enum {
- UPDATE,
- SET_TITLE,
- SET_ICON,
- FLASH,
- LAST_SIGNAL
-};
-
-static guint32 summary_signals [LAST_SIGNAL] = { 0 };
-static BonoboObjectClass *parent_class;
-
-struct _ExecutiveSummaryPrivate {
- int dummy;
-};
-
-/* CORBA interface implementation */
-static POA_GNOME_Evolution_Summary_ViewFrame__vepv Summary_vepv;
-
-static POA_GNOME_Evolution_Summary_ViewFrame *
-create_servant (void)
-{
- POA_GNOME_Evolution_Summary_ViewFrame *servant;
- CORBA_Environment ev;
-
- servant = (POA_GNOME_Evolution_Summary_ViewFrame *)g_new0 (BonoboObjectServant, 1);
- servant->vepv = &Summary_vepv;
-
- CORBA_exception_init (&ev);
-
- POA_GNOME_Evolution_Summary_ViewFrame__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;
-}
-
-#if 0
-static void
-impl_GNOME_Evolution_Summary_ViewFrame_setTitle (PortableServer_Servant servant,
- CORBA_long id,
- const CORBA_char *title,
- CORBA_Environment *ev)
-{
- BonoboObject *bonobo_object;
- ExecutiveSummary *summary;
-
- bonobo_object = bonobo_object_from_servant (servant);
- summary = EXECUTIVE_SUMMARY (bonobo_object);
-
- gtk_signal_emit (GTK_OBJECT (summary), summary_signals[SET_TITLE],
- id, title);
-}
-
-static void
-impl_GNOME_Evolution_Summary_ViewFrame_setIcon (PortableServer_Servant servant,
- CORBA_long id,
- const CORBA_char *title,
- CORBA_Environment *ev)
-{
- BonoboObject *bonobo_object;
- ExecutiveSummary *summary;
-
- bonobo_object = bonobo_object_from_servant (servant);
- summary = EXECUTIVE_SUMMARY (bonobo_object);
-
- gtk_signal_emit (GTK_OBJECT (summary), summary_signals[SET_ICON],
- id, title);
-}
-
-static void
-impl_GNOME_Evolution_Summary_ViewFrame_flash (PortableServer_Servant servant,
- CORBA_long id,
- CORBA_Environment *ev)
-{
- BonoboObject *bonobo_object;
- ExecutiveSummary *summary;
-
- bonobo_object = bonobo_object_from_servant (servant);
- summary = EXECUTIVE_SUMMARY (bonobo_object);
-
- gtk_signal_emit (GTK_OBJECT (summary), summary_signals[FLASH], id);
-}
-
-static void
-impl_GNOME_Evolution_Summary_ViewFrame_updateComponent (PortableServer_Servant servant,
- const CORBA_long id,
- const CORBA_char *html,
- CORBA_Environment *ev)
-{
- BonoboObject *bonobo_object;
- ExecutiveSummary *summary;
-
- bonobo_object = bonobo_object_from_servant (servant);
- summary = EXECUTIVE_SUMMARY (bonobo_object);
-
- gtk_signal_emit (GTK_OBJECT (summary), summary_signals[UPDATE],
- id, html);
-}
-#endif
-
-/* 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_GNOME_Evolution_Summary_ViewFrame__vepv *vepv;
- POA_GNOME_Evolution_Summary_ViewFrame__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_GNOME_Evolution_Summary_ViewFrame__epv, 1);
-
- vepv = &Summary_vepv;
- vepv->_base_epv = base_epv;
- vepv->Bonobo_Unknown_epv = bonobo_object_get_epv ();
- vepv->GNOME_Evolution_Summary_ViewFrame_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);
-
- summary_signals[UPDATE] = gtk_signal_new ("update",
- GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ExecutiveSummaryClass, update),
- gtk_marshal_NONE__POINTER_POINTER,
- GTK_TYPE_NONE, 2,
- GTK_TYPE_POINTER,
- GTK_TYPE_POINTER);
- summary_signals[SET_TITLE] = gtk_signal_new ("set_title",
- GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ExecutiveSummaryClass, set_title),
- gtk_marshal_NONE__POINTER_POINTER,
- GTK_TYPE_NONE, 2,
- GTK_TYPE_POINTER,
- GTK_TYPE_POINTER);
- summary_signals[SET_ICON] = gtk_signal_new ("set_icon",
- GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ExecutiveSummaryClass, set_icon),
- gtk_marshal_NONE__POINTER_POINTER,
- GTK_TYPE_NONE, 2,
- GTK_TYPE_POINTER,
- GTK_TYPE_POINTER);
- summary_signals[FLASH] = gtk_signal_new ("flash",
- GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ExecutiveSummaryClass, flash),
- gtk_marshal_NONE__POINTER,
- GTK_TYPE_NONE, 1,
- GTK_TYPE_POINTER);
- gtk_object_class_add_signals (object_class, summary_signals, LAST_SIGNAL);
-
- corba_class_init ();
-}
-
-static void
-executive_summary_init (ExecutiveSummary *es)
-{
- ExecutiveSummaryPrivate *priv;
-
- priv = g_new (ExecutiveSummaryPrivate, 1);
- es->private = priv;
-}
-
-E_MAKE_TYPE (executive_summary, "ExecutiveSummary", ExecutiveSummary,
- executive_summary_class_init, executive_summary_init, PARENT_TYPE);
-
-void
-executive_summary_construct (ExecutiveSummary *es,
- GNOME_Evolution_Summary_ViewFrame corba_object)
-{
- bonobo_object_construct (BONOBO_OBJECT (es), corba_object);
-}
-
-BonoboObject *
-executive_summary_new (void)
-{
- POA_GNOME_Evolution_Summary_ViewFrame *servant;
- GNOME_Evolution_Summary_ViewFrame 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);
-
- return BONOBO_OBJECT (es);
-}
diff --git a/executive-summary/evolution-services/executive-summary.h b/executive-summary/evolution-services/executive-summary.h
deleted file mode 100644
index 704da9a721..0000000000
--- a/executive-summary/evolution-services/executive-summary.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* executive-summary.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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;
-
-struct _ExecutiveSummary {
- BonoboObject parent;
-
- ExecutiveSummaryPrivate *private;
-};
-
-struct _ExecutiveSummaryClass {
- BonoboObjectClass parent_class;
-
- void (* update) (ExecutiveSummary *summary,
- const GNOME_Evolution_Summary_Component component,
- const char *html);
- void (* set_title) (ExecutiveSummary *summary,
- const GNOME_Evolution_Summary_Component component,
- const char *title);
- void (* set_icon) (ExecutiveSummary *summary,
- const GNOME_Evolution_Summary_Component component,
- const char *icon);
- void (* flash) (ExecutiveSummary *summary,
- const GNOME_Evolution_Summary_Component component);
-};
-
-GtkType executive_summary_get_type (void);
-void executive_summary_construct (ExecutiveSummary *es,
- GNOME_Evolution_Summary_ViewFrame corba_object);
-BonoboObject *executive_summary_new (void);
-#endif
-
diff --git a/executive-summary/idl/.cvsignore b/executive-summary/idl/.cvsignore
deleted file mode 100644
index b840c21800..0000000000
--- a/executive-summary/idl/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile.in
-Makefile \ No newline at end of file
diff --git a/executive-summary/idl/Executive-Summary.idl b/executive-summary/idl/Executive-Summary.idl
deleted file mode 100644
index a564e90fe6..0000000000
--- a/executive-summary/idl/Executive-Summary.idl
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <Bonobo.idl>
-#include <SummaryComponent.idl>
-#include <Summary.idl>
-#include <HtmlView.idl>
diff --git a/executive-summary/idl/HtmlView.idl b/executive-summary/idl/HtmlView.idl
deleted file mode 100644
index 627873563f..0000000000
--- a/executive-summary/idl/HtmlView.idl
+++ /dev/null
@@ -1,25 +0,0 @@
-/*-*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * CORBA interface for an HTML view.
- *
- * Authors:
- * Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- */
-
-#include <Bonobo.idl>
-
-module GNOME {
-module Evolution {
-module Summary {
-
- interface HTMLView : Bonobo::Unknown {
- string getHtml ();
-
- void handleURI (in string uri);
- };
-};
-};
-};
-
diff --git a/executive-summary/idl/Makefile.am b/executive-summary/idl/Makefile.am
deleted file mode 100644
index 29a35f43cf..0000000000
--- a/executive-summary/idl/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-EXTRA_DIST = $(IDLS)
-
-IDLS = \
- Executive-Summary.idl \
- HtmlView.idl \
- Summary.idl \
- SummaryComponent.idl \ No newline at end of file
diff --git a/executive-summary/idl/Summary.idl b/executive-summary/idl/Summary.idl
deleted file mode 100644
index c460b856ab..0000000000
--- a/executive-summary/idl/Summary.idl
+++ /dev/null
@@ -1,20 +0,0 @@
-/*-*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * CORBA interface for the Evolution shell.
- *
- * Authors:
- * Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- */
-
-#include <Bonobo.idl>
-
-module GNOME {
-module Evolution {
-module Summary {
- interface ViewFrame: Bonobo::Unknown {
- };
-};
-};
-};
diff --git a/executive-summary/idl/SummaryComponent.idl b/executive-summary/idl/SummaryComponent.idl
deleted file mode 100644
index f6aab37469..0000000000
--- a/executive-summary/idl/SummaryComponent.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * CORBA interface for the Evolution Executive Summary Components.
- *
- * Authors:
- * Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- */
-
-/* TODO: Needs Exceptions */
-
-#include <Bonobo.idl>
-#include <oaf-factory.idl>
-
-module GNOME {
-module Evolution {
-module Summary {
- interface ViewFrame;
-
- interface Component: Bonobo::Unknown {
- };
-
- interface ComponentFactory: Bonobo::Unknown {
- /**
- * createView:
- *
- * Creates a new Component object.
- *
- * Returns: A Component object.
- **/
- Component createView ();
- };
-};
-};
-};
diff --git a/executive-summary/summary.html b/executive-summary/summary.html
deleted file mode 100644
index 16602da2a6..0000000000
--- a/executive-summary/summary.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>
-<head>
-<Title>Evolution Executive Summary</title>
-</head>
-
-<body bgcolor="#ffffff" background="executive-summary-bg.png">
-<table cellpadding="0" cellspacing="0" numcols="3" width="100%" height="100%" border="0">
-<tr>
-<td bgcolor="#9aadbf" height="102">
-<img src="butterfly.png"></td>
-<td width="100%" colspan="2" align="middle" bgcolor="#9aadbf">
-E V O L U T I O N
-</td></tr>
-<!-- Hmmmm.
-<tr><td bgcolor="#9aadbf">&nbsp;</td>
-<td valign="top" width="100"><img src="executive-summary-curve.png"></td>
-<td width="95%">
-
-<table border="0" align="middle">
-<tr>
-<td align="left">
- <form method="get" action="/search" name="f">
- <b>Search On Google</b>
- <input type="text" size="15" name=q>
- <input type="submit" name"submit">
- </form>
-</td>
-</tr>
--->
-<tr>
-<td colspan="2">
-<!-- EVOLUTION EXECUTIVE SUMMARY SERVICES DO NOT REMOVE -->
-</td>
-</tr>
-
-</table>
-
-</td>
-</tr>
-
-</table>
-</body>
-</html>
-
-
diff --git a/executive-summary/test-service/.cvsignore b/executive-summary/test-service/.cvsignore
deleted file mode 100644
index e9a7d4280b..0000000000
--- a/executive-summary/test-service/.cvsignore
+++ /dev/null
@@ -1,9 +0,0 @@
-Makefile.in
-Makefile
-core
-.deps
-.libs
-test-service
-rdf-summary
-GNOME_Evolution_Summary_test.oaf
-GNOME_Evolution_Summary_rdf.oaf
diff --git a/executive-summary/test-service/Makefile.am b/executive-summary/test-service/Makefile.am
deleted file mode 100644
index 458b015c1e..0000000000
--- a/executive-summary/test-service/Makefile.am
+++ /dev/null
@@ -1,43 +0,0 @@
-bin_PROGRAMS = test-service rdf-summary
-
-CFLAGS += -g
-INCLUDES = \
- -I$(top_srcdir) \
- -I$(top_srcdir)/executive-summary \
- $(EXTRA_GNOME_CFLAGS) \
- $(BONOBO_HTML_GNOME_CFLAGS) \
- -DEVOLUTION_LOCALEDIR=\""$(localedir)"\"
-
-test_service_SOURCES = \
- main.c
-
-test_service_LDADD = \
- $(top_builddir)/executive-summary/evolution-services/libevolution-services.la \
- $(BONOBO_VFS_GNOME_LIBS) \
- $(EXTRA_GNOME_LIBS)
-
-#test_bonobo_service_SOURCES = \
-# test-bonobo.c
-
-#test_bonobo_service_LDADD = \
-# $(top_builddir)/executive-summary/evolution-services/libevolution-services.la \
-# $(BONOBO_VFS_GNOME_LIBS) \
-# $(EXTRA_GNOME_LIBS)
-
-rdf_summary_SOURCES = \
- rdf-summary.c
-
-rdf_summary_LDADD = \
- $(top_builddir)/executive-summary/evolution-services/libevolution-services.la \
- $(BONOBO_VFS_GNOME_LIBS) \
- $(EXTRA_GNOME_LIBS)
-
-oafdir = $(datadir)/oaf
-oaf_in_files = \
- GNOME_Evolution_Summary_test.oaf.in \
- GNOME_Evolution_Summary_rdf.oaf.in
-oaf_DATA = $(oaf_in_files:.oaf.in=.oaf)
-
-@XML_I18N_MERGE_OAF_RULE@
-
-EXTRA_DIST = $(oaf_in_files) $(oaf_DATA)
diff --git a/executive-summary/test-service/main.c b/executive-summary/test-service/main.c
deleted file mode 100644
index b80f3e6a89..0000000000
--- a/executive-summary/test-service/main.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* main.c
- * Test Service that counts the number of seconds since it was started.
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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/bonobo-generic-factory.h>
-#include <bonobo/bonobo-persist-stream.h>
-#include <bonobo/bonobo-property-bag.h>
-#include <evolution-services/executive-summary-component.h>
-#include <evolution-services/executive-summary-html-view.h>
-
-#include <liboaf/liboaf.h>
-
-enum {
- PROPERTY_TITLE,
- PROPERTY_ICON
-};
-
-struct _UserData {
- char *title;
- char *icon;
-};
-typedef struct _UserData UserData;
-
-static int running_views = 0;
-
-#define TEST_SERVICE_ID "OAFIID:GNOME_Evolution_Summary_test_ComponentFactory"
-
-static BonoboGenericFactory *factory = NULL;
-
-/* PersistStream callbacks */
-static void
-load_from_stream (BonoboPersistStream *ps,
- Bonobo_Stream stream,
- Bonobo_Persist_ContentType type,
- gpointer data,
- CORBA_Environment *ev)
-{
- char *str;
-
- if (*type && g_strcasecmp (type, "application/x-test-service") != 0) {
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
- ex_Bonobo_Persist_WrongDataType, NULL);
- return;
- }
-
- bonobo_stream_client_read_string (stream, &str, ev);
- if (ev->_major != CORBA_NO_EXCEPTION || str == NULL) {
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
- ex_Bonobo_Persist_WrongDataType, NULL);
- return;
- }
-
- g_print ("Restoring with :%s\n", str);
- g_free (str);
-}
-
-static void
-save_to_stream (BonoboPersistStream *ps,
- const Bonobo_Stream stream,
- Bonobo_Persist_ContentType type,
- gpointer data,
- CORBA_Environment *ev)
-{
-
- if (*type && g_strcasecmp (type, "application/x-test-service") != 0) {
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
- ex_Bonobo_Persist_WrongDataType, NULL);
- return;
- }
-
- bonobo_stream_client_printf (stream, TRUE, ev, "Yo yo yo");
- if (ev->_major != CORBA_NO_EXCEPTION)
- return;
-}
-
-static Bonobo_Persist_ContentTypeList *
-content_types (BonoboPersistStream *ps,
- void *closure,
- CORBA_Environment *ev)
-{
- return bonobo_persist_generate_content_types (1, "application/x-test-service");
-}
-
-/* PropertyControl callback */
-
-/* Propertybag set/get functions */
-static void
-set_property (BonoboPropertyBag *bag,
- const BonoboArg *arg,
- guint arg_id,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- switch (arg_id) {
- case PROPERTY_TITLE:
- g_print ("Setting title.\n");
- break;
-
- case PROPERTY_ICON:
- g_print ("Setting icon.\n");
- break;
-
- default:
- break;
- }
-}
-
-static void
-get_property (BonoboPropertyBag *bag,
- BonoboArg *arg,
- guint arg_id,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- UserData *ud = (UserData *) user_data;
-
- switch (arg_id) {
- case PROPERTY_TITLE:
- BONOBO_ARG_SET_STRING (arg, ud->title);
- break;
-
- case PROPERTY_ICON:
- BONOBO_ARG_SET_STRING (arg, ud->icon);
- break;
-
- default:
- break;
- }
-}
-
-static void
-component_destroyed (GtkObject *object,
- gpointer data)
-{
- UserData *ud = (UserData *) data;
- /* Free the UserData structure */
- g_free (ud->title);
- g_free (ud->icon);
- g_free (ud);
-
- running_views--;
-
- g_print ("Destroy!\n");
- if (running_views <= 0) {
- bonobo_object_unref (BONOBO_OBJECT (factory));
- gtk_main_quit ();
- }
-}
-
-static BonoboObject *
-create_view (ExecutiveSummaryComponentFactory *_factory,
- void *closure)
-{
- BonoboObject *component, *view;
- BonoboPersistStream *stream;
- BonoboPropertyBag *bag;
- BonoboEventSource *event_source;
- UserData *ud;
-
- /* Create the component object */
- component = executive_summary_component_new ();
-
- /* Create the UserData structure and fill it */
- ud = g_new (UserData, 1);
- ud->title = g_strdup ("Hello World!");
- ud->icon = g_strdup ("apple-red.png");
-
- gtk_signal_connect (GTK_OBJECT (component), "destroy",
- GTK_SIGNAL_FUNC (component_destroyed), ud);
-
- /* Now create the aggregate objects. For a "service"
- either a Summary::HTMLView or Bonobo::Control are required.
- Other supported agreggate objects are
- PersistStream: For saving and restoring the component.
- PropertyBag: To set the icon and title and other properties
- PropertyControl: To produce a control to configure the service.
-
- To aggregate the objects
- i) Create the objects using their creation functions
- ii) Use bonobo_object_add_interface ().
- */
-
- /* Create an event source to share with all the interfaces,
- as we can only aggregate one onto the ExecutiveSummaryComponent */
- event_source = bonobo_event_source_new ();
-
- /* The Summary::HTMLView interface */
- view = executive_summary_html_view_new_full (event_source);
- /* Set the default HTML */
- executive_summary_html_view_set_html (EXECUTIVE_SUMMARY_HTML_VIEW (view),
- "<B>Hello World</b>");
-
- bonobo_object_add_interface (component, view);
-
- /* Add the Bonobo::PropertyBag interface */
- bag = bonobo_property_bag_new_full (get_property, set_property,
- event_source, ud);
- /* Add the properties. There should be 2:
- window_title: For the window title.
- window_icon: For the window icon.
- */
- bonobo_property_bag_add (bag,
- "window_title", PROPERTY_TITLE,
- BONOBO_ARG_STRING,
- NULL,
- "The title of this components window", 0);
- bonobo_property_bag_add (bag,
- "window_icon", PROPERTY_ICON,
- BONOBO_ARG_STRING,
- NULL,
- "The icon for this component's window", 0);
-
- /* Now add the interface */
- bonobo_object_add_interface (component, BONOBO_OBJECT(bag));
-
- /* Add the Bonobo::PersistStream interface */
- stream = bonobo_persist_stream_new (load_from_stream, save_to_stream,
- NULL, content_types, NULL);
- bonobo_object_add_interface (component, BONOBO_OBJECT(stream));
-
- running_views++;
- /* Return the ExecutiveSummaryComponent object */
- return component;
-}
-
-static BonoboObject *
-factory_fn (BonoboGenericFactory *generic_factory,
- void *closure)
-{
- BonoboObject *_factory;
-
- /* Create an executive summary component factory */
- _factory = executive_summary_component_factory_new (create_view, NULL);
- return _factory;
-}
-
-void
-test_service_factory_init (void)
-{
- if (factory != NULL)
- return;
-
- /* Register the factory creation function and the IID */
- 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;
-
- /* Init GNOME, oaf and bonobo */
- 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");
- }
-
- /* Register the factory */
- test_service_factory_init ();
-
- /* Enter main */
- bonobo_main ();
-
- return 0;
-}
-
diff --git a/executive-summary/test-service/rdf-summary.c b/executive-summary/test-service/rdf-summary.c
deleted file mode 100644
index 301ededea2..0000000000
--- a/executive-summary/test-service/rdf-summary.c
+++ /dev/null
@@ -1,984 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* RDF viewer Evolution Executive Summary Component.
- * Bonoboised by Iain Holmes <iain@ximian.com>
- * Copyright (C) 2000 Ximian, Inc.
- *
- * Based on code from Portaloo
- * Channel retrieval tool
- *
- * (C) 1998 Alan Cox.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <glib.h>
-#include <gnome-xml/parser.h>
-#include <gnome-xml/xmlmemory.h>
-
-#include <bonobo/bonobo-generic-factory.h>
-#include <bonobo/bonobo-persist-stream.h>
-#include <bonobo/bonobo-property.h>
-#include <bonobo/bonobo-property-bag.h>
-#include <bonobo/bonobo-property-control.h>
-#include <evolution-services/executive-summary-component.h>
-#include <evolution-services/executive-summary-html-view.h>
-#include <liboaf/liboaf.h>
-#include <libgnomevfs/gnome-vfs.h>
-
-int xmlSubstituteEntitiesDefaultValue = 1; /* DV thinks of everything */
-
-static int wipe_trackers = FALSE;
-static int running_views = 0;
-
-static BonoboGenericFactory *factory = NULL;
-#define RDF_SUMMARY_ID "OAFIID:GNOME_Evolution_Summary_rdf_SummaryComponentFactory"
-
-enum {
- PROPERTY_TITLE,
- PROPERTY_ICON
-};
-
-struct _RdfSummary {
- BonoboObject *component;
- BonoboObject *view;
- BonoboPropertyBag *bag;
- BonoboPropertyControl *property_control;
-
- GtkWidget *rdf;
- GtkWidget *g_limit;
- GtkWidget *g_title;
- GtkWidget *g_update;
- GtkWidget *g_update_container;
- GtkAdjustment *adjustment;
-
- char *title;
- char *icon;
- char *location;
- int limit;
- gboolean showtitle;
-
- gboolean usetimer;
- int time;
- int timer;
-
- GString *str;
- char *buffer;
-
- GnomeVFSAsyncHandle *handle;
-
- xmlDocPtr cache;
-};
-typedef struct _RdfSummary RdfSummary;
-
-/************ RDF Parser *******************/
-
-static char *
-layer_find (xmlNodePtr node,
- char *match,
- char *fail)
-{
- while (node!=NULL) {
-#ifdef RDF_DEBUG
- xmlDebugDumpNode (stdout, node, 32);
- printf("%s.\n", node->name);
-#endif
- if (strcasecmp (node->name, match)==0) {
- if (node->childs != NULL && node->childs->content != NULL) {
- return node->childs->content;
- } else {
- return fail;
- }
- }
- node = node->next;
- }
- return fail;
-}
-
-static char *
-layer_find_url (xmlNodePtr node,
- char *match,
- char *fail)
-{
- char *p = layer_find (node, match, fail);
- char *r = p;
- static char *wb = NULL;
- char *w;
-
- if (wb) {
- free (wb);
- }
-
- wb = w = malloc (3 * strlen (p));
-
- if (w == NULL) {
- fprintf(stderr, "Out of memory\n");
- exit(1);
- }
-
- if (*r == ' ') r++; /* Fix UF bug */
-
- while (*r) {
- if (memcmp (r, "&amp;", 5) == 0) {
- *w++ = '&';
- r += 5;
- continue;
- }
- if (memcmp (r, "&lt;", 4) == 0) {
- *w++ = '<';
- r += 4;
- continue;
- }
- if (memcmp (r, "&gt;", 4) == 0) {
- *w++ = '>';
- r += 4;
- continue;
- }
- if (*r == '"' || *r == ' '){
- *w++ = '%';
- *w++ = "0123456789ABCDEF"[*r/16];
- *w++ = "0123456789ABCDEF"[*r&15];
- r++;
- continue;
- }
- *w++ = *r++;
- }
- *w = 0;
- return wb;
-}
-
-static void
-tree_walk (xmlNodePtr root,
- RdfSummary *summary,
- GString *html)
-{
- BonoboArg *arg;
- xmlNodePtr walk;
- xmlNodePtr rewalk = root;
- xmlNodePtr channel = NULL;
- xmlNodePtr image = NULL;
- xmlNodePtr item[16];
- int items = 0;
- int limit = summary->limit;
- int i;
- char *t;
- char n[512];
- char *tmp;
-
- do {
- walk = rewalk;
- rewalk = NULL;
-
- while (walk!=NULL){
-#ifdef RDF_DEBUG
- printf ("%p, %s\n", walk, walk->name);
-#endif
- if (strcasecmp (walk->name, "rdf") == 0) {
- rewalk = walk->childs;
- walk = walk->next;
- continue;
- }
- if (strcasecmp (walk->name, "rss") == 0){
- rewalk = walk->childs;
- walk = walk->next;
- continue;
- }
- /* This is the channel top level */
-#ifdef RDF_DEBUG
- printf ("Top level '%s'.\n", walk->name);
-#endif
- if (strcasecmp (walk->name, "channel") == 0) {
- channel = walk;
- rewalk = channel->childs;
- }
- if (strcasecmp (walk->name, "image") == 0) {
- image = walk;
- g_print ("Image\n");
- }
- if (strcasecmp (walk->name, "item") == 0 && items < 16) {
- item[items++] = walk;
- }
- walk = walk->next;
- }
- }
- while (rewalk);
-
- if (channel == NULL) {
- fprintf(stderr, "No channel definition.\n");
- exit(1);
- }
-
- t = layer_find(channel->childs, "title", "No title");
-
- arg = bonobo_arg_new (BONOBO_ARG_STRING);
-
- if (summary->showtitle) {
- BONOBO_ARG_SET_STRING (arg, t);
- } else {
- BONOBO_ARG_SET_STRING (arg, "");
- }
-
- bonobo_property_bag_set_value (summary->bag,
- "window_title",
- (const BonoboArg *) arg, NULL);
- bonobo_arg_release (arg);
-
- if (image && !wipe_trackers) {
- char *icon;
-
- icon = layer_find_url (image->childs, "url", "apple-red.png");
- arg = bonobo_arg_new (BONOBO_ARG_STRING);
- BONOBO_ARG_SET_STRING (arg, icon);
- bonobo_property_bag_set_value (summary->bag,
- "window_icon",
- (const BonoboArg *) arg, NULL);
- bonobo_arg_release (arg);
-
- }
-
- g_string_append (html, "<br clear=all><FONT size=\"-1\" face=\"helvetica\"><P><UL>\n");
-
- items = MIN (limit, items);
- for (i = 0; i < items; i++) {
- char *p = layer_find (item[i]->childs, "title", "No information");
-
- if (wipe_trackers) {
- char *p = layer_find_url (item[i]->childs, "link", "");
- char *x = strchr (p, '?');
- unsigned char *r, *w;
- int n;
- if (x == NULL)
- continue;
- x++;
- r = x;
- w = x;
- while (*r) {
- if (*r == '+') {
- *w++ = ' ';
- } else if (*r == '%') {
- sscanf (r+1, "%02x", &n);
- *w++ = n;
- r += 2;
- } else {
- *w++ = *r;
- }
- r++;
- }
- *w = 0;
- tmp = g_strdup_printf ("<LI><A href=\"%s\">\n", x+4);
- g_string_append (html, tmp);
- g_free (tmp);
- }
- else {
- tmp = g_strdup_printf ("<LI><A href=\"%s\">\n", layer_find_url(item[i]->childs, "link", ""));
- g_string_append (html, tmp);
- g_free (tmp);
- }
-
- tmp = g_strdup_printf ("%s\n</A>\n", p);
- g_string_append (html, tmp);
- g_free (tmp);
- }
- g_string_append (html, "</UL></FONT>\n");
-}
-
-/********* ExecutiveSummaryComponent section **************/
-static void
-view_destroyed (GtkObject *object,
- gpointer data)
-{
- RdfSummary *summary = (RdfSummary *) data;
-
- g_warning ("RDF: Point 1");
- if (summary->handle)
- gnome_vfs_async_cancel (summary->handle);
-
- g_warning ("RDF: Point 2");
-
- if (summary->cache != NULL)
- xmlFreeDoc (summary->cache);
-
- g_free (summary->title);
- g_free (summary->icon);
- g_free (summary);
-
- running_views--;
- g_print ("Running_views: %d\n", running_views);
- if (running_views <= 0) {
- gtk_main_quit ();
- }
- g_warning ("RDF: Point 3");
-}
-
-/* PersistStream callbacks */
-static void
-load_from_stream (BonoboPersistStream *ps,
- Bonobo_Stream stream,
- Bonobo_Persist_ContentType type,
- gpointer data,
- CORBA_Environment *ev)
-{
- RdfSummary *summary = (RdfSummary *) data;
- char *str;
- xmlChar *xml_str;
- xmlDocPtr doc;
- xmlNodePtr root, children;
-
- if (*type && g_strcasecmp (type, "application/x-rdf-summary") != 0) {
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
- ex_Bonobo_Persist_WrongDataType, NULL);
- return;
- }
-
- bonobo_stream_client_read_string (stream, &str, ev);
- if (ev->_major != CORBA_NO_EXCEPTION || str == NULL) {
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
- ex_Bonobo_Persist_WrongDataType, NULL);
- return;
- }
-
- doc = xmlParseDoc ((xmlChar *) str);
-
- if (doc == NULL) {
- g_warning ("Bad data: %s!", str);
- g_free (str);
- return;
- }
-
- g_free (str);
-
- root = doc->root;
- children = root->childs;
- while (children) {
- if (strcasecmp (children->name, "location") == 0) {
- xml_str = xmlNodeListGetString (doc, children->childs, 1);
- summary->location = g_strdup (xml_str);
- xmlFree (xml_str);
-
- children = children->next;
- continue;
- }
-
- if (strcasecmp (children->name, "limit") == 0) {
- xml_str = xmlNodeListGetString (doc, children->childs, 1);
- summary->limit = atoi (xml_str);
- xmlFree (xml_str);
-
- children = children->next;
- continue;
- }
-
- if (strcasecmp (children->name, "showtitle") == 0) {
- xml_str = xmlNodeListGetString (doc, children->childs, 1);
- summary->showtitle = atoi (xml_str);
- xmlFree (xml_str);
-
- children = children->next;
- continue;
- }
-
- if (strcasecmp (children->name, "usetimer") == 0) {
- xml_str = xmlNodeListGetString (doc, children->childs, 1);
- summary->usetimer = atoi (xml_str);
- xmlFree (xml_str);
-
- children = children->next;
- continue;
- }
-
- if (strcasecmp (children->name, "timer") == 0) {
- xml_str = xmlNodeListGetString (doc, children->childs, 1);
- summary->time = atoi (xml_str);
- xmlFree (xml_str);
-
- children = children->next;
- continue;
- }
-
- g_print ("Unknown name: %s\n", children->name);
- children = children->next;
- }
- xmlFreeDoc (doc);
-}
-
-static char *
-summary_to_string (RdfSummary *summary)
-{
- xmlChar *out_str;
- int out_len = 0;
- xmlDocPtr doc;
- xmlNodePtr root;
- xmlNsPtr ns;
- char *tmp_str;
-
- doc = xmlNewDoc ("1.0");
- ns = xmlNewGlobalNs (doc, "www.ximian.com", "rdf");
-
- doc->root = xmlNewDocNode (doc, ns, "rdf-summary", NULL);
-
- xmlNewChild (doc->root, ns, "location", summary->location);
- tmp_str = g_strdup_printf ("%d", summary->limit);
- xmlNewChild (doc->root, ns, "limit", tmp_str);
- g_free (tmp_str);
-
- tmp_str = g_strdup_printf ("%d", summary->showtitle);
- xmlNewChild (doc->root, ns, "showtitle", tmp_str);
- g_free (tmp_str);
-
- tmp_str = g_strdup_printf ("%d", summary->usetimer);
- xmlNewChild (doc->root, ns, "usetimer", tmp_str);
- g_free (tmp_str);
-
- tmp_str = g_strdup_printf ("%d", summary->time);
- xmlNewChild (doc->root, ns, "timer", tmp_str);
- g_free (tmp_str);
-
- xmlDocDumpMemory (doc, &out_str, &out_len);
-
- return out_str;
-}
-
-static void
-save_to_stream (BonoboPersistStream *ps,
- const Bonobo_Stream stream,
- Bonobo_Persist_ContentType type,
- gpointer data,
- CORBA_Environment *ev)
-{
- RdfSummary *summary = (RdfSummary *) data;
- char *str;
-
- if (*type && g_strcasecmp (type, "application/x-rdf-summary") != 0) {
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
- ex_Bonobo_Persist_WrongDataType, NULL);
- return;
- }
-
- str = summary_to_string (summary);
- if (str)
- bonobo_stream_client_printf (stream, TRUE, ev, str);
- xmlFree (str);
-
- return;
-}
-
-static Bonobo_Persist_ContentTypeList *
-content_types (BonoboPersistStream *ps,
- void *closure,
- CORBA_Environment *ev)
-{
- return bonobo_persist_generate_content_types (1, "application/x-rdf-summary");
-}
-
-static void
-display_doc (RdfSummary *summary)
-{
- GString *html;
-
- html = g_string_new ("");
-
- tree_walk (summary->cache->root, summary, html);
- executive_summary_html_view_set_html (EXECUTIVE_SUMMARY_HTML_VIEW (summary->view), html->str);
- g_string_free (html, TRUE);
-}
-
-static void
-close_callback (GnomeVFSAsyncHandle *handle,
- GnomeVFSResult result,
- RdfSummary *summary)
-{
- xmlDocPtr doc;
- char *xml;
-
- if (summary == NULL)
- return;
-
- summary->handle = NULL;
- g_free (summary->buffer);
- xml = summary->str->str;
- g_string_free (summary->str, FALSE);
-
- if (summary->cache != NULL)
- xmlFreeDoc (summary->cache);
-
- doc = xmlParseMemory (xml, strlen (xml));
- if (doc == NULL) {
- char *emsg;
- BonoboArg *arg;
-
- arg = bonobo_arg_new (BONOBO_ARG_STRING);
- BONOBO_ARG_SET_STRING (arg, _("Error"));
- bonobo_property_bag_set_value (summary->bag,
- "window_title",
- (const BonoboArg *) arg,
- NULL);
- bonobo_arg_release (arg);
-
- emsg = g_strdup_printf ("<b>Cannot open location:<br>%s</b>",
- summary->location);
- executive_summary_html_view_set_html (EXECUTIVE_SUMMARY_HTML_VIEW (summary->view), emsg);
- g_free (emsg);
- g_free (xml);
- return;
- }
-
- g_free (xml);
-
- /* Cache it for later */
- summary->cache = doc;
-
- /* Draw it */
- display_doc (summary);
-}
-
-static void
-read_callback (GnomeVFSAsyncHandle *handle,
- GnomeVFSResult result,
- gpointer buffer,
- GnomeVFSFileSize bytes_requested,
- GnomeVFSFileSize bytes_read,
- RdfSummary *summary)
-{
- if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) {
- char *emsg;
- BonoboArg *arg;
-
- arg = bonobo_arg_new (BONOBO_ARG_STRING);
- BONOBO_ARG_SET_STRING (arg, _("Error"));
- bonobo_property_bag_set_value (summary->bag,
- "window_title",
- (const BonoboArg *) arg,
- NULL);
- bonobo_arg_release (arg);
-
- emsg = g_strdup_printf ("<b>Cannot open location:<br>%s</b>",
- summary->location);
- executive_summary_html_view_set_html (EXECUTIVE_SUMMARY_HTML_VIEW (summary->view), emsg);
- g_free (emsg);
- gnome_vfs_async_close (handle,
- (GnomeVFSAsyncCloseCallback) close_callback,
- NULL);
- g_print ("NULLING\n");
- summary->handle = NULL;
- }
-
- if (bytes_read == 0) {
- /* EOF */
- gnome_vfs_async_close (handle,
- (GnomeVFSAsyncCloseCallback) close_callback,
- summary);
- } else {
- *((char *) buffer + bytes_read) = 0;
- g_string_append (summary->str, (const char *) buffer);
- gnome_vfs_async_read (handle, buffer, 4095,
- (GnomeVFSAsyncReadCallback) read_callback,
- summary);
- }
-}
-
-static void
-open_callback (GnomeVFSAsyncHandle *handle,
- GnomeVFSResult result,
- RdfSummary *summary)
-{
- GList *uri;
- char *buffer;
-
- if (result != GNOME_VFS_OK) {
- char *emsg;
- BonoboArg *arg;
-
- arg = bonobo_arg_new (BONOBO_ARG_STRING);
- BONOBO_ARG_SET_STRING (arg, _("Error"));
- bonobo_property_bag_set_value (summary->bag,
- "window_title",
- (const BonoboArg *) arg,
- NULL);
- bonobo_arg_release (arg);
-
- emsg = g_strdup_printf ("<b>Cannot open location:<br>%s</b>",
- summary->location);
- executive_summary_html_view_set_html (EXECUTIVE_SUMMARY_HTML_VIEW (summary->view), emsg);
- g_free (emsg);
- summary->handle = NULL;
- return;
- }
-
- summary->str = g_string_new ("");
- summary->buffer = g_new (char, 4096);
-
- gnome_vfs_async_read (handle, summary->buffer, 4095,
- (GnomeVFSAsyncReadCallback) read_callback,
- summary);
-}
-
-static int
-download (RdfSummary *summary)
-{
- GnomeVFSAsyncHandle *handle;
- char *html = "<b>Loading RDF file. . .<br>Please wait</b>";
-
- executive_summary_html_view_set_html (EXECUTIVE_SUMMARY_HTML_VIEW (summary->view),
- html);
-
- gnome_vfs_async_open (&handle, summary->location, GNOME_VFS_OPEN_READ,
- (GnomeVFSAsyncOpenCallback) open_callback,
- summary);
-
- summary->handle = handle;
- return FALSE;
-}
-
-static void
-download_cb (GtkWidget *w,
- RdfSummary *summary)
-{
- download (summary);
-}
-
-static void
-get_prop (BonoboPropertyBag *bag,
- BonoboArg *arg,
- guint arg_id,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- RdfSummary *summary = (RdfSummary *) user_data;
-
- switch (arg_id) {
- case PROPERTY_TITLE:
- BONOBO_ARG_SET_STRING (arg, summary->title);
- break;
-
- case PROPERTY_ICON:
- BONOBO_ARG_SET_STRING (arg, summary->icon);
- break;
-
- default:
- break;
- }
-}
-
-static void
-set_prop (BonoboPropertyBag *bag,
- const BonoboArg *arg,
- guint arg_id,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- RdfSummary *summary = (RdfSummary *) user_data;
-
- switch (arg_id) {
- case PROPERTY_TITLE:
- if (summary->title)
- g_free (summary->title);
-
- summary->title = g_strdup (BONOBO_ARG_GET_STRING (arg));
- g_print ("Notify listener!\n");
- bonobo_property_bag_notify_listeners (bag, "window_title",
- arg, NULL);
- break;
-
- case PROPERTY_ICON:
- if (summary->icon)
- g_free (summary->icon);
-
- summary->icon = g_strdup (BONOBO_ARG_GET_STRING (arg));
- g_print ("Notify listener 2\n");
- bonobo_property_bag_notify_listeners (bag, "window_icon",
- arg, NULL);
- break;
-
- default:
- break;
- }
-}
-
-static void
-item_changed (GtkWidget *widget,
- RdfSummary *summary)
-{
- if (widget == summary->g_update) {
- summary->usetimer = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
- gtk_widget_set_sensitive (summary->g_update_container,
- summary->usetimer);
- }
-
- bonobo_property_control_changed (summary->property_control, NULL);
-}
-
-static BonoboControl *
-property_control (BonoboPropertyControl *property_control,
- int page_num,
- gpointer user_data)
-{
- BonoboControl *control;
- RdfSummary *summary = (RdfSummary *) user_data;
- GtkWidget *container, *label, *hbox, *spinner, *button;
- char *climit;
-
- container = gtk_vbox_new (FALSE, 2);
- gtk_container_set_border_width (GTK_CONTAINER (container), 2);
- hbox = gtk_hbox_new (FALSE, 2);
-
- label = gtk_label_new ("Location:");
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
- summary->rdf = gtk_entry_new ();
- if (summary->location)
- gtk_entry_set_text (GTK_ENTRY (summary->rdf), summary->location);
-
- gtk_signal_connect (GTK_OBJECT (summary->rdf), "changed",
- GTK_SIGNAL_FUNC (item_changed), summary);
-
- gtk_box_pack_start (GTK_BOX (hbox), summary->rdf, TRUE, TRUE, 0);
-
- gtk_box_pack_start (GTK_BOX (container), hbox, FALSE, FALSE, 0);
-
- hbox = gtk_hbox_new (FALSE, 2);
-
- label = gtk_label_new ("Maximum number of entries:");
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
- summary->g_limit = gtk_entry_new ();
- climit = g_strdup_printf ("%d", summary->limit);
- gtk_entry_set_text (GTK_ENTRY (summary->g_limit), climit);
- g_free (climit);
-
- gtk_signal_connect (GTK_OBJECT (summary->g_limit), "changed",
- GTK_SIGNAL_FUNC (item_changed), summary);
-
- gtk_box_pack_start (GTK_BOX (hbox), summary->g_limit, TRUE, TRUE, 0);
-
- hbox = gtk_hbox_new (FALSE, 2);
-
- /* FIXME: Do this better? */
- label = gtk_label_new ("Show window title");
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
- summary->g_title = gtk_check_button_new ();
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (summary->g_title),
- summary->showtitle);
-
- gtk_signal_connect (GTK_OBJECT (summary->g_title), "toggled",
- GTK_SIGNAL_FUNC (item_changed), summary);
-
- gtk_box_pack_start (GTK_BOX (hbox), summary->g_title, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (container), hbox, FALSE, FALSE, 0);
-
- hbox = gtk_hbox_new (FALSE, 2);
-
- /* Update */
- hbox = gtk_hbox_new (FALSE, 2);
- label = gtk_label_new (_("Update automatically"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
- summary->g_update = gtk_check_button_new ();
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (summary->g_update),
- summary->usetimer);
-
- gtk_signal_connect (GTK_OBJECT (summary->g_update), "toggled",
- GTK_SIGNAL_FUNC (item_changed), summary);
- gtk_box_pack_start (GTK_BOX (hbox), summary->g_update, TRUE, TRUE, 0);
-
- button = gtk_button_new_with_label (_("Update now"));
- gtk_signal_connect (GTK_OBJECT (button), "clicked",
- GTK_SIGNAL_FUNC (download_cb), summary);
- gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (container), hbox, FALSE, FALSE, 0);
-
- /* Timer */
- hbox = gtk_hbox_new (FALSE, 2);
- summary->g_update_container = hbox;
-
- label = gtk_label_new (_("Update every "));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
- summary->adjustment = GTK_ADJUSTMENT(gtk_adjustment_new (summary->time / 1000 / 60,
- 1.0, 1000.0, 1.0, 10.0, 1.0));
- spinner = gtk_spin_button_new (summary->adjustment, 1.0, 0);
- gtk_signal_connect (GTK_OBJECT (spinner), "changed",
- GTK_SIGNAL_FUNC (item_changed), summary);
-
- gtk_box_pack_start (GTK_BOX (hbox), spinner, FALSE, FALSE, 0);
-
- label = gtk_label_new (_("minutes"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
- gtk_box_pack_start (GTK_BOX (container), hbox, FALSE, FALSE, 0);
- gtk_widget_set_sensitive (hbox, summary->usetimer);
-
- gtk_widget_show_all (container);
-
- control = bonobo_control_new (container);
- return control;
-}
-
-static void
-property_action (GtkObject *property_control,
- int page_num,
- Bonobo_PropertyControl_Action action,
- RdfSummary *summary)
-{
- gboolean changed = FALSE;
- char *old_location;
-
- switch (action) {
- case Bonobo_PropertyControl_APPLY:
- old_location = summary->location;
- summary->showtitle = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (summary->g_title));
- summary->location = g_strdup (gtk_entry_get_text (GTK_ENTRY (summary->rdf)));
- if (strcmp (old_location, summary->location) != 0)
- changed = TRUE;
-
- summary->limit = atoi (gtk_entry_get_text (GTK_ENTRY (summary->g_limit)));
- summary->time = summary->adjustment->value * 60 * 1000;
- if (summary->timer)
- gtk_timeout_remove (summary->timer);
- summary->timer = gtk_timeout_add (summary->time,
- (GSourceFunc)download, summary);
-
- if (changed)
- g_idle_add ((GSourceFunc) download, summary);
- else
- g_idle_add ((GSourceFunc) display_doc, summary);
-
- g_free (old_location);
- break;
-
- case Bonobo_PropertyControl_HELP:
- g_print ("HELP: Page %d!\n", page_num);
- break;
-
- default:
- break;
- }
-}
-
-static BonoboObject *
-create_view (ExecutiveSummaryComponentFactory *_factory,
- void *closure)
-{
- RdfSummary *summary;
- BonoboObject *component, *view;
- BonoboEventSource *event_source;
- BonoboPersistStream *stream;
- BonoboPropertyBag *bag;
- BonoboPropertyControl *property;
-
- summary = g_new (RdfSummary, 1);
- summary->icon = g_strdup ("apple-green.png");
- summary->title = g_strdup ("Downloading...");
- summary->location = g_strdup ("http://news.gnome.org/gnome-news/rdf");
- summary->limit = 10;
- summary->showtitle = TRUE;
-
- summary->cache = NULL;
-
- summary->usetimer = TRUE;
- summary->time = 600000; /* 10 minutes */
- summary->timer = gtk_timeout_add (summary->time, (GSourceFunc) download,
- summary);
-
- component = executive_summary_component_new ();
- gtk_signal_connect (GTK_OBJECT (component), "destroy",
- GTK_SIGNAL_FUNC (view_destroyed), summary);
-
- summary->component = component;
-
- /* Share the event source between the ExecutiveSummaryHtmlView and the
- BonoboPropertyControl as we can only have one Bonobo::EventSource
- interface aggregated */
- event_source = bonobo_event_source_new ();
-
- /* Summary::HtmlView */
- view = executive_summary_html_view_new_full (event_source);
-
- summary->view = view;
- bonobo_object_add_interface (component, view);
-
- /* Bonobo::PropertyBag */
- bag = bonobo_property_bag_new_full (get_prop, set_prop,
- event_source, summary);
-
- summary->bag = bag;
- bonobo_property_bag_add (bag,
- "window_title", PROPERTY_TITLE,
- BONOBO_ARG_STRING, NULL,
- "The title of this component's window", 0);
- bonobo_property_bag_add (bag,
- "window_icon", PROPERTY_ICON,
- BONOBO_ARG_STRING, NULL,
- "The icon for this component's window", 0);
- bonobo_object_add_interface (component, BONOBO_OBJECT(bag));
-
- /* Bonobo::PropertyControl */
- property = bonobo_property_control_new_full (property_control, 1,
- event_source,
- summary);
- summary->property_control = property;
-
- gtk_signal_connect (GTK_OBJECT (property), "action",
- GTK_SIGNAL_FUNC (property_action), summary);
-
- bonobo_object_add_interface (component, BONOBO_OBJECT(property));
-
- /* Bonobo::PersistStream */
- stream = bonobo_persist_stream_new (load_from_stream, save_to_stream,
- NULL, content_types, summary);
- bonobo_object_add_interface (component, BONOBO_OBJECT (stream));
-
- running_views++;
- gtk_idle_add ((GSourceFunc) download, summary);
-
- return component;
-}
-
-static BonoboObject *
-factory_fn (BonoboGenericFactory *_factory,
- void *closure)
-{
- BonoboObject *component_factory;
-
- component_factory = executive_summary_component_factory_new (create_view, NULL);
- return component_factory;
-}
-
-static void
-factory_init (void)
-{
- if (factory != NULL) {
- return;
- }
-
- factory = bonobo_generic_factory_new (RDF_SUMMARY_ID, factory_fn, NULL);
- if (factory == NULL) {
- g_error ("Cannot initialize factory");
- }
-}
-
-int
-main (int argc,
- char *argv[])
-{
- CORBA_ORB orb;
-
- bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR);
- textdomain (PACKAGE);
-
- gnome_init_with_popt_table ("RDF-Summary", VERSION,
- argc, argv, oaf_popt_options, 0, NULL);
- orb = oaf_init (argc, argv);
- gnome_vfs_init ();
-
- if (bonobo_init (orb, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE) {
- g_error ("Could not initialize Bonobo");
- }
-
- factory_init ();
- bonobo_main ();
-
- return 0;
-}
-
diff --git a/executive-summary/widgets/.cvsignore b/executive-summary/widgets/.cvsignore
deleted file mode 100644
index ddca354b6d..0000000000
--- a/executive-summary/widgets/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-Makefile.in
-Makefile
-.deps
-.libs
-esummary-window-test \ No newline at end of file
diff --git a/executive-summary/widgets/Makefile.am b/executive-summary/widgets/Makefile.am
deleted file mode 100644
index f83d956d63..0000000000
--- a/executive-summary/widgets/Makefile.am
+++ /dev/null
@@ -1,32 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir) \
- -I$(includedir) \
- $(GNOME_INCLUDEDIR) \
- -DG_LOG_DOMAIN=\"Executive-Summary-Widgets\" \
- -g \
- -Wall \
- -Wmissing-prototypes \
- -Wmissing-declarations
-
-noinst_LIBRARIES = libesummary-widgets.a
-
-libesummary_widgets_a_SOURCES = \
- e-summary-subwindow.c \
- e-summary-subwindow.h \
- e-summary-titlebar.c \
- e-summary-titlebar.h \
- e-summary-title-button.c \
- e-summary-title-button.h
-
-noinst_PROGRAMS = \
- esummary-window-test
-
-esummary_window_test_SOURCES = \
- esummary-window-test.c
-
-esummary_window_test_LDADD = \
- $(EXTRA_GNOME_LIBS) \
- libesummary-widgets.a \
- $(BONOBO_GNOME_LIBS) \
- $(top_builddir)/e-util/libeutil.la
-
diff --git a/executive-summary/widgets/e-summary-subwindow.c b/executive-summary/widgets/e-summary-subwindow.c
deleted file mode 100644
index 336b73bb76..0000000000
--- a/executive-summary/widgets/e-summary-subwindow.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary.c
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <gtk/gtkframe.h>
-#include <gal/util/e-util.h>
-#include <gal/widgets/e-font.h>
-#include <gal/e-text/e-text.h>
-#include <libgnomeui/gnome-canvas.h>
-#include <libgnomeui/gnome-canvas-widget.h>
-
-#include "e-summary-subwindow.h"
-#include "e-summary-titlebar.h"
-
-#define PARENT_TYPE (gnome_canvas_group_get_type ())
-#define TITLEBAR_BORDER_WIDTH 2
-
-static void e_summary_subwindow_destroy (GtkObject *object);
-static void e_summary_subwindow_class_init (GtkObjectClass *object_class);
-static void e_summary_subwindow_init (GtkObject *object);
-
-static GnomeCanvasGroupClass *parent_class;
-
-struct _ESummarySubwindowPrivate {
- GnomeCanvasItem *titlebar;
- GnomeCanvasItem *contents;
-
- GtkWidget *container;
-
- char *title;
-};
-
-enum {
- ARG_0,
- ARG_X,
- ARG_Y,
- ARG_WIDTH,
- ARG_HEIGHT,
- ARG_STATE
-};
-
-enum {
- CLOSE_CLICKED,
- SHADE_CLICKED,
- EDIT_CLICKED,
- LAST_SIGNAL
-};
-
-static guint32 e_summary_subwindow_signals[LAST_SIGNAL] = { 0 };
-
-static void
-e_summary_subwindow_destroy (GtkObject *object)
-{
- ESummarySubwindow *subwindow = E_SUMMARY_SUBWINDOW (object);
- ESummarySubwindowPrivate *priv;
-
- priv = subwindow->private;
-
- if (priv == NULL)
- return;
-
- if (priv->container) {
- gtk_widget_destroy (priv->container);
- priv->container = NULL;
- }
-
- if (priv->title) {
- g_free (priv->title);
- priv->title = NULL;
- }
-
- g_free (subwindow->private);
- subwindow->private = NULL;
-
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-}
-
-static void
-e_summary_subwindow_realize (GnomeCanvasItem *item)
-{
- if (GNOME_CANVAS_ITEM_CLASS (parent_class)->realize)
- (* GNOME_CANVAS_ITEM_CLASS (parent_class)->realize) (item);
-}
-
-static void
-e_summary_subwindow_unrealize (GnomeCanvasItem *item)
-{
- if (GNOME_CANVAS_ITEM_CLASS (parent_class)->unrealize)
- (* GNOME_CANVAS_ITEM_CLASS (parent_class)->unrealize) (item);
-}
-
-static void
-e_summary_subwindow_class_init (GtkObjectClass *object_class)
-{
- GnomeCanvasItemClass *item_class;
-
- item_class = (GnomeCanvasItemClass *) object_class;
-
- object_class->destroy = e_summary_subwindow_destroy;
-
- item_class->realize = e_summary_subwindow_realize;
- item_class->unrealize = e_summary_subwindow_unrealize;
-
- parent_class = gtk_type_class (PARENT_TYPE);
-}
-
-static void
-e_summary_subwindow_init (GtkObject *object)
-{
- ESummarySubwindow *subwindow = E_SUMMARY_SUBWINDOW (object);
- ESummarySubwindowPrivate *priv;
-
- subwindow->private = g_new0 (ESummarySubwindowPrivate, 1);
- priv = subwindow->private;
-
- priv->title = NULL;
-}
-
-E_MAKE_TYPE (e_summary_subwindow, "ESummarySubwindow", ESummarySubwindow,
- e_summary_subwindow_class_init, e_summary_subwindow_init,
- PARENT_TYPE);
-
-static void
-container_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation,
- ESummarySubwindow *subwindow)
-{
- ESummarySubwindowPrivate *priv;
-
- g_return_if_fail (subwindow != NULL);
- g_return_if_fail (IS_E_SUMMARY_SUBWINDOW (subwindow));
-
- priv = subwindow->private;
-
- gnome_canvas_item_set (priv->titlebar,
- "width", (double) allocation->width - 1,
- NULL);
-
-}
-
-static void
-edit_cb (GnomeCanvasItem *item,
- ESummarySubwindow *subwindow)
-{
- g_print ("EDIT!\n");
-}
-
-static void
-shade_cb (GnomeCanvasItem *item,
- ESummarySubwindow *subwindow)
-{
- g_print ("SHADE!\n");
-}
-
-static void
-close_cb (GnomeCanvasItem *item,
- ESummarySubwindow *subwindow)
-{
- g_print ("CLOSE!\n");
- gtk_object_destroy (GTK_OBJECT (subwindow));
-}
-
-void
-e_summary_subwindow_construct (GnomeCanvasItem *item)
-{
- GnomeCanvasGroup *group;
- ESummarySubwindow *subwindow;
- ESummarySubwindowPrivate *priv;
- EFont *font;
- int titlebar_height;
-
- g_return_if_fail (item != NULL);
- g_return_if_fail (IS_E_SUMMARY_SUBWINDOW (item));
-
- subwindow = E_SUMMARY_SUBWINDOW (item);
- priv = subwindow->private;
-
- group = GNOME_CANVAS_GROUP (item);
-
- font = e_font_from_gdk_font ( ((GtkWidget *) item->canvas)->style->font);
-
- titlebar_height = 18 + 2 * TITLEBAR_BORDER_WIDTH; /* FIXME: Not hardcoded */
-
- priv->titlebar = gnome_canvas_item_new (group,
- e_summary_titlebar_get_type (),
- "text", "Titlebar",
- "width", 100.0,
- NULL);
- gtk_signal_connect (GTK_OBJECT (priv->titlebar), "edit",
- GTK_SIGNAL_FUNC (edit_cb), subwindow);
- gtk_signal_connect (GTK_OBJECT (priv->titlebar), "shade",
- GTK_SIGNAL_FUNC (shade_cb), subwindow);
- gtk_signal_connect (GTK_OBJECT (priv->titlebar), "close",
- GTK_SIGNAL_FUNC (close_cb), subwindow);
-
- priv->container = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (priv->container), GTK_SHADOW_ETCHED_IN);
- gtk_widget_show (priv->container);
-
- priv->contents = gnome_canvas_item_new (group,
- gnome_canvas_widget_get_type (),
- "x", (double) 0,
- "y", (double) titlebar_height + 1,
- "widget", priv->container,
- NULL);
- gtk_signal_connect (GTK_OBJECT (priv->container), "size_allocate",
- GTK_SIGNAL_FUNC (container_size_allocate), subwindow);
-
-}
-
-GnomeCanvasItem *
-e_summary_subwindow_new (GnomeCanvasGroup *parent,
- double x,
- double y)
-{
- GnomeCanvasItem *item;
-
- item = gnome_canvas_item_new (parent, e_summary_subwindow_get_type (),
- "x", x,
- "y", y,
- NULL);
- e_summary_subwindow_construct (item);
-
- return item;
-}
-
-/* These functions mimic the GtkContainer methods */
-
-void
-e_summary_subwindow_add (ESummarySubwindow *subwindow,
- GtkWidget *widget)
-{
- ESummarySubwindowPrivate *priv;
-
- g_return_if_fail (subwindow != NULL);
- g_return_if_fail (IS_E_SUMMARY_SUBWINDOW (subwindow));
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_WIDGET (widget));
-
- priv = subwindow->private;
-
- gtk_container_add (GTK_CONTAINER (priv->container), widget);
-
-}
-
-void
-e_summary_subwindow_remove (ESummarySubwindow *subwindow,
- GtkWidget *widget)
-{
- ESummarySubwindowPrivate *priv;
-
- g_return_if_fail (subwindow != NULL);
- g_return_if_fail (IS_E_SUMMARY_SUBWINDOW (subwindow));
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_WIDGET (widget));
-
- priv = subwindow->private;
-
- gtk_container_remove (GTK_CONTAINER (priv->container), widget);
-}
-
-void
-e_summary_subwindow_set_title (ESummarySubwindow *subwindow,
- const char *title)
-{
- ESummarySubwindowPrivate *priv;
-
- g_return_if_fail (subwindow != NULL);
- g_return_if_fail (IS_E_SUMMARY_SUBWINDOW (subwindow));
- g_return_if_fail (title != NULL);
-
- priv = subwindow->private;
- if (priv->title)
- g_free (priv->title);
-
- priv->title = g_strdup (title);
-}
diff --git a/executive-summary/widgets/e-summary-subwindow.h b/executive-summary/widgets/e-summary-subwindow.h
deleted file mode 100644
index 27771d296d..0000000000
--- a/executive-summary/widgets/e-summary-subwindow.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-subwindow.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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_SUBWINDOW_H__
-#define _E_SUMMARY_SUBWINDIW_H__
-
-#include <gtk/gtksignal.h>
-#include <libgnomeui/gnome-canvas.h>
-
-#define E_SUMMARY_SUBWINDOW_TYPE (e_summary_subwindow_get_type ())
-#define E_SUMMARY_SUBWINDOW(obj) (GTK_CHECK_CAST ((obj), E_SUMMARY_SUBWINDOW_TYPE, ESummarySubwindow))
-#define E_SUMMARY_SUBWINDOW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_SUMMARY_SUBWINDOW_TYPE, ESummarySubwindowClass))
-#define IS_E_SUMMARY_SUBWINDOW(obj) (GTK_CHECK_TYPE ((obj), E_SUMMARY_SUBWINDOW_TYPE))
-#define IS_E_SUMMARY_SUBWINDOW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_SUMMARY_SUBWINDOW_TYPE))
-
-typedef struct _ESummarySubwindowPrivate ESummarySubwindowPrivate;
-typedef struct _ESummarySubwindow ESummarySubwindow;
-typedef struct _ESummarySubwindowClass ESummarySubwindowClass;
-
-struct _ESummarySubwindow {
- GnomeCanvasGroup parent;
-
- ESummarySubwindowPrivate *private;
-};
-
-struct _ESummarySubwindowClass {
- GnomeCanvasGroupClass parent_class;
-
- void (*close_clicked) (ESummarySubwindow *window);
- void (*shade_clicked) (ESummarySubwindow *window);
- void (*edit_clicked) (ESummarySubwindow *window);
-};
-
-GtkType e_summary_subwindow_get_type (void);
-
-void e_summary_subwindow_construct (GnomeCanvasItem *subwindow);
-GnomeCanvasItem *e_summary_subwindow_new (GnomeCanvasGroup *parent,
- double x,
- double y);
-
-void e_summary_subwindow_add (ESummarySubwindow *subwindow,
- GtkWidget *widget);
-void e_summary_subwindow_remove (ESummarySubwindow *subwindow,
- GtkWidget *widget);
-void e_summary_subwindow_set_title (ESummarySubwindow *subwindow,
- const char *title);
-
-#endif
diff --git a/executive-summary/widgets/e-summary-title-button.c b/executive-summary/widgets/e-summary-title-button.c
deleted file mode 100644
index 518ce692c6..0000000000
--- a/executive-summary/widgets/e-summary-title-button.c
+++ /dev/null
@@ -1,402 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-title-buttons.c
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <libgnomeui/gnome-canvas-rect-ellipse.h>
-#include <gal/util/e-util.h>
-
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include "e-summary-title-button.h"
-
-#define PARENT_TYPE (gnome_canvas_rect_get_type ())
-
-enum {
- ARG_0,
- ARG_PIXBUF,
- ARG_X,
- ARG_Y
-};
-
-enum {
- CLICKED,
- LAST_SIGNAL
-};
-
-static void e_summary_title_button_destroy (GtkObject *object);
-static void e_summary_title_button_set_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id);
-static void e_summary_title_button_get_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id);
-static void e_summary_title_button_class_init (ESummaryTitleButtonClass *estb_class);
-static void e_summary_title_button_init (ESummaryTitleButton *estb);
-static double e_summary_title_button_point (GnomeCanvasItem *item,
- double x,
- double y,
- int cx,
- int cy,
- GnomeCanvasItem **actual_item);
-static void e_summary_title_button_update (GnomeCanvasItem *item,
- double affine[6],
- ArtSVP *clip_path,
- gint flags);
-static void e_summary_title_button_draw (GnomeCanvasItem *item,
- GdkDrawable *drawable,
- int x, int y,
- int width, int height);
-static gint e_summary_title_button_event (GnomeCanvasItem *item,
- GdkEvent *event);
-
-static GnomeCanvasRectClass *parent_class;
-static guint estb_signals[LAST_SIGNAL] = { 0 };
-
-struct _ESummaryTitleButtonPrivate {
- GdkPixbuf *pixbuf;
- double x, y;
- int width, height;
-
- int in_button : 1;
- int button_down : 1;
-};
-
-static void
-e_summary_title_button_destroy (GtkObject *object)
-{
- ESummaryTitleButton *estb;
- ESummaryTitleButtonPrivate *priv;
-
- estb = E_SUMMARY_TITLE_BUTTON (object);
- priv = estb->private;
-
- if (priv == NULL)
- return;
-
- gdk_pixbuf_unref (priv->pixbuf);
-
- g_free (priv);
- estb->private = NULL;
-
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-}
-
-static void
-e_summary_title_button_set_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id)
-{
- ESummaryTitleButton *estb;
- ESummaryTitleButtonPrivate *priv;
- gboolean update = FALSE;
-
- estb = E_SUMMARY_TITLE_BUTTON (object);
- priv = estb->private;
-
- switch (arg_id) {
- case ARG_PIXBUF:
- if (priv->pixbuf)
- gdk_pixbuf_unref (priv->pixbuf);
-
- priv->pixbuf = GTK_VALUE_POINTER (*arg);
- gdk_pixbuf_ref (priv->pixbuf);
-
- priv->width = gdk_pixbuf_get_width (priv->pixbuf);
- priv->height = gdk_pixbuf_get_height (priv->pixbuf);
-
- update = TRUE;
- break;
-
- case ARG_X:
- priv->x = GTK_VALUE_DOUBLE (*arg);
- break;
-
- case ARG_Y:
- priv->y = GTK_VALUE_DOUBLE (*arg);
- break;
-
- default:
- break;
-
- }
-
- if (update)
- gnome_canvas_item_request_update (GNOME_CANVAS_ITEM (estb));
-
-}
-
-static void
-e_summary_title_button_get_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id)
-{
- ESummaryTitleButton *estb;
- ESummaryTitleButtonPrivate *priv;
-
- estb = E_SUMMARY_TITLE_BUTTON (object);
- priv = estb->private;
-
- switch (arg_id) {
- case ARG_PIXBUF:
- GTK_VALUE_POINTER (*arg) = priv->pixbuf;
- break;
-
- case ARG_X:
- GTK_VALUE_DOUBLE (*arg) = priv->x;
- break;
-
- case ARG_Y:
- GTK_VALUE_DOUBLE (*arg) = priv->y;
- break;
-
- default:
- arg->type = GTK_TYPE_INVALID;
- break;
-
- }
-}
-
-static void
-e_summary_title_button_init (ESummaryTitleButton *estb)
-{
- estb->private = g_new0 (ESummaryTitleButtonPrivate, 1);
-}
-
-static void
-e_summary_title_button_class_init (ESummaryTitleButtonClass *estb_class)
-{
- GtkObjectClass *object_class;
- GnomeCanvasItemClass *item_class;
-
- object_class = (GtkObjectClass *) estb_class;
- item_class = (GnomeCanvasItemClass *) estb_class;
-
- object_class->destroy = e_summary_title_button_destroy;
- object_class->set_arg = e_summary_title_button_set_arg;
- object_class->get_arg = e_summary_title_button_get_arg;
-
- item_class->draw = e_summary_title_button_draw;
- item_class->point = e_summary_title_button_point;
- item_class->update = e_summary_title_button_update;
- item_class->event = e_summary_title_button_event;
-
- gtk_object_add_arg_type ("ESummaryTitleButton::pixbuf",
- GTK_TYPE_POINTER,
- GTK_ARG_READWRITE,
- ARG_PIXBUF);
- gtk_object_add_arg_type ("ESummaryTitleButton::x",
- GTK_TYPE_DOUBLE,
- GTK_ARG_READWRITE,
- ARG_X);
- gtk_object_add_arg_type ("ESummaryTitleButton::y",
- GTK_TYPE_DOUBLE,
- GTK_ARG_READWRITE,
- ARG_Y);
- estb_signals[CLICKED] = gtk_signal_new ("clicked", GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ESummaryTitleButtonClass,
- clicked),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
- gtk_object_class_add_signals (object_class, estb_signals, LAST_SIGNAL);
-
- parent_class = gtk_type_class (PARENT_TYPE);
-}
-
-E_MAKE_TYPE (e_summary_title_button, "ESummaryTitleButton",
- ESummaryTitleButton, e_summary_title_button_class_init,
- e_summary_title_button_init, PARENT_TYPE);
-
-static double
-e_summary_title_button_point (GnomeCanvasItem *item,
- double x,
- double y,
- int cx,
- int cy,
- GnomeCanvasItem **actual_item)
-{
- ESummaryTitleButton *estb;
- ESummaryTitleButtonPrivate *priv;
- double d = 1.0;
-
- estb = E_SUMMARY_TITLE_BUTTON (item);
- priv = estb->private;
-
- if (x >= priv->x && x <= priv->x + gdk_pixbuf_get_width (priv->pixbuf)
- && y >= priv->y && y <= priv->y + gdk_pixbuf_get_height (priv->pixbuf)) {
- d = 0.0;
- *actual_item = item;
- }
-
- return d;
-}
-
-static void
-get_bounds (ESummaryTitleButton *estb,
- double *px1, double *py1,
- double *px2, double *py2)
-{
- GnomeCanvasItem *item;
- ESummaryTitleButtonPrivate *priv;
- double x1, y1, x2, y2;
- int cx1, cy1, cx2, cy2;
-
- item = GNOME_CANVAS_ITEM (estb);
- priv = estb->private;
-
- x1 = priv->x;
- y1 = priv->y;
- x2 = x1 + priv->width;
- y2 = y1 + priv->height;
-
- gnome_canvas_item_i2w (item, &x1, &y1);
- gnome_canvas_item_i2w (item, &x2, &x2);
- gnome_canvas_w2c (item->canvas, x1, y1, &cx1, &cy1);
- gnome_canvas_w2c (item->canvas, x2, y2, &cx2, &cy2);
-
- *px1 = cx1;
- *py1 = cy1;
- *px2 = cx2;
- *py2 = cy2;
-}
-
-static void
-e_summary_title_button_update (GnomeCanvasItem *item,
- double affine[6],
- ArtSVP *clip_path,
- gint flags)
-{
- ESummaryTitleButton *estb;
- ESummaryTitleButtonPrivate *priv;
- double x1, y1, x2, y2;
-
- estb = E_SUMMARY_TITLE_BUTTON (item);
- priv = estb->private;
-
- get_bounds (estb, &x1, &y1, &x2, &y2);
- gnome_canvas_update_bbox (item, (int) x1, (int) y1, (int) x2, (int) y2);
-}
-
-static void
-e_summary_title_button_draw (GnomeCanvasItem *item,
- GdkDrawable *drawable,
- int x, int y,
- int width, int height)
-{
- ESummaryTitleButton *estb;
- ESummaryTitleButtonPrivate *priv;
- double i2w[6], w2c[6], i2c[6];
- int x1, x2, y1, y2;
- ArtPoint i1, i2;
- ArtPoint c1, c2;
- GdkGC *gc;
-
- estb = E_SUMMARY_TITLE_BUTTON (item);
- priv = estb->private;
-
- if (GNOME_CANVAS_ITEM_CLASS (parent_class)->draw)
- (* GNOME_CANVAS_ITEM_CLASS (parent_class)->draw) (item, drawable, x, y, width, height);
-
- gnome_canvas_item_i2w_affine (item, i2w);
- gnome_canvas_w2c_affine (item->canvas, w2c);
- art_affine_multiply (i2c, i2w, w2c);
-
- i1.x = priv->x;
- i1.y = priv->y;
- i2.x = i1.x + priv->width + 4;
- i2.y = i1.y + priv->height + 4;
- art_affine_point (&c1, &i1, i2c);
- art_affine_point (&c2, &i2, i2c);
- x1 = c1.x;
- y1 = c1.y;
- x2 = c2.x;
- y2 = c2.y;
-
- gc = gdk_gc_new (item->canvas->layout.bin_window);
- gdk_draw_rectangle (drawable, gc,
- FALSE, x1 - x,
- y1 - y,
- x2 - x1,
- y2 - y1);
- gdk_gc_unref (gc);
-
- gdk_pixbuf_render_to_drawable_alpha (priv->pixbuf,
- drawable,
- 0, 0,
- x1 + 2, y1 + 2,
- priv->width, priv->height,
- GDK_PIXBUF_ALPHA_BILEVEL,
- 127,
- GDK_RGB_DITHER_NORMAL,
- 0, 0);
-}
-
-static gint
-e_summary_title_button_event (GnomeCanvasItem *item,
- GdkEvent *event)
-{
- ESummaryTitleButton *estb;
- ESummaryTitleButtonPrivate *priv;
-
- estb = E_SUMMARY_TITLE_BUTTON (item);
- priv = estb->private;
-
- switch (event->type) {
- case GDK_ENTER_NOTIFY:
- priv->in_button = TRUE;
- break;
-
- case GDK_LEAVE_NOTIFY:
- priv->in_button = FALSE;
- break;
-
- case GDK_BUTTON_PRESS:
- if (priv->in_button) {
- priv->button_down = TRUE;
- gnome_canvas_item_grab (item,
- GDK_LEAVE_NOTIFY_MASK |
- GDK_ENTER_NOTIFY_MASK |
- GDK_POINTER_MOTION_MASK |
- GDK_BUTTON_RELEASE_MASK,
- NULL, event->button.time);
- }
- break;
-
- case GDK_BUTTON_RELEASE:
- priv->button_down = FALSE;
- gnome_canvas_item_ungrab (item, event->button.time);
-
- if (priv->in_button) {
- gtk_signal_emit (GTK_OBJECT (estb), estb_signals[CLICKED]);
- }
- break;
-
- default:
- return TRUE;
- }
-
- return FALSE;
-}
diff --git a/executive-summary/widgets/e-summary-title-button.h b/executive-summary/widgets/e-summary-title-button.h
deleted file mode 100644
index 59b9e92445..0000000000
--- a/executive-summary/widgets/e-summary-title-button.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-title-button.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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_TITLE_BUTTON_H__
-#define _E_SUMMARY_TITLE_BUTTON_H__
-
-#include <gtk/gtksignal.h>
-#include <libgnomeui/gnome-canvas.h>
-#include <libgnomeui/gnome-canvas-rect-ellipse.h>
-
-#define E_SUMMARY_TITLE_BUTTON_TYPE (e_summary_title_button_get_type ())
-#define E_SUMMARY_TITLE_BUTTON(obj) (GTK_CHECK_CAST ((obj), E_SUMMARY_TITLE_BUTTON_TYPE, ESummaryTitleButton))
-#define E_SUMMARY_TITLE_BUTTON_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_SUMMARY_TITLE_BUTTON_TYPE, ESummaryTitleButtonClass))
-#define IS_E_SUMMARY_TITLE_BUTTON(obj) (GTK_CHECK_TYPE ((obj), E_SUMMARY_TITLE_BUTTON_TYPE))
-#define IS_E_SUMMARY_TITLE_BUTTON_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_SUMMARY_TITLE_BUTTON_TYPE))
-
-typedef struct _ESummaryTitleButtonPrivate ESummaryTitleButtonPrivate;
-typedef struct _ESummaryTitleButton ESummaryTitleButton;
-typedef struct _ESummaryTitleButtonClass ESummaryTitleButtonClass;
-
-struct _ESummaryTitleButton {
- GnomeCanvasRect parent;
-
- ESummaryTitleButtonPrivate *private;
-};
-
-struct _ESummaryTitleButtonClass {
- GnomeCanvasRectClass parent_class;
-
- void (*clicked) (ESummaryTitleButton *estb);
-};
-
-GtkType e_summary_title_button_get_type (void);
-
-#endif
diff --git a/executive-summary/widgets/e-summary-titlebar.c b/executive-summary/widgets/e-summary-titlebar.c
deleted file mode 100644
index fa76661a78..0000000000
--- a/executive-summary/widgets/e-summary-titlebar.c
+++ /dev/null
@@ -1,411 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-titlebar.c
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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 <gal/util/e-util.h>
-#include <gal/widgets/e-font.h>
-
-#include <gal/e-text/e-text.h>
-
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include "e-summary-titlebar.h"
-#include "e-summary-title-button.h"
-
-/* XPMS */
-#include "edit.xpm"
-#include "x.xpm"
-#include "shade.xpm"
-
-#define PARENT_TYPE (gnome_canvas_group_get_type ())
-#define TITLEBAR_BORDER_WIDTH 2
-
-enum {
- ARG_0,
- ARG_TEXT,
- ARG_WIDTH,
- ARG_HEIGHT
-};
-
-enum {
- EDIT,
- SHADE,
- CLOSE,
- LAST_SIGNAL
-};
-
-static void e_summary_titlebar_destroy (GtkObject *object);
-static void e_summary_titlebar_class_init (GtkObjectClass *object_class);
-static void e_summary_titlebar_init (GtkObject *object);
-
-static GnomeCanvasGroupClass *parent_class;
-static guint titlebar_signals[LAST_SIGNAL] = { 0 };
-
-struct _ESummaryTitlebarPrivate {
- GnomeCanvasItem *rect;
- GnomeCanvasItem *titletext;
-
- GnomeCanvasItem *edit;
- GnomeCanvasItem *shade;
- GnomeCanvasItem *close;
-
- char *text;
- double width, height;
-};
-
-static void
-e_summary_titlebar_destroy (GtkObject *object)
-{
- ESummaryTitlebar *titlebar;
- ESummaryTitlebarPrivate *priv;
-
- titlebar = E_SUMMARY_TITLEBAR (object);
- priv = titlebar->private;
-
- if (priv == NULL)
- return;
-
- g_free (priv);
- titlebar->private = NULL;
-
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-}
-
-static void
-edit_cb (GnomeCanvasItem *item,
- ESummaryTitlebar *titlebar)
-{
- gtk_signal_emit (GTK_OBJECT (titlebar), titlebar_signals[EDIT]);
-}
-
-static void
-shade_cb (GnomeCanvasItem *item,
- ESummaryTitlebar *titlebar)
-{
- gtk_signal_emit (GTK_OBJECT (titlebar), titlebar_signals[SHADE]);
-}
-
-static void
-close_cb (GnomeCanvasItem *item,
- ESummaryTitlebar *titlebar)
-{
- gtk_signal_emit (GTK_OBJECT (titlebar), titlebar_signals[CLOSE]);
-}
-
-static void
-e_summary_titlebar_realize (GnomeCanvasItem *item)
-{
- GnomeCanvasGroup *group;
- ESummaryTitlebar *titlebar;
- ESummaryTitlebarPrivate *priv;
- GdkPixbuf *pb;
- EFont *font;
- int font_height;
-
- group = GNOME_CANVAS_GROUP (item);
- titlebar = E_SUMMARY_TITLEBAR (item);
- priv = titlebar->private;
-
- font = e_font_from_gdk_font (GTK_WIDGET (item->canvas)->style->font);
- font_height = e_font_height (font);
- priv->height = 18 + 2 * TITLEBAR_BORDER_WIDTH; /* FIXME: Not hardcoded */
-
- priv->rect = gnome_canvas_item_new (group,
- gnome_canvas_rect_get_type (),
- "x1", 0.0,
- "y1", 0.0,
- "y2", (double) priv->height,
- "x2", priv->width,
- "fill_color_rgba", 0x88AAFFFF,
- NULL);
-
- pb = gdk_pixbuf_new_from_xpm_data ((const char**) x_xpm);
- priv->close = gnome_canvas_item_new (group,
- e_summary_title_button_get_type (),
- "x", (double) priv->width - TITLEBAR_BORDER_WIDTH - 18,
- "y", (double) TITLEBAR_BORDER_WIDTH,
- "pixbuf", pb,
- NULL);
- gdk_pixbuf_unref (pb);
- gtk_signal_connect (GTK_OBJECT (priv->close), "clicked",
- GTK_SIGNAL_FUNC (close_cb), titlebar);
-
- pb = gdk_pixbuf_new_from_xpm_data ((const char**) shade_xpm);
- priv->shade = gnome_canvas_item_new (group,
- e_summary_title_button_get_type (),
- "x", (double) priv->width - (TITLEBAR_BORDER_WIDTH * 2) - 36,
- "y", (double) TITLEBAR_BORDER_WIDTH,
- "pixbuf", pb,
- NULL);
- gdk_pixbuf_unref (pb);
- gtk_signal_connect (GTK_OBJECT (priv->shade), "clicked",
- GTK_SIGNAL_FUNC (shade_cb), titlebar);
-
- pb = gdk_pixbuf_new_from_xpm_data ((const char**) edit_xpm);
- priv->edit = gnome_canvas_item_new (group,
- e_summary_title_button_get_type (),
- "x", (double) priv->width - (TITLEBAR_BORDER_WIDTH * 3) - 54,
- "y", (double) TITLEBAR_BORDER_WIDTH,
- "pixbuf", pb,
- NULL);
- gdk_pixbuf_unref (pb);
- gtk_signal_connect (GTK_OBJECT (priv->edit), "clicked",
- GTK_SIGNAL_FUNC (edit_cb), titlebar);
-
- priv->titletext = gnome_canvas_item_new (group,
- e_text_get_type (),
- "text", priv->text,
- "font_gdk", GTK_WIDGET (item->canvas)->style->font,
- "clip_width", (double) priv->width -
- (TITLEBAR_BORDER_WIDTH*4)- 50,
- "clip_height", (double) e_font_height (font),
-
- "clip", TRUE,
- "use_ellipsis", TRUE,
- "fill_color", "black",
- "anchor", GTK_ANCHOR_NW,
- "draw_background", FALSE,
- NULL);
- gnome_canvas_item_move (priv->titletext, TITLEBAR_BORDER_WIDTH,
- (priv->height - font_height) / 2);
-
- if (GNOME_CANVAS_ITEM_CLASS (parent_class)->realize)
- (* GNOME_CANVAS_ITEM_CLASS (parent_class)->realize) (item);
-}
-
-static void
-e_summary_titlebar_unrealize (GnomeCanvasItem *item)
-{
- if (GNOME_CANVAS_ITEM_CLASS (parent_class)->unrealize)
- (* GNOME_CANVAS_ITEM_CLASS (parent_class)->unrealize) (item);
-}
-
-static void
-e_summary_titlebar_set_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id)
-{
- ESummaryTitlebar *titlebar;
- ESummaryTitlebarPrivate *priv;
-
- titlebar = E_SUMMARY_TITLEBAR (object);
- priv = titlebar->private;
-
- switch (arg_id) {
- case ARG_TEXT:
- if (priv->text)
- g_free (priv->text);
-
- priv->text = g_strdup (GTK_VALUE_STRING (*arg));
-
- if (priv->titletext)
- gnome_canvas_item_set (priv->titletext,
- "text", priv->text,
- NULL);
- break;
-
- case ARG_WIDTH:
- priv->width = GTK_VALUE_DOUBLE (*arg);
-
- if (priv->rect)
- gnome_canvas_item_set (priv->rect,
- "x2", priv->width,
- NULL);
- if (priv->titletext)
- gnome_canvas_item_set (priv->titletext,
- "clip_width", priv->width -
- (TITLEBAR_BORDER_WIDTH* 4) - 42,
- NULL);
- break;
-
- default:
- break;
- }
-}
-
-static void
-e_summary_titlebar_get_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id)
-{
- ESummaryTitlebar *titlebar;
- ESummaryTitlebarPrivate *priv;
-
- titlebar = E_SUMMARY_TITLEBAR (object);
- priv = titlebar->private;
-
- switch (arg_id) {
- case ARG_TEXT:
- GTK_VALUE_STRING (*arg) = priv->text;
- break;
-
- case ARG_WIDTH:
- GTK_VALUE_DOUBLE (*arg) = priv->width;
- break;
-
- case ARG_HEIGHT:
- GTK_VALUE_DOUBLE (*arg) = priv->height;
- break;
-
- default:
- arg->type = GTK_TYPE_INVALID;
- break;
- }
-}
-
-static gint
-e_summary_titlebar_event (GnomeCanvasItem *item,
- GdkEvent *event)
-{
- if (event->type == GDK_2BUTTON_PRESS &&
- event->button.button == 1) {
- gtk_signal_emit (GTK_OBJECT (item), titlebar_signals[SHADE]);
- return FALSE;
- } else {
- return TRUE;
- }
-}
-
-static double
-e_summary_titlebar_point (GnomeCanvasItem *item,
- double x,
- double y,
- int cx,
- int cy,
- GnomeCanvasItem **actual_item)
-{
- ESummaryTitlebar *est;
- ESummaryTitlebarPrivate *priv;
- GnomeCanvasItem *ret_item;
- double d;
-
- est = E_SUMMARY_TITLEBAR (item);
- priv = est->private;
-
- d = (* GNOME_CANVAS_ITEM_CLASS
- (GTK_OBJECT (priv->edit)->klass)->point) (priv->edit,
- x, y,
- cx, cy,
- &ret_item);
- if (d == 0.0) {
- *actual_item = ret_item;
- return 0.0;
- }
-
- d = (* GNOME_CANVAS_ITEM_CLASS
- (GTK_OBJECT (priv->shade)->klass)->point) (priv->shade,
- x, y,
- cx, cy,
- &ret_item);
- if (d == 0.0) {
- *actual_item = ret_item;
- return 0.0;
- }
-
- d = (* GNOME_CANVAS_ITEM_CLASS
- (GTK_OBJECT (priv->close)->klass)->point) (priv->close,
- x, y,
- cx, cy,
- &ret_item);
- if (d == 0.0) {
- *actual_item = ret_item;
- return 0.0;
- }
-
- *actual_item = item;
- return 0.0;
-}
-
-static void
-e_summary_titlebar_class_init (GtkObjectClass *object_class)
-{
- GnomeCanvasItemClass *item_class;
-
- item_class = (GnomeCanvasItemClass *) object_class;
-
- object_class->destroy = e_summary_titlebar_destroy;
- object_class->set_arg = e_summary_titlebar_set_arg;
- object_class->get_arg = e_summary_titlebar_get_arg;
-
- item_class->realize = e_summary_titlebar_realize;
- item_class->unrealize = e_summary_titlebar_unrealize;
- item_class->event = e_summary_titlebar_event;
- item_class->point = e_summary_titlebar_point;
-
- gtk_object_add_arg_type ("ESummaryTitlebar::text",
- GTK_TYPE_STRING, GTK_ARG_READWRITE,
- ARG_TEXT);
- gtk_object_add_arg_type ("ESummaryTitlebar::width",
- GTK_TYPE_DOUBLE, GTK_ARG_READWRITE,
- ARG_WIDTH);
- gtk_object_add_arg_type ("ESummaryTitlebar::height",
- GTK_TYPE_DOUBLE, GTK_ARG_READABLE,
- ARG_HEIGHT);
-
- titlebar_signals[EDIT] = gtk_signal_new ("edit", GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ESummaryTitlebarClass,
- edit),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
- titlebar_signals[SHADE] = gtk_signal_new ("shade", GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ESummaryTitlebarClass,
- shade),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
- titlebar_signals[CLOSE] = gtk_signal_new ("close", GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (ESummaryTitlebarClass,
- close),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
- gtk_object_class_add_signals (object_class, titlebar_signals,
- LAST_SIGNAL);
-
- parent_class = gtk_type_class (PARENT_TYPE);
-}
-
-static void
-e_summary_titlebar_init (GtkObject *object)
-{
- ESummaryTitlebar *titlebar;
- ESummaryTitlebarPrivate *priv;
-
- titlebar = E_SUMMARY_TITLEBAR (object);
- titlebar->private = g_new0 (ESummaryTitlebarPrivate, 1);
- priv = titlebar->private;
-
- priv->width = 100.0;
- priv->text = NULL;
-
- gdk_rgb_init ();
-}
-
-E_MAKE_TYPE (e_summary_titlebar, "ESummaryTitlebar", ESummaryTitlebar,
- e_summary_titlebar_class_init, e_summary_titlebar_init,
- PARENT_TYPE);
-
diff --git a/executive-summary/widgets/e-summary-titlebar.h b/executive-summary/widgets/e-summary-titlebar.h
deleted file mode 100644
index b754fd9108..0000000000
--- a/executive-summary/widgets/e-summary-titlebar.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-titlebar.h
- *
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright (C) 2000 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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_TITLEBAR_H__
-#define _E_SUMMARY_TITLEBAR_H__
-
-#include <gtk/gtksignal.h>
-#include <libgnomeui/gnome-canvas.h>
-
-#define E_SUMMARY_TITLEBAR_TYPE (e_summary_titlebar_get_type ())
-#define E_SUMMARY_TITLEBAR(obj) (GTK_CHECK_CAST ((obj), E_SUMMARY_TITLEBAR_TYPE, ESummaryTitlebar))
-#define E_SUMMARY_TITLEBAR_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_SUMMARY_TITLEBAR_TYPE, ESummaryTitlebarClass))
-#define IS_E_SUMMARY_TITLEBAR(obj) (GTK_CHECK_TYPE ((obj), E_SUMMARY_TITLEBAR_TYPE))
-#define IS_E_SUMMARY_TITLEBAR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_SUMMARY_TITLEBAR_TYPE))
-
-typedef struct _ESummaryTitlebarPrivate ESummaryTitlebarPrivate;
-typedef struct _ESummaryTitlebar ESummaryTitlebar;
-typedef struct _ESummaryTitlebarClass ESummaryTitlebarClass;
-
-struct _ESummaryTitlebar {
- GnomeCanvasGroup parent;
-
- ESummaryTitlebarPrivate *private;
-};
-
-struct _ESummaryTitlebarClass {
- GnomeCanvasGroupClass parent_class;
-
- void (*close) (ESummaryTitlebar *window);
- void (*shade) (ESummaryTitlebar *window);
- void (*edit) (ESummaryTitlebar *window);
-};
-
-GtkType e_summary_titlebar_get_type (void);
-
-#endif
diff --git a/executive-summary/widgets/edit.xpm b/executive-summary/widgets/edit.xpm
deleted file mode 100644
index 7f2deb1525..0000000000
--- a/executive-summary/widgets/edit.xpm
+++ /dev/null
@@ -1,19 +0,0 @@
-/* XPM */
-static char * edit_xpm[] = {
-"14 14 2 1",
-" g None",
-". g #000000",
-" ",
-" ",
-" ... ",
-" . . ",
-" . . ",
-" . ",
-" . ",
-" .. ",
-" .. ",
-" .. ",
-" ",
-" .. ",
-" .. ",
-" "};
diff --git a/executive-summary/widgets/esummary-window-test.c b/executive-summary/widgets/esummary-window-test.c
deleted file mode 100644
index 7928e8b6f9..0000000000
--- a/executive-summary/widgets/esummary-window-test.c
+++ /dev/null
@@ -1,45 +0,0 @@
-#include <gal/widgets/e-canvas.h>
-#include "e-summary-subwindow.h"
-#include "e-summary-titlebar.h"
-
-
-void close_test (GtkWidget *widget, gpointer data);
-
-void
-close_test (GtkWidget *widget,
- gpointer data)
-{
- gtk_main_quit ();
-}
-
-int
-main (int argc,
- char **argv)
-{
- GtkWidget *window, *canvas;
- ESummarySubwindow *subwindow;
- GtkWidget *control;
-
- gnome_init ("Executive Summary Subwindow Test", "1.0", argc, argv);
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_signal_connect (GTK_OBJECT (window), "destroy",
- GTK_SIGNAL_FUNC (close_test), NULL);
-
- canvas = e_canvas_new ();
-
- subwindow = e_summary_subwindow_new (GNOME_CANVAS_GROUP (GNOME_CANVAS (canvas)->root), 100, 100);
-
- control = gtk_button_new_with_label ("A big button");
- gtk_widget_set_usize (control, 400, 200);
-
- e_summary_subwindow_add (subwindow, control);
- gtk_widget_show (control);
-
- gnome_canvas_set_scroll_region (GNOME_CANVAS (canvas), 0.0, 0.0, 1000.0, 1300.0);
- gtk_container_add (GTK_CONTAINER (window), canvas);
- gtk_widget_show_all (window);
-
- gtk_main ();
-
- exit(0);
-}
diff --git a/executive-summary/widgets/shade.xpm b/executive-summary/widgets/shade.xpm
deleted file mode 100644
index 349212e906..0000000000
--- a/executive-summary/widgets/shade.xpm
+++ /dev/null
@@ -1,19 +0,0 @@
-/* XPM */
-static char * shade_xpm[] = {
-"14 14 2 1",
-" g None",
-". g #000000",
-" ",
-" ............ ",
-" ............ ",
-" ............ ",
-" ............ ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" ............ ",
-" "};
diff --git a/executive-summary/widgets/x.xpm b/executive-summary/widgets/x.xpm
deleted file mode 100644
index ce9e9f19dc..0000000000
--- a/executive-summary/widgets/x.xpm
+++ /dev/null
@@ -1,19 +0,0 @@
-/* XPM */
-static char * x_xpm[] = {
-"14 14 2 1",
-" g None",
-". g #000000",
-" ",
-" .. .. ",
-" ... ... ",
-" ... ... ",
-" ... ... ",
-" ...... ",
-" .... ",
-" .... ",
-" ...... ",
-" ... ... ",
-" ... ... ",
-" ... ... ",
-" .. .. ",
-" "};
diff --git a/my-evolution/.cvsignore b/my-evolution/.cvsignore
deleted file mode 100644
index bfafd22e89..0000000000
--- a/my-evolution/.cvsignore
+++ /dev/null
@@ -1,13 +0,0 @@
-.deps
-.libs
-.pure
-Makefile
-Makefile.in
-Mailer-stubs.c
-Mailer-skels.c
-Mailer-common.c
-Mailer.h
-evolution-executive-summary
-evolution-executive-summary.pure
-GNOME_Evolution_Summary.server
-GNOME_Evolution_Summary.server.in
diff --git a/my-evolution/ChangeLog b/my-evolution/ChangeLog
deleted file mode 100644
index 6f24d9b0d4..0000000000
--- a/my-evolution/ChangeLog
+++ /dev/null
@@ -1,85 +0,0 @@
-2003-10-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * Makefile.am: INCLUDE path fixes for changes made to libical
- build.
-
- * e-summary-calendar.h: #include <libical/ical.h>
-
- * e-summary.h: #include <libical/ical.h>
-
-2003-09-08 Calvin Liu <calvin.liu@sun.com>
-
- ** For bug #48175
- * e-summary-tasks.c: set default value for colour if it's empty
-
-2003-08-26 Rodrigo Moya <rodrigo@ximian.com>
-
- * e-summary-tasks.c:
- * e-summary-calendar.c (uids_to_array): use correct type for arguments
- to cal_client_get_object.
-
-2003-08-19 Harry Lu <harry.lu@sun.com>
-
- ** For bug #47461.
-
- * e-summary-calendar.c: (generate_html): Change "%P" to "%p" so that
- strftime() can work under solaris.
-
-2003-08-12 Jack Jia <jack.jia@sun.com>
-
- [Fixed bug #47563]
-
- * e-summary-tasks.c (setup_task_folder) : set a default value for
- the tasks->due_today_colour and tasks->overdue_colour, if the key
- in gconf is NULL. and change the key name from TasksDueTodayi to
- due_today, from TasksOverdue to overdue, in order to coincide with
- the key in e-summary-tasks.c (setup_task_folder).In this way, it
- can avoid crash on solaris.
-
-2003-08-11 Ettore Perazzoli <ettore@ximian.com>
-
- Patch from Lorenzo Gil Sanchez <lgs@sicem.biz>
-
- * Locations: Added Bermuda to the list of countries under the
- 'Central and South America' region. [#21879]
-
-2003-07-23 Dan Winship <danw@ximian.com>
-
- * e-summary-factory.c (e_summary_factory_new_control): Fix a
- warning.
-
- * e-summary-rdf.c (tree_walk): Fix a warning
-
- * e-summary-weather.c (e_summary_weather_get_html): Remove an
- unused variable.
- (weather_make_html): Likewise.
-
-2003-06-23 Dan Winship <danw@ximian.com>
-
- * e-summary-calendar.c (setup_gconf_client): Don't call
- setup_calendar from here, since e_summary_calendar_init will call
- it immediately after setup_gconf_client, which will result in a
- calendar being quickly created and destroyed.
-
-2003-06-19 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary.c (do_summary_print): Do not destroy preview_widget
- when returning from gtk_dialog_run() since it's unset at that
- point. [#44798]
-
-2003-06-13 Larry Ewing <lewing@ximian.com>
-
- * e-summary.c (e_summary_url_requested): free the filename.
-
-2003-06-05 Not Zed <NotZed@Ximian.com>
-
- ** For #42691.
-
- * Makefile.am (%.server.in): use implicit rule.
- (BUILT_SOURCES): added server_DATA
-
-2003-06-09 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-mail.c (e_summary_mail_get_info): Protect against
- folder_store being NULL. [#44111]
-
diff --git a/my-evolution/ChangeLog.pre-1-4 b/my-evolution/ChangeLog.pre-1-4
deleted file mode 100644
index d5f831e97f..0000000000
--- a/my-evolution/ChangeLog.pre-1-4
+++ /dev/null
@@ -1,2572 +0,0 @@
-2003-05-27 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-tasks.c: New member gconf_value_changed_handler_id in
- ESummaryTasks.
- (setup_gconf_client): Set it to the ID of the signal connection.
-
- * e-summary-calendar.c: New member gconf_value_changed_handler_id
- in ESummaryCalendar.
- (setup_gconf_client): Set it to the ID of the signal connection.
-
- * e-summary-tasks.c (generate_html): Remove unused variable.
-
-2003-05-19 Anna Marie Dirks <anna@ximian.com>
-
- * e-summary-preferences.c: This patch HIG-ifies the "New News Feed"
- dialog, by using a table with appropriate spacing instead of hboxes.
- Also fixes an invalid cast of gtk_dialog->gnome_dialog.
-
- * my-evolution.glade: * my-evolution.glade: HIG-ified this
- dialog by adding proper spacing/padding/stock buttons/etc.
- Fixes bugs #41131, #41133.
-
-2003-05-16 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary.c (destroy): Remove the weak pointer on priv->control.
- [#43117]
-
-2003-05-16 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-calendar.c (setup_calendar): Fix typo, celendar_path
- -> calendar_path.
-
-2003-05-15 JP Rosevear <jpr@ximian.com>
-
- Fixes #43101
-
- * e-summary-mail.c (e_summary_folder_unregister_storage): unref
- the storage after use not before
-
-2003-05-15 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary.c (do_summary_print): Remove preview arg. Also, make
- it destroy the dialog after a button has been clicked.
- (e_summary_set_control): Add casts to avoid compiler warnings.
-
-2003-05-14 JP Rosevear <jpr@ximian.com>
-
- * e-summary.h: fix up protos
-
- * e-summary.c (e_summary_get_control): accessor
- (e_summary_set_control): ditto
- (retrieve_shell_view_interface): util to get the shell view
- (e_summary_change_current_view): use it
- (e_summary_set_message): ditto
- (e_summary_unset_message): ditto
-
- * e-summary-mail.h: add proto
-
- * e-summary-mail.c (e_summary_mail_get_info): use the objref of
- the listener
- (e_summary_folder_unregister_storage): clean up a registered
- storage
- (e_summary_folder_register_storages): store the listener directly
- (folder_info_pb_changed): unref the listener once we are notified
- (lazy_register_storages): release and unref the property bag,
- event and listener
- (e_summary_folder_init_folder_store): track the listener
- (e_summary_folder_clear_folder_store): cleanup the folder store
-
- * e-summary-factory.c (control_activate_cb): we don't get the
- shell view here any more
- (e_summary_factory_new_control): don't pass in the shell, set the
- control on the summary
-
- * component-factory.c (owner_unset_cb): clear the folder store on
- destruction
-
-2003-05-02 Not Zed <NotZed@Ximian.com>
-
- [#41849]
-
- * e-summary-rdf.c (tree_walk): check the in-memory charset, not
- the transport charset when creating output.
-
-2003-04-18 Rodney Dawes <dobey@ximian.com>
-
- [#21499]
-
- * Makefile.am:
- * e-summary-factory.c:
- Use PREFIX instead of EVOLUTION_DATADIR for bonobo_ui_util_set_ui ()
-
-2003-04-16 Ettore Perazzoli <ettore@ximian.com>
-
- [#39693]
-
- * e-summary-shown.c (SPEC): Sort by the first column.
-
-2003-04-16 Ettore Perazzoli <ettore@ximian.com>
-
- [#40902]
-
- * e-summary-preferences.c: Removed members new_url_entry,
- new_name_entry from struct PropertyData.
- (rdf_new_url_clicked_cb): Port to
- GtkDialog and fix button order. Also, use gtk_dialog_run()
- instead of using callbacks.
- (add_dialog_clicked_cb): Removed.
-
-2003-04-12 Rodney Dawes <dobey@ximian.com>
-
- * e-summary-shown.c: Remove construct_pixmap_button (), use stock
- buttons.
-
-2003-04-09 Larry Ewing <lewing@ximian.com>
-
- * e-summary.c (e_summary_init): remove call to
- gtkhtml_set_default_background_color
-
-2003-04-08 Not Zed <NotZed@Ximian.com>
-
- * GNOME_Evolution_Summary.server.in.in: Properly terminate the
- "name" attribute tag added in the last change.
-
-2003-04-07 Dan Winship <danw@ximian.com>
-
- * Locations: Add Darwin, Australia [#12066]. Fix Vilnius
- and Riga [#15740]. Fix spelling of Gardermoen, Norway [#18015].
- Add Goetsenhoven and Spa, Belgium [#32027]
-
- * GNOME_Evolution_Summary.server.in.in: clean up server names
-
-2003-03-31 Larry Ewing <lewing@ximian.com>
-
- * e-summary-factory.c: make the verbs static so they don't enter
- the global namespace.
-
-2003-03-27 Ettore Perazzoli <ettore@ximian.com>
-
- [#40358]
-
- * e-summary.c (e_summary_init): Likewise.
-
- * e-summary-weather.c (e_summary_weather_get_html): Likewise.
- (weather_make_html): Likewise.
-
- * e-summary-mail.c (e_summary_mail_generate_html): Fix so it
- handles the fact that the translated strings are already in UTF8.
- * e-summary-rdf.c (tree_walk): Likewise.
- (display_doc): Likewise.
-
-2003-03-27 Not Zed <NotZed@Ximian.com>
-
- ** see bug #40141
-
- * e-summary-preferences.c (config_control_destroy_cb): Dont save
- prefs here, but restore the last saved.
- (config_control_apply_cb): save preferences here.
-
-2003-03-26 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-mail.c: New member physical_uri in struct
- ESummaryMailFolder.
- (new_folder_cb): Set it.
- (remove_folder_cb): Free it.
- (make_pretty_foldername): Rewritten to honour the display_name.
- [#7153]
-
- * e-summary.c (destroy): Only remove the source with ID
- tomorrow_timeout_id if the ID is nonzero.
-
-2003-03-25 Dan Winship <danw@ximian.com>
-
- * e-summary.c: Update for e_notice move
- (do_summary_print): Pass a parent_window to e_notice
-
-2003-03-19 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-calendar.c (generate_html): Add a %P in the strftime
- string for the case when the user wants am/pm format. [#19957]
-
-2003-03-13 Mike Kestner <mkestner@ximian.com>
-
- * e-summary-preferences.c (fill_rdf_etable): pass FALSE for
- expand to e_summary_shown_add_node.
- * e-summary-shown.c (make_table): ditto, set_expanded_default to FALSE.
- (add_node): only call e_tree_node_set_expanded is expanded != default.
- * e-summary-weather.c (*_fill_etable): pass FALSE for expand to
- e_summary_shown_add_node.
-
-2003-03-13 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-calendar.c (generate_html): Changed so its printf()s
- are protected against default_uri being NULL. Also, no need to do
- e_utf8_from_locale_string() anymore.
-
-2003-03-12 Dan Winship <danw@ximian.com>
-
- * e-summary-shown.c (e_summary_shown_freeze,
- e_summary_shown_thaw): New, to free/thaw the ETree models.
- (e_summary_shown_add_node): Don't freeze/thaw around the single
- add here. That doesn't really help much.
-
- * e-summary-preferences.c (fill_rdf_etable): Freeze/thaw the
- ESummaryShown while filling it in.
-
- * e-summary-weather.c (e_summary_weather_fill_etable): Likewise.
-
-2003-03-07 Ettore Perazzoli <ettore@ximian.com>
-
- * Locations (name): Add some escapes to the newly added locations
- so they get split properly.
-
- * e-summary-weather.c (e_summary_weather_init_locations): Fetch
- the Locations file from the right path. If you find an invalid
- entry in the Locations file, complain with an informative
- g_warning() instead of just returning FALSE.
- (e_summary_weather_fill_etable): Do the same thing here.
-
-2003-03-06 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-calendar.c (generate_html): Added the AM/PM part when
- not in "wants24hr" mode; moved the date before the time instead of
- vice versa. Also, do not check the boolean value against TRUE!
-
-2003-03-06 Ettore Perazzoli <ettore@ximian.com>
-
- * Locations: Added more Swedish locations, submitted by Marten
- Woxberg. [See #5344]
-
-2003-03-06 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-calendar.c (e_summary_calendar_protocol): Use
- G_GNUC_FUNCTION instead of __FUNCTION__.
- * e-summary-rdf.c (e_summary_rdf_update): Likewise.
- * e-summary-tasks.c (e_summary_tasks_protocol): Likewise.
- (e_summary_tasks_protocol): Likewise.
- * e-summary-weather.c (e_summary_weather_update): Likewise.
-
->>>>>>> 1.264
-2003-03-05 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-weather.c (e_summary_weather_set_online): Likewise,
- assume weather_refresh_time of zero means "never update the
- weather".
- (e_summary_weather_init): Likewise here.
- (e_summary_weather_reconfigure): And here.
-
- * e-summary-rdf.c (e_summary_rdf_init): Don't add the news feeds
- here -- it should be handled with a GConf schema. Also, assume
- that prefs is always not NULL (as is the case with the current
- code), and interpret a timeout value of zero as "never update
- automatically".
- (e_summary_rdf_reconfigure): Likewise here. If rdf->timeout is
- zero, assume there is no pending timeout.
- (e_summary_rdf_set_online): Likewise here. Sigh, so much
- duplication in this code.
-
-2003-03-05 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (owner_unset_cb): dont call bonobo_main_quit
- anymore now we're shlib'ised.
-
-2003-02-28 Dan Winship <danw@ximian.com>
-
- * e-summary.c (e_summary_init): Don't need to use libalarm to set
- a timeout to change the date. We know how many seconds away it is,
- so we can just set a timeout for then.
-
- * Makefile.am (summary_libs): Remove libalarm.a
-
-2003-02-21 Dan Winship <danw@ximian.com>
-
- * Makefile.am (summary_libs): clean up
-
-2003-02-20 Dan Winship <danw@ximian.com>
-
- * Makefile.am (summary_libs):
- s/libemiscwidgets.a/libemiscwidgets.la/
-
-2003-02-19 Dan Winship <danw@ximian.com>
-
- * e-summary-rdf.c: Declare xmlSubstituteEntitiesDefaultValue
- extern.
- (message_finished): And set its value here. Fixes a duplicate
- symbol error on OS X.
-
-2003-02-10 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am: Split the IDL generated rules so ${ORBIT_IDL}
- doesn't get invoked multiple times in parallel.
- (BUILT_SOURCES): Added this.
- (CLEANFILES): And this.
-
-2003-02-06 Dan Winship <danw@ximian.com>
-
- * Makefile.am (INCLUDES): Fix typo in previous commit
-
-2003-02-06 Dan Winship <danw@ximian.com>
-
- * Makefile.am: clean up, update, etc
-
- * component-factory.c: #include string.h
-
- * e-summary.c (e_pixmap_file): s/IMAGEDIR/IMAGESDIR/
-
- * e-summary-rdf.c: Fix some warnings
-
-2003-02-05 Dan Winship <danw@ximian.com>
-
- * e-summary-offline-handler.c: s/BonoboXObject/BonoboObject/
-
-2003-01-23 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am (componentdir): Removed definition; this is now
- defined in configure.in.
-
-2003-01-22 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-factory.c (control_activate): Get my-evolution.xml
- from EVOLUTION_UI_DIRECTORY.
-
- * e-summary.c (e_pixmap_file): Use EVOLUTION_IMAGEDIR.
- (e_pixmap_file): Use EVOLUTION_BUTTONSDIR.
-
- * e-summary-weather.c (e_summary_weather_init_locations): Use
- LOCATIONDIR.
- (e_summary_weather_fill_etable): Likewise.
-
- * Makefile.am (Locationdir): Version using $(BASE_VERSION).
- (gladedir): Likewise.
- (INCLUDES): Define EVOLUTION_IMAGEDIR.
-
-2003-01-20 Ettore Perazzoli <ettore@ximian.com>
-
- * Locations: Updated locations for EU_FI, contributed by Pekka
- Pietikainen <Pekka.Pietikainen@nixu.com>.
-
-2003-01-14 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am (EXTRA_DIST): Add $(schema_DATA).
-
-2003-01-13 Not Zed <NotZed@Ximian.com>
-
- * e-summary-preferences.c (e_summary_preferences_save): fix a
- past-o with the physical_uri_list prepend.
-
-2003-01-10 Not Zed <NotZed@Ximian.com>
-
- * e-summary-mail.c (new_folder_cb): glist->gslist for
- display_folders list
- (mail_change_notify): "
- (e_summary_mail_reconfigure): ", and also traverse the list
- forwards, since we can't go backwards since its now an slist.
-
- * e-summary-preferences.c (e_summary_preferences_restore): append
- new folder entries to the folders list.
- (config_control_apply_cb): display_folders is a list of folders,
- not a list of strings, treat accordingly.
-
-2003-01-09 Chris Toshok <toshok@ximian.com>
-
- * e-summary-preferences.c (e_summary_preferences_create_control):
- change gtk_widget_show to gtk_widget_show_all so all the various
- custom widgets are displayed.
-
-2003-01-08 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary.c (e_pixmap_file): Update to use
- $(datadir)/evolution/images/ instead of
- $(datadir)/images/evolution to fetch the icons.
-
-2002-12-16 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-shown.c (make_table): Do not ref/sink the ETreeMemory
- object.
-
-2002-12-11 Kevin Breit <mrproper@ximian.com>
-
- * Locations: Removed Marquette from the listing, it is no longer
- listed by METAR. This is per bug 29693.
-
- * Locations.h: Removed Marquette from the listing, it is no longer
- listed by METAR.
-
-2002-12-06 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c: Change description passed to
- BONOBO_ACTIVATION_SHLIB_FACTORY to correctly say we are a factroy.
-
-2002-12-04 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am (componentdir): Install in $(COMPONENT_DIR), not in
- ${prefix}/evolution/components.
-
-2002-12-04 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Summary.server.in.in: Updated to be a shared
- library.
-
- * main.c: Removed.
-
- * Makefile.am: Update to compile as a shared library.
-
- * component-factory.c: Changed to be a shared library factory, for
- both the ShellComponent and the ConfigControl objects.
-
- * e-summary-preferences.c
- (e_summary_preferences_init_config_control): Renamed from
- e_summary_preferences_register_config_control_factory.
- (e_summary_preferences_create_control): Renamed from factory_fn
- and removed all args.
-
-2002-11-27 Not Zed <NotZed@Ximian.com>
-
- * e-summary-shown.c (e_summary_shown_init): GNOME_STOCK_*NEXT/PREV ->
- GTK_STOCK_*GO_BACK/FORWARD.
-
- * e-summary.[ch]: ran fix.sh over this.
-
-2002-11-25 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (component_destroy): Removed.
- (create_component): Do not connect.
-
-2002-11-20 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (owner_unset_cb): bonobo_main_quit() instead
- of gtk_main_quit().
- (component_destroy): Likewise.
-
-2002-11-20 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c: Removed unused #define
- COMPONENT_FACTORY_ID.
- (component_factory_init): Removed unused variable.
-
- * GNOME_Evolution_Summary.server.in.in: Updated to not use a
- factory, which is what the code actually expects.
-
-2002-11-20 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary.c (e_summary_init): Use GConf.
-
- * e-summary-tasks.c: Replaced member config_listener in
- ESummaryTasks with a gconf_client.
- (setup_gconf_client): Renamed from setup_config_listener(). Set
- up the GConf client and invoke gconf_client_add_dir() on the
- interesting namespaces.
- (gconf_client_value_changed_cb): Renamed from
- config_listener_value_changed_cb and changed prototype to match
- that of the "value_changed" signal in GConfClient.
- (setup_task_folder): Updated to use GConf.
-
- * e-summary-calendar.c: Replaced member config_listener with a
- gconf_listener.
- (setup_calendar): Use GConf.
- (setup_gconf_client): Renamed from setup_config_listener. Set up
- a GConf client and invoke gconf_client_add_dir() on the
- interesting namespaces.
- (gconf_client_value_changed_cb): Renamed from
- config_listener_key_changed_cb() and changed prototype to match
- that of the "value_changed" signal in GConfClient.
- (locale_uses_24h_time_format): Removed.
- (e_summary_calendar_free): g_object_unref() the gconf_client.
-
- * Makefile.am: Add rules to install the schemas.
-
- * apps_evolution_summary.schemas: New.
-
- * e-summary-preferences.c: Did a global GList -> GSList switch.
- (e_summary_preferences_restore): Use GConfClient instead of
- EConfigListener.
- (vector_from_folder_list): Removed since GConf makes this useless.
- (folder_list_from_vector): Likewise.
- (str_list_from_vector): Likewise.
- (vector_from_str_list): Likewise.
- (make_initial_weather_list): Likewise.
- (make_initial_rdf_list): Likewise.
- (make_initial_mail_list): Likewise.
- (e_summary_preferences_save): Use GConf.
- (e_summary_preferences_init): No need to set up defaults here.
-
- * e-summary.h: Changed members display_folders, rdf_urls, stations
- in ESummaryPrefs to be GSLists instead of GLists; updated all the
- functions that use them accordingly.
-
-2002-11-14 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am: Added rule to generate
- GNOME_Evolution_Summary.server.in from
- GNOME_Evolution_Summary.server.in.in, substituting @LIBEXECDIR@.
- Also, install evolution-executive-summary in $libexecdir instead
- of $bindir.
-
- * GNOME_Evolution_Summary.server.in.in: Removed the @OAF_SHLIB_*@
- stuff and added @LIBEXECDIR@/ to the executable's name instead.
-
-2002-11-14 Ettore Perazzoli <ettore@ximian.com>
-
- * my-evolution.glade: Converted to Glade 2.
-
-2002-11-14 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-calendar.c: Replaced all gtk_signal_connect() calls
- with g_signal_connect() ones.
- * e-summary-mail.c: Likewise.
- * e-summary-offline-handler.c: Likewise.
- * e-summary-preferences.c: Likewise.
- * e-summary-shown.c: Likewise.
- * e-summary-tasks.c: Likewise.
- * e-summary.c: Likewise.
-
-2002-11-11 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-factory.c (control_destroy_cb): gtk_widget_destroy()
- instead of gtk_object_destroy().
- (e_summary_factory_new_control): Likewise.
-
- * e-summary-calendar.c: Use g_object_ref()/g_object_unref()
- instead of gtk_object_ref()/gtk_object_unref().
- * e-summary-preferences.c: Likewise.
- * e-summary-shown.c: Likewise.
- * e-summary-table.c: Likewise.
- * e-summary-tasks.c: Likewise.
- * e-summary.c: Likewise.
-
- * e-summary-preferences.c (e_summary_preferences_make_mail_table):
- g_object_set_data() instead of gtk_object_set_data().
- (make_property_dialog): g_object_get_data() instead of
- gtk_object_get_data().
- (get_folders_from_view): Likewise.
-
- * component-factory.c (create_view): Use
- evolution_shell_client_corba_objref() instead of
- bonobo_object_corba_objref() on the EvolutionShellClient object.
- Also, use g_object_get_data() instead of gtk_object_get_data().
- (owner_set_cb): Likewise.
- (create_component): Use g_object_set_data() instead of
- gtk_object_set_data().
-
-2002-11-11 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-rdf.c: Convert to use libxml2.
-
-2002-11-11 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-offline-handler.c: Convert from GtkObject to GObject.
-
-2002-11-07 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Summary.server.in.in: Renamed from
- GNOME_Evolution_Summary.oaf.in.in.
-
- * Makefile.am: GNOME_Evolution_Summary.server instead of .oaf.
-
-2002-11-05 Ettore Perazzoli <ettore@ximian.com>
-
- * metar.c: #include <string.h>.
-
- * main.c (main): Use gnome_program_init().
-
- * e-summary-tasks.c (e_summary_tasks_protocol): Use
- bonobo-activation.
-
- * e-summary-table.c (set_value_at): Use g_signal_emit() instead of
- gtk_signal_emit().
-
- * e-summary-shown.c (e_summary_shown_class_init): GObjectified.
- (construct_pixmap_button): Use gtk_image_new_from_stock() instead
- of gnome_stock_pixmap_new().
-
- * e-summary-preferences.c (e_summary_preferences_restore): Use
- EConfigListener.
- (add_dialog_clicked_cb): Add some missing consts.
- (factory_fn): Pass NULL as the domain arg to glade_xml_new().
- (factory_fn): Add id arg.
- (e_summary_preferences_register_config_control_factory):
-
- * e-summary-mail.c (e_summary_folder_init_folder_store): Use
- bonobo-activation.
-
- * e-summary-factory.c (control_activate): Pass NULL ev arg to
- bonobo functions that now need it.
- (control_deactivate): Likewise.
- (control_activate_cb): Likewise.
- (e_summary_factory_new_control): Use g_signal_connect() instead of
- gtk_signal_connect().
-
- * e-summary-calendar.c (e_summary_calendar_protocol): Use
- bonobo_activation.
-
- * e-summary.c: Update gnome-print #includes. Added some missing
- #includes.
- (e_summary_url_clicked): Pass NULL as the error arg to
- gnome_url_show().
- (do_summary_print): Use GnomePrintConfig instead of GnomePrinter
- et al.
-
- * e-cell-tri.h: Removed BEGIN_GNOME_DECLS/END_GNOME_DECLS.
-
- * e-summary.c: Removed #include <libgnome/gnome-defs.h>. Ported
- to e-config-listener.c.
-
- * e-cell-tri.h: Removed #include <libgnome/gnome-defs.h>.
-
- * component-factory.c: #include <gtk/gtkmain.h>.
- (create_component): Use g_signal_connect. Match prototype with
- the one required by bonobo_generic_factory().
-
- * Makefile.am: Add @INTLTOOL_SERVER_RULE@.
- ($(MAIL_GENERATED)): Update with new ORBit rules.
-
-2002-10-25 Ettore Perazzoli <ettore@ximian.com>
-
- * e-cell-tri.c (set_value): Removed debugging message.
-
- * e-summary-factory.c (control_activate): Removed the call to
- e_summary_thaw().
- (control_deactivate): Removed the call to e_summary_freeze().
-
- * e-summary-mail.c (folder_gen_html): Removed debugging message.
- (insert_path_recur): Likewise.
- (add_storage_to_table): Likewise.
- (folder_info_pb_changed): Likewise.
- (lazy_register_storages): Likewise.
-
- * e-summary-weather.c: #include "e-summary-preferences.h".
- (e_summary_weather_update): Removed debugging message.
-
- * e-summary-offline-handler.c: #include <gtk/gtksignal.h>.
-
- * main.c: #include <gconf/gconf.h> and <gal/widgets/e-cursors.h>.
-
- * e-summary-preferences.c (free_rdf_info): Removed unused
- function.
- (find_name_for_url): Likewise.
- (mail_etable_item_changed_cb): Likewise.
- (maybe_add_to_shown): Likewise.
- (get_folders_from_view): Removed debugging messages.
-
- * e-summary-rdf.c (tree_walk): Removed debugging message.
- (e_summary_rdf_update): Likewise.
-
- * e-summary-shown.c (find_entry_from_location): Removed unused
- function.
- (maybe_move_to_shown): Removed debugging message.
-
- * e-summary-tasks.c: New members cal_open_reload_timeout_id and
- reload_count in ESummaryTasks.
- (generate_html): Return if the load_state of the cal_client is not
- CAL_CLIENT_LOAD_LOADED.
- (cal_open_reload_timeout): New; timeout function for attempting to
- reload the calendar if the first attempt failed.
- (cal_opened_cb): If the load failed, register
- cal_open_reload_timeout to try again after one second.
- (setup_task_folder): If there is a pending timeout callback
- [cal_open_reload_timeout_id nonzero], remove it.
- (e_summary_tasks_init): Call setup_task_folder().
- (e_summary_tasks_free): If there is a pending timeout callback
- [cal_open_reload_timeout_id nonzero], remove it.
-
- * e-summary-calendar.c: New members cal_open_reload_timeout_id and
- reload_count in ESummaryCalendar.
- (e_cal_comp_util_compare_event_timezones): Renamed to
- compare_event_timezones() and made static.
- (generate_html): Return if the load_state of the cal_client is not
- CAL_CLIENT_LOAD_LOADED. Call e_summary_draw() before returning.
- (cal_open_reload_timeout): New; timeout function for attempting to
- reload the calendar if the first attempt failed.
- (cal_opened_cb): Return if the load_state of the cal_client is not
- CAL_CLIENT_LOAD_LOADED.
- (e_summary_calendar_reconfigure): Call setup_calendar() so that,
- if the default folder has changed, it gets reloaded.
- (setup_calendar): If there is a pending timeout callback
- [cal_open_reload_timeout_id nonzero], remove it.
- (e_summary_calendar_free): Likewise.
-
- * e-summary.c: New member queue_draw_idle_id in ESummaryPrivate.
- Removed member redraw_pending.
- (destroy): If queue_draw_idle_id is nonzero, remove the
- corresponding glib mainloop source.
- (draw_idle_cb): New function to regenerate the HTML in the idle
- loop; moved all the code from e_summary_draw() in here.
- (e_summary_draw): Set up draw_idle_cb as an idle callback.
- (e_summary_init): Initialize queued_draw_idle_id.
- (e_summary_reload_timeout): Call e_summary_calendar_reconfigure()
- and e_summary_tasks_reconfigure(). Removed debugging message.
- (e_summary_set_online): Removed debugging message.
- (e_summary_freeze): Removed.
- (e_summary_thaw): Removed.
-
-2002-10-23 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-preferences.c: Replace Gnotices with Footnotes.
- [#31581]
-
-2002-10-23 Ettore Perazzoli <ettore@ximian.com>
-
- [#31607 and #31616]
-
- * e-summary-tasks.c: New member config_listener in ESummaryTasks.
- (e_summary_tasks_free): Unref the config_listener.
- (config_listener_key_changed_cb): New, callback for the
- config_listener.
- (setup_task_folder): New helper function to set up access to the
- task folder.
- (setup_config_listener): New.
- (e_summary_tasks_init): Use setup_config_listener() and
- setup_task_folder().
-
- * e-summary-calendar: New member config_listener in
- ESummaryCalendar.
- (setup_config_listener): New.
- (config_listener_key_changed_cb): New callback for the
- config_listener.
- (setup_calendar): New.
- (e_summary_calendar_init): Use setup_config_listener() and
- setup_calendar().
-
-2002-10-21 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-weather.c (e_summary_weather_reconfigure): NULL the
- ->weathers member before freeing the list items. Otherwise
- soup_message_cancel() might invoke the refresh function while we
- are freeing things on the list, and crash. [#31639]
-
-2002-09-26 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-mail.c (e_summary_mail_generate_html): Generate HTML
- for the folder even if the unread count is zero.
-
-2002-09-26 Ettore Perazzoli <ettore@ximian.com>
-
- [#28903]
-
- * e-summary-mail.c: Add member physical_uri to ESummaryMailFolder.
- Removed member name. Renamed FolderStore.folders to
- FolderStore.path_to_folder and added
- FolderStore.physical_uri_to_folder.
- (new_folder_cb): Set physical_uri member.
- (update_folder_cb): Likewise.
- (new_folder_cb): Pass physical_uri to
- e_summary_mail_idle_get_info(). Also g_strdup() it since that's
- what it expects.
- (remove_folder_cb): Free physical_uri.
- (mail_change_notify): Compare against folder->physical_uri, not
- ->path.
- (e_summary_mail_reconfigure): Pass folder->physical_uri to
- e_summary_mail_get_info, not ->path.
- (e_summary_mail_uri_to_name): Removed.
- (e_summary_folder_init_folder_store): Initialize path_to_folder
- and physical_uri_to_folder.
- (new_folder_cb): Add the folder to the physical_uri_to_folder hash
- too.
- (mail_change_notify): Use physical_uri_to_folder to figure out the
- folder from the uri.
- (e_summary_mail_reconfigure): Here as well.
-
-2002-09-26 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-preferences.c (vector_from_folder_list): Remove
- debugging message.
-
-2002-09-26 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-preferences.c (folder_list_from_vector): Do some
- sanity checking so we don't crash miserably as in #28481.
-
-2002-09-26 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-preferences.c: Take out CNN and DebianPlanet, which do
- not seem to work for me.
-
-2002-09-23 Dan Winship <danw@ximian.com>
-
- * e-summary-offline-handler.c (impl_goOffline): Pass ev, not &ev
- to CORBA_Object_duplicate since ev is already a pointer.
-
-2002-09-23 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-weather.c (e_summary_weather_get_html): Don't add any
- header if there are no weather stations. [#15101]
- (make_anchor): Removed unused function.
-
-2002-09-17 Ettore Perazzoli <ettore@ximian.com>
-
- * Locations: Add Israel. [Patch by Sam Popper
- <shmuelp@bigfoot.com>.]
-
-2002-09-13 Dan Winship <danw@ximian.com>
-
- * Makefile.am (IDLS, MAIL_GENERATED): Update for Mailer.idl rename
-
- * e-summary.c, e-summary-mail.c: Likewise
-
-2002-09-05 Anna Dirks <anna@ximian.com>
-
- * GNOME_Evolution_Summary.oaf.in.in : Changed the description of the
- summary page of the settings dialog to be less wordy.
-
-2002-09-04 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (create_component): Pass NULL as
- @unpopulate_folder_context_menu_fn to
- evolution_shell_component_new().
-
-2002-08-29 Dan Winship <danw@ximian.com>
-
- * GNOME_Evolution_Summary.oaf.in.in: Oops. Take two.
-
- * GNOME_Evolution_Summary.oaf.in: Remove this. It's autogenerated.
-
-2002-08-28 Dan Winship <danw@ximian.com>
-
- * GNOME_Evolution_Summary.oaf.in: Add an
- evolution:shell_component_launch_order and rename
- evolution:shell_component_icon.
-
-2002-08-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * main.c (main): Use e-util/e-proxy.c's e_proxy_init().
-
-2002-08-21 Iain <iain@ximian.com>
-
- * e-summary-tasks.c (get_todays_uids): Count overdue tasks as tasks
- due today.
-
-2002-08-14 Iain <iain@ximian.com>
-
- * e-summary-calendar.c (generate_html): Use the default uris for the
- links.
- (e_summary_calendar_init): Get the default uri from bonobo config
- (e_summary_calendar_free): Free default uri.
-
- * e-summary-tasks.c (generate_html): Use the default uris for the
- links.
- (e_summary_tasks_init): Get the default uri.
- (e_summary_tasks_free): Free default uri.
-
-2002-08-14 Iain <iain@ximian.com>
-
- * e-summary-tasks.c (sort_uids): Sort the tasks in the correct order.
-
-2002-08-14 Iain <iain@ximian.com>
-
- * e-summary-tasks.c (get_task_colour): Return the stored task colour.
- (e_summary_tasks_init): Get the colour for overdue and todays tasks
- from the wombat.
- (e_summary_tasks_free): Free the stored colours.
-
-2002-08-12 Iain <iain@ximian.com>
-
- * e-summary-preferences.c: Removed duff URIs
- (set_selected_folders): Comment out the set_release call, as it's
- crashing, and I have no idea what it's supposed to do.
-
-2002-08-07 Dan Winship <danw@ximian.com>
-
- * e-summary-mail.c (update_folder_cb): Only get folder info if
- this is a folder we're displaying.
-
-2002-08-07 Anna Marie Dirks <anna@ximian.com>
-
- * e-summary-shown.c (e_summary_shown_init): Added an alignment to
- make button position be the same as the other buttons of this type
- in evo.
- (add_clicked): make this buttons sensitive when there is no proper
- selection
- (remove_clicked): same thing with the button
-
- * my-evolution.glade: Capitalized "Weather Settings" properly.
-
-
-2002-07-26 Peter Williams <peterw@ximian.com>
-
- * e-summary-mail.c (update_folder_cb): Don't use the folder's path
- as the physical URI; use CORBA Magic (TM) to figure it out.
-
-2002-07-29 Iain Holmes <iain@ximian.com>
-
- * e-summary-tasks.c (get_task_colour): Get the colour for a task: Red
- if overdue, blue if todays task, black otherwise.
- (generate_html): Get the task colour, and shuffle the HTML around so
- the colour gets preference over the link.
-
-2002-07-29 Iain Holmes <iain@ximian.com>
-
- * Locations: Fixed typo according to bug #18963
-
- * Locations.h: Updated.
-
- * e-summary-tasks.c (e_summary_tasks_get_html): Return on NULL.
-
-2002-07-11 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-preferences.c (set_selected_folders): Actually pass
- the evolution URI, not the path, in Folder.evolutionUri (since now
- the shell StorageSetView implementation has been fixed to handle
- this field properly).
-
-2002-07-11 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-preferences.c (set_selected_folders): Set the
- customIconName part to the empty string. [#27616]
- Also, set_release on the sequence to TRUE.
-
-2002-06-28 Dan Winship <danw@ximian.com>
-
- * e-summary-mail.c (e_summary_mail_idle_get_info): Add this, to
- call e_summary_mail_get_info from an idle handler.
- (new_folder_cb, update_folder_cb): Use idle_get_info rather than
- making another corba call from inside the corba handler. (Fixes a
- three-way deadlock between mail, summary, and exchange.)
-
-2002-06-26 Iain <iain@ximian.com>
-
- * e-summary-rdf.c (layer_find_url): If w == NULL return. Fixes crash
- if RDF has no link tags.
-
-2002-06-26 Iain <iain@ximian.com>
-
- * Locations: Fix a typo and remove Latvia, cos I couldn't find the
- correct code for it.
-
- * Locations.h: Regenerated.
-
-2002-06-26 Iain <iain@ximian.com>
-
- * e-summary-weather.c (e_summary_weather_fill_etable): Count the
- states from 0 up.
-
- * e-summary-shown.c (e_summary_shown_append): Use -1 instead of the
- children count.
-
-2002-06-26 Iain <iain@ximian.com>
-
- * component-factory.c (owner_set_cb): Pass the shell.
-
- * e-summary-mail.c (new_folder_cb): Use the ESummaryPrefsFolder stuff.
- Remove some debugging spew.
-
- * e-summary-preferences.c (make_initial_mail_list): Make a mail list
- using the ESummaryPrefsFolder stuff.
- (folder_list_from_vector): Given a vector make ESummaryPrefsFolders.
- (vector_from_folder_list): Given ESummaryPrefsFolders, make a vector.
- (e_summary_preferences_restore): Use a new ident.
- (free_folder_list): Free a list of ESummaryPrefsFolders.
- (copy_folder_list): Copy a list of ESummaryPrefsFolders.
- (fill_rdf_etable): Store the RDFInfo struct in the model.
- (fill_mail_etable): Remove.
- (add_dialog_clicked_cb): Cast some stuff and add a new entry.
- (rdf_delete_url_cb): Delete the selected urls.
- (rdf_etable_selection_cb): Change the Delete button depending on what
- rdfs are selected.
- (storage_set_changed): Pass the changed signal to the control.
- (make_property_data): Use the StorageSetView and hook up the new
- button.
- (set_selected_folders): Set the checkboxes inthe StorageSetView.
- (e_summary_preferences_make_mail_table): Get the StorageSetView
- widget and hook it up.
- (get_folders_from_view): Get the list of checked folders and make
- ESummaryPrefsFolders for them.
-
- * e-summary-shown.c: Add a selection_changed signal.
- (real_selected_count): Add the path to the selected list.
- (make_list): Make a list from the selection.
- (e_summary_shown_get_selection): Get the selection as a list.
-
- * my-evolution.glade: Add a Delete New Feed button.
-
-2002-06-21 Iain Holmes <iain@ximian.com>
-
- * main.c (main): Init GConf, and set the proxy.
- (set_proxy): Get all the proxy stuff and set Soup to use it.
- (proxy_setting_changed): Listen to GConf stuff being changed.
- (init_soup_proxy): Set up GConf to listen to changes in gnome-vfs
-
-2002-06-05 Christopher James Lahey <clahey@ximian.com>
-
- * e-summary-shown.c (maybe_move_to_shown, add_clicked,
- remove_from_shown, remove_clicked): Avoid reentrancy during
- e_tree_selection_model_foreach. Fixes Ximian bug #24987.
-
-2002-05-23 JP Rosevear <jpr@ximian.com>
-
- * GNOME_Evolution_Summary.oaf.in.in: correct typo
-
-2002-05-20 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (add_dialog_clicked_cb): Add a new summary
- to the All table.
- (make_property_dialog): Hook up the new button.
-
- * e-summary-shown.c (e_summary_shown_init): Add some spacing.
-
-2002-05-20 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-table.c: Don't show the headers in the folder table.
-
- * e-summary-shown.c (e_summary_shown_init): Set the spacing to 3.
-
-2002-05-15 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (create_component): Pass NULL as
- @request_quit_fn.
-
-2002-05-14 Christopher James Lahey <clahey@ximian.com>
-
- * e-summary-mail.c (folder_gen_html): Use the uri stored in the
- ESummaryMailFolder object here.
- (e_summary_mail_generate_html): Only show email folders if they
- have > 0 unread messages.
- (new_folder_cb): Save the evolutionUri here.
-
-2002-04-08 Iain Holmes <iain@ximian.com>
-
- * e-summary-shown.c (construct_pixmap_butto): Create a button with a
- label and a pixmap.
- (e_summary_shown_init): Use the pixmap buttons.
-
-2002-04-08 Iain Holmes <iain@ximian.com>
-
- * e-summary-mail.c (mail_change_notify): Don't use an ESummary object,
- get the prefs from the global preferences.
- (e_summary_mail_init): Don't connect to the listener.
- (e_summary_mail_free): Don't disconnect the listener.
- (folder_info_pb_changed): Register the storages.
- (lazy_register_storages): Get the property bag, and check if the
- folder-info is ready. If so register the storages, otherwise get the
- propertybag listener and listen for changes.
- (e_summary_folder_inif_folder_store): Listen to changes in the stores
- and register the storages only when the folder info is ready for it.
-
-2002-04-22 Iain Holmes <iain@ximian.com>
-
- * e-summary-mail.c: Remove the shown and mode bits from the
- ESummaryMail structure.
- (e_summary_mail_generate_html): USe the folder_store list instead
- of the blank one in mail->
- (new_folder_cb): Allow all mail folders now.
- (update_folder_cb): Get the uri correctly.
- (mail_change_notify): Remove debugging spew.
- (e_summary_mail_reconfigure): Comment out the part that adds a
- protocol to the front of a uri.
- (insert_path_recur): If there is no toplevel, guess if from the
- folder path. Not sure if it works for everything.
- (add_storage_to_table): Store the whole of the sorted list,
- and resort it every time.
- (make_toplevel): I18n the titles, and remove the debugging.
- (e_summary_mail_fill_list): Store the sortewd list.
-
- * e-summary_preferences.c (fill_rdf_etable): Create a new entry
- to add to the shown list.
-
- * e-summary-shown.c (make_table): take a title for the table.
- Generate the spec from that table.
- (e_tree_model_node_append): Freeze the tree before adding the
- node.
- (e_summary_shown_add_node): Take an expanded boolean.
-
- * e-summary-table.c: Make the SPEC set the width correctly.
- (e_summary_table_add_node): Freeze the table.
-
- * e-summary-weather.c (is_weather_shown): Search the global_prefs
- to see if the node is shown.
- (e_summary_weather_fill_etable): Set the expanded state on all to
- FALSE except for leaf nodes..
- Create a new entry for shown rows.
-
-2002-04-08 Dan Winship <danw@ximian.com>
-
- * component-factory.c (create_view): Add view_info arg but don't
- do anything with it.
-
-2002-04-06 JP Rosevear <jpr@ximian.com>
-
- * GNOME_Evolution_Summary.oaf.in.in: add config_item:priority
-
-2002-04-05 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: dist the relevant xpms
-
-2002-04-04 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: fix substitution typo
-
-2002-03-30 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am: Added support for the ENABLE_SHLIB_COMPONENTS
- conditional.
-
- * GNOME_Evolution_Summary.oaf.in.in: New.
-
- * e-summary-mail.c (update_folder_cb): Protect against
- summary->mail being NULL.
-
- * component-factory.c: Add a shlib factory.
- (create_component): Get a @factory and @data.
- (component_factory_init): Actually make it use a
- BonoboGenericFactory again.
-
-2002-03-29 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Summary.oaf.in: Add priority.
-
-2002-03-19 Dan Winship <danw@ximian.com>
-
- * Makefile.am (evolution_executive_summary_LDADD):
- s/libversit.la/libversit.a/
-
-2002-03-19 Iain Holmes <iain@ximian.com>
-
- * component-factory.c: Create a global_preferences structure.
- (create_view): Pass in the global_preferences to the view.
- (create_component): Initialise the preferences.
-
- * e-summary-factory.[ch] (e_summary_factory_new_control): Take a prefs
- structure and pass it to the view creation.
-
- * e-summary-mail: Remove some debug spew.
-
- * e-summary-preferences.[ch]: Create a global_preferences structure.
- (e_summary_preferences_init): just return the prefs instead of adding
- a pointer to it.
- (config_control_destroy_cb): Remove the old_prefs stuff.
- (factory_fn): Ditto.
-
- * e-summary.[ch] (e_summary_init): Don't initialise the preferences
- here.
- (e_summary_new): Take a preferences structure and keep a pointer to
- it.
-
-2002-03-15 Iain Holmes <iain@ximian.com>
-
- * Makefile.am: Add the e-summary-shown.[ch] files.
-
- * e-summary-mail.c: Add entries for the Storages in the private
- struct.
- (new_folder_cb): Only allow mail folders that are local or vfolders.
- Store the StorageInfo that the folder belongs to in the folder struct
- Add the folder to the list of folders in the storage.
- (update_folder_cb): Update the signature.
- (mail_change_notify): Simplify the check to see if we are displaying
- the folder.
- (e_summary_mail_register_storage): Take a name argument.
- Create a StorageInfo structure, connect the signals and add the
- listener.
- (e_summary_mail_register_local_storage): Get the local storage from
- the shell and register it with e_summary_mail_register_storage.
- (storage_notify): Receive notifications when a new storage is created
- or destroyed or changed. Stuff only happens when a storage is
- created, currently.
- (e_summary_mail_register_storages): Don't register local storage
- here. Get the StorageRegistry from the corba_shell, create a new
- BonoboListener and add it to the registry.
- (e_summary_mail_init): Free a CORBA_Environment.
- (e_summary_mail_reconfigure): Add a check for the uri being a
- vfolder.
- (str_compare): Compare ESummaryMailFolders instead of MailRowDatas.
- (sort_storages): Compare 2 storage names.
- (get_parent_path): Special case for the vfolders.
- (insert_path_recur): Remove the toplevel creation.
- Create a toplevel node if the uri is a storage toplevel.
- Special case the name finder for vfolders.
- Get the number of children in the parent so that we can add the new
- child after the rest.
- (add_storage_to_table): For each folder in a storage, add it to the
- table.
- (make_toplevel): Generate the toplevel name for each storage.
- (e_summary_mail_fill_list): For each storage, add the folders.
-
- * e-summary-preferences.c (fill_rdf_etable): Put the entries into an
- ESummaryShown instead of an ESummaryTable.
- (make_property_dialog): Hook up to the Showns.
- (add_shown_to_list): Add the locations to the list.
- (property_box_clicked_cb): Create a new list for the RDFs and
- weathers.
- (e_summary_preferences_make_rdf_table): Make an ESummaryShown.
- (e_summary_preferences_make_weather_table): Make an ESummaryShown.
-
- * e-summary-table.c: Use ECellTri.
- (value_at): Get the right value for the TriCell.
- (set_value_at): Set the right value for the TriCell.
- (e_summary_table_init): Use the ECellTri.
- (e_summary_table_get_num_children): Get the number of children a
- path has.
-
- * e-summary-weather.c (e_summary_weather_fill_etable): Use an
- ESummaryShown instead of ESummaryTable.
-
- * e-summary.[ch]: Store the GNOME_Evolution_Shell in the nonprivate
- structure.
-
- * e-summary-shown.[ch]: Widget to do Add-> <-Remove with two tables.
-
-2002-02-22 Iain Holmes <iain@ximian.com>
-
- * e-summary-factory.c: Use the new configure icon.
-
-2002-02-13 Iain Holmes <iain@ximian.com>
-
- * Makefile.am: Add the e-cell-tri.[ch] files
-
- * e-summary-table.c
-
-2002-03-14 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-factory.c (e_summary_factory_new_control): Call
- `e_summary_preferences_register_config_control_factory()'.
-
- * e-summary-preferences.c: Remove member `box' from struct
- PropertyData. Added member `config_control'.
- (e_summary_configure): Removed.
- (property_box_destroy_cb): Removed.
- (property_box_clicked_cb): Removed.
- (property_box_apply_cb): New.
- (config_control_destroy_cb): New.
- (factory_fn): New, factory function for the
- EvolutionConfigControl.
- (e_summary_preferences_register_config_control_factory): New.
- (mail_show_full_path_toggled_cb): Invoke ::changed on
- pd->config_control.
- (add_dialog_clicked_cb): Likewise.
- (rdf_refresh_value_changed_cb): Likewise.
- (rdf_limit_value_changed_cb): Likewise.
- (mail_etable_item_changed_cb): Likewise.
- (rdf_etable_item_changed_cb): Likewise.
- (weather_etable_item_changed_cb): Likewise.
- (weather_refresh_value_changed_cb): Likewise.
- (weather_metric_toggled_cb): Likewise.
- (weather_imperial_toggled_cb): Likewise.
- (calendar_one_toggled_cb): Likewise.
- (calendar_five_toggled_cb): Likewise.
- (calendar_week_toggled_cb): Likewise.
- (calendar_month_toggled_cb): Likewise.
- (calendar_all_toggled_cb): Likewise.
- (calendar_today_toggled_cb): Likewise.
- (config_control_destroy_cb): Don't set ->prefs_window to NULL.
-
- * my-evolution.glade: Renamed "notebook2" to "notebook". Also
- change its parent into a GtkWindow as libglade seems to have some
- kind of problem with the GnomePropertyBox [glade_xml_get_widget()
- for "notebook" always returned NULL].
-
- * e-summary.h: Remove member `prefs_window' from `ESummary'.
-
-2002-02-14 Radek Doulik <rodo@ximian.com>
-
- * e-summary-tasks.c (sort_uids): fix case when priority is
- undefined and pri_a or pri_b is returned as NULL, also fixes
- memory leak
-
-2002-02-08 Damon Chaplin <damon@ximian.com>
-
- * e-summary-calendar.c (e_cal_comp_util_compare_event_timezones):
- updated to new version from calendar/gui/comp-util.c
-
-2002-02-04 Iain Holmes <iain@ximian.com>
-
- * Makefile.am: Add the e-summary-table.[ch] files.
-
- * e-summary-mail.c: Move the headers.
- (e_summary_mail_get_html): Regenerate the HTML.
- (update_folder_cb): Make the file:// part static as it's the same
- every time.
- (mail_change_notify): Don't recalculate the HTML here.
- (e_summary_mail_reconfigure): Don't add file:// if it's already there.
- (get_parent_path): Given a path, return it's parent.
- (is_folder_shown): Check all the shown folders to see if the given one
- is shown.
- (insert_path_recur): Recursively add a path to the tree.
- (free_path_hash): Free the key of the hash table.
- (e_summary_mail_fill_list): Add all the folders to the tree.
-
- * e-summary-preferences.c: Move the headers
- (rdf_is_shown): Check if an RDF is shown.
- (fill_rdf_etable): Fill the etable with all the RDFs
- (fill_weather_etable): Fill the weather etable.
- (fill_mail_etable): Ditto (with mail)
- (make_property_dialog): Use the etables.
- (free_property_dialog): Free the new lists.
- (maybe_add_to_shown): Check if the item is clicked and if so add it to
- the list.
- (property_box_clicked_cb): Set all the new properties
- (e_summary_preferences_make_*_table): Make the etables
-
- * e-summary-rdf.c (e_summary_rdf_update): Don't cancel the message,
- just keep using the previous one.
-
- * e-summary-weather.c (message_finished): Better error message.
- (e_summary_weather_update): Just continue if a message is already
- going.
- (is_weather_shown): Find out if a station is shown.
- (e_summary_weather_fill_etable): Fill the etable.
-
- * main.c (main): Init the cursors.
-
- * my-evolution.glade: Add the custom widgets.
-
-2002-02-02 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-offline-handler.c (create_connection_list): Allocate
- the ConnectionList list with the right number of entries instead
- of zero.
-
-2002-02-01 Ettore Perazzoli <ettore@ximian.com>
-
- [Fix a crash that can happen if you have opened multiple views of
- the summary and try to go off-line. This is not the correct fix,
- as the code should really be changed to only use one set of
- connections for all the views, instead of binding the connections
- to the view.]
-
- * e-summary-factory.c (e_summary_factory_new_control): Call
- `e_summary_offline_handler_add_summary()' instead of
- e_summary_offline_handler_set_summary()'.
-
- * e-summary-offline-handler.c: Replace member `summary' with
- `summaries' in the ESummaryOfflineHandlerPriv. This way, instead
- of assuming that there is only one summary, we keep a list of the
- summaries.
- (impl_destroy): Free ->summaries.
- (e_summary_offline_handler_set_summary): Removed.
- (e_summary_offline_handler_add_summary): New. Add the summary to
- ->summaries. Also, connect to the ::destroy handler so we can
- bookkeep them correctly.
- (create_connection_list): Made private from
- e_summary_offline_handler_create_connection_list(). Get a GSList
- instead of just one summary, and sum up all the connections from
- it.
- (impl_prepareForOffline): Use it.
- (impl__get_isOffline): Return %FALSE if any of the summaries are
- online, %TRUE otherwise.
- (impl_goOffline): Call ::set_online on all the summaries. Pass
- CORBA_OBJECT_NIL for the progress_listener as it doesn't really
- get used anyways.
- (impl_goOnline): Likewise. Pass CORBA_OBJECT_NIL, not NULL, for
- the progress CORBA_Object pointer.
-
-2002-01-24 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am: Use EVOLUTION_EXECUTIVE_SUMMARY_CFLAGS and
- EVOLUTION_EXECUTIVE_SUMMARY_LIBS.
-
-2002-01-24 Iain Holmes <iain@ximian.com>
-
- * Locations: Applied the Ukraine patch from Leonid Kanter
-
- * Locations.h: Re-generated to get the UK stations added.
-
-2002-01-22 Iain Holmes <iain@ximian.com>
-
- * e-summary-mail (e_summary_mail_reconfigure): Do the list backwards.
-
- * e-summary-preferences.c (fill_mail_shown_clist): Prepend items.
- (mail_add_clicked_cb): Prepend items.
-
-2002-01-04 Iain Holmes <iain@ximian.com>
-
- * e-summary-weather.c (message_finished): Made the Weather message
- more verbose, and say which station data could not be retrieved for.
-
-2002-01-03 Iain Holmes <iain@ximian.com>
-
- * Makefile.am: Use SOUP_CFLAGS and SOUP_LIBS
-
- * e-summary-rdf.c: Include soup.h
- (close_callback): Remove.
- (message_finished): Generate the cache and other stuff and redraw.
- (read_callback): Remove.
- (open_callback): Remove.
- (e_summary_rdf_update): Replace gnome-vfs with Soup stuff.
- (e_summary_rdf_count): Replace gnome-vfs with soup.
- (rdf_free): ditto
- (e_summary_rdf_set_online): Ditto
-
- * e-summary-weather.c: Include soup.h
- (close_callback): Remove.
- (message_finished): Parse all the downloaded html.
- (read_callback): Remove.
- (open_callback): Remove.
- (e_summary_weather_update): Use soup instead of gnome-vfs
- (weather_free): Ditto.
- (e_summary_weather_count): Ditto.
- (e_summary_weather_add): ditto;
- (e_summary_weather_set_online): Ditto.
-
- * e-summary.c (close_callback): Remove.
- (read_callback): Remove.
- (open_callback): Remove.
- (e_read_file_with_length): Read a file.
- (e_summary_url_requested): Create the images cache. Load the image
- with e_read_file_with_length instead of gnome-vfs.
-
- * main.c (main): Remove gnome_vfs_init.
-
- * weather.h: Replace gnome-vfs stuff.
-
-2002-01-03 Iain Holmes <iain@ximian.com>
-
- * e-summary-offline-handler.c (impl_prepareForOffline): Create an
- empty list if the summary == NULL. Fixes bug 18025
-
-2001-12-20 Ettore Perazzoli <ettore@ximian.com>
-
- [Fixes #17377, Evolution doesn't work on multi-depth displays.]
-
- * main.c (main): Push GdkRGB visual and colormap.
-
-2001-12-19 JP Rosevear <jpr@ximian.com>
-
- * e-summary-tasks.c (e_summary_tasks_init): use
- cal_client_open_default_tasks
-
- * e-summary-calendar.c (e_summary_calendar_init): use
- cal_client_open_default_calendar
-
-2001-12-14 Iain Holmes <iain@ximian.com>
-
- * Location-translation-script: shell script to convert Locations to
- Locations.h
-
- * Locations.h: Translatable file for the weather stations.
-
- * Makefile.am: Add these files to the dist.
-
-2001-12-14 Iain Holmes <iain@ximian.com>
-
- * metar.c: Remove the degree symbol.
-
-2001-12-14 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_init): Create a translatable string for the
- default HTML, that says "Please wait..."
-
-2001-12-14 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_freeze): Check that priv != NULL
- (e_summary_thaw): Check that priv != NULL
- (e_summary_count_connections): Check that summary is a Summary.
- (e_summary_add_connections): Check that the summary is a Summary.
- (e_summary_set_online): Check that the summary is a Summary.
-
- * e-summary-offline-handler.c (impl__get_isOffline): Only check
- summary if it's not NULL.
- (impl_prepareForOffline): Ditto.
- (impl_goOnline): Only go online if summary isn't NULL.
-
-2001-12-13 Iain Holmes <iain@ximian.com>
-
- * e-summary-calendar.c (generate_html): Check that text.value isn't
- NULL.
-
-2001-12-10 Iain Holmes <iain@ximian.com>
-
- * e-summary-rdf.c (e_summary_rdf_init): Set the initial sites to
- Linux Today and Salon.
-
- * e-summary-preferences.c (make_initial_rdf_list): Ditto
-
-2001-12-10 Iain Holmes <iain@ximian.com>
-
- * e-summary-calendar.c (generate_html): Apply damon's change.
-
-2001-12-06 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (rdfs): Remove the perl.com one.
-
-2001-11-14 Iain Holmes <iain@ximian.com>
-
- * my-evolution.glade: Spell celsius right.
-
-2001-11-13 Damon Chaplin <damon@ximian.com>
-
- * e-summary.c (e_summary_init): make the timezone default to UTC.
-
-2001-11-08 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-preferences.c: Removed `morons.org'.
-
-2001-11-06 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (make_initial_weather_list): Don't free the
- vector. Doh!
-
-2001-10-31 Iain Holmes <iain@ximian.com>
-
- * Locations: Removed Frobisher.
-
-2001-10-31 Iain Holmes <iain@ximian.com>
-
- * Locations: Fixed a spelling mistake.
-
-2001-10-31 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (make_initial_rdf_list): Put this back.
- (make_initial_weather_list): This too plus fixed a memory leak.
- (vector_from_str_list): Allow a NULL list. Return "" instead of NULL.
- (e_summary_preferences_restore): Allow the display_folders, rdf_urls,
- and stations to be NULL.
-
- * e-summary-weather.c (e_summary_weather_init): Revert the last changes
-
- * e-summary-rdf.c (e_summary_rdf_init): Same.
-
-2001-10-30 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (find_name_from_url): Check a for NULL values
-
-2001-10-29 Damon Chaplin <damon@ximian.com>
-
- * Makefile.am (evolution_executive_summary_LDADD): use
- libical-evolution.la
-
-2001-10-29 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (make_initial_rdf_list): Set list to NULL.
- (make_initial_weather_list): Set list to NULL.
-
- * e-summary-weather.c (e_summary_weather_init): Check if the prefs are
- NULL or if the weather stations are NULL.
-
- * e-summary-rdf.c (e_summary_rdf_init): Check if the prefs or the list
- of news feeds is NULL.
-
-2001-10-29 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (fill_rdf_all_clist): Open the new location.
- If it doesn't exist try the old location.
- (save_known_rdfs): Save to the new location.
-
-2001-10-29 Rodrigo Moya <rodrigo@ximian.com>
-
- * e-summary-calendar.c (e_summary_calendar_init): retrieve the
- default URI for calendars from the configuration instead of
- hard-coding it
-
- * e-summary-tasks.c (e_summary_tasks_init): likewise for tasks
-
-2001-10-29 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-preferences.c (make_initial_weather_list): We only
- want KBOS by default.
-
- * e-summary-weather.c (e_summary_weather_init): We only want KBOS
- by default.
-
-2001-10-27 Jon Trowbridge <trow@ximian.com>
-
- * e-summary.c (e_summary_reload): Slow down reload requests
- to work around a bug in gnome-vfs. Ugly, but it works.
- (Bug #12956)
-
-2001-10-26 Iain Holmes <iain@ximian.com>
-
- * e-summary-rdf.c (open_callback): NULL the handle after a failed
- open so the offline handler won't think they're still open.
- (e_summary_rdf_set_online): Cancel all the open connections when the
- summary goes offline.
-
- * e-summary-weather.c (open_callback): NULL the handle after a failed
- open so the offline handler won't think they're still open.
- (e_summary_weather_set_online): Cancel all the open connections when the
- summary goes offline.
-
- * e-summary.c (e_summary_set_online): Call the callback if it's not
- NULL.
-
-2001-10-25 Jon Trowbridge <trow@ximian.com>
-
- * e-summary-tasks.c (sort_uids): It is possible for
- start_foo.value to be NULL after a call to
- cal_component_get_dtstart, so we need to check for this before
- dereferencing it. (Bug #13259)
-
-2001-10-24 Iain Holmes <iain@ximian.com>
-
- * e-summary-mail.c (e_summary_mail_init): Don't free the mail part.
- Allows the summary to still function without the mail part.
-
-2001-10-22 Anna Marie Dirks <anna@ximian.com>
-
- * my-evolution.glade: Changed "Add new feed" to "Add news feed".
-
-2001-10-22 Damon Chaplin <damon@ximian.com>
-
- * e-summary-tasks.c (generate_html): set the default timezone on the
- server.
-
- * e-summary-calendar.c (e_cal_comp_util_compare_event_timezones):
- update to check for DATE values.
- (uids_to_array): pass the default timezone
- to cal_recur_generate_instances.
- (generate_html): set the default timezone on the server.
-
-2001-10-22 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-preferences.c (e_summary_configure): Remove the
- help_button in the property box.
-
-2001-10-19 Iain Holmes <iain@ximian.com>
-
- * e-summary-mail.c (e_summary_mail_init): set the summary->mail to
- NULL after freeing it.
- (mail_change_notify): Return if mail == NULL.
-
-
-2001-10-18 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_reload): Only reload the views, don't do an
- entire reconfigure.
-
- * e-summary-rdf.c (e_summary_rdf_update): Free stuff and update.
-
- * e-summary-weather.c (e_summary_weather_update): Ditto
-
-2001-10-16 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_new): Don't call a draw.
-
- * e-summary-mail.c (e_summary_mail_init): Make sure html is NULL.
-
-2001-10-14 Zbigniew Chyla <cyba@gnome.pl>
-
- * e-summary-calendar.c (generate_html): Made temporary buffer for
- strftime much bigger (it was too small for Polish month names), added
- missing colon and conversion to UTF-8.
-
-2001-10-12 Iain Holmes <iain@ximian.com>
-
- * component-factory.c (component_factory_init): Fix message.
-
- * metar.c: Fix some names.
- Made the weather descriptions easier on the eyes.
-
-2001-10-11 Dan Winship <danw@ximian.com>
-
- * e-summary-mail.c (update_folder_cb): Update the signature to
- match the new signal.
-
-2001-10-10 Iain Holmes <iain@ximian.com>
-
- * e-summary-weather.c (e_summary_weather_update): Return a value.
- Only repoll if the summary is online.
-
- * e-summary-rdf.c (e_summary_rdf_update): Only poll if online
-
-2001-10-10 Iain Holmes <iain@ximian.com>
-
- * my-evolution.glade: Set the minimum length of time for updates to
- 5 minutes.
-
-2001-10-06 Carlos Perelló Marín <carlos@gnome-db.org>
-
- * e-summary-preferences.c: Added HispaLinux
-
-2001-10-05 Iain Holmes <iain@ximian.com>
-
- * e-summary-rdf.c (e_summary_rdf_reconfigure): Set the RDF list to
- NULL before destroying it to fix a race condition.
-
-2001-10-04 Iain Holmes <iain@ximian.com>
-
- * my-evolution.glade: Capitalise stuff
-
-2001-10-03 Iain Holmes <iain@ximian.com>
-
- * e-summary-weather.c (e_summary_weather_init): Swap Xiamen for Tokyo
-
-2001-10-01 Damon Chaplin <damon@ximian.com>
-
- * e-summary-calendar.c (generate_html): used time_add_day/week/month
- _with_zone() functions rather than the old versions.
-
- * e-summary.c (alarm_fn): use time_day_end_with_zone ().
-
- * e-summary-tasks.c (generate_html): removed day_begin and day_end
- since they aren't used, and the calls to time_day_begin/end().
-
-2001-10-02 Iain Holmes <iain@ximian.com>
-
- * e-summary-calendar.c (uids_to_array): Handle recurrances correctly.
- (add_recurrances): Function to generate occurrances
-
-2001-10-02 Rodrigo Moya <rodrigo@ximian.com>
-
- * Makefile.am: add $(BONOBO_GNOME_CFLAGS) to make it compile with
- latest Bonobo, which does not install headers in
- $(gnome_prefix)/include
-
-2001-10-01 Iain Holmes <iain@ximian.com>
-
- * e-summary-rdf.c: Applied patch from Takuo Kitame for using charset
- from the rdf.
-
-2001-09-27 Iain Holmes <iain@ximian.com>
-
- * e-summary-tasks.c (generate_html): Pass the summary to
- get_todays_uids.
- (get_todays_uids): Use the timezone stuff and use the due date instead
- of the end time.
-
-2001-09-27 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c: (rdfs[]): Removed the broken RDFs
- (mail_all_select_row_cb): Don't turn on the -> button if the folder is
- already added.
- (rdf_all_select_row_cb): Ditto
- (weather_all_select_row_cb): Ditto
-
-2001-09-26 Iain Holmes <iain@ximian.com>
-
- * *.[ch]: Add correct approved copyright notices.
-
-2001-09-25 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_draw): Check if the summary is frozen, if so
- just set redraw_pending.
- (e_summary_freeze): Freeze the summary.
- (e_summary_thaw): Thaw the summary and redraw if needed.
-
- * e-summary-factory.c (control_activate): Thaw summary.
- (control_deactivate): Freeze summary.
-
-2001-09-25 Iain Holmes <iain@ximian.com>
-
- * Misc warnings cleanups.
-
- * e-summary.c (e_summary_url_requested): Check in the cache for the
- image before spawning a new thread to download it.
- (close_callback): Create a cache first time, add images to it.
-
- * e-summary-tasks.c (generate_html): Use task.png
-
-2001-09-21 Dan Winship <danw@ximian.com>
-
- * e-summary-weather.c (weather_make_html): Add missing
- width/height tags to the sunny/cloudy/etc images to make the page
- render more smoothly.
-
-2001-09-21 Iain Holmes <iain@ximian.com>
-
- * e-summary-calendar.c (generate_html): If the appointment is in a
- different timezone set a timezone icon.
-
-2001-09-20 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences: Add Red Carpet RDF
-
-2001-09-19 Iain Holmes <iain@ximian.com>
-
- * e-summary-calendar.c (generate_html): If the appointment has an alarm
- display a bell icon.
-
-2001-09-19 Iain Holmes <iain@ximian.com>
-
- * component-factory.c (create_view): Remove spew.
-
- * e-summary-mail.c (e_summary_mail_reconfigure): Get mail info if we
- don't already have it.
- (new_folder_cb): Only get mail info if the folder is being displayed.
-
-2001-09-19 Larry Ewing <lewing@ximian.com>
-
- * e-summary-tasks.c (generate_html): be sure to unref the
- component.
-
-2001-09-19 Iain Holmes <iain@ximian.com>
-
- * e-summary-tasks.c (e_summary_tasks_protocol): Open a task editor.
- (generate_html): Embed the uid of the task in the url.
-
- * e-summary-calendar.c (e_summary_calendar_protocol): Open a calendar
- editor.
- (generate_html): Embed the uid of the task in the url.
-
-2001-09-19 Larry Ewing <lewing@ximian.com>
-
- * e-summary-rdf.c (read_callback): remove redundant if.
- (open_callback): free the previous html even if we get an error.
- (rdf_free): remove redundant null checks.
-
-2001-09-19 Dan Winship <danw@ximian.com>
-
- * e-summary.c (read_callback, etc): Hack around gdkpixbuf lossage
- by not trying to display the images incrementall. Instead, just
- wait until we've read the whole file, then display it all at once.
- Prevents garbage when rendering the icons.
-
-2001-09-18 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (weather_remove_clicked_cb): Select the next
- row.
- (rdf_remove_clicked_cb): Select the next row.
-
-2001-09-18 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (mail_remove_clicked_cb): Select the next
- folder for removal.
-
- * e-summary-mail.c (e_summary_mail_reconfigure): Don't do the hashtable
- thing to get folders. Just iterate through the list lookuping the
- folders instead. This keeps the required order.
-
-2001-09-18 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (mail_add_clicked_cb): Don't add folders that
- are already in the list
-
-2001-09-18 Iain Holmes <iain@ximian.com>
-
- * e-summary-rdf.c (display_doc): Verbose error reporting.
- (read_callback): Same.
- (open_callback): Same.
-
-2001-09-18 Iain Holmes <iain@ximian.com>
-
- * e-summary-weather.c (e_summary_weather_add_location): Append the
- weather locations so they are in the right order.
-
- * e-summary-tasks.c (generate_html): If the text is null, don't print
- (null). Print "No description" instead.
-
- * e-summary-rdf.c (e_summary_rdf_add_uri): Append here as well.
-
- * e-summary-mail.c (maybe_add_to_shown): Append ici.
-
-2001-09-17 Iain Holmes <iain@ximian.com>
-
- * e-summary-weather.c (weather_make_html): Don't make the confusing
- url for the city name.
-
-2001-09-17 Iain Holmes <iain@ximian.com>
-
- * e-summary-mail.c (mail_change_notify): Only redraw the display when
- we receive a notify about a folder we are displaying
-
-2001-09-17 Iain Holmes <iain@ximian.com>
-
- * e-summary-calendar.c (uids_to_array): Correctly use qsort.
- (e_summary_calendar_event_sort_func): Dereference the e1 and e2.
-
-2001-09-17 Federico Mena Quintero <federico@ximian.com>
-
- * e-summary.c (e_summary_init): There is no need to initialize the
- alarm system now.
-
-2001-09-14 Iain Holmes <iain@ximian.com>
-
- * e-summary-calendar.c (uids_to_array): Create ESummaryCalEvents and
- put them in an array to get the timezone stuff right.
- (e_summary_calendar_event_sort_func): Sort the array.
- (generate_html): Use the timezone formats of things.
-
-2001-09-13 Iain Holmes <iain@ximian.com>
-
- * Locations: Removed duff Norway station
-
-2001-09-13 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c: Fix slashdot problem.
-
-2001-09-10 Dan Winship <danw@ximian.com>
-
- Purification.
-
- * e-summary.c (destroy): free the protocol hash.
-
- * e-summary-rdf.c (tree_walk): plug a leak.
-
- * e-summary-weather.c (e_summary_weather_init_locations): Don't
- insert duplicates into the hash table.
-
- * e-summary-mail.c (e_summary_mail_generate_html): free old html
- before setting new
-
- * e-summary.c (e_summary_draw): free weather and rdf html strings.
-
- * e-summary-preferences.c (save_known_rdfs): free strings.
-
-2001-09-10 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c: Add Memepool RDF.
-
-2001-09-06 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (e_summary_configure): Don't allow dialogs to
- be opened more than once.
- (property_box_destory_cb): NULL the window var.
-
-2001-09-05 Ettore Perazzoli <ettore@ximian.com>
-
- [Fix #958, ShellComponents should not be created by factories, for
- the Summary.]
-
- * component-factory.c (COMPONENT_FACTORY_IID): Removed.
- (COMPONENT_ID): New.
- (create_component): Renamed from `factory_fn'. No args.
- (component_factory_init): Create the BonoboObject with
- `create_component' and register it on OAF.
-
- * GNOME_Evolution_Summary.oaf.in: Remove the
- ShellComponentFactory.
-
-2001-09-05 Iain Holmes <iain@ximian.com>
-
- * Locations: Added some Caracas fixes from Mayly Sanchez.
-
-2001-09-05 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_draw): Hack to stop the display jumping to the
- top when it is redrawn.
-
-2001-09-05 Iain Holmes <iain@ximian.com>
-
- * e-summary-calendar.c (generate_html): Check if we need to use 24hr
- format. Don't try to do fancy things with the date and time of an
- appointment.
- (locale_uses_24h_time_format): Cut and pasted from calendar.
- (e_summary_calendar_init): Get the 24hour preferences from the calendar.
-
-2001-09-04 Iain Holmes <iain@ximian.com>
-
- * Locations: Applied patch from Evert Verhellen to fix the Belgium
- stations
-
-2001-09-04 Iain Holmes <iain@ximian.com>
-
- * my-evolution.glade: Fix some accelerator clashes
-
-2001-09-04 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (add_dialog_clicked_cb): When the feed is
- added make the Apply button activate.
-
-2001-09-04 Iain Holmes <iain@ximian.com>
-
- * metar.c (weather_conditions_string): Don't return '-' if there is no
- condition, as it makes the temperature look negative.
-
-2001-08-27 Ettore Perazzoli <ettore@ximian.com>
-
- * e-summary-weather.c (weather_make_html): Make local variable
- `icon_name' const. Remove unused variable `uri'.
-
- * e-summary.h: Reformatted in GTK+ style.
- (e_summary_remove_online_connection): Added prototype.
-
- * e-summary-preferences.c (fill_mail_shown_clist): Constify local
- variable `name'.
-
- * e-summary-mail.c: #include "e-util/e-path.h". Updated to match
- the new studlyCapsification in shell/Evolution*.idl.
-
-2001-08-23 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (rdfs): Remove the 4 that don't work.
-
-2001-08-22 Iain Holmes <iain@ximian.com>
-
- * e-summary-tasks.c (generate_html): Skip the task if it's completed.
-
-2001-08-22 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (mail_show_full_path_toggled): Set the
- property box to changed.
-
-2001-08-22 Iain Holmes <iain@ximian.com>
-
- * e-summary-mail.c (make_pretty_foldername): If show_full_path is TRUE
- then return the full path. Take in the ESummary as well.
- (folder_gen_html): Pass ESummary to make_pretty_foldername.
- (e_summary_mail_generate_html): Pass the ESummary to folder_gen_html.
-
- * e-summary-rdf.c (e_summary_rdf_set_online): Take in a
- GNOME_Evolution_OfflineProgressListener in case we want to do
- individual reporting of rdf's being destroyed.
- (make_connection): Call the RDF Feed a News Feed instead.
-
- * e-summary-weather.c (e_summary_weather_set_online): Same.
-
- * e-summary.c (e_summary_set_online): Pass in the
- GNOME_Evolution_OfflineProgressListener to the set_online callback.
-
- * e-summary-offline-handler.c (impl_goOffline): Pass the listener to the
- callback.
- (impl_goOnline): Pass NULL for the listener.
-
-2001-08-21 Iain Holmes <iain@ximian.com>
-
- * my-evolution-html.h: Set the text colour to black.
-
-2001-08-21 Damon Chaplin <damon@ximian.com>
-
- * e-summary-calendar.c (generate_html):
- * e-summary-tasks.c (generate_html): changed the icons. For calendar
- events we use the 'new appointment' icon from the menu. For tasks we
- use the task icon from the ETable - I wasn't sure about using the
- 'New Task' icon as it has a tick in it which may make people think it
- is complete.
-
-2001-08-19 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c: Change the type from "Summary" to "summary"
- for consistency with the other folder types.
-
-2001-08-17 Zbigniew Chyla <cyba@gnome.pl>
-
- * my-evolution/e-summary-rdf.c (make_connection):
- Marked string for translation (connection type).
-
- * my-evolution/e-summary-weather.c
- (make_url): Split into two functions: make_url and make_anchor.
- (weather_make_html): s/make_url/make_anchor/
- (make_connection): Marked connection type string for franslation,
- assign the real URI to ->hostname (using make_url), not location code.
-
-2001-08-12 Zbigniew Chyla <cyba@gnome.pl>
-
- * e-summary-preferences.c (make_initial_weather_list),
- e-summary-weather.c (e_summary_weather_init):
- Don't hardcode the default list of stations, let translators define it
- per locale/country.
-
-2001-08-17 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (weather_all_select_row_cb): Unselect the
- row if it isn't a leaf node.
- (weather_add_clicked_cb): Return if location == NULL.
-
-2001-08-15 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_draw): Use the US format for dates (Yeeech)
-
-2001-08-15 Iain Holmes <iain@ximian.com>
-
- * e-summary.c: s/My Evolution/Summary/
-
- * e-summary-preferences.c: s/My Evolution/Summary/
-
- * component-factory.c: s/My Evolution/Summary/
-
-2001-08-13 Iain Holmes <iain@ximian.com>
-
- * e-summary-weather.c: Set the default weather stations to Boston (boo)
- and Xiamen (Yey)
-
-2001-08-13 Iain Holmes <iain@ximian.com>
-
- * e-summary-rdf.c: Set the default RDF to CNN
-
-2001-08-13 Jason Leach <jleach@ximian.com>
-
- * e-summary-mail.c (e_summary_mail_free): Disconnect our callbacks
- when we are freeing the ESummaryMail. Fixes #6712.
-
-2001-08-09 Anna Marie Dirks <anna@ximian.com>
-
- * my-evolution-html.h : added more padding between the vertical
- spacer and the icons for the mail/appointments/tasks summaries.
-
-2001-08-09 Anna Marie Dirks <anna@ximian.com>
-
- * my-evolution.glade : added accelerators to all useful widgets
- in this file such that this dialog can now be fully navigated from
- the keyboard.
-
- * e-summary-preferences.c : changed the construct_pixmap_button
- function to take glade xml, an hbox and pixmap, making it possible
- to use glade to define and change the keyboard accelerators, instead
- of trying to do this in the c code.
-
-2001-08-06 Damon Chaplin <damon@ximian.com>
-
- * e-summary-tasks.c (sort_uids):
- (get_todays_uids):
- (generate_html):
- * e-summary-calendar.c (sort_uids): free the CalComponentDateTime
- and icaltimetype values after finishing with them.
-
-2001-08-03 Jason Leach <jleach@ximian.com>
-
- * e-summary-mail.c (update_folder_cb): Callback for the
- EvolutionStorageListener::update_folder signal, so we can update
- mail summaries when they change. Bug #4686.
-
-2001-08-02 Jason Leach <jleach@ximian.com>
-
- * e-summary-calendar.c (generate_html): Use the new and beautiful
- icon from Jakub.
-
- * e-summary-mail.c (e_summary_mail_generate_html): Ditto.
-
- * e-summary-tasks.c (generate_html): Ditto.
-
-2001-07-23 Zbigniew Chyla <cyba@gnome.pl>
-
- * e-summary-rdf.c (display_doc): Convert translated string to UTF8.
-
-2001-07-30 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c: Remove the Wipe Trackers references.
-
- * e-summary-rdf.c: Remove the wip trackers as I'm not 100% sure what it
- does, and it didn't work.
-
- * e-summary.h: Remove the wipe_trackers boolean
-
- * my-evolution.glade: Remove the wipe trackers and shrink the New Feed
- button
-
-2001-07-30 Iain Holmes <iain@ximian.com>
-
- * e-sumary-calendar.c (generate_html): Correct the URL for the links.
-
-2001-07-27 Iain Holmes <iain@ximian.com>
-
- * Locations: Add some more German cities from s.kost@webmacher.de.
-
-2001-07-23 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (add_dialog_clicked_cb): Add the new RDF to
- the shown clist as well.
-
-2001-07-23 Iain Holmes <iain@ximian.com>
-
- * e-summary-mail.c (e_summary_mail_init): Move the storage register out
- of here into a seperate function.
- (e_summary_mail_register_storages): Register the local storage.
- (e_summary_mail_register_storage): Register a single storage.
-
-2001-07-23 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c: Fix the KDE and Newsforge things. Change the
- KDE rdf to the one that the KDE person told me :)
-
-2001-07-23 Jason Leach <jleach@ximian.com>
-
- * e-summary-preferences.c: Update the url (and site name) for the
- KDE rdf. Bug #5145.
-
-2001-07-21 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c: Make the "My Evolution" folder
- non-creatable by setting the `user_creatable' member of
- `EvolutionShellComponentFolderType' to %FALSE.
-
-2001-07-20 Jason Leach <jleach@ximian.com>
-
- * e-summary-tasks.c: Revert last changes, URIs are now back to
- original in shell.
-
-2001-07-19 Jason Leach <jleach@ximian.com>
-
- * e-summary-tasks.c: Update the evolution:/local/ URI's to
- evolution:/Local Folders/ to go along with todays shell changes.
-
- * e-summary-mail.c: Ditto.
-
- * e-summary-calendar.c: Ditto.
-
-2001-07-19 Iain Holmes <iain@ximian.com>
-
- * e-summary-rdf.c (display_doc): Fix HTML
-
- * e-summary-mail.c (folder_gen_html): correct the folder name.
-
-2001-07-19 Iain Holmes <iain@ximian.com>
-
- * my-evolution-html.h: Set the text colour to black. Frank was claiming
- it picked the default colour from the GTK+ theme, and if it was white
- bad things happened.
-
-2001-07-18 Iain Holmes <iain@ximian.com>
-
- * e-summary-weather.c (weather_make_html): Remove the (more) link.
-
- * e-summary.c (e_summary_draw): Don't append NULL to the GString.
-
- * e-summary-tasks.c: Remove spewage.
-
-2001-07-18 Iain Holmes <iain@ximian.com>
-
- * e-summary-weather.c (weather_make_html): Remove spewage.
-
-2001-07-18 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_reconfigure): Reconfigure the tasks.
-
- * e-summary-tasks.c (generate_html): Obtain todays tasks.
- (get_todays_uids): Make a list of todays uids.
-
-2001-07-18 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (make_property_dialog): Create the image
- buttons.
- (construct_pixmap_button): Create a box with an image and text.
-
-2001-07-18 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (e_summary_configure): Set the title on the
- window. Just do a g_return_if_fail if the XML file couldn't be loaded.
-
-2001-07-16 Iain Holmes <iain@ximian.com>
-
- * e-summary-rdf.c (display_doc): Nicer error reporting.
-
- * e-summary-weather.c: Nicer error reporting.
-
-2001-07-13 Iain Holmes <iain@ximian.com>
-
- * e-summary-tasks.c: Fix the name of the icon.
-
-2001-07-13 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (mail_add_clicked_cb): Set the property box
- to changed.
-
-2001-07-13 Zbigniew Chyla <cyba@gnome.pl>
-
- * e-summary.c (e_summary_draw): Convert the date string to utf8 before
- appending it to HTML.
-
-2001-07-12 Iain Holmes <iain@ximian.com>
-
- * metar.c: #include <config.h>
-
-2001-07-12 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_draw): put _() around the date string.
-
- * metar.c: Put some _() around things.
-
-2001-07-12 Iain Holmes <iain@ximian.com>
-
- * my-evolution.glade: Made the weather a single selection clist.
-
-2001-07-11 Iain Holmes <iain@ximian.com>
-
- * e-summary-mail.c (e_summary_mail_generate_html): Protect with
- g_return_if_fail
-
-2001-07-11 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (destroy): Destroy the alarm.
- (e_summary_init): Init the alarm.
-
- * e-summary-mail.c (free_folder): Don't free the value.
-
-2001-07-11 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (destroy): Destroy all the subcomponents.
-
- * e-summary-rdf.c (e_summary_rdf_free): Free and stop all tranfsers
-
- * e-summary-weather.c (e_summary_weather_free): Same.
-
- * e-summary-mail.c (e_summary_mail_free): Same.
-
- * e-summary-calendar.c (e_summary_calendar_free): Same.
-
- * e-summary-tasks.c (e_summary_tasks_free): Guess what.
-
-2001-07-10 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c: Correct the Register RDF url.
-
-2001-07-09 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_init): Connect a calendar alarm to be notified
- of when the day changes.
-
- * Makefile.am: Link with libalarm.a
-
-2001-07-09 Iain Holmes <iain@ximian.com>
-
- * e-summary-weather.c (weather_make_html): Get an icon for the weather.
-
- * metar.[ch] (icon_from_weather): Work out what icon for a specific
- weather type.
-
-2001-07-09 Iain Holmes <iain@ximian.com>
-
- * e-summary-rdf.c (tree_walk): Fix HTML so it doesn't give the big black
- line
-
-2001-07-09 Iain Holmes <iain@ximian.com>
-
- * e-summary-tasks.c (generate_html): Fix same HTML bug as in calendar.
-
-2001-07-09 Iain Holmes <iain@ximian.com>
-
- * e-summary-calendar.c (generate_html): Show varying times depending
- on how soon the appointment is.
-
-2001-07-09 Iain Holmes <iain@ximian.com>
-
- * e-summary-calendar.c (generate_html): Fix up the HTML so having
- appointments doesn't mess up the display. Set the correct length of
- time to show appointments.
-
-2001-07-09 Iain Holmes <iain@ximian.com>
-
- * e-summary-tasks.c (generate_html): Make the tasks switch to the
- tasks folder when you click on them.
-
-2001-07-09 Kjartan Maraas <kmaraas@gnome.org>
-
- * e-summary-preferences.c: Added #include <config.h> to get
- translations working.
-
-2001-07-06 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (str_list_from_vector): Change the delimiter
- (vector_from_str_list): Change the delimiter.
- (fill_mail_all_clist): Fill the mail folder clist.
- (fill_mail_shown_clist): Use nicer names.
- (mail_add_clicked_cb): Add folders to the shown list.
-
- * e-summary-mail.c (e_summary_mail_fill_list): Flatten the hashtable
- into the CList.
- (e_summary_mail_uri_to_name): Get the pretty name for a uri.
-
-2001-07-06 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (fill_rdf_shown_list): Attach data
- (rdf_add_clicked_cb): Allow multiple rows to be removed.
- (rdf_remove_clicked_cb): Use the data.
-
- * my-evolution.glade: Allow multiple selection in the RDF all clist.
- Only allow single selection in the shown rdf list.
-
-2001-07-05 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (rdf_new_url_clicked_cb): Change RDF to
- news feed.
-
-2001-07-05 Iain Holmes <iain@ximian.com>
-
- * my-evolution.glade: Replace a table with a vbox so that the text
- of the radio buttons can be clicked. Change RDF to News Feed
-
-2001-07-05 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (add_dialog_clicked_cb): Fix warning
- (fill_rdf_shown_clist): Fix warning.
- (calendar_one_toggled_cb): Set preferences to the right toggle button.
- (calendar_five_toggled_cb): Ditto
- (calendar_week_toggled_cb): Ditto ditto
- (calendar_month_toggled_cb): Ditto dotto
- (calendar_all_toggled_cb): Set the amount of Tasks to be shown
- (calendar_today_toggled_cb): Ditto
- (make_property_dialog): Hook up the calendar radio buttons.
- (e_summary_preferences_restore): Pass NULL as opt_default, not &ev.
-
-2001-07-05 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (e_summary_preferences_restore): Add
- My-Evolution to the namespace.
- (e_summary_preferences_save): Ditto.
-
-2001-07-05 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (e_summary_preferences_restore): Re-enabled.
- Bonobo-conf doesn't seem to like NULL for opt_ev.
-
-2001-07-03 Iain Holmes <iain@ximian.com>
-
- * e-summary-prefences.c (e_summary_preferences_restore): Disabled until
- memory corruption thing is found.
-
- * my-evolution.glade: Fix the radio button problem.
-
-2001-07-03 Iain Holmes <iain@ximian.com>
-
- * e-summary-factory.c: Fixed the Bonobo warning.
-
-2001-07-03 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (e_summary_preferences_restore): Ditch
- gnome-config and replace it with bonobo-conf.
- (e_summary_preferences_save): Ditto.
-
- * e-summary-factory.c: Use the new print.png icon.
-
- * Makefile.am: Add bonobo conf CFLAGS and LIBS
-
-2001-07-03 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_set_online): Return if summary == NULL.
- (e_summary_add_connections): Return NULL if summary == NULL.
- (e_summary_count_connections): Return 0 if summary == NULL.
-
-2001-07-02 Iain Holmes <iain@ximian.com>
-
- * e-summary-tasks.[ch]: New files for tasks.
-
- * e-summary.c: USe the tasks.
-
-2001-07-02 Iain Holmes <iain@ximian.com>
-
- * Makefile.am: Add the glade files to the EXTRA_DIST
-
-2001-07-02 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am (evolution_executive_summary_SOURCES): Add
- `e-summary-preferences.h'.
-
-2001-06-30 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (fill_rdf_all_clist): Load the URLs from a
- file.
- (save_known_urls): Save the known URLs.
- (add_dialog_clicked_cb): Close the dialog on Cancel. Save the URLs on
- Ok.
- (rdf_new_url_clicked_cb): Add some labels and an entry for the name.
-
-2001-06-30 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (fill_rdf_all_clist): Fill with names
- instead of URLs.
- (find_name_for_url): Given a URL find a name for it if we know it.
- (rdf_add_clicked_cb): Add the name to the clist and the url to the
- list.
-
-2001-06-30 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (add_dialog_clicked_cb): Add the new url to
- the list.
- (rdf_new_url_clicked_cb): Create a dialog and allow the user to add
- new urls.
-
-2001-06-30 Iain Holmes <iain@ximian.com>
-
- * e-summary-rdf.c (tree_walk): Remove spewage.
- (e_summary_rdf_count):
- (e_summary_rdf_add):
- (make_connection):
- (e_summary_rdf_set_online): Callbacks for the online_handler stuff.
- (e_summary_rdf_init): Setup the offline handler stuff.
- (close_callback): Update the number of onlines there are.
-
- * e-summary-weather.c (close_callback): Update the number of onlines.
- (e_summary_weather_count): Count the number of active downloads.
- (e_summary_weather_add): Make a list of active downloads.
- (make_connection): Make connection data.
- (e_summary_weather_set_online): Set if the component is online or not.
- (e_summary_weather_init): Setup the offline handler stuff.
-
- * e-summary.c (e_summary_count_connections): Call all the callbacks
- in the various modules that have online data and count the number of
- connections.
- (e_summary_add_connections): Make a list of them all.
- (e_summary_set_online): Set the online status for each registered
- module.
- (e_summary_add_online_connection): Register a new module.
-
- * e-summary-offline-handler.[ch]: BonoboXObject implementing the
- GNOME::Evolution::Offline interface.
-
- * e-summary-factory.c (factory_fn): Create an offline handler.
-
- * Makefile.am: Compile e-summary-offline-handler.[ch]
-
-2001-06-30 Zbigniew Chyla <cyba@gnome.pl>
-
- * e-summary-calendar.c (generate_html):
- Marked strings for translation + conversion to utf8.
-
- * e-summary-mail.c
- Added missing #include <config.h>
- (e_summary_mail_generate_html):
- Marked strings for translation + conversion to utf8.
-
- * e-summary-weather.c
- (e_summary_weather_get_html, open_callback):
- Marked strings for translation + conversion to utf8.
- (weather_make_html): Fixed leaks.
-
- * e-summary-rdf.c
- (tree_walk): Fixed leaks.
- (read_callback): Marked strings for translation.
-
-2001-06-29 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_draw): Resurrect the hack to stop GtkHTML from
- returning to the top when it's redrawn.
-
-2001-06-29 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c (property_box_destroy_cb): Hook up the saving.
- (str_list_from_vector): Fix memory corruption.
- (e_summary_preferences_save): Write the preferences out to disk.
- I *always* forget that.
-
- * e-summary-mail.c (e_summary_mail_init): Init ->shown to NULL.
-
-2001-06-29 Iain Holmes <iain@ximian.com>
-
- * e-summary-preferences.c: Do everything preferences related.
-
- * my-evolution.glade: Glade file for the preferences box.
-
- * e-summary-calendar.c (e_summary_calendar_reconfigure): Stub for later
-
- * e-summary-calendar.h: Some enums for settings.
-
- * e-summary-mail.c (folder_gen_html): Change the prototype so it
- doesn't work as a hash table foreach function.
- (new_folder_cb): Fix typo in comment :)
- Create a list of folders we display.
- (remove_folder_cb): Remove the folder from the display folder list.
- (maybe_add_to_shown): Hash table foreach function to create a display
- folder list.
- (e_summary_mail_reconfigure): Recreate the mail HTML.
-
- * e-summary-rdf.c (tree_walk): Obey preferences.
- (e_summary_rdf_update): Separate the updating and downloading logic.
- (e_summary_rdf_init): Start an updating timeout.
- (e_summary_rdf_reconfigure): Recreate the RDF html.
-
- * e-summary-weather.c (e_summary_weather_update): Separate the updating
- and downloading logic.
- (e_summary_weather_init): Start timeout.
- (e_summary_weather_code_to_name): Convert code to location name.
- (e_summary_weather_ctree_fill): Fill a CTree with the location data.
- (e_summary_weather_reconfigure): Regenerate the HTML.
-
- * e-summary.c (e_summary_init): Create the preferences.
- (e_summary_reconfigure): Reconfigure the whole summary.
-
- * metar.c: Obey preferences.
-
-2001-06-27 Iain Holmes <iain@ximian.com>
-
- * e-summary-factory.c: Add the pixmaps to the menus.
- Add a new menu item for the configuration stuff.
-
-2001-06-27 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (factory_fn): Pass NULL as the
- @external_uri_schemas argument to
- `evolution_shell_component_new()'.
-
-2001-06-21 Rodrigo Moya <rodrigo@ximian.com>
-
- * Makefile.am: added libwombat to LDADD
-
-2001-06-15 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: Get weather.h disted
-
-2001-06-15 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: Fix includes so that libical need not be installed
-
-2001-06-14 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: add my-evolution-html.h to the sources
-
-2001-06-13 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: Make e-summary-type.h a source so it gets disted
-
-2001-06-08 Iain Holmes <iain@ximian.com>
-
- * e-summary.c (e_summary_init): Allow horizontal scrollbars.
-
- * e-summary-weather.c (e_summary_weather_init): Change the name of the
- protocol registered.
- (weather_make_html): Use the weather protocol instead of more.
diff --git a/my-evolution/GNOME_Evolution_Summary.server.in.in b/my-evolution/GNOME_Evolution_Summary.server.in.in
deleted file mode 100644
index 1c8a4be7e1..0000000000
--- a/my-evolution/GNOME_Evolution_Summary.server.in.in
+++ /dev/null
@@ -1,62 +0,0 @@
-<oaf_info>
-
- <oaf_server iid="OAFIID:GNOME_Evolution_Summary_ComponentFactory"
- type="shlib"
- location="@COMPONENTDIR@/libevolution-executive-summary.so">
-
- <oaf_attribute name="repo_ids" type="stringv">
- <item value="IDL:Bonobo/GenericFactory:1.0"/>
- </oaf_attribute>
-
- <oaf_attribute name="name" type="string"
- _value="Evolution Summary"/>
-
- </oaf_server>
-
- <oaf_server iid="OAFIID:GNOME_Evolution_Summary_ShellComponent"
- type="factory"
- location="OAFIID:GNOME_Evolution_Summary_ComponentFactory">
-
- <oaf_attribute name="repo_ids" type="stringv">
- <item value="IDL:GNOME/Evolution/ShellComponent:1.0"/>
- </oaf_attribute>
-
- <oaf_attribute name="name" type="string"
- _value="Evolution Summary component"/>
-
- <oaf_attribute name="evolution:shell_component_icon" type="string"
- value="evolution-today.png"/>
- <oaf_attribute name="evolution:shell_component_launch_order" type="number"
- value="4"/>
-
- </oaf_server>
-
- <oaf_server iid="OAFIID:GNOME_Evolution_Summary_ConfigControl"
- type="factory"
- location="OAFIID:GNOME_Evolution_Summary_ComponentFactory">
-
- <oaf_attribute name="repo_ids" type="stringv">
- <item value="IDL:GNOME/Evolution/ConfigControl:1.0"/>
- </oaf_attribute>
-
- <oaf_attribute name="evolution:config_item:title" type="string"
- _value="Summary Preferences"/>
-
- <oaf_attribute name="evolution:config_item:description" type="string"
- _value="Configure the appearance of the Evolution Summary here"/>
-
- <oaf_attribute name="evolution:config_item:icon_name" type="string"
- value="evolution-today.png"/>
-
- <oaf_attribute name="evolution:config_item:type" type="stringv">
- <item value="summary"/>
- </oaf_attribute>
-
- <oaf_attribute name="evolution:config_item:priority" type="string" value="-5"/>
-
- <oaf_attribute name="name" type="string"
- _value="Evolution Summary configuration control"/>
-
- </oaf_server>
-
-</oaf_info>
diff --git a/my-evolution/Location-translation-script b/my-evolution/Location-translation-script
deleted file mode 100755
index 77c4ddba88..0000000000
--- a/my-evolution/Location-translation-script
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-grep name Locations | cut -b 6- > Locations.h
-grep loc Locations | sed "s/ .... ...... ...$//"| sed "s/ .... :...... ...$//" | cut -d = -f 2 | sed "s/\\\\//g" >> Locations.h
-
-sed -e "s/^/N_(\"/" -e "s/$/\")/" Locations.h > Locations.h.tmp
-sort Locations.h.tmp | uniq > Locations.h
-rm Locations.h.tmp
diff --git a/my-evolution/Locations b/my-evolution/Locations
deleted file mode 100644
index 21184bc337..0000000000
--- a/my-evolution/Locations
+++ /dev/null
@@ -1,3057 +0,0 @@
-[Main]
-regions=US CA MX EU AF OZ ME AS M_ AT
-
-[ME]
-name=Middle East
-states=DZ BH IR IL KW LB OM QA SA AE YE
-
-[ME_IL]
-name=Israel
-loc0=Ben\\ Gurion LLBG ------ ---
-loc1=Eilat LLET ------ ---
-loc2=Ovda LLOV ------ ---
-
-[ME_AE]
-name=United Arab Emirates
-loc0=Abu\\ Dhabi\\ -\\ Bateen OMAD ------ ---
-loc1=Abu\\ Dhabi OMAA ------ ---
-loc2=Al\\ Ain OMAL ------ ---
-loc3=Dubai OMDB ------ ---
-loc4=Fujairah OMFJ ------ ---
-loc5=Ras\\ Al\\ Khaimah OMRK ------ ---
-loc6=Sharjah OMSJ ------ ---
-
-[ME_QA]
-name=Qatar
-loc0=Doha OTBD ------ ---
-
-[ME_OM]
-name=Oman
-loc0=Masirah OOMA ------ ---
-loc1=Saiq OOSQ ------ ---
-loc2=Salalah OOSA ------ ---
-loc3=Seeb OOMS ------ ---
-loc4=Thumrait OOTH ------ ---
-
-[ME_YE]
-name=Yemen
-loc0=Aden OYAA ------ ---
-loc1=Hodeidah OYHD ------ ---
-loc2=Marib OYMB ------ ---
-loc3=Sana'A OYSN ------ ---
-loc4=Sayun OYSY ------ ---
-loc5=Socotra OYSQ ------ ---
-loc6=Taiz OYTZ ------ ---
-
-[ME_SA]
-name=Saudi Arabia
-loc0=Abha OEAB ------ ---
-loc1=Al\\ Ahsa OEAH ------ ---
-loc2=Al\\ Baha OEBA ------ ---
-loc3=Al\\ Qaysumah OEPA ------ ---
-loc4=Al-Jouf OESK ------ ---
-loc5=Arar OERR ------ ---
-loc6=Bisha OEBH ------ ---
-loc7=Dawadmi OEDW ------ ---
-loc8=Dhahran OEDR ------ ---
-loc9=Gassim OEGS ------ ---
-loc10=Gizan OEGN ------ ---
-loc11=Guriat OEGT ------ ---
-loc12=Hafr\\ Al-Batin OEKK ------ ---
-loc13=Hail OEHL ------ ---
-loc14=Jeddah\\ King\\ Abdul\\ Aziz\\ International\\ Airport OEJN ------ ---
-loc15=Khamis\\ Mushait OEKM ------ ---
-loc16=King\\ Khaled\\ International\\ Airport OERK ------ ---
-loc17=Madinah OEMA ------ ---
-loc18=Makkah OEMK ------ ---
-loc19=Najran OENG ------ ---
-loc20=Rafha OERF ------ ---
-loc21=Riyadh OERY ------ ---
-loc22=Sharurah OESH ------ ---
-loc23=Tabuk OETB ------ ---
-loc24=Taif OETF ------ ---
-loc25=Turaif OETR ------ ---
-loc26=Wadi\\ Al\\ Dawasser\\ Airport OEWD ------ ---
-loc27=Wejh OEWJ ------ ---
-loc28=Yenbo OEYN ------ ---
-
-[ME_DZ]
-name=Algeria
-loc0=Adrar DAUA ------ ---
-loc1=Annaba DABB ------ ---
-loc2=Constantine DABC ------ ---
-loc3=Dar-El-Beida DAAG ------ ---
-loc4=Ghardaia DAUG ------ ---
-loc5=Hassi-Messaoud DAUH ------ ---
-loc6=In\\ Amenas DAUZ ------ ---
-loc7=Oran/Es\\ Senia DAOO ------ ---
-loc8=Tamanrasset/Aguenna DAAT ------ ---
-loc9=Tebessa DABS ------ ---
-loc10=Tlemcen\\ Zenata DAON ------ ---
-
-[ME_BH]
-name=Bahrain
-loc0=Bahrain OBBI ------ ---
-
-[ME_LB]
-name=Lebanon
-loc0=Beirut OLBA ------ ---
-
-[ME_IR]
-name=Iran, Islamic Republic of
-loc0=Ahwaz OIAW ------ ---
-loc1=Bandarabbass OIKB ------ ---
-loc2=Esfahan OIFM ------ ---
-loc3=Kerman OIKK ------ ---
-loc4=Mashhad OIMM ------ ---
-loc5=Shiraz OISS ------ ---
-loc6=Tabriz OITT ------ ---
-loc7=Tehran-Mehrabad OIII ------ ---
-
-[ME_KW]
-name=Kuwait
-loc0=Kuwait OKBK ------ ---
-
-[US]
-name=United States
-states=AL AK AZ AR CA CO CT DE DC FL GA HI ID IL IN IA KS KY LA ME MA MD MI MS MN MO MT NE NH NM NV NY ND NJ NC OH OK OR PA RI SC SD TN TX UT VT VA WA WI WV WY
-
-[US_AK]
-name=Alaska
-loc0=Adak PADK AKZ020 ---
-loc1=Ambl\\er PAFM AKZ003 ---
-loc2=Anaktuvuk PAKP AKZ001 ---
-loc3=Anchorage PANC AKZ015 ---
-loc4=Anchorage\\ -\\ Elmendorf\\ AFB PAED AKZ015 ---
-loc5=Aniak PANI AKZ010 ---
-loc6=Annette PANT ------ ---
-loc7=Barrow PABR AKZ001 ---
-loc8=Barter\\ Island PABA ------ ---
-loc9=Bethel PABE AKZ010 ---
-loc10=Bettles PABT AKZ004 ---
-loc11=Big\\ River\\ Lake PALV AKZ001 ---
-loc12=Cantwell PATW AKZ004 ---
-loc13=Cape\\ Lisburne PALU ------ ---
-loc14=Cape\\ Newenham PAEH ------ ---
-loc15=Cape\\ Romanzoff PACZ ------ ---
-loc16=Chandalar\\ Lake PALR AKZ004 ---
-loc17=Chulitna PAEC ------ ---
-loc18=Circle\\ City PACR AKZ004 ---
-loc19=Cold\\ Bay PACD AKZ020 ---
-loc20=Cordova PACV AKZ017 ---
-loc21=Dead\\ Horse PASC AKZ001 ---
-loc22=Dillingham PADL AKZ010 ---
-loc23=Dutch\\ Harbor PADU AKZ020 ---
-loc24=Elfin\\ Cove PAEL AKZ022 ---
-loc25=Emmonak PAEM ------ ---
-loc26=Fairbanks PAFA AKZ007 ---
-loc27=Farbanks/Eielson\\ AFB PAEI AKZ007 ---
-loc28=Fort\\ Greely/Allen\\ AAF PABI ------ ---
-loc29=Galbraith\\ Lake PAGB ------ ---
-loc30=Galena PAGA ------ ---
-loc31=Gambell PAGM AKZ006 ---
-loc32=Gulkana PAGK AKZ015 ---
-loc33=Gustavus PAGS AKZ024 ---
-loc34=Haines PAHN AKZ002 ---
-loc35=Hayes\\ River PAHZ ------ ---
-loc36=Healy\\ River PAHV AKZ004 ---
-loc37=Homer PAHO AKZ017 ---
-loc38=Hoonah PAOH AKZ026 ---
-loc39=Iliamna PAIL AKZ010 ---
-loc40=Juneau PAJN AKZ025 ---
-loc41=Kake PAFE AKZ026 ---
-loc42=Kenai PAEN AKZ017 ---
-loc43=Ketchikan PAKT AKZ027 ---
-loc44=King\\ Salmon PAKN AKZ016 ---
-loc45=Klawock PAKW ------ ---
-loc46=Kodiak PADQ AKZ018 ---
-loc47=Kotzebue PAOT AKZ003 ---
-loc48=Lake\\ Hood PALH ------ ---
-loc49=McCarthy PAMX AKZ017 ---
-loc50=McGrath PAMC AKZ004 ---
-loc51=Mekoryuk PAMY AKZ010 ---
-loc52=Merril\\ Field PAMR ------ ---
-loc53=Middleton\\ Island PAMD ------ ---
-loc54=Minchumina PAMH ------ ---
-loc55=Nabesna/Devil\\ Mt. PABN ------ ---
-loc56=Nenana PANN AKZ004 ---
-loc57=Nome PAOM AKZ006 ---
-loc58=Northway PAOR AKZ007 ---
-loc59=Palmer PAAQ AKZ015 ---
-loc60=Paxson PAXK AKZ017 ---
-loc61=Petersburg PAPG AKZ026 ---
-loc62=Point\\ Hope PAPO AKZ001 ---
-loc63=Point\\ Lay PPIZ AKZ001 ---
-loc64=Port\\ Alexander PAAP AKZ026 ---
-loc65=Port\\ Alsworth PALJ ------ ---
-loc66=Port\\ Heiden PAPH AKZ010 ---
-loc67=Puntilla\\ Lake PAPT ------ ---
-loc68=Saint\\ Mary's PASM AKZ010 ---
-loc69=Saint\\ Paul PASN ------ ---
-loc70=Sand\\ Point PASD AKZ020 ---
-loc71=Selanik PASK AKZ003 ---
-loc72=Seward PAWD AKZ017 ---
-loc73=Shishmaref PASH AKZ006 ---
-loc74=Sitka PASI AKZ023 ---
-loc75=Skagway PAGY AKZ026 ---
-loc76=Skwentna PASW AKZ015 ---
-loc77=Slana PADT ------ ---
-loc78=Snowshoe\\ Lake PALK ------ ---
-loc79=Soldotna PASX AKZ017 ---
-loc80=Sparrevohn PASV ------ ---
-loc81=Sutton PAJV ------ ---
-loc82=Talkeetna PATK AKZ015 ---
-loc83=Tanana PATA AKZ004 ---
-loc84=Tatalina PATL ------ ---
-loc85=Tin\\ City PATC ------ ---
-loc86=Togiak\\ Village PATG AKZ010 ---
-loc87=Umiat PAUM AKZ001 ---
-loc88=Unalakleet PAUN AKZ006 ---
-loc89=Valdez\\ 2 PAVD AKZ017 ---
-loc90=Wainwright PAFB AKZ001 ---
-loc91=Whittier PAWR AKZ015 ---
-loc92=Willow\\ Airport PAUO AKZ015 ---
-loc93=Wrangell PAWG AKZ026 ---
-loc94=Yakutat PAYA AKZ022 ---
-
-[US_AR]
-name=Arkansas
-loc0=Batesville KBVX ARZ016 ---
-loc1=Bentonville KVBT ARZ001 ---
-loc2=El\\ Dorado KELD ARZ073 ---
-loc3=Fayetteville KFYV ARZ010 085
-loc4=Flippin KFLP ARZ004 ---
-loc5=Fort\\ Smith KFSM ------ 085
-loc6=Harrison KHRO ARZ003 085
-loc7=Hot\\ Springs KHOT ARZ042 ---
-loc8=Jonesboro KJBR ARZ026 085
-loc9=Little\\ Rock KLIT ARZ044 ---
-loc10=Little\\ Rock\\ AFB KLRF ARZ044 ---
-loc11=Pine\\ Bluff KPBF ARZ056 ---
-loc12=Rogers KROG ARZ001 ---
-loc13=Siloam\\ Springs KSLG ARZ001 ---
-loc14=Stuttgart KSGT ARZ057 ---
-loc15=Texarkana KTXK ARZ070 ---
-loc16=Walnut\\ Ridge KARG ARZ017 ---
-
-[US_DC]
-name=District of Columbia
-loc0=Washington/Dulles KIAD DCZ013 dca
-loc1=Washington KDCA DCZ013 dca
-
-[US_ID]
-name=Idaho
-loc0=Boise KBOI IDZ014 ---
-loc1=Burley KBYI IDZ022 ---
-loc2=Challis KU15 IDZ018 ---
-loc3=Coeur\\ d'Alene KCOE IDZ002 ---
-loc4=Elk\\ City KP69 IDZ006 ---
-loc5=Grangeville KS80 IDZ007 ---
-loc6=Hailey-Sun\\ Valley KSUN IDZ018 ---
-loc7=Idaho\\ Falls KIDA IDZ020 ---
-loc8=Lewiston KLWS IDZ003 ---
-loc9=Malad\\ City KMLD IDZ022 ---
-loc10=Malta K77M IDZ022 ---
-loc11=McCall KMYL IDZ011 ---
-loc12=Mountain\\ Home KMUO IDZ014 ---
-loc13=Mullan KS06 IDZ004 ---
-loc14=Pocatello KPIH IDZ021 ---
-loc15=Salmon KSMN IDZ009 ---
-loc16=Salmon\\ (2) K27U IDZ009 ---
-loc17=Soda\\ Springs KU78 IDZ023 ---
-loc18=Strevell K4SV ------ ---
-loc19=Twin\\ Falls KTWF IDZ015 ---
-
-[US_IA]
-name=Iowa
-loc0=Algona KAXA IAZ005 043
-loc1=Ames KAMW IAZ048 043
-loc2=Atlantic KAIO IAZ070 ---
-loc3=Boone KBNW IAZ047 ---
-loc4=Burlington KBRL IAZ089 058
-loc5=Carroll KCIN IAZ045 ---
-loc6=Cedar\\ Rapids KCID IAZ052 ---
-loc7=Chariton KCNC IAZ084 ---
-loc8=Charles\\ City KCCY IAZ018 ---
-loc9=Clarinda KICL IAZ091 ---
-loc10=Clarion KCAV IAZ025 ---
-loc11=Clinton KCWI IAZ066 ---
-loc12=Council\\ Bluffs KCBF IAZ069 ---
-loc13=Creston KCSQ IAZ082 ---
-loc14=Davenport KDVN IAZ068 ---
-loc15=Decorah KDEH IAZ010 ---
-loc16=Denison KDNS IAZ044 ---
-loc17=Des\\ Moines KDSM IAZ060 057
-loc18=Dubuque KDBQ IAZ042 ---
-loc19=Estherville KEST IAZ004 ---
-loc20=Fairfield KFFL IAZ087 ---
-loc21=Fort\\ Dodge KFOD IAZ035 043
-loc22=Fort\\ Madison KFSW IAZ099 ---
-loc23=Iowa\\ City KIOW IAZ064 ---
-loc24=Keokuk KEOK ------ ---
-loc25=Knoxville KOXV ------ ---
-loc26=Lamoni K0Y7 IAZ094 057
-loc27=Le\\ Marine KLRJ ------ ---
-loc28=Marshalltown KMIW IAZ049 ---
-loc29=Mason\\ City KMCW IAZ017 044
-loc30=Monticello KMXO IAZ053 ---
-loc31=Muscatine KMUT IAZ067 ---
-loc32=Newton KTNU IAZ061 ---
-loc33=Oelwen KOLZ IAZ029 ---
-loc34=Orange\\ City KORC IAZ012 ---
-loc35=Ottumwa KOTM IAZ086 058
-loc36=Red\\ Oak KRDK IAZ080 ---
-loc37=Sheldon KSHL IAZ012 ---
-loc38=Shenandoah KSDA IAZ091 ---
-loc39=Sioux\\ City KSUX IAZ031 043
-loc40=Spencer KSPW IAZ014 043
-loc41=Storm\\ Lake KSLB IAZ022 ---
-loc42=Washington KAWG IAZ077 ---
-loc43=Waterloo KALO IAZ039 044
-loc44=Webster\\ City KEBS ------ ---
-
-[US_KS]
-name=Kansas
-loc0=Chanute KCNU KSZ096 084
-loc1=Concordia KCNK KSZ020 071
-loc2=Dodge\\ City KDDC KSZ078 070
-loc3=Elkhart K1K5 KSZ084 ---
-loc4=Emporia KEMP KSZ054 071
-loc5=Fort\\ Riley KFRI KSZ036 ---
-loc6=Garden\\ City KGCK KSZ063 070
-loc7=Goodland KGLD KSZ013 070
-loc8=Hays KHYS KSZ031 ---
-loc9=Hill\\ City KHLC KSZ016 070
-loc10=Hutchinson KHUT KSZ067 084
-loc11=Liberal KLBL KSZ086 ---
-loc12=Manhattan KMHK KSZ022 071
-loc13=Medicine\\ Lodge KP28 KSZ090 ---
-loc14=Olathe KOJC KSZ105 071
-loc15=Olathe/Ind. KIXD KSZ105 071
-loc16=Russell KRSL KSZ032 070
-loc17=Salina KSLN KSZ049 071
-loc18=Topeka KTOP KSZ039 071
-loc19=Topeka-Forbes\\ Field KFOE KSZ039 071
-loc20=Wichita KICT KSZ083 084
-loc21=Wichita-Jabara K3KM KSZ083 084
-loc22=Wichita-McConnell\\ AFB KIAB KSZ083 084
-
-[US_KY]
-name=Kentucky
-loc0=Bowling\\ Green KBWG KYZ071 087
-loc1=Covington KCVG KYZ092 074
-loc2=Fort\\ Campbell KHOP KYZ017 ---
-loc3=Fort\\ Knox KFTK KYZ028 ---
-loc4=Frankfort KFFT KYZ035 ---
-loc5=Henderson KEHR KYZ018 ---
-loc6=Jackson KJKL KYZ112 087
-loc7=Lexington KLEX KYZ041 074
-loc8=London KLOZ ------ 087
-loc9=Louisville KLOU KYZ030 073
-loc10=Louisville-Standiford\\ Field KSDF KYZ030 073
-loc11=Owensboro KOWB KYZ019 086
-loc12=Paducah KPAH KYZ005 ---
-loc13=Pikeville K5I3 KYZ120 ---
-loc14=Somerset KSME KYZ079 ---
-
-[US_LA]
-name=Lousiana
-loc0=Alexandria KAEX LAZ028 115
-loc1=Alexandria-Esler KESF LAZ028 115
-loc2=Amelia K7R3 ------ ---
-loc3=Barksdale KBAD ------ ---
-loc4=Baton\\ Rouge KBTR LAZ048 121
-loc5=Cameron K7R5 LAZ051 ---
-loc6=Fort\\ Polk-Leesville KPOE LAZ027 115
-loc7=Fourchon K9F2 ------ ---
-loc8=Grand\\ Isle KAXO LAZ061 ---
-loc9=Houma KHUM LAZ066 ---
-loc10=Intracoastal K7R4 LAZ052 ---
-loc11=Lafayette KLFT LAZ044 121
-loc12=Lake\\ Charles KLCH LAZ041 121
-loc13=Monroe KMLU LAZ014 ---
-loc14=New\\ Iberia KARA LAZ053 ---
-loc15=New\\ Orleans KMSY LAZ062 121
-loc16=New\\ Orleans\\ NAS KNBG LAZ062 121
-loc17=New\\ Orleans-Lakefront KNEW LAZ062 121
-loc18=Patterson KPTN ------ ---
-loc19=Salt\\ point KP92 ------ ---
-loc20=Shreveport\\ Downtown KDTN LAZ001 107
-loc21=Shreveport\\ Regional KSHV LAZ001 107
-loc22=South\\ Marsh\\ Island K7R8 LAZ053 ---
-loc23=South\\ Timbalier KS58 ------ ---
-loc24=Venice K7R1 ------ 121
-loc25=Vermillion K9R9 ------ ---
-loc26=Vicksburg KTVR ------ ---
-
-[US_ME]
-name=Maine
-loc0=Augusta KAUG MEZ021 034
-loc1=Bangor KBGR MEZ015 034
-loc2=Bar\\ Harbor KBHB MEZ029 ---
-loc3=Brunswick KNHZ MEZ024 049
-loc4=Caribou KCAR MEZ002 ---
-loc5=Clayton\\ Lake K40B ------ ---
-loc6=Frenchville KFVE MEZ002 ---
-loc7=Fryeburg KIZG ------ ---
-loc8=Greenville K3B1 MEZ010 034
-loc9=Houlton KHUL MEZ002 ---
-loc10=Lewiston KLEW MEZ020 ---
-loc11=Millinocket KMLT MEZ015 ---
-loc12=Portland KPWM MEZ024 049
-loc13=Presque\\ Isle KPQI MEZ002 ---
-loc14=Rockland KRKD MEZ027 ---
-loc15=Sanford KSFM MEZ023 ---
-loc16=Turin K3B5 ------ ---
-loc17=Waterville KWVL MEZ021 ---
-loc18=Wiscasset KIWI MEZ026 ---
-
-[US_MS]
-name=Mississippi
-loc0=Columbus KGTR MSZ031 109
-loc1=Columbus-W\\ Point-Starkville KCBM MSZ031 109
-loc2=Greenville KGLH ------ 108
-loc3=Greenwood KGWO MSZ025 108
-loc4=Gulfport KGPT MSZ081 ---
-loc5=Jackson KJAN MSZ048 108
-loc6=Laurel KPIB MSZ066 ---
-loc7=McComb KMCB MSZ070 ---
-loc8=Meridian KMEI MSZ052 109
-loc9=Meridian-Lauderdale KNMM MSZ052 109
-loc10=Natchez KHEZ MSZ060 ---
-loc11=Tupelo KTUP MSZ016 098
-loc12=Vicksburg KTVR MSZ047 ---
-
-[US_MO]
-name=Missouri
-loc0=Cape\\ Girardeau KCGI MOZ087 ---
-loc1=Columbia KCOU MOZ041 072
-loc2=Fort\\ Leonard KTBN MOZ070 072
-loc3=Grandview KGVW MOZ037 ---
-loc4=Jefferson\\ City KJEF MOZ048 072
-loc5=Joplin KJLN MOZ088 084
-loc6=Kansas\\ City KMKC MOZ037 071
-loc7=Kansas\\ City-Gladstone KMCI MOZ029 071
-loc8=Kirksville KIRK MOZ017 058
-loc9=Poplar\\ Bluff KP02 MOZ109 ---
-loc10=Sedalia KSZL MOZ045 ---
-loc11=Spickard KP35 MOZ015 ---
-loc12=Springfield KSGF MOZ095 084
-loc13=St\\ Joseph KSTJ MOZ020 057
-loc14=St\\ Louis KSTL MOZ064 stl
-loc15=St\\ Louis-Spirit KSUS MOZ064 stl
-loc16=Vichy-Rolla KVIH MOZ058 072
-
-[US_MT]
-name=Montana
-loc0=Billings KBIL MTZ035 ---
-loc1=Bozeman KBZN MTZ015 013
-loc2=Broadus K4BQ MTZ036 ---
-loc3=Butte KBTM MTZ007 013
-loc4=Cut\\ Bank KCTB MTZ010 004
-loc5=Dillon KDLN MTZ008 025
-loc6=Drummond K3DU MTZ006 013
-loc7=Glasgow KGGW MTZ017 ---
-loc8=Glendive KGDV MTZ025 ---
-loc9=Great\\ Falls KGFA MTZ012 004
-loc10=Harlowton K3HT MTZ028 ---
-loc11=Havre KHVR MTZ011 004
-loc12=Helena KHLN MTZ014 013
-loc13=Jordan KJDN MTZ022 ---
-loc14=Kalispell KFCA MTZ003 004
-loc15=Lewistown KLWT MTZ013 013
-loc16=Livingston KLVM MTZ028 013
-loc17=Miles\\ City KMLS MTZ032 ---
-loc18=Missoula KMSO MTZ005 013
-loc19=Monida KMQM ------ ---
-loc20=Sidney KSDY MTZ024 ---
-loc21=Thompson\\ Falls K3TH MTZ004 ---
-loc22=West\\ Yellowstone KWYS MTZ015 025
-loc23=West\\ Yellowstone\\ (2) KWEY MTZ015 025
-loc24=Wolf\\ Point KOLF MTZ020 ---
-
-[US_NE]
-name=Nebraska
-loc0=Ainsworth KANW NEZ008 042
-loc1=Alliance KAIA NEZ003 ---
-loc2=Beatrice KBIE NEZ089 057
-loc3=Broken\\ Bow KBBW NEZ038 056
-loc4=Burwell KK20 ------ ---
-loc5=Chadron KCDR NEZ002 041
-loc6=Columbus KOLU NEZ042 ---
-loc7=Falls\\ City KFNB NEZ093 057
-loc8=Grand\\ Island KGRI NEZ062 056
-loc9=Hastings KHSI NEZ075 056
-loc10=Imperial KIML NEZ069 055
-loc11=Imperial\\ (2) K6V1 NEZ069 055
-loc12=Kearney KEAR NEZ061 ---
-loc13=Lincoln KLNK NEZ066 057
-loc14=McCook KMCK NEZ081 056
-loc15=Mullen KMHN NEZ007 042
-loc16=Norfolk KOFK NEZ031 042
-loc17=North\\ Platte KLBF NEZ059 ---
-loc18=O'Neill KONL NEZ010 042
-loc19=Omaha KOMA NEZ052 057
-loc20=Omaha-Bellevue KOFF NEZ052 057
-loc21=Ord-Sharp KODX NEZ039 ---
-loc22=Scottsbluff KBFF NEZ019 041
-loc23=Sidney KSNY NEZ055 055
-loc24=Valentine KVTN NEZ005 042
-
-[US_NH]
-name=New Hampshire
-loc0=Berlin KBML NHZ002 034
-loc1=Concord KCON NHZ008 049
-loc2=Jaffrey KAFN NHZ011 ---
-loc3=Keene KEEN NHZ011 049
-loc4=Laconia KLCI NHZ009 049
-loc5=Lebanon KLEB NHZ003 049
-loc6=Manchester KMHT NHZ012 049
-loc7=Mt\\ Washington KMWN ------ 034
-loc8=Nashua KASH NHZ012 ---
-loc9=North\\ Conway KCWN ------ ---
-loc10=Portsmouth KPSM NHZ013 049
-loc11=Whitefield KHIE ------ ---
-
-[US_NM]
-name=New Mexico
-loc0=Alamogordo KHMN NMZ024 ---
-loc1=Albuquerque KABQ NMZ009 abq
-loc2=Carlsbad KCNM NMZ028 ---
-loc3=Clayton KCAO NMZ007 ---
-loc4=Clovis-Cannon\\ AFB KCVS NMZ021 ---
-loc5=Corona K4CR NMZ016 ---
-loc6=Cuba\\ Awrs K4SL NMZ002 ---
-loc7=Deming KDMN NMZ031 ---
-loc8=Farmington KFMN NMZ001 081
-loc9=Gallup KGUP NMZ008 093
-loc10=Grants KGNT NMZ008 093
-loc11=Hobbs KHOB NMZ029 ---
-loc12=Las\\ Vegas KLVS NMZ005 abq
-loc13=Los\\ Alamos KLAM NMZ002 081
-loc14=Moriarty K4MY NMZ011 ---
-loc15=Roswell KROW NMZ019 ---
-loc16=Ruidoso-Sierra\\ Blanca KRUI NMZ016 ---
-loc17=Santa\\ Fe KSAF NMZ011 abq
-loc18=Silver\\ City KSVC NMZ022 ---
-loc19=Socorro KONM NMZ015 ---
-loc20=Taos KE23 NMZ004 ---
-loc21=Truth\\ or\\ Consequences KTCS NMZ023 ---
-loc22=Tucumcari KTCC NMZ013 ---
-loc23=Zuni\\ Pueblo KZUN ------ ---
-
-[US_ND]
-name=North Dakota
-loc0=Bismark KBIS NDZ035 016
-loc1=Devils\\ Lake KDVL NDZ015 007
-loc2=Devils\\ Lake\\ (2) KP11 NDZ015 007
-loc3=Dickinson KDIK NDZ033 015
-loc4=Fargo KFAR NDZ039 ---
-loc5=Grand\\ Forks KGFK NDZ027 007
-loc6=Jamestown KJMS NDZ037 016
-loc7=Lidgerwood KP67 NDZ053 ---
-loc8=Minot KMOT NDZ011 007
-loc9=Minot\\ AFB KMIB NDZ011 007
-loc10=Roseglen KP24 NDZ021 ---
-loc11=Williston KISN NDZ009 006
-
-[US_OK]
-name=Oklahoma
-loc0=Altus KLTS OKZ036 ---
-loc1=Ardmore KADM OKZ046 ---
-loc2=Bartlesville KBVO OKZ054 084
-loc3=Clinton KCSM OKZ016 ---
-loc4=Enid KEND OKZ012 ---
-loc5=Enid/Woodring KWDG OKZ012 084
-loc6=Fort\\ Sill KFSI OKZ038 ---
-loc7=Gage KGAG OKZ009 ---
-loc8=Guymon KGUY ------ 082
-loc9=Hobart KHBR OKZ035 095
-loc10=Lawton KLAW OKZ038 ---
-loc11=McAlester KMLC OKZ073 ---
-loc12=Oklahoma\\ City KOKC OKZ025 095
-loc13=Oklahoma\\ City-Bethany KPWA OKZ025 095
-loc14=Oklahoma\\ City-Midwest\\ City KTIK OKZ025 095
-loc15=Page KPGO OKZ076 ---
-loc16=Ponca\\ City KPNC OKZ008 084
-loc17=Stillwater KSWO OKZ020 084
-loc18=Tulsa KTUL OKZ060 084
-
-[US_SD]
-name=South Dakota
-loc0=Aberdeen KABR SDZ006 ---
-loc1=Brookings KBKX SDZ040 ---
-loc2=Chamberlain K9V9 SDZ057 ---
-loc3=Custer K0V1 SDZ029 ---
-loc4=Huron KHON SDZ038 028
-loc5=Lemmon KY22 SDZ002 ---
-loc6=Mitchell KMHE SDZ059 028
-loc7=Mobridge KY26 SDZ009 028
-loc8=Philip KPHP SDZ032 028
-loc9=Pierre KPIR SDZ035 028
-loc10=Rapid\\ City KRAP SDZ031 027
-loc11=Rapid\\ City-Ellsworth\\ AFB KRCA SDZ031 027
-loc12=Redig KREJ SDZ001 ---
-loc13=Sioux\\ Falls KFSD SDZ062 043
-loc14=Watertown KATY SDZ020 ---
-loc15=Yankton KYKN SDZ069 043
-
-[US_UT]
-name=Utah
-loc0=Blanding K4BL UTZ022 067
-loc1=Bryce\\ Canyon KBCE UTZ020 080
-loc2=Bullfrog KU17 UTZ021 ---
-loc3=Cedar\\ City KCDC UTZ016 080
-loc4=Delta KU24 UTZ015 ---
-loc5=Dugway KDPG UTZ005 slc
-loc6=Eagle\\ Range KU16 ------ ---
-loc7=Green\\ River KU28 UTZ013 ---
-loc8=Hanksville K4HV UTZ013 067
-loc9=Logan KLGU UTZ001 ---
-loc10=Milford KMLF UTZ016 ---
-loc11=Ogden KOGD UTZ002 slc
-loc12=Ogden-Hill\\ AFB KHIF UTZ002 slc
-loc13=Price-Carbon KPUC UTZ012 067
-loc14=Provo KPVU UTZ004 slc
-loc15=Roosevelt KU67 UTZ011 ---
-loc16=St.\\ George KSGU UTZ019 080
-loc17=Salt\\ Lake\\ City KSLC UTZ003 slc
-loc18=Vernal KVEL UTZ024 ---
-loc19=Wendover KENV UTZ005 slc
-
-[US_VT]
-name=Vermont
-loc0=Ball\\ Mountain K8B3 ------ ---
-loc1=Burlington KBTV VTZ005 ---
-loc2=Canaan KVT1 ------ ---
-loc3=Enosburg\\ Falls K3B8 ------ ---
-loc4=Montpelier KMPV VTZ008 034
-loc5=Newport KNPV VTZ003 034
-loc6=Pownal K5B5 ------ ---
-loc7=Rutland KRUT VTZ011 ---
-loc8=Springfield KVSF VTZ012 ---
-loc9=St\\ Johnsbury K9B2 VTZ007 ---
-loc10=Waterbury K5B1 ------ ---
-loc11=West\\ Burke KVT2 ------ ---
-loc12=Wilmington K0B0 VTZ014 049
-
-[US_WY]
-name=Wyoming
-loc0=Big\\ Piney KBPI WYZ020 ---
-loc1=Casper KCPR WYZ064 ---
-loc2=Cheyenne KCYS WYZ069 ---
-loc3=Cody KCOD WYZ002 026
-loc4=Douglas K4DG WYZ059 ---
-loc5=Evanston KEVW WYZ021 ---
-loc6=Gillette KGCC WYZ054 026
-loc7=Jackson KJAC WYZ006 ---
-loc8=Lander KLND WYZ012 040
-loc9=Laramie KLAR WYZ066 ---
-loc10=Rawlins KRWL WYZ061 040
-loc11=Riverton KRIW WYZ013 040
-loc12=Rock\\ Springs KRKS WYZ022 ---
-loc13=Sheridan KSHR WYZ099 ---
-loc14=Worland KWRL WYZ009 026
-loc15=Yellowstone KP60 WYZ001 ---
-
-
-[US_PA]
-name=Pennsylvania
-loc0=Allentown KABE PAZ061 062
-loc1=Altoona KAOO PAZ025 061
-loc2=Bradford KBFD PAZ005 047
-loc3=Du\\ Bois KDUJ PAZ017 061
-loc4=Erie KERI PAZ002 047
-loc5=Franklin KFKL PAZ008 061
-loc6=Harrisburg KCXY PAZ057 062
-loc7=Johnstown KJST PAZ024 pit
-loc8=Lancaster KLNS PAZ066 phl
-loc9=Latrobe KLBE PAZ030 pit
-loc10=Middletown KMDT PAZ057 062
-loc11=Muir KMUI PAZ058 062
-loc12=Northeast\\ Philadelphia KPNE PAZ071 phl
-loc13=Philadelphia KPHL PAZ071 phl
-loc14=Philipsburg KPSB PAZ019 061
-loc15=Pittsburgh KPIT PAZ021 pit
-loc16=Pittsburgh-West\\ Mifflin KAGC PAZ021 pit
-loc17=Reading KRDG PAZ060 phl
-loc18=Scranton KAVP PAZ047 062
-loc19=State\\ College KUNV PAZ019 061
-loc20=Wilkes\\ -\\ Barre KAVP PAZ047 062
-loc21=Williamsport KIPT PAZ046 062
-
-[US_CA]
-name=California
-loc0=Alturas KS11 CAZ012 ---
-loc1=Arcata KACV CAZ001 ---
-loc2=Avalon KAVX ------ ---
-loc3=Bakersfield KBFL CAZ021 ---
-loc4=Beaumont KBUO CAZ056 ---
-loc5=Bicycle\\ Lake KBYS ------ ---
-loc6=Bishop KBIH CAZ026 ---
-loc7=Blue\\ Canyon KBLU ------ ---
-loc8=Blythe KBLH CAZ031 ---
-loc9=Burbank KBUR CAZ047 ---
-loc10=Camarillo KCMA CAZ040 ---
-loc11=Campo KCZZ CAZ058 ---
-loc12=Carlsbad KCRQ CAZ043 ---
-loc13=Chico KCIC CAZ016 ---
-loc14=China\\ Lake KNID CAZ028 ---
-loc15=Chino KCNO CAZ048 ---
-loc16=Concord KCCR CAZ007 ---
-loc17=Crescent\\ City KCEC CAZ001 ---
-loc18=Daggett KDAG CAZ028 ---
-loc19=Edwards\\ AFB KEDW CAZ025 ---
-loc20=El\\ Centro KNJK CAZ033 ---
-loc21=El\\ Monte KEMT CAZ047 ---
-loc22=Fairfield KSUU CAZ018 ---
-loc23=Fresno KFAT CAZ020 078
-loc24=Fresno-Chandler KFCH CAZ020 078
-loc25=Fullerton KFUL CAZ042 ---
-loc26=Hawthorne KHHR CAZ041 ---
-loc27=Hayward KHWD CAZ007 ---
-loc28=Imperial KIPL CAZ033 ---
-loc29=Imperial\\ Beach KNRS CAZ043 ---
-loc30=Inyokern KIYK CAZ025 ---
-loc31=La\\ Verne KPOC CAZ047 ---
-loc32=Lake\\ Tahoe KTVL CAZ072 ---
-loc33=Lancaster KWJF CAZ059 ---
-loc34=Lemoore KNLC CAZ021 ---
-loc35=Livermore KLVK CAZ007 ---
-loc36=Lompoc KLPC CAZ035 ---
-loc37=Long\\ Beach KLGB CAZ041 lax
-loc38=Los\\ Angeles KLAX CAZ041 lax
-loc39=Mammoth\\ Lakes KMMH CAZ073 ---
-loc40=Marysville KMYV CAZ016 ---
-loc41=Marysville-Beale\\ AFB KBAB CAZ016 ---
-loc42=McClellan KMCC ------ ---
-loc43=Merced KMCE CAZ020 ---
-loc44=Modesto KMOD CAZ019 ---
-loc45=Mojave KMHV CAZ024 ---
-loc46=Montague KSIY CAZ011 ---
-loc47=Monterey KMRY CAZ009 ---
-loc48=Mount\\ Shasta KMHS CAZ011 ---
-loc49=Mount\\ Wilson KMWS CAZ047 ---
-loc50=Mountain\\ View KNUQ CAZ006 sfo
-loc51=Napa KAPC CAZ064 ---
-loc52=Needles KEED CAZ029 ---
-loc53=Oakland KOAK CAZ007 sfo
-loc54=Oceanside KNFG CAZ043 ---
-loc55=Ontario KONT CAZ048 lax
-loc56=Oxnard KOXR CAZ040 ---
-loc57=Palm\\ Springs KPSP CAZ061 ---
-loc58=Palmdale KPMD CAZ054 ---
-loc59=Palo\\ Alto KPAO CAZ006 sfo
-loc60=Paso\\ Robles KPRB CAZ037 ---
-loc61=Point\\ Mugu KNTD ------ ---
-loc62=Point\\ Piedras\\ Blanca K87Q ------ ---
-loc63=Porterville KPTV CAZ021 ---
-loc64=Red\\ Bluff KRBL CAZ015 ---
-loc65=Redding KRDD CAZ013 ---
-loc66=Riverside KRAL CAZ048 ---
-loc67=Riverside/March\\ AFB KRIV CAZ061 ---
-loc68=Sacramento KSAC CAZ017 ---
-loc69=Sacramento-Woodland KSMF CAZ017 ---
-loc70=Salinas KSNS CAZ009 ---
-loc71=San\\ Carlos KSQL CAZ006 ---
-loc72=San\\ Diego KSAN CAZ043 san
-loc73=San\\ Diego-Santee KSEE CAZ050 san
-loc74=San\\ Diego-Brown KSDM CAZ050 san
-loc75=San\\ Diego-Miramar KNKX CAZ043 san
-loc76=San\\ Diego-Montgomery KMYF CAZ043 san
-loc77=San\\ Diego-North\\ Island KNZY ------ san
-loc78=San\\ Francisco KSFO CAZ006 sfo
-loc79=San\\ Jose-Santa\\ Clara KSJC CAZ008 sfo
-loc80=San\\ Luis\\ Obispo KSBP CAZ034 ---
-loc81=San\\ Nicholas\\ Island KNSI CAZ039 ---
-loc82=Sandberg KSDB ------ ---
-loc83=Santa\\ Ana KSNA CAZ042 lax
-loc84=Santa\\ Barbara KSBA CAZ039 lax
-loc85=Santa\\ Maria KSMX CAZ035 090
-loc86=Santa\\ Monica KSMO CAZ041 ---
-loc87=Santa\\ Rosa KSTS CAZ005 ---
-loc88=Shelter\\ Cove KO87 CAZ001 ---
-loc89=Stockton KSCK CAZ019 ---
-loc90=Tahoe\\ Valley KTVL ------ ---
-loc91=Torrance KTOA CAZ042 lax
-loc92=Truckee KTRK CAZ072 ---
-loc93=Twentynine\\ Palms KNXP CAZ028 ---
-loc94=Ukiah KUKI CAZ003 ---
-loc95=Van\\ Nuys KVNY CAZ047 ---
-loc96=Vandenberg\\ AFB KVBG CAZ039 ---
-loc97=Vandenberg\\ Range KVBG CAZ039 ---
-loc98=Visalia KVIS CAZ021 ---
-
-[US_AL]
-name=Alabama
-loc0=Anniston KANB ALZ019 ---
-loc1=Auburn KAUO ALZ047 ---
-loc2=Birmingham KBHM ALZ024 019
-loc3=Decatur KDCU ------ ---
-loc4=Dothan KDHN ALZ066 ---
-loc5=Evergreen KGZH ------ ---
-loc6=Gadsden KGAD ALZ018 ---
-loc7=Huntsville KHSV ALZ006 ---
-loc8=Mobile\\ Regional\\ Airport KMOB ALZ061 ---
-loc9=Mobile\\ Downtown KBFM ALZ061 ---
-loc10=Montgomery KMGM ALZ044 109
-loc11=Montgomery-Maxwell\\ AFB KMXF ALZ044 109
-loc12=Muscle\\ Shoals KMSL ALZ002 ---
-loc13=Ozark KOZR ALZ066 ---
-loc14=Tuscaloosa KTCL ALZ023 ---
-
-[US_AZ]
-name=Arizona
-loc0=Casa\\ Granda KCGZ AZZ028 ---
-loc1=Chandler KIWA AZZ015 ---
-loc2=Douglas KDUG AZZ030 ---
-loc3=Flagstaff KFLG AZZ015 092
-loc4=Fort\\ Huachuca KFHU AZZ035 ---
-loc5=Gila\\ Bend KGBN AZZ027 ---
-loc6=Grand\\ Canyon KGCN AZZ006 ---
-loc7=Kingman KIGM AZZ003 ---
-loc8=Mesa-Falcon\\ Field KFFZ AZZ023 ---
-loc9=Nogales K13A AZZ034 ---
-loc10=Page KPGA AZZ005 ---
-loc11=Payson K0E4 AZZ018 ---
-loc12=Phoenix KPHX AZZ023 phx
-loc13=Phoenix-Deer\\ Valley KDVT AZZ023 phx
-loc14=Phoenix-Goodyear KGYR AZZ023 phx
-loc15=Phoenix-Luke\\ AFB KLUF AZZ023 phx
-loc16=Prescott KPRC AZZ008 ---
-loc17=Safford-Municipal\\ Airport KSAD AZZ030 ---
-loc18=Scottsdale KSDL AZZ023 ---
-loc19=Show\\ Low KSOW AZZ017 ---
-loc20=Tucson KTUS AZZ033 103
-loc21=Tucson-Davis\\ AFB KDMA AZZ033 103
-loc22=Winslow KINW AZZ013 ---
-loc23=Yuma\\ MCAS KNYL AZZ025 ---
-
-[US_CO]
-name=Colorado
-loc0=Air\\ Force KAFF COZ071 ---
-loc1=Akron KAKO COZ049 ---
-loc2=Alamosa KALS COZ063 ---
-loc3=Aspen KASE COZ010 068
-loc4=Colorado\\ Springs KCOS COZ071 ---
-loc5=Cortez KCEZ COZ021 ---
-loc6=Craig KCAG COZ002 ---
-loc7=Denver KDEN COZ040 den
-loc8=Denver-Aurora KAPA COZ040 den
-loc9=Denver-Broomfield KBKF COZ040 den
-loc10=Denver-Cherry\\ Knolls KBJC COZ040 den
-loc11=Durango KDRO COZ022 ---
-loc12=Durango\\ Awrs K4V5 COZ022 ---
-loc13=Eagle KEGE COZ010 ---
-loc14=Fort\\ Carson KFCS COZ071 ---
-loc15=Fort\\ Collins KFCL COZ035 ---
-loc16=Fort\\ Collins/Lovel KFNL COZ035 ---
-loc17=Grand\\ Junction KGJT COZ006 ---
-loc18=Greeley KGXY COZ043 ---
-loc19=Gunnison KGUC COZ012 ---
-loc20=Gunnison\\ (2) K2V9 COZ012 ---
-loc21=Hayden KHDN COZ005 ---
-loc22=La\\ Junta KLHX COZ076 ---
-loc23=Lamar K4LJ COZ080 ---
-loc24=Leadville KLXV COZ012 ---
-loc25=Limon KLIC COZ047 ---
-loc26=Montrose KMTJ COZ017 ---
-loc27=Montrose\\ (2) K6V8 COZ017 ---
-loc28=Pueblo KPUB COZ073 ---
-loc29=Rifle K1V1 COZ003 ---
-loc30=Salida KS29 COZ069 ---
-loc31=Salida-Harriet K0V2 COZ069 ---
-loc32=Steamboat\\ Springs KSBS COZ005 ---
-loc33=Trinidad KTAD COZ077 ---
-loc34=Winter\\ Park KC96 COZ033 ---
-
-[US_CT]
-name=Connecticut
-loc0=Bridgeport KBDR CTZ009 hfd
-loc1=Danbury KDXR CTZ009 ---
-loc2=Groton KGON CTZ012 hfd
-loc3=Hartford KHFD CTZ002 hfd
-loc4=New\\ Haven KHVN CTZ010 ---
-loc5=Oxford KOXC CTZ010 ---
-loc6=Windsor\\ Locks KBDL CTZ002 ---
-
-[US_DE]
-name=Delaware
-loc0=Dover KDOV DEZ002 076
-loc1=Wilmington KILG DEZ001 076
-
-[US_FL]
-name=Florida
-loc0=Apalachicola KAQQ FLZ015 ---
-loc1=Bartow KBOW ------ ---
-loc2=Brooksville KBKV FLZ048 ---
-loc3=Cecil\\ NAS KNZC FLZ025 ---
-loc4=Cocoa\\ Beach KCOF FLZ047 ---
-loc5=Crestview KCEW FLZ006 ---
-loc6=Cross\\ City KCTY FLZ034 ---
-loc7=Daytona\\ Beach KDAB FLZ041 ---
-loc8=Destin KDTS ------ ---
-loc9=Eglin KEGI FLZ006 ---
-loc10=Fort\\ Lauderdale\\ (International) KFLL FLZ072 ---
-loc11=Fort\\ Lauderdale KFXE FLZ072 ---
-loc12=Fort\\ Myers\\ (Page\\ Field) KFMY FLZ065 ---
-loc13=Fort\\ Myers\\ (Southwest\\ Florida\\ International) KRSW FLZ065 ---
-loc14=Gainesville KGNV FLZ036 ---
-loc15=Homestead\\ AFB KHST FLZ074 ---
-loc16=Hurlburt KHRT ------ ---
-loc17=Jacksonville KJAX FLZ025 ---
-loc18=Jacksonville\\ NAS KNIP FLZ025 ---
-loc19=Jacksonville-Craig\\ Airport KCRG FLZ025 ---
-loc20=Key\\ West KEYW FLZ075 ---
-loc21=Key\\ West\\ NAS KNQX FLZ075 ---
-loc22=Lakeland KLAL FLZ052 ---
-loc23=Leesburg KLEE ------ ---
-loc24=Marathon KMTH FLZ075 ---
-loc25=Marianna KMAI FLZ011 ---
-loc26=Mayport KNRB FLZ025 ---
-loc27=Melbourne KMLB FLZ047 ---
-loc28=Miami KMIA FLZ074 mia
-loc29=Miami-Kendall KTMB FLZ074 mia
-loc30=Miami-Opa\\ Locka KOPF FLZ074 mia
-loc31=Milton KNSE FLZ004 ---
-loc32=Nasa\\ Shuttle KTTS ------ ---
-loc33=Naples KAPF FLZ069 ---
-loc34=New\\ Port\\ Richey KRRF FLZ051 ---
-loc35=Ocala KOCF FLZ040 ---
-loc36=Orlando KORL FLZ045 ---
-loc37=Orlando\\ (Orlando\\ International) KMCO FLZ045 ---
-loc38=Panama\\ City KPFN FLZ012 ---
-loc39=Pensacola KPNS FLZ002 ---
-loc40=Pensacola\\ NAS KNPA FLZ002 ---
-loc41=Perry-Foley K40J ------ ---
-loc42=Pompano\\ Beach KPMP ------ ---
-loc43=Punta\\ Gorda KPGD ------ ---
-loc44=Sanford KSFB FLZ046 ---
-loc45=Sarasota KSRQ FLZ060 ---
-loc46=St\\ Petersburg KSPG FLZ050 ---
-loc47=St\\ Petersburg\\ /\\ Clearwater KPIE FLZ050 ---
-loc48=Tallahassee KTLH FLZ017 ---
-loc49=Tampa KTPA FLZ051 ---
-loc50=Tampa-Macdill\\ AFB KMCF FLZ051 ---
-loc51=Titusville KTIX FLZ047 ---
-loc52=Tyndall\\ AFB KPAM ------ ---
-loc53=Valparaiso KVPS FLZ006 ---
-loc54=Valparaiso-Eglin\\ AFB KEGI FLZ006 ---
-loc55=Vero\\ Beach KVRB FLZ054 ---
-loc56=West\\ Palm\\ Beach KPBI FLZ068 ---
-loc57=Winter\\ Haven KGIF ------ ---
-
-[US_GA]
-name=Georgia
-loc0=Albany KABY GAZ125 ---
-loc1=Alma KAMG GAZ134 ---
-loc2=Athens KAHN GAZ036 atl
-loc3=Atlanta KATL GAZ033 atl
-loc4=Augusta KAGS GAZ065 ---
-loc5=Brunswick KSSI GAZ154 ---
-loc6=Columbus KCSG GAZ089 ---
-loc7=Columbus-Fort\\ Benning KLSF GAZ089 ---
-loc8=Dekalb/Peachtree KPDK ------ ---
-loc9=Hinesville KLHW ------ ---
-loc10=Fort\\ Benning KLSF GAZ090 ---
-loc11=Fort\\ Stewart KLHW GAZ138 ---
-loc12=Macon KMCN GAZ082 ---
-loc13=Marietta KMGE GAZ032 ---
-loc14=Moultrie KMGR ------ ---
-loc15=Rome-Russell KRMG GAZ019 atl
-loc16=Savannah KSAV GAZ119 ---
-loc17=Savannah-Hunter\\ AAF KSVN GAZ119 ---
-loc18=St\\ Simon's\\ Island KSSI GAZ154 ---
-loc19=Valdosta KVLD GAZ160 ---
-loc20=Valdosta-Moody\\ AFB KVAD GAZ160 ---
-loc21=Warner\\ Robins KWRB GAZ095 ---
-loc22=West\\ Atlanta KFTY GAZ033 ---
-loc23=Waycross KAYS GAZ151 ---
-
-[US_HI]
-name=Hawaii
-loc0=Barbers\\ Point PHNA HIZ002 ---
-loc1=Barking\\ Sand PHBK ------ ---
-loc2=Bradshaw\\ Field PHSF ------ ---
-loc3=Hilo PHTO HIZ004 ---
-loc4=Honolulu PHNL HIZ002 ---
-loc5=Kahului PHOG HIZ003 ---
-loc6=Kailua-Kona PHKO HIZ002 ---
-loc7=Kaneohe PHNG HIZ002 ---
-loc8=Lahaina PHJH HIZ003 ---
-loc9=Lanai PHNY HIZ003 ---
-loc10=Lihue PHLI HIZ001 ---
-loc11=Molokai PHMK HIZ005 ---
-loc12=Oahu PHHI HIZ002 ---
-
-[US_IL]
-name=Illinois
-loc0=Alton KALN ILZ100 ---
-loc1=Aurora KARR ILZ013 ---
-loc2=Belleville KBLV ILZ101 ---
-loc3=Bloomington KBMI ILZ038 ---
-loc4=Cairo KCIR ILZ092 ---
-loc5=Carbondale KMDH ILZ084 ---
-loc6=Champaign KCMI ILZ045 059
-loc7=Chicago-DuPage KDPA ILZ014 ord
-loc8=Chicago-O'Hare KORD ILZ013 ord
-loc9=Chicago-Lakefront KCGX ILZ014 ord
-loc10=Chicago-Midway KMDW ILZ014 ord
-loc11=Danville KDNV ILZ046 ---
-loc12=Decatur KDEC ILZ053 ---
-loc13=East\\ St\\ Louis KCPS ILZ101 ---
-loc14=Galesburg KGBG ILZ027 ---
-loc15=Marion KMWA ILZ085 ---
-loc16=Marseilles KMMO ILZ019 ---
-loc17=Mattoon KMTO ILZ056 ---
-loc18=Moline-Quad\\ Cities KMLI ILZ015 ---
-loc19=Mount\\ Vernon KMVN ILZ075 ---
-loc20=Peoria KPIA ILZ029 ---
-loc21=Quincy KUIN ILZ095 ---
-loc22=Rockford KRFD ILZ003 ---
-loc23=Salem KSLO ILZ070 ---
-loc24=Springfield KSPI ILZ051 ---
-
-[US_IN]
-name=Indiana
-loc0=Bloomington KBMG INZ062 ---
-loc1=Elkhart KEKM INZ005 ---
-loc2=Evansville KEVV INZ086 ---
-loc3=Fort\\ Wayne KFWA INZ018 ---
-loc4=Gary KGYY INZ001 ---
-loc5=Indianapolis KIND INZ047 ---
-loc6=Lafayette KLAF INZ029 ---
-loc7=Marion KMZZ ------ ---
-loc8=Muncie KMIE INZ041 ---
-loc9=Peru KGUS INZ023 ---
-loc10=South\\ Bend KSBN INZ004 ---
-loc11=Terre\\ Haute KHUF INZ051 ---
-
-[US_MD]
-name=Maryland
-loc0=Aberdeen KAPG ------ ---
-loc1=Andrews\\ AFB KADW MDZ013 ---
-loc2=Baltimore KMTN MDZ011 dca
-loc3=Baltimore-Glen\\ Burnie KBWI MDZ014 dca
-loc4=Cumberland KCBE ------ ---
-loc5=Fort\\ Meade KFME MDZ014 ---
-loc6=Hagerstown KHGR MDZ003 ---
-loc7=Oakland K2G4 ------ 075
-loc8=Patuxent\\ River KNHK MDZ014 ---
-loc9=Salisbury KSBY MDZ022 ---
-
-[US_MI]
-name=Michigan
-loc0=Ann\\ Arbor KARB MIZ075 dtw
-loc1=Alpena KAPN MIZ024 ---
-loc2=Battle\\ Creek KBTL MIZ073 ---
-loc3=Benton\\ Harbor KBEH ------ ---
-loc4=Chippewa\\ County KCIU MIZ008 ---
-loc5=Copper\\ Harbor KP59 MIZ003 ---
-loc6=Detroit KDET MIZ076 dtw
-loc7=Detroit-Taylor KDTW MIZ076 dtw
-loc8=Detroit/Ypsilanti KYIP MIZ075 dtw
-loc9=Escanaba KESC MIZ013 ---
-loc10=Flint KFNT MIZ061 dtw
-loc11=Grand\\ Rapids KGRR MIZ057 ---
-loc12=Hancock KCMX MIZ003 ---
-loc13=Harbor\\ Beach KP58 MIZ049 ---
-loc14=Houghton\\ Lake KHTL MIZ034 ---
-loc15=Iron\\ Mountain KIMT MIZ011 ---
-loc16=Ironwood KIWD MIZ009 ---
-loc17=Jackson KJXN MIZ074 dtw
-loc18=Kalamazoo KAZO MIZ072 045
-loc19=Lansing KLAN MIZ066 ---
-loc20=Manistee KMBL MIZ031 ---
-loc21=Menominee KMNM MIZ012 ---
-loc22=Mount\\ Clemens KMTC MIZ070 ---
-loc23=Muskegon KMKG MIZ050 ---
-loc24=Oscoda KOSC MIZ036 ---
-loc25=Pellston KPLN MIZ016 ---
-loc26=Pontiac KPTK MIZ069 ---
-loc27=Saginaw KMBS MIZ053 ---
-loc28=Sault\\ Ste\\ Marie KSSM MIZ008 ---
-loc29=Sawyer\\ AFB KSAW MIZ077 ---
-loc30=Seul\\ Choix\\ Pt KP75 ------ ---
-loc31=Traverse\\ City KTVC MIZ020 ---
-loc32=Ypsilanti KYIP MIZ075 dtw
-
-[US_MN]
-name=Minnesota
-loc0=Alexandria KAXN MNZ041 ---
-loc1=Bemidji KBJI MNZ009 ---
-loc2=Brainerd KBRD MNZ034 ---
-loc3=Detroit\\ Lakes KDTL MNZ027 ---
-loc4=Duluth KDLH MNZ019 ---
-loc5=Ely KELO MNZ019 ---
-loc6=Fairmont KFRM MNZ091 ---
-loc7=Fergus\\ Falls KFFM MNZ031 ---
-loc8=Grand\\ Marais KP61 MNZ021 ---
-loc9=Grand\\ Rapids KGPZ MNZ026 ---
-loc10=Hibbing KHIB MNZ019 ---
-loc11=International\\ Falls KINL MNZ010 ---
-loc12=Litchfield KY69 MNZ058 ---
-loc13=Mankato KMKT MNZ083 ---
-loc14=Marshall KMML MNZ072 ---
-loc15=Minneapolis KMSP MNZ060 msp
-loc16=Minneapolis\\ [2] KFCM MNZ060 msp
-loc17=Minneapolis\\ [3] KMIC MNZ060 msp
-loc18=Pequot\\ Lakes KP39 MNZ034 ---
-loc19=Redwood\\ Falls KRWF MNZ073 ---
-loc20=Rochester KRST MNZ087 030
-loc21=St\\ Cloud KSTC MNZ051 ---
-loc22=St\\ Paul KSTP MNZ062 ---
-loc23=Thief\\ River\\ Falls KTVF MNZ013 ---
-loc24=Warroad KD45 MNZ005 ---
-loc25=Worthington KOTG MNZ089 ---
-
-[US_NV]
-name=Nevada
-loc0=Austin KU31 NVZ012 ---
-loc1=Battle\\ Mountain KBAM NVZ012 ---
-loc2=Caliente KP38 NVZ015 ---
-loc3=Desert\\ Rock KDRA ------ ---
-loc4=Elko KEKO NVZ008 ---
-loc5=Ely KELY NVZ011 ---
-loc6=Eureka KP68 NVZ012 ---
-loc7=Fallon KNFL NVZ004 ---
-loc8=Hawthorne KHTH NVZ001 ---
-loc9=Indian\\ Springs KL63 NVZ017 ---
-loc10=Las\\ Vegas KLAS NVZ020 079
-loc11=N\\ Las\\ Vegas KLSV NVZ020 079
-loc12=Lovelock KLOL NVZ004 ---
-loc13=Owyhee KOWY NVZ007 ---
-loc14=Reno KRNO NVZ003 065
-loc15=Tonopah KTPH NVZ014 ---
-loc16=Winnemucca KWMC NVZ006 ---
-
-[US_NJ]
-name=New Jersey
-loc0=Atlantic\\ City KACY NJZ022 ---
-loc1=Belmar-Farmingdale KBLM NJZ013 ---
-loc2=Caldwell KCDW NJZ005 ---
-loc3=Lakehurst KNEL ------ ---
-loc4=Millville KMIV NJZ021 ---
-loc5=Morristown KMMU NJZ008 ---
-loc6=Mount\\ Holly KVAY ------ ---
-loc7=Newark KEWR NJZ005 ---
-loc8=Teterboro KTEB NJZ003 ---
-loc9=Trenton KTTN NJZ015 ---
-loc10=Wildwood KWWD NJZ024 ---
-loc11=Wrightstown\\ /\\ Mcguire\\ AFB KWRI NJZ019 ---
-
-[US_NC]
-name=North Carolina
-loc0=Asheville KAVL NCZ053 ---
-loc1=Cape\\ Hatteras KHAT NCZ047 ---
-loc2=Charlotte KCLT NCZ071 100
-loc3=Cherry\\ Point KNKT ------ ---
-loc4=Elizabeth\\ City KECG NCZ016 ---
-loc5=Fayetteville KFAY NCZ088 100
-loc6=Fort\\ Bragg KFBG NCZ088 ---
-loc7=Goldsboro KGSB NCZ078 ---
-loc8=Greensboro KGSO NCZ022 rdu
-loc9=Hickory KHKY NCZ056 ---
-loc10=Hoffman KHFF ------ ---
-loc11=Hot\\ Springs KHSS NCZ048 ---
-loc12=Jacksonville KOAJ NCZ098 ---
-loc13=Kinston KISO NCZ091 ---
-loc14=New\\ Bern KEWN NCZ093 ---
-loc15=New\\ River KNCA NCZ098 ---
-loc16=Pope\\ AFB KPOB NCZ088 ---
-loc17=Raleigh-Durham KRDU NCZ041 rdu
-loc18=Rocky\\ Mount KRWI NCZ028 rdu
-loc19=Stumpy\\ Point K2DP ------ ---
-loc20=Wilmington KILM NCZ101 ---
-loc21=Winston-Salem KINT NCZ021 ---
-
-[US_OH]
-name=Ohio
-loc0=Akron KCAK OHZ021 ---
-loc1=Cincinnati KLUK OHZ077 074
-loc2=Cleveland KCLE OHZ011 cle
-loc3=Cleveland-Lakefront KBKL OHZ011 cle
-loc4=Cleveland/Cuyahoga KCGF OHZ011 cle
-loc5=Columbus-Gahanna KCMH OHZ055 ---
-loc6=Columbus-OSU KOSU OHZ055 ---
-loc7=Dayton KDAY OHZ061 074
-loc8=Dayton-Fairborn KFFO OHZ061 ---
-loc9=Dayton-South\\ Airport KMGY OHZ061 ---
-loc10=Findlay KFDY OHZ017 ---
-loc11=Hamilton KHAO OHZ070 ---
-loc12=Lancaster KLHQ OHZ067 ---
-loc13=Mansfield KMFD OHZ029 ---
-loc14=Rickenbacker KLCK OHZ070 ---
-loc15=Toledo KTOL OHZ003 ---
-loc16=Willoughby KLNN OHZ012 ---
-loc17=Wilmington KILN OHZ072 ---
-loc18=Wooster KBJJ OHZ031 ---
-loc19=Youngstown KYNG OHZ033 ---
-loc20=Zanesville KZZV OHZ057 ---
-
-[US_OR]
-name=Oregon
-loc0=Astoria KAST ORZ001 ---
-loc1=Aurora K3S2 ORZ005 ---
-loc2=Baker\\ City KBKE ORZ020 ---
-loc3=Brookings K4BK ORZ003 ---
-loc4=Burns KBNO ORZ022 ---
-loc5=Cascade KCZK ORZ015 ---
-loc6=Eugene KEUG ORZ006 ---
-loc7=Hillsboro KHIO ORZ004 ---
-loc8=Klamath\\ Falls KLMT ORZ012 ---
-loc9=Lakeview K4LW ORZ015 ---
-loc10=Meacham KMEH ORZ017 ---
-loc11=Medford KMFR ORZ008 ---
-loc12=Newport KONP ORZ002 ---
-loc13=North\\ Bend KOTH ORZ003 ---
-loc14=Ontario KONO ORZ021 ---
-loc15=Pendleton KPDT ORZ017 ---
-loc16=Portland KPDX ORZ004 ---
-loc17=Redmond KRDM ORZ014 ---
-loc18=Roseburg KRBG ORZ007 ---
-loc19=Salem KSLE ORZ005 ---
-loc20=Sexton\\ Summit KSXT ORZ008 ---
-loc21=The\\ Dalles KDLS ORZ010 ---
-loc22=Troutdale KTTD ORZ004 ---
-
-[US_RI]
-name=Rhode Island
-loc0=Block\\ Island KBID RIZ006 ---
-loc1=North\\ Kingstown KOQU RIZ006 ---
-loc2=Providence KPVD RIZ002 bos
-
-[US_SC]
-name=South Carolina
-loc0=Anderson KAND SCZ010 099
-loc1=Beaufort KNBC SCZ048 ---
-loc2=Charleston KCHS SCZ050 ---
-loc3=Columbia KCAE SCZ028 100
-loc4=Columbia-McEntire KMMT SCZ028 100
-loc5=Florence KFLO SCZ032 ---
-loc6=Greenville KGMU SCZ006 099
-loc7=Greenville-Spartanburg KGSP SCZ007 099
-loc8=Myrtle\\ Beach KMYR SCZ034 ---
-loc9=N\\ Myrtle\\ Beach KCRE SCZ034 ---
-loc10=Sumter KSSC SCZ031 ---
-loc11=Sumter\\ (2) K2PJ SCZ031 ---
-
-[US_TN]
-name=Tennessee
-loc0=Bristol KTRI TNZ017 ---
-loc1=Chattanooga KCHA TNZ099 ---
-loc2=Crossville KCSV TNZ066 ---
-loc3=Dyersburg KDYR TNZ019 ---
-loc4=Jackson KMKL TNZ052 ---
-loc5=Knoxville KTYS TNZ069 087
-loc6=Knoxville-Downtown KDKX TNZ069 087
-loc7=Memphis KMEM TNZ088 097
-loc8=Memphis-NAS KNQA TNZ088 097
-loc9=Nashville KBNA TNZ027 ---
-loc10=Smyrna KMQY TNZ062 ---
-
-[US_TX]
-name=Texas
-loc0=Abilene KABI TXZ127 ---
-loc1=Alice KALI TXZ241 ---
-loc2=Amarillo KAMA TXZ017 ---
-loc3=Angleton KLBX ------ ---
-loc4=Arlington KF54 TXZ119 ---
-loc5=Austin KAUS TXZ192 113
-loc6=Beaumont-Port\\ Arthur KBPT TXZ215 ---
-loc7=Bergstrom\\ AFB KBSM TXZ192 ---
-loc8=Borger KBGD TXZ008 ---
-loc9=Brownsville KBRO TXZ255 ---
-loc10=Burnet KBMQ ------ ---
-loc11=Childress KCDS TXZ026 ---
-loc12=College\\ Station KCLL TXZ196 ---
-loc13=Conroe KCXO ------ ---
-loc14=Corpus\\ Christi KCRP TXZ243 ---
-loc15=Corpus\\ Christi\\ NAS KNGP TXZ243 ---
-loc16=Corsicana KCRS TXZ146 ---
-loc17=Cotulla KCOT TXZ229 119
-loc18=Dalhart KDHT TXZ001 ---
-loc19=Dallas-Addison KADS TXZ119 ---
-loc20=Dallas-Fort\\ Worth KDFW TXZ119 ---
-loc21=Dallas-Love\\ Field KDAL TXZ119 ---
-loc22=Dallas-Redbird KRBD TXZ119 ---
-loc23=Del\\ Rio KDRT TXZ183 ---
-loc24=Denton KDTO ------ ---
-loc25=El\\ Paso KELP TXZ055 ---
-loc26=Fort\\ Stockton KFST TXZ075 ---
-loc27=Fort\\ Worth-Meacham KFTW TXZ118 ---
-loc28=Fort\\ Worth\\ NAS KNFW TXZ118 ---
-loc29=Fort\\ Worth-Alliance KAFW TXZ118 ---
-loc30=Galveston KGLS TXZ238 ---
-loc31=Georgetown KGTU TXZ173 ---
-loc32=Greenville KGVT ------ ---
-loc33=Guadalupe\\ Pass KGDP TXZ234 ---
-loc34=Harlingen KHRL TXZ255 ---
-loc35=Hondo KHDO TXZ204 ---
-loc36=Houston-Bush KIAH TXZ213 hou
-loc37=Houston-Hooks KDWH TXZ213 hou
-loc38=Houston-Ellington\\ Field KEFD TXZ213 hou
-loc39=Houston-Clover KT02 TXZ213 hou
-loc40=Houston-Hobby KHOU TXZ213 hou
-loc41=Huntsville KUTS ------ ---
-loc42=Junction KJCT TXZ169 ---
-loc43=Killeen KILE TXZ158 113
-loc44=Killeen-Ft\\ Hood KHLR TXZ158 113
-loc45=Killeen-Gray\\ AAF KGRK TXZ158 113
-loc46=Kingsville KNQI TXZ242 ---
-loc47=Laredo KLRD TXZ239 ---
-loc48=Laughlin KDLF ------ ---
-loc49=Longview KGGG TXZ138 ---
-loc50=Lubbock KLBB TXZ035 ---
-loc51=Lufkin KLFK TXZ165 ---
-loc52=Mc\\ Gregor KPWG ------ ---
-loc53=McAllen KMFE TXZ253 ---
-loc54=Midland KMAF TXZ062 ---
-loc55=Mineral\\ Wells KMWL TXZ117 ---
-loc56=Nacogdoches KOCH TXZ152 ---
-loc57=New\\ Braunfels K3R5 TXZ207 ---
-loc58=Palacios KPSX TXZ236 ---
-loc59=Paris KPRX TXZ095 ---
-loc60=Randolph\\ AFB KRND ------ ---
-loc61=Rockport KRKP TXZ245 ---
-loc62=Sabine\\ Pass KRPE ------ ---
-loc63=San\\ Angelo KSJT TXZ072 ---
-loc64=San\\ Antonio KSAT TXZ205 119
-loc65=San\\ Antonio-Kelly\\ AFB KSKF TXZ205 119
-loc66=San\\ Antonio-Stinson KSSF TXZ205 119
-loc67=Sanderson KP07 TXZ082 ---
-loc68=Sherman-Denison KF39 TXZ093 ---
-loc69=Temple KTPL TXZ158 ---
-loc70=Terrell KTRL ------ ---
-loc71=Tyler KTYR TXZ136 ---
-loc72=Victoria KVCT TXZ234 ---
-loc73=Waco KACT TXZ159 ---
-loc74=Wichita\\ Falls KSPS TXZ086 ---
-loc75=Wink KINK TXZ060 ---
-
-[US_VA]
-name=Virginia
-loc0=Abingdon KVJI VAZ008 ---
-loc1=Ashland KOFP VAZ063 ---
-loc2=Charlottesville KCHO VAZ037 ---
-loc3=Danville KDAN VAZ044 ---
-loc4=Dublin KPSK VAZ013 ---
-loc5=Farmville KFVX VAZ061 ---
-loc6=Fort\\ Belvoir KDAA VAZ053 ---
-loc7=Fort\\ Eustis KFAF ------ ---
-loc8=Franklin KFKN VAZ092 ---
-loc9=Galax-Hillsville KHLX VAZ016 ---
-loc10=Hampton KLFI VAZ094 ---
-loc11=Hot\\ Springs KHSP VAZ020 ---
-loc12=Langley\\ AFB KLFI VAZ094 ---
-loc13=Leesburg KJYO VAZ042 ---
-loc14=Lynchburg KLYH VAZ045 ---
-loc15=Manassas KHEF VAZ052 ---
-loc16=Marion-Wytheville KMKJ VAZ009 ---
-loc17=Martinsville KMTV VAZ043 ---
-loc18=Melfa KMFV VAZ099 ---
-loc19=Newport\\ News KPHF VAZ093 ---
-loc20=Norfolk KORF VAZ093 089
-loc21=Norfolk\\ NAS KNGU VAZ093 089
-loc22=Petersburg KPTB VAZ081 ---
-loc23=Quantico KNYG VAZ052 ---
-loc24=Richmond KRIC VAZ071 089
-loc25=Roanoke KROA VAZ022 ---
-loc26=Shannon KEZF ------ ---
-loc27=Staunton KSHD VAZ025 ---
-loc28=Virginia\\ Beach KNTU VAZ098 ---
-loc29=Virginia\\ Tech\\ Airport KBCB VAZ014 ---
-loc30=Wakefield KAKQ VAZ088 ---
-loc31=Wallops\\ Island KWAL ------ ---
-loc32=Waynesboro KSHD VAZ025 ---
-loc33=Winchester KOKV VAZ028 ---
-loc34=Wise KLNP VAZ002 ---
-
-[US_WV]
-name=West Virginia
-loc0=Beckley KBKW WVZ035 ---
-loc1=Bluefield KBLF WVZ042 ---
-loc2=Charleston KCRW WVZ015 074
-loc3=Clarksburg KCKB WVZ031 ---
-loc4=Elkins KEKN WVZ047 ---
-loc5=Huntington KHTS WVZ006 ---
-loc6=Lewisburg KLWB WVZ045 ---
-loc7=Martinsburg KMRB WVZ052 ---
-loc8=Morgantown KMGW WVZ022 075
-loc9=Parkersburg KPKB WVZ009 ---
-loc10=Wheeling KHLG WVZ004 ---
-loc11=White\\ Sulphur KSSU WVZ045 ---
-
-[US_WI]
-name=Wisconsin
-loc0=Antigo KAIG WIZ019 ---
-loc1=Appleton KATW WIZ038 ---
-loc2=Eau\\ Claire KEAU WIZ028 ---
-loc3=Fond\\ Du\\ Lac KFLD WIZ051 ---
-loc4=Green\\ Bay KGRB WIZ039 ---
-loc5=Hayward KHYR WIZ008 ---
-loc6=Janesville KJVL WIZ069 ---
-loc7=Kenosha KENW WIZ072 ---
-loc8=La\\ Crosse KLSE WIZ041 ---
-loc9=Lone\\ Rock KLNR WIZ055 ---
-loc10=Madison KMSN WIZ063 045
-loc11=Manitowoc KMTW WIZ050 ---
-loc12=Marshfield KMFI WIZ035 ---
-loc13=Milwaukee KMKE WIZ066 045
-loc14=Milwaukee-Timmerman KMWC WIZ066 045
-loc15=Minocqua KARV WIZ010 ---
-loc16=Mosinee KCWA WIZ030 ---
-loc17=Oshkosh KOSH WIZ048 ---
-loc18=Phillips KPBH WIZ009 ---
-loc19=Rhinelander KRHI WIZ010 ---
-loc20=Sheboygan KSBM WIZ052 045
-loc21=Sturgeon\\ Bay KSUE WIZ022 ---
-loc22=Superior KSUW WIZ001 ---
-loc23=Volk\\ Field KVOK ------ ---
-loc24=Waukesha KUES WIZ065 ---
-loc25=Wausau KAUW WIZ030 ---
-loc26=Wisconsin\\ Rapids KISW WIZ035 ---
-
-
-[US_MA]
-name=Massachusetts
-loc0=Ashburnam K9B4 ------ ---
-loc1=Ashfield K2B5 ------ ---
-loc2=Bedford KBED MAZ005 ---
-loc3=Beverly KBVY MAZ007 ---
-loc4=Boston KBOS MAZ015 bos
-loc5=Chatham KCQX MAZ022 bos
-loc6=Chicopee\\ Falls KCEF ------ ---
-loc7=Falmouth-Otis\\ AFB KFMH MAZ022 ---
-loc8=Fitchburg KFIT ------ ---
-loc9=Hyannis KHYA MAZ022 ---
-loc10=Lawrence KLWM MAZ007 ---
-loc11=Marthas\\ Vineyard KMVY MAZ023 ---
-loc12=Nantucket KACK MAZ024 ---
-loc13=New\\ Bedford KEWB MAZ017 ---
-loc14=North\\ Adams K2B6 MAZ001 ---
-loc15=Norwood KOWD MAZ013 ---
-loc16=Orange KORE ------ ---
-loc17=Plymouth KPYM MAZ018 ---
-loc18=Provincetown KPVC ------ ---
-loc19=Taunton K9B0 ------ ---
-loc20=Westfield KBAF MAZ011 ---
-loc21=Worcester KORH MAZ012 bos
-
-[US_NY]
-name=New York
-loc0=Albany KALB NYZ052 048
-loc1=Binghamton KBGM NYZ056 ---
-loc2=Buffalo KBUF NYZ010 047
-loc3=Elmira KELM NYZ024 ---
-loc4=Farmingdale KFRG NYZ077 ---
-loc5=Fort\\ Drum KGTB NYZ007 ---
-loc6=Glens\\ Falls KGFL NYZ042 ---
-loc7=Griffiss\\ AFB KRME ------ ---
-loc8=Islip KISP NYZ080 ---
-loc9=Ithaca KITH NYZ025 048
-loc10=Jamestown KJHW NYZ019 047
-loc11=Massena KMSS NYZ026 ---
-loc12=Montgomery KMGJ NYZ067 ---
-loc13=Monticello KMSV NYZ062 ---
-loc14=New\\ York-JFK\\ Arpt KJFK NYZ076 lga
-loc15=New\\ York-La\\ Guardia KLGA NYZ076 lga
-loc16=Newburgh KSWF NYZ067 ---
-loc17=Niagara\\ Falls KIAG NYZ001 047
-loc18=Ogdensburg KOGS NYZ026 ---
-loc19=Penn\\ Yan KPEO ------ ---
-loc20=Plattsburg KPBG NYZ031 ---
-loc21=Poughkeepsie KPOU NYZ065 ---
-loc22=Rochester KROC NYZ003 047
-loc23=Saranac\\ Lake KSLK NYZ027 ---
-loc24=Schenectady KSCH NYZ049 ---
-loc25=Syracuse KSYR NYZ018 048
-loc26=Utica KUCA NYZ037 ---
-loc27=Watertown KART NYZ007 ---
-loc28=Westhampton KFOK NYZ080 ---
-loc29=White\\ Plains KHPN NYZ070 ---
-
-[US_WA]
-name=Washington
-loc0=Bellingham KBLI WAZ002 ---
-loc1=Bremerton KPWT WAZ010 ---
-loc2=Burlington K75S WAZ005 ---
-loc3=Colville K63S WAZ035 ---
-loc4=Ephrata KEPH WAZ033 ---
-loc5=Everett KPAE WAZ006 sea
-loc6=Fairchild KSKA ------ ---
-loc7=Fort\\ Lewis KGRF WAZ008 ---
-loc8=Friday\\ Harbor KFHR WAZ001 ---
-loc9=Hoquiam KHQM WAZ016 ---
-loc10=Moses\\ Lake KMWH WAZ033 ---
-loc11=Oak\\ Harbor K76S WAZ009 ---
-loc12=Olympia KOLM WAZ008 sea
-loc13=Omak K4OM WAZ038 ---
-loc14=Pasco KPSC WAZ028 ---
-loc15=Port\\ Angeles KCLM WAZ013 ---
-loc16=Pullman KPUW WAZ032 ---
-loc17=Quillayute KUIL ------ ---
-loc18=Renton KRNT WAZ007 ---
-loc19=Seattle KSEA WAZ007 sea
-loc20=Seattle-Boeing KBFI WAZ007 sea
-loc21=Shelton KSHN WAZ010 ---
-loc22=Spokane KGEG WAZ034 002
-loc23=Spokane-Parkwater KSFF WAZ034 002
-loc24=Stampede\\ Pass KSMP ------ ---
-loc25=Tacoma KTIW WAZ007 sea
-loc26=Tacoma-Lakewood KTCM WAZ007 sea
-loc27=Toledo KTDO WAZ020 ---
-loc28=Walla\\ Walla KALW WAZ029 ---
-loc29=Wenatchee KEAT WAZ038 ---
-loc30=Whidbey\\ Island KNUW WAZ009 ---
-loc31=Yakima KYKM WAZ025 ---
-
-[CA]
-name=Canada
-states=AB BC MB NB NF NS NT ON QC SK YK
-
-[CA_AB]
-name=Alberta
-loc0=Calgary CYYC ------ ---
-loc1=Edmonton CYEG ------ ---
-loc2=Edmonton/Villeneuve CZVL ------ ---
-
-[CA_BC]
-name=British Columbia
-loc0=Abbotsford CYXX ------ ---
-loc1=Comox CYQQ ------ ---
-loc2=Port\\ Hardy CYZT ------ ---
-loc3=Smithers CYYD ------ ---
-loc4=Vancouver CYVR ------ ---
-loc5=Victoria CYYJ ------ ---
-
-[CA_MB]
-name=Manitoba
-loc0=Churchill CYYQ ------ ---
-loc1=Winnipeg CYWG ------ ---
-
-[CA_NB]
-name=New Brunswick
-loc0=Chatham CYCH ------ ---
-loc1=Fredericton CYFC ------ ---
-loc2=Moncton CYQM ------ ---
-
-[CA_NF]
-name=Newfoundland
-loc0=Churchill\\ Falls KZUM ------ ---
-loc1=Gander CYQX ------ ---
-loc2=Goose\\ Bay CYYR ------ ---
-loc3=Saint\\ Anthony CYAY ------ ---
-loc4=St.\\ John's CYYT ------ ---
-loc5=Stephenville CYJT ------ ---
-
-[CA_NS]
-name=Nova Scotia
-loc0=Greenwood CYZX ------ ---
-loc1=Halifax CYHZ ------ ---
-loc2=Shearwater CYAW ------ ---
-loc3=Sydney CYQY ------ ---
-
-[CA_NT]
-name=Northwest Territories
-loc0=Iqaluit CYFB ------ ---
-loc1=Yellowknife CYZF ------ ---
-
-[CA_ON]
-name=Ontario
-loc0=Ottawa CYOW ------ ---
-loc1=Toronto CYYZ ------ 047
-loc2=Trenton CYTR ------ ---
-loc3=Windsor CYQG ------ ---
-
-[CA_QC]
-name=Quebec
-loc0=Bagotville CYBG ------ ---
-loc1=Gatineau CYND ------ ---
-loc2=La\\ Grande CYGL ------ ---
-loc3=Montreal\\ Saint-Hubert CYHU ------ ---
-loc4=Montreal\\ Mirabel CYMX ------ ---
-loc5=Montreal\\ Dorval CYUL ------ ---
-loc6=Quebec\\ City CYQB ------ ---
-loc7=Sept-Iles CYZV ------ ---
-
-[CA_SK]
-name=Saskatchewan
-loc0=Nipawin CYBU ------ ---
-loc1=Regina CYQR ------ ---
-loc2=Saskatoon CYXE ------ ---
-loc3=Swift\\ Current CYYN ------ ---
-
-[CA_YK]
-name=Yukon
-loc0=Shingle\\ Point CYUA ------ ---
-
-[MX]
-name=Mexico
-states=MX
-
-[MX_MX]
-name=Mexico
-loc0=Acapulco MMAA ------ ---
-loc1=Aeropuerto\\ del\\ Norte MMAN ------ ---
-loc2=Aguascaliantes MMAS ------ ---
-loc3=Bahias\\ de\\ Huatulco MMBT ------ ---
-loc4=Campeche MMCP ------ ---
-loc5=Cancun MMUN ------ ---
-loc6=Chetumal MMCM ------ ---
-loc7=Chihuahua MMCU ------ ---
-loc8=Ciudad\\ del\\ Carmen MMCE ------ ---
-loc9=Ciudad\\ Juarez MMCS ------ ---
-loc10=Ciudad\\ Obregon MMCN ------ ---
-loc11=Ciudad\\ Victoria MMCV ------ ---
-loc12=Colima MMIA ------ ---
-loc13=Cozumel MMCZ ------ ---
-loc14=Cuernavaca MMCB ------ ---
-loc15=Culiacan MMCL ------ ---
-loc16=Del\\ Bajio MMLO ------ ---
-loc17=Durango MMDO ------ ---
-loc18=Guadalajara MMGL ------ ---
-loc19=Guaymas MMGM ------ ---
-loc20=Hermosillo MMHO ------ ---
-loc21=Ixtapa MMZH ------ ---
-loc22=La\\ Paz MMLP ------ ---
-loc23=Los\\ Mochis MMLM ------ ---
-loc24=Manzanillo MMZO ------ ---
-loc25=Matamoros MMMA ------ ---
-loc26=Mazatlan MMMZ ------ ---
-loc27=Merida MMMD ------ ---
-loc28=Mexicali MMML ------ ---
-loc29=Mexico MMMX ------ ---
-loc30=Minatitlan MMMT ------ ---
-loc31=Monclova MMMV ------ ---
-loc32=Morelia MMMM ------ ---
-loc33=Monterrey MMMY ------ ---
-loc34=Nuevo\\ Laredo MMNL ------ ---
-loc35=Oaxaca MMOX ------ ---
-loc36=Piedras\\ Negras MMPG ------ ---
-loc37=Poza\\ Rica MMPA ------ ---
-loc38=Puebla MMPB ------ ---
-loc39=Puerto\\ Vallarta MMPR ------ ---
-loc40=Puerto\\ Escondido MMPS ------ ---
-loc41=Queretaro MMQT ------ ---
-loc42=Reynosa MMRX ------ ---
-loc43=Saltillo MMIO ------ ---
-loc44=San\\ Jose\\ del\\ Cabo MMSD ------ ---
-loc45=San\\ Luis\\ Potosi MMSP ------ ---
-loc46=Tampico MMTM ------ ---
-loc47=Tapachula MMTP ------ ---
-loc48=Tepic MMEP ------ ---
-loc49=Tijuana MMTJ ------ ---
-loc50=Toluca MMTO ------ ---
-loc51=Torreon MMTC ------ ---
-loc52=Tulancingo MMTL ------ ---
-loc53=Tuxtla\\ Gutierrez MMTG ------ ---
-loc54=Uruapan MMPN ------ ---
-loc55=Veracruz MMVR ------ ---
-loc56=Villahermosa MMVA ------ ---
-loc57=Zacatecas MMZC ------ ---
-
-[EU]
-name=Europe
-states=AB OS BE BA BG CZ HR CY DK EE FI FR MK DE GI GR HU IE IS IT LV LU MT MD NL NO PL PT RO RU SK SI SP SE CH TR UA UK YU
-
-[EU_AB]
-name=Albania
-loc0=Tirana LATI ------ ---
-
-[EU_OS]
-name=Austria
-loc0=Voslau LOAV ------ ---
-loc1=Hohenems LOIH ------ ---
-loc2=Graz LOWG ------ ---
-loc3=Innsbruck LOWI ------ ---
-loc4=Klagenfurt LOWK ------ ---
-loc5=Linz LOWL ------ ---
-loc6=Salzburg LOWS ------ ---
-loc7=Wien LOWW ------ ---
-loc8=Zell\\ Am\\ See LOWZ ------ ---
-
-[EU_BE]
-name=Belgium
-loc0=Antwerpen/Deurne EBAW ------ ---
-loc1=Beauvechain EBBE ------ ---
-loc2=Brasschaat EBBT ------ ---
-loc3=Brussels-National\\ Airport EBBR ------ ---
-loc4=Charleroi-Brussels\\ South EBCI ------ ---
-loc5=Chievres EBCV ------ ---
-loc6=Elsenborn EBLB ------ ---
-loc7=Florennes EBFS ------ ---
-loc8=Goetsenhoven EBTN ------ ---
-loc9=Kleine\\ Brogel EBBL ------ ---
-loc10=Koksijde EBFN ------ ---
-loc11=Liege EBLG ------ ---
-loc12=Oostende EBOS ------ ---
-loc13=Schaffen EBDT ------ ---
-loc14=Spa/La\\ Sauveniere EBSP ------ ---
-
-[EU_BA]
-name=Bosnia-Herzegovina
-loc0=Sarajevo LQSA ------ ---
-
-[EU_BG]
-name=Bulgaria
-loc0=Burgas LBBG ------ ---
-loc1=Plovdiv LBPD ------ ---
-loc2=Sofia LBSF ------ ---
-loc3=Varna LBWN ------ ---
-
-[EU_CZ]
-name=Czech Republic
-loc0=Brno LKTB ------ ---
-loc1=Ostrava LKMT ------ ---
-loc2=Praha LKPR ------ ---
-
-[EU_HR]
-name=Croatia
-loc0=Dubrovnik LDDU ------ ---
-loc1=Pula LDPL ------ ---
-loc2=Rijeka LDRI ------ ---
-loc3=Split LDSP ------ ---
-loc4=Zadar LDZD ------ ---
-loc5=Zagreb LDZA ------ ---
-
-[EU_DK]
-name=Denmark
-loc0=Aarhus EKAH ------ ---
-loc1=Billund EKBI ------ ---
-loc2=Esbjerg EKEB ------ ---
-loc3=Karup EKKA ------ ---
-loc4=Kobenhavn/Kastrup EKCH ------ ---
-loc5=Kobenhavn/Roskilde EKRK ------ ---
-loc6=Lolland\\ Falster EKMB ------ ---
-loc7=Odense EKOD ------ ---
-loc8=Bornholm EKRN ------ ---
-loc9=Sonderborg EKSB ------ ---
-loc10=Sindal EKSN ------ ---
-loc11=Vojens/Skrydstrup EKSP ------ ---
-loc12=Skive EKSV ------ ---
-loc13=Thisted EKTS ------ ---
-loc14=Vandel EKVA ------ ---
-loc15=Kolding/Vandrup EKVD ------ ---
-loc16=Vagar EKVG ------ ---
-loc17=Stauning EKVJ ------ ---
-loc18=Vaerlose EKVL ------ ---
-loc19=Alborg EKYT ------ ---
-
-[EU_EE]
-name=Estonia
-loc0=Tallinn EETN ------ ---
-
-[EU_GI]
-name=Gibraltar
-loc0=Gibraltar LXGB ------ ---
-
-[EU_IS]
-name=Iceland
-loc0=Egilsstadir BIEG ------ ---
-loc1=Keflavik BIKF ------ ---
-loc2=Reykjavik BIRK ------ ---
-
-[EU_LA]
-name=Latvia
-loc0=Riga EVRA ------ ---
-
-[EU_LT]
-name=Lithuania
-loc0=Vilnius EYVI ------ ---
-
-[EU_LU]
-name=Luxembourg
-loc0=Luxembourg ELLX ------ ---
-
-[EU_MK]
-name=FYR Macedonia
-loc0=Ohrid LWOH ------ ---
-loc1=Skopje LWSK ------ ---
-
-[EU_MT]
-name=Malta
-loc0=Luqa LMML ------ ---
-
-[EU_MD]
-name=Moldova
-loc0=Kishineu LUKK ------ ---
-
-[EU_NO]
-name=Norway
-loc0=Alesund ENAL ------ ---
-loc1=Andoya ENAN ------ ---
-loc2=Alta ENAT ------ ---
-loc3=Forde/Bringeland ENBL ------ ---
-loc4=Bronnoysund ENBN ------ ---
-loc5=Bodo ENBO ------ ---
-loc6=Bergen ENBR ------ ---
-loc7=Berlevag ENBV ------ ---
-loc8=Kristiansand/Kjevik ENCN ------ ---
-loc9=Dagali ENDI ------ ---
-loc10=Bardufoss ENDU ------ ---
-loc11=Ekofisk ENEK ------ ---
-loc12=Harstad/Narvik/Evenes ENEV ------ ---
-loc13=Fagernes ENFG ------ ---
-loc14=Floro ENFL ------ ---
-loc15=Frigg ENFR ------ ---
-loc16=Gullfax\\ C ENGC ------ ---
-loc17=Oslo/Gardermoen ENGM ------ ---
-loc18=Haugesund ENHD ------ ---
-loc19=Hammerfest ENHF ------ ---
-loc20=Honningsvag ENHV ------ ---
-loc21=Kristiansund/Kvernberget ENKB ------ ---
-loc22=Kirkenes ENKR ------ ---
-loc23=Lista ENLI ------ ---
-loc24=Leknes ENLK ------ ---
-loc25=Mehamn ENMH ------ ---
-loc26=Molde ENML ------ ---
-loc27=Mosjoen ENMS ------ ---
-loc28=Banak ENNA ------ ---
-loc29=Narvik ENNK ------ ---
-loc30=Namsos ENNM ------ ---
-loc31=Notodden ENNO ------ ---
-loc32=Oseberg\\ A ENOA ------ ---
-loc33=Orland ENOL ------ ---
-loc34=Orsta-Volda ENOV ------ ---
-loc35=Mo\\ I\\ Rana ENRA ------ ---
-loc36=Rorvik/Ryum ENRM ------ ---
-loc37=Roros ENRO ------ ---
-loc38=Rost ENRS ------ ---
-loc39=Rygge ENRY ------ ---
-loc40=Svalbard ENSB ------ ---
-loc41=Sandane ENSD ------ ---
-loc42=Sogndal ENSG ------ ---
-loc43=Svolvaer/Helle ENSH ------ ---
-loc44=Stokmarknes/Skagen ENSK ------ ---
-loc45=Skien/Geiteryggen ENSN ------ ---
-loc46=Stord/Sorstokken ENSO ------ ---
-loc47=Sorkjosen ENSR ------ ---
-loc48=Sandnessjoen/Stokka ENST ------ ---
-loc49=Tromso/Langnes ENTC ------ ---
-loc50=Torp ENTO ------ ---
-loc51=Trondheim/Vaernes ENVA ------ ---
-loc52=Vadso ENVD ------ ---
-loc53=Stavanger/Sola ENZV ------ ---
-
-[EU_PL]
-name=Poland
-loc0=Gdansk EPGD ------ ---
-loc1=Krakow EPKK ------ ---
-loc2=Katowice EPKT ------ ---
-loc3=Poznan EPPO ------ ---
-loc4=Rzeszow EPRZ ------ ---
-loc5=Szczecin EPSC ------ ---
-loc6=Warszawa EPWA ------ ---
-
-[EU_PT]
-name=Portugal
-loc0=Beja LPBJ ------ ---
-loc1=Faro LPFR ------ ---
-loc2=Funchal LPFU ------ ---
-loc3=Lajes LPLA ------ ---
-loc4=Lisboa LPPT ------ ---
-loc5=Porto LPPR ------ ---
-loc6=Porto\\ Santo LPPS ------ ---
-loc7=Santa\\ Maria LPAZ ------ ---
-
-[EU_RO]
-name=Romania
-loc0=Arad LRAR ------ ---
-loc1=Bucuresti LRBS ------ ---
-loc2=Bucuresti-Otopeni LROP ------ ---
-loc3=Iasi LRIA ------ ---
-loc4=Kogalniceanu LRCK ------ ---
-loc5=Timisoara LRTR ------ ---
-loc6=Tirgu\\ Mures LRTM ------ ---
-loc7=Tulcea LRTC ------ ---
-
-[EU_RU]
-name=Russia
-loc0=Abakan UNAA ------ ---
-loc1=Anadyr UHMA ------ ---
-loc2=Anapa URKA ------ ---
-loc3=Arkhangelsk ULAA ------ ---
-loc4=Astrakhan URWA ------ ---
-loc5=Barnaul UNBB ------ ---
-loc6=Belgorod UUOB ------ ---
-loc7=Blagoveschensk UHBB ------ ---
-loc8=Bratsk UIBB ------ ---
-loc9=Bryansk UUBP ------ ---
-loc10=Cheboksary UWKS ------ ---
-loc11=Chelyabinsk USCC ------ ---
-loc12=Chita UIAA ------ ---
-loc13=Kliningrad UMKK ------ ---
-loc14=Kazan UWKD ------ ---
-loc15=Khabarovsk UHHH ------ ---
-loc16=Kogalym USRK ------ ---
-loc17=Krasnodar URKK ------ ---
-loc18=Krasnoyarsk UNKL ------ ---
-loc19=Magadan UHMM ------ ---
-loc20=Makhachkala URML ------ ---
-loc21=Mineralnye\\ Vody URMM ------ ---
-loc22=Moscow\\ Domodedovo UUDD ------ ---
-loc23=Moscow\\ Sheremetyevo UUEE ------ ---
-loc24=Murmansk ULMM ------ ---
-loc25=Nalchik URMN ------ ---
-loc26=Nizhny\\ Novgorod UWGG ------ ---
-loc27=Novosibirsk UNNT ------ ---
-loc28=Omsk UNOO ------ ---
-loc29=Orenburg UWOO ------ ---
-loc30=Perm USPP ------ ---
-loc31=Petropavlovsk-Kamchatsky UHPP ------ ---
-loc32=Petrozavodsk ULPB ------ ---
-loc33=Pskov ULOO ------ ---
-loc34=Raduzhny USNR ------ ---
-loc35=Rostov-Na-Donu URRR ------ ---
-loc36=Samara UWWW ------ ---
-loc37=Sankt-Peterburg ULLI ------ ---
-loc38=Saratov UWSS ------ ---
-loc39=Sochi URSS ------ ---
-loc40=Stavropol URMT ------ ---
-loc41=Syktyvkar UUYY ------ ---
-loc42=Tyumen USTR ------ ---
-loc43=Ufa UWUU ------ ---
-loc44=Ulan-Ude UIUU ------ ---
-loc45=Ulyanovsk UWLW ------ ---
-loc46=Vladikavkaz URMO ------ ---
-loc47=Vladivostok UHWW ------ ---
-loc48=Volgograd URWW ------ ---
-loc49=Voronezh UUOO ------ ---
-loc50=Yakutsk UEEE ------ ---
-loc51=Yekaterinburg USSS ------ ---
-loc52=Yuzhno-Sakhalinsk UHSS ------ ---
-
-[EU_UA]
-name=Ukraine
-loc0=Dnipropetrovsk UKDD ------ ---
-loc1=Donetsk UKCC ------ ---
-loc2=Ivano-Frankivsk UKLI ------ ---
-loc3=Kharkiv UKHH ------ ---
-loc4=Kyiv/Boryspil UKBB ------ ---
-loc5=Kyiv/Zhulyany UKKK ------ ---
-loc6=Kryviy\\ Rig/Lozovatka UKDR ------ ---
-loc7=Lviv UKLL ------ ---
-loc8=Odesa UKOO ------ ---
-loc9=Rivne UKLR ------ ---
-loc10=Sympheropol UKFF ------ ---
-loc11=Uzhgorod UKLU ------ ---
-
-[EU_SK]
-name=Slovakia
-loc0=Bratislava LZIB ------ ---
-loc1=Poprad LZTT ------ ---
-
-[EU_SI]
-name=Slovenia
-loc0=Ljubljana LJLJ ------ ---
-loc1=Maribor LJMB ------ ---
-loc2=Portoroz LJPZ ------ ---
-
-[EU_SE]
-name=Sweden
-loc0=Borlange ESSD ------ --
-loc1=Gavle\\ Sandviken ESSK ------ --
-loc2=Gallivare ESNG ------ --
-loc3=Goteborg\\ (Landvetter) ESGG ------ --
-loc4=Goteborg\\ (Save) ESGP ------ --
-loc5=Hagshult ESMV ------ --
-loc6=Halmstad\\ (Swedish\\ Air\\ Force\\ Base) ESMT ------ --
-loc7=Hultsfred\\ (Swedish\\ Air\\ Force\\ Base) ESSF ------ --
-loc8=Jonkoping ESGJ ------ ---
-loc9=Kiruna ESNQ ------ ---
-loc10=Linkoping\\ (Malmen) ESCF ------ --
-loc11=Linkoping\\ (Saab) ESSL ------ --
-loc12=Lulea\\ (Kallax) ESPA ------ --
-loc13=Malmo\\ (Sturup) ESMS ------ --
-loc14=Norrkoping ESSP ------ ---
-loc15=Ronneby ESDF ------ ---
-loc16=Stockholm\\ (Arlanda) ESSA ------ --
-loc17=Stockholm\\ (Bromma) ESSB ------ --
-loc18=Sundsvall-Harnosand ESNN ------ --
-loc19=Umea ESNU ------ ---
-loc20=Vasteras ESOW ------ ---
-loc21=Vaxjo ESMX ------ ---
-loc22=Visby ESSV ------ --
-loc23=Angelholm ESDB ------ --
-loc24=Ornskoldsvik ESNO ------ --
-loc25=Ostersund\\ (Froson) ESPC ------ --
-
-[EU_CH]
-name=Switzerland
-loc0=Bern LSZB ------ ---
-loc1=Geneve LSGG ------ ---
-loc2=Lugano LSZA ------ ---
-loc3=Zurich LSZH ------ ---
-
-[EU_TR]
-name=Turkey
-loc0=Adana LTAF ------ ---
-loc1=Adana/Incirlik LTAG ------ ---
-loc2=Afyon LTAH ------ ---
-loc3=Amasya LTAP ------ ---
-loc4=Ankara/Esenboga LTAC ------ ---
-loc5=Ankara/Etimesgut LTAD ------ ---
-loc6=Antalya LTAI ------ ---
-loc7=Balikesir LTBF ------ ---
-loc8=Balikesir/Bandirma LTBG ------ ---
-loc9=Batman LTCJ ------ ---
-loc10=Bursa LTBE ------ ---
-loc11=Diyarbakir LTCC ------ ---
-loc12=Elazig LTCA ------ ---
-loc13=Erzurum LTCE ------ ---
-loc14=Eskisehir LTBI ------ ---
-loc15=Gaziantep LTAJ ------ ---
-loc16=Istanbul LTBA ------ ---
-loc17=Izmir/Adnan\\ Menderes LTBJ ------ ---
-loc18=Izmir/Cigli LTBL ------ ---
-loc19=Izmit LTBQ ------ ---
-loc20=Kayseri LTAU ------ ---
-loc21=Konya LTAN ------ ---
-loc22=Malatya LTAT ------ ---
-loc23=Manisa LTBT ------ ---
-loc24=Mugla/Dalaman LTBS ------ ---
-loc25=Mus LTCK ------ ---
-loc26=Samsun LTAQ ------ ---
-loc27=Sanliurfa LTCH ------ ---
-loc28=Sivas LTAR ------ ---
-loc29=Sivrihisar LTAV ------ ---
-loc30=Trabzon LTCG ------ ---
-loc31=Van LTCI ------ ---
-
-[EU_CY]
-name=Cyprus
-loc0=Akrotiri LCRA ------ ---
-loc1=Ercan LCEN ------ ---
-loc2=Larnaka LCLK ------ ---
-loc3=Paphos LCPH ------ ---
-
-[EU_FI]
-name=Finland
-loc0=Helsinki-Malmi EFHF ------ ---
-loc1=Helsinki-Vantaa EFHK ------ ---
-loc2=Ivalo EFIV ------ ---
-loc3=Jyvaskyla EFJY ------ ---
-loc4=Kemi EFKE ------ ---
-loc5=Kruunupyy EFKK ------ ---
-loc6=Kuopio EFKU ------ ---
-loc7=Mariehamn EFMA ------ ---
-loc8=Oulu EFOU ------ ---
-loc9=Pori EFPO ------ ---
-loc10=Rovaniemi EFRO ------ ---
-loc11=Tampere EFTP ------ ---
-loc12=Turku EFTU ------ ---
-loc13=Vaasa EFVA ------ ---
-
-[EU_FR]
-name=France
-loc0=Agen LFBA ------ ---
-loc1=Ajaccio/Campo\\ dell'Oro LFKJ ------ ---
-loc2=Bale-Mulhouse LFSB ------ ---
-loc3=Bastia LFKB ------ ---
-loc4=Beauvais-Tille LFOB ------ ---
-loc5=Biarritz-Bayonne LFBZ ------ ---
-loc6=Bordeaux LFBD ------ ---
-loc7=Bourges LFLD ------ ---
-loc8=Brest LFRB ------ ---
-loc9=Caen-Carpiquet LFRK ------ ---
-loc10=Calvi-Ste-Catherine LFKC ------ ---
-loc11=Cannes-Mandelieu LFMD ------ ---
-loc12=Cazaux LFBC ------ ---
-loc13=Chambery LFLB ------ ---
-loc14=Cherbourg LFRC ------ ---
-loc15=Clermont-Ferrand LFLC ------ ---
-loc16=Colmar-Meyenheim LFSC ------ ---
-loc17=Deauville-Saint-Gatien LFRG ------ ---
-loc18=Dijon LFSD ------ ---
-loc19=Dinard LFRD ------ ---
-loc20=Dole LFGJ ------ ---
-loc21=Evreux-Fauville LFOE ------ ---
-loc22=Figari LFKF ------ ---
-loc23=Grenoble-Saint-Geoirs LFLS ------ ---
-loc24=Hyeres-Le\\ Palyvestre LFTH ------ ---
-loc25=Lannion LFRO ------ ---
-loc26=Le\\ Havre-Octeville LFOH ------ ---
-loc27=Le\\ Mans LFRM ------ ---
-loc28=Le\\ Touquet LFAT ------ ---
-loc29=Lille-Lesquin LFQQ ------ ---
-loc30=Limoges LFBL ------ ---
-loc31=Lorient-Lann-Bihoue LFRH ------ ---
-loc32=Lyon-Bron LFLY ------ ---
-loc33=Lyon-Satolas LFLL ------ ---
-loc34=Luxeuil LFSX ------ ---
-loc35=Marseille-Provence LFML ------ ---
-loc36=Metz-Frescaty LFSF ------ ---
-loc37=Monpellier-Mediterrannee LFMT ------ ---
-loc38=Mont-de-Marsan LFBM ------ ---
-loc39=Nancy-Essey LFSN ------ ---
-loc40=Nancy-Ochey LFSO ------ ---
-loc41=Nantes\\ Adlantique LFRS ------ ---
-loc42=Nice-Cote\\ d'Azur LFMN ------ ---
-loc43=Nimes-Garons LFTW ------ ---
-loc44=Paris/Charles\\ De\\ Gaulle LFPG ------ ---
-loc45=Paris/Le\\ Bourget LFPB ------ ---
-loc46=Paris/Orly LFPO ------ ---
-loc47=Pau/Pyrenees LFBP ------ ---
-loc48=Perpignan-Rivesaltes LFMP ------ ---
-loc49=Poitiers LFBI ------ ---
-loc50=Quimper LFRQ ------ ---
-loc51=Reims-Champagne LFSR ------ ---
-loc52=Rennes LFRN ------ ---
-loc53=Rouen-Valle\\ de\\ Seine LFOP ------ ---
-loc54=Saint-Brieuc-Armor LFRT ------ ---
-loc55=Saint-Dizier-Robinson LFSI ------ ---
-loc56=Saint-Etienne-Boutheon LFMH ------ ---
-loc57=Saint-Nazaire-Montoir LFRZ ------ ---
-loc58=Strasbourg LFST ------ ---
-loc59=Tarbes LFBT ------ ---
-loc60=Toul-Rosieres LFSL ------ ---
-loc61=Toulouse LFBO ------ ---
-loc62=Tours-St-Symphorien LFOT ------ ---
-loc63=Toussus-Le\\ Noble LFPN ------ ---
-loc64=Troyes/Barberey LFQB ------ ---
-loc65=Vichy-Charmeil LFLV ------ ---
-loc66=Villacoublay LFPV ------ ---
-
-[EU_DE]
-name=Germany
-loc0=Augsburg EDMA ------ ---
-loc1=Bayreuth EDQD ------ ---
-loc2=Berlin-Tegel EDDT ------ ---
-loc3=Berlin-Tempelhof EDDI ------ ---
-loc4=Braunschweig EDVE ------ ---
-loc5=Bremen EDDW ------ ---
-loc6=Dortmund-Wickede EDLW ------ ---
-loc7=Dusseldorf EDDL ------ ---
-loc8=Frankfurt/Main EDDF ------ ---
-loc9=Friedrichshafen EDNY ------ ---
-loc10=Hamburg EDDH ------ ---
-loc11=Hamburg-Finkenwerder EDHI ------ ---
-loc12=Hannover EDDV ------ ---
-loc13=Hof EDQM ------ ---
-loc14=Kassel-Calden EDVK ------ ---
-loc15=Koln/Bonn EDDK ------ ---
-loc16=Lubeck-Blankensee EDHL ------ ---
-loc17=Monchengladbach EDLN ------ ---
-loc18=Munchen EDDM ------ ---
-loc19=Munster/Osnabruck EDDG ------ ---
-loc20=Nurnberg EDDN ------ ---
-loc21=Oberpfaffenhofen EDMO ------ ---
-loc22=Paderborn-Haxterberg EDLP ------ ---
-loc23=Saarbrucken EDDR ------ ---
-loc24=Stuttgart EDDS ------ ---
-loc25=Westerland EDXW ------ ---
-loc26=Dresden-Klotzsche EDDC ------ ---
-loc27=Leipzig-Schkeuditz EDDP ------ ---
-
-[EU_GR]
-name=Greece
-loc0=Andravida LGAD ------ ---
-loc1=Alexandroupolis LGAL ------ ---
-loc2=Araxos LGRX ------ ---
-loc3=Athinai LGAT ------ ---
-loc4=Chania LGSA ------ ---
-loc5=Elefsis LGEL ------ ---
-loc6=Iraklion LGIR ------ ---
-loc7=Kalamata LGKL ------ ---
-loc8=Kavala LGKV ------ ---
-loc9=Kefallinia LGKF ------ ---
-loc10=Kerkira LGKR ------ ---
-loc11=Kos LGKO ------ ---
-loc12=Kozani LGKZ ------ ---
-loc13=Limnos LGLM ------ ---
-loc14=Mitilini LGMT ------ ---
-loc15=Mykonos LGMK ------ ---
-loc16=Preveza LGPZ ------ ---
-loc17=Rodos LGRP ------ ---
-loc18=Samos LGSM ------ ---
-loc19=Santorini LGSR ------ ---
-loc20=Skiathos LGSK ------ ---
-loc21=Thessaloniki LGTS ------ ---
-loc22=Zakinthos LGZA ------ ---
-
-[EU_HU]
-name=Hungary
-loc0=Budapest LHBP ------ ---
-loc1=Papa LHPA ------ ---
-loc2=Szombathely LHSY ------ ---
-
-[EU_IE]
-name=Ireland
-loc0=Connaught EIKN ------ ---
-loc1=Cork EICK ------ ---
-loc2=Dublin EIDW ------ ---
-loc3=Shannon EINN ------ ---
-
-[EU_IT]
-name=Italy
-loc0=Albenga LIMG ------ ---
-loc1=Alghero LIEA ------ ---
-loc2=Amendola LIBA ------ ---
-loc3=Ancona LIPY ------ ---
-loc4=Aviano LIPA ------ ---
-loc5=Bari LIBD ------ ---
-loc6=Bergamo LIME ------ ---
-loc7=Bologna LIPE ------ ---
-loc8=Bolzano LIPB ------ ---
-loc9=Brindisi LIBR ------ ---
-loc10=Cagliari LIEE ------ ---
-loc11=Capo\\ Mele LIMU ------ ---
-loc12=Catania LICC ------ ---
-loc13=Cervia LIPC ------ ---
-loc14=Crotone LIBC ------ ---
-loc15=Dobbiaco LIVD ------ ---
-loc16=Decimomannu LIED ------ ---
-loc17=Ferrara LIPF ------ ---
-loc18=Firenze LIRQ ------ ---
-loc19=Forli LIPK ------ ---
-loc20=Frontone LIVF ------ ---
-loc21=Frosinone LIRH ------ ---
-loc22=Genova LIMJ ------ ---
-loc23=Ghedi LIPL ------ ---
-loc24=Gioia\\ del\\ Colle LIBV ------ ---
-loc25=Grosseto LIRS ------ ---
-loc26=Guidonia LIRG ------ ---
-loc27=Lamezia LICA ------ ---
-loc28=Lampedusa LICD ------ ---
-loc29=Latina LIRL ------ ---
-loc30=Lecce LIBN ------ ---
-loc31=Marino\\ di\\ Ravenna LIVM ------ ---
-loc32=Milano/Linate LIML ------ ---
-loc33=Milano/Malpensa LIMC ------ ---
-loc34=Monte\\ Argentario LIQO ------ ---
-loc35=Monte\\ Bisbino LIMO ------ ---
-loc36=Monte\\ Calamita LIRX ------ ---
-loc37=Monte\\ Cimone LIVC ------ ---
-loc38=Monte\\ Malanotte LIMY ------ ---
-loc39=Monte\\ Scuro LIBQ ------ ---
-loc40=Monte\\ Terminillo LIRK ------ ---
-loc41=Napoli LIRN ------ ---
-loc42=Novara/Cameri LIMN ------ ---
-loc43=Olbia LIEO ------ ---
-loc44=Padova LIPU ------ ---
-loc45=Paganella LIVP ------ ---
-loc46=Palermo LICJ ------ ---
-loc47=Pantelleria LICG ------ ---
-loc48=Passo\\ della\\ Cisa LIMT ------ ---
-loc49=Passo\\ dei\\ Giovi LIMV ------ ---
-loc50=Passo\\ Resia LIVE ------ ---
-loc51=Passo\\ Rolle LIVR ------ ---
-loc52=Perugia LIRZ ------ ---
-loc53=Pescara LIBP ------ ---
-loc54=Piacenza LIMS ------ ---
-loc55=Pian\\ Rosa LIMH ------ ---
-loc56=Pisa LIRP ------ ---
-loc57=Pratica\\ di\\ Mare LIRE ------ ---
-loc58=Reggio\\ Calabria LICR ------ ---
-loc59=Rieti LIQN ------ ---
-loc60=Rimini LIPR ------ ---
-loc61=Rivolto LIPI ------ ---
-loc62=Roma/Ciampino LIRA ------ ---
-loc63=Roma/Fiumicino LIRF ------ ---
-loc64=Roma/Urbe LIRU ------ ---
-loc65=Ronchi\\ de'\\ Legionari LIPQ ------ ---
-loc66=Sarzana LIQW ------ ---
-loc67=Sigonella LICZ ------ ---
-loc68=Taranto LIBG ------ ---
-loc69=Tarvisio LIVO ------ ---
-loc70=Trapani LICT ------ ---
-loc71=Torino/Bric\\ Della\\ Croce LIMK ------ ---
-loc72=Torino/Caselle LIMF ------ ---
-loc73=Trevico LIRT ------ ---
-loc74=Treviso/S.Angelo LIPH ------ ---
-loc75=Treviso/Istrana LIPS ------ ---
-loc76=Trieste LIVT ------ ---
-loc77=Venezia LIPZ ------ ---
-loc78=Vicenza LIPT ------ ---
-loc79=Villafranca LIPX ------ ---
-loc80=Viterbo LIRV ------ ---
-
-[EU_NL]
-name=Netherlands
-loc0=Amsterdam EHAM ------ ---
-loc1=Deelen EHDL ------ ---
-loc2=Den\\ Helder/De\\ Kooy EHKD ------ ---
-loc3=Eindhoven EHEH ------ ---
-loc4=Gilze-Rijen EHGR ------ ---
-loc5=Groningen EHGG ------ ---
-loc6=Leeuwarden EHLW ------ ---
-loc7=Maastricht EHBK ------ ---
-loc8=Rotterdam EHRD ------ ---
-loc9=Twenthe EHTW ------ ---
-loc10=Utrecht/Soesterberg EHSB ------ ---
-loc11=Valkenburg EHVB ------ ---
-loc12=Vlieland EHVL ------ ---
-loc13=Volkel EHVK ------ ---
-loc14=Woensdrecht EHWO ------ ---
-
-[EU_SP]
-name=Spain
-loc0=Alicante LEAL ------ ---
-loc1=Almeria LEAM ------ ---
-loc2=Asturias LEAS ------ ---
-loc3=Barcelona LEBL ------ ---
-loc4=Bilbao LEBB ------ ---
-loc5=Canarias/Fuerteventura GCFV ------ ---
-loc6=Canarias/Gran\\ Canaria GCLP ------ ---
-loc7=Canarias/Hierro GCHI ------ ---
-loc8=Canarias/La\\ Palma GCLA ------ ---
-loc9=Canarias/Lanzarote GCRR ------ ---
-loc10=Canarias/Tenerife\\ Sur GCTS ------ ---
-loc11=Canarias/Tenerife\\ Norte GCXO ------ ---
-loc12=Girona LEGE ------ ---
-loc13=Granada LEGR ------ ---
-loc14=Ibiza LEIB ------ ---
-loc15=Jerez LEJR ------ ---
-loc16=La\\ Coruna LECO ------ ---
-loc17=Madrid\\ (Barajas) LEMD ------ ---
-loc18=Madrid\\ (Cuatro\\ Vientos) LEVS ------ ---
-loc19=Malaga LEMG ------ ---
-loc20=Melilla GEML ------ ---
-loc21=Menorca LEMH ------ ---
-loc22=Murcia LELC ------ ---
-loc23=Palma\\ de\\ Mallorca LEPA ------ ---
-loc24=Pamplona LEPP ------ ---
-loc25=Reus LERS ------ ---
-loc26=San\\ Sebastian LESO ------ ---
-loc27=Santander LEXJ ------ ---
-loc28=Santiago LEST ------ ---
-loc29=Sevilla LEZL ------ ---
-loc30=Valencia LEVC ------ ---
-loc31=Vigo LEVX ------ ---
-loc32=Vitoria LEVT ------ ---
-loc33=Zaragoza LEZG ------ ---
-
-[EU_UK]
-name=United Kingdom
-loc0=Aberdeen EGPD :RQPMS ---
-loc1=Alderney EGJA ------ ---
-loc2=Belfast/Aldergrove EGAA :AAPMS ---
-loc3=Belfast/Harbour EGAC :AAPMS ---
-loc4=Benbecula EGPL :RAPMS ---
-loc5=Biggin\\ Hill EGKB :RBPMS ---
-loc6=Birmingham EGBB :BBPMS ---
-loc7=Blackpool EGNH :RCPMS ---
-loc8=Boscombe\\ Down EGDM ------ ---
-loc9=Boulmer EGQM :RTPMS ---
-loc10=Bournemouth EGHH :RIPMS ---
-loc11=Bristol EGGD :RDPMS ---
-loc12=Cambridge EGSC :RNPMS- ---
-loc13=Cardiff EGFF :RGPMS ---
-loc14=Carlisle EGNC :RCPMS ---
-loc15=Coventry EGBE :BBPMS ---
-loc16=Cranfield EGTC :RIPMS ---
-loc17=Culdrose EGDR :RD2PMS ---
-loc18=Dundee EGPN :RAPMS ---
-loc19=East\\ Midlands EGNX :BBPMS ---
-loc20=Edinburgh EGPH :RAPMS ---
-loc21=Eglington/Londonderry EGAE :AAPMS ---
-loc22=Exeter EGTE :RD2PMS ---
-loc23=Glasgow EGPF :RAPMS ---
-loc24=Guernsey EGJB ------ ---
-loc25=Humberside EGNJ :RTPMS ---
-loc26=Inverness EGPE :RQPMS ---
-loc27=Isle\\ of\\ Man EGNS :RCPMS ---
-loc28=Jersey EGJJ ------ ---
-loc29=Kinloss EGQK :RQPMS ---
-loc30=Leeds\\ and\\ Bradford EGNM :RYPMS ---
-loc31=Leuchars EGQL :RQPMS ---
-loc32=Liverpool EGGP :RCPMS ---
-loc33=London/City EGLC :RBPMS ---
-loc34=London/Gatwick EGKK :RBPMS ---
-loc35=London/Heathrow EGLL :RBPMS ---
-loc36=London/Stansted EGSS :RBPMS ---
-loc37=Lossiemouth EGQS :RQPMS ---
-loc38=Luton EGGW :RBPMS ---
-loc39=Lyneham EGDL :BBPMS ---
-loc40=Manchester EGCC :RCPMS ---
-loc41=Newcastle EGNT :RTPMS ---
-loc42=Norwich EGSH :RNPMS ---
-loc43=Plymouth EGHD :RD2PMS ---
-loc44=Portland EGDP :RIPMS ---
-loc45=Prestwick EGPK :RAPMS ---
-loc46=Saint\\ Mawgan EGDG :RD2PMS ---
-loc47=Scatsta EGPM :RQPMS ---
-loc48=Scilly\\ Isles EGHE :RD2PMS ---
-loc49=Shawbury EGOS :BBPMS ---
-loc50=Shoreham EGKA :RBPMS ---
-loc51=Southampton EGHI :RIPMS ---
-loc52=Southend EGMC :RBPMS ---
-loc53=Staverton EGBJ :RDPMS ---
-loc54=Stornoway EGPO :RQPMS ---
-loc55=Sumburgh EGPB :RQPMS ---
-loc56=Tees-Side EGNV :RTPMS ---
-loc57=Tiree EGPU :RQPMS ---
-loc58=Unst EGPW :RQPMS ---
-loc59=Valley EGOV ------ ---
-loc60=Wick EGPC :RQPMS ---
-loc61=Yeovilton EGDY :RDPMS ---
-
-[EU_YU]
-name=Yugoslavia
-loc0=Beograd LYBE ------ ---
-loc1=Nis LYNI ------ ---
-loc2=Podgorica\\ Titograd LYTI ------ ---
-loc3=Podgorica LYPG ------ ---
-loc4=Pristina LYPR ------ ---
-loc5=Tivat LYTU ------ ---
-
-[AF]
-name=Africa
-states=DZ EG LY MO ZA
-
-[AF_MO]
-name=Morocco
-loc0=Rabat GMME ------ ---
-
-[AF_ZA]
-name=South Africa
-loc0=Bethlehem\\ Airport FABM ------ ---
-loc1=Bloemfontein\\ J.\\ B.\\ M.\\ Hertzog FABL ------ ---
-loc2=Cape\\ Town\\ D.\\ F.\\ Malan FACT ------ ---
-loc3=Durban\\ Louis\\ Botha FADN ------ ---
-loc4=East\\ London FAEL ------ ---
-loc5=George\\ Airport FAGG ------ ---
-loc6=Jan\\ Smuts FAJS ------ ---
-loc7=Langebaanweg FALW ------ ---
-loc8=Lichtenburg FALT ------ ---
-loc9=Pietersburg FAPB ------ ---
-loc10=Port\\ Elizabeth FAPE ------ ---
-loc11=Pretoria FAPR ------ ---
-loc12=Springbok FASB ------ ---
-loc13=Upington FAUP ------ ---
-
-[AF_LY]
-name=Libya
-loc0=Benina HLLB ------ ---
-loc1=Tripoli HLLT ------ ---
-
-[AF_EG]
-name=Egypt
-loc0=Alexandria/Nouzha HEAX ------ ---
-loc1=Asswan HESN ------ ---
-loc2=Cairo HECA ------ ---
-loc3=Luxor HELX ------ ---
-loc4=Mersa\\ Matruh HEMM ------ ---
-loc5=Port\\ Said HEPS ------ ---
-loc6=Sharm\\ El\\ Sheikhintl HESH ------ ---
-
-[AF_DZ]
-name=Algeria
-loc0=Annaba DABB ------ ---
-loc1=Constantine DABC ------ ---
-loc2=Dar-El-Beida DAAG ------ ---
-loc3=Ghardaia DAUG ------ ---
-loc4=Hassi-Messaoud DAUH ------ ---
-loc5=In\\ Amenas DAUZ ------ ---
-loc6=Oran DAOO ------ ---
-loc7=Tamanrasset DAAT ------ ---
-loc8=Tebessa DABS ------ ---
-loc9=Tlemcen\\ Zenata DAON ------ ---
-
-[OZ]
-name=Australasia
-states=AU NZ AN
-
-[OZ_AU]
-name=Australia
-loc0=Adelaide YPAD ------ ---
-loc1=Alice\\ Springs YBAS ------ ---
-loc2=Brisbane YBBN ------ ---
-loc3=Broome YBRM ------ ---
-loc4=Cairns YBCS ------ ---
-loc5=Canberra YSCB ------ ---
-loc6=Christmas\\ Island YPXM ------ ---
-loc7=Cocos\\ Island YPCC ------ ---
-loc8=Darwin YPDN ------ ---
-loc9=Dubbo YSDU ------ ---
-loc10=Hobart YMHB ------ ---
-loc11=Learmouth YPLM ------ ---
-loc12=Melbourne YMML ------ ---
-loc13=Norfolk\\ Island YSNF ------ ---
-loc14=Perth YPPH ------ ---
-loc15=Port\\ Hedland YPPD ------ ---
-loc16=Sydney YSSY ------ ---
-loc17=Townsville YBTL ------ ---
-
-[OZ_NZ]
-name=New Zealand
-loc0=Auckland NZAA ------ ---
-loc1=Christchurch NZCH ------ ---
-loc2=Wellington NZWN ------ ---
-
-[OZ_AN]
-name=Antartica
-loc0=Williams\\ Field NZCM ------ ---
-
-[AS]
-name=Asia
-states=CN HK IN JP KR KP PK SG TW VN
-
-[AS_VN]
-name=Viet Nam
-loc=Da\\ Nang VVDN ------ ---
-loc=Ha\\ Noi VVNB ------ ---
-loc=Ho\\ Chi\\ Minh VVTS ------ ---
-
-[AS_KR]
-name=Korea, Republic of
-loc0=Camp\\ Stanley/H-207 RKSX ------ ---
-loc1=Cheju RKPC ------ ---
-loc2=Chongju\\ Ab RKTU ------ ---
-loc3=Mangilsan\\ Ab RKTM ------ ---
-loc4=Osan\\ Ab RKSO ------ ---
-loc5=Paekado RKTB ------ ---
-loc6=Paengnyongdo\\ Ab RKSP ------ ---
-loc7=Pohang\\ Ab RKTH ------ ---
-loc8=Pusan/Kimhae RKPK ------ ---
-loc9=Pyongtaek\\ Ab RKSG ------ ---
-loc10=Sangju RKTS ------ ---
-loc11=Seoul/Kimp'O\\ International\\ Airport RKSS ------ ---
-loc12=Seoul/Yongdungp'O\\ Rokaf\\ Wc RKSF ------ ---
-loc13=Seoul\\ E\\ Ab RKSM ------ ---
-loc14=Songmu\\ Ab RKTE ------ ---
-loc15=Suwon\\ Ab RKSW ------ ---
-loc16=Taegu RKTT ------ ---
-loc17=Taegu\\ Ab RKTN ------ ---
-loc18=Taejon RKTF ------ ---
-loc19=Ulsan RKPU ------ ---
-loc20=Woong\\ Cheon RKTW ------ ---
-loc21=Yechon\\ Ab RKTY ------ ---
-loc22=Yeoju\\ Range RKSU ------ ---
-loc23=Yeonpyeungdo RKSQ ------ ---
-loc24=Yongsan/H-208\\ Hp RKSY ------ ---
-loc25=Yosu RKJY ------ ---
-
-[AS_KP]
-name=Korea, Democratic People's Republic of
-loc0=Pyongyang ZKPY ------ ---
-
-[AS_HK]
-name=Hong Kong
-loc=Hong\\ Kong VHHH ------ ---
-
-[AS_PK]
-name=Pakistan
-loc0=Islamabad OPRN ------ ---
-loc1=Karachi OPKC ------ ---
-loc2=Lahore OPLA ------ ---
-loc3=Nawabshah OPNH ------ ---
-
-[AS_IN]
-name=India
-loc0=Ahmadabad VAAH ------ ---
-loc1=Amritsar VIAR ------ ---
-loc2=Bombay/Santacruz VABB ------ ---
-loc3=Calcutta/Dum\\ Dum VECC ------ ---
-loc4=Hyderabad VOHY ------ ---
-loc5=Madras/Minambakkam VOMM ------ ---
-loc6=Nagpur\\ Sonegaon VANP ------ ---
-loc7=New\\ Delhi/Palam VIDP ------ ---
-loc8=Patna VEPT ------ ---
-loc9=Thiruvananthapuram VOTV ------ ---
-loc10=Tiruchchirapalli VOTR ------ ---
-loc11=Varanasi/Babatpur VIBN ------ ---
-
-[AS_CN]
-name=People's Republic of China
-loc0=Beijing ZBAA ------ ---
-loc1=Chengdu ZUUU ------ ---
-loc2=Dalian ZYTL ------ ---
-loc3=Guangzhou ZGGG ------ ---
-loc4=Hangzhou ZSHC ------ ---
-loc5=Hong\\ Kong VHHH ------ ---
-loc6=Kunming ZPPP ------ ---
-loc7=Lanzhou ZLLL ------ ---
-loc8=Nanning ZGNN ------ ---
-loc9=Shanghai ZSSS ------ ---
-loc10=Taiyuan ZBYN ------ ---
-loc11=Tianjin ZBTJ ------ ---
-loc12=Urumqi ZWWW ------ ---
-loc13=Xiamen ZSAM ------ ---
-
-[AS_JP]
-name=Japan
-loc0=Akeno\\ Ab RJOE ------ ---
-loc1=Akita\\ Airport RJSK ------ ---
-loc2=Amami\\ Airport RJKA ------ ---
-loc3=Aomori\\ Airport RJSA ------ ---
-loc4=Asahikawa\\ Ab RJCA ------ ---
-loc5=Asahikawa\\ Airport RJEC ------ ---
-loc6=Ashiya\\ Ab RJFA ------ ---
-loc7=Atsugi\\ US\\ NAS RJTA ------ ---
-loc8=Chichijima RJAO ------ ---
-loc9=Chitose\\ Ab RJCC ------ ---
-loc10=Chitose\\ ASDF RJCJ ------ ---
-loc11=Chofu\\ Airport RJTF ------ ---
-loc12=Fuji\\ Ab RJAT ------ ---
-loc13=Fukue\\ Airport RJFE ------ ---
-loc14=Fukui\\ Airport RJNF ------ ---
-loc15=Fukuoka\\ Airport RJFF ------ ---
-loc16=Gifu\\ Ab RJNG ------ ---
-loc17=Hachijojima\\ Airport RJTH ------ ---
-loc18=Hachinohe\\ Ab RJSH ------ ---
-loc19=Hakodate\\ Airport RJCH ------ ---
-loc20=Hamamatsu\\ Ab RJNH ------ ---
-loc21=Hanamaki\\ Airport RJSI ------ ---
-loc22=Hiroshima\\ Airport RJOA ------ ---
-loc23=Hofu\\ Ab RJOF ------ ---
-loc24=Hyakuri\\ Ab RJAH ------ ---
-loc25=Ichikawa RJAI ------ ---
-loc26=Iki\\ Airport RJDB ------ ---
-loc27=Iruma\\ Ab RJTJ ------ ---
-loc28=Iwakuni\\ MCAS RJOI ------ ---
-loc29=Iwojima RJAW ------ ---
-loc30=Izumo\\ Airport RJOC ------ ---
-loc31=Kadena\\ Ab RODN ------ ---
-loc32=Kagoshima\\ Airport RJFK ------ ---
-loc33=Kamigoto RJDK ------ ---
-loc34=Kanoya\\ Ab RJFY ------ ---
-loc35=Kansai\\ International\\ Airport RJBB ------ ---
-loc36=Kasumigaura\\ Ab RJAK ------ ---
-loc37=Kasuminome\\ Ab RJSU ------ ---
-loc38=Kikai\\ Island RJKI ------ ---
-loc39=Kisarazu\\ Ab RJTK ------ ---
-loc40=Kitakyushu\\ Airport RJFR ------ ---
-loc41=Kochi\\ Airport RJOK ------ ---
-loc42=Komatsu\\ Ab RJNK ------ ---
-loc43=Komatsujima\\ Ab RJOP ------ ---
-loc44=Kumamoto\\ Airport RJFT ------ ---
-loc45=Kushiro\\ Airport RJCK ------ ---
-loc46=Matsumoto\\ Airport RJAF ------ ---
-loc47=Matsushima\\ Ab RJST ------ ---
-loc48=Matsuyama\\ Airport RJOM ------ ---
-loc49=Memambetsu\\ Airport RJCM ------ ---
-loc50=Metabaru\\ Ab RJDM ------ ---
-loc51=Miho\\ Ab RJOH ------ ---
-loc52=Minamitorishima RJAM ------ ---
-loc53=Misawa\\ Ab RJSM ------ ---
-loc54=Miyakejima\\ Airport RJTQ ------ ---
-loc55=Miyazaki\\ Airport RJFM ------ ---
-loc56=Mombetsu\\ Airport RJEB ------ ---
-loc57=Nagasaki\\ Airport RJFU ------ ---
-loc58=Nagoya\\ Airport RJNN ------ ---
-loc59=Naha\\ Airport ROAH ------ ---
-loc60=Nakashibetsu\\ Airport RJCN ------ ---
-loc61=Nankishirahama\\ Airport RJBD ------ ---
-loc62=New\\ Tokyo\\ International\\ Airport RJAA ------ ---
-loc63=Niigata\\ Airport RJSN ------ ---
-loc64=Nyutabaru\\ Ab RJFN ------ ---
-loc65=Obihiro\\ Airport RJCB ------ ---
-loc66=Oita\\ Airport RJFO ------ ---
-loc67=Ojika\\ Island RJDO ------ ---
-loc68=Okayama\\ Airport RJOB ------ ---
-loc69=Oki\\ Airport RJNO ------ ---
-loc70=Okinoerabu RJKB ------ ---
-loc71=Okushiri\\ Island RJEO ------ ---
-loc72=Ominato\\ Ab RJSO ------ ---
-loc73=Osaka\\ International\\ Airport RJOO ------ ---
-loc74=Oshima\\ Airport RJTO ------ ---
-loc75=Ozuki\\ Ab RJOZ ------ ---
-loc76=Rebun\\ Island RJCR ------ ---
-loc77=Rishiri\\ Island RJER ------ ---
-loc78=Sapporo\\ Ab RJCO ------ ---
-loc79=Sendai\\ Airport RJSS ------ ---
-loc80=Shimofusa\\ Ab RJTL ------ ---
-loc81=Shizuhama\\ Ab RJNY ------ ---
-loc82=Tachikawa\\ Ab RJTC ------ ---
-loc83=Tajima RJBT ------ ---
-loc84=Takamatsu\\ Airport RJOT ------ ---
-loc85=Tanegashima\\ Airport RJFG ------ ---
-loc86=Tateyama\\ Ab RJTE ------ ---
-loc87=Tokachi\\ GSDF RJCT ------ ---
-loc88=Tokunoshima\\ Island RJKN ------ ---
-loc89=Tokushima\\ Ab RJOS ------ ---
-loc90=Tokyo\\ Heliport RJTI ------ ---
-loc91=Tokyo\\ International\\ Airport RJTT ------ ---
-loc92=Tokyo\\ New\\ International\\ Airport RJAA ------ ---
-loc93=Tottori\\ Airport RJOR ------ ---
-loc94=Toyama\\ Airport RJNT ------ ---
-loc95=Tsuiki\\ Ab RJFZ ------ ---
-loc96=Tsushima\\ Airport RJDT ------ ---
-loc97=Utsunomiya\\ Ab RJTU ------ ---
-loc98=Wakkanai\\ Airport RJCW ------ ---
-loc99=Yakushima RJFC ------ ---
-loc100=Yamagata\\ Airport RJSC ------ ---
-loc101=Yamaguchi\\ Ube\\ Airport RJDC ------ ---
-loc102=Yao\\ Airport RJOY ------ ---
-loc103=Yokosuka\\ Fwf RJTX ------ ---
-loc104=Yokota\\ Ab RJTY ------ ---
-loc105=Zama\\ Airfield RJTR ------ ---
-
-[AS_SG]
-name=Singapore
-loc0=Singapore WSSS ------ ---
-
-[AS_TW]
-name=Taiwan
-loc0=Chia\\ Tung RCFS ------ ---
-loc1=Chiang\\ Kai\\ Shek RCTP ------ ---
-loc2=Chiayi RCKU ------ ---
-loc3=Chihhang RCQS ------ ---
-loc4=Chinmem/Shatou RCBS ------ ---
-loc5=Dongsha RCLM ------ ---
-loc6=Dongshi RCNO ------ ---
-loc7=Feng\\ Nin RCFN ------ ---
-loc8=Hengchun RCKW ------ ---
-loc9=Hsinchu RCPO ------ ---
-loc10=Hulien RCYU ------ ---
-loc11=Ilan RCMS ------ ---
-loc12=Kangshan RCAY ------ ---
-loc13=Kaohsiung RCKH ------ ---
-loc14=Makung RCQC ------ ---
-loc15=Mazu RCFG ------ ---
-loc16=Pa\\ Kuei/Bakuai RCUK ------ ---
-loc17=Pingtung\\ North RCSQ ------ ---
-loc18=Pingtung\\ South RCDC ------ ---
-loc19=Sungshan/Taipei RCSS ------ ---
-loc20=Taichung RCLG ------ ---
-loc21=Tainan RCNN ------ ---
-loc22=Taoyuan RCGM ------ ---
-loc23=Wuchia\\ Observatory RCMQ ------ ---
-
-[M_]
-name=Central and South America
-states=BS BZ KY CU CR DO SV GT HT HN JM NI PA AR BR BO CL CO EC PY PE SR UY VE
-
-[M__BS]
-name=Bahamas
-loc0=Freeport MYGF ------ ---
-loc1=Nassau MYNN ------ ---
-
-[M__BZ]
-name=Belize
-loc0=Belize MZBZ ------ ---
-
-[M__BM]
-name=Bermuda
-loc0=Bermuda TXKF ------ ---
-
-[M__KY]
-name=Cayman Islands
-loc0=Grand\\ Cayman MWCR ------ ---
-
-[M__CU]
-name=Cuba
-loc0=Baracoa MUBA ------ ---
-loc1=Bayamo MUBY ------ ---
-loc2=Camaguey MUCM ------ ---
-loc3=Cayo\\ Largo\\ del\\ Sur MUCL ------ ---
-loc4=Guantanamo MUGT ------ ---
-loc5=Habana MUHA ------ ---
-loc6=Holguin MUHG ------ ---
-loc7=Las\\ Tunas MUVT ------ ---
-loc8=Manzanillo MUMZ ------ ---
-loc9=Moa MUMO ------ ---
-loc10=Nueva\\ Gerona MUNG ------ ---
-loc11=Santiago\\ de\\ Cuba MUCU ------ ---
-loc12=Varadero MUVR ------ ---
-loc13=Venezuela MUCA ------ ---
-
-[M__CR]
-name=Costa Rica
-loc0=Chacarita MRCH ------ ---
-loc1=Juan\\ Santamaria MROC ------ ---
-loc2=Liberia MRLB ------ ---
-loc3=Puerto\\ Limon MRLM ------ ---
-loc4=Tobias\\ Bolanos MRPV ------ ---
-
-[M__DO]
-name=Dominican Republic
-loc0=La\\ Romana MDLR ------ ---
-loc1=Las\\ Americas MDSD ------ ---
-loc2=Puerto\\ Plata MDPP ------ ---
-loc3=Punta\\ Cana MDPC ------ ---
-loc4=Santiago MDST ------ ---
-
-[M__SV]
-name=El Salvador
-loc0=Acajutla MSAC ------ ---
-loc1=El\\ Salvador\\ Int. MSLP ------ ---
-loc2=San\\ Miguel MSSM ------ ---
-loc3=San\\ Salvador MSSS ------ ---
-loc4=Santa\\ Ana MSSA ------ ---
-
-[M__GT]
-name=Guatemala
-loc0=Flores MGFL ------ ---
-loc1=Guatemala MGGT ------ ---
-loc2=Huehuetenango MGHT ------ ---
-loc3=Puerto\\ Barrios MGPB ------ ---
-loc4=San\\ Jose MGSJ ------ ---
-
-[M__HT]
-name=Haiti
-loc0=Port-Au-Prince MTPP ------ ---
-
-[M__HN]
-name=Honduras
-loc0=Amapala MHAM ------ ---
-loc1=Catacamas MHCA ------ ---
-loc2=Choluteca MHCH ------ ---
-loc3=La\\ Ceiba MHLC ------ ---
-loc4=La\\ Esperanza MHLE ------ ---
-loc5=La\\ Mesa MHLM ------ ---
-loc6=Nueva\\ Ocotepeque MHSC ------ ---
-loc7=Puerto\\ Lempira MHPL ------ ---
-loc8=Roatan MHRO ------ ---
-loc9=Santa\\ Rosa\\ de\\ Copan MHSR ------ ---
-loc10=Tegucigalpa MHTG ------ ---
-loc11=Tela MHTE ------ ---
-loc12=Yoro MHYR ------ ---
-
-[M__JM]
-name=Jamaica
-loc0=Kingston MKJP ------ ---
-loc1=Montego\\ Bay MKJA ------ ---
-
-[M__NI]
-name=Nicaragua
-loc0=Bluefields MNBL ------ ---
-loc1=Chinandega MNCH ------ ---
-loc2=Jinotega MNJG ------ ---
-loc3=Juigalpa MNJU ------ ---
-loc4=Managua MNMG ------ ---
-loc5=Puerto\\ Cabezas MNPC ------ ---
-loc6=Rivas MNRS ------ ---
-
-[M__PA]
-name=Panama
-loc0=Bocas\\ del\\ Toro MPBO ------ ---
-loc1=David MPDA ------ ---
-loc2=Howard\\ AFB MPHO ------ ---
-loc3=Panama MPMG ------ ---
-loc4=Santiago MPSA ------ ---
-loc5=Tocumen MPTO ------ ---
-
-[M__BO]
-name=Bolivia
-loc0=Camiri SLCA ------ ---
-loc1=Cobija SLCO ------ ---
-loc2=Cochabamba SLCB ------ ---
-loc3=Concepcion SLCP ------ ---
-loc4=La\\ Paz/Alto SLLP ------ ---
-loc5=Magdalena SLMG ------ ---
-loc6=Oruro SLOR ------ ---
-loc7=Potosi SLPO ------ ---
-loc8=Puerto\\ Suarez SLPS ------ ---
-loc9=Reyes SLRY ------ ---
-loc10=Riberalta SLRI ------ ---
-loc11=Robore SLRB ------ ---
-loc12=Rurrenabaque SLRQ ------ ---
-loc13=San\\ Ignacio\\ De\\ Velasco SLSI ------ ---
-loc14=San\\ Joaquin SLJO ------ ---
-loc15=San\\ Jose\\ De\\ Chiquitos SLJE ------ ---
-loc16=Santa\\ Ana SLSA ------ ---
-loc17=Sucre SLSU ------ ---
-loc18=Tarija SLTJ ------ ---
-loc19=Trinidad SLTR ------ ---
-loc20=Villamontes SLVM ------ ---
-loc21=Viru-Viru SLVR ------ ---
-loc22=Yacuiba SLYA ------ ---
-
-[M__CL]
-name=Chile
-loc0=Antofagasta SCFA ------ ---
-loc1=Arica SCAR ------ ---
-loc2=Concepcion SCIE ------ ---
-loc3=Iquique/Diego\\ Arac SCDA ------ ---
-loc4=Pudahuel SCEL ------ ---
-loc5=Puerto\\ Montt SCTE ------ ---
-loc6=Punta\\ Arenas SCCI ------ ---
-
-[M__CO]
-name=Colombia
-loc0=Barranquilla/Ernestocortissoz SKBQ ------ ---
-loc1=Bogota/Eldorado SKBO ------ ---
-loc2=Bucaramanga/Palonegro SKBG ------ ---
-loc3=Cali/Alfonso\\ Bonillaaragon SKCL ------ ---
-loc4=Cartagena/Rafael\\ Nunez SKCG ------ ---
-loc5=Leticia/Vasquez\\ Cobo SKLT ------ ---
-loc6=Pereira/Matecana SKPE ------ ---
-loc7=Rionegro/J.M.Cordova SKRG ------ ---
-loc8=San\\ Andres\\ Isla/Sesquicentenario SKSP ------ ---
-loc9=Santa\\ Marta/Simon\\ Bolivar SKSM ------ ---
-
-[M__EC]
-name=Ecuador
-loc0=Guayaquil/Simon\\ Bolivar SEGU ------ ---
-loc1=Manta SEMT ------ ---
-loc2=Quito/Mariscal\\ Sucre SEQU ------ ---
-
-[M__PY]
-name=Paraguay
-loc0=Asuncion SGAS ------ ---
-loc1=Guarany SGES ------ ---
-
-[M__PE]
-name=Peru
-loc0=Andahuayla SPHY ------ ---
-loc1=Arequipa SPQU ------ ---
-loc2=Ayacucho SPHO ------ ---
-loc3=Chiclayo SPHI ------ ---
-loc4=Cuzco SPZO ------ ---
-loc5=Huanuco SPNC ------ ---
-loc6=Iquitos SPQT ------ ---
-loc7=Juanjui SPJI ------ ---
-loc8=Juliaca SPJL ------ ---
-loc9=Lima-Callao SPIM ------ ---
-loc10=Pisco SPSO ------ ---
-loc11=Pucallpa SPCL ------ ---
-loc12=Puerto\\ Maldonado SPTU ------ ---
-loc13=Rioja SPJA ------ ---
-loc14=Tacna SPTN ------ ---
-loc15=Talara SPYL ------ ---
-loc16=Yurimaguas SPMS ------ ---
-
-[M__SR]
-name=Suriname
-loc0=Johan\\ A.\\ Pengel SMJP ------ ---
-
-[M__UY]
-name=Uruguay
-loc0=Artigas SUAG ------ ---
-loc1=Capitan\\ Corbeta SULS ------ ---
-loc2=Colonia SUCA ------ ---
-loc3=Durazno SUDU ------ ---
-loc4=Maldonado/Punta\\ Est SUPE ------ ---
-loc5=Melilla SUAA ------ ---
-loc6=Montevideo/Carrasco SUMU ------ ---
-loc7=Paysandu SUPU ------ ---
-loc8=Rivera SURV ------ ---
-loc9=Salto SUSO ------ ---
-loc10=Tacuarembo SUTB ------ ---
-
-[M__VE]
-name=Venezuela
-loc0=Acarigua SVAC ------ ---
-loc1=Barcelona SVBC ------ ---
-loc2=Barinas SVBI ------ ---
-loc3=Barquisimeto SVBM ------ ---
-loc4=Calabozo SVCL ------ ---
-loc5=Caracas\\ Maiquetia SVMI ------ ---
-loc6=Ciudad\\ Bolivar SVCB ------ ---
-loc7=Coro SVCR ------ ---
-loc8=Cumana SVCU ------ ---
-loc9=Guanare SVGU ------ ---
-loc10=Maracaibo-La\\ Chinita SVMC ------ ---
-loc11=Maracay-B.A.Sucre SVBS ------ ---
-loc12=Margarita SVMG ------ ---
-loc13=Mene\\ Grande SVMN ------ ---
-loc14=Merida SVMD ------ ---
-loc15=San\\ Antonio\\ Del\\ Tachira SVSA ------ ---
-loc16=San\\ Fernando\\ De\\ Apure SVSR ------ ---
-loc17=Valera* SVVL ------ ---
-loc18=Caracas\\ La\\ Carlota SVFM ------ ---
-
-[M__AR]
-name=Argentina
-loc0=Aeroparque SABE ------ ---
-loc1=Bahia\\ Blanca SAZB ------ ---
-loc2=Bariloche SAZS ------ ---
-loc3=Comodoro\\ Rivadavia SAVC ------ ---
-loc4=Concordia SAAC ------ ---
-loc5=Cordoba SACO ------ ---
-loc6=Corrientes SARC ------ ---
-loc7=Don\\ Torcuato SADD ------ ---
-loc8=Ezeiza SAEZ ------ ---
-loc9=Formosa SARF ------ ---
-loc10=Iguazu SARI ------ ---
-loc11=Jujuy SASJ ------ ---
-loc12=Mar\\ Del\\ Plata SAZM ------ ---
-loc13=Mendoza SAME ------ ---
-loc14=Neuquen SAZN ------ ---
-loc15=Paso\\ De\\ Los\\ Libres SARL ------ ---
-loc16=Posadas SARP ------ ---
-loc17=Resistencia SARE ------ ---
-loc18=Rio\\ Gallegos SAWG ------ ---
-loc19=Rio\\ Grande SAWE ------ ---
-loc20=Rosario SAAR ------ ---
-loc21=Salta SASA ------ ---
-loc22=San\\ Juan SANU ------ ---
-loc23=Santiago\\ Del\\ Estero SANE ------ ---
-loc24=Sauce\\ Viejo SAAV ------ ---
-loc25=Trelew SAVT ------ ---
-loc26=Tucuman SANT ------ ---
-loc27=Villa\\ Reynolds SAOR ------ ---
-
-[M__BR]
-name=Brazil
-loc0=Afonsos SBAF ------ ---
-loc1=Altamira SBHT ------ ---
-loc2=Aracaju SBAR ------ ---
-loc3=Bage SBBG ------ ---
-loc4=Bauru SBBU ------ ---
-loc5=Belem SBBE ------ ---
-loc6=Belo\\ Horizonte SBCF ------ ---
-loc7=Belo\\ Horizonte\\ Apt SBBH ------ ---
-loc8=Boa\\ Vista SBBV ------ ---
-loc9=Brasilia SBBR ------ ---
-loc10=Campinas SBKP ------ ---
-loc11=Campo\\ Grande SBCG ------ ---
-loc12=Caravelas SBCV ------ ---
-loc13=Conceicao\\ Do\\ Araguaia SBAA ------ ---
-loc14=Corumba SBCR ------ ---
-loc15=Cuiaba SBCY ------ ---
-loc16=Curitiba SBBI ------ ---
-loc17=Curitiba\\ Apt SBCT ------ ---
-loc18=Eduardo\\ Gomes\\ International SBEG ------ ---
-loc19=Fernando\\ De\\ Noronha SBFN ------ ---
-loc20=Florianopolis SBFL ------ ---
-loc21=Fortaleza SBFZ ------ ---
-loc22=Foz\\ Do\\ Iguacu SBFI ------ ---
-loc23=Galeao SBGL ------ ---
-loc24=Goiania SBGO ------ ---
-loc25=Guaratingueta SBGW ------ ---
-loc26=Guarulhos SBGR ------ ---
-loc27=Itaituba SBIH ------ ---
-loc28=Londrina SBLO ------ ---
-loc29=Macae SBME ------ ---
-loc30=Macapa SBMQ ------ ---
-loc31=Maceio SBMO ------ ---
-loc32=Manaus SBMN ------ ---
-loc33=Maraba SBMA ------ ---
-loc34=Marte SBMT ------ ---
-loc35=Natal SBNT ------ ---
-loc36=Pelotas SBPK ------ ---
-loc37=Pirassununga SBYS ------ ---
-loc38=Pocos\\ De\\ Caldas SBPC ------ ---
-loc39=Ponta\\ Pora SBPP ------ ---
-loc40=Porto\\ Alegre SBCO ------ ---
-loc41=Porto\\ Alegre\\ Apt SBPA ------ ---
-loc42=Porto\\ Velho SBPV ------ ---
-loc43=Presidente\\ Prudente SBDN ------ ---
-loc44=Recife SBRF ------ ---
-loc45=Rio\\ /\\ Jacarepagua SBJR ------ ---
-loc46=Rio\\ De\\ Janeiro SBRJ ------ ---
-loc47=Salvador SBSV ------ ---
-loc48=Santa\\ Cruz SBSC ------ ---
-loc49=Santa\\ Maria SBSM ------ ---
-loc50=Santarem SBSN ------ ---
-loc51=Santos SBST ------ ---
-loc52=Sao\\ Jose\\ Dos\\ Campo SBSJ ------ ---
-loc53=Sao\\ Luiz SBSL ------ ---
-loc54=Sao\\ Paulo SBSP ------ ---
-loc55=Tabatinga SBTT ------ ---
-loc56=Teresina SBTE ------ ---
-loc57=Tucurui SBTU ------ ---
-loc58=Uberaba SBUR ------ ---
-loc59=Uruguaiana SBUG ------ ---
-loc60=Vilhena SBVH ------ ---
-loc61=Vitoria SBVT ------ ---
-
-[AT]
-name=Atlantic
-states=AG PR
-
-[AT_PR]
-name=Puerto Rico
-loc0=Aquadilla TJBQ ------ ---
-loc1=San\\ Juan TJSJ ------ ---
-loc2=Mayaguez TJMZ ------ ---
-loc3=Ponce TJPS ------ ---
-
-[AT_AG]
-name=Antigua and Barbuda
-loc0=Antigua TAPA ------ ---
-
diff --git a/my-evolution/Locations.h b/my-evolution/Locations.h
deleted file mode 100644
index 9da9d69b6b..0000000000
--- a/my-evolution/Locations.h
+++ /dev/null
@@ -1,2535 +0,0 @@
-N_("Aarhus")
-N_("Abakan")
-N_("Abbotsford")
-N_("Aberdeen")
-N_("Abha")
-N_("Abilene")
-N_("Abingdon")
-N_("Abu Dhabi")
-N_("Abu Dhabi - Bateen")
-N_("Acajutla")
-N_("Acapulco")
-N_("Acarigua")
-N_("Adak")
-N_("Adana")
-N_("Adana/Incirlik")
-N_("Adelaide")
-N_("Aden")
-N_("Adrar")
-N_("Aeroparque")
-N_("Aeropuerto del Norte")
-N_("Afonsos")
-N_("Africa")
-N_("Afyon")
-N_("Agen")
-N_("Aguascaliantes")
-N_("Ahmadabad")
-N_("Ahwaz")
-N_("Ainsworth")
-N_("Air Force")
-N_("Ajaccio/Campo dell'Oro")
-N_("Akeno Ab")
-N_("Akita Airport")
-N_("Akron")
-N_("Akrotiri")
-N_("Alabama")
-N_("Al Ahsa")
-N_("Al Ain")
-N_("Alamogordo")
-N_("Alamosa")
-N_("Alaska")
-N_("Al Baha")
-N_("Albania")
-N_("Albany")
-N_("Albenga")
-N_("Alberta")
-N_("Alborg")
-N_("Albuquerque")
-N_("Alderney")
-N_("Alesund")
-N_("Alexandria")
-N_("Alexandria-Esler")
-N_("Alexandria/Nouzha")
-N_("Alexandroupolis")
-N_("Algeria")
-N_("Alghero")
-N_("Algona")
-N_("Alicante")
-N_("Alice")
-N_("Alice Springs")
-N_("Al-Jouf")
-N_("Allentown")
-N_("Alliance")
-N_("Alma")
-N_("Almeria")
-N_("Alpena")
-N_("Al Qaysumah")
-N_("Alta")
-N_("Altamira")
-N_("Alton")
-N_("Altoona")
-N_("Alturas")
-N_("Altus")
-N_("Amami Airport")
-N_("Amapala")
-N_("Amarillo")
-N_("Amasya")
-N_("Ambler")
-N_("Amelia")
-N_("Amendola")
-N_("Ames")
-N_("Amritsar")
-N_("Amsterdam")
-N_("Anadyr")
-N_("Anaktuvuk")
-N_("Anapa")
-N_("Anchorage")
-N_("Anchorage - Elmendorf AFB")
-N_("Ancona")
-N_("Andahuayla")
-N_("Anderson")
-N_("Andoya")
-N_("Andravida")
-N_("Andrews AFB")
-N_("Angleton")
-N_("Aniak")
-N_("Ankara/Esenboga")
-N_("Ankara/Etimesgut")
-N_("Annaba")
-N_("Ann Arbor")
-N_("Annette")
-N_("Anniston")
-N_("Antalya")
-N_("Antartica")
-N_("Antigo")
-N_("Antigua")
-N_("Antigua and Barbuda")
-N_("Antofagasta")
-N_("Antwerpen/Deurne")
-N_("Aomori Airport")
-N_("Apalachicola")
-N_("Appleton")
-N_("Aquadilla")
-N_("Aracaju")
-N_("Arad")
-N_("Arar")
-N_("Araxos")
-N_("Arcata")
-N_("Ardmore")
-N_("Arequipa")
-N_("Argentina")
-N_("Arica")
-N_("Arizona")
-N_("Arkansas")
-N_("Arkhangelsk")
-N_("Arlington")
-N_("Artigas")
-N_("Asahikawa Ab")
-N_("Asahikawa Airport")
-N_("Ashburnam")
-N_("Asheville")
-N_("Ashfield")
-N_("Ashiya Ab")
-N_("Ashland")
-N_("Asia")
-N_("Aspen")
-N_("Asswan")
-N_("Astoria")
-N_("Astrakhan")
-N_("Asturias")
-N_("Asuncion")
-N_("Athens")
-N_("Athinai")
-N_("Atlanta")
-N_("Atlantic")
-N_("Atlantic City")
-N_("Atsugi US NAS")
-N_("Auburn")
-N_("Auckland")
-N_("Augsburg")
-N_("Augusta")
-N_("Aurora")
-N_("Austin")
-N_("Australasia")
-N_("Australia")
-N_("Austria")
-N_("Avalon")
-N_("Aviano")
-N_("Ayacucho")
-N_("Bage")
-N_("Bagotville")
-N_("Bahamas")
-N_("Bahia Blanca")
-N_("Bahias de Huatulco")
-N_("Bahrain")
-N_("Baker City")
-N_("Bakersfield")
-N_("Bale-Mulhouse")
-N_("Balikesir")
-N_("Balikesir/Bandirma")
-N_("Ball Mountain")
-N_("Baltimore")
-N_("Baltimore-Glen Burnie")
-N_("Banak")
-N_("Bandarabbass")
-N_("Bangor")
-N_("Baracoa")
-N_("Barbers Point")
-N_("Barcelona")
-N_("Bardufoss")
-N_("Bar Harbor")
-N_("Bari")
-N_("Bariloche")
-N_("Barinas")
-N_("Barking Sand")
-N_("Barksdale")
-N_("Barnaul")
-N_("Barquisimeto")
-N_("Barranquilla/Ernestocortissoz")
-N_("Barrow")
-N_("Barter Island")
-N_("Bartlesville")
-N_("Bartow")
-N_("Bastia")
-N_("Batesville")
-N_("Batman")
-N_("Baton Rouge")
-N_("Battle Creek")
-N_("Battle Mountain")
-N_("Bauru")
-N_("Bayamo")
-N_("Bayreuth")
-N_("Beatrice")
-N_("Beaufort")
-N_("Beaumont")
-N_("Beaumont-Port Arthur")
-N_("Beauvais-Tille")
-N_("Beauvechain")
-N_("Beckley")
-N_("Bedford")
-N_("Beijing")
-N_("Beirut")
-N_("Beja")
-N_("Belem")
-N_("Belfast/Aldergrove")
-N_("Belfast/Harbour")
-N_("Belgium")
-N_("Belgorod")
-N_("Belize")
-N_("Belleville")
-N_("Bellingham")
-N_("Belmar-Farmingdale")
-N_("Belo Horizonte")
-N_("Belo Horizonte Apt")
-N_("Bemidji")
-N_("Benbecula")
-N_("Benina")
-N_("Benton Harbor")
-N_("Bentonville")
-N_("Beograd")
-N_("Bergamo")
-N_("Bergen")
-N_("Bergstrom AFB")
-N_("Berlevag")
-N_("Berlin")
-N_("Berlin-Tegel")
-N_("Berlin-Tempelhof")
-N_("Bern")
-N_("Bethel")
-N_("Bethlehem Airport")
-N_("Bettles")
-N_("Beverly")
-N_("Biarritz-Bayonne")
-N_("Bicycle Lake")
-N_("Biggin Hill")
-N_("Big Piney")
-N_("Big River Lake")
-N_("Bilbao")
-N_("Billings")
-N_("Billund")
-N_("Binghamton")
-N_("Birmingham")
-N_("Bisha")
-N_("Bishop")
-N_("Bismark")
-N_("Blackpool")
-N_("Blagoveschensk")
-N_("Blanding")
-N_("Block Island")
-N_("Bloemfontein J. B. M. Hertzog ")
-N_("Bloomington")
-N_("Blue Canyon")
-N_("Bluefield")
-N_("Bluefields")
-N_("Blythe")
-N_("Boa Vista")
-N_("Bocas del Toro")
-N_("Bodo")
-N_("Bogota/Eldorado")
-N_("Boise")
-N_("Bolivia")
-N_("Bologna")
-N_("Bolzano")
-N_("Bombay/Santacruz")
-N_("Boone")
-N_("Bordeaux")
-N_("Borger")
-N_("Bornholm")
-N_("Boscombe Down")
-N_("Bosnia-Herzegovina")
-N_("Boston")
-N_("Boulmer")
-N_("Bourges")
-N_("Bournemouth")
-N_("Bowling Green")
-N_("Bozeman")
-N_("Bradford")
-N_("Bradshaw Field")
-N_("Brainerd")
-N_("Brasilia")
-N_("Brasschaat")
-N_("Bratislava")
-N_("Bratsk")
-N_("Braunschweig")
-N_("Brazil")
-N_("Bremen")
-N_("Bremerton")
-N_("Brest")
-N_("Bridgeport")
-N_("Brindisi")
-N_("Brisbane")
-N_("Bristol")
-N_("British Columbia")
-N_("Brno")
-N_("Broadus")
-N_("Broken Bow")
-N_("Bronnoysund")
-N_("Brookings")
-N_("Brooksville")
-N_("Broome")
-N_("Brownsville")
-N_("Brunswick")
-N_("Brussels-National Airport")
-N_("Bryansk")
-N_("Bryce Canyon")
-N_("Bucaramanga/Palonegro")
-N_("Bucuresti")
-N_("Bucuresti-Otopeni")
-N_("Budapest")
-N_("Buffalo")
-N_("Bulgaria")
-N_("Bullfrog")
-N_("Burbank")
-N_("Burgas")
-N_("Burley")
-N_("Burlington")
-N_("Burnet")
-N_("Burns")
-N_("Bursa")
-N_("Burwell")
-N_("Butte")
-N_("Caen-Carpiquet")
-N_("Cagliari")
-N_("Cairns")
-N_("Cairo")
-N_("Calabozo")
-N_("Calcutta/Dum Dum")
-N_("Caldwell")
-N_("Calgary")
-N_("Cali/Alfonso Bonillaaragon")
-N_("Caliente")
-N_("California")
-N_("Calvi-Ste-Catherine")
-N_("Camaguey")
-N_("Camarillo")
-N_("Cambridge")
-N_("Cameron")
-N_("Camiri")
-N_("Campeche")
-N_("Campinas")
-N_("Campo")
-N_("Campo Grande")
-N_("Camp Stanley/H-207")
-N_("Canaan")
-N_("Canada")
-N_("Canarias/Fuerteventura")
-N_("Canarias/Gran Canaria")
-N_("Canarias/Hierro")
-N_("Canarias/Lanzarote")
-N_("Canarias/La Palma")
-N_("Canarias/Tenerife Norte")
-N_("Canarias/Tenerife Sur")
-N_("Canberra")
-N_("Cancun")
-N_("Cannes-Mandelieu")
-N_("Cantwell")
-N_("Cape Girardeau")
-N_("Cape Hatteras")
-N_("Cape Lisburne")
-N_("Cape Newenham")
-N_("Cape Romanzoff")
-N_("Cape Town D. F. Malan ")
-N_("Capitan Corbeta")
-N_("Capo Mele")
-N_("Caracas La Carlota")
-N_("Caracas Maiquetia")
-N_("Caravelas")
-N_("Carbondale")
-N_("Cardiff")
-N_("Caribou")
-N_("Carlisle")
-N_("Carlsbad")
-N_("Carroll")
-N_("Cartagena/Rafael Nunez")
-N_("Casa Granda")
-N_("Cascade")
-N_("Casper")
-N_("Catacamas")
-N_("Catania")
-N_("Cayman Islands")
-N_("Cayo Largo del Sur")
-N_("Cazaux")
-N_("Cecil NAS")
-N_("Cedar City")
-N_("Cedar Rapids")
-N_("Central and South America")
-N_("Cervia")
-N_("Chacarita")
-N_("Chadron")
-N_("Challis")
-N_("Chamberlain")
-N_("Chambery")
-N_("Champaign")
-N_("Chandalar Lake")
-N_("Chandler")
-N_("Chania")
-N_("Chanute")
-N_("Chariton")
-N_("Charleroi-Brussels South")
-N_("Charles City")
-N_("Charleston")
-N_("Charlotte")
-N_("Charlottesville")
-N_("Chatham")
-N_("Chattanooga")
-N_("Cheboksary")
-N_("Cheju")
-N_("Chelyabinsk")
-N_("Chengdu")
-N_("Cherbourg")
-N_("Cherry Point")
-N_("Chetumal")
-N_("Cheyenne")
-N_("Chiang Kai Shek")
-N_("Chia Tung")
-N_("Chiayi")
-N_("Chicago-DuPage")
-N_("Chicago-Lakefront")
-N_("Chicago-Midway")
-N_("Chicago-O'Hare")
-N_("Chichijima")
-N_("Chiclayo")
-N_("Chico")
-N_("Chicopee Falls")
-N_("Chievres")
-N_("Chihhang")
-N_("Chihuahua")
-N_("Childress")
-N_("Chile")
-N_("China Lake")
-N_("Chinandega")
-N_("Chinmem/Shatou")
-N_("Chino")
-N_("Chippewa County")
-N_("Chita")
-N_("Chitose Ab")
-N_("Chitose ASDF")
-N_("Chofu Airport")
-N_("Choluteca")
-N_("Chongju Ab")
-N_("Christchurch")
-N_("Christmas Island")
-N_("Chulitna")
-N_("Churchill")
-N_("Churchill Falls")
-N_("Cincinnati")
-N_("Circle City")
-N_("Ciudad Bolivar")
-N_("Ciudad del Carmen")
-N_("Ciudad Juarez")
-N_("Ciudad Obregon")
-N_("Ciudad Victoria")
-N_("Clarinda")
-N_("Clarion")
-N_("Clarksburg")
-N_("Clayton")
-N_("Clayton Lake")
-N_("Clermont-Ferrand")
-N_("Cleveland")
-N_("Cleveland/Cuyahoga")
-N_("Cleveland-Lakefront")
-N_("Clinton")
-N_("Clovis-Cannon AFB")
-N_("Cobija")
-N_("Cochabamba")
-N_("Cocoa Beach")
-N_("Cocos Island")
-N_("Cody")
-N_("Coeur d'Alene")
-N_("Cold Bay")
-N_("Colima")
-N_("College Station")
-N_("Colmar-Meyenheim")
-N_("Colombia")
-N_("Colonia")
-N_("Colorado")
-N_("Colorado Springs")
-N_("Columbia")
-N_("Columbia-McEntire")
-N_("Columbus")
-N_("Columbus-Fort Benning")
-N_("Columbus-Gahanna")
-N_("Columbus-OSU")
-N_("Columbus-W Point-Starkville")
-N_("Colville")
-N_("Comodoro Rivadavia")
-N_("Comox")
-N_("Conceicao Do Araguaia")
-N_("Concepcion")
-N_("Concord")
-N_("Concordia")
-N_("Connaught")
-N_("Connecticut")
-N_("Conroe")
-N_("Constantine")
-N_("Copper Harbor")
-N_("Cordoba")
-N_("Cordova")
-N_("Cork")
-N_("Coro")
-N_("Corona")
-N_("Corpus Christi")
-N_("Corpus Christi NAS")
-N_("Corrientes")
-N_("Corsicana")
-N_("Cortez")
-N_("Corumba")
-N_("Costa Rica")
-N_("Cotulla")
-N_("Council Bluffs")
-N_("Coventry")
-N_("Covington")
-N_("Cozumel")
-N_("Craig")
-N_("Cranfield")
-N_("Crescent City")
-N_("Creston")
-N_("Crestview")
-N_("Croatia")
-N_("Cross City")
-N_("Crossville")
-N_("Crotone")
-N_("Cuba")
-N_("Cuba Awrs")
-N_("Cuernavaca")
-N_("Cuiaba")
-N_("Culdrose")
-N_("Culiacan")
-N_("Cumana")
-N_("Cumberland")
-N_("Curitiba")
-N_("Curitiba Apt")
-N_("Custer")
-N_("Cut Bank")
-N_("Cuzco")
-N_("Cyprus")
-N_("Czech Republic")
-N_("Dagali")
-N_("Daggett")
-N_("Dalhart")
-N_("Dalian")
-N_("Dallas-Addison")
-N_("Dallas-Fort Worth")
-N_("Dallas-Love Field")
-N_("Dallas-Redbird")
-N_("Da Nang")
-N_("Danbury")
-N_("Danville")
-N_("Dar-El-Beida")
-N_("Davenport")
-N_("David")
-N_("Dawadmi")
-N_("Dayton")
-N_("Daytona Beach")
-N_("Dayton-Fairborn")
-N_("Dayton-South Airport")
-N_("Dead Horse")
-N_("Deauville-Saint-Gatien")
-N_("Decatur")
-N_("Decimomannu")
-N_("Decorah")
-N_("Deelen")
-N_("Dekalb/Peachtree")
-N_("Delaware")
-N_("Del Bajio")
-N_("Del Rio")
-N_("Delta")
-N_("Deming")
-N_("Den Helder/De Kooy")
-N_("Denison")
-N_("Denmark")
-N_("Denton")
-N_("Denver")
-N_("Denver-Aurora")
-N_("Denver-Broomfield")
-N_("Denver-Cherry Knolls")
-N_("Desert Rock")
-N_("Des Moines")
-N_("Destin")
-N_("Detroit")
-N_("Detroit Lakes")
-N_("Detroit-Taylor")
-N_("Detroit/Ypsilanti")
-N_("Devils Lake")
-N_("Devils Lake (2)")
-N_("Dhahran")
-N_("Dickinson")
-N_("Dijon")
-N_("Dillingham")
-N_("Dillon")
-N_("Dinard")
-N_("District of Columbia")
-N_("Diyarbakir")
-N_("Dnipropetrovsk")
-N_("Dobbiaco")
-N_("Dodge City")
-N_("Doha")
-N_("Dole")
-N_("Dominican Republic")
-N_("Donetsk")
-N_("Dongsha")
-N_("Dongshi")
-N_("Don Torcuato")
-N_("Dortmund-Wickede")
-N_("Dothan")
-N_("Douglas")
-N_("Dover")
-N_("Dresden-Klotzsche")
-N_("Drummond")
-N_("Dubai")
-N_("Dubbo")
-N_("Dublin")
-N_("Du Bois")
-N_("Dubrovnik")
-N_("Dubuque")
-N_("Dugway")
-N_("Duluth")
-N_("Dundee")
-N_("Durango")
-N_("Durango Awrs")
-N_("Durazno")
-N_("Durban Louis Botha ")
-N_("Dusseldorf")
-N_("Dutch Harbor")
-N_("Dyersburg")
-N_("Eagle")
-N_("Eagle Range")
-N_("East London")
-N_("East Midlands")
-N_("East St Louis")
-N_("Eau Claire")
-N_("Ecuador")
-N_("Edinburgh")
-N_("Edmonton")
-N_("Edmonton/Villeneuve")
-N_("Eduardo Gomes International")
-N_("Edwards AFB")
-N_("Egilsstadir")
-N_("Eglin")
-N_("Eglington/Londonderry")
-N_("Egypt")
-N_("Eindhoven")
-N_("Ekofisk")
-N_("Elazig")
-N_("El Centro")
-N_("El Dorado")
-N_("Elefsis")
-N_("Elfin Cove")
-N_("Elizabeth City")
-N_("Elk City")
-N_("Elkhart")
-N_("Elkins")
-N_("Elko")
-N_("Elmira")
-N_("El Monte")
-N_("El Paso")
-N_("El Salvador")
-N_("El Salvador Int.")
-N_("Elsenborn")
-N_("Ely")
-N_("Emmonak")
-N_("Emporia")
-N_("Enid")
-N_("Enid/Woodring")
-N_("Enosburg Falls")
-N_("Ephrata")
-N_("Ercan")
-N_("Erie")
-N_("Erzurum")
-N_("Esbjerg")
-N_("Escanaba")
-N_("Esfahan")
-N_("Eskisehir")
-N_("Estherville")
-N_("Estonia")
-N_("Eugene")
-N_("Eureka")
-N_("Europe")
-N_("Evanston")
-N_("Evansville")
-N_("Everett")
-N_("Evergreen")
-N_("Evreux-Fauville")
-N_("Exeter")
-N_("Ezeiza")
-N_("Fagernes")
-N_("Fairbanks")
-N_("Fairchild")
-N_("Fairfield")
-N_("Fairmont")
-N_("Fallon")
-N_("Falls City")
-N_("Falmouth-Otis AFB")
-N_("Farbanks/Eielson AFB")
-N_("Fargo")
-N_("Farmingdale")
-N_("Farmington")
-N_("Farmville")
-N_("Faro")
-N_("Fayetteville")
-N_("Feng Nin")
-N_("Fergus Falls")
-N_("Fernando De Noronha")
-N_("Ferrara")
-N_("Figari")
-N_("Findlay")
-N_("Finland")
-N_("Firenze")
-N_("Fitchburg")
-N_("Flagstaff")
-N_("Flint")
-N_("Flippin")
-N_("Florence")
-N_("Florennes")
-N_("Flores")
-N_("Florianopolis")
-N_("Florida")
-N_("Floro")
-N_("Fond Du Lac")
-N_("Forde/Bringeland")
-N_("Forli")
-N_("Formosa")
-N_("Fortaleza")
-N_("Fort Belvoir")
-N_("Fort Benning")
-N_("Fort Bragg")
-N_("Fort Campbell")
-N_("Fort Carson")
-N_("Fort Collins")
-N_("Fort Collins/Lovel")
-N_("Fort Dodge")
-N_("Fort Drum")
-N_("Fort Eustis")
-N_("Fort Greely/Allen AAF")
-N_("Fort Huachuca")
-N_("Fort Knox")
-N_("Fort Lauderdale")
-N_("Fort Lauderdale (International)")
-N_("Fort Leonard")
-N_("Fort Lewis")
-N_("Fort Madison")
-N_("Fort Meade")
-N_("Fort Myers (Page Field)")
-N_("Fort Myers (Southwest Florida International)")
-N_("Fort Polk-Leesville")
-N_("Fort Riley")
-N_("Fort Sill")
-N_("Fort Smith")
-N_("Fort Stewart")
-N_("Fort Stockton")
-N_("Fort Wayne")
-N_("Fort Worth-Alliance")
-N_("Fort Worth-Meacham")
-N_("Fort Worth NAS")
-N_("Fourchon")
-N_("Foz Do Iguacu")
-N_("France")
-N_("Frankfort")
-N_("Frankfurt/Main")
-N_("Franklin")
-N_("Fredericton")
-N_("Freeport")
-N_("Frenchville")
-N_("Fresno")
-N_("Fresno-Chandler")
-N_("Friday Harbor")
-N_("Friedrichshafen")
-N_("Frigg")
-N_("Frontone")
-N_("Frosinone")
-N_("Fryeburg")
-N_("Fujairah")
-N_("Fuji Ab")
-N_("Fukue Airport")
-N_("Fukui Airport")
-N_("Fukuoka Airport")
-N_("Fullerton")
-N_("Funchal")
-N_("FYR Macedonia")
-N_("Gadsden")
-N_("Gage")
-N_("Gainesville")
-N_("Galax-Hillsville")
-N_("Galbraith Lake")
-N_("Galeao")
-N_("Galena")
-N_("Galesburg")
-N_("Gallup")
-N_("Galveston")
-N_("Gambell")
-N_("Gander")
-N_("Garden City")
-N_("Gary")
-N_("Gassim")
-N_("Gatineau")
-N_("Gaziantep")
-N_("Gdansk")
-N_("Geneve")
-N_("Genova")
-N_("George Airport")
-N_("Georgetown")
-N_("Georgia")
-N_("Germany")
-N_("Ghardaia")
-N_("Ghedi")
-N_("Gibraltar")
-N_("Gifu Ab")
-N_("Gila Bend")
-N_("Gillette")
-N_("Gilze-Rijen")
-N_("Gioia del Colle")
-N_("Girona")
-N_("Gizan")
-N_("Glasgow")
-N_("Glendive")
-N_("Glens Falls")
-N_("Goiania")
-N_("Goldsboro")
-N_("Goodland")
-N_("Goose Bay")
-N_("Goteborg (Landvetter)")
-N_("Goteborg (Save)")
-N_("Granada")
-N_("Grand Canyon")
-N_("Grand Cayman")
-N_("Grand Forks")
-N_("Grand Island")
-N_("Grand Isle")
-N_("Grand Junction")
-N_("Grand Marais")
-N_("Grand Rapids")
-N_("Grandview")
-N_("Grangeville")
-N_("Grants")
-N_("Graz")
-N_("Great Falls")
-N_("Greece")
-N_("Greeley")
-N_("Green Bay")
-N_("Green River")
-N_("Greensboro")
-N_("Greenville")
-N_("Greenville-Spartanburg")
-N_("Greenwood")
-N_("Grenoble-Saint-Geoirs")
-N_("Griffiss AFB")
-N_("Groningen")
-N_("Grosseto")
-N_("Groton")
-N_("Guadalajara")
-N_("Guadalupe Pass")
-N_("Guanare")
-N_("Guangzhou")
-N_("Guantanamo")
-N_("Guarany")
-N_("Guaratingueta")
-N_("Guarulhos")
-N_("Guatemala")
-N_("Guayaquil/Simon Bolivar")
-N_("Guaymas")
-N_("Guernsey")
-N_("Guidonia")
-N_("Gulfport")
-N_("Gulkana")
-N_("Gullfax C")
-N_("Gunnison")
-N_("Gunnison (2)")
-N_("Guriat")
-N_("Gustavus")
-N_("Guymon")
-N_("Habana")
-N_("Hachijojima Airport")
-N_("Hachinohe Ab")
-N_("Hafr Al-Batin")
-N_("Hagerstown")
-N_("Hail")
-N_("Hailey-Sun Valley")
-N_("Haines")
-N_("Haiti")
-N_("Hakodate Airport")
-N_("Halifax")
-N_("Hamamatsu Ab")
-N_("Hamburg")
-N_("Hamburg-Finkenwerder")
-N_("Hamilton")
-N_("Hammerfest")
-N_("Hampton")
-N_("Hanamaki Airport")
-N_("Hancock")
-N_("Hangzhou")
-N_("Hanksville")
-N_("Hannover")
-N_("Ha Noi")
-N_("Harbor Beach")
-N_("Harlingen")
-N_("Harlowton")
-N_("Harrisburg")
-N_("Harrison")
-N_("Harstad/Narvik/Evenes")
-N_("Hartford")
-N_("Hassi-Messaoud")
-N_("Hastings")
-N_("Haugesund")
-N_("Havre")
-N_("Hawaii")
-N_("Hawthorne")
-N_("Hayden")
-N_("Hayes River")
-N_("Hays")
-N_("Hayward")
-N_("Healy River")
-N_("Helena")
-N_("Helsinki")
-N_("Henderson")
-N_("Hengchun")
-N_("Hermosillo")
-N_("Hibbing")
-N_("Hickory")
-N_("Hill City")
-N_("Hillsboro")
-N_("Hilo")
-N_("Hinesville")
-N_("Hiroshima Airport")
-N_("Hobart")
-N_("Hobbs")
-N_("Ho Chi Minh")
-N_("Hodeidah")
-N_("Hof")
-N_("Hoffman")
-N_("Hofu Ab")
-N_("Hohenems")
-N_("Holguin")
-N_("Homer")
-N_("Homestead AFB")
-N_("Hondo")
-N_("Honduras")
-N_("Hong Kong")
-N_("Honningsvag")
-N_("Honolulu")
-N_("Hoonah")
-N_("Hoquiam")
-N_("Hot Springs")
-N_("Houghton Lake")
-N_("Houlton")
-N_("Houma")
-N_("Houston-Bush")
-N_("Houston-Clover")
-N_("Houston-Ellington Field")
-N_("Houston-Hobby")
-N_("Houston-Hooks")
-N_("Howard AFB")
-N_("Hsinchu")
-N_("Huanuco")
-N_("Huehuetenango")
-N_("Hulien")
-N_("Humberside")
-N_("Hungary")
-N_("Huntington")
-N_("Huntsville")
-N_("Hurlburt")
-N_("Huron")
-N_("Hutchinson")
-N_("Hyakuri Ab")
-N_("Hyannis")
-N_("Hyderabad")
-N_("Hyeres-Le Palyvestre")
-N_("Iasi")
-N_("Ibiza")
-N_("Iceland")
-N_("Ichikawa")
-N_("Idaho")
-N_("Idaho Falls")
-N_("Iguazu")
-N_("Iki Airport")
-N_("Ilan")
-N_("Iliamna")
-N_("Illinois")
-N_("Imperial")
-N_("Imperial (2)")
-N_("Imperial Beach")
-N_("In Amenas")
-N_("India")
-N_("Indiana")
-N_("Indianapolis")
-N_("Indian Springs")
-N_("Innsbruck")
-N_("International Falls")
-N_("Intracoastal")
-N_("Inverness")
-N_("Inyokern")
-N_("Iowa")
-N_("Iowa City")
-N_("Iqaluit")
-N_("Iquique/Diego Arac")
-N_("Iquitos")
-N_("Iraklion")
-N_("Iran, Islamic Republic of")
-N_("Ireland")
-N_("Iron Mountain")
-N_("Ironwood")
-N_("Iruma Ab")
-N_("Islamabad")
-N_("Isle of Man")
-N_("Islip")
-N_("Istanbul")
-N_("Itaituba")
-N_("Italy")
-N_("Ithaca")
-N_("Ivano-Frankivsk")
-N_("Iwakuni MCAS")
-N_("Iwojima")
-N_("Ixtapa")
-N_("Izmir/Adnan Menderes")
-N_("Izmir/Cigli")
-N_("Izmit")
-N_("Izumo Airport")
-N_("Jackson")
-N_("Jacksonville")
-N_("Jacksonville-Craig Airport")
-N_("Jacksonville NAS")
-N_("Jaffrey")
-N_("Jamaica")
-N_("Jamestown")
-N_("Janesville")
-N_("Jan Smuts")
-N_("Japan")
-N_("Jeddah King Abdul Aziz International Airport")
-N_("Jefferson City")
-N_("Jerez")
-N_("Jersey")
-N_("Jinotega")
-N_("Johan A. Pengel")
-N_("Johnstown")
-N_("Jonesboro")
-N_("Jonkoping")
-N_("Joplin")
-N_("Jordan")
-N_("Juanjui")
-N_("Juan Santamaria")
-N_("Juigalpa")
-N_("Jujuy")
-N_("Juliaca")
-N_("Junction")
-N_("Juneau")
-N_("Kadena Ab")
-N_("Kagoshima Airport")
-N_("Kahului")
-N_("Kailua-Kona")
-N_("Kake")
-N_("Kalamata")
-N_("Kalamazoo")
-N_("Kalispell")
-N_("Kamigoto")
-N_("Kaneohe")
-N_("Kangshan")
-N_("Kanoya Ab")
-N_("Kansai International Airport")
-N_("Kansas")
-N_("Kansas City")
-N_("Kansas City-Gladstone")
-N_("Kaohsiung")
-N_("Karachi")
-N_("Karup")
-N_("Kassel-Calden")
-N_("Kasumigaura Ab")
-N_("Kasuminome Ab")
-N_("Katowice")
-N_("Kavala")
-N_("Kayseri")
-N_("Kazan")
-N_("Kearney")
-N_("Keene")
-N_("Kefallinia")
-N_("Keflavik")
-N_("Kenai")
-N_("Kenosha")
-N_("Kentucky")
-N_("Keokuk")
-N_("Kerkira")
-N_("Kerman")
-N_("Ketchikan")
-N_("Key West")
-N_("Key West NAS")
-N_("Khabarovsk")
-N_("Khamis Mushait")
-N_("Kharkiv")
-N_("Kikai Island")
-N_("Killeen")
-N_("Killeen-Ft Hood")
-N_("Killeen-Gray AAF")
-N_("King Khaled International Airport")
-N_("Kingman")
-N_("King Salmon")
-N_("Kingston")
-N_("Kingsville")
-N_("Kinloss")
-N_("Kinston")
-N_("Kirkenes")
-N_("Kirksville")
-N_("Kiruna")
-N_("Kisarazu Ab")
-N_("Kishineu")
-N_("Kitakyushu Airport")
-N_("Klagenfurt")
-N_("Klamath Falls")
-N_("Klawock")
-N_("Kleine Brogel")
-N_("Kliningrad")
-N_("Knoxville")
-N_("Knoxville-Downtown")
-N_("Kobenhavn/Kastrup")
-N_("Kobenhavn/Roskilde")
-N_("Kochi Airport")
-N_("Kodiak")
-N_("Kogalniceanu")
-N_("Kogalym")
-N_("Koksijde")
-N_("Kolding/Vandrup")
-N_("Koln/Bonn")
-N_("Komatsu Ab")
-N_("Komatsujima Ab")
-N_("Konya")
-N_("Korea, Democratic People's Republic of")
-N_("Korea, Republic of")
-N_("Kos")
-N_("Kotzebue")
-N_("Kozani")
-N_("Krakow")
-N_("Krasnodar")
-N_("Krasnoyarsk")
-N_("Kristiansand/Kjevik")
-N_("Kristiansund/Kvernberget")
-N_("Kryviy Rig/Lozovatka")
-N_("Kumamoto Airport")
-N_("Kunming")
-N_("Kushiro Airport")
-N_("Kuwait")
-N_("Kyiv/Boryspil")
-N_("Kyiv/Zhulyany")
-N_("La Ceiba")
-N_("Laconia")
-N_("La Coruna")
-N_("La Crosse")
-N_("La Esperanza")
-N_("Lafayette")
-N_("La Grande")
-N_("Lahaina")
-N_("Lahore")
-N_("Lajes")
-N_("La Junta")
-N_("Lake Charles")
-N_("Lake Hood")
-N_("Lakehurst")
-N_("Lakeland")
-N_("Lake Tahoe")
-N_("Lakeview")
-N_("Lamar")
-N_("La Mesa")
-N_("Lamezia")
-N_("Lamoni")
-N_("Lampedusa")
-N_("Lanai")
-N_("Lancaster")
-N_("Lander")
-N_("Langebaanweg")
-N_("Langley AFB")
-N_("Lannion")
-N_("Lansing")
-N_("Lanzhou")
-N_("La Paz")
-N_("La Paz/Alto")
-N_("Laramie")
-N_("Laredo")
-N_("Larnaka")
-N_("La Romana")
-N_("Las Americas")
-N_("Las Tunas")
-N_("Las Vegas")
-N_("Latina")
-N_("Latrobe")
-N_("Laughlin")
-N_("Laurel")
-N_("La Verne")
-N_("Lawrence")
-N_("Lawton")
-N_("Leadville")
-N_("Learmouth")
-N_("Lebanon")
-N_("Lecce")
-N_("Leeds and Bradford")
-N_("Leesburg")
-N_("Leeuwarden")
-N_("Le Havre-Octeville")
-N_("Leipzig-Schkeuditz")
-N_("Leknes")
-N_("Le Mans")
-N_("Le Marine")
-N_("Lemmon")
-N_("Lemoore")
-N_("Leticia/Vasquez Cobo")
-N_("Le Touquet")
-N_("Leuchars")
-N_("Lewisburg")
-N_("Lewiston")
-N_("Lewistown")
-N_("Lexington")
-N_("Liberal")
-N_("Liberia")
-N_("Libya")
-N_("Lichtenburg")
-N_("Lidgerwood")
-N_("Liege")
-N_("Lihue")
-N_("Lille-Lesquin")
-N_("Lima-Callao")
-N_("Limnos")
-N_("Limoges")
-N_("Limon")
-N_("Lincoln")
-N_("Linz")
-N_("Lisboa")
-N_("Lista")
-N_("Litchfield")
-N_("Lithuania")
-N_("Little Rock")
-N_("Little Rock AFB")
-N_("Livermore")
-N_("Liverpool")
-N_("Livingston")
-N_("Ljubljana")
-N_("Logan")
-N_("Lolland Falster")
-N_("Lompoc")
-N_("London")
-N_("London/City")
-N_("London/Gatwick")
-N_("London/Heathrow")
-N_("London/Stansted")
-N_("Londrina")
-N_("Lone Rock")
-N_("Long Beach")
-N_("Longview")
-N_("Lorient-Lann-Bihoue")
-N_("Los Alamos")
-N_("Los Angeles")
-N_("Los Mochis")
-N_("Lossiemouth")
-N_("Louisville")
-N_("Louisville-Standiford Field")
-N_("Lousiana")
-N_("Lovelock")
-N_("Lubbock")
-N_("Lubeck-Blankensee")
-N_("Lufkin")
-N_("Lugano")
-N_("Luqa")
-N_("Luton")
-N_("Luxembourg")
-N_("Luxeuil")
-N_("Luxor")
-N_("Lviv")
-N_("Lynchburg")
-N_("Lyneham")
-N_("Lyon-Bron")
-N_("Lyon-Satolas")
-N_("Maastricht")
-N_("Macae")
-N_("Macapa")
-N_("Maceio")
-N_("Macon")
-N_("Madinah")
-N_("Madison")
-N_("Madras/Minambakkam")
-N_("Madrid (Barajas)")
-N_("Madrid (Cuatro Vientos)")
-N_("Magadan")
-N_("Magdalena")
-N_("Maine")
-N_("Makhachkala")
-N_("Makkah")
-N_("Makung")
-N_("Malad City")
-N_("Malaga")
-N_("Malatya")
-N_("Maldonado/Punta Est")
-N_("Malmo/Sturup")
-N_("Malta")
-N_("Mammoth Lakes")
-N_("Managua")
-N_("Manassas")
-N_("Manaus")
-N_("Manchester")
-N_("Mangilsan Ab")
-N_("Manhattan")
-N_("Manisa")
-N_("Manistee")
-N_("Manitoba")
-N_("Manitowoc")
-N_("Mankato")
-N_("Mansfield")
-N_("Manta")
-N_("Manzanillo")
-N_("Maraba")
-N_("Maracaibo-La Chinita")
-N_("Maracay-B.A.Sucre")
-N_("Marathon")
-N_("Mar Del Plata")
-N_("Margarita")
-N_("Marianna")
-N_("Marib")
-N_("Maribor")
-N_("Marietta")
-N_("Marino di Ravenna")
-N_("Marion")
-N_("Marion-Wytheville")
-N_("Marseille-Provence")
-N_("Marseilles")
-N_("Marshall")
-N_("Marshalltown")
-N_("Marshfield")
-N_("Marte")
-N_("Marthas Vineyard")
-N_("Martinsburg")
-N_("Martinsville")
-N_("Maryland")
-N_("Marysville")
-N_("Marysville-Beale AFB")
-N_("Mashhad")
-N_("Masirah")
-N_("Mason City")
-N_("Massachusetts")
-N_("Massena")
-N_("Matamoros")
-N_("Matsumoto Airport")
-N_("Matsushima Ab")
-N_("Matsuyama Airport")
-N_("Mattoon")
-N_("Mayaguez")
-N_("Mayport")
-N_("Mazatlan")
-N_("Mazu")
-N_("McAlester")
-N_("McAllen")
-N_("McCall")
-N_("McCarthy")
-N_("McClellan")
-N_("McComb")
-N_("McCook")
-N_("McGrath")
-N_("Mc Gregor")
-N_("Meacham")
-N_("Medford")
-N_("Medicine Lodge")
-N_("Mehamn")
-N_("Mekoryuk")
-N_("Melbourne")
-N_("Melfa")
-N_("Melilla")
-N_("Memambetsu Airport")
-N_("Memphis")
-N_("Memphis-NAS")
-N_("Mendoza")
-N_("Mene Grande")
-N_("Menominee")
-N_("Menorca")
-N_("Merced")
-N_("Merida")
-N_("Meridian")
-N_("Meridian-Lauderdale")
-N_("Merril Field")
-N_("Mersa Matruh")
-N_("Mesa-Falcon Field")
-N_("Metabaru Ab")
-N_("Metz-Frescaty")
-N_("Mexicali")
-N_("Mexico")
-N_("Miami")
-N_("Miami-Kendall")
-N_("Miami-Opa Locka")
-N_("Michigan")
-N_("Middle East")
-N_("Middleton Island")
-N_("Middletown")
-N_("Midland")
-N_("Miho Ab")
-N_("Milano/Linate")
-N_("Milano/Malpensa")
-N_("Miles City")
-N_("Milford")
-N_("Millinocket")
-N_("Millville")
-N_("Milton")
-N_("Milwaukee")
-N_("Milwaukee-Timmerman")
-N_("Minamitorishima")
-N_("Minatitlan")
-N_("Minchumina")
-N_("Mineralnye Vody")
-N_("Mineral Wells")
-N_("Minneapolis")
-N_("Minneapolis [2]")
-N_("Minneapolis [3]")
-N_("Minnesota")
-N_("Minocqua")
-N_("Minot")
-N_("Minot AFB")
-N_("Misawa Ab")
-N_("Mississippi")
-N_("Missoula")
-N_("Missouri")
-N_("Mitchell")
-N_("Mitilini")
-N_("Miyakejima Airport")
-N_("Miyazaki Airport")
-N_("Moa")
-N_("Mobile Downtown")
-N_("Mobile Regional Airport")
-N_("Mobridge")
-N_("Modesto")
-N_("Mo I Rana")
-N_("Mojave")
-N_("Molde")
-N_("Moldova")
-N_("Moline-Quad Cities")
-N_("Molokai")
-N_("Mombetsu Airport")
-N_("Monchengladbach")
-N_("Monclova")
-N_("Moncton")
-N_("Monida")
-N_("Monpellier-Mediterrannee")
-N_("Monroe")
-N_("Montague")
-N_("Montana")
-N_("Mont-de-Marsan")
-N_("Monte Argentario")
-N_("Monte Bisbino")
-N_("Monte Calamita")
-N_("Monte Cimone")
-N_("Montego Bay")
-N_("Monte Malanotte")
-N_("Monterey")
-N_("Monterrey")
-N_("Monte Scuro")
-N_("Monte Terminillo")
-N_("Montevideo/Carrasco")
-N_("Montgomery")
-N_("Montgomery-Maxwell AFB")
-N_("Monticello")
-N_("Montpelier")
-N_("Montreal Dorval")
-N_("Montreal Mirabel")
-N_("Montreal Saint-Hubert")
-N_("Montrose")
-N_("Montrose (2)")
-N_("Morelia")
-N_("Morgantown")
-N_("Moriarty")
-N_("Morocco")
-N_("Morristown")
-N_("Moscow Domodedovo")
-N_("Moscow Sheremetyevo")
-N_("Moses Lake")
-N_("Mosinee")
-N_("Mosjoen")
-N_("Moultrie")
-N_("Mountain Home")
-N_("Mountain View")
-N_("Mount Clemens")
-N_("Mount Holly")
-N_("Mount Shasta")
-N_("Mount Vernon")
-N_("Mount Wilson")
-N_("Mt Washington")
-N_("Mugla/Dalaman")
-N_("Muir")
-N_("Mullan")
-N_("Mullen")
-N_("Munchen")
-N_("Muncie")
-N_("Munster/Osnabruck")
-N_("Murcia")
-N_("Murmansk")
-N_("Mus")
-N_("Muscatine")
-N_("Muscle Shoals")
-N_("Muskegon")
-N_("Mykonos")
-N_("Myrtle Beach")
-N_("Nabesna/Devil Mt.")
-N_("Nacogdoches")
-N_("Nagasaki Airport")
-N_("Nagoya Airport")
-N_("Nagpur Sonegaon")
-N_("Naha Airport")
-N_("Najran")
-N_("Nakashibetsu Airport")
-N_("Nalchik")
-N_("Namsos")
-N_("Nancy-Essey")
-N_("Nancy-Ochey")
-N_("Nankishirahama Airport")
-N_("Nanning")
-N_("Nantes Adlantique")
-N_("Nantucket")
-N_("Napa")
-N_("Naples")
-N_("Napoli")
-N_("Narvik")
-N_("Nasa Shuttle")
-N_("Nashua")
-N_("Nashville")
-N_("Nassau")
-N_("Natal")
-N_("Natchez")
-N_("Nawabshah")
-N_("Nebraska")
-N_("Needles")
-N_("Nenana")
-N_("Netherlands")
-N_("Neuquen")
-N_("Nevada")
-N_("Newark")
-N_("New Bedford")
-N_("New Bern")
-N_("New Braunfels")
-N_("New Brunswick")
-N_("Newburgh")
-N_("Newcastle")
-N_("New Delhi/Palam")
-N_("Newfoundland")
-N_("New Hampshire")
-N_("New Haven")
-N_("New Iberia")
-N_("New Jersey")
-N_("New Mexico")
-N_("New Orleans")
-N_("New Orleans-Lakefront")
-N_("New Orleans NAS")
-N_("Newport")
-N_("Newport News")
-N_("New Port Richey")
-N_("New River")
-N_("New Tokyo International Airport")
-N_("Newton")
-N_("New York")
-N_("New York-JFK Arpt")
-N_("New York-La Guardia")
-N_("New Zealand")
-N_("Niagara Falls")
-N_("Nicaragua")
-N_("Nice-Cote d'Azur")
-N_("Niigata Airport")
-N_("Nimes-Garons")
-N_("Nipawin")
-N_("Nis")
-N_("Nizhny Novgorod")
-N_("N Las Vegas")
-N_("N Myrtle Beach")
-N_("Nogales")
-N_("Nome")
-N_("Norfolk")
-N_("Norfolk Island")
-N_("Norfolk NAS")
-N_("Norrkoping")
-N_("North Adams")
-N_("North Bend")
-N_("North Carolina")
-N_("North Conway")
-N_("North Dakota")
-N_("Northeast Philadelphia")
-N_("North Kingstown")
-N_("North Platte")
-N_("Northway")
-N_("Northwest Territories")
-N_("Norway")
-N_("Norwich")
-N_("Norwood")
-N_("Notodden")
-N_("Novara/Cameri")
-N_("Nova Scotia")
-N_("Novosibirsk")
-N_("Nueva Gerona")
-N_("Nueva Ocotepeque")
-N_("Nuevo Laredo")
-N_("Nurnberg")
-N_("Nyutabaru Ab")
-N_("Oahu")
-N_("Oak Harbor")
-N_("Oakland")
-N_("Oaxaca")
-N_("Oberpfaffenhofen")
-N_("Obihiro Airport")
-N_("Ocala")
-N_("Oceanside")
-N_("Odense")
-N_("Odesa")
-N_("Oelwen")
-N_("Ogden")
-N_("Ogden-Hill AFB")
-N_("Ogdensburg")
-N_("Ohio")
-N_("Ohrid")
-N_("Oita Airport")
-N_("Ojika Island")
-N_("Okayama Airport")
-N_("Oki Airport")
-N_("Okinoerabu")
-N_("Oklahoma")
-N_("Oklahoma City")
-N_("Oklahoma City-Bethany")
-N_("Oklahoma City-Midwest City")
-N_("Okushiri Island")
-N_("Olathe")
-N_("Olathe/Ind.")
-N_("Olbia")
-N_("Olympia")
-N_("Omaha")
-N_("Omaha-Bellevue")
-N_("Omak")
-N_("Oman")
-N_("Ominato Ab")
-N_("Omsk")
-N_("O'Neill")
-N_("Ontario")
-N_("Oostende")
-N_("Oran")
-N_("Oran/Es Senia")
-N_("Orange")
-N_("Orange City")
-N_("Ord-Sharp")
-N_("Oregon")
-N_("Orenburg")
-N_("Orland")
-N_("Orlando")
-N_("Orlando (Orlando International)")
-N_("Orsta-Volda")
-N_("Oruro")
-N_("Osaka International Airport")
-N_("Osan Ab")
-N_("Oscoda")
-N_("Oseberg A")
-N_("Oshima Airport")
-N_("Oshkosh")
-N_("Oslo/Gardenmoen")
-N_("Ostrava")
-N_("Ottawa")
-N_("Ottumwa")
-N_("Owensboro")
-N_("Owyhee")
-N_("Oxford")
-N_("Oxnard")
-N_("Ozark")
-N_("Ozuki Ab")
-N_("Paderborn-Haxterberg")
-N_("Padova")
-N_("Paducah")
-N_("Paekado")
-N_("Paengnyongdo Ab")
-N_("Paganella")
-N_("Page")
-N_("Pakistan")
-N_("Pa Kuei/Bakuai")
-N_("Palacios")
-N_("Palermo")
-N_("Palma de Mallorca")
-N_("Palmdale")
-N_("Palmer")
-N_("Palm Springs")
-N_("Palo Alto")
-N_("Pamplona")
-N_("Panama")
-N_("Panama City")
-N_("Pantelleria")
-N_("Papa")
-N_("Paphos")
-N_("Paraguay")
-N_("Paris")
-N_("Paris/Charles De Gaulle")
-N_("Paris/Le Bourget")
-N_("Paris/Orly")
-N_("Parkersburg")
-N_("Pasco")
-N_("Paso De Los Libres")
-N_("Paso Robles")
-N_("Passo dei Giovi")
-N_("Passo della Cisa")
-N_("Passo Resia")
-N_("Passo Rolle")
-N_("Patna")
-N_("Patterson")
-N_("Patuxent River")
-N_("Pau/Pyrenees")
-N_("Paxson")
-N_("Paysandu")
-N_("Payson")
-N_("Pellston")
-N_("Pelotas")
-N_("Pendleton")
-N_("Pennsylvania")
-N_("Penn Yan")
-N_("Pensacola")
-N_("Pensacola NAS")
-N_("People's Republic of China")
-N_("Peoria")
-N_("Pequot Lakes")
-N_("Pereira/Matecana")
-N_("Perm")
-N_("Perpignan-Rivesaltes")
-N_("Perry-Foley")
-N_("Perth")
-N_("Peru")
-N_("Perugia")
-N_("Pescara")
-N_("Petersburg")
-N_("Petropavlovsk-Kamchatsky")
-N_("Petrozavodsk")
-N_("Philadelphia")
-N_("Philip")
-N_("Philipsburg")
-N_("Phillips")
-N_("Phoenix")
-N_("Phoenix-Deer Valley")
-N_("Phoenix-Goodyear")
-N_("Phoenix-Luke AFB")
-N_("Piacenza")
-N_("Pian Rosa")
-N_("Piedras Negras")
-N_("Pierre")
-N_("Pietersburg")
-N_("Pikeville")
-N_("Pine Bluff")
-N_("Pingtung North")
-N_("Pingtung South")
-N_("Pirassununga")
-N_("Pisa")
-N_("Pisco")
-N_("Pittsburgh")
-N_("Pittsburgh-West Mifflin")
-N_("Plattsburg")
-N_("Plovdiv")
-N_("Plymouth")
-N_("Pocatello")
-N_("Pocos De Caldas")
-N_("Podgorica")
-N_("Podgorica Titograd")
-N_("Pohang Ab")
-N_("Point Hope")
-N_("Point Lay")
-N_("Point Mugu")
-N_("Point Piedras Blanca")
-N_("Poitiers")
-N_("Poland")
-N_("Pompano Beach")
-N_("Ponca City")
-N_("Ponce")
-N_("Ponta Pora")
-N_("Pontiac")
-N_("Pope AFB")
-N_("Poplar Bluff")
-N_("Poprad")
-N_("Port Alexander")
-N_("Port Alsworth")
-N_("Port Angeles")
-N_("Port-Au-Prince")
-N_("Port Elizabeth")
-N_("Porterville")
-N_("Port Hardy")
-N_("Port Hedland")
-N_("Port Heiden")
-N_("Portland")
-N_("Porto")
-N_("Porto Alegre")
-N_("Porto Alegre Apt")
-N_("Portoroz")
-N_("Porto Santo")
-N_("Porto Velho")
-N_("Port Said")
-N_("Portsmouth")
-N_("Portugal")
-N_("Posadas")
-N_("Potosi")
-N_("Poughkeepsie")
-N_("Pownal")
-N_("Poza Rica")
-N_("Poznan")
-N_("Praha")
-N_("Pratica di Mare")
-N_("Prescott")
-N_("Presidente Prudente")
-N_("Presque Isle")
-N_("Prestwick")
-N_("Pretoria")
-N_("Preveza")
-N_("Price-Carbon")
-N_("Pristina")
-N_("Providence")
-N_("Provincetown")
-N_("Provo")
-N_("Pskov")
-N_("Pucallpa")
-N_("Pudahuel")
-N_("Puebla")
-N_("Pueblo")
-N_("Puerto Barrios")
-N_("Puerto Cabezas")
-N_("Puerto Escondido")
-N_("Puerto Lempira")
-N_("Puerto Limon")
-N_("Puerto Maldonado")
-N_("Puerto Montt")
-N_("Puerto Plata")
-N_("Puerto Rico")
-N_("Puerto Suarez")
-N_("Puerto Vallarta")
-N_("Pula")
-N_("Pullman")
-N_("Punta Arenas")
-N_("Punta Cana")
-N_("Punta Gorda")
-N_("Puntilla Lake")
-N_("Pusan/Kimhae")
-N_("Pyongtaek Ab")
-N_("Pyongyang")
-N_("Qatar")
-N_("Quantico")
-N_("Quebec")
-N_("Quebec City")
-N_("Queretaro")
-N_("Quillayute")
-N_("Quimper")
-N_("Quincy")
-N_("Quito/Mariscal Sucre")
-N_("Rabat")
-N_("Raduzhny")
-N_("Rafha")
-N_("Raleigh-Durham")
-N_("Randolph AFB")
-N_("Rapid City")
-N_("Rapid City-Ellsworth AFB")
-N_("Ras Al Khaimah")
-N_("Rawlins")
-N_("Reading")
-N_("Rebun Island")
-N_("Recife")
-N_("Red Bluff")
-N_("Redding")
-N_("Redig")
-N_("Redmond")
-N_("Red Oak")
-N_("Redwood Falls")
-N_("Reggio Calabria")
-N_("Regina")
-N_("Reims-Champagne")
-N_("Rennes")
-N_("Reno")
-N_("Renton")
-N_("Resistencia")
-N_("Reus")
-N_("Reyes")
-N_("Reykjavik")
-N_("Reynosa")
-N_("Rhinelander")
-N_("Rhode Island")
-N_("Riberalta")
-N_("Richmond")
-N_("Rickenbacker")
-N_("Rieti")
-N_("Rifle")
-N_("Rijeka")
-N_("Rimini")
-N_("Rio De Janeiro")
-N_("Rio Gallegos")
-N_("Rio Grande")
-N_("Rioja")
-N_("Rio / Jacarepagua")
-N_("Rionegro/J.M.Cordova")
-N_("Rishiri Island")
-N_("Rivas")
-N_("Rivera")
-N_("Riverside")
-N_("Riverside/March AFB")
-N_("Riverton")
-N_("Rivne")
-N_("Rivolto")
-N_("Riyadh")
-N_("Roanoke")
-N_("Roatan")
-N_("Robore")
-N_("Rochester")
-N_("Rockford")
-N_("Rockland")
-N_("Rockport")
-N_("Rock Springs")
-N_("Rocky Mount")
-N_("Rodos")
-N_("Rogers")
-N_("Roma/Ciampino")
-N_("Roma/Fiumicino")
-N_("Romania")
-N_("Roma/Urbe")
-N_("Rome-Russell")
-N_("Ronchi de' Legionari")
-N_("Ronneby")
-N_("Roosevelt")
-N_("Roros")
-N_("Rorvik/Ryum")
-N_("Rosario")
-N_("Roseburg")
-N_("Roseglen")
-N_("Rost")
-N_("Rostov-Na-Donu")
-N_("Roswell")
-N_("Rotterdam")
-N_("Rouen-Valle de Seine")
-N_("Ruidoso-Sierra Blanca")
-N_("Rurrenabaque")
-N_("Russell")
-N_("Russia")
-N_("Rutland")
-N_("Rygge")
-N_("Rzeszow")
-N_("Saarbrucken")
-N_("Sabine Pass")
-N_("Sacramento")
-N_("Sacramento-Woodland")
-N_("Safford-Municipal Airport")
-N_("Saginaw")
-N_("Saint Anthony")
-N_("Saint-Brieuc-Armor")
-N_("Saint-Dizier-Robinson")
-N_("Saint-Etienne-Boutheon")
-N_("Saint Mary's")
-N_("Saint Mawgan")
-N_("Saint-Nazaire-Montoir")
-N_("Saint Paul")
-N_("Saiq")
-N_("Salalah")
-N_("Salem")
-N_("Salida")
-N_("Salida-Harriet")
-N_("Salina")
-N_("Salinas")
-N_("Salisbury")
-N_("Salmon")
-N_("Salmon (2)")
-N_("Salta")
-N_("Saltillo")
-N_("Salt Lake City")
-N_("Salto")
-N_("Salt point")
-N_("Salvador")
-N_("Salzburg")
-N_("Samara")
-N_("Samos")
-N_("Samsun")
-N_("Sana'A")
-N_("San Andres Isla/Sesquicentenario")
-N_("San Angelo")
-N_("San Antonio")
-N_("San Antonio Del Tachira")
-N_("San Antonio-Kelly AFB")
-N_("San Antonio-Stinson")
-N_("San Carlos")
-N_("Sandane")
-N_("Sandberg")
-N_("Sanderson")
-N_("San Diego")
-N_("San Diego-Brown")
-N_("San Diego-Miramar")
-N_("San Diego-Montgomery")
-N_("San Diego-North Island")
-N_("San Diego-Santee")
-N_("Sandnessjoen/Stokka")
-N_("Sand Point")
-N_("San Fernando De Apure")
-N_("Sanford")
-N_("San Francisco")
-N_("Sangju")
-N_("San Ignacio De Velasco")
-N_("San Joaquin")
-N_("San Jose")
-N_("San Jose De Chiquitos")
-N_("San Jose del Cabo")
-N_("San Jose-Santa Clara")
-N_("San Juan")
-N_("Sankt-Peterburg")
-N_("Sanliurfa")
-N_("San Luis Obispo")
-N_("San Luis Potosi")
-N_("San Miguel")
-N_("San Nicholas Island")
-N_("San Salvador")
-N_("San Sebastian")
-N_("Santa Ana")
-N_("Santa Barbara")
-N_("Santa Cruz")
-N_("Santa Fe")
-N_("Santa Maria")
-N_("Santa Marta/Simon Bolivar")
-N_("Santa Monica")
-N_("Santander")
-N_("Santarem")
-N_("Santa Rosa")
-N_("Santa Rosa de Copan")
-N_("Santiago")
-N_("Santiago de Cuba")
-N_("Santiago Del Estero")
-N_("Santorini")
-N_("Santos")
-N_("Sao Jose Dos Campo")
-N_("Sao Luiz")
-N_("Sao Paulo")
-N_("Sapporo Ab")
-N_("Sarajevo")
-N_("Saranac Lake")
-N_("Sarasota")
-N_("Saratov")
-N_("Sarzana")
-N_("Saskatchewan")
-N_("Saskatoon")
-N_("Sauce Viejo")
-N_("Saudi Arabia")
-N_("Sault Ste Marie")
-N_("Savannah")
-N_("Savannah-Hunter AAF")
-N_("Sawyer AFB")
-N_("Sayun")
-N_("Scatsta")
-N_("Schaffen")
-N_("Schenectady")
-N_("Scilly Isles")
-N_("Scottsbluff")
-N_("Scottsdale")
-N_("Scranton")
-N_("Seattle")
-N_("Seattle-Boeing")
-N_("Sedalia")
-N_("Seeb")
-N_("Selanik")
-N_("Sendai Airport")
-N_("Seoul E Ab")
-N_("Seoul/Kimp'O International Airport")
-N_("Seoul/Yongdungp'O Rokaf Wc")
-N_("Sept-Iles")
-N_("Seul Choix Pt")
-N_("Sevilla")
-N_("Seward")
-N_("Sexton Summit")
-N_("Shanghai")
-N_("Shannon")
-N_("Sharjah")
-N_("Sharm El Sheikhintl")
-N_("Sharurah")
-N_("Shawbury")
-N_("Shearwater")
-N_("Sheboygan")
-N_("Sheldon")
-N_("Shelter Cove")
-N_("Shelton")
-N_("Shenandoah")
-N_("Sheridan")
-N_("Sherman-Denison")
-N_("Shimofusa Ab")
-N_("Shingle Point")
-N_("Shiraz")
-N_("Shishmaref")
-N_("Shizuhama Ab")
-N_("Shoreham")
-N_("Show Low")
-N_("Shreveport Downtown")
-N_("Shreveport Regional")
-N_("Sidney")
-N_("Sigonella")
-N_("Siloam Springs")
-N_("Silver City")
-N_("Sindal")
-N_("Singapore")
-N_("Sioux City")
-N_("Sioux Falls")
-N_("Sitka")
-N_("Sivas")
-N_("Sivrihisar")
-N_("Skagway")
-N_("Skiathos")
-N_("Skien/Geiteryggen")
-N_("Skive")
-N_("Skopje")
-N_("Skwentna")
-N_("Slana")
-N_("Slovakia")
-N_("Slovenia")
-N_("Smithers")
-N_("Smyrna")
-N_("Snowshoe Lake")
-N_("Sochi")
-N_("Socorro")
-N_("Socotra")
-N_("Soda Springs")
-N_("Sofia")
-N_("Sogndal")
-N_("Soldotna")
-N_("Somerset")
-N_("Sonderborg")
-N_("Songmu Ab")
-N_("Sorkjosen")
-N_("South Africa")
-N_("Southampton")
-N_("South Bend")
-N_("South Carolina")
-N_("South Dakota")
-N_("Southend")
-N_("South Marsh Island")
-N_("South Timbalier")
-N_("Spain")
-N_("Sparrevohn")
-N_("Spencer")
-N_("Spickard")
-N_("Split")
-N_("Spokane")
-N_("Spokane-Parkwater")
-N_("Springbok")
-N_("Springfield")
-N_("Stampede Pass")
-N_("State College")
-N_("Stauning")
-N_("Staunton")
-N_("Stavanger/Sola")
-N_("Staverton")
-N_("Stavropol")
-N_("St Cloud")
-N_("Steamboat Springs")
-N_("Stephenville")
-N_("St. George")
-N_("Stillwater")
-N_("St. John's")
-N_("St Johnsbury")
-N_("St Joseph")
-N_("St Louis")
-N_("St Louis-Spirit")
-N_("Stockholm (Arlanda)")
-N_("Stockholm (Bromma)")
-N_("Stockton")
-N_("Stokmarknes/Skagen")
-N_("Stord/Sorstokken")
-N_("Storm Lake")
-N_("Stornoway")
-N_("St Paul")
-N_("St Petersburg")
-N_("St Petersburg / Clearwater")
-N_("Strasbourg")
-N_("Strevell")
-N_("St Simon's Island")
-N_("Stumpy Point")
-N_("Sturgeon Bay")
-N_("Stuttgart")
-N_("Sucre")
-N_("Sumburgh")
-N_("Sumter")
-N_("Sumter (2)")
-N_("Sundsvall-Harnosand")
-N_("Sungshan/Taipei")
-N_("Superior")
-N_("Suriname")
-N_("Sutton")
-N_("Suwon Ab")
-N_("Svalbard")
-N_("Svolvaer/Helle")
-N_("Sweden")
-N_("Swift Current")
-N_("Switzerland")
-N_("Sydney")
-N_("Syktyvkar")
-N_("Sympheropol")
-N_("Syracuse")
-N_("Szczecin")
-N_("Szombathely")
-N_("Tabatinga")
-N_("Tabriz")
-N_("Tabuk")
-N_("Tachikawa Ab")
-N_("Tacna")
-N_("Tacoma")
-N_("Tacoma-Lakewood")
-N_("Tacuarembo")
-N_("Taegu")
-N_("Taegu Ab")
-N_("Taejon")
-N_("Tahoe Valley")
-N_("Taichung")
-N_("Taif")
-N_("Tainan")
-N_("Taiwan")
-N_("Taiyuan")
-N_("Taiz")
-N_("Tajima")
-N_("Takamatsu Airport")
-N_("Talara")
-N_("Talkeetna")
-N_("Tallahassee")
-N_("Tallinn")
-N_("Tamanrasset")
-N_("Tamanrasset/Aguenna")
-N_("Tampa")
-N_("Tampa-Macdill AFB")
-N_("Tampere")
-N_("Tampico")
-N_("Tanana")
-N_("Tanegashima Airport")
-N_("Taos")
-N_("Taoyuan")
-N_("Tapachula")
-N_("Taranto")
-N_("Tarbes")
-N_("Tarija")
-N_("Tarvisio")
-N_("Tatalina")
-N_("Tateyama Ab")
-N_("Taunton")
-N_("Tebessa")
-N_("Tees-Side")
-N_("Tegucigalpa")
-N_("Tehran-Mehrabad")
-N_("Tela")
-N_("Temple")
-N_("Tennessee")
-N_("Tepic")
-N_("Teresina")
-N_("Terre Haute")
-N_("Terrell")
-N_("Teterboro")
-N_("Texarkana")
-N_("Texas")
-N_("The Dalles")
-N_("Thessaloniki")
-N_("Thief River Falls")
-N_("Thiruvananthapuram")
-N_("Thisted")
-N_("Thompson Falls")
-N_("Thumrait")
-N_("Tianjin")
-N_("Tijuana")
-N_("Timisoara")
-N_("Tin City")
-N_("Tirana")
-N_("Tiree")
-N_("Tirgu Mures")
-N_("Tiruchchirapalli")
-N_("Titusville")
-N_("Tivat")
-N_("Tlemcen Zenata")
-N_("Tobias Bolanos")
-N_("Tocumen")
-N_("Togiak Village")
-N_("Tokachi GSDF")
-N_("Tokunoshima Island")
-N_("Tokushima Ab")
-N_("Tokyo Heliport")
-N_("Tokyo International Airport")
-N_("Tokyo New International Airport")
-N_("Toledo")
-N_("Toluca")
-N_("Tonopah")
-N_("Topeka")
-N_("Topeka-Forbes Field")
-N_("Torino/Bric Della Croce")
-N_("Torino/Caselle")
-N_("Toronto")
-N_("Torp")
-N_("Torrance")
-N_("Torreon")
-N_("Tottori Airport")
-N_("Toulouse")
-N_("Toul-Rosieres")
-N_("Tours-St-Symphorien")
-N_("Toussus-Le Noble")
-N_("Townsville")
-N_("Toyama Airport")
-N_("Trabzon")
-N_("Trapani")
-N_("Traverse City")
-N_("Trelew")
-N_("Trenton")
-N_("Trevico")
-N_("Treviso/Istrana")
-N_("Treviso/S.Angelo")
-N_("Trieste")
-N_("Trinidad")
-N_("Tripoli")
-N_("Tromso/Langnes")
-N_("Trondheim/Vaernes")
-N_("Troutdale")
-N_("Troyes/Barberey")
-N_("Truckee")
-N_("Truth or Consequences")
-N_("Tsuiki Ab")
-N_("Tsushima Airport")
-N_("Tucson")
-N_("Tucson-Davis AFB")
-N_("Tucuman")
-N_("Tucumcari")
-N_("Tucurui")
-N_("Tulancingo")
-N_("Tulcea")
-N_("Tulsa")
-N_("Tupelo")
-N_("Turaif")
-N_("Turin")
-N_("Turkey")
-N_("Turku")
-N_("Tuscaloosa")
-N_("Tuxtla Gutierrez")
-N_("Twenthe")
-N_("Twentynine Palms")
-N_("Twin Falls")
-N_("Tyler")
-N_("Tyndall AFB")
-N_("Tyumen")
-N_("Uberaba")
-N_("Ufa")
-N_("Ukiah")
-N_("Ukraine")
-N_("Ulan-Ude")
-N_("Ulsan")
-N_("Ulyanovsk")
-N_("Umea")
-N_("Umiat")
-N_("Unalakleet")
-N_("United Arab Emirates ")
-N_("United Kingdom")
-N_("United States")
-N_("Unst")
-N_("Upington")
-N_("Uruapan")
-N_("Uruguaiana")
-N_("Uruguay")
-N_("Urumqi")
-N_("Utah")
-N_("Utica")
-N_("Utrecht/Soesterberg")
-N_("Utsunomiya Ab")
-N_("Uzhgorod")
-N_("Vadso")
-N_("Vaerlose")
-N_("Vagar")
-N_("Valdez 2")
-N_("Valdosta")
-N_("Valdosta-Moody AFB")
-N_("Valencia")
-N_("Valentine")
-N_("Valera*")
-N_("Valkenburg")
-N_("Valley")
-N_("Valparaiso")
-N_("Valparaiso-Eglin AFB")
-N_("Van")
-N_("Vancouver")
-N_("Vandel")
-N_("Vandenberg AFB")
-N_("Vandenberg Range")
-N_("Van Nuys")
-N_("Varadero")
-N_("Varanasi/Babatpur")
-N_("Varna")
-N_("Vasteras")
-N_("Vaxjo")
-N_("Venezia")
-N_("Venezuela")
-N_("Venice")
-N_("Veracruz")
-N_("Vermillion")
-N_("Vermont")
-N_("Vernal")
-N_("Vero Beach")
-N_("Vicenza")
-N_("Vichy-Charmeil")
-N_("Vichy-Rolla")
-N_("Vicksburg")
-N_("Victoria")
-N_("Viet Nam")
-N_("Vigo")
-N_("Vilhena")
-N_("Villacoublay")
-N_("Villafranca")
-N_("Villahermosa")
-N_("Villamontes")
-N_("Villa Reynolds")
-N_("Vilnius")
-N_("Virginia")
-N_("Virginia Beach")
-N_("Virginia Tech Airport")
-N_("Viru-Viru")
-N_("Visalia")
-N_("Visby")
-N_("Viterbo")
-N_("Vitoria")
-N_("Vladikavkaz")
-N_("Vladivostok")
-N_("Vlieland")
-N_("Vojens/Skrydstrup")
-N_("Volgograd")
-N_("Volkel")
-N_("Volk Field")
-N_("Voronezh")
-N_("Voslau")
-N_("Waco")
-N_("Wadi Al Dawasser Airport")
-N_("Wainwright")
-N_("Wakefield")
-N_("Wakkanai Airport")
-N_("Walla Walla")
-N_("Wallops Island")
-N_("Walnut Ridge")
-N_("Warner Robins")
-N_("Warroad")
-N_("Warszawa")
-N_("Washington")
-N_("Washington/Dulles")
-N_("Waterbury")
-N_("Waterloo")
-N_("Watertown")
-N_("Waterville")
-N_("Waukesha")
-N_("Wausau")
-N_("Waycross")
-N_("Waynesboro")
-N_("Webster City")
-N_("Wejh")
-N_("Wellington")
-N_("Wenatchee")
-N_("Wendover")
-N_("West Atlanta")
-N_("West Burke")
-N_("Westerland")
-N_("Westfield")
-N_("Westhampton")
-N_("West Palm Beach")
-N_("West Virginia")
-N_("West Yellowstone")
-N_("West Yellowstone (2)")
-N_("Wheeling")
-N_("Whidbey Island")
-N_("Whitefield")
-N_("White Plains")
-N_("White Sulphur")
-N_("Whittier")
-N_("Wichita")
-N_("Wichita Falls")
-N_("Wichita-Jabara")
-N_("Wichita-McConnell AFB")
-N_("Wick")
-N_("Wien")
-N_("Wildwood")
-N_("Wilkes - Barre")
-N_("Williams Field")
-N_("Williamsport")
-N_("Williston")
-N_("Willoughby")
-N_("Willow Airport")
-N_("Wilmington")
-N_("Winchester")
-N_("Windsor")
-N_("Windsor Locks")
-N_("Wink")
-N_("Winnemucca")
-N_("Winnipeg")
-N_("Winslow")
-N_("Winston-Salem")
-N_("Winter Haven")
-N_("Winter Park")
-N_("Wiscasset")
-N_("Wisconsin")
-N_("Wisconsin Rapids")
-N_("Wise")
-N_("Woensdrecht")
-N_("Wolf Point")
-N_("Woong Cheon")
-N_("Wooster")
-N_("Worcester")
-N_("Worland")
-N_("Worthington")
-N_("Wrangell")
-N_("Wrightstown / Mcguire AFB")
-N_("Wuchia Observatory")
-N_("Wyoming")
-N_("Xiamen")
-N_("Yacuiba")
-N_("Yakima")
-N_("Yakushima")
-N_("Yakutat")
-N_("Yakutsk")
-N_("Yamagata Airport")
-N_("Yamaguchi Ube Airport")
-N_("Yankton")
-N_("Yao Airport")
-N_("Yechon Ab")
-N_("Yekaterinburg")
-N_("Yellowknife")
-N_("Yellowstone")
-N_("Yemen")
-N_("Yenbo")
-N_("Yeoju Range")
-N_("Yeonpyeungdo")
-N_("Yeovilton")
-N_("Yokosuka Fwf")
-N_("Yokota Ab")
-N_("Yongsan/H-208 Hp")
-N_("Yoro")
-N_("Yosu")
-N_("Youngstown")
-N_("Ypsilanti")
-N_("Yugoslavia")
-N_("Yukon")
-N_("Yuma MCAS")
-N_("Yurimaguas")
-N_("Yuzhno-Sakhalinsk")
-N_("Zacatecas")
-N_("Zadar")
-N_("Zagreb")
-N_("Zakinthos")
-N_("Zama Airfield")
-N_("Zanesville")
-N_("Zaragoza")
-N_("Zell Am See")
-N_("Zuni Pueblo")
-N_("Zurich")
diff --git a/my-evolution/Makefile.am b/my-evolution/Makefile.am
deleted file mode 100644
index 0e727d62b2..0000000000
--- a/my-evolution/Makefile.am
+++ /dev/null
@@ -1,130 +0,0 @@
-INCLUDES = \
- -I$(top_srcdir) \
- -I$(top_srcdir)/shell \
- -I$(top_builddir)/shell \
- -I$(top_srcdir)/calendar \
- -I$(top_builddir)/calendar/cal-client \
- -I$(top_srcdir)/libical/src \
- -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \
- -DEVOLUTION_DATADIR=\""$(datadir)"\" \
- -DEVOLUTION_IMAGESDIR=\""$(imagesdir)"\" \
- -DEVOLUTION_BUTTONSDIR=\""$(buttonsdir)"\" \
- -DEVOLUTION_UIDIR=\""$(evolutionuidir)"\" \
- -DLOCATIONDIR=\""$(Locationdir)"\" \
- -DPREFIX=\""$(prefix)"\" \
- -DG_LOG_DOMAIN=\"evolution-executive-summary\" \
- $(EVOLUTION_EXECUTIVE_SUMMARY_CFLAGS)
-
-IDLS = \
- $(top_srcdir)/mail/Mailer.idl
-
-IDL_GENERATED_H = \
- Mailer.h
-IDL_GENERATED_C = \
- Mailer-common.c \
- Mailer-skels.c \
- Mailer-stubs.c
-IDL_GENERATED = $(IDL_GENERATED_C) $(IDL_GENERATED_H)
-
-$(IDL_GENERATED_H): $(IDLS)
- $(ORBIT_IDL) -I $(srcdir) $(IDL_INCLUDES) $(top_srcdir)/mail/Mailer.idl
-$(IDL_GENERATED_C): $(IDL_GENERATED_H)
-
-summary_sources = \
- $(IDL_GENERATED) \
- component-factory.c \
- component-factory.h \
- e-cell-tri.c \
- e-cell-tri.h \
- e-summary.c \
- e-summary.h \
- e-summary-calendar.c \
- e-summary-calendar.h \
- e-summary-factory.c \
- e-summary-factory.h \
- e-summary-mail.c \
- e-summary-mail.h \
- e-summary-offline-handler.c \
- e-summary-offline-handler.h \
- e-summary-preferences.c \
- e-summary-preferences.h \
- e-summary-rdf.c \
- e-summary-rdf.h \
- e-summary-shown.c \
- e-summary-shown.h \
- e-summary-table.c \
- e-summary-table.h \
- e-summary-tasks.c \
- e-summary-tasks.h \
- e-summary-type.h \
- e-summary-weather.c \
- e-summary-weather.h \
- metar.c \
- metar.h \
- my-evolution-html.h \
- weather.h
-
-summary_libs = \
- $(top_builddir)/shell/libeshell.la \
- $(top_builddir)/widgets/misc/libemiscwidgets.la \
- $(top_builddir)/e-util/libeutil.la \
- $(top_builddir)/calendar/cal-client/libcal-client.la \
- $(top_builddir)/calendar/cal-util/libcal-util.la \
- $(EVOLUTION_EXECUTIVE_SUMMARY_LIBS)
-
-component_LTLIBRARIES = libevolution-executive-summary.la
-libevolution_executive_summary_la_SOURCES = $(summary_sources)
-libevolution_executive_summary_la_LIBADD = $(summary_libs)
-libevolution_executive_summary_la_LDFLAGS = -module -avoid-version
-
-Locationdir = $(privdatadir)
-Location_DATA = Locations
-
-# .server files
-
-server_in_files = GNOME_Evolution_Summary.server.in.in
-
-server_DATA = $(server_in_files:.server.in.in=.server)
-%.server.in: %.server.in.in
- sed -e "s|\@COMPONENTDIR\@|$(componentdir)|" $< > $@
-
-@INTLTOOL_SERVER_RULE@
-
-
-# Glade
-
-glade_DATA = my-evolution.glade
-
-# GConf schemas
-
-schemadir = $(GCONF_SCHEMA_FILE_DIR)
-schema_DATA = apps_evolution_summary.schemas
-
-install-data-local:
- if test -z "$(DESTDIR)" ; then \
- for p in $(schema_DATA) ; do \
- GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(srcdir)/$$p; \
- done \
- fi
-
-# Extra
-
-EXTRA_DIST = \
- $(schema_DATA) \
- $(summary_sources) \
- $(server_in_files) \
- $(server_DATA) \
- $(Location_DATA) \
- $(glade_DATA) \
- ChangeLog.pre-1-4 \
- Locations.h \
- Location-translation-script \
- check-empty.xpm \
- check-filled.xpm \
- check-none.xpm
-
-BUILT_SOURCES = $(IDL_GENERATED) $(server_DATA)
-CLEANFILES = $(BUILT_SOURCES)
-
-dist-hook:
- cd $(distdir); rm -f $(BUILT_SOURCES)
diff --git a/my-evolution/apps_evolution_summary.schemas b/my-evolution/apps_evolution_summary.schemas
deleted file mode 100644
index 840ff00b37..0000000000
--- a/my-evolution/apps_evolution_summary.schemas
+++ /dev/null
@@ -1,141 +0,0 @@
-<gconfschemafile>
- <schemalist>
-
- <!-- Mail section -->
-
- <schema>
- <key>/schemas/apps/evolution/summary/mail/folder_evolution_uris</key>
- <applyto>/apps/evolution/summary/mail/folder_evolution_uris</applyto>
- <owner>evolution</owner>
- <type>list</type>
- <list_type>string</list_type>
- <default>[]</default>
- <locale name="C">
- <short>evolution: URIs of the folders to display in the summary</short>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/evolution/summary/mail/folder_physical_uris</key>
- <applyto>/apps/evolution/summary/mail/folder_physical_uris</applyto>
- <owner>evolution</owner>
- <type>list</type>
- <list_type>string</list_type>
- <default>[]</default>
- <locale name="C">
- <short>Physical URIs of the folders to display in the summary</short>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/evolution/summary/mail/show_full_paths</key>
- <applyto>/apps/evolution/summary/mail/show_full_paths</applyto>
- <owner>evolution</owner>
- <type>bool</type>
- <default>false</default>
- <locale name="C">
- <short>Whether to show the full paths to the mail folders displayed in the summary</short>
- </locale>
- </schema>
-
- <!-- Calendar section -->
-
- <schema>
- <key>/schemas/apps/evolution/summary/calendar/days_shown</key>
- <applyto>/apps/evolution/summary/calendar/days_shown</applyto>
- <owner>evolution</owner>
- <type>int</type>
- <default>0</default>
- <locale name="C">
- <short>Number of days shown in the calendar section</short>
- <long>Use '0' to display one day, '1' to display five days, '2' to display a full week, '3' to display a full month.</long>
- </locale>
- </schema>
-
- <!-- Tasks section -->
-
- <schema>
- <key>/schemas/apps/evolution/summary/tasks/show_all</key>
- <applyto>/apps/evolution/summary/tasks/show_all</applyto>
- <owner>evolution</owner>
- <type>bool</type>
- <default>true</default>
- <locale name="C">
- <short>Whether to display all pending tasks instead of only today's tasks</short>
- </locale>
- </schema>
-
- <!-- RDF section -->
-
- <schema>
- <key>/schemas/apps/evolution/summary/rdf/uris</key>
- <applyto>/apps/evolution/summary/rdf/uris</applyto>
- <owner>evolution</owner>
- <type>list</type>
- <list_type>string</list_type>
- <default>[http://linuxtoday.com/backend/my-netscape.rdf,http://www.salon.com/feed/RDF/salon_use.rdf]</default>
- <locale name="C">
- <short>URIs of the RDF feeds to display in the summary</short>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/evolution/summary/rdf/refresh_time</key>
- <applyto>/apps/evolution/summary/rdf/refresh_time</applyto>
- <owner>evolution</owner>
- <type>int</type>
- <default>600</default>
- <locale name="C">
- <short>Number of seconds between updates of the RDF feeds in the summary</short>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/evolution/summary/rdf/max_items</key>
- <applyto>/apps/evolution/summary/rdf/max_items</applyto>
- <owner>evolution</owner>
- <type>int</type>
- <default>10</default>
- <locale name="C">
- <short>Maximum number of recent items to display for each RDF feed</short>
- </locale>
- </schema>
-
- <!-- Weather section -->
-
- <schema>
- <key>/schemas/apps/evolution/summary/weather/stations</key>
- <applyto>/apps/evolution/summary/weather/stations</applyto>
- <owner>evolution</owner>
- <type>list</type>
- <list_type>string</list_type>
- <default>[KBOS]</default>
- <locale name="C">
- <short>List of weather stations to display in the summary</short>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/evolution/summary/weather/use_metric</key>
- <applyto>/apps/evolution/summary/weather/use_metric</applyto>
- <owner>evolution</owner>
- <type>bool</type>
- <default>false</default>
- <locale name="C">
- <short>Whether to use metric (instead of imperial) units in the summary</short>
- </locale>
- </schema>
-
- <schema>
- <key>/schemas/apps/evolution/summary/weather/refresh_time</key>
- <applyto>/apps/evolution/summary/weather/refresh_time</applyto>
- <owner>evolution</owner>
- <type>int</type>
- <default>600</default>
- <locale name="C">
- <short>Number of seconds between updates of the weather section of the summary</short>
- </locale>
- </schema>
-
- </schemalist>
-</gconfschemafile>
diff --git a/my-evolution/check-empty.xpm b/my-evolution/check-empty.xpm
deleted file mode 100644
index 746b20234e..0000000000
--- a/my-evolution/check-empty.xpm
+++ /dev/null
@@ -1,21 +0,0 @@
-/* XPM */
-static const char * check_empty_xpm[] = {
-"16 16 2 1",
-" c None",
-". c #000000",
-" ",
-" ",
-" ............ ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" . . ",
-" ............ ",
-" ",
-" "};
diff --git a/my-evolution/check-filled.xpm b/my-evolution/check-filled.xpm
deleted file mode 100644
index c0468fc25b..0000000000
--- a/my-evolution/check-filled.xpm
+++ /dev/null
@@ -1,21 +0,0 @@
-/* XPM */
-static const char * check_filled_xpm[] = {
-"16 16 2 1",
-" c None",
-". c #000000",
-" ",
-" ",
-" ............ ",
-" . . ",
-" . . . ",
-" . .. . ",
-" . ... . ",
-" . . ... . ",
-" . .. ... . ",
-" . ..... . ",
-" . ... . ",
-" . . . ",
-" . . ",
-" ............ ",
-" ",
-" "};
diff --git a/my-evolution/check-none.xpm b/my-evolution/check-none.xpm
deleted file mode 100644
index 7213f1c565..0000000000
--- a/my-evolution/check-none.xpm
+++ /dev/null
@@ -1,20 +0,0 @@
-/* XPM */
-static const char * check_none_xpm[] = {
-"16 16 1 1",
-" c None",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/my-evolution/component-factory.c b/my-evolution/component-factory.c
deleted file mode 100644
index 5e93d7f3f8..0000000000
--- a/my-evolution/component-factory.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* component-factory.c
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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@ximian.com>
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string.h>
-
-#include <bonobo/bonobo-object.h>
-#include <bonobo/bonobo-generic-factory.h>
-#include <bonobo/bonobo-context.h>
-#include <bonobo/bonobo-shlib-factory.h>
-#include <bonobo/bonobo-main.h>
-
-#include <shell/evolution-shell-component.h>
-#include <shell/Evolution.h>
-
-#include <gal/widgets/e-gui-utils.h>
-
-#include "e-summary-factory.h"
-#include "e-summary-offline-handler.h"
-#include "e-summary.h"
-#include "e-summary-preferences.h"
-
-#include "component-factory.h"
-
-#define FACTORY_ID "OAFIID:GNOME_Evolution_Summary_ComponentFactory"
-
-#define COMPONENT_ID "OAFIID:GNOME_Evolution_Summary_ShellComponent"
-#define PREFERENCES_CONTROL_ID "OAFIID:GNOME_Evolution_Summary_ConfigControl"
-
-static gint running_objects = 0;
-static ESummaryPrefs *global_preferences = NULL;
-
-static const EvolutionShellComponentFolderType folder_types[] = {
- { "summary", "evolution-today.png", N_("Summary"), N_("Folder containing the Evolution Summary"), FALSE, NULL, NULL },
- { NULL, NULL }
-};
-
-static char *evolution_dir = NULL;
-
-/* EvolutionShellComponent methods and signals */
-
-static EvolutionShellComponentResult
-create_view (EvolutionShellComponent *shell,
- const char *physical_uri,
- const char *folder_type,
- const char *view_info,
- BonoboControl **control_return,
- void *closure)
-{
- EvolutionShellClient *shell_client;
- ESummaryOfflineHandler *offline_handler;
- GNOME_Evolution_Shell corba_shell;
- BonoboControl *control;
-
- if (g_strcasecmp (folder_type, "Summary") != 0) {
- return EVOLUTION_SHELL_COMPONENT_UNSUPPORTEDTYPE;
- }
-
- offline_handler = g_object_get_data (G_OBJECT (shell), "offline-handler");
- shell_client = evolution_shell_component_get_owner (shell);
- corba_shell = evolution_shell_client_corba_objref (shell_client);
- control = e_summary_factory_new_control (physical_uri, corba_shell,
- offline_handler, global_preferences);
- 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)
-{
- GNOME_Evolution_Shell corba_shell;
-
- if (evolution_dir != NULL) {
- evolution_dir = g_strdup (evolution_homedir);
- }
-
- corba_shell = evolution_shell_client_corba_objref (shell_client);
-
- e_summary_folder_init_folder_store (corba_shell);
- e_summary_preferences_init_control (corba_shell);
-}
-
-static void
-owner_unset_cb (EvolutionShellComponent *shell_component,
- gpointer user_data)
-{
- g_free (evolution_dir);
- evolution_dir = NULL;
-
- e_summary_folder_clear_folder_store ();
-}
-
-static BonoboObject *
-create_shell_component (void)
-{
- EvolutionShellComponent *shell_component;
- ESummaryOfflineHandler *offline_handler;
-
- running_objects++;
-
- if (global_preferences == NULL) {
- global_preferences = e_summary_preferences_init ();
- }
-
- shell_component = evolution_shell_component_new (folder_types,
- NULL,
- create_view,
- NULL, NULL,
- NULL, NULL,
- NULL, NULL,
- NULL, NULL);
-
- g_signal_connect (shell_component, "owner_set", G_CALLBACK (owner_set_cb), NULL);
- g_signal_connect (shell_component, "owner_unset", G_CALLBACK (owner_unset_cb), NULL);
-
- offline_handler = e_summary_offline_handler_new ();
- g_object_set_data (G_OBJECT (shell_component), "offline-handler", offline_handler);
- bonobo_object_add_interface (BONOBO_OBJECT (shell_component), BONOBO_OBJECT (offline_handler));
-
- return BONOBO_OBJECT (shell_component);
-}
-
-static BonoboObject *
-factory (BonoboGenericFactory *this,
- const char *object_id,
- void *data)
-{
- if (strcmp (object_id, COMPONENT_ID) == 0)
- return create_shell_component ();
-
- if (strcmp (object_id, PREFERENCES_CONTROL_ID) == 0)
- return e_summary_preferences_create_control ();
-
- g_warning (FACTORY_ID ": Don't know anything about %s", object_id);
-
- return NULL;
-}
-
-BONOBO_ACTIVATION_SHLIB_FACTORY (FACTORY_ID, "Evolution Summary component factory", factory, NULL)
diff --git a/my-evolution/component-factory.h b/my-evolution/component-factory.h
deleted file mode 100644
index f15b012009..0000000000
--- a/my-evolution/component-factory.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* component-factory.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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@ximian.com>
- */
-
-#ifndef __COMPONENT_FACTORY_H__
-#define __COMPONENT_FACTORY_H__
-
-void component_factory_init (void);
-
-#endif
diff --git a/my-evolution/e-cell-tri.c b/my-evolution/e-cell-tri.c
deleted file mode 100644
index d08845f680..0000000000
--- a/my-evolution/e-cell-tri.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright 2002 Ximain, Inc. (www.ximian.com)
- *
- * 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 Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gdk/gdkkeysyms.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <gal/util/e-util.h>
-#include <gal/e-table/e-table-item.h>
-
-#include "e-cell-tri.h"
-
-#include "check-none.xpm"
-#include "check-empty.xpm"
-#include "check-filled.xpm"
-
-#define PARENT_TYPE e_cell_toggle_get_type ()
-
-static GdkPixbuf *checks[3];
-
-static void
-set_value (ECellView *view,
- int model_col,
- int view_col,
- int row,
- int value)
-{
- ECell *ecell = view->ecell;
- ECellToggle *toggle = E_CELL_TOGGLE (ecell);
-
- if (value >= toggle->n_states)
- value = 1;
-
- e_table_model_set_value_at (view->e_table_model,
- model_col, row, GINT_TO_POINTER (value));
-}
-
-static gint
-event (ECellView *ecell_view,
- GdkEvent *event,
- int model_col,
- int view_col,
- int row,
- ECellFlags flags,
- ECellActions *actions)
-{
- void *_value = e_table_model_value_at (ecell_view->e_table_model, model_col, row);
- const int value = GPOINTER_TO_INT (_value);
-
- switch (event->type) {
- case GDK_KEY_PRESS:
- if (event->key.keyval != GDK_space) {
- return FALSE;
- }
- /* Fall through */
- case GDK_BUTTON_PRESS:
- if (e_table_model_is_cell_editable (ecell_view->e_table_model, model_col, row) == FALSE) {
- return FALSE;
- }
- if (value == 0) {
- return FALSE;
- }
-
- set_value (ecell_view, model_col, view_col, row, value + 1);
- return TRUE;
-
- default:
- return FALSE;
- }
-
- return TRUE;
-}
-
-static void
-e_cell_tri_class_init (GtkObjectClass *object_class)
-{
- ECellClass *e_cell_class = E_CELL_CLASS (object_class);
-
- e_cell_class->event = event;
-
- checks[0] = gdk_pixbuf_new_from_xpm_data (check_none_xpm);
- checks[1] = gdk_pixbuf_new_from_xpm_data (check_empty_xpm);
- checks[2] = gdk_pixbuf_new_from_xpm_data (check_filled_xpm);
-
-}
-
-E_MAKE_TYPE (e_cell_tri, "ECellTri", ECellTri, e_cell_tri_class_init, NULL, PARENT_TYPE);
-
-ECell *
-e_cell_tri_new (void)
-{
- ECellTri *ect = gtk_type_new (e_cell_tri_get_type ());
-
- e_cell_toggle_construct (E_CELL_TOGGLE (ect), 2, 3, checks);
-
- return (ECell *) ect;
-}
-
diff --git a/my-evolution/e-cell-tri.h b/my-evolution/e-cell-tri.h
deleted file mode 100644
index 413abcd556..0000000000
--- a/my-evolution/e-cell-tri.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright 2002 Ximain, Inc. (www.ximian.com)
- *
- * 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 Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifndef __E_CELL_TRI_H__
-#define __E_CELL_TRI_H__
-
-#include <gal/e-table/e-cell-toggle.h>
-
-typedef struct _ECellTri {
- ECellToggle parent;
-} ECellTri;
-
-typedef struct _ECellTriClass {
- ECellToggleClass parent_class;
-} ECellTriClass;
-
-GtkType e_cell_tri_get_type (void);
-ECell *e_cell_tri_new (void);
-
-#endif
diff --git a/my-evolution/e-summary-calendar.c b/my-evolution/e-summary-calendar.c
deleted file mode 100644
index dbc2472b9e..0000000000
--- a/my-evolution/e-summary-calendar.c
+++ /dev/null
@@ -1,633 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-calendar.c
- *
- * Copyright (C) 2001, 2002, 2003 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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@ximian.com>
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gnome.h>
-#include <gal/widgets/e-unicode.h>
-
-#include "e-summary-calendar.h"
-#include "e-summary.h"
-
-#include <cal-client/cal-client.h>
-#include <cal-util/timeutil.h>
-
-#include <bonobo/bonobo-exception.h>
-#include <bonobo/bonobo-moniker-util.h>
-
-#include <gconf/gconf-client.h>
-
-#include <libical/ical.h>
-
-#define MAX_RELOAD_TRIES 10
-
-struct _ESummaryCalendar {
- CalClient *client;
-
- char *html;
- gboolean wants24hr;
-
- char *default_uri;
-
- GConfClient *gconf_client;
- int gconf_value_changed_handler_id;
-
- int cal_open_reload_timeout_id;
- int reload_count;
-};
-
-const char *
-e_summary_calendar_get_html (ESummary *summary)
-{
- if (summary->calendar == NULL) {
- return NULL;
- }
-
- return summary->calendar->html;
-}
-
-typedef struct {
- char *uid;
- CalComponent *comp;
- CalComponentDateTime dt;
- icaltimezone *zone;
-} ESummaryCalEvent;
-
-/* Returns TRUE if the TZIDs are equivalent, i.e. both NULL or the same. */
-static gboolean
-cal_component_compare_tzid (const char *tzid1, const char *tzid2)
-{
- gboolean retval = TRUE;
-
- if (tzid1) {
- if (!tzid2 || strcmp (tzid1, tzid2))
- retval = FALSE;
- } else {
- if (tzid2)
- retval = FALSE;
- }
-
- return retval;
-}
-
-static gboolean
-compare_event_timezones (CalComponent *comp,
- CalClient *client,
- icaltimezone *zone)
-{
- CalClientGetStatus status;
- CalComponentDateTime start_datetime, end_datetime;
- const char *tzid;
- gboolean retval = FALSE;
- icaltimezone *start_zone, *end_zone;
- int offset1, offset2;
-
- tzid = icaltimezone_get_tzid (zone);
-
- cal_component_get_dtstart (comp, &start_datetime);
- cal_component_get_dtend (comp, &end_datetime);
-
- /* If either the DTSTART or the DTEND is a DATE value, we return TRUE.
- Maybe if one was a DATE-TIME we should check that, but that should
- not happen often. */
- if ((start_datetime.value && start_datetime.value->is_date)
- || (end_datetime.value && end_datetime.value->is_date)) {
- retval = TRUE;
- goto out;
- }
-
- /* If the event uses UTC for DTSTART & DTEND, return TRUE. Outlook
- will send single events as UTC, so we don't want to mark all of
- these. */
- if ((!start_datetime.value || start_datetime.value->is_utc)
- && (!end_datetime.value || end_datetime.value->is_utc)) {
- retval = TRUE;
- goto out;
- }
-
- /* If the event uses floating time for DTSTART & DTEND, return TRUE.
- Imported vCalendar files will use floating times, so we don't want
- to mark all of these. */
- if (!start_datetime.tzid && !end_datetime.tzid) {
- retval = TRUE;
- goto out;
- }
-
- /* FIXME: DURATION may be used instead. */
- if (cal_component_compare_tzid (tzid, start_datetime.tzid)
- && cal_component_compare_tzid (tzid, end_datetime.tzid)) {
- /* If both TZIDs are the same as the given zone's TZID, then
- we know the timezones are the same so we return TRUE. */
- retval = TRUE;
- } else {
- /* If the TZIDs differ, we have to compare the UTC offsets
- of the start and end times, using their own timezones and
- the given timezone. */
- status = cal_client_get_timezone (client,
- start_datetime.tzid,
- &start_zone);
- if (status != CAL_CLIENT_GET_SUCCESS)
- goto out;
-
- if (start_datetime.value) {
- offset1 = icaltimezone_get_utc_offset (start_zone,
- start_datetime.value,
- NULL);
- offset2 = icaltimezone_get_utc_offset (zone,
- start_datetime.value,
- NULL);
- if (offset1 != offset2)
- goto out;
- }
-
- status = cal_client_get_timezone (client,
- end_datetime.tzid,
- &end_zone);
- if (status != CAL_CLIENT_GET_SUCCESS)
- goto out;
-
- if (end_datetime.value) {
- offset1 = icaltimezone_get_utc_offset (end_zone,
- end_datetime.value,
- NULL);
- offset2 = icaltimezone_get_utc_offset (zone,
- end_datetime.value,
- NULL);
- if (offset1 != offset2)
- goto out;
- }
-
- retval = TRUE;
- }
-
- out:
-
- cal_component_free_datetime (&start_datetime);
- cal_component_free_datetime (&end_datetime);
-
- return retval;
-}
-
-static int
-e_summary_calendar_event_sort_func (const void *e1,
- const void *e2)
-{
- ESummaryCalEvent *event1, *event2;
-
- event1 = *(ESummaryCalEvent **) e1;
- event2 = *(ESummaryCalEvent **) e2;
-
- if (event1->dt.value == NULL || event2->dt.value == NULL) {
- return 0;
- }
-
- return icaltime_compare (*(event1->dt.value), *(event2->dt.value));
-}
-
-struct _RecurData {
- ESummary *summary;
- GPtrArray *array;
- ESummaryCalEvent *event;
-};
-
-static gboolean
-add_recurrances (CalComponent *comp,
- time_t start,
- time_t end,
- gpointer data)
-{
- struct _RecurData *recur = data;
- struct icaltimetype v, *p;
- ESummaryCalEvent *event;
-
- event = g_new (ESummaryCalEvent, 1);
- v = icaltime_from_timet_with_zone (start, FALSE, recur->summary->tz);
- p = g_new (struct icaltimetype, 1);
-
- event->dt.value = p;
-
- p->year = v.year;
- p->month = v.month;
- p->day = v.day;
- p->hour = v.hour;
- p->minute = v.minute;
- p->second = v.second;
- p->is_utc = v.is_utc;
- p->is_date = v.is_date;
- p->is_daylight = v.is_daylight;
- p->zone = v.zone;
-
- event->dt.tzid = recur->summary->timezone;
- event->comp = comp;
- event->uid = g_strdup (recur->event->uid);
- event->zone = recur->summary->tz;
-
- g_object_ref (comp);
-
- g_ptr_array_add (recur->array, event);
- return TRUE;
-}
-
-static GPtrArray *
-uids_to_array (ESummary *summary,
- CalClient *client,
- GList *uids,
- time_t begin,
- time_t end)
-{
- GList *p;
- GPtrArray *array;
-
- g_return_val_if_fail (IS_E_SUMMARY (summary), NULL);
- g_return_val_if_fail (client != NULL, NULL);
- g_return_val_if_fail (uids != NULL, NULL);
-
- array = g_ptr_array_new ();
- for (p = uids; p; p = p->next) {
- ESummaryCalEvent *event;
- CalClientGetStatus status;
- icalcomponent *icalcomp;
-
- event = g_new (ESummaryCalEvent, 1);
-
- event->uid = g_strdup (p->data);
- status = cal_client_get_object (client, p->data, &icalcomp);
- if (status != CAL_CLIENT_GET_SUCCESS) {
- g_free (event);
- continue;
- }
-
- event->comp = cal_component_new ();
- cal_component_set_icalcomponent (event->comp, icalcomp);
- if (cal_component_has_recurrences (event->comp) == TRUE) {
- struct _RecurData *recur;
-
- recur = g_new (struct _RecurData, 1);
- recur->event = event;
- recur->array = array;
- recur->summary = summary;
- cal_recur_generate_instances (event->comp, begin, end,
- add_recurrances, recur,
- cal_client_resolve_tzid_cb, client,
- recur->summary->tz);
- g_free (recur);
- g_free (event->uid);
- g_free (event);
- } else {
- cal_component_get_dtstart (event->comp, &event->dt);
-
- status = cal_client_get_timezone (client, event->dt.tzid, &event->zone);
- if (status != CAL_CLIENT_GET_SUCCESS) {
- g_object_unref (event->comp);
- g_free (event);
- continue;
- }
-
- icaltimezone_convert_time (event->dt.value, event->zone, summary->tz);
- g_ptr_array_add (array, event);
- }
- }
-
- qsort (array->pdata, array->len, sizeof (ESummaryCalEvent *), e_summary_calendar_event_sort_func);
-
- return array;
-}
-
-static void
-free_event_array (GPtrArray *array)
-{
- int i;
-
- for (i = 0; i < array->len; i++) {
- ESummaryCalEvent *event;
-
- event = array->pdata[i];
- g_free (event->uid);
- g_object_unref (event->comp);
- }
-
- g_ptr_array_free (array, TRUE);
-}
-
-static gboolean
-generate_html (gpointer data)
-{
- ESummary *summary = data;
- ESummaryCalendar *calendar = summary->calendar;
- GList *uids;
- GString *string;
- char *tmp;
- time_t t, begin, end, f;
-
- if (cal_client_get_load_state (calendar->client) != CAL_CLIENT_LOAD_LOADED)
- return FALSE;
-
- /* Set the default timezone on the server. */
- if (summary->tz) {
- cal_client_set_default_timezone (calendar->client,
- summary->tz);
- }
-
- t = time (NULL);
- begin = time_day_begin_with_zone (t, summary->tz);
- switch (summary->preferences->days) {
- case E_SUMMARY_CALENDAR_ONE_DAY:
- end = time_day_end_with_zone (t, summary->tz);
- break;
-
- case E_SUMMARY_CALENDAR_FIVE_DAYS:
- f = time_add_day_with_zone (t, 5, summary->tz);
- end = time_day_end_with_zone (f, summary->tz);
- break;
-
- case E_SUMMARY_CALENDAR_ONE_WEEK:
- f = time_add_week_with_zone (t, 1, summary->tz);
- end = time_day_end_with_zone (f, summary->tz);
- break;
-
- case E_SUMMARY_CALENDAR_ONE_MONTH:
- default:
- f = time_add_month_with_zone (t, 1, summary->tz);
- end = time_day_end_with_zone (f, summary->tz);
- break;
- }
-
- uids = cal_client_get_objects_in_range (calendar->client,
- CALOBJ_TYPE_EVENT, begin, end);
- string = g_string_new ("<dl><dt><img src=\"myevo-appointments.png\" align=\"middle\" "
- "alt=\"\" width=\"48\" height=\"48\"> <b>");
-
- if (calendar->default_uri != NULL)
- g_string_append_printf (string, "<a href=\"%s\">", calendar->default_uri);
-
- g_string_append (string, _("Appointments"));
-
- if (calendar->default_uri != NULL)
- g_string_append (string, "</a>");
-
- g_string_append (string, "</b></dt><dd>");
-
- if (uids == NULL) {
- g_string_append (string, _("No appointments."));
- } else {
- GPtrArray *uidarray;
- int i;
-
- uidarray = uids_to_array (summary, calendar->client, uids, begin, end);
- for (i = 0; i < uidarray->len; i++) {
- ESummaryCalEvent *event;
- CalComponentText text;
- struct tm start_tm;
- char start_str[64], *start_str_utf, *img;
-
- event = uidarray->pdata[i];
- cal_component_get_summary (event->comp, &text);
-
- start_tm = icaltimetype_to_tm (event->dt.value);
- if (calendar->wants24hr == TRUE) {
- strftime (start_str, sizeof start_str, _("%k:%M %d %B"), &start_tm);
- } else {
- strftime (start_str, sizeof start_str, _("%l:%M%p %d %B"), &start_tm);
- }
-
- if (cal_component_has_alarms (event->comp)) {
- img = "es-appointments.png";
- } else if (compare_event_timezones (event->comp,
- calendar->client,
- summary->tz) == FALSE) {
- img = "timezone-16.xpm";
- } else {
- img = "new_appointment.xpm";
- }
-
- start_str_utf = e_utf8_from_locale_string (start_str);
- tmp = g_strdup_printf ("<img align=\"middle\" src=\"%s\" "
- "alt=\"\" width=\"16\" height=\"16\"> &#160; "
- "<font size=\"-1\"><a href=\"calendar:/%s\">%s, %s</a></font><br>",
- img,
- event->uid, start_str_utf, text.value ? text.value : _("No description"));
- g_free (start_str_utf);
-
- g_string_append (string, tmp);
- g_free (tmp);
- }
-
- free_event_array (uidarray);
- }
-
- g_string_append (string, "</dd></dl>");
-
- if (calendar->html) {
- g_free (calendar->html);
- }
- calendar->html = string->str;
- g_string_free (string, FALSE);
-
- e_summary_draw (summary);
- return FALSE;
-}
-
-static gboolean
-cal_open_reload_timeout (void *data)
-{
- ESummary *summary = (ESummary *) data;
-
- summary->calendar->cal_open_reload_timeout_id = 0;
-
- if (++ summary->calendar->reload_count >= MAX_RELOAD_TRIES) {
- summary->calendar->reload_count = 0;
- return FALSE;
- }
-
- cal_client_open_default_calendar (summary->calendar->client, FALSE);
- return FALSE;
-}
-
-static void
-cal_opened_cb (CalClient *client,
- CalClientOpenStatus status,
- ESummary *summary)
-{
- if (status == CAL_CLIENT_OPEN_SUCCESS) {
- g_idle_add (generate_html, summary);
- } else {
- summary->calendar->cal_open_reload_timeout_id = g_timeout_add (1000,
- cal_open_reload_timeout,
- summary);
- }
-}
-
-static void
-obj_changed_cb (CalClient *client,
- const char *uid,
- gpointer data)
-{
- g_idle_add (generate_html, data);
-}
-
-static void
-e_summary_calendar_protocol (ESummary *summary,
- const char *uri,
- void *closure)
-{
- ESummaryCalendar *calendar;
- CORBA_Environment ev;
- const char *comp_uri;
- GNOME_Evolution_Calendar_CompEditorFactory factory;
-
- calendar = (ESummaryCalendar *) closure;
-
- comp_uri = cal_client_get_uri (calendar->client);
-
- /* Get the factory */
- CORBA_exception_init (&ev);
- factory = bonobo_activation_activate_from_id ("OAFIID:GNOME_Evolution_Calendar_CompEditorFactory", 0, NULL, &ev);
- if (BONOBO_EX (&ev)) {
- g_message ("%s: Could not activate the component editor factory (%s)",
- G_GNUC_FUNCTION, CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return;
- }
-
- GNOME_Evolution_Calendar_CompEditorFactory_editExisting (factory, comp_uri, (char *)uri + 10, &ev);
-
- if (BONOBO_EX (&ev)) {
- g_message ("%s: Execption while editing the component (%s)", G_GNUC_FUNCTION,
- CORBA_exception_id (&ev));
- }
-
- CORBA_exception_free (&ev);
- bonobo_object_release_unref (factory, NULL);
-}
-
-static void
-setup_calendar (ESummary *summary)
-{
- ESummaryCalendar *calendar;
-
- calendar = summary->calendar;
- g_assert (calendar != NULL);
-
- if (calendar->cal_open_reload_timeout_id != 0) {
- g_source_remove (calendar->cal_open_reload_timeout_id);
- calendar->cal_open_reload_timeout_id = 0;
- calendar->reload_count = 0;
- }
-
- if (calendar->client != NULL)
- g_object_unref (calendar->client);
-
- calendar->client = cal_client_new ();
-
- g_signal_connect (calendar->client, "cal-opened", G_CALLBACK (cal_opened_cb), summary);
- g_signal_connect (calendar->client, "obj-updated", G_CALLBACK (obj_changed_cb), summary);
- g_signal_connect (calendar->client, "obj-removed", G_CALLBACK (obj_changed_cb), summary);
-
- if (! cal_client_open_default_calendar (calendar->client, FALSE))
- g_message ("Open calendar failed");
-
- calendar->wants24hr = gconf_client_get_bool (calendar->gconf_client,
- "/apps/evolution/calendar/display/use_24h_format", NULL);
- calendar->default_uri = gconf_client_get_string (calendar->gconf_client,
- "/apps/evolution/shell/default_folders/calendar_path",
- NULL);
-}
-
-static void
-gconf_client_value_changed_cb (GConfClient *client,
- const char *key,
- GConfValue *value,
- void *user_data)
-{
- setup_calendar (E_SUMMARY (user_data));
- generate_html (user_data);
-}
-
-static void
-setup_gconf_client (ESummary *summary)
-{
- ESummaryCalendar *calendar;
-
- calendar = summary->calendar;
- g_assert (calendar != NULL);
-
- calendar->gconf_client = gconf_client_get_default ();
-
- calendar->gconf_value_changed_handler_id
- = g_signal_connect (calendar->gconf_client, "value_changed",
- G_CALLBACK (gconf_client_value_changed_cb), summary);
-
- gconf_client_add_dir (calendar->gconf_client, "/apps/evolution/calendar", FALSE, NULL);
- gconf_client_add_dir (calendar->gconf_client, "/apps/evolution/shell/default_folders", FALSE, NULL);
-}
-
-void
-e_summary_calendar_init (ESummary *summary)
-{
- ESummaryCalendar *calendar;
-
- g_return_if_fail (summary != NULL);
-
- calendar = g_new0 (ESummaryCalendar, 1);
- summary->calendar = calendar;
- calendar->html = NULL;
-
- setup_gconf_client (summary);
- setup_calendar (summary);
-
- e_summary_add_protocol_listener (summary, "calendar", e_summary_calendar_protocol, calendar);
-}
-
-void
-e_summary_calendar_reconfigure (ESummary *summary)
-{
- setup_calendar (summary);
- generate_html (summary);
-}
-
-void
-e_summary_calendar_free (ESummary *summary)
-{
- ESummaryCalendar *calendar;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- calendar = summary->calendar;
-
- if (calendar->cal_open_reload_timeout_id != 0)
- g_source_remove (calendar->cal_open_reload_timeout_id);
-
- g_object_unref (calendar->client);
- g_free (calendar->html);
- g_free (calendar->default_uri);
-
- if (calendar->gconf_value_changed_handler_id != 0)
- g_signal_handler_disconnect (calendar->gconf_client,
- calendar->gconf_value_changed_handler_id);
- g_object_unref (calendar->gconf_client);
-
- g_free (calendar);
- summary->calendar = NULL;
-}
diff --git a/my-evolution/e-summary-calendar.h b/my-evolution/e-summary-calendar.h
deleted file mode 100644
index ab15e3d2a9..0000000000
--- a/my-evolution/e-summary-calendar.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-calendar.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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@ximian.com>
- */
-
-#ifndef __E_SUMMARY_CALENDAR_H__
-#define __E_SUMMARY_CALENDAR_H__
-
-#include "e-summary-type.h"
-
-typedef enum _ESummaryCalendarDays {
- E_SUMMARY_CALENDAR_ONE_DAY,
- E_SUMMARY_CALENDAR_FIVE_DAYS,
- E_SUMMARY_CALENDAR_ONE_WEEK,
- E_SUMMARY_CALENDAR_ONE_MONTH
-} ESummaryCalendarDays;
-
-typedef enum _ESummaryCalendarNumTasks {
- E_SUMMARY_CALENDAR_ALL_TASKS,
- E_SUMMARY_CALENDAR_TODAYS_TASKS
-} ESummaryCalendarNumTasks;
-
-typedef struct _ESummaryCalendar ESummaryCalendar;
-
-const char *e_summary_calendar_get_html (ESummary *summary);
-void e_summary_calendar_init (ESummary *summary);
-void e_summary_calendar_reconfigure (ESummary *summary);
-void e_summary_calendar_free (ESummary *summary);
-#endif
diff --git a/my-evolution/e-summary-factory.c b/my-evolution/e-summary-factory.c
deleted file mode 100644
index 3637d358e4..0000000000
--- a/my-evolution/e-summary-factory.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-factory.c
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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@ximian.com>
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gtk/gtk.h>
-#include <bonobo/bonobo-control.h>
-#include <bonobo/bonobo-exception.h>
-#include <bonobo/bonobo-ui-util.h>
-
-#include "e-util/e-gui-utils.h"
-
-#include "e-summary.h"
-#include "e-summary-factory.h"
-#include "e-summary-offline-handler.h"
-#include "e-summary-preferences.h"
-#include "evolution-shell-component-utils.h" /* For E_PIXMAP */
-
-static BonoboUIVerb summary_verbs[] = {
- BONOBO_UI_VERB ("PrintMyEvolution", e_summary_print),
- BONOBO_UI_VERB ("Reload", e_summary_reload),
- BONOBO_UI_VERB_END
-};
-
-
-static EPixmap pixmaps [] = {
- E_PIXMAP ("/commands/PrintMyEvolution", "print.xpm"),
- E_PIXMAP ("/Toolbar/PrintMyEvolution", "buttons/print.png"),
- E_PIXMAP_END
-};
-
-static void
-control_activate (BonoboControl *control,
- BonoboUIComponent *ui_component,
- ESummary *summary)
-{
- Bonobo_UIContainer container;
-
- container = bonobo_control_get_remote_ui_container (control, NULL);
- bonobo_ui_component_set_container (ui_component, container, NULL);
- bonobo_object_release_unref (container, NULL);
-
- bonobo_ui_component_add_verb_list_with_data (ui_component, summary_verbs, summary);
- bonobo_ui_component_freeze (ui_component, NULL);
-
- bonobo_ui_util_set_ui (ui_component, PREFIX,
- EVOLUTION_UIDIR "/my-evolution.xml", "my-evolution", NULL);
- e_pixmaps_update (ui_component, pixmaps);
-
- bonobo_ui_component_thaw (ui_component, NULL);
-}
-
-static void
-control_deactivate (BonoboControl *control,
- BonoboUIComponent *ui_component,
- ESummary *summary)
-{
- bonobo_ui_component_unset_container (ui_component, NULL);
-}
-
-static void
-control_activate_cb (BonoboControl *control,
- gboolean activate,
- ESummary *summary)
-{
- BonoboUIComponent *ui_component;
-
- ui_component = bonobo_control_get_ui_component (control);
-
- if (activate)
- control_activate (control, ui_component, summary);
- else
- control_deactivate (control, ui_component, summary);
-}
-
-static void
-control_destroy_cb (BonoboControl *control,
- ESummary *summary)
-{
- gtk_widget_destroy (GTK_WIDGET (summary));
-}
-
-BonoboControl *
-e_summary_factory_new_control (const char *uri,
- const GNOME_Evolution_Shell shell,
- ESummaryOfflineHandler *handler,
- ESummaryPrefs *global_preferences)
-{
- BonoboControl *control;
- GtkWidget *summary;
-
- summary = e_summary_new (global_preferences);
- if (summary == NULL) {
- return NULL;
- }
-
- e_summary_offline_handler_add_summary (handler, E_SUMMARY (summary));
- gtk_widget_show (summary);
-
- control = bonobo_control_new (summary);
-
- if (control == NULL) {
- gtk_widget_destroy (summary);
- return NULL;
- }
-
- e_summary_set_control (E_SUMMARY (summary), control);
-
- g_signal_connect (control, "activate", G_CALLBACK (control_activate_cb), summary);
- g_signal_connect (control, "destroy", G_CALLBACK (control_destroy_cb), summary);
-
- /* FIXME: We register the factory here as it needs the summary object.
- Sigh, this is really wrong. */
-
- return control;
-}
diff --git a/my-evolution/e-summary-factory.h b/my-evolution/e-summary-factory.h
deleted file mode 100644
index f159d55f0d..0000000000
--- a/my-evolution/e-summary-factory.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-factory.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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@ximian.com>
- */
-
-#ifndef __E_SUMMARY_FACTORY_H__
-#define __E_SUMMARY_FACTORY_H__
-
-#include "e-summary-offline-handler.h"
-#include "e-summary.h"
-
-BonoboControl *e_summary_factory_new_control (const char *uri,
- const GNOME_Evolution_Shell shell,
- ESummaryOfflineHandler *handler,
- ESummaryPrefs *preferences);
-
-#endif
diff --git a/my-evolution/e-summary-mail.c b/my-evolution/e-summary-mail.c
deleted file mode 100644
index a2a6e9fd65..0000000000
--- a/my-evolution/e-summary-mail.c
+++ /dev/null
@@ -1,783 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-mail.c
- *
- * Copyright (C) 2001, 2002, 2003 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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@ximian.com>
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gal/widgets/e-unicode.h>
-
-#include <libgnome/gnome-i18n.h>
-#include <libgnome/gnome-util.h> /* gnome_util_prepend_user_home */
-
-#include <gtk/gtksignal.h>
-
-#include <bonobo/bonobo-exception.h>
-#include <bonobo/bonobo-listener.h>
-#include <bonobo/bonobo-property-bag-client.h>
-
-#include <Evolution.h>
-#include <evolution-storage-listener.h>
-
-#include <string.h>
-
-#include "Mailer.h"
-#include "e-summary.h"
-#include "e-summary-mail.h"
-#include "e-summary-table.h"
-#include "e-summary-preferences.h"
-
-#include "e-util/e-path.h"
-
-#define MAIL_IID "OAFIID:GNOME_Evolution_FolderInfo"
-
-typedef struct _FolderStore {
- GNOME_Evolution_Shell shell;
- GNOME_Evolution_FolderInfo folder_info;
- GNOME_Evolution_StorageRegistry registry;
- BonoboListener *registry_listener;
- BonoboListener *listener;
- EvolutionStorageListener *storage_listener;
-
- GSList *storage_list;
-
- GHashTable *path_to_folder;
- GHashTable *physical_uri_to_folder;
-
- GList *shown;
-} FolderStore;
-
-struct _ESummaryMail {
- char *html;
-};
-
-typedef struct _StorageInfo {
- char *name;
- char *toplevel;
-
- GNOME_Evolution_Storage storage;
- EvolutionStorageListener *listener;
-
- GList *folders;
-} StorageInfo;
-
-typedef struct _ESummaryMailFolder {
- char *path;
- char *uri;
- char *physical_uri;
- char *display_name;
-
- int count;
- int unread;
-
- gboolean init; /* Has this folder been initialised? */
- StorageInfo *si;
-} ESummaryMailFolder;
-
-static FolderStore *folder_store = NULL;
-
-
-static char *
-make_pretty_foldername (ESummary *summary,
- const ESummaryMailFolder *folder)
-{
- GString *pretty_path;
- const char *p, *previous_p;
- char *retval;
-
- if (! summary->preferences->show_full_path)
- return g_strdup (folder->display_name);
-
- g_assert (folder->path[0] == '/');
-
- pretty_path = g_string_new ("");
-
- previous_p = folder->path;
- while (previous_p != NULL) {
- const ESummaryMailFolder *ancestor_folder;
- char *path;
-
- g_string_append (pretty_path, "/");
-
- p = strchr (previous_p + 1, '/');
-
- if (p == NULL)
- path = g_strdup (folder->path);
- else
- path = g_strndup (folder->path, p - folder->path);
-
- ancestor_folder = g_hash_table_lookup (folder_store->path_to_folder, path);
-
- if (ancestor_folder != NULL) {
- g_string_append (pretty_path, ancestor_folder->display_name);
- } else {
- char *path_element;
-
- if (p == NULL)
- path_element = g_strdup (previous_p + 1);
- else
- path_element = g_strndup (previous_p + 1, p - (previous_p + 1));
-
- g_string_append (pretty_path, path_element);
- g_free (path_element);
- }
-
- g_free (path);
-
- previous_p = p;
- }
-
- retval = pretty_path->str;
- g_string_free (pretty_path, FALSE);
-
- return retval;
-}
-
-static void
-folder_gen_html (ESummary *summary,
- ESummaryMailFolder *folder,
- GString *string)
-{
- char *str, *pretty_name;
-
- pretty_name = make_pretty_foldername (summary, folder);
- str = g_strdup_printf ("<tr><td><a href=\"%s\">"
- "<pre>%s</pre></a></td><td align=\"Left\">"
- "<pre>%d/%d</pre>"
- "</td></tr>",
- folder->uri, pretty_name,
- folder->unread, folder->count);
- g_string_append (string, str);
- g_free (pretty_name);
- g_free (str);
-}
-
-static void
-e_summary_mail_generate_html (ESummary *summary)
-{
- ESummaryMail *mail;
- GString *string;
- GList *p;
- char *old;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- mail = summary->mail;
- string = g_string_new ("<dl><dt><img src=\"myevo-mail-summary.png\" "
- "align=\"middle\" alt=\"\" width=\"48\" "
- "height=\"48\"> <b><a href=\"evolution:/local/Inbox\">");
- g_string_append (string, _("Mail summary"));
- g_string_append (string, "</a></b></dt><dd><table numcols=\"2\" width=\"100%\">");
-
- for (p = folder_store->shown; p; p = p->next) {
- ESummaryMailFolder *mail_folder = p->data;
-
- folder_gen_html (summary, mail_folder, string);
- }
-
- g_string_append (string, "</table></dd></dl>");
-
- old = mail->html;
- mail->html = string->str;
-
- g_free (old);
-
- g_string_free (string, FALSE);
-}
-
-const char *
-e_summary_mail_get_html (ESummary *summary)
-{
- /* Only regenerate HTML when it's needed */
- e_summary_mail_generate_html (summary);
-
- if (summary->mail == NULL) {
- return NULL;
- }
-
- return summary->mail->html;
-}
-
-static void
-e_summary_mail_get_info (const char *uri)
-{
- CORBA_Environment ev;
-
- if (folder_store == NULL)
- return;
-
- g_return_if_fail (folder_store->folder_info != CORBA_OBJECT_NIL);
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_FolderInfo_getInfo (folder_store->folder_info, uri ? uri : "",
- BONOBO_OBJREF (folder_store->listener), &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Error getting info for %s:\n%s", uri,
- CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return;
- }
-
- CORBA_exception_free (&ev);
- return;
-}
-
-static gboolean
-e_summary_mail_idle_get_info (gpointer user_data)
-{
- char *uri = user_data;
-
- e_summary_mail_get_info (uri);
- g_free (uri);
- return FALSE;
-}
-
-static void
-new_folder_cb (EvolutionStorageListener *listener,
- const char *path,
- const GNOME_Evolution_Folder *folder,
- StorageInfo *si)
-{
- ESummaryPrefs *global_preferences;
- ESummaryMailFolder *mail_folder;
- GSList *p;
-
- if (strcmp (folder->type, "mail") != 0)
- return;
-
- if (strncmp (folder->evolutionUri, "evolution:", 10) != 0)
- return;
-
- mail_folder = g_new (ESummaryMailFolder, 1);
- mail_folder->si = si;
- mail_folder->uri = g_strdup (folder->evolutionUri);
- mail_folder->physical_uri = g_strdup (folder->physicalUri);
- mail_folder->path = g_strdup (path);
- mail_folder->display_name = g_strdup (folder->displayName);
- mail_folder->count = -1;
- mail_folder->unread = -1;
- mail_folder->init = FALSE;
-
- g_hash_table_insert (folder_store->path_to_folder, mail_folder->path, mail_folder);
- g_hash_table_insert (folder_store->physical_uri_to_folder, mail_folder->physical_uri, mail_folder);
-
- si->folders = g_list_prepend (si->folders, mail_folder);
-
- global_preferences = e_summary_preferences_get_global ();
- for (p = global_preferences->display_folders; p; p = p->next) {
- ESummaryPrefsFolder *f = p->data;
-
- if (strcmp (f->physical_uri, folder->physicalUri) == 0) {
- folder_store->shown = g_list_append (folder_store->shown, mail_folder);
- g_idle_add (e_summary_mail_idle_get_info,
- g_strdup (mail_folder->physical_uri));
- }
- }
-}
-
-static void
-update_folder_cb (EvolutionStorageListener *listener,
- const char *path,
- int unread_count,
- StorageInfo *si)
-{
- ESummaryMailFolder *mail_folder;
- GList *p;
-
- mail_folder = g_hash_table_lookup (folder_store->path_to_folder, path);
- if (mail_folder == NULL) {
- return;
- }
-
- for (p = folder_store->shown; p; p = p->next) {
- if (p->data == mail_folder) {
- g_idle_add (e_summary_mail_idle_get_info,
- g_strdup (mail_folder->physical_uri));
- return;
- }
- }
-}
-
-static void
-remove_folder_cb (EvolutionStorageListener *listener,
- const char *path,
- StorageInfo *si)
-{
- ESummaryMailFolder *mail_folder;
- GList *p;
-
- mail_folder = g_hash_table_lookup (folder_store->path_to_folder, path);
- if (mail_folder == NULL) {
- return;
- }
-
- /* Check if we're displaying it, because we can't display it if it
- doesn't exist :) */
- for (p = folder_store->shown; p; p = p->next) {
- if (p->data == mail_folder) {
- folder_store->shown = g_list_remove_link (folder_store->shown, p);
- g_list_free (p);
- }
- }
-
- g_hash_table_remove (folder_store->path_to_folder, path);
- g_free (mail_folder->path);
- g_free (mail_folder->uri);
- g_free (mail_folder->physical_uri);
- g_free (mail_folder->display_name);
- g_free (mail_folder);
-}
-
-static void
-mail_change_notify (BonoboListener *listener,
- const char *name,
- const BonoboArg *arg,
- CORBA_Environment *ev,
- gpointer data)
-{
- GNOME_Evolution_FolderInfo_MessageCount *count;
- ESummaryMailFolder *folder;
- ESummaryPrefs *global_preferences;
- GSList *p;
-
- count = arg->_value;
- folder = g_hash_table_lookup (folder_store->physical_uri_to_folder, count->path);
-
- if (folder == NULL) {
- return;
- }
-
- folder->count = count->count;
- folder->unread = count->unread;
- folder->init = TRUE;
-
- /* Are we displaying this folder? */
- global_preferences = e_summary_preferences_get_global ();
- for (p = global_preferences->display_folders; p; p = p->next) {
- ESummaryPrefsFolder *f = p->data;
- if (strcmp (f->physical_uri, folder->physical_uri) == 0) {
- e_summary_redraw_all (); /* All summaries should be redrawn, not just this one */
- return;
- }
- }
-}
-
-static void
-e_summary_mail_protocol (ESummary *summary,
- const char *uri,
- void *closure)
-{
-}
-
-
-
-static gboolean
-e_summary_folder_register_storage (const char *name,
- GNOME_Evolution_Storage corba_storage)
-{
- GNOME_Evolution_StorageListener corba_listener;
- StorageInfo *si;
- CORBA_Environment ev;
-
- si = g_new (StorageInfo, 1);
- si->name = g_strdup (name);
- si->toplevel = NULL;
- si->storage = corba_storage;
- si->listener = evolution_storage_listener_new ();
- si->folders = NULL;
-
- folder_store->storage_list = g_slist_prepend (folder_store->storage_list, si);
-
- g_signal_connect (si->listener, "new-folder", G_CALLBACK (new_folder_cb), si);
- g_signal_connect (si->listener, "removed-folder", G_CALLBACK (remove_folder_cb), si);
- g_signal_connect (si->listener, "update_folder", G_CALLBACK (update_folder_cb), si);
-
- corba_listener = evolution_storage_listener_corba_objref (si->listener);
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_Storage_addListener (corba_storage, corba_listener, &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Exception adding listener: %s",
- CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
-
- return FALSE;
- }
-
- CORBA_exception_free (&ev);
-
- return TRUE;
-}
-
-static gboolean
-e_summary_folder_unregister_storage (StorageInfo *si, gboolean remove)
-{
- GNOME_Evolution_StorageListener corba_listener;
- CORBA_Environment ev;
-
- g_free (si->name);
-
- corba_listener = evolution_storage_listener_corba_objref (si->listener);
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_Storage_removeListener (si->storage, corba_listener, &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Exception removing listener: %s",
- CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
-
- return FALSE;
- }
- CORBA_exception_free (&ev);
-
- g_signal_handlers_disconnect_matched (si->listener, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, si);
- g_object_unref (si->listener);
-
- bonobo_object_release_unref (si->storage, NULL);
-
- /* FIXME Folders */
-
- if (remove)
- folder_store->storage_list = g_slist_remove (folder_store->storage_list, si);
-
- g_free (si);
-
- return TRUE;
-}
-
-static void
-e_summary_folder_register_local_storage (void)
-{
- GNOME_Evolution_Storage local_storage;
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- local_storage = GNOME_Evolution_Shell_getLocalStorage (folder_store->shell, &ev);
- if (BONOBO_EX (&ev) || local_storage == CORBA_OBJECT_NIL) {
- g_warning ("Error getting local storage: %s", CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return;
- }
- CORBA_exception_free (&ev);
-
- e_summary_folder_register_storage (_("Local Folders"), local_storage);
-}
-
-static void
-storage_notify (BonoboListener *listener,
- const char *name,
- const BonoboArg *arg,
- CORBA_Environment *ev,
- gpointer data)
-{
- GNOME_Evolution_StorageRegistry_NotifyResult *nr;
- GNOME_Evolution_Storage corba_storage;
- CORBA_Environment ev2;
-
- nr = arg->_value;
-
- switch (nr->type) {
- case GNOME_Evolution_StorageRegistry_STORAGE_CREATED:
- /* These need to be special cased because they're special */
- if (strcmp (nr->name, "summary") == 0) {
- break;
- }
-
- if (strcmp (nr->name, "local") == 0) {
- e_summary_folder_register_local_storage ();
- break;
- }
-
- CORBA_exception_init (&ev2);
- corba_storage = GNOME_Evolution_StorageRegistry_getStorageByName (folder_store->registry,
- nr->name, &ev2);
- if (BONOBO_EX (&ev2) || corba_storage == CORBA_OBJECT_NIL) {
- g_warning ("Error getting storage %s\n%s", nr->name,
- CORBA_exception_id (&ev2));
- CORBA_exception_free (&ev2);
- return;
- }
-
- CORBA_exception_free (&ev2);
- e_summary_folder_register_storage (nr->name, corba_storage);
- break;
-
- case GNOME_Evolution_StorageRegistry_STORAGE_DESTROYED:
- g_print ("%s removed\n", nr->name);
- break;
-
- default:
- g_print ("Unknown response %d\n", nr->type);
- break;
- }
-}
-
-static gboolean
-e_summary_folder_register_storages (GNOME_Evolution_Shell corba_shell)
-{
- Bonobo_Listener corba_listener;
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
-
- folder_store->registry = Bonobo_Unknown_queryInterface (corba_shell,
- "IDL:GNOME/Evolution/StorageRegistry:1.0",
- &ev);
- if (BONOBO_EX (&ev) || folder_store->registry == NULL) {
- g_warning ("No storage registry: %s", CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return FALSE;
- }
-
- folder_store->registry_listener = bonobo_listener_new (NULL, NULL);
- g_signal_connect (folder_store->registry_listener, "event-notify", G_CALLBACK (storage_notify), NULL);
- corba_listener = BONOBO_OBJREF (folder_store->registry_listener);
-
- /* Storages will be added whenever the listener gets an event. */
- GNOME_Evolution_StorageRegistry_addListener (folder_store->registry, corba_listener, &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Cannot add listener\n%s", CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return FALSE;
- }
-
- CORBA_exception_free (&ev);
- return TRUE;
-}
-
-void
-e_summary_mail_init (ESummary *summary)
-{
- ESummaryMail *mail;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- g_return_if_fail (folder_store != NULL);
-
- mail = g_new0 (ESummaryMail, 1);
- summary->mail = mail;
-
- mail->html = NULL;
-
- e_summary_add_protocol_listener (summary, "mail", e_summary_mail_protocol, mail);
- return;
-}
-
-void
-e_summary_mail_reconfigure (void)
-{
- ESummaryPrefs *preferences;
- GList *old;
- GSList *p;
-
- old = folder_store->shown;
- folder_store->shown = NULL;
-
- preferences = e_summary_preferences_get_global ();
- for (p = preferences->display_folders; p; p = p->next) {
- ESummaryMailFolder *folder;
- ESummaryPrefsFolder *f = p->data;
- char *uri;
-
-#if 0
- if (strncmp (p->data, "file://", 7) == 0 ||
- strncmp (p->data, "vfolder:", 8) == 0) {
- uri = g_strdup (p->data);
- } else {
- uri = g_strconcat ("file://", p->data, NULL);
- }
-#endif
- uri = g_strdup (f->physical_uri);
- folder = g_hash_table_lookup (folder_store->physical_uri_to_folder, uri);
- if (folder != NULL) {
- if (folder->init == FALSE) {
- e_summary_mail_get_info (folder->physical_uri);
- }
- folder_store->shown = g_list_append (folder_store->shown, folder);
- }
-
- g_free (uri);
- }
-
- /* Free the old list */
- g_list_free (old);
-
-/* e_summary_redraw_all (); */
-}
-
-
-void
-e_summary_mail_free (ESummary *summary)
-{
- ESummaryMail *mail;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- mail = summary->mail;
-
-#if 0
- g_hash_table_foreach (mail->folders, free_folder, NULL);
- g_hash_table_destroy (mail->folders);
-#endif
- g_free (mail->html);
-
-#if 0
- g_signal_handlers_disconnect_by_func (mail->storage_listener, G_CALLBACK (new_folder_cb), summary);
- g_signal_handlers_disconnect_by_func (mail->storage_listener, G_CALLBACK (remove_folder_cb), summary);
- g_signal_handlers_disconnect_by_func (mail->storage_listener, G_CALLBACK (update_folder_cb), summary);
-#endif
-
- g_free (mail);
- summary->mail = NULL;
-}
-
-static void
-folder_info_pb_changed (BonoboListener *listener,
- const char *name,
- const BonoboArg *arg,
- CORBA_Environment *ev,
- gpointer data)
-{
- e_summary_folder_register_storages (folder_store->shell);
- bonobo_object_unref (listener);
-}
-
-static void
-lazy_register_storages (void)
-{
- Bonobo_PropertyBag pb;
- Bonobo_EventSource event;
- BonoboListener *listener;
- CORBA_Environment ev;
- gboolean ready;
-
- /* Get the PropertyBag */
- CORBA_exception_init (&ev);
- pb = Bonobo_Unknown_queryInterface (folder_store->folder_info,
- "IDL:Bonobo/PropertyBag:1.0", &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Error getting propertybag interface: %s",
- CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return;
- }
-
- /* Check the initial value */
- ready = bonobo_property_bag_client_get_value_gboolean (pb,
- "folder-info-ready",
- NULL);
- if (ready == TRUE) {
- /* Register storages */
- e_summary_folder_register_storages (folder_store->shell);
- bonobo_object_release_unref (pb, NULL);
- return;
- }
-
- /* Get thh event source for the bag */
- event = Bonobo_Unknown_queryInterface (pb,
- "IDL:Bonobo/EventSource:1.0", &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Error getting event source interface: %s",
- CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- bonobo_object_release_unref (pb, NULL);
- return;
- }
-
- /* Connect a listener to it */
- listener = bonobo_listener_new (NULL, NULL);
- g_signal_connect (listener, "event-notify", G_CALLBACK (folder_info_pb_changed), NULL);
-
- Bonobo_EventSource_addListener (event, BONOBO_OBJREF (listener), &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Error adding listener: %s\n",
- CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- bonobo_object_unref (BONOBO_OBJECT (listener));
- }
-
- bonobo_object_release_unref (pb, NULL);
- bonobo_object_release_unref (event, NULL);
-}
-
-gboolean
-e_summary_folder_init_folder_store (GNOME_Evolution_Shell shell)
-{
- CORBA_Environment ev;
-
- if (folder_store != NULL) {
- return TRUE;
- }
-
- folder_store = g_new0 (FolderStore, 1);
- folder_store->shell = shell;
-
- CORBA_exception_init (&ev);
- folder_store->folder_info = bonobo_activation_activate_from_id (MAIL_IID, 0, NULL, &ev);
- if (BONOBO_EX (&ev) || folder_store->folder_info == NULL) {
- g_warning ("Exception creating folderinfo: %s\n",
- CORBA_exception_id (&ev) ? CORBA_exception_id (&ev) : "(null)");
- CORBA_exception_free (&ev);
- return FALSE;
- }
-
- CORBA_exception_free (&ev);
-
- folder_store->listener = bonobo_listener_new (NULL, NULL);
- g_signal_connect (folder_store->listener, "event-notify", G_CALLBACK (mail_change_notify), NULL);
-
- /* Create a hash table for the folders */
- folder_store->path_to_folder = g_hash_table_new (g_str_hash, g_str_equal);
- folder_store->physical_uri_to_folder = g_hash_table_new (g_str_hash, g_str_equal);
-
- /* Wait for the mailer to tell us we're ready to register */
- lazy_register_storages ();
- return TRUE;
-}
-
-
-gboolean
-e_summary_folder_clear_folder_store (void)
-{
- GSList *l;
-
- if (folder_store == NULL) {
- return TRUE;
- }
-
- bonobo_object_release_unref (folder_store->folder_info, NULL);
- bonobo_object_release_unref (folder_store->registry, NULL);
- bonobo_object_unref (folder_store->registry_listener);
- bonobo_object_unref (folder_store->listener);
-
- for (l = folder_store->storage_list; l != NULL; l = l->next)
- e_summary_folder_unregister_storage (l->data, FALSE);
- g_slist_free (folder_store->storage_list);
-
- g_free (folder_store);
- folder_store = NULL;
-
- return TRUE;
-}
diff --git a/my-evolution/e-summary-mail.h b/my-evolution/e-summary-mail.h
deleted file mode 100644
index acf9321692..0000000000
--- a/my-evolution/e-summary-mail.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-mail.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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@ximian.com>
- */
-
-#ifndef __E_SUMMARY_MAIL_H__
-#define __E_SUMMARY_MAIL_H__
-
-#include <Evolution.h>
-
-#include "e-summary-type.h"
-#include "e-summary-table.h"
-
-typedef enum _ESummaryMailMode ESummaryMailMode;
-enum _ESummaryMailMode {
- E_SUMMARY_MAIL_MODE_ONLY,
- E_SUMMARY_MAIL_MODE_EXCLUDING
-};
-
-typedef struct _ESummaryMailRowData ESummaryMailRowData;
-typedef struct _ESummaryMail ESummaryMail;
-
-struct _ESummaryMailRowData {
- char *name;
- char *uri;
-};
-
-const char *e_summary_mail_get_html (ESummary *summary);
-void e_summary_mail_init (ESummary *summary);
-void e_summary_mail_reconfigure (void);
-void e_summary_mail_free (ESummary *summary);
-const char *e_summary_mail_uri_to_name (const char *uri);
-void e_summary_mail_fill_list (ESummaryTable *est);
-
-/* Folder stuff */
-gboolean e_summary_folder_init_folder_store (GNOME_Evolution_Shell shell);
-gboolean e_summary_folder_clear_folder_store (void);
-#endif
diff --git a/my-evolution/e-summary-offline-handler.c b/my-evolution/e-summary-offline-handler.c
deleted file mode 100644
index 846b3245fb..0000000000
--- a/my-evolution/e-summary-offline-handler.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-offline-handler.c
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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.
- *
- * Authors:
- * Ettore Perazzoli <ettore@ximian.com>
- * Dan Winship <danw@ximian.com>
- * Iain Holmes <iain@ximian.com>
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "e-summary-offline-handler.h"
-#include "e-summary.h"
-
-#include <bonobo/bonobo-exception.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtksignal.h>
-#include <gal/util/e-util.h>
-
-#define PARENT_TYPE bonobo_object_get_type ()
-static BonoboObjectClass *parent_class = NULL;
-
-struct _ESummaryOfflineHandlerPriv {
- GSList *summaries;
- GNOME_Evolution_OfflineProgressListener listener_interface;
-};
-
-/* ::destroy handler for the bookkeeping of the list of summary views. */
-
-static void
-summary_destroy_callback (GtkObject *object,
- void *data)
-{
- ESummaryOfflineHandler *offline_handler;
- ESummaryOfflineHandlerPriv *priv;
- ESummary *summary;
-
- summary = E_SUMMARY (object);
- offline_handler = E_SUMMARY_OFFLINE_HANDLER (data);
- priv = offline_handler->priv;
-
- priv->summaries = g_slist_remove (priv->summaries, summary);
-}
-
-static GNOME_Evolution_ConnectionList *
-create_connection_list (GSList *summaries)
-{
- GNOME_Evolution_ConnectionList *list;
- GList *connections, *p;
- GSList *sp;
-
- list = GNOME_Evolution_ConnectionList__alloc ();
- list->_length = 0;
- list->_maximum = 0;
-
- /* Count the total number of connections first to make CORBA happy. */
- for (sp = summaries; sp != NULL; sp = sp->next)
- list->_maximum += e_summary_count_connections (E_SUMMARY (sp->data));
-
- list->_buffer = CORBA_sequence_GNOME_Evolution_Connection_allocbuf (list->_maximum);
-
- for (sp = summaries; sp != NULL; sp = sp->next) {
- ESummary *summary;
-
- summary = E_SUMMARY (sp->data);
- connections = e_summary_add_connections (summary);
- for (p = connections; p != NULL; p = p->next) {
- ESummaryConnectionData *data;
-
- data = p->data;
- list->_buffer[list->_length].hostName = CORBA_string_dup (data->hostname);
- list->_buffer[list->_length].type = CORBA_string_dup (data->type);
- list->_length++;
-
- g_free (data->hostname);
- g_free (data->type);
- g_free (data);
- }
- g_list_free (connections);
- }
-
- return list;
-}
-
-/* GNOME::Evolution::Offline methods. */
-static CORBA_boolean
-impl__get_isOffline (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- ESummaryOfflineHandler *offline_handler;
- GSList *sp;
-
- offline_handler = E_SUMMARY_OFFLINE_HANDLER (bonobo_object_from_servant (servant));
-
- /* We are offline if all of the views are offline. */
- for (sp = offline_handler->priv->summaries; sp != NULL; sp = sp->next) {
- ESummary *summary;
-
- summary = E_SUMMARY (sp->data);
- if (summary->online)
- return FALSE;
- }
-
- return TRUE;
-}
-
-static void
-impl_prepareForOffline (PortableServer_Servant servant,
- GNOME_Evolution_ConnectionList **active_connection_list,
- CORBA_Environment *ev)
-{
- ESummaryOfflineHandler *offline_handler;
- ESummaryOfflineHandlerPriv *priv;
-
- offline_handler = E_SUMMARY_OFFLINE_HANDLER (bonobo_object_from_servant (servant));
- priv = offline_handler->priv;
-
- *active_connection_list = create_connection_list (priv->summaries);
-}
-
-static void
-went_offline (ESummary *summary,
- void *data)
-{
- ESummaryOfflineHandler *offline_handler = data;
- ESummaryOfflineHandlerPriv *priv;
- CORBA_Environment ev;
- GNOME_Evolution_ConnectionList *connection_list;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
- g_return_if_fail (offline_handler != NULL);
-
- priv = offline_handler->priv;
- connection_list = create_connection_list (priv->summaries);
-
- CORBA_exception_init (&ev);
-
- g_warning ("Went offline");
- GNOME_Evolution_OfflineProgressListener_updateProgress (priv->listener_interface, connection_list, &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Error updating offline progress: %s",
- CORBA_exception_id (&ev));
- }
-
- CORBA_exception_free (&ev);
-}
-
-static void
-impl_goOffline (PortableServer_Servant servant,
- const GNOME_Evolution_OfflineProgressListener progress_listener,
- CORBA_Environment *ev)
-{
- ESummaryOfflineHandler *offline_handler;
- ESummaryOfflineHandlerPriv *priv;
- GSList *sp;
-
- offline_handler = E_SUMMARY_OFFLINE_HANDLER (bonobo_object_from_servant (servant));
- priv = offline_handler->priv;
-
- /* FIXME: If we have a progress already, then something is wrong and we
- should raise an exception. */
- priv->listener_interface = CORBA_Object_duplicate (progress_listener, ev);
-
- for (sp = priv->summaries; sp != NULL; sp = sp->next) {
- ESummary *summary;
-
- summary = E_SUMMARY (sp->data);
- e_summary_set_online (summary, CORBA_OBJECT_NIL, FALSE, went_offline, offline_handler);
- }
-}
-
-static void
-impl_goOnline (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- ESummaryOfflineHandler *offline_handler;
- GSList *sp;
-
- offline_handler = E_SUMMARY_OFFLINE_HANDLER (bonobo_object_from_servant (servant));
-
- for (sp = offline_handler->priv->summaries; sp != NULL; sp = sp->next) {
- ESummary *summary;
-
- summary = E_SUMMARY (sp->data);
- e_summary_set_online (summary, CORBA_OBJECT_NIL, TRUE, NULL, NULL);
- }
-}
-
-/* GObject methods */
-
-static void
-impl_finalize (GObject *object)
-{
- ESummaryOfflineHandler *offline_handler;
- ESummaryOfflineHandlerPriv *priv;
-
- offline_handler = E_SUMMARY_OFFLINE_HANDLER (object);
- priv = offline_handler->priv;
-
- if (priv->listener_interface != CORBA_OBJECT_NIL) {
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- CORBA_Object_release (priv->listener_interface, &ev);
- CORBA_exception_free (&ev);
- }
-
- g_slist_free (priv->summaries);
-
- g_free (priv);
-
- (* G_OBJECT_CLASS (parent_class)->finalize) (object);
-}
-
-static void
-e_summary_offline_handler_class_init (ESummaryOfflineHandlerClass *klass)
-{
- GObjectClass *object_class;
- POA_GNOME_Evolution_Offline__epv *epv;
-
- object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = impl_finalize;
-
- epv = &klass->epv;
- epv->_get_isOffline = impl__get_isOffline;
- epv->prepareForOffline = impl_prepareForOffline;
- epv->goOffline = impl_goOffline;
- epv->goOnline = impl_goOnline;
-
- parent_class = gtk_type_class (PARENT_TYPE);
-}
-
-static void
-e_summary_offline_handler_init (ESummaryOfflineHandler *offline_handler)
-{
- ESummaryOfflineHandlerPriv *priv;
-
- priv = g_new0 (ESummaryOfflineHandlerPriv, 1);
-
- offline_handler->priv = priv;
-}
-
-ESummaryOfflineHandler *
-e_summary_offline_handler_new (void)
-{
- ESummaryOfflineHandler *new;
-
- new = g_object_new (e_summary_offline_handler_get_type (), NULL);
-
- return new;
-}
-
-void
-e_summary_offline_handler_add_summary (ESummaryOfflineHandler *handler,
- ESummary *summary)
-{
- g_return_if_fail (handler != NULL);
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- handler->priv->summaries = g_slist_prepend (handler->priv->summaries,
- summary);
-
- g_signal_connect (summary, "destroy", G_CALLBACK (summary_destroy_callback), handler);
-}
-
-BONOBO_TYPE_FUNC_FULL (ESummaryOfflineHandler, GNOME_Evolution_Offline, PARENT_TYPE, e_summary_offline_handler);
diff --git a/my-evolution/e-summary-offline-handler.h b/my-evolution/e-summary-offline-handler.h
deleted file mode 100644
index 1a4f25e2ff..0000000000
--- a/my-evolution/e-summary-offline-handler.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-offline-handler.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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.
- *
- * Authors:
- * Ettore Perazzoli <ettore@ximian.com>
- * Dan Winship <danw@ximian.com>
- * Iain Holmes <iain@ximian.com>
- */
-
-#ifndef __E_SUMMARY_OFFLINE_HANDLER_H__
-#define __E_SUMMARY_OFFLINE_HANDLER_H__
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <bonobo/bonobo-object.h>
-#include "e-summary.h"
-#include "Evolution.h"
-
-#ifdef __cplusplus
-extern "C" {
-#pragma }
-#endif
-
-#define E_SUMMARY_TYPE_OFFLINE_HANDLER (e_summary_offline_handler_get_type ())
-#define E_SUMMARY_OFFLINE_HANDLER(obj) (GTK_CHECK_CAST ((obj), E_SUMMARY_TYPE_OFFLINE_HANDLER, ESummaryOfflineHandler))
-#define E_SUMMARY_OFFLINE_HANDLER_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_SUMMARY_TYPE_OFFLINE_HANDLER, ESummaryOfflineHandlerClass))
-
-
-typedef struct _ESummaryOfflineHandler ESummaryOfflineHandler;
-typedef struct _ESummaryOfflineHandlerPriv ESummaryOfflineHandlerPriv;
-typedef struct _ESummaryOfflineHandlerClass ESummaryOfflineHandlerClass;
-
-struct _ESummaryOfflineHandler {
- BonoboObject parent;
-
- ESummaryOfflineHandlerPriv *priv;
-};
-
-struct _ESummaryOfflineHandlerClass {
- BonoboObjectClass parent_class;
-
- POA_GNOME_Evolution_Offline__epv epv;
-};
-
-
-GtkType e_summary_offline_handler_get_type (void);
-ESummaryOfflineHandler *e_summary_offline_handler_new (void);
-
-void e_summary_offline_handler_add_summary (ESummaryOfflineHandler *handler,
- ESummary *summary);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/my-evolution/e-summary-preferences.c b/my-evolution/e-summary-preferences.c
deleted file mode 100644
index b427335e19..0000000000
--- a/my-evolution/e-summary-preferences.c
+++ /dev/null
@@ -1,1253 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-preferences.c
- *
- * Copyright (C) 2001, 2002 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gtk/gtk.h>
-
-#include <libgnome/gnome-util.h>
-#include <libgnome/gnome-i18n.h>
-#include <libgnome/gnome-config.h>
-
-#include <libgnomeui/gnome-propertybox.h>
-
-#include <glade/glade.h>
-#include <stdio.h>
-
-#include <bonobo/bonobo-exception.h>
-#include <bonobo/bonobo-generic-factory.h>
-#include <bonobo/bonobo-moniker-util.h>
-#include <bonobo/bonobo-shlib-factory.h>
-#include <bonobo/bonobo-control.h>
-#include <bonobo/bonobo-widget.h>
-
-#include <gconf/gconf-client.h>
-
-#include <shell/evolution-storage-set-view-listener.h>
-
-#include <string.h>
-
-#include "e-summary.h"
-#include "e-summary-preferences.h"
-#include "e-summary-table.h"
-#include "e-summary-shown.h"
-
-#include "evolution-config-control.h"
-
-static ESummaryPrefs *global_preferences = NULL;
-static GNOME_Evolution_Shell global_shell = NULL;
-
-gboolean
-e_summary_preferences_restore (ESummaryPrefs *prefs)
-{
- GConfClient *gconf_client;
- GSList *path_list;
- GSList *uri_list;
- GSList *p, *q;
-
- g_return_val_if_fail (prefs != NULL, FALSE);
-
- gconf_client = gconf_client_get_default ();
-
- path_list = gconf_client_get_list (gconf_client, "/apps/evolution/summary/mail/folder_evolution_uris",
- GCONF_VALUE_STRING, NULL);
- uri_list = gconf_client_get_list (gconf_client, "/apps/evolution/summary/mail/folder_physical_uris",
- GCONF_VALUE_STRING, NULL);
-
- prefs->display_folders = NULL;
- for (p = path_list, q = uri_list; p != NULL && q != NULL; p = p->next, q = q->next) {
- ESummaryPrefsFolder *folder;
-
- folder = g_new (ESummaryPrefsFolder, 1);
- folder->evolution_uri = p->data;
- folder->physical_uri = q->data;
- prefs->display_folders = g_slist_append(prefs->display_folders, folder);
- }
-
- g_slist_free (path_list);
- g_slist_free (uri_list);
-
- prefs->show_full_path = gconf_client_get_bool (gconf_client, "/apps/evolution/summary/mail/show_full_paths", NULL);
-
- prefs->rdf_urls = gconf_client_get_list (gconf_client, "/apps/evolution/summary/rdf/uris",
- GCONF_VALUE_STRING, NULL);
-
- prefs->rdf_refresh_time = gconf_client_get_int (gconf_client, "/apps/evolution/summary/rdf/refresh_time", NULL);
-
- prefs->limit = gconf_client_get_int (gconf_client, "/apps/evolution/summary/rdf/max_items", NULL);
-
- prefs->stations = gconf_client_get_list (gconf_client, "/apps/evolution/summary/weather/stations",
- GCONF_VALUE_STRING, NULL);
-
- if (gconf_client_get_bool (gconf_client, "/apps/evolution/summary/weather/use_metric", NULL))
- prefs->units = UNITS_METRIC;
- else
- prefs->units = UNITS_IMPERIAL;
-
- prefs->weather_refresh_time = gconf_client_get_int (gconf_client, "/apps/evolution/summary/weather/refresh_time",
- NULL);
-
- prefs->days = gconf_client_get_int (gconf_client, "/apps/evolution/summary/calendar/days_shown", NULL);
- if (gconf_client_get_bool (gconf_client, "/apps/evolution/summary/tasks/show_all", NULL))
- prefs->show_tasks = E_SUMMARY_CALENDAR_ALL_TASKS;
- else
- prefs->show_tasks = E_SUMMARY_CALENDAR_ONE_DAY;
-
- g_object_unref (gconf_client);
- return TRUE;
-}
-
-void
-e_summary_preferences_save (ESummaryPrefs *prefs)
-{
- GConfClient *gconf_client;
- GSList *evolution_uri_list, *physical_uri_list;
- GSList *p;
-
- gconf_client = gconf_client_get_default ();
-
- evolution_uri_list = NULL;
- physical_uri_list = NULL;
- for (p = prefs->display_folders; p != NULL; p = p->next) {
- const ESummaryPrefsFolder *folder;
-
- folder = (const ESummaryPrefsFolder *) p->data;
- evolution_uri_list = g_slist_prepend (evolution_uri_list, folder->evolution_uri);
- physical_uri_list = g_slist_prepend (physical_uri_list, folder->physical_uri);
- }
- evolution_uri_list = g_slist_reverse (evolution_uri_list);
- physical_uri_list = g_slist_reverse (physical_uri_list);
-
- gconf_client_set_list (gconf_client, "/apps/evolution/summary/mail/folder_evolution_uris",
- GCONF_VALUE_STRING, evolution_uri_list, NULL);
- gconf_client_set_list (gconf_client, "/apps/evolution/summary/mail/folder_physical_uris",
- GCONF_VALUE_STRING, physical_uri_list, NULL);
-
- g_slist_free (evolution_uri_list);
- g_slist_free (physical_uri_list);
-
- gconf_client_set_bool (gconf_client, "/apps/evolution/summary/mail/show_full_paths", prefs->show_full_path, NULL);
-
- gconf_client_set_list (gconf_client, "/apps/evolution/summary/rdf/uris",
- GCONF_VALUE_STRING, prefs->rdf_urls, NULL);
-
- gconf_client_set_int (gconf_client, "/apps/evolution/summary/rdf/refresh_time", prefs->rdf_refresh_time, NULL);
- gconf_client_set_int (gconf_client, "/apps/evolution/summary/rdf/max_items", prefs->limit, NULL);
-
- gconf_client_set_list (gconf_client, "/apps/evolution/summary/weather/stations",
- GCONF_VALUE_STRING, prefs->stations, NULL);
-
- gconf_client_set_bool (gconf_client, "/apps/evolution/summary/weather/use_metric",
- prefs->units == UNITS_METRIC, NULL);
- gconf_client_set_int (gconf_client, "/apps/evolution/summary/weather/refresh_time",
- prefs->weather_refresh_time, NULL);
-
- gconf_client_set_int (gconf_client, "/apps/evolution/summary/calendar/days_shown",
- prefs->days, NULL);
-
- gconf_client_set_bool (gconf_client, "/apps/evolution/summary/tasks/show_all",
- prefs->show_tasks == E_SUMMARY_CALENDAR_ALL_TASKS, NULL);
-
- g_object_unref (gconf_client);
-}
-
-static void
-free_str_list (GSList *list)
-{
- for (; list; list = list->next) {
- g_free (list->data);
- }
-}
-
-static void
-free_folder_list (GSList *list)
-{
- for (; list; list = list->next) {
- ESummaryPrefsFolder *f = list->data;
-
- g_free (f->evolution_uri);
- g_free (f->physical_uri);
- g_free (f);
- }
-}
-
-void
-e_summary_preferences_free (ESummaryPrefs *prefs)
-{
- if (prefs->display_folders) {
- free_folder_list (prefs->display_folders);
- g_slist_free (prefs->display_folders);
- }
-
- if (prefs->rdf_urls) {
- free_str_list (prefs->rdf_urls);
- g_slist_free (prefs->rdf_urls);
- }
-
- if (prefs->stations) {
- free_str_list (prefs->stations);
- g_slist_free (prefs->stations);
- }
-
- g_free (prefs);
-}
-
-static GSList *
-copy_str_list (GSList *list)
-{
- GSList *list_copy = NULL;
-
- for (; list; list = list->next) {
- list_copy = g_slist_prepend (list_copy, g_strdup (list->data));
- }
-
- list_copy = g_slist_reverse (list_copy);
- return list_copy;
-}
-
-static GSList *
-copy_folder_list (GSList *list)
-{
- GSList *list_copy = NULL;
-
- for (; list; list = list->next) {
- ESummaryPrefsFolder *f1, *f2;
-
- f1 = list->data;
- f2 = g_new (ESummaryPrefsFolder, 1);
- f2->evolution_uri = g_strdup (f1->evolution_uri);
- f2->physical_uri = g_strdup (f1->physical_uri);
-
- list_copy = g_slist_prepend (list_copy, f2);
- }
-
- list_copy = g_slist_reverse (list_copy);
- return list_copy;
-}
-
-ESummaryPrefs *
-e_summary_preferences_copy (ESummaryPrefs *prefs)
-{
- ESummaryPrefs *prefs_copy;
-
- prefs_copy = g_new (ESummaryPrefs, 1);
-
- prefs_copy->display_folders = copy_folder_list (prefs->display_folders);
- prefs_copy->show_full_path = prefs->show_full_path;
-
- prefs_copy->rdf_urls = copy_str_list (prefs->rdf_urls);
- prefs_copy->rdf_refresh_time = prefs->rdf_refresh_time;
- prefs_copy->limit = prefs->limit;
-
- prefs_copy->stations = copy_str_list (prefs->stations);
- prefs_copy->units = prefs->units;
- prefs_copy->weather_refresh_time = prefs->weather_refresh_time;
-
- prefs_copy->days = prefs->days;
- prefs_copy->show_tasks = prefs->show_tasks;
-
- return prefs_copy;
-}
-
-ESummaryPrefs *
-e_summary_preferences_init (void)
-{
- ESummaryPrefs *prefs;
-
- if (global_preferences != NULL) {
- return global_preferences;
- }
-
- prefs = g_new0 (ESummaryPrefs, 1);
- global_preferences = prefs;
-
- e_summary_preferences_restore (prefs);
-
- return prefs;
-}
-
-ESummaryPrefs *
-e_summary_preferences_get_global (void)
-{
- g_assert(global_preferences);
-
- return global_preferences;
-}
-
-struct _MailPage {
- GtkWidget *storage_set_view;
- GtkWidget *all, *shown;
- GtkWidget *fullpath;
- GtkWidget *add, *remove;
-
- GHashTable *model;
- GSList *tmp_list;
-};
-
-struct _RDFPage {
- GtkWidget *etable;
- GtkWidget *refresh, *limit;
- GtkWidget *new_button, *delete_url;
-
- GHashTable *default_hash, *model;
- GSList *known, *tmp_list;
-};
-
-struct _WeatherPage {
- GtkWidget *etable;
- GtkWidget *refresh, *imperial, *metric;
- GtkWidget *add, *remove;
-
- GHashTable *model;
- GSList *tmp_list;
-};
-
-struct _CalendarPage {
- GtkWidget *one, *five, *week, *month;
- GtkWidget *all, *today;
-};
-
-typedef struct _PropertyData {
- EvolutionConfigControl *config_control;
-
- GladeXML *xml;
-
- struct _MailPage *mail;
- struct _RDFPage *rdf;
- struct _WeatherPage *weather;
- struct _CalendarPage *calendar;
-} PropertyData;
-
-struct _RDFInfo {
- char *url;
- char *name;
-
- gboolean custom;
-};
-
-static struct _RDFInfo rdfs[] = {
- {"http://advogato.org/rss/articles.xml", "Advogato", FALSE},
- {"http://barrapunto.com/barrapunto.rdf", "Barrapunto", FALSE},
- {"http://barrapunto.com/gnome.rdf", "Barrapunto GNOME", FALSE,},
- {"http://www.bsdtoday.com/backend/bt.rdf", "BSD Today", FALSE},
- {"http://beyond2000.com/b2k.rdf", "Beyond 2000", FALSE},
- {"http://www.dictionary.com/wordoftheday/wotd.rss", N_("Dictionary.com Word of the Day"), FALSE},
- {"http://www.dvdreview.com/rss/newschannel.rss", "DVD Review", FALSE},
- {"http://freshmeat.net/backend/fm.rdf", "Freshmeat", FALSE},
- {"http://www.gnomedesktop.org/backend.php", "Footnotes - GNOME News", FALSE},
- {"http://headlines.internet.com/internetnews/prod-news/news.rss", "Internet.com", FALSE},
- {"http://www.hispalinux.es/backend.php", "HispaLinux", FALSE},
- {"http://dot.kde.org/rdf", "KDE Dot News", FALSE},
- {"http://www.kuro5hin.org/backend.rdf", "Kuro5hin", FALSE},
- {"http://linuxgames.com/bin/mynetscape.pl", "Linux Games", FALSE},
- {"http://linuxtoday.com/backend/my-netscape.rdf", "Linux Today", FALSE},
- {"http://lwn.net/headlines/rss", "Linux Weekly News", FALSE},
- {"http://memepool.com/memepool.rss", "Memepool", FALSE},
- {"http://www.mozilla.org/news.rdf", "Mozilla", FALSE},
- {"http://www.mozillazine.org/contents.rdf", "Mozillazine", FALSE},
- {"http://www.fool.com/about/headlines/rss_headlines.asp", "The Motley Fool", FALSE},
- {"http://www.newsforge.com/newsforge.rss", "Newsforge", FALSE},
- {"http://www.pigdog.org/pigdog.rdf", "Pigdog", FALSE},
- {"http://www.python.org/channews.rdf", "Python.org", FALSE},
- {"http://www.quotationspage.com/data/mqotd.rss", N_("Quotes of the Day"), FALSE},
- {"http://www.salon.com/feed/RDF/salon_use.rdf", "Salon", FALSE},
- {"http://slashdot.org/slashdot.rdf", "Slashdot", FALSE},
- {"http://www.theregister.co.uk/tonys/slashdot.rdf", "The Register", FALSE},
- {"http://www.webreference.com/webreference.rdf", "Web Reference", FALSE},
- {"http://redcarpet.ximian.com/red-carpet.rdf", "Ximian Red Carpet News", FALSE},
- {NULL, NULL, FALSE}
-};
-
-static void
-save_known_rdfs (GSList *rdfs)
-{
- FILE *handle;
- char *rdf_file;
-
- rdf_file = gnome_util_prepend_user_home ("evolution/RDF-urls.txt");
- handle = fopen (rdf_file, "w");
- g_free (rdf_file);
-
- if (handle == NULL) {
- g_warning ("Error opening RDF-urls.txt");
- return;
- }
-
- for (; rdfs; rdfs = rdfs->next) {
- struct _RDFInfo *info;
- char *line;
-
- info = rdfs->data;
- if (info->custom == FALSE) {
- continue;
- }
-
- line = g_strconcat (info->url, ",", info->name, "\n", NULL);
- fputs (line, handle);
- g_free (line);
- }
-
- fclose (handle);
-}
-
-/* Yeah a silly loop, but p should be short enough that it doesn't matter much */
-static gboolean
-rdf_is_shown (PropertyData *pd,
- const char *url)
-{
- GSList *p;
-
- for (p = global_preferences->rdf_urls; p; p = p->next) {
- if (strcmp (p->data, url) == 0) {
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-static void
-fill_rdf_etable (GtkWidget *widget,
- PropertyData *pd)
-{
- ESummaryShownModelEntry *entry;
- ESummaryShown *ess;
- FILE *handle;
- int i, total;
- char *rdf_file, line[4096];
-
- if (pd->rdf->default_hash == NULL) {
- pd->rdf->default_hash = g_hash_table_new (g_str_hash, g_str_equal);
- }
-
- ess = E_SUMMARY_SHOWN (widget);
- e_summary_shown_freeze (ess);
-
- /* Fill the defaults first */
- for (i = 0; rdfs[i].url; i++) {
- entry = g_new (ESummaryShownModelEntry, 1);
- entry->location = g_strdup (rdfs[i].url);
- entry->name = g_strdup (rdfs[i].name);
- entry->showable = TRUE;
- entry->data = &rdfs[i];
-
- e_summary_shown_add_node (ess, TRUE, entry, NULL, FALSE, NULL);
-
- if (rdf_is_shown (pd, rdfs[i].url) == TRUE) {
- entry = g_new (ESummaryShownModelEntry, 1);
- entry->location = g_strdup (rdfs[i].url);
- entry->name = g_strdup (rdfs[i].name);
- entry->showable = TRUE;
- entry->data = &rdfs[i];
-
- e_summary_shown_add_node (ess, FALSE, entry, NULL, FALSE, NULL);
- }
-
- pd->rdf->known = g_slist_append (pd->rdf->known, &rdfs[i]);
-
- g_hash_table_insert (pd->rdf->default_hash, rdfs[i].url, &rdfs[i]);
- }
-
- total = i;
-
- rdf_file = gnome_util_prepend_user_home ("evolution/RDF-urls.txt");
- handle = fopen (rdf_file, "r");
- g_free (rdf_file);
- if (handle == NULL) {
- /* Open the old location just so that users data isn't lost */
- rdf_file = gnome_util_prepend_user_home ("evolution/config/RDF-urls.txt");
- handle = fopen (rdf_file, "r");
- g_free (rdf_file);
- }
-
- if (handle == NULL) {
- e_summary_shown_thaw (ess);
- return;
- }
-
- while (fgets (line, 4095, handle)) {
- char **tokens;
- struct _RDFInfo *info;
- int len;
-
- len = strlen (line);
- if (line[len - 1] == '\n') {
- line[len - 1] = 0;
- }
-
- tokens = g_strsplit (line, ",", 2);
- if (tokens == NULL) {
- continue;
- }
-
- if (g_hash_table_lookup (pd->rdf->default_hash, tokens[0]) != NULL) {
- g_strfreev (tokens);
- continue;
- }
-
- info = g_new (struct _RDFInfo, 1);
- info->url = g_strdup (tokens[0]);
- info->name = g_strdup (tokens[1]);
- info->custom = TRUE;
-
- pd->rdf->known = g_slist_append (pd->rdf->known, info);
-
- entry = g_new (ESummaryShownModelEntry, 1);
- entry->location = g_strdup (info->url);
- entry->name = g_strdup (info->name);
- entry->showable = TRUE;
- entry->data = info;
-
- e_summary_shown_add_node (ess, TRUE, entry, NULL, FALSE, NULL);
-
- if (rdf_is_shown (pd, tokens[0]) == TRUE) {
- entry = g_new (ESummaryShownModelEntry, 1);
- entry->location = g_strdup (info->url);
- entry->name = g_strdup (info->name);
- entry->showable = TRUE;
- entry->data = info;
-
- e_summary_shown_add_node (ess, FALSE, entry, NULL, FALSE, NULL);
- }
-
- g_strfreev (tokens);
- }
-
- fclose (handle);
- e_summary_shown_thaw (ess);
-}
-
-static void
-fill_weather_etable (ESummaryShown *ess,
- PropertyData *pd)
-{
- e_summary_weather_fill_etable (ess);
-}
-
-static void
-mail_show_full_path_toggled_cb (GtkToggleButton *tb,
- PropertyData *pd)
-{
- global_preferences->show_full_path = gtk_toggle_button_get_active (tb);
-
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-rdf_new_url_clicked_cb (GtkButton *button,
- PropertyData *pd)
-{
- GtkWidget *add_dialog;
- GtkWidget *name_label, *url_label, *table;
- GtkWidget *new_name_entry, *new_url_entry;
-
- add_dialog = gtk_dialog_new_with_buttons (_("New News Feed"),
- GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (button))),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
- NULL);
- gtk_dialog_set_default_response (GTK_DIALOG (add_dialog), GTK_RESPONSE_OK);
-
- table = gtk_table_new (2, 2, FALSE);
-
- name_label = gtk_label_new_with_mnemonic (_("_Name:"));
- gtk_table_attach (GTK_TABLE (table), name_label, 0, 1, 0, 1, GTK_FILL, 0, 6, 6);
-
- new_name_entry = gtk_entry_new ();
- gtk_table_attach (GTK_TABLE (table), new_name_entry, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, 0, 6, 6);
-
- url_label = gtk_label_new_with_mnemonic (_("_URL:"));
- gtk_table_attach (GTK_TABLE (table), url_label, 0, 1, 1, 2, GTK_FILL, 0, 6, 6);
-
- new_url_entry = gtk_entry_new ();
- gtk_table_attach (GTK_TABLE (table), new_url_entry, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 6, 6);
-
-
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (add_dialog)->vbox), table, FALSE, FALSE, 6);
- gtk_widget_show_all (add_dialog);
-
- if (gtk_dialog_run (GTK_DIALOG (add_dialog)) == GTK_RESPONSE_OK) {
- const char *url;
- const char *name;
-
- name = gtk_entry_get_text (GTK_ENTRY (new_name_entry));
- url = gtk_entry_get_text (GTK_ENTRY (new_url_entry));
-
- if (name != NULL && *name != 0 && url != NULL && *url != 0) {
- ESummaryShownModelEntry *entry;
- struct _RDFInfo *info;
-
- info = g_new (struct _RDFInfo, 1);
- info->url = g_strdup (url);
- info->name = g_strdup (name);
- info->custom = TRUE;
-
- pd->rdf->known = g_slist_append (pd->rdf->known, info);
-
- entry = g_new (ESummaryShownModelEntry, 1);
- entry->location = g_strdup (info->url);
- entry->name = g_strdup (info->name);
- entry->showable = TRUE;
- entry->data = info;
-
- e_summary_shown_add_node (E_SUMMARY_SHOWN (pd->rdf->etable), TRUE,
- entry, NULL, FALSE, NULL);
-
- /* Should we add to shown? */
-
- save_known_rdfs (pd->rdf->known);
-
- evolution_config_control_changed (pd->config_control);
- }
- }
-
- gtk_widget_destroy (add_dialog);
-}
-
-static void
-rdf_delete_url_cb (GtkButton *button,
- PropertyData *pd)
-{
- GList *selection;
-
- selection = e_summary_shown_get_selection (E_SUMMARY_SHOWN (pd->rdf->etable), TRUE);
-
- for (; selection; selection = selection->next) {
- ETreePath path = selection->data;
- ESummaryShownModelEntry *entry;
-
- entry = g_hash_table_lookup (E_SUMMARY_SHOWN (pd->rdf->etable)->all_model, path);
-
- if (entry == NULL) {
- continue;
- }
-
- e_summary_shown_remove_node (E_SUMMARY_SHOWN (pd->rdf->etable), TRUE, entry);
- pd->rdf->known = g_slist_remove (pd->rdf->known, entry->data);
-
- /* FIXME: Remove from shown side as well */
- }
-
- save_known_rdfs (pd->rdf->known);
-}
-
-static void
-rdf_refresh_value_changed_cb (GtkAdjustment *adj,
- PropertyData *pd)
-{
- global_preferences->rdf_refresh_time = (int) adj->value;
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-rdf_limit_value_changed_cb (GtkAdjustment *adj,
- PropertyData *pd)
-{
- global_preferences->limit = (int) adj->value;
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-rdf_etable_item_changed_cb (ESummaryShown *ess,
- PropertyData *pd)
-{
- if (pd->config_control != NULL) {
- evolution_config_control_changed (pd->config_control);
- }
-}
-
-static void
-rdf_etable_selection_cb (ESummaryShown *ess,
- GList *selection,
- PropertyData *pd)
-{
- if (pd->rdf->delete_url == NULL) {
- return;
- }
-
- if (selection != NULL) {
- GList *p;
-
- for (p = selection; p; p = p->next) {
- ESummaryShownModelEntry *entry;
- struct _RDFInfo *info;
-
- entry = g_hash_table_lookup (E_SUMMARY_SHOWN (pd->rdf->etable)->all_model, p->data);
- if (entry == NULL) {
- g_warning ("Hmmm\n");
- continue;
- }
-
- info = entry->data;
- if (info->custom == TRUE) {
- gtk_widget_set_sensitive (pd->rdf->delete_url, TRUE);
- return;
- }
- }
- }
-
- gtk_widget_set_sensitive (pd->rdf->delete_url, FALSE);
-}
-
-static void
-weather_etable_item_changed_cb (ESummaryShown *ess,
- PropertyData *pd)
-{
- if (pd->config_control != NULL) {
- evolution_config_control_changed (pd->config_control);
- }
-}
-
-static void
-weather_refresh_value_changed_cb (GtkAdjustment *adj,
- PropertyData *pd)
-{
- global_preferences->weather_refresh_time = (int) adj->value;
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-weather_metric_toggled_cb (GtkToggleButton *tb,
- PropertyData *pd)
-{
- if (gtk_toggle_button_get_active (tb) == FALSE) {
- return;
- }
-
- global_preferences->units = UNITS_METRIC;
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-weather_imperial_toggled_cb (GtkToggleButton *tb,
- PropertyData *pd)
-{
- if (gtk_toggle_button_get_active (tb) == FALSE) {
- return;
- }
-
- global_preferences->units = UNITS_IMPERIAL;
- evolution_config_control_changed (pd->config_control);
-}
-
-
-static void
-calendar_one_toggled_cb (GtkToggleButton *tb,
- PropertyData *pd)
-{
- if (gtk_toggle_button_get_active (tb) == FALSE) {
- return;
- }
-
- global_preferences->days = E_SUMMARY_CALENDAR_ONE_DAY;
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-calendar_five_toggled_cb (GtkToggleButton *tb,
- PropertyData *pd)
-{
- if (gtk_toggle_button_get_active (tb) == FALSE) {
- return;
- }
-
- global_preferences->days = E_SUMMARY_CALENDAR_FIVE_DAYS;
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-calendar_week_toggled_cb (GtkToggleButton *tb,
- PropertyData *pd)
-{
- if (gtk_toggle_button_get_active (tb) == FALSE) {
- return;
- }
-
- global_preferences->days = E_SUMMARY_CALENDAR_ONE_WEEK;
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-calendar_month_toggled_cb (GtkToggleButton *tb,
- PropertyData *pd)
-{
- if (gtk_toggle_button_get_active (tb) == FALSE) {
- return;
- }
-
- global_preferences->days = E_SUMMARY_CALENDAR_ONE_MONTH;
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-calendar_all_toggled_cb (GtkToggleButton *tb,
- PropertyData *pd)
-{
- if (gtk_toggle_button_get_active (tb) == FALSE) {
- return;
- }
-
- global_preferences->show_tasks = E_SUMMARY_CALENDAR_ALL_TASKS;
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-calendar_today_toggled_cb (GtkToggleButton *tb,
- PropertyData *pd)
-{
- if (gtk_toggle_button_get_active (tb) == FALSE) {
- return;
- }
-
- global_preferences->show_tasks = E_SUMMARY_CALENDAR_TODAYS_TASKS;
- evolution_config_control_changed (pd->config_control);
-}
-
-static void
-storage_set_changed (EvolutionStorageSetViewListener *listener,
- PropertyData *pd)
-{
- evolution_config_control_changed (pd->config_control);
-}
-
-static gboolean
-make_property_dialog (PropertyData *pd)
-{
- struct _MailPage *mail;
- struct _RDFPage *rdf;
- struct _WeatherPage *weather;
- struct _CalendarPage *calendar;
- GtkWidget *listener;
-
- /* Mail */
- mail = pd->mail = g_new (struct _MailPage, 1);
- mail->tmp_list = NULL;
-
- mail->storage_set_view = glade_xml_get_widget (pd->xml, "mail-custom");
- g_return_val_if_fail (mail->storage_set_view != NULL, FALSE);
-
- listener = g_object_get_data (G_OBJECT (mail->storage_set_view), "listener");
- g_signal_connect (listener, "folder-toggled", G_CALLBACK (storage_set_changed), pd);
-
- mail->fullpath = glade_xml_get_widget (pd->xml, "checkbutton1");
- g_return_val_if_fail (mail->fullpath != NULL, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (mail->fullpath),
- global_preferences->show_full_path);
- g_signal_connect (mail->fullpath, "toggled", G_CALLBACK (mail_show_full_path_toggled_cb), pd);
-
- /* RDF */
- rdf = pd->rdf = g_new0 (struct _RDFPage, 1);
- rdf->etable = glade_xml_get_widget (pd->xml, "rdf-custom");
- g_return_val_if_fail (rdf->etable != NULL, FALSE);
-
- g_signal_connect (rdf->etable, "item-changed", G_CALLBACK (rdf_etable_item_changed_cb), pd);
- g_signal_connect (rdf->etable, "selection-changed", G_CALLBACK (rdf_etable_selection_cb), pd);
-
- fill_rdf_etable (rdf->etable, pd);
- rdf->refresh = glade_xml_get_widget (pd->xml, "spinbutton1");
- g_return_val_if_fail (rdf->refresh != NULL, FALSE);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (rdf->refresh),
- (float) global_preferences->rdf_refresh_time);
- g_signal_connect (GTK_SPIN_BUTTON (rdf->refresh)->adjustment, "value_changed",
- G_CALLBACK (rdf_refresh_value_changed_cb), pd);
-
- rdf->limit = glade_xml_get_widget (pd->xml, "spinbutton4");
- g_return_val_if_fail (rdf->limit != NULL, FALSE);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (rdf->limit),
- (float) global_preferences->limit);
- g_signal_connect (GTK_SPIN_BUTTON (rdf->limit)->adjustment, "value_changed",
- G_CALLBACK (rdf_limit_value_changed_cb), pd);
-
- rdf->new_button = glade_xml_get_widget (pd->xml, "button11");
- g_return_val_if_fail (rdf->limit != NULL, FALSE);
- g_signal_connect (rdf->new_button, "clicked", G_CALLBACK (rdf_new_url_clicked_cb), pd);
-
- rdf->delete_url = glade_xml_get_widget (pd->xml, "delete-button");
- g_return_val_if_fail (rdf->delete_url != NULL, FALSE);
- g_signal_connect (rdf->delete_url, "clicked", G_CALLBACK (rdf_delete_url_cb), pd);
-
- /* Weather */
- weather = pd->weather = g_new (struct _WeatherPage, 1);
- weather->tmp_list = NULL;
-
- weather->etable = glade_xml_get_widget (pd->xml, "weather-custom");
- g_return_val_if_fail (weather->etable != NULL, FALSE);
-
- g_signal_connect (weather->etable, "item-changed", G_CALLBACK (weather_etable_item_changed_cb), pd);
-
- fill_weather_etable (E_SUMMARY_SHOWN (weather->etable), pd);
-
- weather->refresh = glade_xml_get_widget (pd->xml, "spinbutton5");
- g_return_val_if_fail (weather->refresh != NULL, FALSE);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (weather->refresh),
- (float) global_preferences->weather_refresh_time);
- g_signal_connect (GTK_SPIN_BUTTON (weather->refresh)->adjustment, "value-changed",
- G_CALLBACK (weather_refresh_value_changed_cb), pd);
-
- weather->metric = glade_xml_get_widget (pd->xml, "radiobutton7");
- g_return_val_if_fail (weather->metric != NULL, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (weather->metric),
- (global_preferences->units == UNITS_METRIC));
- g_signal_connect (weather->metric, "toggled", G_CALLBACK (weather_metric_toggled_cb), pd);
-
- weather->imperial = glade_xml_get_widget (pd->xml, "radiobutton8");
- g_return_val_if_fail (weather->imperial != NULL, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (weather->imperial),
- (global_preferences->units == UNITS_IMPERIAL));
- g_signal_connect (weather->imperial, "toggled", G_CALLBACK (weather_imperial_toggled_cb), pd);
-
- /* Calendar */
- calendar = pd->calendar = g_new (struct _CalendarPage, 1);
- calendar->one = glade_xml_get_widget (pd->xml, "radiobutton3");
- g_return_val_if_fail (calendar->one != NULL, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (calendar->one),
- (global_preferences->days == E_SUMMARY_CALENDAR_ONE_DAY));
- g_signal_connect (calendar->one, "toggled", G_CALLBACK (calendar_one_toggled_cb), pd);
-
- calendar->five = glade_xml_get_widget (pd->xml, "radiobutton4");
- g_return_val_if_fail (calendar->five != NULL, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (calendar->five),
- (global_preferences->days == E_SUMMARY_CALENDAR_FIVE_DAYS));
- g_signal_connect (calendar->five, "toggled", G_CALLBACK (calendar_five_toggled_cb), pd);
-
- calendar->week = glade_xml_get_widget (pd->xml, "radiobutton5");
- g_return_val_if_fail (calendar->week != NULL, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (calendar->week),
- (global_preferences->days == E_SUMMARY_CALENDAR_ONE_WEEK));
- g_signal_connect (calendar->week, "toggled", G_CALLBACK (calendar_week_toggled_cb), pd);
-
- calendar->month = glade_xml_get_widget (pd->xml, "radiobutton6");
- g_return_val_if_fail (calendar->month != NULL, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (calendar->month),
- (global_preferences->days == E_SUMMARY_CALENDAR_ONE_MONTH));
- g_signal_connect (calendar->month, "toggled", G_CALLBACK (calendar_month_toggled_cb), pd);
-
- calendar->all = glade_xml_get_widget (pd->xml, "radiobutton1");
- g_return_val_if_fail (calendar->all != NULL, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (calendar->all),
- (global_preferences->show_tasks == E_SUMMARY_CALENDAR_ALL_TASKS));
- g_signal_connect (calendar->all, "toggled", G_CALLBACK (calendar_all_toggled_cb), pd);
-
- calendar->today = glade_xml_get_widget (pd->xml, "radiobutton2");
- g_return_val_if_fail (calendar->today != NULL, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (calendar->today),
- (global_preferences->show_tasks == E_SUMMARY_CALENDAR_TODAYS_TASKS));
- g_signal_connect (calendar->today, "toggled", G_CALLBACK (calendar_today_toggled_cb), pd);
-
- return TRUE;
-}
-
-static void
-free_property_dialog (PropertyData *pd)
-{
- if (pd->rdf) {
- g_slist_free (pd->rdf->known);
-
- free_str_list (pd->rdf->tmp_list);
- g_slist_free (pd->rdf->tmp_list);
- g_free (pd->rdf);
- }
- if (pd->mail) {
- free_str_list (pd->mail->tmp_list);
- g_slist_free (pd->mail->tmp_list);
- g_free (pd->mail);
- }
- if (pd->weather) {
- free_str_list (pd->weather->tmp_list);
- g_slist_free (pd->weather->tmp_list);
- g_free (pd->weather);
- }
- if (pd->calendar) {
- g_free (pd->calendar);
- }
-
- if (pd->xml)
- g_object_unref (pd->xml);
-
- g_free (pd);
-}
-
-
-/* Prototypes to shut gcc up */
-GtkWidget *e_summary_preferences_make_mail_table (PropertyData *pd);
-GtkWidget *e_summary_preferences_make_rdf_table (PropertyData *pd);
-GtkWidget *e_summary_preferences_make_weather_table (PropertyData *pd);
-
-static void
-set_selected_folders (GNOME_Evolution_StorageSetView view)
-{
- GNOME_Evolution_FolderList *list;
- CORBA_Environment ev;
- GSList *l;
- int i, count;
-
- for (count = 0, l = global_preferences->display_folders; l;
- l = l->next, count++)
- ;
-
- list = GNOME_Evolution_FolderList__alloc ();
- list->_length = count;
- list->_maximum = count;
- list->_buffer = CORBA_sequence_GNOME_Evolution_Folder_allocbuf (count);
-
- for (i = 0, l = global_preferences->display_folders; l; i++, l = l->next) {
- ESummaryPrefsFolder *folder = l->data;
-
- list->_buffer[i].type = CORBA_string_dup ("");
- list->_buffer[i].description = CORBA_string_dup ("");
- list->_buffer[i].displayName = CORBA_string_dup ("");
- list->_buffer[i].evolutionUri = CORBA_string_dup (folder->evolution_uri);
- list->_buffer[i].physicalUri = CORBA_string_dup (folder->physical_uri);
- list->_buffer[i].unreadCount = 0;
- list->_buffer[i].canSyncOffline = TRUE;
- list->_buffer[i].sortingPriority = 0;
- list->_buffer[i].customIconName = CORBA_string_dup ("");
- }
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_StorageSetView__set_checkedFolders (view, list, &ev);
- CORBA_exception_free (&ev);
-}
-
-GtkWidget *
-e_summary_preferences_make_mail_table (PropertyData *pd)
-{
- CORBA_Environment ev;
- Bonobo_Control control;
- GNOME_Evolution_StorageSetView view;
- EvolutionStorageSetViewListener *listener;
- GNOME_Evolution_StorageSetViewListener corba_listener;
- GtkWidget *widget;
-
- g_assert (global_shell != NULL);
-
- CORBA_exception_init (&ev);
- control = GNOME_Evolution_Shell_createStorageSetView (global_shell, &ev);
- if (BONOBO_EX (&ev) || control == CORBA_OBJECT_NIL) {
- g_warning ("Error getting StorageSetView");
- CORBA_exception_free (&ev);
- return NULL;
- }
-
- view = Bonobo_Unknown_queryInterface (control,
- "IDL:GNOME/Evolution/StorageSetView:1.0", &ev);
- if (BONOBO_EX (&ev) || view == CORBA_OBJECT_NIL) {
- g_warning ("Error querying %s",
- CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return NULL;
- }
-
- GNOME_Evolution_StorageSetView__set_showCheckboxes (view, TRUE, &ev);
-
- listener = evolution_storage_set_view_listener_new ();
-
- corba_listener = evolution_storage_set_view_listener_corba_objref (listener);
-
- GNOME_Evolution_StorageSetView_addListener (view, corba_listener, &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Error adding listener %s",
- CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return NULL;
- }
-
- CORBA_exception_free (&ev);
-
- widget = bonobo_widget_new_control_from_objref (control, CORBA_OBJECT_NIL);
- g_object_set_data (G_OBJECT (widget), "listener", listener);
- g_object_set_data (G_OBJECT (widget), "corba_view", view);
-
- set_selected_folders (view);
- return widget;
-}
-
-GtkWidget *
-e_summary_preferences_make_rdf_table (PropertyData *pd)
-{
- return e_summary_shown_new ();
-}
-
-GtkWidget *
-e_summary_preferences_make_weather_table (PropertyData *pd)
-{
- return e_summary_shown_new ();
-}
-
-
-/* The factory for the ConfigControl. */
-
-static void
-add_shown_to_list (gpointer key,
- gpointer value,
- gpointer data)
-{
- ESummaryShownModelEntry *item;
- GSList **list;
-
- item = (ESummaryShownModelEntry *) value;
- list = (GSList **) data;
-
- *list = g_slist_prepend (*list, g_strdup (item->location));
-}
-
-static GSList *
-get_folders_from_view (GtkWidget *view)
-{
- GNOME_Evolution_StorageSetView set_view;
- GNOME_Evolution_FolderList *list;
- CORBA_Environment ev;
- GSList *out_list = NULL;
- int i;
-
- set_view = g_object_get_data (G_OBJECT (view), "corba_view");
- CORBA_exception_init (&ev);
-
- list = GNOME_Evolution_StorageSetView__get_checkedFolders (set_view, &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Error getting checkedFolders\n%s",
- CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return NULL;
- }
-
- CORBA_exception_free (&ev);
-
- for (i = 0; i < list->_length; i++) {
- GNOME_Evolution_Folder folder = list->_buffer[i];
- ESummaryPrefsFolder *f;
-
- f = g_new (ESummaryPrefsFolder, 1);
- f->evolution_uri = g_strdup (folder.evolutionUri);
- f->physical_uri = g_strdup (folder.physicalUri);
- out_list = g_slist_append (out_list, f);
- }
-
- return out_list;
-}
-
-static void
-config_control_apply_cb (EvolutionConfigControl *control,
- void *data)
-{
- PropertyData *pd;
-
- pd = (PropertyData *) data;
-
- if (pd->rdf->tmp_list) {
- free_str_list (pd->rdf->tmp_list);
- g_slist_free (pd->rdf->tmp_list);
- pd->rdf->tmp_list = NULL;
- }
- /* Take each news feed which is on and add it
- to the shown list */
- g_hash_table_foreach (E_SUMMARY_SHOWN (pd->rdf->etable)->shown_model,
- add_shown_to_list, &pd->rdf->tmp_list);
-
- if (global_preferences->rdf_urls) {
- free_str_list (global_preferences->rdf_urls);
- g_slist_free (global_preferences->rdf_urls);
- }
-
- global_preferences->rdf_urls = copy_str_list (pd->rdf->tmp_list);
-
- /* Weather */
- if (pd->weather->tmp_list) {
- free_str_list (pd->weather->tmp_list);
- g_slist_free (pd->weather->tmp_list);
- pd->weather->tmp_list = NULL;
- }
-
- g_hash_table_foreach (E_SUMMARY_SHOWN (pd->weather->etable)->shown_model,
- add_shown_to_list, &pd->weather->tmp_list);
- if (global_preferences->stations) {
- free_str_list (global_preferences->stations);
- g_slist_free (global_preferences->stations);
- }
- global_preferences->stations = copy_str_list (pd->weather->tmp_list);
-
- /* Folders */
- if (pd->mail->tmp_list) {
- free_str_list (pd->mail->tmp_list);
- g_slist_free (pd->mail->tmp_list);
- pd->mail->tmp_list = NULL;
- }
-
- if (global_preferences->display_folders) {
- free_folder_list (global_preferences->display_folders);
- g_slist_free (global_preferences->display_folders);
- }
- global_preferences->display_folders = get_folders_from_view(pd->mail->storage_set_view);
-
- e_summary_preferences_save (global_preferences);
-
- e_summary_reconfigure_all ();
-}
-
-static void
-config_control_destroy_cb (EvolutionConfigControl *config_control, void *data)
-{
- e_summary_preferences_restore(global_preferences);
- free_property_dialog ((PropertyData *)data);
-}
-
-BonoboObject *
-e_summary_preferences_create_control (void)
-{
- PropertyData *pd;
- GtkWidget *widget;
-
- pd = g_new0 (PropertyData, 1);
-
- pd->xml = glade_xml_new (EVOLUTION_GLADEDIR "/my-evolution.glade", NULL, NULL);
- g_return_val_if_fail (pd->xml != NULL, NULL);
-
- widget = glade_xml_get_widget (pd->xml, "notebook");
- if (widget == NULL || ! make_property_dialog (pd)) {
- g_warning ("Missing some part of XML file");
- free_property_dialog (pd);
- return NULL;
- }
-
- gtk_widget_ref (widget);
- gtk_container_remove (GTK_CONTAINER (widget->parent), widget);
-
- gtk_widget_show_all (widget);
- pd->config_control = evolution_config_control_new (widget);
-
- gtk_widget_unref (widget);
-
- g_signal_connect (pd->config_control, "apply", G_CALLBACK (config_control_apply_cb), pd);
- g_signal_connect (pd->config_control, "destroy", G_CALLBACK (config_control_destroy_cb), pd);
-
- return BONOBO_OBJECT (pd->config_control);
-}
-
-/* FIXME this kinda sucks. */
-void
-e_summary_preferences_init_control (GNOME_Evolution_Shell corba_shell)
-{
- global_shell = corba_shell;
-}
diff --git a/my-evolution/e-summary-preferences.h b/my-evolution/e-summary-preferences.h
deleted file mode 100644
index 2a706af02e..0000000000
--- a/my-evolution/e-summary-preferences.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-preferences.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifndef __E_SUMMARY_PREFERENCES_H__
-#define __E_SUMMARY_PREFERENCES_H__
-
-#include <bonobo/bonobo-ui-component.h>
-#include <Evolution.h>
-
-gboolean e_summary_preferences_restore (ESummaryPrefs *prefs);
-void e_summary_preferences_save (ESummaryPrefs *prefs);
-void e_summary_preferences_free (ESummaryPrefs *prefs);
-ESummaryPrefs *e_summary_preferences_copy (ESummaryPrefs *prefs);
-ESummaryPrefs *e_summary_preferences_init (void);
-ESummaryPrefs *e_summary_preferences_get_global (void);
-
-BonoboObject *e_summary_preferences_create_control (void);
-void e_summary_preferences_init_control (GNOME_Evolution_Shell shell);
-
-#endif
diff --git a/my-evolution/e-summary-rdf.c b/my-evolution/e-summary-rdf.c
deleted file mode 100644
index cfd3b74d29..0000000000
--- a/my-evolution/e-summary-rdf.c
+++ /dev/null
@@ -1,651 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-rdf.c
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <glib.h>
-#include <gtk/gtkmain.h>
-
-#include <libxml/parser.h>
-#include <libxml/xmlmemory.h>
-
-#include <libgnome/gnome-i18n.h>
-
-#include <gal/widgets/e-unicode.h>
-
-#include <libsoup/soup.h>
-
-#include <string.h>
-
-#include "e-summary.h"
-
-struct _ESummaryRDF {
- ESummaryConnection *connection;
- GList *rdfs;
-
- char *html;
- guint32 timeout;
- gboolean online;
-};
-
-typedef struct _RDF {
- char *uri;
- char *html;
-
- xmlDocPtr cache;
- ESummary *summary;
-
- gboolean shown;
-
- /* Soup stuff */
- SoupMessage *message;
-} RDF;
-
-extern int xmlSubstituteEntitiesDefaultValue;
-
-char *
-e_summary_rdf_get_html (ESummary *summary)
-{
- GList *rdfs;
- char *html;
- GString *string;
-
- if (summary->rdf == NULL) {
- return NULL;
- }
-
- string = g_string_new ("");
- for (rdfs = summary->rdf->rdfs; rdfs; rdfs = rdfs->next) {
- if (((RDF *)rdfs->data)->html == NULL) {
- continue;
- }
-
- g_string_append (string, ((RDF *)rdfs->data)->html);
- }
-
- html = string->str;
- g_string_free (string, FALSE);
- return html;
-}
-
-/************ RDF Parser *******************/
-
-static char *
-layer_find (xmlNodePtr node,
- char *match,
- char *fail)
-{
- while (node!=NULL) {
-#ifdef RDF_DEBUG
- xmlDebugDumpNode (stdout, node, 32);
- printf("%s.\n", node->name);
-#endif
- if (strcasecmp (node->name, match)==0) {
- if (node->children != NULL && node->children->content != NULL) {
- return node->children->content;
- } else {
- return fail;
- }
- }
- node = node->next;
- }
- return fail;
-}
-
-static char *
-layer_find_url (xmlNodePtr node,
- char *match,
- char *fail)
-{
- char *p = layer_find (node, match, fail);
- char *r = p;
- static char *wb = NULL;
- char *w;
-
- if (wb) {
- g_free (wb);
- }
-
- wb = w = g_malloc (3 * strlen (p));
-
- if (w == NULL) {
- return fail;
- }
-
- if (*r == ' ') r++; /* Fix UF bug */
-
- while (*r) {
- if (strncmp (r, "&amp;", 5) == 0) {
- *w++ = '&';
- r += 5;
- continue;
- }
- if (strncmp (r, "&lt;", 4) == 0) {
- *w++ = '<';
- r += 4;
- continue;
- }
- if (strncmp (r, "&gt;", 4) == 0) {
- *w++ = '>';
- r += 4;
- continue;
- }
- if (*r == '"' || *r == ' '){
- *w++ = '%';
- *w++ = "0123456789ABCDEF"[*r/16];
- *w++ = "0123456789ABCDEF"[*r&15];
- r++;
- continue;
- }
- *w++ = *r++;
- }
- *w = 0;
- return wb;
-}
-
-static void
-tree_walk (xmlNodePtr root,
- RDF *r,
- GString *html)
-{
- xmlNodePtr walk;
- xmlNodePtr rewalk = root;
- xmlNodePtr channel = NULL;
- xmlNodePtr image = NULL;
- xmlNodePtr item[16];
- int items = 0;
- int limit;
- int i;
- char *t, *u;
- char *tmp;
- char *charset;
-
- if (r->summary->preferences == NULL) {
- limit = 10;
- } else {
- limit = r->summary->preferences->limit;
- }
-
- /* check in-memory encoding first, fallback to transport encoding, which may or may not be correct */
- if (r->cache->charset == XML_CHAR_ENCODING_UTF8
- || r->cache->charset == XML_CHAR_ENCODING_ASCII) {
- charset = NULL;
- } else {
- /* bad/missing encoding, fallback to latin1 (locale?) */
- charset = r->cache->encoding ? (char *)r->cache->encoding : "iso-8859-1";
- }
-
- /* FIXME: Need arrows */
- if (r->shown == FALSE) {
- char *p;
-
- /* FIXME: Hash table & UID */
- p = g_strdup_printf ("<a href=\"rdf://%d\" style=\"text-decoration: none; color: black\">&#x25b6;</a>", GPOINTER_TO_INT (r));
- g_string_append (html, p);
- g_free (p);
- } else {
- char *p;
-
- /* FIXME: Hash table & UID */
- p = g_strdup_printf ("<a href=\"rdf://%d\" style=\"text-decoration: none; color: black\">&#x25BC;</a>", GPOINTER_TO_INT (r));
- g_string_append (html, p);
- g_free (p);
- }
-
- do {
- walk = rewalk;
- rewalk = NULL;
-
- while (walk!=NULL){
-#ifdef RDF_DEBUG
- printf ("%p, %s\n", walk, walk->name);
-#endif
- if (strcasecmp (walk->name, "rdf") == 0) {
- rewalk = walk->children;
- walk = walk->next;
- continue;
- }
- if (strcasecmp (walk->name, "rss") == 0){
- rewalk = walk->children;
- walk = walk->next;
- continue;
- }
- /* This is the channel top level */
-#ifdef RDF_DEBUG
- printf ("Top level '%s'.\n", walk->name);
-#endif
- if (strcasecmp (walk->name, "channel") == 0) {
- channel = walk;
- rewalk = channel->children;
- }
- if (strcasecmp (walk->name, "image") == 0) {
- image = walk;
- }
- if (strcasecmp (walk->name, "item") == 0 && items < 16) {
- item[items++] = walk;
- }
- walk = walk->next;
- }
- }
- while (rewalk);
-
- if (channel == NULL) {
- fprintf(stderr, "No channel definition.\n");
- return;
- }
-
- t = layer_find(channel->children, "title", "");
- u = layer_find(channel->children, "link", "");
-
- if (*u != '\0')
- g_string_sprintfa (html, "<a href=\"%s\" style=\"text-decoration: none; color: black;\"><b>", u);
-
- if (charset) {
- char *tmp = e_utf8_from_charset_string (charset, t);
- g_string_append (html, tmp);
- g_free (tmp);
- } else {
- g_string_append (html, t);
- }
-
- if (*u != '\0')
- g_string_append (html, "</a>");
- g_string_append (html, "</b></dt>");
-
- if (r->shown == FALSE) {
- g_string_append (html, "</dl>");
- return;
- }
-
- g_string_append (html, "<ul>");
-
- items = MIN (limit, items);
- for (i = 0; i < items; i++) {
- char *p = layer_find (item[i]->children, "title", "No information");
-
- tmp = g_strdup_printf ("<LI><font size=\"-1\"><A href=\"%s\" style=\"text-decoration: none; color: black;\">\n", layer_find_url(item[i]->children, "link", ""));
- g_string_append (html, tmp);
- g_free (tmp);
-
- if (charset) {
- char *tmp = e_utf8_from_charset_string (charset, p);
- g_string_append (html, tmp);
- g_free (tmp);
- } else {
- g_string_append (html, p);
- }
-
- g_string_append (html, "\n</A></font></li>");
- }
- g_string_append (html, "</UL>");
-}
-
-static void
-display_doc (RDF *r)
-{
- GString *html;
-
- html = g_string_new ("<dl><dt><img src=\"ico-rdf.png\" align=\"middle\" "
- "width=\"48\" height=\"48\">");
-
- if (r->cache == NULL) {
- g_string_append_printf (html, "<b>%s:</b><br>%s</dt>",
- _("Error downloading RDF"),
- r->uri);
- } else {
- tree_walk (xmlDocGetRootElement (r->cache), r, html);
- }
-
- g_free (r->html);
- g_string_append (html, "</dl>");
- r->html = html->str;
- g_string_free (html, FALSE);
-
- e_summary_draw (r->summary);
-}
-
-static void
-message_finished (SoupMessage *msg,
- gpointer userdata)
-{
- xmlDocPtr doc;
- RDF *r = (RDF *) userdata;
-
- if (SOUP_MESSAGE_IS_ERROR (msg)) {
- g_warning ("Message failed: %d\n%s", msg->errorcode,
- msg->errorphrase);
- r->cache = NULL;
- r->message = NULL;
-
- display_doc (r);
- return;
- }
-
- if (r->cache != NULL) {
- xmlFreeDoc (r->cache);
- r->cache = NULL;
- }
-
- xmlSubstituteEntitiesDefaultValue = 1;
- doc = xmlParseMemory (msg->response.body, msg->response.length);
- r->cache = doc;
- r->message = NULL;
-
- /* Display it */
- display_doc (r);
-}
-
-gboolean
-e_summary_rdf_update (ESummary *summary)
-{
- GList *r;
-
- if (summary->rdf->online == FALSE) {
- g_warning ("%s: Repolling but offline", G_GNUC_FUNCTION);
- return TRUE;
- }
-
- for (r = summary->rdf->rdfs; r; r = r->next) {
- SoupContext *context;
- RDF *rdf = r->data;
-
- if (rdf->message) {
- continue;
- }
-
- context = soup_context_get (rdf->uri);
- if (context == NULL) {
- g_warning ("Invalid URL: %s", rdf->uri);
- soup_context_unref (context);
- continue;
- }
-
- rdf->message = soup_message_new (context, SOUP_METHOD_GET);
- soup_context_unref (context);
- soup_message_queue (rdf->message, message_finished, rdf);
- }
-
- return TRUE;
-}
-
-static void
-e_summary_rdf_add_uri (ESummary *summary,
- const char *uri)
-{
- RDF *r;
-
- r = g_new0 (RDF, 1);
- r->summary = summary;
- r->uri = g_strdup (uri);
- r->shown = TRUE;
- summary->rdf->rdfs = g_list_append (summary->rdf->rdfs, r);
-}
-
-static void
-e_summary_rdf_protocol (ESummary *summary,
- const char *uri,
- void *closure)
-{
- RDF *r;
- int a;
-
- a = atoi (uri + 6);
- if (a == 0) {
- g_warning ("A == 0");
- return;
- }
-
- r = (RDF *) GINT_TO_POINTER (a);
- r->shown = !r->shown;
-
- display_doc (r);
-}
-
-static int
-e_summary_rdf_count (ESummary *summary,
- void *data)
-{
- ESummaryRDF *rdf;
- GList *p;
- int count = 0;
-
- rdf = summary->rdf;
- for (p = rdf->rdfs; p; p = p->next) {
- RDF *r = p->data;
-
- if (r->message != NULL) {
- count++;
- }
- }
-
- return count;
-}
-
-static ESummaryConnectionData *
-make_connection (RDF *r)
-{
- ESummaryConnectionData *d;
-
- d = g_new (ESummaryConnectionData, 1);
- d->hostname = g_strdup (r->uri);
- d->type = g_strdup (_("News Feed"));
-
- return d;
-}
-
-static GList *
-e_summary_rdf_add (ESummary *summary,
- void *data)
-{
- ESummaryRDF *rdf;
- GList *p, *connections = NULL;
-
- rdf = summary->rdf;
- for (p = rdf->rdfs; p; p = p->next) {
- RDF *r = p->data;
-
- if (r->message != NULL) {
- ESummaryConnectionData *d;
-
- d = make_connection (r);
- connections = g_list_prepend (connections, d);
- }
- }
-
- return connections;
-}
-
-static void
-rdf_free (RDF *r)
-{
- /* Stop the download */
- if (r->message) {
- soup_message_cancel (r->message);
- }
-
- g_free (r->uri);
- g_free (r->html);
-
- if (r->cache) {
- xmlFreeDoc (r->cache);
- }
-
- g_free (r);
-}
-
-static void
-e_summary_rdf_set_online (ESummary *summary,
- GNOME_Evolution_OfflineProgressListener progress,
- gboolean online,
- void *data)
-{
- ESummaryRDF *rdf;
- GList *p;
-
- rdf = summary->rdf;
- if (rdf->online == online) {
- return;
- }
-
- if (online == TRUE) {
- e_summary_rdf_update (summary);
-
- if (summary->preferences->rdf_refresh_time != 0)
- rdf->timeout = gtk_timeout_add (summary->preferences->rdf_refresh_time * 1000,
- (GtkFunction) e_summary_rdf_update,
- summary);
- } else {
- for (p = rdf->rdfs; p; p = p->next) {
- RDF *r;
-
- r = p->data;
- if (r->message) {
- soup_message_cancel (r->message);
- r->message = NULL;
- }
- }
-
- gtk_timeout_remove (rdf->timeout);
- rdf->timeout = 0;
- }
-
- rdf->online = online;
-}
-
-void
-e_summary_rdf_init (ESummary *summary)
-{
- ESummaryPrefs *prefs;
- ESummaryRDF *rdf;
- ESummaryConnection *connection;
- GSList *p;
- int timeout;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- prefs = summary->preferences;
- g_assert (prefs != NULL);
-
- rdf = g_new0 (ESummaryRDF, 1);
- summary->rdf = rdf;
-
- connection = g_new (ESummaryConnection, 1);
- connection->count = e_summary_rdf_count;
- connection->add = e_summary_rdf_add;
- connection->set_online = e_summary_rdf_set_online;
- connection->closure = NULL;
- connection->callback = NULL;
- connection->callback_closure = NULL;
-
- rdf->connection = connection;
- rdf->online = TRUE;
- e_summary_add_online_connection (summary, connection);
-
- e_summary_add_protocol_listener (summary, "rdf", e_summary_rdf_protocol, rdf);
-
- for (p = prefs->rdf_urls; p; p = p->next) {
- e_summary_rdf_add_uri (summary, p->data);
- }
- timeout = prefs->rdf_refresh_time;
-
- e_summary_rdf_update (summary);
-
- if (rdf->timeout == 0)
- rdf->timeout = 0;
- else
- rdf->timeout = gtk_timeout_add (timeout * 1000,
- (GtkFunction) e_summary_rdf_update, summary);
-
- return;
-}
-
-void
-e_summary_rdf_reconfigure (ESummary *summary)
-{
- ESummaryRDF *rdf;
- GList *old, *p;
- GSList *sp;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- rdf = summary->rdf;
-
- /* Stop timeout */
- if (rdf->timeout != 0) {
- gtk_timeout_remove (rdf->timeout);
- rdf->timeout = 0;
- }
-
- old = rdf->rdfs;
- rdf->rdfs = NULL;
- for (p = old; p; p = p->next) {
- RDF *r;
-
- r = p->data;
- rdf_free (r);
- }
- g_list_free (old);
-
- for (sp = summary->preferences->rdf_urls; sp; sp = sp->next) {
- e_summary_rdf_add_uri (summary, sp->data);
- }
-
- if (summary->preferences->rdf_refresh_time != 0)
- rdf->timeout = gtk_timeout_add (summary->preferences->rdf_refresh_time * 1000,
- (GtkFunction) e_summary_rdf_update, summary);
-
- e_summary_rdf_update (summary);
-}
-
-void
-e_summary_rdf_free (ESummary *summary)
-{
- ESummaryRDF *rdf;
- GList *p;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- rdf = summary->rdf;
-
- if (rdf->timeout != 0)
- gtk_timeout_remove (rdf->timeout);
-
- for (p = rdf->rdfs; p; p = p->next) {
- RDF *r = p->data;
-
- rdf_free (r);
- }
- g_list_free (rdf->rdfs);
- g_free (rdf->html);
-
- e_summary_remove_online_connection (summary, rdf->connection);
- g_free (rdf->connection);
-
- g_free (rdf);
- summary->rdf = NULL;
-}
diff --git a/my-evolution/e-summary-rdf.h b/my-evolution/e-summary-rdf.h
deleted file mode 100644
index 0cf3b4236b..0000000000
--- a/my-evolution/e-summary-rdf.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-rdf.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifndef __E_SUMMARY_RDF_H__
-#define __E_SUMMARY_RDF_H__
-
-#include "e-summary-type.h"
-
-typedef struct _ESummaryRDF ESummaryRDF;
-
-char *e_summary_rdf_get_html (ESummary *summary);
-void e_summary_rdf_init (ESummary *summary);
-void e_summary_rdf_reconfigure (ESummary *summary);
-void e_summary_rdf_free (ESummary *summary);
-gboolean e_summary_rdf_update (ESummary *summary);
-
-#endif
diff --git a/my-evolution/e-summary-shown.c b/my-evolution/e-summary-shown.c
deleted file mode 100644
index dfc9f3f449..0000000000
--- a/my-evolution/e-summary-shown.c
+++ /dev/null
@@ -1,663 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright 2002 Ximian, Inc. (www.ximian.com)
- *
- * 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 Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-
-#include <gtk/gtkalignment.h>
-#include <gtk/gtkbutton.h>
-#include <gtk/gtkenums.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtkimage.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtksignal.h>
-#include <gtk/gtkstock.h>
-#include <gtk/gtkvbox.h>
-
-#include <gal/util/e-util.h>
-#include <gal/widgets/e-gui-utils.h>
-
-#include <gal/e-table/e-table-header.h>
-#include <gal/e-table/e-table-header-item.h>
-#include <gal/e-table/e-table-item.h>
-#include <gal/e-table/e-cell-text.h>
-#include <gal/e-table/e-cell-tree.h>
-#include <gal/e-table/e-table.h>
-#include <gal/e-table/e-tree.h>
-
-#include <gal/e-table/e-tree-scrolled.h>
-#include <gal/e-table/e-tree-memory.h>
-#include <gal/e-table/e-tree-memory-callbacks.h>
-#include <gal/e-table/e-tree-table-adapter.h>
-
-#include <libgnome/gnome-i18n.h>
-
-#include "e-summary-shown.h"
-
-#define COLS 1
-
-/* Needs to be filled in before use */
-#define SPEC "<ETableSpecification cursor-mode=\"line\" draw-focus=\"true\"> \
-<ETableColumn model_col=\"0\" _title=\"%s\" resizable=\"true\" cell=\"tree-string\" compare=\"string\"/> \
-<ETableState> \
-<column source=\"0\"/> \
-<grouping><leaf column=\"0\" ascending=\"true\"/></grouping> \
-</ETableState> \
-</ETableSpecification>"
-
-#define PARENT_TYPE (gtk_hbox_get_type ())
-static GtkObjectClass *e_summary_shown_parent_class;
-
-enum {
- ITEM_CHANGED,
- SELECTION_CHANGED,
- LAST_SIGNAL
-};
-static guint32 shown_signals[LAST_SIGNAL] = { 0 };
-
-typedef struct _TableData {
- ETreeModel *etm;
- ETreePath *root;
-
- GtkWidget *etable;
- GSList *contents;
-} TableData;
-
-struct _ESummaryShownPrivate {
- TableData *all, *shown;
- GtkWidget *add, *remove;
-};
-
-static GdkPixbuf *
-icon_at (ETreeModel *etm,
- ETreePath path,
- void *model_data)
-{
- return NULL;
-}
-
-static int
-column_count (ETreeModel *etm,
- void *data)
-{
- return COLS;
-}
-
-static void *
-duplicate_value (ETreeModel *etm,
- int col,
- const void *value,
- void *data)
-{
- return g_strdup (value);
-}
-
-static void
-free_value (ETreeModel *etm,
- int col,
- void *value,
- void *data)
-{
- g_free (value);
-}
-
-static void *
-initialise_value (ETreeModel *etm,
- int col,
- void *data)
-{
- return g_strdup ("");
-}
-
-static gboolean
-value_is_empty (ETreeModel *etm,
- int col,
- const void *value,
- void *data)
-{
- return !(value && *(char *)value);
-}
-
-static char *
-value_to_string (ETreeModel *etm,
- int col,
- const void *value,
- void *data)
-{
- return g_strdup (value);
-}
-
-static void *
-value_at (ETreeModel *etm,
- ETreePath path,
- int col,
- void *model_data)
-{
- GHashTable *model = model_data;
- ESummaryShownModelEntry *entry;
-
- if (e_tree_model_node_is_root (etm, path)) {
- return "<Root>";
- }
-
- entry = g_hash_table_lookup (model, path);
- if (entry == NULL) {
- return "<None>";
- } else {
- return entry->name;
- }
-}
-
-static gboolean
-is_editable (ETreeModel *etm,
- ETreePath path,
- int col,
- void *model_data)
-{
- return FALSE;
-}
-
-static void
-destroy (GtkObject *object)
-{
- ESummaryShown *shown;
- ESummaryShownPrivate *priv;
-
- shown = E_SUMMARY_SHOWN (object);
- priv = shown->priv;
-
- if (priv == NULL) {
- return;
- }
-
- g_free (priv);
- shown->priv = NULL;
-
- e_summary_shown_parent_class->destroy (object);
-}
-
-static void
-e_summary_shown_class_init (GtkObjectClass *object_class)
-{
- object_class->destroy = destroy;
-
- e_summary_shown_parent_class = gtk_type_class (PARENT_TYPE);
-
- shown_signals[ITEM_CHANGED] = gtk_signal_new ("item-changed",
- GTK_RUN_LAST,
- GTK_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ESummaryShownClass, item_changed),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
- shown_signals[SELECTION_CHANGED] = gtk_signal_new ("selection-changed",
- GTK_RUN_LAST,
- GTK_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ESummaryShownClass, selection_changed),
- gtk_marshal_NONE__POINTER,
- GTK_TYPE_NONE, 1,
- GTK_TYPE_POINTER);
-}
-
-static gboolean
-is_location_in_shown (ESummaryShown *shown,
- const char *location)
-{
- GSList *p;
-
- for (p = shown->priv->shown->contents; p; p = p->next) {
- ESummaryShownModelEntry *entry = p->data;
- if (entry->location == NULL) {
- continue;
- }
-
- if (strcmp (entry->location, location) == 0) {
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-struct _CountData {
- ESummaryShown *shown;
- GList *selected_list;
- int count;
-};
-
-static void
-real_selected_count (ETreePath path,
- gpointer data)
-{
- ESummaryShownModelEntry *entry;
- struct _CountData *cd = data;
-
- entry = g_hash_table_lookup (cd->shown->all_model, path);
- g_return_if_fail (entry != NULL);
-
- cd->selected_list = g_list_prepend (cd->selected_list, path);
- if (entry->showable == FALSE) {
- return;
- }
-
- if (is_location_in_shown (cd->shown, entry->location)) {
- return;
- }
-
- cd->count++;
-}
-
-static void
-all_selection_changed (ETree *et,
- ESummaryShown *shown)
-{
- ESelectionModel *esm;
- int count;
-
- esm = e_tree_get_selection_model (et);
-
- count = e_selection_model_selected_count (esm);
- if (count == 0) {
- gtk_widget_set_sensitive (shown->priv->add, FALSE);
-
- gtk_signal_emit (GTK_OBJECT (shown), shown_signals[SELECTION_CHANGED], 0, NULL);
- } else {
- struct _CountData *cd;
-
- cd = g_new (struct _CountData, 1);
- cd->shown = shown;
- cd->selected_list = NULL;
- cd->count = 0;
-
- e_tree_selection_model_foreach (E_TREE_SELECTION_MODEL (esm),
- real_selected_count, cd);
- if (cd->count != 0) {
- gtk_widget_set_sensitive (shown->priv->add, TRUE);
- } else {
- gtk_widget_set_sensitive (shown->priv->add, FALSE);
- }
-
- gtk_signal_emit (GTK_OBJECT (shown), shown_signals[SELECTION_CHANGED], cd->selected_list);
-
- g_list_free (cd->selected_list);
- g_free (cd);
- }
-}
-
-static void
-shown_selection_changed (ETree *et,
- ESummaryShown *shown)
-{
- ESelectionModel *esm;
- int count;
-
- esm = e_tree_get_selection_model (et);
-
- count = e_selection_model_selected_count (esm);
- if (count == 0) {
- gtk_widget_set_sensitive (shown->priv->remove, FALSE);
- } else {
- gtk_widget_set_sensitive (shown->priv->remove, TRUE);
- }
-}
-
-static void
-maybe_move_to_shown (ETreePath path,
- gpointer closure)
-{
- gpointer *pair = closure;
- ESummaryShown *shown = pair[0];
- GList **list = pair[1];
- ESummaryShownModelEntry *entry, *new_entry;
-
- entry = g_hash_table_lookup (shown->all_model, path);
- g_return_if_fail (entry != NULL);
-
- /* Check is the entry can be shown */
- if (entry->showable == FALSE) {
- return;
- }
-
- /* check if the entry is already in the shown list */
- if (is_location_in_shown (shown, entry->location) == TRUE) {
- return;
- }
-
- new_entry = g_new (ESummaryShownModelEntry, 1);
- new_entry->name = g_strdup (entry->name);
- new_entry->location = g_strdup (entry->location);
- new_entry->showable = entry->showable;
- new_entry->ref_count = 0;
-
- *list = g_list_prepend (*list, new_entry);
-}
-
-static void
-add_clicked (GtkWidget *button,
- ESummaryShown *shown)
-{
- ESelectionModel *esm;
- ETree *et;
- gpointer pair[2];
- GList *list = NULL;
- GList *iterator;
-
- et = e_tree_scrolled_get_tree (E_TREE_SCROLLED (shown->priv->all->etable));
- esm = e_tree_get_selection_model (et);
-
- pair[0] = shown;
- pair[1] = &list;
- e_tree_selection_model_foreach (E_TREE_SELECTION_MODEL (esm),
- maybe_move_to_shown, pair);
-
- for (iterator = list; iterator; iterator = iterator->next) {
- ESummaryShownModelEntry *new_entry = iterator->data;
- e_summary_shown_add_node (shown, FALSE, new_entry, NULL, FALSE, NULL);
- }
-
- g_list_free (list);
- gtk_signal_emit (GTK_OBJECT (shown), shown_signals[ITEM_CHANGED]);
-
- gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE);
-}
-
-static void
-remove_from_shown (ETreePath path,
- gpointer closure)
-{
- gpointer *pair = closure;
- ESummaryShown *shown = pair[0];
- GList **list = pair[1];
- ESummaryShownModelEntry *entry;
-
- entry = g_hash_table_lookup (shown->shown_model, path);
- g_return_if_fail (entry != NULL);
-
- *list = g_list_prepend (*list, entry);
-}
-
-static void
-remove_clicked (GtkWidget *button,
- ESummaryShown *shown)
-{
- ESelectionModel *esm;
- ETree *et;
- gpointer pair[2];
- GList *list = NULL;
- GList *iterator;
-
- et = e_tree_scrolled_get_tree (E_TREE_SCROLLED (shown->priv->shown->etable));
- esm = e_tree_get_selection_model (et);
-
- pair[0] = shown;
- pair[1] = &list;
- e_tree_selection_model_foreach (E_TREE_SELECTION_MODEL (esm),
- remove_from_shown, pair);
-
- list = g_list_reverse (list);
-
- for (iterator = list; iterator; iterator = iterator->next) {
- ESummaryShownModelEntry *entry = iterator->data;
- e_summary_shown_remove_node (shown, FALSE, entry);
- }
- g_list_free (list);
-
- gtk_signal_emit (GTK_OBJECT (shown), shown_signals[ITEM_CHANGED]);
-
- gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE);
-}
-
-static TableData *
-make_table (GHashTable *data_model,
- const char *title,
- GtkSignalFunc callback,
- gpointer closure)
-{
- TableData *td;
- ETreeMemory *etmm;
- ETree *tree;
- char *real_spec;
-
- td = g_new (TableData, 1);
- td->etm = e_tree_memory_callbacks_new (icon_at,
- column_count,
-
- NULL,
- NULL,
-
- NULL,
- NULL,
-
- value_at,
- NULL,
- is_editable,
-
- duplicate_value,
- free_value,
- initialise_value,
- value_is_empty,
- value_to_string,
-
- data_model);
- etmm = E_TREE_MEMORY (td->etm);
- e_tree_memory_set_expanded_default (etmm, FALSE);
-
- td->root = e_tree_memory_node_insert (etmm, NULL, 0, NULL);
-
- real_spec = g_strdup_printf (SPEC, title);
- td->etable = e_tree_scrolled_new (td->etm, NULL, real_spec, NULL);
- g_free (real_spec);
-
- tree = e_tree_scrolled_get_tree (E_TREE_SCROLLED (td->etable));
- e_tree_root_node_set_visible (tree, FALSE);
- g_signal_connect (tree, "selection-change", callback, closure);
-
- td->contents = NULL;
- return td;
-}
-
-static void
-e_summary_shown_init (ESummaryShown *shown)
-{
- ESummaryShownPrivate *priv;
- GtkWidget *vbox;
- GtkWidget *align;
-
- gtk_box_set_spacing (GTK_BOX (shown), 3);
-
- shown->shown_model = g_hash_table_new (NULL, NULL);
- shown->all_model = g_hash_table_new (NULL, NULL);
-
- priv = g_new (ESummaryShownPrivate, 1);
- shown->priv = priv;
-
- priv->all = make_table (shown->all_model, _("All"), G_CALLBACK (all_selection_changed), shown);
-
- gtk_box_pack_start (GTK_BOX (shown), priv->all->etable, TRUE, TRUE, 2);
- gtk_widget_show (priv->all->etable);
-
- vbox = gtk_vbox_new (TRUE, 9);
- align = gtk_alignment_new (.5, .5, .5, 0.0);
- gtk_container_add (GTK_CONTAINER (align), vbox);
-
- gtk_box_pack_start (GTK_BOX (shown), align, FALSE, FALSE, 3);
-
- /* Fixme: nice GFX version */
- priv->add = gtk_button_new_from_stock (GTK_STOCK_ADD);
- gtk_widget_set_sensitive (priv->add, FALSE);
- gtk_box_pack_start (GTK_BOX (vbox), priv->add, TRUE, FALSE, 0);
- g_signal_connect (priv->add, "clicked", G_CALLBACK (add_clicked), shown);
-
- /* Fixme: Ditto */
- priv->remove = gtk_button_new_from_stock (GTK_STOCK_REMOVE);
- gtk_widget_set_sensitive (priv->remove, FALSE);
- gtk_box_pack_start (GTK_BOX (vbox), priv->remove, TRUE, FALSE, 0);
- g_signal_connect (priv->remove, "clicked", G_CALLBACK (remove_clicked), shown);
-
- gtk_widget_show_all (align);
-
- priv->shown = make_table (shown->shown_model, _("Shown"), G_CALLBACK (shown_selection_changed), shown);
-
- gtk_box_pack_start (GTK_BOX (shown), priv->shown->etable, TRUE, TRUE, 2);
- gtk_widget_show (priv->shown->etable);
-}
-
-E_MAKE_TYPE (e_summary_shown, "ESummaryShown", ESummaryShown,
- e_summary_shown_class_init, e_summary_shown_init, PARENT_TYPE);
-
-GtkWidget *
-e_summary_shown_new (void)
-{
- ESummaryShown *shown;
-
- shown = gtk_type_new (e_summary_shown_get_type ());
- return GTK_WIDGET (shown);
-}
-
-ETreePath
-e_summary_shown_add_node (ESummaryShown *shown,
- gboolean all,
- ESummaryShownModelEntry *entry,
- ETreePath parent,
- gboolean expanded,
- gpointer data)
-{
- TableData *td;
- ETreePath path;
- ETreeMemory *etmm;
- ETree *tree;
- GHashTable *model;
-
- g_return_val_if_fail (IS_E_SUMMARY_SHOWN (shown), NULL);
-
- if (all == TRUE) {
- td = shown->priv->all;
- model = shown->all_model;
- } else {
- td = shown->priv->shown;
- model = shown->shown_model;
- }
-
- if (parent == NULL) {
- parent = td->root;
- }
-
- etmm = E_TREE_MEMORY (td->etm);
- path = e_tree_memory_node_insert (etmm, parent, -1, data);
-
- tree = e_tree_scrolled_get_tree (E_TREE_SCROLLED (td->etable));
- if (e_tree_model_get_expanded_default (E_TREE_MODEL(etmm)) != expanded)
- e_tree_node_set_expanded (tree, path, expanded);
-
- entry->path = path;
-
- g_hash_table_insert (model, path, entry);
-
- if (all == FALSE) {
- /* Add the location to the list */
- td->contents = g_slist_prepend (td->contents, entry);
- }
-
- return path;
-}
-
-void
-e_summary_shown_remove_node (ESummaryShown *shown,
- gboolean all,
- ESummaryShownModelEntry *entry)
-{
- TableData *td;
- GHashTable *model;
- ETreeMemory *etmm;
-
- g_return_if_fail (IS_E_SUMMARY_SHOWN (shown));
-
- if (all == TRUE) {
- td = shown->priv->all;
- model = shown->all_model;
- } else {
- td = shown->priv->shown;
- model = shown->shown_model;
- }
-
- etmm = E_TREE_MEMORY (td->etm);
- e_tree_memory_node_remove (etmm, entry->path);
-
- g_hash_table_remove (model, entry->path);
-
- if (all == FALSE) {
- td->contents = g_slist_remove (td->contents, entry);
- }
-
-}
-
-void
-e_summary_shown_freeze (ESummaryShown *shown)
-{
- g_return_if_fail (IS_E_SUMMARY_SHOWN (shown));
-
- e_tree_memory_freeze (E_TREE_MEMORY (shown->priv->all->etm));
- e_tree_memory_freeze (E_TREE_MEMORY (shown->priv->shown->etm));
-}
-
-void
-e_summary_shown_thaw (ESummaryShown *shown)
-{
- g_return_if_fail (IS_E_SUMMARY_SHOWN (shown));
-
- e_tree_memory_thaw (E_TREE_MEMORY (shown->priv->all->etm));
- e_tree_memory_thaw (E_TREE_MEMORY (shown->priv->shown->etm));
-}
-
-static void
-make_list (ETreePath path,
- gpointer data)
-{
- GList **list = data;
-
- *list = g_list_prepend (*list, path);
-}
-
-GList *
-e_summary_shown_get_selection (ESummaryShown *shown,
- gboolean all)
-{
- ETree *et;
- ESelectionModel *esm;
- GList *list = NULL;
-
- if (all) {
- et = e_tree_scrolled_get_tree (E_TREE_SCROLLED (shown->priv->all->etable));
- } else {
- et = e_tree_scrolled_get_tree (E_TREE_SCROLLED (shown->priv->shown->etable));
- }
-
- esm = e_tree_get_selection_model (et);
-
- e_tree_selection_model_foreach (E_TREE_SELECTION_MODEL (esm),
- make_list, &list);
-
- return list;
-}
diff --git a/my-evolution/e-summary-shown.h b/my-evolution/e-summary-shown.h
deleted file mode 100644
index 4f6ffd4459..0000000000
--- a/my-evolution/e-summary-shown.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright 2002 Ximain, Inc. (www.ximian.com)
- *
- * 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 Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifndef __E_SUMMARY_SHOWN_H__
-#define __E_SUMMARY_SHOWN_H__
-
-#include <gtk/gtkhbox.h>
-#include <glib.h>
-#include <gal/e-table/e-tree-memory.h>
-
-#define E_SUMMARY_SHOWN_TYPE (e_summary_shown_get_type ())
-#define E_SUMMARY_SHOWN(obj) (GTK_CHECK_CAST ((obj), E_SUMMARY_SHOWN_TYPE, ESummaryShown))
-#define E_SUMMARY_SHOWN_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_SUMMARY_SHOWN_TYPE, ESummaryShownClass))
-#define IS_E_SUMMARY_SHOWN(obj) (GTK_CHECK_TYPE ((obj), E_SUMMARY_SHOWN_TYPE))
-#define IS_E_SUMMARY_SHOWN_CLASS(klass) (GTK_CHECK_TYPE ((klass), E_SUMMARY_SHOWN_TYPE))
-
-typedef struct _ESummaryShownPrivate ESummaryShownPrivate;
-typedef struct _ESummaryShownClass ESummaryShownClass;
-typedef struct _ESummaryShown ESummaryShown;
-
-typedef struct _ESummaryShownModelEntry {
- ETreePath path;
- char *name;
- char *location;
-
- gboolean showable;
- int ref_count;
-
- gpointer data;
-} ESummaryShownModelEntry;
-
-struct _ESummaryShown {
- GtkHBox parent;
-
- GHashTable *all_model;
- GHashTable *shown_model;
- ESummaryShownPrivate *priv;
-};
-
-struct _ESummaryShownClass {
- GtkHBoxClass parent_class;
-
- void (* item_changed) (ESummaryShown *shown);
- void (* selection_changed) (ESummaryShown *shown,
- GList *rows);
-};
-
-GtkType e_summary_shown_get_type (void);
-GtkWidget *e_summary_shown_new (void);
-ETreePath e_summary_shown_add_node (ESummaryShown *shown,
- gboolean all,
- ESummaryShownModelEntry *entry,
- ETreePath parent,
- gboolean expanded,
- gpointer data);
-void e_summary_shown_remove_node (ESummaryShown *shown,
- gboolean all,
- ESummaryShownModelEntry *entry);
-void e_summary_shown_freeze (ESummaryShown *shown);
-void e_summary_shown_thaw (ESummaryShown *shown);
-GList *e_summary_shown_get_selection (ESummaryShown *shown,
- gboolean all);
-
-#endif
diff --git a/my-evolution/e-summary-table.c b/my-evolution/e-summary-table.c
deleted file mode 100644
index 4439ec9684..0000000000
--- a/my-evolution/e-summary-table.c
+++ /dev/null
@@ -1,440 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright 2002 Ximain, Inc. (www.ximian.com)
- *
- * 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 Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-
-#include <gtk/gtkvbox.h>
-#include <gtk/gtkenums.h>
-#include <gtk/gtksignal.h>
-
-#include <gal/util/e-util.h>
-#include <gal/widgets/e-gui-utils.h>
-
-#include <gal/e-table/e-table-header.h>
-#include <gal/e-table/e-table-header-item.h>
-#include <gal/e-table/e-table-item.h>
-#include <gal/e-table/e-cell-text.h>
-#include <gal/e-table/e-cell-tree.h>
-#include <gal/e-table/e-cell-checkbox.h>
-#include <gal/e-table/e-table.h>
-#include <gal/e-table/e-tree-scrolled.h>
-#include <gal/e-table/e-tree-memory.h>
-#include <gal/e-table/e-tree-memory-callbacks.h>
-#include <gal/e-table/e-tree-table-adapter.h>
-
-#include <libgnome/gnome-i18n.h>
-
-#include "e-summary-table.h"
-#include "e-cell-tri.h"
-
-#define COLS 2
-
-#if 0 /* For translators */
-char *headers[COLS] = {
- N_("Shown"),
- N_("Name")
-};
-#endif
-
-#define SPEC "<ETableSpecification cursor-mode=\"line\" draw-focus=\"true\" no-headers=\"true\"> \
-<ETableColumn model_col=\"0\" _title=\"Shown\" minimum_width=\"20\" resizable=\"false\" cell=\"tricell\" compare=\"integer\"/> \
-<ETableColumn model_col=\"1\" _title=\"Name\" resizable=\"true\" minimum-width=\"32\" cell=\"render-name\" compare=\"string\"/> \
-<ETableState> \
-<column source=\"0\"/> \
-<column source=\"1\"/> \
-<grouping></grouping> \
-</ETableState> \
-</ETableSpecification>"
-
-#define PARENT_TYPE (gtk_vbox_get_type ())
-
-static GtkObjectClass *e_summary_table_parent_class;
-
-struct _ESummaryTablePrivate {
- GtkWidget *etable;
- ETableExtras *extras;
- ETreeTableAdapter *adapter;
- ETreeModel *etm;
-
- ETreePath root_node;
-};
-
-enum {
- ITEM_CHANGED,
- LAST_SIGNAL
-};
-static guint32 table_signals[LAST_SIGNAL] = { 0 };
-
-/* ETree callbacks */
-static GdkPixbuf *
-icon_at (ETreeModel *etm,
- ETreePath path,
- void *model_data)
-{
- /* No icon, since the cell tree renderer takes care of +/- */
- return NULL;
-}
-
-static int
-column_count (ETreeModel *etm,
- void *data)
-{
- return COLS;
-}
-
-static void *
-duplicate_value (ETreeModel *etm,
- int col,
- const void *value,
- void *data)
-{
- switch (col) {
- case 0:
- return (void *) value;
-
- case 1:
- return g_strdup (value);
-
- default:
- g_assert_not_reached ();
- }
-
- return NULL;
-}
-
-static void
-free_value (ETreeModel *etm,
- int col,
- void *value,
- void *data)
-{
- if (col == 1) {
- g_free (value);
- }
-}
-
-static void *
-initialise_value (ETreeModel *etm,
- int col,
- void *data)
-{
- switch (col) {
- case 0:
- return GINT_TO_POINTER (1);
-
- case 1:
- return g_strdup ("2");
-
- default:
- g_assert_not_reached ();
-
- }
-
- return NULL;
-}
-
-static gboolean
-value_is_empty (ETreeModel *etm,
- int col,
- const void *value,
- void *data)
-{
- if (col == 1) {
- return !(value && *(char *)value);
- }
-
- return FALSE;
-}
-
-static char *
-value_to_string (ETreeModel *etm,
- int col,
- const void *value,
- void *data)
-{
- switch (col) {
- case 0:
- return g_strdup_printf ("%d", GPOINTER_TO_INT (value));
-
- case 1:
- return g_strdup (value);
-
- default:
- g_assert_not_reached ();
- }
-
- return NULL;
-}
-
-static void *
-value_at (ETreeModel *etm,
- ETreePath path,
- int col,
- void *model_data)
-{
- GHashTable *table;
- ESummaryTable *est = E_SUMMARY_TABLE (model_data);
- ESummaryTableModelEntry *entry;
-
- table = est->model;
- if (e_tree_model_node_is_root (etm, path)) {
- if (col == 1) {
- return "<Root>";
- } else {
- return GINT_TO_POINTER (0);
- }
- } else {
- entry = g_hash_table_lookup (table, path);
- g_return_val_if_fail (entry != NULL, NULL);
-
- if (col == 1) {
- return entry->name;
-
- } else {
- if (entry->editable == TRUE) {
- return GINT_TO_POINTER (entry->shown ? 2 : 1);
- } else {
- return GINT_TO_POINTER (0);
- }
- }
- }
-}
-
-static void
-set_value_at (ETreeModel *etm,
- ETreePath path,
- int col,
- const void *val,
- void *model_data)
-{
- GHashTable *table;
- ESummaryTable *est = E_SUMMARY_TABLE (model_data);
- ESummaryTableModelEntry *entry;
-
- if (e_tree_model_node_is_root (etm, path)) {
- return;
- }
-
- if (col != 0) {
- return;
- }
-
- table = est->model;
- entry = g_hash_table_lookup (table, path);
- g_return_if_fail (entry != NULL);
-
- if (entry->editable == TRUE) {
- entry->shown = GPOINTER_TO_INT (val) == 1 ? FALSE : TRUE;
- g_signal_emit (est, table_signals[ITEM_CHANGED], 0, path);
- }
-}
-
-static gboolean
-is_editable (ETreeModel *etm,
- ETreePath path,
- int col,
- void *model_data)
-{
- GHashTable *table;
- ESummaryTable *est = (ESummaryTable *) model_data;
- ESummaryTableModelEntry *entry;
-
- if (e_tree_model_node_is_root (etm, path)) {
- return FALSE;
- }
-
- if (col == 1) {
- return FALSE;
- }
-
- table = est->model;
- entry = g_hash_table_lookup (table, path);
- g_return_val_if_fail (entry != NULL, FALSE);
-
- return entry->editable;
-}
-
-/* GtkObject callbacks */
-
-static void
-free_model_entry (gpointer key,
- gpointer value,
- gpointer user_data)
-{
- ESummaryTableModelEntry *entry;
-
- entry = value;
- g_free (entry->location);
- g_free (entry->name);
- g_free (entry);
-}
-
-static void
-destroy (GtkObject *object)
-{
- ESummaryTable *est;
- ESummaryTablePrivate *priv;
-
- est = E_SUMMARY_TABLE (object);
- priv = est->priv;
-
- if (priv == NULL) {
- return;
- }
-
- /* What do I need to free? */
- g_hash_table_foreach (est->model, free_model_entry, NULL);
- g_hash_table_destroy (est->model);
- est->model = NULL;
-
- g_free (priv);
- est->priv = NULL;
-
- e_summary_table_parent_class->destroy (object);
-}
-
-static void
-e_summary_table_class_init (GtkObjectClass *object_class)
-{
- object_class->destroy = destroy;
-
- e_summary_table_parent_class = gtk_type_class (PARENT_TYPE);
-
- table_signals[ITEM_CHANGED] = gtk_signal_new ("item-changed",
- GTK_RUN_LAST,
- GTK_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ESummaryTableClass, item_changed),
- gtk_marshal_NONE__POINTER,
- GTK_TYPE_NONE, 1,
- GTK_TYPE_POINTER);
-}
-
-static void
-e_summary_table_init (ESummaryTable *est)
-{
- ESummaryTablePrivate *priv;
- ETreeMemory *etmm;
- ECell *cell;
- ETree *tree;
-
- priv = g_new (ESummaryTablePrivate, 1);
- est->priv = priv;
-
- priv->etm = e_tree_memory_callbacks_new (icon_at,
- column_count,
-
- NULL,
- NULL,
-
- NULL,
- NULL,
-
- value_at,
- set_value_at,
- is_editable,
-
- duplicate_value,
- free_value,
- initialise_value,
- value_is_empty,
- value_to_string,
- est);
- g_object_ref (priv->etm);
- gtk_object_sink (GTK_OBJECT (priv->etm));
-
- etmm = E_TREE_MEMORY (priv->etm);
- e_tree_memory_set_expanded_default (etmm, TRUE);
-
- priv->root_node = e_tree_memory_node_insert (etmm, NULL, 0, est);
-
- cell = e_cell_text_new (NULL, GTK_JUSTIFY_LEFT);
- priv->extras = e_table_extras_new ();
- e_table_extras_add_cell (priv->extras, "render-name", e_cell_tree_new (NULL, NULL, FALSE, cell));
- e_table_extras_add_cell (priv->extras, "tricell", e_cell_tri_new ());
-
- priv->etable = e_tree_scrolled_new (priv->etm, priv->extras, SPEC, NULL);
- if (priv->etable == NULL) {
- g_warning ("Could not create ETable for ESummaryTable");
- return;
- }
-
- tree = e_tree_scrolled_get_tree (E_TREE_SCROLLED (priv->etable));
- e_tree_root_node_set_visible (tree, FALSE);
-
- gtk_box_pack_start (GTK_BOX (est), GTK_WIDGET (priv->etable),
- TRUE, TRUE, 0);
- gtk_widget_show (GTK_WIDGET (priv->etable));
-}
-
-E_MAKE_TYPE (e_summary_table, "ESummaryTable", ESummaryTable,
- e_summary_table_class_init, e_summary_table_init, PARENT_TYPE);
-
-GtkWidget *
-e_summary_table_new (GHashTable *model)
-{
- ESummaryTable *table;
-
- table = gtk_type_new (e_summary_table_get_type ());
- table->model = model;
-
- return GTK_WIDGET (table);
-}
-
-ETreePath
-e_summary_table_add_node (ESummaryTable *table,
- ETreePath path,
- int position,
- gpointer node_data)
-{
- ETreeMemory *etmm;
- ETreePath p;
-
- g_return_val_if_fail (IS_E_SUMMARY_TABLE (table), NULL);
-
- if (path == NULL) {
- path = table->priv->root_node;
- }
-
- etmm = E_TREE_MEMORY (table->priv->etm);
- e_tree_memory_freeze (etmm);
- p = e_tree_memory_node_insert (etmm, path, position, node_data);
- e_tree_memory_thaw (etmm);
-
- return p;
-}
-
-guint
-e_summary_table_get_num_children (ESummaryTable *table,
- ETreePath path)
-{
- if (path == NULL) {
- return e_tree_model_node_get_children (table->priv->etm,
- table->priv->root_node, NULL);
- } else {
- return e_tree_model_node_get_children (table->priv->etm, path, NULL);
- }
-}
diff --git a/my-evolution/e-summary-table.h b/my-evolution/e-summary-table.h
deleted file mode 100644
index 859f8f7ec9..0000000000
--- a/my-evolution/e-summary-table.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Iain Holmes <iain@ximian.com>
- *
- * Copyright 2002 Ximain, Inc. (www.ximian.com)
- *
- * 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 Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifndef __E_SUMMARY_TABLE_H__
-#define __E_SUMMARY_TABLE_H__
-
-#include <gtk/gtkvbox.h>
-#include <glib.h>
-#include <gal/e-table/e-tree-memory.h>
-
-#define E_SUMMARY_TABLE_TYPE (e_summary_table_get_type ())
-#define E_SUMMARY_TABLE(obj) (GTK_CHECK_CAST ((obj), E_SUMMARY_TABLE_TYPE, ESummaryTable))
-#define E_SUMMARY_TABLE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_SUMMARY_TABLE_TYPE, ESummaryTableClass))
-#define IS_E_SUMMARY_TABLE(obj) (GTK_CHECK_TYPE ((obj), E_SUMMARY_TABLE_TYPE))
-#define IS_E_SUMMARY_TABLE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_SUMMARY_TABLE_TYPE))
-
-typedef struct _ESummaryTablePrivate ESummaryTablePrivate;
-typedef struct _ESummaryTableClass ESummaryTableClass;
-typedef struct _ESummaryTable ESummaryTable;
-
-typedef struct _ESummaryTableModelEntry {
- ETreePath path;
-
- char *location;
-
- gboolean editable;
- gboolean removable;
-
- gboolean shown;
- char *name;
-} ESummaryTableModelEntry;
-
-struct _ESummaryTable {
- GtkVBox parent;
-
- GHashTable *model;
- ESummaryTablePrivate *priv;
-};
-
-struct _ESummaryTableClass {
- GtkVBoxClass parent_class;
-
- void (* item_changed) (ESummaryTable *table,
- ETreePath path);
-};
-
-GtkType e_summary_table_get_type (void);
-GtkWidget *e_summary_table_new (GHashTable *model);
-ETreePath e_summary_table_add_node (ESummaryTable *est,
- ETreePath path,
- int position,
- gpointer node_data);
-guint e_summary_table_get_num_children (ESummaryTable *est,
- ETreePath path);
-#endif
diff --git a/my-evolution/e-summary-tasks.c b/my-evolution/e-summary-tasks.c
deleted file mode 100644
index e7c4ee6b07..0000000000
--- a/my-evolution/e-summary-tasks.c
+++ /dev/null
@@ -1,618 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-tasks.c
- *
- * Copyright (C) 2001 Ximian, Inc.
- * Copyright (C) 2002 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gnome.h>
-#include <gal/widgets/e-unicode.h>
-
-#include "e-summary-tasks.h"
-#include "e-summary.h"
-
-#include <cal-client/cal-client.h>
-#include <cal-util/timeutil.h>
-
-#include <bonobo/bonobo-event-source.h>
-#include <bonobo/bonobo-exception.h>
-#include <bonobo/bonobo-listener.h>
-#include <bonobo/bonobo-moniker-util.h>
-#include <bonobo/bonobo-object.h>
-
-#include <gconf/gconf-client.h>
-
-
-#define MAX_RELOAD_TRIES 10
-
-struct _ESummaryTasks {
- CalClient *client;
-
- char *html;
- char *due_today_colour;
- char *overdue_colour;
-
- char *default_uri;
-
- GConfClient *gconf_client;
- int gconf_value_changed_handler_id;
-
- int cal_open_reload_timeout_id;
- int reload_count;
-};
-
-const char *
-e_summary_tasks_get_html (ESummary *summary)
-{
- if (summary == NULL) {
- return NULL;
- }
-
- if (summary->tasks == NULL) {
- return NULL;
- }
-
- return summary->tasks->html;
-}
-
-/* list_sort_merge, and list_sort are copied from GNOME-VFS.
- Author: Sven Oliver <sven.over@ob.kamp.net>
- Modified by Ettore Perazzoli <ettore@comm2000.it> to let the compare
- functions get an additional gpointer parameter.
-
- Included here as using gnome-vfs for 1 20 line function
- seems a bit of overkill.
-*/
-
-typedef gint (* CalSummaryListCompareFunc) (gconstpointer a,
- gconstpointer b,
- gpointer data);
-static GList *
-cal_list_sort_merge (GList *l1,
- GList *l2,
- CalSummaryListCompareFunc compare_func,
- gpointer data)
-{
- GList list, *l, *lprev;
-
- l = &list;
- lprev = NULL;
-
- while (l1 && l2) {
- if (compare_func (l1->data, l2->data, data) < 0) {
- l->next = l1;
- l = l->next;
- l->prev = lprev;
- lprev = l;
- l1 = l1->next;
- } else {
- l->next = l2;
- l = l->next;
- l->prev = lprev;
- lprev = l;
- l2 = l2->next;
- }
- }
-
- l->next = l1 ? l1 : l2;
- l->next->prev = l;
-
- return list.next;
-}
-
-static GList *
-cal_list_sort (GList *list,
- CalSummaryListCompareFunc compare_func,
- gpointer data)
-{
- GList *l1, *l2;
-
- if (!list)
- return NULL;
- if (!list->next)
- return list;
-
- l1 = list;
- l2 = list->next;
-
- while ((l2 = l2->next) != NULL) {
- if ((l2 = l2->next) == NULL)
- break;
- l1 = l1->next;
- }
-
- l2 = l1->next;
- l1->next = NULL;
-
- return cal_list_sort_merge (cal_list_sort (list, compare_func, data),
- cal_list_sort (l2, compare_func, data),
- compare_func, data);
-}
-
-static int
-sort_uids (gconstpointer a,
- gconstpointer b,
- gpointer user_data)
-{
- icalcomponent *icalcomp_a, *icalcomp_b;
- CalComponent *comp_a, *comp_b;
- CalClient *client = user_data;
- CalClientGetStatus status;
- /* let undefined priorities be lowest ones */
- int lowest = 10, rv;
- int *pri_a, *pri_b;
-
- /* a after b then return > 0 */
-
- status = cal_client_get_object (client, a, &icalcomp_a);
- if (status != CAL_CLIENT_GET_SUCCESS)
- return -1;
-
- status = cal_client_get_object (client, b, &icalcomp_b);
- if (status != CAL_CLIENT_GET_SUCCESS)
- return 1;
-
- comp_a = cal_component_new ();
- cal_component_set_icalcomponent (comp_a, icalcomp_a);
- comp_b = cal_component_new ();
- cal_component_set_icalcomponent (comp_b, icalcomp_b);
-
- cal_component_get_priority (comp_a, &pri_a);
- cal_component_get_priority (comp_b, &pri_b);
-
- if (pri_a == NULL)
- pri_a = &lowest;
- if (pri_b == NULL)
- pri_b = &lowest;
-
- if (*pri_a == 0) {
- *pri_a = lowest;
- }
-
- if (*pri_b == 0) {
- *pri_b = lowest;
- }
-
- rv = *pri_a - *pri_b;
-
- if (pri_a != &lowest)
- cal_component_free_priority (pri_a);
- if (pri_b != &lowest)
- cal_component_free_priority (pri_b);
-
- g_object_unref (comp_a);
- g_object_unref (comp_b);
-
- return rv;
-}
-
-static GList *
-get_todays_uids (ESummary *summary,
- CalClient *client,
- GList *uids)
-{
- GList *today = NULL, *p;
- time_t todays_end, todays_start, t;
-
- t = time (NULL);
- todays_start = time_day_begin_with_zone (t, summary->tz);
- todays_end = time_day_end_with_zone (t, summary->tz);
-
- for (p = uids; p; p = p->next) {
- char *uid;
- icalcomponent *icalcomp;
- CalComponent *comp;
- CalClientGetStatus status;
- CalComponentDateTime due;
- icaltimezone *zone;
- time_t endt;
-
- uid = p->data;
- status = cal_client_get_object (client, uid, &icalcomp);
- if (status != CAL_CLIENT_GET_SUCCESS) {
- continue;
- }
-
- comp = cal_component_new ();
- cal_component_set_icalcomponent (comp, icalcomp);
-
- cal_component_get_due (comp, &due);
-
- cal_client_get_timezone (client, due.tzid, &zone);
- if (due.value != 0) {
- icaltimezone_convert_time (due.value, zone, summary->tz);
- endt = icaltime_as_timet (*due.value);
-
- if (endt <= todays_end) {
- today = g_list_append (today, g_strdup (uid));
- }
- }
-
- cal_component_free_datetime (&due);
- g_object_unref (comp);
- }
-
- if (today == NULL) {
- return NULL;
- }
-
- today = cal_list_sort (today, sort_uids, client);
- return today;
-}
-
-static const char *
-get_task_colour (ESummary *summary,
- CalClient *client,
- const char *uid)
-{
- icalcomponent *icalcomp;
- CalComponent *comp;
- CalClientGetStatus status;
- CalComponentDateTime due;
- icaltimezone *zone;
- char *ret;
- time_t end_t, t, todays_start, todays_end;
-
- t = time (NULL);
- todays_start = time_day_begin_with_zone (t, summary->tz);
- todays_end = time_day_end_with_zone (t, summary->tz);
-
- status = cal_client_get_object (client, uid, &icalcomp);
- if (status != CAL_CLIENT_GET_SUCCESS) {
- return "black";
- }
-
- comp = cal_component_new ();
- cal_component_set_icalcomponent (comp, icalcomp);
-
- cal_component_get_due (comp, &due);
-
- cal_client_get_timezone (client, due.tzid, &zone);
- if (due.value != 0) {
- icaltimezone_convert_time (due.value, zone, summary->tz);
- end_t = icaltime_as_timet (*due.value);
-
- if (end_t >= todays_start && end_t <= todays_end) {
- ret = summary->tasks->due_today_colour;
- } else if (end_t < t) {
- ret = summary->tasks->overdue_colour;
- } else {
- ret = "black";
- }
- } else {
- ret = "black";
- }
-
- cal_component_free_datetime (&due);
- g_object_unref (comp);
-
- return (const char *)ret;
-}
-
-static gboolean
-generate_html (gpointer data)
-{
- ESummary *summary = data;
- ESummaryTasks *tasks = summary->tasks;
- GList *uids, *l;
- GString *string;
- char *tmp;
- time_t t;
-
- if (cal_client_get_load_state (tasks->client) != CAL_CLIENT_LOAD_LOADED)
- return FALSE;
-
- /* Set the default timezone on the server. */
- if (summary->tz) {
- cal_client_set_default_timezone (tasks->client,
- summary->tz);
- }
-
- t = time (NULL);
-
- uids = cal_client_get_uids (tasks->client, CALOBJ_TYPE_TODO);
- if (summary->preferences->show_tasks == E_SUMMARY_CALENDAR_TODAYS_TASKS && uids != NULL) {
- GList *tmp;
-
- tmp = get_todays_uids (summary, tasks->client, uids);
- cal_obj_uid_list_free (uids);
-
- uids = tmp;
- }
-
- if (uids == NULL) {
- g_free (tasks->html);
- tasks->html = g_strconcat ("<dl><dt><img src=\"myevo-post-it.png\" align=\"middle\" "
- "alt=\"\" width=\"48\" height=\"48\"> "
- "<b><a href=\"", tasks->default_uri, "\">",
- _("Tasks"),
- "</a></b></dt><dd><b>", _("No tasks"), "</b></dd></dl>",
- NULL);
- return FALSE;
- } else {
- uids = cal_list_sort (uids, sort_uids, tasks->client);
- string = g_string_new (NULL);
- g_string_sprintf (string, "<dl><dt><img src=\"myevo-post-it.png\" align=\"middle\" "
- "alt=\"\" width=\"48\" height=\"48\"> <b><a href=\"%s\">", tasks->default_uri);
- g_string_append (string, _("Tasks"));
- g_string_append (string, "</a></b></dt><dd>");
-
- for (l = uids; l; l = l->next) {
- char *uid;
- icalcomponent *icalcomp;
- CalComponent *comp;
- CalComponentText text;
- CalClientGetStatus status;
- struct icaltimetype *completed;
- const char *colour;
-
- uid = l->data;
- status = cal_client_get_object (tasks->client, uid, &icalcomp);
- if (status != CAL_CLIENT_GET_SUCCESS) {
- continue;
- }
-
- comp = cal_component_new ();
- cal_component_set_icalcomponent (comp, icalcomp);
-
- cal_component_get_summary (comp, &text);
- cal_component_get_completed (comp, &completed);
-
- colour = get_task_colour (summary, tasks->client, uid);
-
- if (completed == NULL) {
- tmp = g_strdup_printf ("<img align=\"middle\" src=\"task.png\" "
- "alt=\"\" width=\"16\" height=\"16\"> &#160; "
- "<a href=\"tasks:/%s\"><font size=\"-1\" color=\"%s\">%s</font></a><br>",
- uid, colour ? colour : _("blue"), text.value ? text.value : _("(No Description)"));
- } else {
-#if 0
- tmp = g_strdup_printf ("<img align=\"middle\" src=\"task.xpm\" "
- "alt=\"\" width=\"16\" height=\"16\"> &#160; "
- "<font size=\"-1\"><strike><a href=\"evolution:/local/Tasks\">%s</a></strike></font><br>",
- text.value);
-#endif
- cal_component_free_icaltimetype (completed);
- g_object_unref (comp);
- continue;
- }
-
- g_object_unref (comp);
- g_string_append (string, tmp);
- g_free (tmp);
- }
-
- cal_obj_uid_list_free (uids);
- g_string_append (string, "</dd></dl>");
- }
-
- if (tasks->html) {
- g_free (tasks->html);
- }
- tasks->html = string->str;
- g_string_free (string, FALSE);
-
- e_summary_draw (summary);
- return FALSE;
-}
-
-static gboolean
-cal_open_reload_timeout (void *data)
-{
- ESummary *summary = (ESummary *) data;
-
- summary->tasks->cal_open_reload_timeout_id = 0;
-
- if (++ summary->tasks->reload_count >= MAX_RELOAD_TRIES) {
- summary->tasks->reload_count = 0;
- return FALSE;
- }
-
- cal_client_open_default_tasks (summary->tasks->client, FALSE);
- return FALSE;
-}
-
-static void
-cal_opened_cb (CalClient *client,
- CalClientOpenStatus status,
- ESummary *summary)
-{
- if (status == CAL_CLIENT_OPEN_SUCCESS)
- g_idle_add (generate_html, summary);
- else
- summary->tasks->cal_open_reload_timeout_id = g_timeout_add (1000,
- cal_open_reload_timeout,
- summary);
-}
-
-static void
-obj_changed_cb (CalClient *client,
- const char *uid,
- gpointer data)
-{
- g_idle_add (generate_html, data);
-}
-
-static void
-e_summary_tasks_protocol (ESummary *summary,
- const char *uri,
- void *closure)
-{
- ESummaryTasks *tasks;
- CORBA_Environment ev;
- const char *comp_uri;
- GNOME_Evolution_Calendar_CompEditorFactory factory;
-
- tasks = (ESummaryTasks *) closure;
-
- comp_uri = cal_client_get_uri (tasks->client);
-
- /* Get the factory */
- CORBA_exception_init (&ev);
- factory = bonobo_activation_activate_from_id ("OAFIID:GNOME_Evolution_Calendar_CompEditorFactory", 0, NULL, &ev);
- if (BONOBO_EX (&ev)) {
- g_message ("%s: Could not activate the component editor factory (%s)",
- G_GNUC_FUNCTION, CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
- return;
- }
-
- GNOME_Evolution_Calendar_CompEditorFactory_editExisting (factory, comp_uri, (char *)uri + 7, &ev);
-
- if (BONOBO_EX (&ev)) {
- g_message ("%s: Execption while editing the component (%s)",
- G_GNUC_FUNCTION, CORBA_exception_id (&ev));
- }
-
- CORBA_exception_free (&ev);
- bonobo_object_release_unref (factory, NULL);
-}
-
-static void
-setup_task_folder (ESummary *summary)
-{
- ESummaryTasks *tasks;
-
- tasks = summary->tasks;
- g_assert (tasks != NULL);
- g_assert (tasks->gconf_client != NULL);
-
- if (tasks->cal_open_reload_timeout_id != 0) {
- g_source_remove (tasks->cal_open_reload_timeout_id);
- tasks->cal_open_reload_timeout_id = 0;
- tasks->reload_count = 0;
- }
-
- g_free (tasks->due_today_colour);
- g_free (tasks->overdue_colour);
- g_free (tasks->default_uri);
-
- tasks->due_today_colour = gconf_client_get_string (tasks->gconf_client,
- "/apps/evolution/calendar/tasks/colors/due_today", NULL);
- if (!tasks->due_today_colour)
- tasks->due_today_colour = g_strdup ("blue");
-
- tasks->overdue_colour = gconf_client_get_string (tasks->gconf_client,
- "/apps/evolution/calendar/tasks/colors/overdue", NULL);
- if (!tasks->overdue_colour)
- tasks->overdue_colour = g_strdup ("red");
-
- tasks->default_uri = gconf_client_get_string (tasks->gconf_client,
- "/apps/evolution/shell/default_folders/tasks_path", NULL);
-
- if (tasks->client != NULL)
- g_object_unref (tasks->client);
-
- tasks->client = cal_client_new ();
- if (tasks->client == NULL) {
- g_warning ("Error making the client");
- return;
- }
-
- g_signal_connect (tasks->client, "cal-opened", G_CALLBACK (cal_opened_cb), summary);
- g_signal_connect (tasks->client, "obj-updated", G_CALLBACK (obj_changed_cb), summary);
- g_signal_connect (tasks->client, "obj-removed", G_CALLBACK (obj_changed_cb), summary);
-
- if (! cal_client_open_default_tasks (tasks->client, FALSE))
- g_message ("Open tasks failed");
-}
-
-static void
-gconf_client_value_changed_cb (GConfClient *gconf_client,
- const char *key,
- GConfValue *value,
- void *user_data)
-{
- setup_task_folder (E_SUMMARY (user_data));
- generate_html (user_data);
-}
-
-static void
-setup_gconf_client (ESummary *summary)
-{
- ESummaryTasks *tasks;
-
- tasks = summary->tasks;
- g_assert (tasks != NULL);
-
- tasks->gconf_client = gconf_client_get_default ();
-
- gconf_client_add_dir (tasks->gconf_client, "/apps/evolution/calendar/tasks/colors", FALSE, NULL);
- gconf_client_add_dir (tasks->gconf_client, "/apps/evolution/shell/default_folders", FALSE, NULL);
-
- tasks->gconf_value_changed_handler_id
- = g_signal_connect (tasks->gconf_client, "value_changed",
- G_CALLBACK (gconf_client_value_changed_cb), summary);
-}
-
-void
-e_summary_tasks_init (ESummary *summary)
-{
- ESummaryTasks *tasks;
-
- g_return_if_fail (summary != NULL);
-
- tasks = g_new0 (ESummaryTasks, 1);
-
- summary->tasks = tasks;
-
- setup_gconf_client (summary);
- setup_task_folder (summary);
-
- e_summary_add_protocol_listener (summary, "tasks", e_summary_tasks_protocol, tasks);
-}
-
-void
-e_summary_tasks_reconfigure (ESummary *summary)
-{
- setup_task_folder (summary);
- generate_html (summary);
-}
-
-void
-e_summary_tasks_free (ESummary *summary)
-{
- ESummaryTasks *tasks;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- tasks = summary->tasks;
-
- if (tasks->cal_open_reload_timeout_id != 0)
- g_source_remove (tasks->cal_open_reload_timeout_id);
-
- g_object_unref (tasks->client);
- g_free (tasks->html);
- g_free (tasks->due_today_colour);
- g_free (tasks->overdue_colour);
- g_free (tasks->default_uri);
-
- if (tasks->gconf_value_changed_handler_id != 0)
- g_signal_handler_disconnect (tasks->gconf_client,
- tasks->gconf_value_changed_handler_id);
- g_object_unref (tasks->gconf_client);
-
- g_free (tasks);
- summary->tasks = NULL;
-}
diff --git a/my-evolution/e-summary-tasks.h b/my-evolution/e-summary-tasks.h
deleted file mode 100644
index a9d3d6b698..0000000000
--- a/my-evolution/e-summary-tasks.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-tasks.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifndef __E_SUMMARY_TASKS_H__
-#define __E_SUMMARY_TASKS_H__
-
-#include "e-summary-type.h"
-
-typedef struct _ESummaryTasks ESummaryTasks;
-
-const char *e_summary_tasks_get_html (ESummary *summary);
-void e_summary_tasks_init (ESummary *summary);
-void e_summary_tasks_reconfigure (ESummary *summary);
-void e_summary_tasks_free (ESummary *summary);
-
-#endif
diff --git a/my-evolution/e-summary-type.h b/my-evolution/e-summary-type.h
deleted file mode 100644
index 8a40dfe991..0000000000
--- a/my-evolution/e-summary-type.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-type.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifndef __E_SUMMARY_TYPE_H__
-#define __E_SUMMARY_TYPE_H__
-
-typedef struct _ESummary ESummary;
-
-#endif
diff --git a/my-evolution/e-summary-weather.c b/my-evolution/e-summary-weather.c
deleted file mode 100644
index 53b5be12b6..0000000000
--- a/my-evolution/e-summary-weather.c
+++ /dev/null
@@ -1,823 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-weather.c
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <glib.h>
-#include <gtk/gtkctree.h>
-#include <gtk/gtkmain.h>
-
-#include <libgnome/gnome-i18n.h>
-#include <libgnome/gnome-config.h>
-
-#include <gal/widgets/e-unicode.h>
-
-#include <string.h>
-
-#include "e-summary.h"
-#include "e-summary-shown.h"
-#include "e-summary-weather.h"
-#include "e-summary-preferences.h"
-#include "weather.h"
-#include "metar.h"
-
-struct _ESummaryWeather {
- ESummaryConnection *connection;
- GList *weathers;
-
- char *html;
- guint32 timeout;
-
- gboolean online;
- gboolean errorshown;
-};
-
-static GHashTable *locations_hash = NULL;
-
-char *
-e_summary_weather_get_html (ESummary *summary)
-{
- GList *weathers;
- GString *string;
- char *html;
-
- if (summary->weather == NULL || summary->weather->weathers == NULL) {
- return NULL;
- }
-
- string = g_string_new ("<dl><img src=\"ico-weather.png\" align=\"middle\" "
- "alt=\"\" width=\"48\" height=\"48\"><b>"
- "<a href=\"http://www.metoffice.gov.uk\">");
- g_string_append (string, _("My Weather"));
- g_string_append (string, "</a></b>");
-
- for (weathers = summary->weather->weathers; weathers; weathers = weathers->next) {
- if (((Weather *)weathers->data)->html == NULL) {
- continue;
- }
-
- g_string_append (string, ((Weather *)weathers->data)->html);
- }
-
- g_string_append (string, "</dl>");
-
- html = string->str;
- g_string_free (string, FALSE);
-
- return html;
-}
-
-static char *
-make_url (const char *code)
-{
- return g_strdup_printf ("http://weather.noaa.gov/cgi-bin/mgetmetar.pl?cccc=%s", code);
-}
-
-static void
-weather_make_html (Weather *w)
-{
- GString *string;
- ESummaryWeatherLocation *location;
- char *sky, *temp, *cond;
- const char *icon_name;
-
- icon_name = icon_from_weather (w);
- string = g_string_new ("");
- g_string_sprintf (string, "<dd><img align=\"middle\" "
- "src=\"%s\" width=\"16\" height=\"16\">&#160;<b>",
- icon_name);
- location = g_hash_table_lookup (locations_hash, w->location);
-#if 0
- if (location == NULL) {
- url = make_anchor (w->location, w->location);
- } else {
- url = make_anchor (location->name, w->location);
- }
-#endif
- if (location == NULL) {
- g_string_append (string, w->location);
- } else {
- g_string_append (string, location->name);
- }
-
-#if 0
- g_string_append (string, url);
- g_free (url);
-#endif
-
- g_string_append (string, "</b>:<blockquote><font size=\"-1\">");
- sky = (char *) weather_sky_string (w);
- temp = weather_temp_string (w);
- cond = (char *) weather_conditions_string (w);
-
- g_string_append (string, sky);
- g_string_append_c (string, ' ');
- g_string_append (string, cond);
- g_string_append_c (string, ' ');
- g_string_append (string, temp);
-
- g_free (temp);
-
-#if 0
- g_string_append (string, "<font size=\"-1\">");
-
- uri = g_strdup_printf ("<a href=\"weather://%p\">", w);
- g_string_append (string, uri);
- g_free (uri);
- g_string_append (string, "(More)</a></font></font></blockquote></dd>");
-#else
- g_string_append (string, "</font></blockquote></dd>");
-#endif
- if (w->html != NULL) {
- g_free (w->html);
- }
- w->html = string->str;
- g_string_free (string, FALSE);
-
- e_summary_draw (w->summary);
-}
-
-static ESummaryWeatherLocation *
-weather_location_new (char **locdata)
-{
- ESummaryWeatherLocation *location;
-
- location = g_new (ESummaryWeatherLocation, 1);
- location->name = g_strdup (locdata[0]);
- location->code = g_strdup (locdata[1]);
- location->zone = g_strdup (locdata[2]);
- location->radar = g_strdup (locdata[3]);
-
- return location;
-}
-
-static void
-parse_metar_token (const char *token,
- gboolean in_comment,
- Weather *w)
-{
- if (in_comment == FALSE) {
- if (metar_tok_time ((char *) token, w)) {
- return;
- } else if (metar_tok_wind ((char *) token, w)) {
- return;
- } else if (metar_tok_vis ((char *) token, w)) {
- return;
- } else if (metar_tok_cloud ((char *) token, w)) {
- return;
- } else if (metar_tok_temp ((char *) token, w)) {
- return;
- } else if (metar_tok_pres ((char *) token, w)) {
- return;
- } else if (metar_tok_cond ((char *) token, w)) {
- return;
- }
- }
-}
-
-static void
-parse_metar (const char *metar,
- Weather *w)
-{
- char *metar_dup;
- char **toks;
- gint ntoks;
- gint i;
- gboolean in_remark = FALSE;
-
- metar_dup = g_strdup (metar + 6);
-
- metar_init_re ();
-
- toks = g_strsplit (metar, " ", 0);
-
- for (ntoks = 0; toks[ntoks]; ntoks++) {
- if (strcmp (toks[ntoks], "RMK") == 0) {
- in_remark = TRUE;
- }
- }
-
- for (i = ntoks - 1; i >= 0; i--) {
- if (*toks[i] != '\0') {
- if (strcmp (toks[i], "RMK") == 0) {
- in_remark = FALSE;
- } else {
- parse_metar_token (toks[i], in_remark, w);
- }
- }
- }
-
- g_strfreev (toks);
- g_free (metar_dup);
- weather_make_html (w);
-}
-
-static void
-message_finished (SoupMessage *msg,
- gpointer userdata)
-{
- Weather *w = (Weather *) userdata;
- ESummary *summary;
- char *html, *metar, *end;
- char *search_str;
-
- summary = w->summary;
- if (summary->weather->connection->callback) {
- ESummaryConnection *connection = summary->weather->connection;
- connection->callback (summary, connection->callback_closure);
- }
-
- if (SOUP_MESSAGE_IS_ERROR (msg)) {
- ESummaryWeatherLocation *location;
-
- g_warning ("Message failed: %d\n%s", msg->errorcode,
- msg->errorphrase);
- w->message = NULL;
-
- location = g_hash_table_lookup (locations_hash, w->location);
-
- w->html = g_strdup_printf ("<br><b>%s %s</b></br>",
- _("There was an error downloading data for"),
- location ? location->name : w->location);
-
- e_summary_draw (w->summary);
- return;
- }
-
- html = g_strdup (msg->response.body);
- w->message = NULL;
-
- /* Find the metar data */
- search_str = g_strdup_printf ("\n%s", w->location);
- metar = strstr (html, search_str);
- if (metar == NULL) {
- g_free (search_str);
- return;
- }
-
- metar++;
- end = strchr (metar, '\n');
- if (end == NULL) {
- g_free (search_str);
- return;
- }
- *end = '\0';
-
- parse_metar (metar, w);
- g_free (search_str);
- return;
-}
-
-gboolean
-e_summary_weather_update (ESummary *summary)
-{
- GList *w;
-
- if (summary->weather->online == FALSE) {
- g_warning ("%s: Repolling but offline", G_GNUC_FUNCTION);
- return TRUE;
- }
-
- summary->weather->errorshown = FALSE;
- for (w = summary->weather->weathers; w; w = w->next) {
- SoupContext *context;
- char *uri;
- Weather *weather = w->data;
-
- if (weather->message != NULL) {
- continue;
- }
-
- uri = g_strdup_printf ("http://weather.noaa.gov/cgi-bin/mgetmetar.pl?cccc=%s", weather->location);
- context = soup_context_get (uri);
- if (context == NULL) {
- g_warning ("Invalid URL: %s", uri);
- soup_context_unref (context);
- g_free (uri);
- continue;
- }
-
- weather->message = soup_message_new (context, SOUP_METHOD_GET);
- soup_context_unref (context);
- soup_message_queue (weather->message, message_finished, weather);
-
- g_free (uri);
- }
-
- return TRUE;
-}
-
-static void
-weather_free (Weather *w)
-{
- g_return_if_fail (w != NULL);
-
- if (w->message != NULL) {
- soup_message_cancel (w->message);
- }
-
- g_free (w->location);
- g_free (w->html);
- g_free (w);
-}
-
-static void
-e_summary_weather_add_location (ESummary *summary,
- const char *location)
-{
- Weather *w;
-
- w = g_new0 (Weather, 1);
- w->summary = summary;
- w->location = g_strdup (location);
- summary->weather->weathers = g_list_append (summary->weather->weathers, w);
-}
-
-static gboolean
-e_summary_weather_init_locations (void)
-{
- int nregions, iregions;
- char **regions;
-
- if (locations_hash != NULL) {
- return TRUE;
- }
-
- locations_hash = g_hash_table_new (g_str_hash, g_str_equal);
-
- gnome_config_push_prefix ("=" LOCATIONDIR "/Locations=/");
-
- gnome_config_get_vector ("Main/regions", &nregions, &regions);
- for (iregions = nregions - 1; iregions >= 0; iregions--) {
- int nstates, istates;
- char **states;
- char *region_name;
- char *region_name_key;
- char *states_key;
-
- region_name_key = g_strconcat (regions[iregions], "/name", NULL);
- states_key = g_strconcat (regions[iregions], "/states", NULL);
- region_name = gnome_config_get_string (region_name_key);
-
- gnome_config_get_vector (states_key, &nstates, &states);
-
- for (istates = nstates - 1; istates >= 0; istates--) {
- void *iter;
- char *iter_key, *iter_val;
- char *state_path, *state_name_key, *state_name;
-
- state_path = g_strconcat (regions[iregions], "_", states[istates], "/", NULL);
- state_name_key = g_strconcat (state_path, "name", NULL);
- state_name = gnome_config_get_string (state_name_key);
-
- iter = gnome_config_init_iterator (state_path);
-
- while ((iter = gnome_config_iterator_next (iter, &iter_key, &iter_val)) != NULL) {
- if (strstr ((const char *) iter_key, "loc") != NULL) {
- char **locdata;
- int nlocdata;
- ESummaryWeatherLocation *location;
-
- gnome_config_make_vector (iter_val,
- &nlocdata,
- &locdata);
-
- if (nlocdata != 4) {
- g_warning ("Invalid location in Locations file: %s\n", iter_val);
- g_free (iter_key);
- g_free (iter_val);
- continue;
- }
-
- if (!g_hash_table_lookup (locations_hash, locdata[1])) {
- location = weather_location_new (locdata);
- g_hash_table_insert (locations_hash,
- g_strdup (locdata[1]),
- location);
- }
-
- g_strfreev (locdata);
- }
-
- g_free (iter_key);
- g_free (iter_val);
- }
-
- g_free (state_name);
- g_free (state_path);
- g_free (state_name_key);
- }
-
- g_strfreev (states);
- g_free (region_name);
- g_free (region_name_key);
- g_free (states_key);
- }
-
- g_strfreev (regions);
- gnome_config_pop_prefix ();
-
- return TRUE;
-}
-
-static void
-e_summary_weather_protocol (ESummary *summary,
- const char *uri,
- void *closure)
-{
-}
-
-static int
-e_summary_weather_count (ESummary *summary,
- void *data)
-{
- ESummaryWeather *weather;
- GList *p;
- int count = 0;
-
- weather = summary->weather;
- for (p = weather->weathers; p; p = p->next) {
- Weather *w = p->data;
-
- if (w->message != NULL) {
- count++;
- }
- }
-
- return count;
-}
-
-static ESummaryConnectionData *
-make_connection (Weather *w)
-{
- ESummaryConnectionData *data;
-
- data = g_new (ESummaryConnectionData, 1);
- data->hostname = make_url (w->location);
- data->type = g_strdup (_("Weather"));
-
- return data;
-}
-
-static GList *
-e_summary_weather_add (ESummary *summary,
- void *data)
-{
- ESummaryWeather *weather;
- GList *p, *connections = NULL;
-
- weather = summary->weather;
- for (p = weather->weathers; p; p = p->next) {
- Weather *w = p->data;
-
- if (w->message != NULL) {
- ESummaryConnectionData *d;
-
- d = make_connection (w);
- connections = g_list_prepend (connections, d);
- }
- }
-
- return connections;
-}
-
-static void
-e_summary_weather_set_online (ESummary *summary,
- GNOME_Evolution_OfflineProgressListener listener,
- gboolean online,
- void *data)
-{
- ESummaryWeather *weather;
- GList *p;
-
- weather = summary->weather;
- if (weather->online == online) {
- return;
- }
-
- if (online == TRUE) {
- e_summary_weather_update (summary);
-
- if (summary->preferences->weather_refresh_time != 0)
- weather->timeout = gtk_timeout_add (summary->preferences->weather_refresh_time * 1000,
- (GtkFunction) e_summary_weather_update,
- summary);
- } else {
- for (p = weather->weathers; p; p = p->next) {
- Weather *w;
-
- w = p->data;
- if (w->message) {
- soup_message_cancel (w->message);
- w->message = NULL;
- }
- }
-
- gtk_timeout_remove (weather->timeout);
- weather->timeout = 0;
- }
-
- weather->online = online;
-}
-
-void
-e_summary_weather_init (ESummary *summary)
-{
- ESummaryPrefs *prefs;
- ESummaryWeather *weather;
- ESummaryConnection *connection;
- int timeout;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- if (e_summary_weather_init_locations () == FALSE) {
- return;
- }
-
- prefs = summary->preferences;
- weather = g_new0 (ESummaryWeather, 1);
- weather->online = TRUE;
- summary->weather = weather;
-
- connection = g_new (ESummaryConnection, 1);
- connection->count = e_summary_weather_count;
- connection->add = e_summary_weather_add;
- connection->set_online = e_summary_weather_set_online;
- connection->closure = NULL;
- connection->callback = NULL;
- connection->callback_closure = NULL;
-
- weather->connection = connection;
- e_summary_add_online_connection (summary, connection);
-
- e_summary_add_protocol_listener (summary, "weather", e_summary_weather_protocol, weather);
-
- if (prefs == NULL) {
- /* translators: Put here a list of codes for locations you want to
- see in My Evolution by default. You can find the list of all
- stations and their codes in Evolution sources
- (evolution/my-evolution/Locations) */
- char *default_stations = _("KBOS"), **stations_v, **p;
-
- stations_v = g_strsplit (default_stations, ":", 0);
- g_assert (stations_v != NULL);
- for (p = stations_v; *p != NULL; p++) {
- e_summary_weather_add_location (summary, *p);
- }
- g_strfreev (stations_v);
- timeout = 600;
- } else {
- GSList *p;
-
- for (p = prefs->stations; p; p = p->next) {
- e_summary_weather_add_location (summary, p->data);
- }
- timeout = prefs->weather_refresh_time;
- }
-
- e_summary_weather_update (summary);
-
- if (timeout == 0)
- weather->timeout = 0;
- else
- weather->timeout = gtk_timeout_add (timeout * 1000,
- (GtkFunction) e_summary_weather_update,
- summary);
- return;
-}
-
-const char *
-e_summary_weather_code_to_name (const char *code)
-{
- ESummaryWeatherLocation *location;
-
- if (locations_hash == NULL) {
- if (e_summary_weather_init_locations () == FALSE) {
- return code;
- }
- }
-
- location = g_hash_table_lookup (locations_hash, code);
- if (location == NULL) {
- return code;
- } else {
- return location->name;
- }
-}
-
-static gboolean
-is_weather_shown (const char *code)
-{
- GSList *p;
- ESummaryPrefs *global_preferences;
-
- global_preferences = e_summary_preferences_get_global ();
- for (p = global_preferences->stations; p; p = p->next) {
- if (strcmp (p->data, code) == 0) {
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-void
-e_summary_weather_fill_etable (ESummaryShown *ess)
-{
- ETreePath region, state, location;
- ESummaryShownModelEntry *entry;
- int nregions, iregions;
- char **regions;
-
- gnome_config_push_prefix ("=" LOCATIONDIR "/Locations=/");
-
- gnome_config_get_vector ("Main/regions", &nregions, &regions);
- region = NULL;
-
- e_summary_shown_freeze (ess);
- for (iregions = nregions - 1; iregions >= 0; iregions--) {
- int nstates, istates;
- char **states;
- char *region_name;
- char *region_name_key;
- char *states_key;
-
- region_name_key = g_strconcat (regions[iregions], "/name", NULL);
- states_key = g_strconcat (regions[iregions], "/states", NULL);
- region_name = gnome_config_get_string (region_name_key);
-
- entry = g_new (ESummaryShownModelEntry, 1);
- entry->location = NULL;
- entry->name = g_strdup (region_name);
- entry->showable = FALSE;
-
- region = e_summary_shown_add_node (ess, TRUE, entry, NULL, FALSE, NULL);
-
- gnome_config_get_vector (states_key, &nstates, &states);
-
- state = NULL;
- for (istates = 0; istates < nstates; istates++) {
- void *iter;
- char *iter_key, *iter_val;
- char *state_path, *state_name_key, *state_name;
-
- state_path = g_strconcat (regions[iregions], "_", states[istates], "/", NULL);
- state_name_key = g_strconcat (state_path, "name", NULL);
- state_name = gnome_config_get_string (state_name_key);
-
- entry = g_new (ESummaryShownModelEntry, 1);
- entry->location = NULL;
- entry->name = g_strdup (state_name);
- entry->showable = FALSE;
-
- state = e_summary_shown_add_node (ess, TRUE, entry, region, FALSE, NULL);
-
- location = NULL;
- iter = gnome_config_init_iterator (state_path);
-
- while ((iter = gnome_config_iterator_next (iter, &iter_key, &iter_val)) != NULL) {
- if (strncmp (iter_key, "loc", 3) == 0) {
- char **locdata;
- int nlocdata;
-
- gnome_config_make_vector (iter_val,
- &nlocdata,
- &locdata);
- if (nlocdata != 4) {
- g_warning ("Invalid location in Locations file: %s\n", iter_val);
- g_free (iter_key);
- g_free (iter_val);
- continue;
- }
-
- entry = g_new (ESummaryShownModelEntry, 1);
- entry->location = g_strdup (locdata[1]);
- entry->name = g_strdup (locdata[0]);
- entry->showable = TRUE;
-
- location = e_summary_shown_add_node (ess, TRUE, entry, state, FALSE, NULL);
- if (is_weather_shown (locdata[1]) == TRUE) {
- entry = g_new (ESummaryShownModelEntry, 1);
- entry->location = g_strdup (locdata[1]);
- entry->name = g_strdup (locdata[0]);
- location = e_summary_shown_add_node (ess, FALSE, entry, NULL, FALSE, NULL);
- }
- g_strfreev (locdata);
- }
-
- g_free (iter_key);
- g_free (iter_val);
- }
-
- g_free (state_name);
- g_free (state_path);
- g_free (state_name_key);
- }
-
- g_strfreev (states);
- g_free (region_name);
- g_free (region_name_key);
- g_free (states_key);
- }
-
- g_strfreev (regions);
- gnome_config_pop_prefix ();
- e_summary_shown_thaw (ess);
-
- return;
-}
-
-void
-e_summary_weather_reconfigure (ESummary *summary)
-{
- ESummaryWeather *weather;
- GList *old;
- GList *weather_list;
- GSList *p;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- weather = summary->weather;
-
- /* Stop timeout so it doesn't occur while we're changing stuff*/
- gtk_timeout_remove (weather->timeout);
-
- /* Clear the weather list before doing weather_free() on each of them
- because otherwise soup_message_cancel() could invoke the refresh
- function just while we are freeing things. [#31639] */
- weather_list = weather->weathers;
- weather->weathers = NULL;
-
- for (old = weather_list; old != NULL; old = old->next) {
- Weather *w;
-
- w = old->data;
- weather_free (w);
- }
- g_list_free (weather_list);
-
- for (p = summary->preferences->stations; p; p = p->next) {
- e_summary_weather_add_location (summary, p->data);
- }
-
- if (summary->preferences->weather_refresh_time == 0)
- weather->timeout = 0;
- else
- weather->timeout = gtk_timeout_add (summary->preferences->weather_refresh_time * 1000,
- (GtkFunction) e_summary_weather_update, summary);
-
- e_summary_weather_update (summary);
-}
-
-void
-e_summary_weather_free (ESummary *summary)
-{
- ESummaryWeather *weather;
- GList *p;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- weather = summary->weather;
-
- if (weather->timeout != 0) {
- gtk_timeout_remove (weather->timeout);
- }
- for (p = weather->weathers; p; p = p->next) {
- Weather *w = p->data;
-
- weather_free (w);
- }
- g_list_free (weather->weathers);
- g_free (weather->html);
-
- e_summary_remove_online_connection (summary, weather->connection);
- g_free (weather->connection);
-
- g_free (weather);
- summary->weather = NULL;
-}
-
diff --git a/my-evolution/e-summary-weather.h b/my-evolution/e-summary-weather.h
deleted file mode 100644
index 6933137ed2..0000000000
--- a/my-evolution/e-summary-weather.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-weather.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifndef __E_SUMMARY_WEATHER_H__
-#define __E_SUMMARY_WEATHER_H__
-
-#include <time.h>
-
-#include "e-summary-type.h"
-#include "e-summary-shown.h"
-
-typedef struct _ESummaryWeather ESummaryWeather;
-
-#define WEATHER_LOCATION_NAME_MAX_LEN 100
-#define WEATHER_LOCATION_CODE_LEN 4
-#define WEATHER_LOCATION_ZONE_LEN 7
-#define WEATHER_LOCATION_RADAR_LEN 3
-
-typedef struct _ESummaryWeatherLocation {
- char *name;
- char *code;
- char *zone;
- char *radar;
-} ESummaryWeatherLocation;
-
-typedef enum _ESummaryWeatherWindDir {
- WIND_VARIABLE,
- WIND_N,
- WIND_NNE,
- WIND_NE,
- WIND_ENE,
- WIND_E,
- WIND_ESE,
- WIND_SE,
- WIND_SSE,
- WIND_S,
- WIND_SSW,
- WIND_SW,
- WIND_WSW,
- WIND_W,
- WIND_WNW,
- WIND_NW,
- WIND_NNW
-} ESummaryWeatherWindDir;
-
-typedef enum _ESummaryWeatherSky {
- SKY_CLEAR,
- SKY_BROKEN,
- SKY_SCATTERED,
- SKY_FEW,
- SKY_OVERCAST
-} ESummaryWeatherSky;
-
-typedef enum _ESummaryWeatherConditionPhenomenon {
- PHENOMENON_NONE,
-
- PHENOMENON_DRIZZLE,
- PHENOMENON_RAIN,
- PHENOMENON_SNOW,
- PHENOMENON_SNOW_GRAINS,
- PHENOMENON_ICE_CRYSTALS,
- PHENOMENON_ICE_PELLETS,
- PHENOMENON_HAIL,
- PHENOMENON_SMALL_HAIL,
- PHENOMENON_UNKNOWN_PRECIPITATION,
-
- PHENOMENON_MIST,
- PHENOMENON_FOG,
- PHENOMENON_SMOKE,
- PHENOMENON_VOLCANIC_ASH,
- PHENOMENON_SAND,
- PHENOMENON_HAZE,
- PHENOMENON_SPRAY,
- PHENOMENON_DUST,
-
- PHENOMENON_SQUALL,
- PHENOMENON_SANDSTORM,
- PHENOMENON_DUSTSTORM,
- PHENOMENON_FUNNEL_CLOUD,
- PHENOMENON_TORNADO,
- PHENOMENON_DUST_WHIRLS
-} ESummaryWeatherConditionPhenomenon;
-
-typedef enum _ESummaryWeatherConditionQualifier {
- QUALIFIER_NONE,
-
- QUALIFIER_VICINITY,
-
- QUALIFIER_LIGHT,
- QUALIFIER_MODERATE,
- QUALIFIER_HEAVY,
- QUALIFIER_SHALLOW,
- QUALIFIER_PATCHES,
- QUALIFIER_PARTIAL,
- QUALIFIER_THUNDERSTORM,
- QUALIFIER_BLOWING,
- QUALIFIER_SHOWERS,
- QUALIFIER_DRIFTING,
- QUALIFIER_FREEZING
-} ESummaryWeatherConditionQualifier;
-
-typedef struct _ESummaryWeatherConditions {
- gboolean significant;
- ESummaryWeatherConditionPhenomenon phenomenon;
- ESummaryWeatherConditionQualifier qualifier;
-} ESummaryWeatherConditions;
-
-typedef enum _ESummaryWeatherUnits {
- UNITS_IMPERIAL,
- UNITS_METRIC
-} ESummaryWeatherUnits;
-
-typedef enum _ESummaryWeatherForecastType {
- FORECAST_STATE,
- FORECAST_ZONE
-} ESummaryWeatherForecastType;
-
-typedef double ESummaryWeatherTemperature;
-typedef int ESummaryWeatherHumidity;
-typedef int ESummaryWeatherWindSpeed;
-typedef double ESummaryWeatherPressure;
-typedef double ESummaryWeatherVisibility;
-
-typedef time_t ESummaryWeatherUpdate;
-
-char *e_summary_weather_get_html (ESummary *summary);
-void e_summary_weather_init (ESummary *summary);
-void e_summary_weather_reconfigure (ESummary *summary);
-void e_summary_weather_fill_etable (ESummaryShown *ess);
-const char *e_summary_weather_code_to_name (const char *code);
-void e_summary_weather_free (ESummary *summary);
-gboolean e_summary_weather_update (ESummary *summary);
-
-#endif
diff --git a/my-evolution/e-summary.c b/my-evolution/e-summary.c
deleted file mode 100644
index 1baba182ec..0000000000
--- a/my-evolution/e-summary.c
+++ /dev/null
@@ -1,967 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary.c
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include <glib.h>
-
-#include <libgnome/gnome-i18n.h>
-#include <libgnome/gnome-util.h>
-#include <libgnome/gnome-url.h>
-
-#include <gtkhtml/gtkhtml.h>
-#include <gtkhtml/gtkhtml-stream.h>
-#include <gtkhtml/htmlengine.h>
-#include <gtkhtml/htmlselection.h>
-
-#include <gal/util/e-util.h>
-#include <gal/widgets/e-unicode.h>
-
-#include <bonobo/bonobo-listener.h>
-#include <bonobo/bonobo-exception.h>
-#include <bonobo/bonobo-moniker-util.h>
-#include <bonobo/bonobo-ui-component.h>
-
-#include <libgnome/gnome-url.h>
-
-#include <libgnomeprint/gnome-print-job.h>
-
-#include <libgnomeprintui/gnome-print-job-preview.h>
-#include <libgnomeprintui/gnome-print-dialog.h>
-
-#include <gtk/gtkdialog.h>
-
-#include <cal-util/timeutil.h>
-
-#include <gtk/gtkmain.h>
-#include <gtk/gtkscrolledwindow.h>
-
-#include <gconf/gconf-client.h>
-
-#include <string.h>
-#include <unistd.h>
-
-#include "e-summary.h"
-#include "e-summary-preferences.h"
-#include "my-evolution-html.h"
-#include "Mailer.h"
-
-#include <Evolution.h>
-#include "e-util/e-dialog-utils.h"
-
-#include <time.h>
-
-#define PARENT_TYPE (gtk_vbox_get_type ())
-
-extern char *evolution_dir;
-
-static GList *all_summaries = NULL;
-
-static GtkObjectClass *e_summary_parent_class;
-
-struct _ESummaryMailFolderInfo {
- char *name;
-
- int count;
- int unread;
-};
-
-struct _ESummaryPrivate {
- BonoboControl *control;
-
- GtkWidget *html_scroller;
- GtkWidget *html;
-
- GHashTable *protocol_hash;
-
- GList *connections;
-
- guint pending_reload_tag;
-
- guint tomorrow_timeout_id;
-
- gboolean frozen;
-
- int queued_draw_idle_id;
-};
-
-typedef struct _ProtocolListener {
- ESummaryProtocolListener listener;
- void *closure;
-} ProtocolListener;
-
-static GHashTable *images_cache = NULL;
-
-static void
-free_protocol (gpointer key, gpointer value, gpointer user_data)
-{
- g_free (key);
- g_free (value);
-}
-
-static void
-destroy (GtkObject *object)
-{
- ESummary *summary;
- ESummaryPrivate *priv;
-
- summary = E_SUMMARY (object);
- priv = summary->priv;
-
- if (priv == NULL) {
- return;
- }
-
- all_summaries = g_list_remove (all_summaries, summary);
-
- if (priv->pending_reload_tag) {
- gtk_timeout_remove (priv->pending_reload_tag);
- priv->pending_reload_tag = 0;
- }
-
- if (priv->queued_draw_idle_id != 0) {
- g_source_remove (priv->queued_draw_idle_id);
- priv->queued_draw_idle_id = 0;
- }
-
- if (summary->mail) {
- e_summary_mail_free (summary);
- }
- if (summary->calendar) {
- e_summary_calendar_free (summary);
- }
- if (summary->rdf) {
- e_summary_rdf_free (summary);
- }
- if (summary->weather) {
- e_summary_weather_free (summary);
- }
- if (summary->tasks) {
- e_summary_tasks_free (summary);
-
- }
-
- if (summary->priv->control) {
- g_object_remove_weak_pointer (G_OBJECT (summary->priv->control), (void **) &summary->priv->control);
- summary->priv->control = NULL;
- }
-
- if (priv->tomorrow_timeout_id != 0)
- g_source_remove (priv->tomorrow_timeout_id);
-
- if (priv->protocol_hash) {
- g_hash_table_foreach (priv->protocol_hash, free_protocol, NULL);
- g_hash_table_destroy (priv->protocol_hash);
- }
-
- g_free (priv);
- summary->priv = NULL;
-
- e_summary_parent_class->destroy (object);
-}
-
-static gboolean
-draw_idle_cb (void *data)
-{
- ESummary *summary;
- GString *string;
- GtkHTMLStream *stream;
- char *html;
- char date[256], *date_utf;
- time_t t;
-
- summary = E_SUMMARY (data);
-
- string = g_string_new (HTML_1);
- t = time (NULL);
- strftime (date, 255, _("%A, %B %e %Y"), localtime (&t));
-
- date_utf = e_utf8_from_locale_string (date);
- html = g_strdup_printf (HTML_2, date_utf);
- g_free (date_utf);
- g_string_append (string, html);
- g_free (html);
- g_string_append (string, HTML_3);
-
- /* Weather and RDF stuff here */
- html = e_summary_weather_get_html (summary);
- if (html != NULL) {
- g_string_append (string, html);
- g_free (html);
- }
-
- html = e_summary_rdf_get_html (summary);
- if (html != NULL) {
- g_string_append (string, html);
- g_free (html);
- }
-
- g_string_append (string, HTML_4);
-
- html = (char *) e_summary_mail_get_html (summary);
- if (html != NULL) {
- g_string_append (string, html);
- }
-
- html = (char *) e_summary_calendar_get_html (summary);
- if (html != NULL) {
- g_string_append (string, html);
- }
-
- html = (char *) e_summary_tasks_get_html (summary);
- if (html != NULL) {
- g_string_append (string, html);
- }
-
- g_string_append (string, HTML_5);
-
- stream = gtk_html_begin (GTK_HTML (summary->priv->html));
- GTK_HTML (summary->priv->html)->engine->newPage = FALSE;
- gtk_html_write (GTK_HTML (summary->priv->html), stream, string->str, strlen (string->str));
- gtk_html_end (GTK_HTML (summary->priv->html), stream, GTK_HTML_STREAM_OK);
-
- g_string_free (string, TRUE);
-
- summary->priv->queued_draw_idle_id = 0;
-
- return FALSE;
-}
-
-void
-e_summary_draw (ESummary *summary)
-{
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- if (summary->mail == NULL || summary->calendar == NULL
- || summary->rdf == NULL || summary->weather == NULL
- || summary->tasks == NULL) {
- return;
- }
-
- if (summary->priv->queued_draw_idle_id != 0)
- return;
-
- summary->priv->queued_draw_idle_id = g_idle_add (draw_idle_cb, summary);
-}
-
-void
-e_summary_redraw_all (void)
-{
- GList *p;
-
- for (p = all_summaries; p; p = p->next) {
- e_summary_draw (E_SUMMARY (p->data));
- }
-}
-
-static char *
-e_pixmap_file (const char *filename)
-{
- char *ret;
- char *edir;
-
- if (g_file_exists (filename)) {
- ret = g_strdup (filename);
-
- return ret;
- }
-
- /* Try the evolution images dir */
- edir = g_concat_dir_and_file (EVOLUTION_IMAGESDIR, filename);
-
- if (g_file_exists (edir)) {
- ret = g_strdup (edir);
- g_free (edir);
-
- return ret;
- }
- g_free (edir);
-
- /* Try the evolution button images dir */
- edir = g_concat_dir_and_file (EVOLUTION_BUTTONSDIR, filename);
-
- if (g_file_exists (edir)) {
- ret = g_strdup (edir);
- g_free (edir);
-
- return ret;
- }
- g_free (edir);
-
- /* Fall back to the gnome_pixmap_file */
- ret = gnome_pixmap_file (filename);
- if (ret == NULL) {
- g_warning ("Could not find pixmap for %s", filename);
- }
-
- return ret;
-}
-
-struct _imgcache {
- char *buffer;
- int bufsize;
-};
-
-static void
-e_summary_url_clicked (GtkHTML *html,
- const char *url,
- ESummary *summary)
-{
- char *protocol, *protocol_end;
- ProtocolListener *protocol_listener;
-
- protocol_end = strchr (url, ':');
- if (protocol_end == NULL) {
- /* No url, let gnome work it out */
- gnome_url_show (url, NULL);
- return;
- }
-
- protocol = g_strndup (url, protocol_end - url);
-
- protocol_listener = g_hash_table_lookup (summary->priv->protocol_hash,
- protocol);
- g_free (protocol);
-
- if (protocol_listener == NULL) {
- /* Again, let gnome work it out */
- gnome_url_show (url, NULL);
- return;
- }
-
- protocol_listener->listener (summary, url, protocol_listener->closure);
-}
-
-static char *
-e_read_file_with_length (const char *filename,
- size_t *length)
-{
- int fd;
- struct stat stat_buf;
- char *buf;
- size_t bytes_read, size;
-
- g_return_val_if_fail (filename != NULL, NULL);
-
- fd = open (filename, O_RDONLY);
- g_return_val_if_fail (fd != -1, NULL);
-
- fstat (fd, &stat_buf);
- size = stat_buf.st_size;
- buf = g_new (char, size + 1);
-
- bytes_read = 0;
- while (bytes_read < size) {
- ssize_t rc;
-
- rc = read (fd, buf + bytes_read, size - bytes_read);
- if (rc < 0) {
- if (errno != EINTR) {
- close (fd);
- g_free (buf);
-
- return NULL;
- }
- } else if (rc == 0) {
- break;
- } else {
- bytes_read += rc;
- }
- }
-
- buf[bytes_read] = '\0';
-
- if (length) {
- *length = bytes_read;
- }
-
- return buf;
-}
-
-static void
-e_summary_url_requested (GtkHTML *html,
- const char *url,
- GtkHTMLStream *stream,
- ESummary *summary)
-{
- char *filename;
- struct _imgcache *img = NULL;
-
- if (strncasecmp (url, "file:", 5) == 0) {
- url += 5;
- filename = e_pixmap_file (url);
- } else if (strchr (url, ':') >= strchr (url, '/')) {
- filename = e_pixmap_file (url);
- } else {
- filename = g_strdup (url);
- }
-
- if (filename == NULL) {
- gtk_html_stream_close (stream, GTK_HTML_STREAM_ERROR);
- return;
- }
-
- if (images_cache != NULL) {
- img = g_hash_table_lookup (images_cache, filename);
- } else {
- images_cache = g_hash_table_new (g_str_hash, g_str_equal);
- }
-
- if (img == NULL) {
- size_t length;
- char *contents;
-
- contents = e_read_file_with_length (filename, &length);
- if (contents == NULL) {
- g_free (filename);
- return;
- }
-
- img = g_new (struct _imgcache, 1);
- img->buffer = contents;
- img->bufsize = length;
-
- g_hash_table_insert (images_cache, g_strdup (filename), img);
- }
-
- gtk_html_stream_write (stream, img->buffer, img->bufsize);
- gtk_html_stream_close (stream, GTK_HTML_STREAM_OK);
- g_free (filename);
-}
-
-static void
-e_summary_evolution_protocol_listener (ESummary *summary,
- const char *uri,
- void *closure)
-{
- e_summary_change_current_view (summary, uri);
-}
-
-static void
-e_summary_class_init (GtkObjectClass *object_class)
-{
- object_class->destroy = destroy;
-
- e_summary_parent_class = g_type_class_ref(PARENT_TYPE);
-}
-
-static gboolean tomorrow_timeout (gpointer data);
-
-static void
-reset_tomorrow_timeout (ESummary *summary)
-{
- time_t now, day_end;
-
- now = time (NULL);
- if (summary->tz)
- day_end = time_day_end_with_zone (now, summary->tz);
- else
- day_end = time_day_end (now);
-
- /* (Yes, the number of milliseconds in a day is less than UINT_MAX) */
- summary->priv->tomorrow_timeout_id =
- g_timeout_add ((day_end - now) * 1000,
- tomorrow_timeout, summary);
-}
-
-static gboolean
-tomorrow_timeout (gpointer data)
-{
- ESummary *summary = data;
-
- reset_tomorrow_timeout (summary);
- e_summary_reconfigure (summary);
-
- return FALSE;
-}
-
-#define DEFAULT_HTML "<html><head><title>Summary</title></head><body bgcolor=\"#ffffff\">%s</body></html>"
-
-static void
-e_summary_init (ESummary *summary)
-{
- GConfClient *gconf_client;
- ESummaryPrivate *priv;
- char *def;
-
- summary->priv = g_new (ESummaryPrivate, 1);
-
- priv = summary->priv;
-
- priv->control = NULL;
-
- priv->frozen = TRUE;
- priv->pending_reload_tag = 0;
-
- priv->html_scroller = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->html_scroller),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- priv->html = gtk_html_new ();
- gtk_html_set_editable (GTK_HTML (priv->html), FALSE);
- gtk_html_set_default_content_type (GTK_HTML (priv->html),
- "text/html; charset=utf-8");
-
- def = g_strdup_printf (DEFAULT_HTML, _("Please wait..."));
- gtk_html_load_from_string (GTK_HTML (priv->html), def, strlen (def));
- g_free (def);
-
- g_signal_connect (priv->html, "url-requested", G_CALLBACK (e_summary_url_requested), summary);
- g_signal_connect (priv->html, "link-clicked", G_CALLBACK (e_summary_url_clicked), summary);
-
- gtk_container_add (GTK_CONTAINER (priv->html_scroller), priv->html);
- gtk_widget_show_all (priv->html_scroller);
- gtk_box_pack_start (GTK_BOX (summary), priv->html_scroller,
- TRUE, TRUE, 0);
-
- priv->protocol_hash = NULL;
- priv->connections = NULL;
-
- gconf_client = gconf_client_get_default ();
-
- summary->timezone = gconf_client_get_string (gconf_client, "/apps/evolution/calendar/display/timezone", NULL);
- if (!summary->timezone || !summary->timezone[0]) {
- g_free (summary->timezone);
- summary->timezone = g_strdup ("UTC");
- }
- summary->tz = icaltimezone_get_builtin_timezone (summary->timezone);
- reset_tomorrow_timeout (summary);
-
- g_object_unref (gconf_client);
-
- priv->queued_draw_idle_id = 0;
-}
-
-E_MAKE_TYPE (e_summary, "ESummary", ESummary, e_summary_class_init,
- e_summary_init, PARENT_TYPE);
-
-GtkWidget *
-e_summary_new (ESummaryPrefs *prefs)
-{
- ESummary *summary;
-
- summary = gtk_type_new (e_summary_get_type ());
-
- /* Just get a pointer to the global preferences */
- summary->preferences = prefs;
-
- e_summary_add_protocol_listener (summary, "evolution", e_summary_evolution_protocol_listener, summary);
-
- e_summary_mail_init (summary);
- e_summary_calendar_init (summary);
- e_summary_tasks_init (summary);
- e_summary_rdf_init (summary);
- e_summary_weather_init (summary);
-
- all_summaries = g_list_prepend (all_summaries, summary);
- return GTK_WIDGET (summary);
-}
-
-BonoboControl *
-e_summary_get_control (ESummary *summary)
-{
- g_return_val_if_fail (summary != NULL, CORBA_OBJECT_NIL);
- g_return_val_if_fail (IS_E_SUMMARY (summary), CORBA_OBJECT_NIL);
-
- return summary->priv->control;
-}
-
-void
-e_summary_set_control (ESummary *summary, BonoboControl *control)
-{
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- if (summary->priv->control)
- g_object_remove_weak_pointer (G_OBJECT (summary->priv->control), (void **) &summary->priv->control);
-
- summary->priv->control = control;
-
- if (summary->priv->control)
- g_object_add_weak_pointer (G_OBJECT (summary->priv->control), (void **) &summary->priv->control);
-}
-
-static void
-do_summary_print (ESummary *summary)
-{
- GnomePrintContext *print_context;
- GnomePrintJob *print_master;
- GtkWidget *gpd;
- GnomePrintConfig *config = NULL;
- GtkWidget *preview_widget;
- gboolean preview = FALSE;
-
- gpd = gnome_print_dialog_new (NULL, _("Print Summary"), GNOME_PRINT_DIALOG_COPIES);
-
- switch (gtk_dialog_run (GTK_DIALOG (gpd))) {
- case GNOME_PRINT_DIALOG_RESPONSE_PRINT:
- preview = FALSE;
- break;
-
- case GNOME_PRINT_DIALOG_RESPONSE_PREVIEW:
- preview = TRUE;
- break;
-
- default:
- gtk_widget_destroy (gpd);
- return;
- }
-
- config = gnome_print_dialog_get_config (GNOME_PRINT_DIALOG (gpd));
-
- print_master = gnome_print_job_new (config);
-
- print_context = gnome_print_job_get_context (print_master);
- gtk_html_print (GTK_HTML (summary->priv->html), print_context);
- gnome_print_job_close (print_master);
-
- gtk_widget_destroy (gpd);
-
- if (preview) {
- preview_widget = gnome_print_job_preview_new (print_master, _("Print Preview"));
- gtk_widget_show (preview_widget);
- } else {
- int result = gnome_print_job_print (print_master);
-
- if (result == -1)
- e_notice (gpd, GTK_MESSAGE_ERROR, _("Printing of Summary failed"));
- }
-
- g_object_unref (print_master);
-}
-
-void
-e_summary_print (BonoboUIComponent *component,
- gpointer userdata,
- const char *cname)
-{
- ESummary *summary = userdata;
-
- do_summary_print (summary);
-}
-
-void
-e_summary_add_protocol_listener (ESummary *summary,
- const char *protocol,
- ESummaryProtocolListener listener,
- void *closure)
-{
- ProtocolListener *old;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
- g_return_if_fail (protocol != NULL);
- g_return_if_fail (listener != NULL);
-
- if (summary->priv->protocol_hash == NULL) {
- summary->priv->protocol_hash = g_hash_table_new (g_str_hash,
- g_str_equal);
- old = NULL;
- } else {
- old = g_hash_table_lookup (summary->priv->protocol_hash, protocol);
- }
-
- if (old != NULL) {
- return;
- }
-
- old = g_new (ProtocolListener, 1);
- old->listener = listener;
- old->closure = closure;
-
- g_hash_table_insert (summary->priv->protocol_hash, g_strdup (protocol), old);
-}
-
-static GNOME_Evolution_ShellView
-retrieve_shell_view_interface (BonoboControl *control)
-{
- Bonobo_ControlFrame control_frame;
- GNOME_Evolution_ShellView shell_view_interface;
- CORBA_Environment ev;
-
- control_frame = bonobo_control_get_control_frame (control, NULL);
-
- if (control_frame == NULL)
- return CORBA_OBJECT_NIL;
-
- CORBA_exception_init (&ev);
- shell_view_interface = Bonobo_Unknown_queryInterface (control_frame,
- "IDL:GNOME/Evolution/ShellView:1.0",
- &ev);
-
- if (BONOBO_EX (&ev))
- shell_view_interface = CORBA_OBJECT_NIL;
-
- CORBA_exception_free (&ev);
-
- return shell_view_interface;
-}
-
-void
-e_summary_change_current_view (ESummary *summary,
- const char *uri)
-{
- GNOME_Evolution_ShellView svi;
- CORBA_Environment ev;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- svi = retrieve_shell_view_interface (summary->priv->control);
- if (svi == CORBA_OBJECT_NIL)
- return;
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_ShellView_changeCurrentView (svi, uri, &ev);
- CORBA_exception_free (&ev);
-
- bonobo_object_release_unref (svi, NULL);
-}
-
-void
-e_summary_set_message (ESummary *summary,
- const char *message,
- gboolean busy)
-{
- GNOME_Evolution_ShellView svi;
- CORBA_Environment ev;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- svi = retrieve_shell_view_interface (summary->priv->control);
- if (svi == CORBA_OBJECT_NIL)
- return;
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_ShellView_setMessage (svi, message ? message : "", busy, &ev);
- CORBA_exception_free (&ev);
-
- bonobo_object_release_unref (svi, NULL);
-}
-
-void
-e_summary_unset_message (ESummary *summary)
-{
- GNOME_Evolution_ShellView svi;
- CORBA_Environment ev;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- svi = retrieve_shell_view_interface (summary->priv->control);
- if (svi == CORBA_OBJECT_NIL)
- return;
-
- CORBA_exception_init (&ev);
- GNOME_Evolution_ShellView_unsetMessage (svi, &ev);
- CORBA_exception_free (&ev);
-
- bonobo_object_release_unref (svi, NULL);
-}
-
-void
-e_summary_reconfigure (ESummary *summary)
-{
- if (summary->rdf != NULL) {
- e_summary_rdf_reconfigure (summary);
- }
-
- if (summary->weather != NULL) {
- e_summary_weather_reconfigure (summary);
- }
-
- if (summary->calendar != NULL) {
- e_summary_calendar_reconfigure (summary);
- }
-
- if (summary->tasks != NULL) {
- e_summary_tasks_reconfigure (summary);
- }
-
- e_summary_draw (summary);
-}
-
-void
-e_summary_reconfigure_all (void)
-{
- GList *p;
-
- /* This is here, because it only needs to be done once for all summaries */
- e_summary_mail_reconfigure ();
-
- for (p = all_summaries; p; p = p->next) {
- e_summary_reconfigure (E_SUMMARY (p->data));
- }
-}
-
-static gint
-e_summary_reload_timeout (gpointer closure)
-{
- ESummary *summary = closure;
-
- if (summary->rdf != NULL)
- e_summary_rdf_update (summary);
-
- if (summary->weather != NULL)
- e_summary_weather_update (summary);
-
- if (summary->calendar != NULL)
- e_summary_calendar_reconfigure (summary);
-
- if (summary->tasks != NULL)
- e_summary_tasks_reconfigure (summary);
-
- summary->priv->pending_reload_tag = 0;
-
- return FALSE;
-}
-
-void
-e_summary_reload (BonoboUIComponent *component,
- gpointer userdata,
- const char *cname)
-{
- ESummary *summary = userdata;
-
- /*
- This is an evil hack to work around a bug in gnome-vfs:
- gnome-vfs seems to not properly lock partially-constructed
- objects, so if you gnome_vfs_async_open and then immediately
- gnome_vfs_async_cancel, it is possible to start to destroy
- an object before it is totally constructed. Hilarity ensures.
-
- This is an evil and stupid hack, but it slows down our reload
- requests enough the gnome-vfs should be able to keep up. And
- given that these are not instantaneous operations to begin
- with, the users should be none the wiser. -JT
- */
-
- if (summary->priv->pending_reload_tag) {
- gtk_timeout_remove (summary->priv->pending_reload_tag);
- }
-
- summary->priv->pending_reload_tag =
- gtk_timeout_add (80, e_summary_reload_timeout, summary);
-}
-
-int
-e_summary_count_connections (ESummary *summary)
-{
- GList *p;
- int count = 0;
-
- g_return_val_if_fail (IS_E_SUMMARY (summary), 0);
-
- for (p = summary->priv->connections; p; p = p->next) {
- ESummaryConnection *c;
-
- c = p->data;
- count += c->count (summary, c->closure);
- }
-
- return count;
-}
-
-GList *
-e_summary_add_connections (ESummary *summary)
-{
- GList *p;
- GList *connections = NULL;
-
- g_return_val_if_fail (IS_E_SUMMARY (summary), NULL);
-
- for (p = summary->priv->connections; p; p = p->next) {
- ESummaryConnection *c;
- GList *r;
-
- c = p->data;
- r = c->add (summary, c->closure);
-
- connections = g_list_concat (connections, r);
- }
-
- return connections;
-}
-
-void
-e_summary_set_online (ESummary *summary,
- GNOME_Evolution_OfflineProgressListener progress,
- gboolean online,
- ESummaryOnlineCallback callback,
- void *closure)
-{
- GList *p;
-
- g_return_if_fail (IS_E_SUMMARY (summary));
-
- for (p = summary->priv->connections; p; p = p->next) {
- ESummaryConnection *c;
-
- c = p->data;
- c->callback = callback;
- c->callback_closure = closure;
-
- c->set_online (summary, progress, online, c->closure);
-
- if (callback != NULL)
- callback (summary, closure);
- }
-}
-
-void
-e_summary_add_online_connection (ESummary *summary,
- ESummaryConnection *connection)
-{
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
- g_return_if_fail (connection != NULL);
-
- summary->priv->connections = g_list_prepend (summary->priv->connections,
- connection);
-}
-
-void
-e_summary_remove_online_connection (ESummary *summary,
- ESummaryConnection *connection)
-{
- GList *p;
-
- g_return_if_fail (summary != NULL);
- g_return_if_fail (IS_E_SUMMARY (summary));
- g_return_if_fail (connection != NULL);
-
- p = g_list_find (summary->priv->connections, connection);
- g_return_if_fail (p != NULL);
-
- summary->priv->connections = g_list_remove_link (summary->priv->connections, p);
- g_list_free (p);
-}
diff --git a/my-evolution/e-summary.h b/my-evolution/e-summary.h
deleted file mode 100644
index 05bc6fb9bb..0000000000
--- a/my-evolution/e-summary.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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
- */
-
-#ifndef _E_SUMMARY_H__
-#define _E_SUMMARY_H__
-
-#include <gtk/gtkvbox.h>
-#include <bonobo/bonobo-ui-component.h>
-#include <bonobo/bonobo-control.h>
-#include "e-summary-type.h"
-#include "e-summary-mail.h"
-#include "e-summary-calendar.h"
-#include "e-summary-rdf.h"
-#include "e-summary-weather.h"
-#include "e-summary-tasks.h"
-
-#include <libical/ical.h>
-
-#include <Evolution.h>
-
-#define E_SUMMARY_TYPE (e_summary_get_type ())
-#define E_SUMMARY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_SUMMARY_TYPE, ESummary))
-#define E_SUMMARY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_SUMMARY_TYPE, ESummaryClass))
-#define IS_E_SUMMARY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_SUMMARY_TYPE))
-#define IS_E_SUMMARY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), E_SUMMARY_TYPE))
-
-typedef struct _ESummaryPrivate ESummaryPrivate;
-typedef struct _ESummaryClass ESummaryClass;
-typedef struct _ESummaryPrefsFolder ESummaryPrefsFolder;
-typedef struct _ESummaryPrefs ESummaryPrefs;
-typedef struct _ESummaryConnection ESummaryConnection;
-typedef struct _ESummaryConnectionData ESummaryConnectionData;
-
-typedef void (* ESummaryProtocolListener) (ESummary *summary,
- const char *uri,
- void *closure);
-typedef int (* ESummaryConnectionCount) (ESummary *summary,
- void *closure);
-typedef GList *(* ESummaryConnectionAdd) (ESummary *summary,
- void *closure);
-typedef void (* ESummaryConnectionSetOnline) (ESummary *summary,
- GNOME_Evolution_OfflineProgressListener progress,
- gboolean online,
- void *closure);
-typedef void (*ESummaryOnlineCallback) (ESummary *summary,
- void *closure);
-
-struct _ESummaryConnection {
- ESummaryConnectionCount count;
- ESummaryConnectionAdd add;
- ESummaryConnectionSetOnline set_online;
- ESummaryOnlineCallback callback;
-
- void *closure;
- void *callback_closure;
-};
-
-struct _ESummaryConnectionData {
- char *hostname;
- char *type;
-};
-
-struct _ESummaryPrefsFolder {
- char *physical_uri;
- char *evolution_uri;
-};
-
-struct _ESummaryPrefs {
-
- /* Mail */
- GSList *display_folders; /* List of ESummaryPrefsFolder */
- gboolean show_full_path;
-
- /* RDF */
- GSList *rdf_urls;
- int rdf_refresh_time;
- int limit;
-
- /* Weather */
- GSList *stations;
- ESummaryWeatherUnits units;
- int weather_refresh_time;
-
- /* Schedule */
- ESummaryCalendarDays days;
- ESummaryCalendarNumTasks show_tasks;
-};
-
-struct _ESummary {
- GtkVBox parent;
-
- ESummaryPrefs *preferences;
-
- ESummaryMail *mail;
- ESummaryCalendar *calendar;
- ESummaryRDF *rdf;
- ESummaryWeather *weather;
- ESummaryTasks *tasks;
-
- ESummaryPrivate *priv;
-
- gboolean online;
-
- char *timezone;
- icaltimezone *tz;
-};
-
-struct _ESummaryClass {
- GtkVBoxClass parent_class;
-};
-
-
-GtkType e_summary_get_type (void);
-GtkWidget *e_summary_new (ESummaryPrefs *prefs);
-
-BonoboControl *e_summary_get_control (ESummary *summary);
-void e_summary_set_control (ESummary *summary,
- BonoboControl *control);
-
-void e_summary_print (BonoboUIComponent *component,
- gpointer user_data,
- const char *cname);
-void e_summary_reload (BonoboUIComponent *component,
- gpointer user_data,
- const char *cname);
-void e_summary_draw (ESummary *summary);
-void e_summary_redraw_all (void);
-
-void e_summary_change_current_view (ESummary *summary,
- const char *uri);
-
-void e_summary_set_message (ESummary *summary,
- const char *message,
- gboolean busy);
-void e_summary_unset_message (ESummary *summary);
-
-void e_summary_add_protocol_listener (ESummary *summary,
- const char *protocol,
- ESummaryProtocolListener listener,
- void *closure);
-
-void e_summary_reconfigure (ESummary *summary);
-void e_summary_reconfigure_all (void);
-
-int e_summary_count_connections (ESummary *summary);
-GList *e_summary_add_connections (ESummary *summary);
-void e_summary_set_online (ESummary *summary,
- GNOME_Evolution_OfflineProgressListener listener,
- gboolean online,
- ESummaryOnlineCallback callback,
- void *closure);
-void e_summary_add_online_connection (ESummary *summary,
- ESummaryConnection *connection);
-void e_summary_remove_online_connection (ESummary *summary,
- ESummaryConnection *connection);
-
-void e_summary_freeze (ESummary *summary);
-void e_summary_thaw (ESummary *summary);
-#endif
diff --git a/my-evolution/metar.c b/my-evolution/metar.c
deleted file mode 100644
index c49d651954..0000000000
--- a/my-evolution/metar.c
+++ /dev/null
@@ -1,1017 +0,0 @@
-/*
- * metar.c: Metar decoding routines.
- *
- * Originally written by Papadimitriou Spiros <spapadim+@cs.cmu.ed>
- */
-
-#include <config.h>
-#include <glib.h>
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <regex.h>
-#include <math.h>
-
-#include <libgnome/gnome-i18n.h>
-
-#include <string.h>
-
-#include "e-summary.h"
-#include "weather.h"
-
-#include "metar.h"
-
-static regex_t metar_re[RE_NUM];
-
-/* Unit conversions and names */
-
-#define TEMP_F_TO_C(f) (((f) - 32.0) * 0.555556)
-#define TEMP_C_TO_F(c) (((c) * 1.8) + 32.0)
-#define TEMP_UNIT_STR(units) (((units) == UNITS_IMPERIAL) ? _(" F") : _(" C"))
-
-#define WINDSPEED_KNOTS_TO_KPH(knots) ((knots) * 1.851965)
-#define WINDSPEED_KPH_TO_KNOTS(kph) ((kph) * 0.539967)
-#define WINDSPEED_UNIT_STR(units) (((units) == UNITS_IMPERIAL) ? _("knots") : _("kph"))
-
-#define PRESSURE_INCH_TO_MM(inch) ((inch) * 25.4)
-#define PRESSURE_MM_TO_INCH(mm) ((mm) * 0.03937)
-#define PRESSURE_MBAR_TO_INCH(mbar) ((mbar) * 0.02963742)
-#define PRESSURE_UNIT_STR(units) (((units) == UNITS_IMPERIAL) ? _("inHg") : _("mmHg"))
-#define VISIBILITY_SM_TO_KM(sm) ((sm) * 1.609344)
-#define VISIBILITY_KM_TO_SM(km) ((km) * 0.621371)
-#define VISIBILITY_UNIT_STR(units) (((units) == UNITS_IMPERIAL) ? _("miles") : _("kilometers"))
-
-static const char *sky_str[] = {
- N_("Clear sky"),
- N_("Broken clouds"),
- N_("Scattered clouds"),
- N_("Few clouds"),
- N_("Overcast")
-};
-
-const char *
-weather_sky_string (Weather *w)
-{
- if (w->sky < 0 ||
- w->sky >= (sizeof (sky_str) / sizeof (char *))) {
- return _("Invalid");
- }
-
- return _(sky_str[(int)w->sky]);
-}
-
-static const char *wind_direction_str[] = {
- N_("Variable"),
- N_("North"), N_("North - NorthEast"), N_("Northeast"), N_("East - NorthEast"),
- N_("East"), N_("East - Southeast"), N_("Southeast"), N_("South - Southeast"),
- N_("South"), N_("South - Southwest"), N_("Southwest"), N_("West - Southwest"),
- N_("West"), N_("West - Northwest"), N_("Northwest"), N_("North - Northwest")};
-
-const char *
-weather_wind_direction_string (Weather *w)
-{
- if (w->wind < 0 ||
- w->wind >= (sizeof (wind_direction_str) / sizeof (char *))) {
- return _("Invalid");
- }
-
- return _(wind_direction_str[(int)w->wind]);
-}
-
-/*
- * Even though tedious, I switched to a 2D array for weather condition
- * strings, in order to facilitate internationalization, esp. for languages
- * with genders.
- *
- * I tried to come up with logical names for most phenomena, but I'm no
- * meteorologist, so there will undoubtedly be some stupid mistakes.
- * However, combinations that did not seem plausible (eg. I cannot imagine
- * what a "light tornado" may be like ;-) were filled in with "??". If this
- * ever comes up in the weather conditions field, let me know...
- */
-
-/*
- * Note, magic numbers, when you change the size here, make sure to change
- * the below function so that new values are recognized
- */
-static const gchar *conditions_str[24][13] = {
-/* NONE
- VICINITY
- LIGHT
- MODERATE
- HEAVY
- SHALLOW
- PATCHES
- PARTIAL
- THUNDERSTORM
- BLOWING
- SHOWERS
- DRIFTING
- FREEZING
-*/
-/* NONE */ {
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
-},
-/* DRIZZLE */ {
- N_("Drizzle"),
- N_("Drizzle in the vicinity"),
- N_("Light drizzle"),
- N_("Moderate drizzle"),
- N_("Heavy drizzle"),
- N_("Shallow drizzle"),
- N_("Patches of drizzle"),
- N_("Partial drizzle"),
- N_("Thunderstorm"),
- N_("Windy drizzle"),
- N_("Showers"),
- N_("Drifting drizzle"),
- N_("Freezing drizzle")
-},
-/* RAIN */ {
- N_("Rain"),
- N_("Rain in the vicinity"),
- N_("Light rain"),
- N_("Moderate rain"),
- N_("Heavy rain"),
- N_("Shallow rain"),
- N_("Patches of rain"),
- N_("Partial rainfall"),
- N_("Thunderstorm"),
- N_("Blowing rainfall"),
- N_("Rain showers"),
- N_("Drifting rain"),
- N_("Freezing rain")
-},
-/* SNOW */ {
- N_("Snow"),
- N_("Snow in the vicinity"),
- N_("Light snow"),
- N_("Moderate snow"),
- N_("Heavy snow"),
- N_("Shallow snow"),
- N_("Patches of snow"),
- N_("Partial snowfall"),
- N_("Snowstorm"),
- N_("Blowing snowfall"),
- N_("Snow showers"),
- N_("Drifting snow"),
- N_("Freezing snow")
-},
-/* SNOW_GRAINS */ {
- N_("Snow grains"),
- N_("Snow grains in the vicinity"),
- N_("Light snow grains"),
- N_("Moderate snow grains"),
- N_("Heavy snow grains"),
- N_("Shallow snow grains"),
- N_("Patches of snow grains"),
- N_("Partial snow grains"),
- N_("Snowstorm"),
- N_("Blowing snow grains"),
- N_("Snow grain showers"),
- N_("Drifting snow grains"),
- N_("Freezing snow grains")
-},
-/* ICE_CRYSTALS */ {
- N_("Ice crystals"),
- N_("Ice crystals in the vicinity"),
- N_("Few ice crystals"),
- N_("Moderate ice crystals"),
- N_("Heavy ice crystals"),
- "??",
- N_("Patches of ice crystals"),
- N_("Partial ice crystals"),
- N_("Ice crystal storm"),
- N_("Blowing ice crystals"),
- N_("Showers of ice crystals"),
- N_("Drifting ice crystals"),
- N_("Freezing ice crystals")
-},
-/* ICE_PELLETS */ {
- N_("Ice pellets"),
- N_("Ice pellets in the vicinity"),
- N_("Few ice pellets"),
- N_("Moderate ice pellets"),
- N_("Heavy ice pellets"),
- N_("Shallow ice pellets"),
- N_("Patches of ice pellets"),
- N_("Partial ice pellets"),
- N_("Ice pellet storm"),
- N_("Blowing ice pellets"),
- N_("Showers of ice pellets"),
- N_("Drifting ice pellets"),
- N_("Freezing ice pellets")
-},
-/* HAIL */ {
- N_("Hail"),
- N_("Hail in the vicinity"),
- N_("Light hail"),
- N_("Moderate hail"),
- N_("Heavy hail"),
- N_("Shallow hail"),
- N_("Patches of hail"),
- N_("Partial hail"),
- N_("Hailstorm"),
- N_("Blowing hail"),
- N_("Hail showers"),
- N_("Drifting hail"),
- N_("Freezing hail")
-},
-/* SMALL_HAIL */ {
- N_("Small hail"),
- N_("Small hail in the vicinity"),
- N_("Light hail"),
- N_("Moderate small hail"),
- N_("Heavy small hail"),
- N_("Shallow small hail"),
- N_("Patches of small hail"),
- N_("Partial small hail"),
- N_("Small hailstorm"),
- N_("Blowing small hail"),
- N_("Showers of small hail"),
- N_("Drifting small hail"),
- N_("Freezing small hail")
-},
-/* PRECIPITATION */ {
- N_("Unknown precipitation"),
- N_("Precipitation in the vicinity"),
- N_("Light precipitation"),
- N_("Moderate precipitation"),
- N_("Heavy precipitation"),
- N_("Shallow precipitation"),
- N_("Patches of precipitation"),
- N_("Partial precipitation"),
- N_("Unknown thunderstorm"),
- N_("Blowing precipitation"),
- N_("Showers, type unknown"),
- N_("Drifting precipitation"),
- N_("Freezing precipitation")
-},
-/* MIST */ {
- N_("Mist"),
- N_("Mist in the vicinity"),
- N_("Light mist"),
- N_("Moderate mist"),
- N_("Thick mist"),
- N_("Shallow mist"),
- N_("Patches of mist"),
- N_("Partial mist"),
- "??",
- N_("Mist with wind"),
- "??",
- N_("Drifting mist"),
- N_("Freezing mist")
-},
-/* FOG */ {
- N_("Fog"),
- N_("Fog in the vicinity"),
- N_("Light fog"),
- N_("Moderate fog"),
- N_("Thick fog"),
- N_("Shallow fog"),
- N_("Patches of fog"),
- N_("Partial fog"),
- "??",
- N_("Fog with wind"),
- "??",
- N_("Drifting fog"),
- N_("Freezing fog")
-},
-/* SMOKE */ {
- N_("Smoke"),
- N_("Smoke in the vicinity"),
- N_("Thin smoke"),
- N_("Moderate smoke"),
- N_("Thick smoke"),
- N_("Shallow smoke"),
- N_("Patches of smoke"),
- N_("Partial smoke"),
- N_("Thunderous smoke"),
- N_("Smoke with wind"),
- "??",
- N_("Drifting smoke"),
- "??"
-},
-/* VOLCANIC_ASH */ {
- N_("Volcanic ash"),
- N_("Volcanic ash in the vicinity"),
- "??",
- N_("Moderate volcanic ash"),
- N_("Thick volcanic ash"),
- N_("Shallow volcanic ash"),
- N_("Patches of volcanic ash"),
- N_("Partial volcanic ash"),
- N_("Thunderous volcanic ash"),
- N_("Blowing volcanic ash"),
- N_("Showers of volcanic ash"),
- N_("Drifting volcanic ash"),
- N_("Freezing volcanic ash")
-},
-/* SAND */ {
- N_("Sand"),
- N_("Sand in the vicinity"),
- N_("Light sand"),
- N_("Moderate sand"),
- N_("Heavy sand"),
- "??",
- N_("Patches of sand"),
- N_("Partial sand"),
- "??",
- N_("Blowing sand"),
- "",
- N_("Drifting sand"),
- "??"
-},
-/* HAZE */ {
- N_("Haze"),
- N_("Haze in the vicinity"),
- N_("Light haze"),
- N_("Moderate haze"),
- N_("Thick haze"),
- N_("Shallow haze"),
- N_("Patches of haze"),
- N_("Partial haze"),
- "??",
- N_("Haze with wind"),
- "??",
- N_("Drifting haze"),
- N_("Freezing haze")
-},
-/* SPRAY */ {
- N_("Spray"),
- N_("Spray in the vicinity"),
- N_("Light spray"),
- N_("Moderate spray"),
- N_("Heavy spray"),
- N_("Shallow spray"),
- N_("Patches of spray"),
- N_("Partial spray"),
- "??",
- N_("Blowing spray"),
- "??",
- N_("Drifting spray"),
- N_("Freezing spray")
-},
-/* DUST */ {
- N_("Dust"),
- N_("Dust in the vicinity"),
- N_("Light dust"),
- N_("Moderate dust"),
- N_("Heavy dust"),
- "??",
- N_("Patches of dust"),
- N_("Partial dust"),
- "??",
- N_("Blowing dust"),
- "??",
- N_("Drifting dust"),
- "??"
-},
-/* SQUALL */ {
- N_("Squall"),
- N_("Squall in the vicinity"),
- N_("Light squall"),
- N_("Moderate squall"),
- N_("Heavy squall"),
- "??",
- "??",
- N_("Partial squall"),
- N_("Thunderous squall"),
- N_("Blowing squall"),
- "??",
- N_("Drifting squall"),
- N_("Freezing squall")
-},
-/* SANDSTORM */ {
- N_("Sandstorm"),
- N_("Sandstorm in the vicinity"),
- N_("Light standstorm"),
- N_("Moderate sandstorm"),
- N_("Heavy sandstorm"),
- N_("Shallow sandstorm"),
- "??",
- N_("Partial sandstorm"),
- N_("Thunderous sandstorm"),
- N_("Blowing sandstorm"),
- "??",
- N_("Drifting sandstorm"),
- N_("Freezing sandstorm")
-},
-/* DUSTSTORM */ {
- N_("Duststorm"),
- N_("Duststorm in the vicinity"),
- N_("Light duststorm"),
- N_("Moderate duststorm"),
- N_("Heavy duststorm"),
- N_("Shallow duststorm"),
- "??",
- N_("Partial duststorm"),
- N_("Thunderous duststorm"),
- N_("Blowing duststorm"),
- "??",
- N_("Drifting duststorm"),
- N_("Freezing duststorm")
-},
-/* FUNNEL_CLOUD */ {
- N_("Funnel cloud"),
- N_("Funnel cloud in the vicinity"),
- N_("Light funnel cloud"),
- N_("Moderate funnel cloud"),
- N_("Thick funnel cloud"),
- N_("Shallow funnel cloud"),
- N_("Patches of funnel clouds"),
- N_("Partial funnel clouds"),
- "??",
- N_("Funnel cloud w/ wind"),
- "??",
- N_("Drifting funnel cloud"),
- "??"
-},
-/* TORNADO */ {
- N_("Tornado"),
- N_("Tornado in the vicinity"),
- "??",
- N_("Moderate tornado"),
- N_("Raging tornado"),
- "??",
- "??",
- N_("Partial tornado"),
- N_("Thunderous tornado"),
- N_("Tornado"),
- "??",
- N_("Drifting tornado"),
- N_("Freezing tornado")
-},
-/* DUST_WHIRLS */ {
- N_("Dust whirls"),
- N_("Dust whirls in the vicinity"),
- N_("Light dust whirls"),
- N_("Moderate dust whirls"),
- N_("Heavy dust whirls"),
- N_("Shallow dust whirls"),
- N_("Patches of dust whirls"),
- N_("Partial dust whirls"),
- "??",
- N_("Blowing dust whirls"),
- "??",
- N_("Drifting dust whirls"),
- "??"
-}
-};
-
-const char *
-weather_conditions_string (Weather *w)
-{
- if (!w->cond.significant) {
- return " ";
- } else {
- if (w->cond.phenomenon >= 0 &&
- w->cond.phenomenon < 24 &&
- w->cond.qualifier >= 0 &&
- w->cond.qualifier < 13) {
- return _(conditions_str[(int)w->cond.phenomenon][(int)w->cond.qualifier]);
- } else {
- return _("Invalid");
- }
- }
-}
-
-char *
-weather_temp_string (Weather *w)
-{
- char *temp;
- ESummaryWeatherUnits units;
-
- if (w->summary->preferences == NULL) {
- units = UNITS_METRIC;
- } else {
- units = w->summary->preferences->units;
- }
-
- temp = g_strdup_printf ("%.1f%s", w->temp, TEMP_UNIT_STR (units));
- return temp;
-}
-
-void
-metar_init_re (void)
-{
- static gboolean initialized = FALSE;
- if (initialized)
- return;
- initialized = TRUE;
-
- regcomp(&metar_re[TIME_RE], TIME_RE_STR, REG_EXTENDED);
- regcomp(&metar_re[WIND_RE], WIND_RE_STR, REG_EXTENDED);
- regcomp(&metar_re[VIS_RE], VIS_RE_STR, REG_EXTENDED);
- regcomp(&metar_re[CLOUD_RE], CLOUD_RE_STR, REG_EXTENDED);
- regcomp(&metar_re[TEMP_RE], TEMP_RE_STR, REG_EXTENDED);
- regcomp(&metar_re[PRES_RE], PRES_RE_STR, REG_EXTENDED);
- regcomp(&metar_re[COND_RE], COND_RE_STR, REG_EXTENDED);
-}
-
-static inline gint
-days_in_month (gint month,
- gint year)
-{
- if (month == 1)
- return ((year % 4) == 0) ? 29 : 28;
- else if (((month <= 6) && (month % 2 == 0)) || ((month >=7) && (month % 2 != 0)))
- return 31;
- else
- return 30;
-}
-
-/* FIX - there *must* be a simpler, less stupid way to do this!... */
-static time_t
-make_time (gint date,
- gint hour,
- gint min)
-{
- struct tm *tm;
- struct tm tms;
- time_t now;
- gint loc_mday, loc_hour, gm_mday, gm_hour;
- gint hour_diff; /* local time = UTC - hour_diff */
- gint is_dst;
-
- now = time(NULL);
-
- tm = gmtime(&now);
- gm_mday = tm->tm_mday;
- gm_hour = tm->tm_hour;
- memcpy(&tms, tm, sizeof(struct tm));
-
- tm = localtime(&now);
- loc_mday = tm->tm_mday;
- loc_hour = tm->tm_hour;
- is_dst = tm->tm_isdst;
-
- /* Estimate timezone */
- if (gm_mday == loc_mday)
- hour_diff = gm_hour - loc_hour;
- else
- if ((gm_mday == loc_mday + 1) || ((gm_mday == 1) && (loc_mday >= 27)))
- hour_diff = gm_hour + (24 - loc_hour);
- else
- hour_diff = -((24 - gm_hour) + loc_hour);
-
- /* Make time */
- tms.tm_min = min;
- tms.tm_sec = 0;
- tms.tm_hour = hour - hour_diff;
- tms.tm_mday = date;
- tms.tm_isdst = is_dst;
- if (tms.tm_hour < 0) {
- tms.tm_hour += 24;
- --tms.tm_mday;
- if (tms.tm_mday < 1) {
- --tms.tm_mon;
- if (tms.tm_mon < 0) {
- tms.tm_mon = 11;
- --tms.tm_year;
- }
- tms.tm_mday = days_in_month(tms.tm_mon, tms.tm_year + 1900);
- }
- } else if (tms.tm_hour > 23) {
- tms.tm_hour -= 24;
- ++tms.tm_mday;
- if (tms.tm_mday > days_in_month(tms.tm_mon, tms.tm_year + 1900)) {
- ++tms.tm_mon;
- if (tms.tm_mon > 11) {
- tms.tm_mon = 0;
- ++tms.tm_year;
- }
- tms.tm_mday = 1;
- }
- }
-
- return mktime(&tms);
-}
-
-gboolean
-metar_tok_time (char *token,
- Weather *w)
-{
- char sday[3], shr[3], smin[3];
- int day, hour, min;
-
- if (regexec (&metar_re[TIME_RE], token, 0, NULL, 0) == REG_NOMATCH) {
- return FALSE;
- }
-
- strncpy(sday, token, 2);
- sday[2] = 0;
- day = atoi (sday);
-
- strncpy (shr, token + 2, 2);
- shr[2] = 0;
- hour = atoi (shr);
-
- strncpy (smin, token + 4, 2);
- smin[2] = 0;
- min = atoi (smin);
-
- w->update = make_time (day, hour, min);
-
- return TRUE;
-}
-
-#define CONST_DIGITS "0123456789"
-
-gboolean
-metar_tok_wind (gchar *tokp,
- Weather *w)
-{
- char sdir[4], sspd[4], sgust[4];
- int dir, spd, gust = -1;
- char *gustp;
-
- if (regexec(&metar_re[WIND_RE], tokp, 0, NULL, 0) == REG_NOMATCH)
- return FALSE;
-
- strncpy(sdir, tokp, 3);
- sdir[3] = 0;
- dir = (!strcmp(sdir, "VRB")) ? -1 : atoi(sdir);
-
- memset(sspd, 0, sizeof(sspd));
- strncpy(sspd, tokp+3, strspn(tokp+3, CONST_DIGITS));
- spd = atoi(sspd);
-
- gustp = strchr(tokp, 'G');
- if (gustp) {
- memset(sgust, 0, sizeof(sgust));
- strncpy(sgust, gustp+1, strspn(gustp+1, CONST_DIGITS));
- gust = atoi(sgust);
- }
-
- if ((349 <= dir) && (dir <= 11))
- w->wind = WIND_N;
- else if ((12 <= dir) && (dir <= 33))
- w->wind = WIND_NNE;
- else if ((34 <= dir) && (dir <= 56))
- w->wind = WIND_NE;
- else if ((57 <= dir) && (dir <= 78))
- w->wind = WIND_ENE;
- else if ((79 <= dir) && (dir <= 101))
- w->wind = WIND_E;
- else if ((102 <= dir) && (dir <= 123))
- w->wind = WIND_ESE;
- else if ((124 <= dir) && (dir <= 146))
- w->wind = WIND_SE;
- else if ((147 <= dir) && (dir <= 168))
- w->wind = WIND_SSE;
- else if ((169 <= dir) && (dir <= 191))
- w->wind = WIND_S;
- else if ((192 <= dir) && (dir <= 213))
- w->wind = WIND_SSW;
- else if ((214 <= dir) && (dir <= 236))
- w->wind = WIND_SW;
- else if ((247 <= dir) && (dir <= 258))
- w->wind = WIND_WSW;
- else if ((259 <= dir) && (dir <= 281))
- w->wind = WIND_W;
- else if ((282 <= dir) && (dir <= 303))
- w->wind = WIND_WNW;
- else if ((304 <= dir) && (dir <= 326))
- w->wind = WIND_NW;
- else if ((327 <= dir) && (dir <= 348))
- w->wind = WIND_NNW;
-
- w->windspeed = (ESummaryWeatherWindSpeed)spd;
-
- return TRUE;
-}
-
-gboolean
-metar_tok_vis (gchar *tokp,
- Weather *w)
-{
- char *pfrac, *pend;
- char sval[4];
- int val;
-
- if (regexec(&metar_re[VIS_RE], tokp, 0, NULL, 0) == REG_NOMATCH)
- return FALSE;
-
- pfrac = strchr(tokp, '/');
- pend = strstr(tokp, "SM");
- memset(sval, 0, sizeof(sval));
-
- if (pfrac) {
- strncpy(sval, pfrac + 1, pend - pfrac - 1);
- val = atoi(sval);
- w->visibility = (*tokp == 'M') ? 0.001 : (1.0 / ((ESummaryWeatherVisibility)val));
- } else {
- strncpy(sval, tokp, pend - tokp);
- val = atoi(sval);
- w->visibility = (ESummaryWeatherVisibility)val;
- }
-
- return TRUE;
-}
-
-gboolean
-metar_tok_cloud (gchar *tokp,
- Weather *w)
-{
- char stype[4], salt[4];
- int alt = -1;
-
- if (regexec(&metar_re[CLOUD_RE], tokp, 0, NULL, 0) == REG_NOMATCH)
- return FALSE;
-
- strncpy(stype, tokp, 3);
- stype[3] = 0;
- if (strlen(tokp) == 6) {
- strncpy(salt, tokp+3, 3);
- salt[3] = 0;
- alt = atoi(salt); /* Altitude - currently unused */
- }
-
- if (!strcmp(stype, "CLR")) {
- w->sky = SKY_CLEAR;
- } else if (!strcmp(stype, "BKN")) {
- w->sky = SKY_BROKEN;
- } else if (!strcmp(stype, "SCT")) {
- w->sky = SKY_SCATTERED;
- } else if (!strcmp(stype, "FEW")) {
- w->sky = SKY_FEW;
- } else if (!strcmp(stype, "OVC")) {
- w->sky = SKY_OVERCAST;
- }
-
- return TRUE;
-}
-
-gboolean
-metar_tok_pres (gchar *tokp,
- Weather *w)
-{
- if (regexec(&metar_re[PRES_RE], tokp, 0, NULL, 0) == REG_NOMATCH)
- return FALSE;
-
- if (*tokp == 'A') {
- char sintg[3], sfract[3];
- int intg, fract;
-
- strncpy(sintg, tokp+1, 2);
- sintg[2] = 0;
- intg = atoi(sintg);
-
- strncpy(sfract, tokp+3, 2);
- sfract[2] = 0;
- fract = atoi(sfract);
-
- w->pressure = (ESummaryWeatherPressure)intg + (((ESummaryWeatherPressure)fract)/100.0);
- } else { /* *tokp == 'Q' */
- gchar spres[5];
- gint pres;
-
- strncpy(spres, tokp+1, 4);
- spres[4] = 0;
- pres = atoi(spres);
-
- w->pressure = PRESSURE_MBAR_TO_INCH((ESummaryWeatherPressure)pres);
- }
-
- return TRUE;
-}
-
-/* Relative humidity computation - thanks to <Olof.Oberg@modopaper.modogroup.com> */
-
-
-static inline gint
-calc_humidity(gdouble temp,
- gdouble dewp,
- ESummaryWeatherUnits units)
-{
- gdouble esat, esurf;
-
- if (units == UNITS_IMPERIAL) {
- temp = TEMP_F_TO_C(temp);
- dewp = TEMP_F_TO_C(dewp);
- }
-
- esat = 6.11 * pow(10.0, (7.5 * temp) / (237.7 + temp));
- esurf = 6.11 * pow(10.0, (7.5 * dewp) / (237.7 + dewp));
-
- return (gint)((esurf/esat) * 100.0);
-}
-
-gboolean
-metar_tok_temp (gchar *tokp,
- Weather *w)
-{
- ESummaryWeatherUnits units;
- gchar *ptemp, *pdew, *psep;
-
- if (regexec(&metar_re[TEMP_RE], tokp, 0, NULL, 0) == REG_NOMATCH)
- return FALSE;
-
- if (w->summary->preferences == NULL) {
- units = UNITS_METRIC;
- } else {
- units = w->summary->preferences->units;
- }
-
- psep = strchr(tokp, '/');
- *psep = 0;
- ptemp = tokp;
- pdew = psep + 1;
-
- if (units == UNITS_IMPERIAL) {
- w->temp = (*ptemp == 'M') ? TEMP_C_TO_F(-atoi(ptemp+1)) :
- TEMP_C_TO_F(atoi(ptemp));
- w->dew = (*pdew == 'M') ? TEMP_C_TO_F(-atoi(pdew+1)) :
- TEMP_C_TO_F(atoi(pdew));
- } else {
- w->temp = (*ptemp == 'M') ? -atoi(ptemp+1) : atoi(ptemp);
- w->dew = (*pdew == 'M') ? -atoi(pdew+1) : atoi (pdew);
- }
-
- w->humidity = calc_humidity(w->temp, w->dew, units);
- return TRUE;
-}
-
-gboolean
-metar_tok_cond (gchar *tokp,
- Weather *w)
-{
- char squal[3], sphen[4];
- char *pphen;
-
- if (regexec(&metar_re[COND_RE], tokp, 0, NULL, 0) == REG_NOMATCH)
- return FALSE;
-
- if ((strlen(tokp) > 3) && ((*tokp == '+') || (*tokp == '-')))
- ++tokp; /* FIX */
-
- if ((*tokp == '+') || (*tokp == '-'))
- pphen = tokp + 1;
- else if (strlen(tokp) < 4)
- pphen = tokp;
- else
- pphen = tokp + 2;
-
- memset(squal, 0, sizeof(squal));
- strncpy(squal, tokp, pphen - tokp);
- squal[pphen - tokp] = 0;
-
- memset(sphen, 0, sizeof(sphen));
- strncpy(sphen, pphen, sizeof(sphen));
- sphen[sizeof(sphen)-1] = '\0';
-
- /* Defaults */
- w->cond.qualifier = QUALIFIER_NONE;
- w->cond.phenomenon = PHENOMENON_NONE;
- w->cond.significant = FALSE;
-
- if (!strcmp(squal, "")) {
- w->cond.qualifier = QUALIFIER_MODERATE;
- } else if (!strcmp(squal, "-")) {
- w->cond.qualifier = QUALIFIER_LIGHT;
- } else if (!strcmp(squal, "+")) {
- w->cond.qualifier = QUALIFIER_HEAVY;
- } else if (!strcmp(squal, "VC")) {
- w->cond.qualifier = QUALIFIER_VICINITY;
- } else if (!strcmp(squal, "MI")) {
- w->cond.qualifier = QUALIFIER_SHALLOW;
- } else if (!strcmp(squal, "BC")) {
- w->cond.qualifier = QUALIFIER_PATCHES;
- } else if (!strcmp(squal, "PR")) {
- w->cond.qualifier = QUALIFIER_PARTIAL;
- } else if (!strcmp(squal, "TS")) {
- w->cond.qualifier = QUALIFIER_THUNDERSTORM;
- } else if (!strcmp(squal, "BL")) {
- w->cond.qualifier = QUALIFIER_BLOWING;
- } else if (!strcmp(squal, "SH")) {
- w->cond.qualifier = QUALIFIER_SHOWERS;
- } else if (!strcmp(squal, "DR")) {
- w->cond.qualifier = QUALIFIER_DRIFTING;
- } else if (!strcmp(squal, "FZ")) {
- w->cond.qualifier = QUALIFIER_FREEZING;
- } else {
- g_return_val_if_fail(FALSE, FALSE);
- }
-
- if (!strcmp(sphen, "DZ")) {
- w->cond.phenomenon = PHENOMENON_DRIZZLE;
- } else if (!strcmp(sphen, "RA")) {
- w->cond.phenomenon = PHENOMENON_RAIN;
- } else if (!strcmp(sphen, "SN")) {
- w->cond.phenomenon = PHENOMENON_SNOW;
- } else if (!strcmp(sphen, "SG")) {
- w->cond.phenomenon = PHENOMENON_SNOW_GRAINS;
- } else if (!strcmp(sphen, "IC")) {
- w->cond.phenomenon = PHENOMENON_ICE_CRYSTALS;
- } else if (!strcmp(sphen, "PE")) {
- w->cond.phenomenon = PHENOMENON_ICE_PELLETS;
- } else if (!strcmp(sphen, "GR")) {
- w->cond.phenomenon = PHENOMENON_HAIL;
- } else if (!strcmp(sphen, "GS")) {
- w->cond.phenomenon = PHENOMENON_SMALL_HAIL;
- } else if (!strcmp(sphen, "UP")) {
- w->cond.phenomenon = PHENOMENON_UNKNOWN_PRECIPITATION;
- } else if (!strcmp(sphen, "BR")) {
- w->cond.phenomenon = PHENOMENON_MIST;
- } else if (!strcmp(sphen, "FG")) {
- w->cond.phenomenon = PHENOMENON_FOG;
- } else if (!strcmp(sphen, "FU")) {
- w->cond.phenomenon = PHENOMENON_SMOKE;
- } else if (!strcmp(sphen, "VA")) {
- w->cond.phenomenon = PHENOMENON_VOLCANIC_ASH;
- } else if (!strcmp(sphen, "SA")) {
- w->cond.phenomenon = PHENOMENON_SAND;
- } else if (!strcmp(sphen, "HZ")) {
- w->cond.phenomenon = PHENOMENON_HAZE;
- } else if (!strcmp(sphen, "PY")) {
- w->cond.phenomenon = PHENOMENON_SPRAY;
- } else if (!strcmp(sphen, "DU")) {
- w->cond.phenomenon = PHENOMENON_DUST;
- } else if (!strcmp(sphen, "SQ")) {
- w->cond.phenomenon = PHENOMENON_SQUALL;
- } else if (!strcmp(sphen, "SS")) {
- w->cond.phenomenon = PHENOMENON_SANDSTORM;
- } else if (!strcmp(sphen, "DS")) {
- w->cond.phenomenon = PHENOMENON_DUSTSTORM;
- } else if (!strcmp(sphen, "PO")) {
- w->cond.phenomenon = PHENOMENON_DUST_WHIRLS;
- } else if (!strcmp(sphen, "+FC")) {
- w->cond.phenomenon = PHENOMENON_TORNADO;
- } else if (!strcmp(sphen, "FC")) {
- w->cond.phenomenon = PHENOMENON_FUNNEL_CLOUD;
- } else {
- g_return_val_if_fail(FALSE, FALSE);
- }
-
- if ((w->cond.qualifier != QUALIFIER_NONE) || (w->cond.phenomenon != PHENOMENON_NONE))
- w->cond.significant = TRUE;
-
- return TRUE;
-}
-
-const char *
-icon_from_weather (Weather *w)
-{
- ESummaryWeatherConditions cond = w->cond;
- ESummaryWeatherSky sky = w->sky;
-
- switch (cond.phenomenon) {
- case PHENOMENON_DRIZZLE:
- case PHENOMENON_RAIN:
- case PHENOMENON_UNKNOWN_PRECIPITATION:
- case PHENOMENON_HAIL:
- case PHENOMENON_SMALL_HAIL:
- return "myweather-rain.png";
- case PHENOMENON_SNOW:
- case PHENOMENON_SNOW_GRAINS:
- case PHENOMENON_ICE_PELLETS:
- case PHENOMENON_ICE_CRYSTALS:
- return "myweather-snow.png";
- case PHENOMENON_TORNADO:
- case PHENOMENON_SQUALL:
- return "myweather-storm.png";
- case PHENOMENON_MIST:
- case PHENOMENON_FOG:
- case PHENOMENON_SMOKE:
- case PHENOMENON_VOLCANIC_ASH:
- case PHENOMENON_SAND:
- case PHENOMENON_HAZE:
- case PHENOMENON_SPRAY:
- case PHENOMENON_DUST:
- case PHENOMENON_SANDSTORM:
- case PHENOMENON_DUSTSTORM:
- case PHENOMENON_FUNNEL_CLOUD:
- case PHENOMENON_DUST_WHIRLS:
- return "myweather-fog.png";
- default:
- break;
- }
-
- switch (sky) {
- case SKY_CLEAR:
- return "myweather-sun.png";
- case SKY_BROKEN:
- case SKY_SCATTERED:
- case SKY_FEW:
- return "myweather-suncloud.png";
- case SKY_OVERCAST:
- return "myweather-clouds.png";
- default:
- break;
- }
-
- return "es-weather.png";
-}
diff --git a/my-evolution/metar.h b/my-evolution/metar.h
deleted file mode 100644
index 91ec15d2a1..0000000000
--- a/my-evolution/metar.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * metar.h
- */
-
-#ifndef __METAR_H__
-#define __METAR_H__
-
-#define TIME_RE_STR "^([0-9]{6})Z$"
-#define WIND_RE_STR "^(([0-9]{3})|VRB)([0-9]?[0-9]{2})(G[0-9]?[0-9]{2})?KT$"
-#define VIS_RE_STR "^(([0-9]?[0-9])|(M?1/[0-9]?[0-9]))SM$"
-#define CLOUD_RE_STR "^(CLR|BKN|SCT|FEW|OVC)([0-9]{3})?$"
-#define TEMP_RE_STR "^(M?[0-9][0-9])/(M?[0-9][0-9])$"
-#define PRES_RE_STR "^(A|Q)([0-9]{4})$"
-#define COND_RE_STR "^(-|\\+)?(VC|MI|BC|PR|TS|BL|SH|DR|FZ)?(DZ|RA|SN|SG|IC|PE|GR|GS|UP|BR|FG|FU|VA|SA|HZ|PY|DU|SQ|SS|DS|PO|\\+?FC)$"
-
-enum {
- TIME_RE,
- WIND_RE,
- VIS_RE,
- CLOUD_RE,
- TEMP_RE,
- PRES_RE,
- COND_RE,
- RE_NUM
-};
-
-const char *weather_sky_string (Weather *w);
-char *weather_temp_string (Weather *w);
-const char *weather_conditions_string (Weather *w);
-const char *weather_wind_direction_string (Weather *w);
-const char *icon_from_weather (Weather *w);
-
-void metar_init_re (void);
-gboolean metar_tok_time (char *token,
- Weather *w);
-gboolean metar_tok_wind (char *tokp,
- Weather *w);
-gboolean metar_tok_vis (char *tokp,
- Weather *w);
-gboolean metar_tok_cloud (char *tokp,
- Weather *w);
-gboolean metar_tok_pres (char *tokp,
- Weather *w);
-gboolean metar_tok_temp (char *tokp,
- Weather *w);
-gboolean metar_tok_cond (char *tokp,
- Weather *w);
-#endif
diff --git a/my-evolution/my-evolution-html.h b/my-evolution/my-evolution-html.h
deleted file mode 100644
index 2e2300d002..0000000000
--- a/my-evolution/my-evolution-html.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-summary-weather.c
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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.
- *
- * Authors: Jakub Steiner <jimmac@ximian.com>
- * Iain Holmes <iain@ximian.com>
- */
-
-#ifdef NOT_ETTORE
-#define HTML_1 "<html><head></head><body background=\"bcg.png\" "\
-"bgcolor=\"white\" text=\"#000000\" link=\"#314e6c\" alink=\"black\" vlink=\"#314e6c\">"\
-"<img src=\"myevo.png\" alt=\"My Evolution\" width=\"200\" height=\"31\" border=\"0\"><br>"\
-"<img src=\"empty.gif\" alt=\"\" width=\"10\" height=\"20\">"\
-"<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">"\
-"<tbody><tr>"
-#else
-#define HTML_1 "<html><head></head><body background=\"bcg.png\" "\
-"bgcolor=\"white\" text=\"#000000\" link=\"#314e6c\" alink=\"black\" vlink=\"#314e6c\">"\
-"<img src=\"empty.gif\" alt=\"\" width=\"10\" height=\"20\">"\
-"<table border=\"0\" numcols=\"5\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">"\
-"<tbody><tr>"
-#endif
-
-/* Needs a stringified date */
-#define HTML_2 "<td align=\"Right\" colspan=\"5\"><b>%s</b><br> <img src=\"empty.gif\" width=\"1\" height=\"3\"></td>"
-
-#define HTML_3 "</tr><tr><td colspan=\"5\" bgcolor=\"#000000\"><img src=\"empty.gif\" width=\"1\" height=\"1\"></td></tr>"\
-"<tr valign=\"Top\">" \
-"<td width=\"100%\">"\
-
-/* Weather stuff goes here */
-
-/* RDF Stuff goes here */
-
-#define HTML_4 "</td><td>&#160;</td><td width=\"1\" bgcolor=\"#000000\"><img src=\"empty.gif\" width=\"1\" height=\"1\"></td>"\
-"<td width=\"15\" background=\"pattern.png\">&nbsp&nbsp&nbsp</td>"\
-"<td width=\"0\" background=\"pattern.png\">"
-
-/* Mail stuff ici s'il vous plait */
-
-/* And then the calendar stuff */
-
-#ifdef NOT_ETTORE
-#define HTML_5 "<p align=\"Center\"><img src=\"evologo-big.png\" width=\"200\" height=\"216\" alt=\"\"></p><p>"\
-"<img src=\"empty.gif\" alt=\"\" width=\"290\" height=\"1\"></p></td>"\
-"<tr bgcolor=\"#000000\"><td colspan=\"\"><img src=\"empty.gif\" alt=\"\" width=\"10\" height=\"20\"></td></tr>"\
-"</tbody></table></body></html>"
-#else
-#define HTML_5 "<img src=\"empty.gif\" alt=\"\" width=\"290\" height=\"1\"></p></td>"\
-"<tr bgcolor=\"#000000\"><td colspan=\"5\"><img src=\"empty.gif\" alt=\"\" width=\"10\" height=\"1\"></td></tr>"\
-"</tbody></table></body></html>"
-#endif
-
diff --git a/my-evolution/my-evolution.glade b/my-evolution/my-evolution.glade
deleted file mode 100644
index a3ed5f13f1..0000000000
--- a/my-evolution/my-evolution.glade
+++ /dev/null
@@ -1,890 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkWindow" id="window1">
- <property name="title" translatable="yes">window2</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
-
- <child>
- <widget class="GtkNotebook" id="notebook">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_tabs">True</property>
- <property name="show_border">True</property>
- <property name="tab_pos">GTK_POS_TOP</property>
- <property name="scrollable">False</property>
- <property name="enable_popup">False</property>
-
- <child>
- <widget class="GtkVBox" id="vbox3">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="Custom" id="mail-custom">
- <property name="visible">True</property>
- <property name="creation_function">e_summary_preferences_make_mail_table</property>
- <property name="int1">0</property>
- <property name="int2">0</property>
- <property name="last_modification_time">Tue, 29 Jan 2002 15:52:46 GMT</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="checkbutton1">
- <property name="border_width">3</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Show full path for folders</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Mail</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox6">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="Custom" id="rdf-custom">
- <property name="visible">True</property>
- <property name="creation_function">e_summary_preferences_make_rdf_table</property>
- <property name="int1">0</property>
- <property name="int2">0</property>
- <property name="last_modification_time">Tue, 29 Jan 2002 15:53:47 GMT</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame2">
- <property name="border_width">3</property>
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkTable" id="table4">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="n_rows">2</property>
- <property name="n_columns">5</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label25">
- <property name="visible">True</property>
- <property name="label" translatable="yes">R_efresh time (seconds):</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">spinbutton1</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label29">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Max number of items shown:</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">spinbutton4</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="spinbutton1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">False</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">300 300 1e+06 1 10 10</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="spinbutton4">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">False</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1 0 100 1 10 10</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkButton" id="button11">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox6">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-new</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label41">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_New Feed</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="left_attach">3</property>
- <property name="right_attach">5</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkButton" id="delete-button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox7">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image2">
- <property name="visible">True</property>
- <property name="stock">gtk-delete</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label42">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Delete Feed</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="left_attach">3</property>
- <property name="right_attach">5</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">News Feed Settings</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">News Feeds</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox8">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="Custom" id="weather-custom">
- <property name="visible">True</property>
- <property name="creation_function">e_summary_preferences_make_weather_table</property>
- <property name="int1">0</property>
- <property name="int2">0</property>
- <property name="last_modification_time">Tue, 29 Jan 2002 15:54:10 GMT</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame3">
- <property name="border_width">3</property>
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkVBox" id="vbox11">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkHBox" id="hbox4">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label37">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show temperatures in:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="radiobutton7">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">C_elsius</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="radiobutton8">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Fahrenheit</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">radiobutton7</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox5">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label38">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Refresh _time (seconds):</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">spinbutton5</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="spinbutton5">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">False</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">300 300 1e+06 1 10 10</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label30">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Weather Settings</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Weather</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox9">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkFrame" id="frame4">
- <property name="border_width">3</property>
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkVBox" id="vbox10">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label32">
- <property name="visible">True</property>
- <property name="label" translatable="yes">How many days should the calendar display at once?</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">7.45058e-09</property>
- <property name="yalign">0.5</property>
- <property name="xpad">3</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="radiobutton3">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_One day</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="radiobutton4">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Five days</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">radiobutton3</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="radiobutton5">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">One w_eek</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">radiobutton3</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="radiobutton6">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">One mont_h</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">radiobutton3</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label39">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Calendar</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame5">
- <property name="border_width">3</property>
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkHBox" id="hbox3">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkRadioButton" id="radiobutton1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Show _all tasks</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="radiobutton2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Show _today's tasks</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">radiobutton1</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label40">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Tasks </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Schedule</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/my-evolution/weather.h b/my-evolution/weather.h
deleted file mode 100644
index 196b9a8017..0000000000
--- a/my-evolution/weather.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* weather.h
- *
- * Copyright (C) 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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@ximian.com>
- */
-
-#ifndef __WEATHER_H__
-#define __WEATHER_H__
-
-#include "e-summary-weather.h"
-
-#include <libsoup/soup.h>
-
-typedef struct _Weather {
- char *location;
- char *html;
-
- SoupMessage *message;
-
- ESummary *summary;
-
- gboolean valid;
- ESummaryWeatherLocation *loc;
- ESummaryWeatherUnits units;
- ESummaryWeatherUpdate update;
- ESummaryWeatherSky sky;
- ESummaryWeatherConditions cond;
- ESummaryWeatherTemperature temp;
- ESummaryWeatherTemperature dew;
- ESummaryWeatherHumidity humidity;
- ESummaryWeatherWindDir wind;
- ESummaryWeatherWindSpeed windspeed;
- ESummaryWeatherPressure pressure;
- ESummaryWeatherVisibility visibility;
- char *forecast;
-} Weather;
-
-#endif
diff --git a/notes/.cvsignore b/notes/.cvsignore
deleted file mode 100644
index 02b0523973..0000000000
--- a/notes/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-Makefile
-Makefile.in
-.deps
-.libs
diff --git a/notes/Makefile.am b/notes/Makefile.am
deleted file mode 100644
index 37e2a7ea03..0000000000
--- a/notes/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
-noinst_PROGRAMS = notes-test
-
-INCLUDES = \
- -I$(top_builddir)/shell \
- -I$(top_srcdir)/shell \
- -I$(top_srcdir)/widgets/e-text \
- $(BONOBO_HTML_GNOME_CFLAGS) \
- $(EXTRA_GNOME_CFLAGS) \
- -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \
- -DEVOLUTION_ICONSDIR=\""$(iconsdir)"\" \
- -DEVOLUTION_LOCALEDIR=\""$(localedir)"\" \
- -DEVOLUTION_DATADIR=\""$(datadir)"\" \
- -DG_LOG_DOMAIN=\"evolution-notes\"
-
-notes_test_SOURCES = \
- e-bevel-button.c \
- e-bevel-button.h \
- e-bevel-button-util.c \
- e-bevel-button-util.h \
- e-note.c \
- e-note.h \
- test-notes.c
-
-oafdir = $(datadir)/oaf
-oaf_in_files = GNOME_Evolution_Notes.oaf.in
-oaf_DATA = $(oaf_in_files:.oaf.in=.oaf)
-
-@XML_I18N_MERGE_OAF_RULE@
-
-notes_test_LDADD = \
- $(BONOBO_HTML_GNOME_LIBS) \
- $(EXTRA_GNOME_LIBS)
-
-EXTRA_DIST= $(oaf_in_files) $(oaf_DATA)
diff --git a/notes/component-factory.c b/notes/component-factory.c
deleted file mode 100644
index 9b351db7b9..0000000000
--- a/notes/component-factory.c
+++ /dev/null
@@ -1,155 +0,0 @@
-#include <config.h>
-
-#include <gnome.h>
-#include <bonobo.h>
-
-#include "Evolution.h"
-#include "evolution-storage.h"
-
-#include "evolution-shell-component.h"
-
-#include "e-util/e-gui-utils.h"
-
-#define COMPONENT_FACTORY_ID "OAFIID:GNOME_Evolution_Notes_shellComponentFactory"
-
-static const EvolutionShellComponentFolderType folder_types[] = {
- { "notes", "evolution-notes.png", TRUE, NULL, NULL },
- { NULL, NULL }
-};
-
-static void
-new_note_cb (BonoboUIComponent *uih, void *user_data, const char *path)
-{
- g_print ("new note!\n");
-}
-
-static GnomeUIInfo gnome_toolbar [] = {
- GNOMEUIINFO_ITEM_STOCK (N_("New"), N_("Create a new note"), new_note_cb, GNOME_STOCK_PIXMAP_NEW),
- GNOMEUIINFO_END
-};
-
-#ifdef THIS_NEEDS_UPDATING_FOR_NEW_BONOBOS
-
-static void
-control_deactivate (BonoboControl *control, BonoboUIComponent *uih)
-{
- bonobo_ui_handler_dock_remove (uih, "/Toolbar");
-}
-
-static void
-control_activate (BonoboControl *control, BonoboUIComponent *uih)
-{
- Bonobo_UIContainer remote_uih;
- GtkWidget *toolbar, *toolbar_frame;
- BonoboControl *toolbar_control ;
-
- remote_uih = bonobo_control_get_remote_ui_handler (control);
- bonobo_ui_handler_set_container (uih, remote_uih);
- bonobo_object_release_unref (remote_uih, NULL);
-
- toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL,
- GTK_TOOLBAR_BOTH);
-
- gnome_app_fill_toolbar_with_data (GTK_TOOLBAR (toolbar),
- gnome_toolbar,
- NULL, NULL);
-
- toolbar_frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (toolbar_frame), GTK_SHADOW_OUT);
- gtk_container_add (GTK_CONTAINER (toolbar_frame), toolbar);
- gtk_widget_show (toolbar_frame);
-
- gtk_widget_show_all (toolbar_frame);
-
- toolbar_control = bonobo_control_new (toolbar_frame);
- bonobo_ui_handler_dock_add (
- uih, "/Toolbar",
- bonobo_object_corba_objref (BONOBO_OBJECT (toolbar_control)),
- GNOME_DOCK_ITEM_BEH_EXCLUSIVE,
- GNOME_DOCK_TOP,
- 1, 1, 0);
-}
-
-
-static void
-control_activate_cb (BonoboControl *control,
- gboolean activate)
-{
- BonoboUIComponent *uih;
-
- uih = bonobo_control_get_ui_handler (control);
- g_assert (uih);
-
- if (activate)
- control_activate (control, uih);
- else
- control_deactivate (control, uih);
-}
-#endif
-
-static BonoboControl *
-create_view (EvolutionShellComponent *shell_component,
- const char *physical_uri,
- void *closure)
-{
- BonoboControl * control;
-
- control = notes_factory_new_control ();
-
-#ifdef THIS_CODE_IS_TOTALY_DEAD
- g_signal_connect((control), "activate",
- control_activate_cb, NULL);
-#endif
-
-
- return control;
-}
-
-static void
-owner_set_cb (EvolutionShellComponent *shell_component,
- EvolutionShellClient shell_client,
- gpointer user_data)
-{
- g_print ("evolution-notes: Yeeeh! We have an owner!\n"); /* FIXME */
-}
-
-static void
-owner_unset_cb (EvolutionShellComponent *shell_component, gpointer user_data)
-{
- g_print ("No owner anymore\n");
-}
-
-/* The factory function */
-static BonoboObject *
-notes_component_factory (BonoboGenericFactory *factory,
- void *closure)
-{
- EvolutionShellComponent *shell_component;
-
- shell_component = evolution_shell_component_new (folder_types, create_view, NULL);
-
- g_signal_connect((shell_component), "owner_set",
- G_CALLBACK (owner_set_cb), NULL);
- g_signal_connect((shell_component), "owner_unset",
- G_CALLBACK (owner_unset_cb), NULL);
-
- return BONOBO_OBJECT (shell_component);
-}
-
-
-void
-component_factory_init (void)
-{
- static BonoboGenericFactory *factory = NULL;
-
- if (factory != NULL)
- return;
-
- factory = bonobo_generic_factory_new (COMPONENT_FACTORY_ID, notes_component_factory, NULL);
-
- if (factory == NULL) {
- e_notice (NULL, GTK_MESSAGE_ERROR,
- _("Cannot initialize Evolution's notes component."));
- exit (1);
- }
-}
diff --git a/notes/component-factory.h b/notes/component-factory.h
deleted file mode 100644
index 9535ccc4ae..0000000000
--- a/notes/component-factory.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-#ifndef COMPONENT_FACTORY_H
-#define COMPONENT_FACTORY_H
-
-void component_factory_init (void);
-
-#endif
diff --git a/notes/e-bevel-button-util.c b/notes/e-bevel-button-util.c
deleted file mode 100644
index cfa01f71a2..0000000000
--- a/notes/e-bevel-button-util.c
+++ /dev/null
@@ -1,189 +0,0 @@
-#include <gtk/gtk.h>
-#include "e-bevel-button-util.h"
-
-static void rgb_to_hls (gdouble *r, gdouble *g, gdouble *b);
-static void hls_to_rgb (gdouble *h, gdouble *l, gdouble *s);
-
-void
-e_bevel_button_util_shade (GdkColor *a,
- GdkColor *b,
- gdouble k)
-{
- gdouble red;
- gdouble green;
- gdouble blue;
-
- red = (gdouble) a->red / 65535.0;
- green = (gdouble) a->green / 65535.0;
- blue = (gdouble) a->blue / 65535.0;
-
- rgb_to_hls (&red, &green, &blue);
-
- green *= k;
- if (green > 1.0)
- green = 1.0;
- else if (green < 0.0)
- green = 0.0;
-
- blue *= k;
- if (blue > 1.0)
- blue = 1.0;
- else if (blue < 0.0)
- blue = 0.0;
-
- hls_to_rgb (&red, &green, &blue);
-
- b->red = red * 65535.0;
- b->green = green * 65535.0;
- b->blue = blue * 65535.0;
-}
-
-static void
-rgb_to_hls (gdouble *r,
- gdouble *g,
- gdouble *b)
-{
- gdouble min;
- gdouble max;
- gdouble red;
- gdouble green;
- gdouble blue;
- gdouble h, l, s;
- gdouble delta;
-
- red = *r;
- green = *g;
- blue = *b;
-
- if (red > green)
- {
- if (red > blue)
- max = red;
- else
- max = blue;
-
- if (green < blue)
- min = green;
- else
- min = blue;
- }
- else
- {
- if (green > blue)
- max = green;
- else
- max = blue;
-
- if (red < blue)
- min = red;
- else
- min = blue;
- }
-
- l = (max + min) / 2;
- s = 0;
- h = 0;
-
- if (max != min)
- {
- if (l <= 0.5)
- s = (max - min) / (max + min);
- else
- s = (max - min) / (2 - max - min);
-
- delta = max -min;
- if (red == max)
- h = (green - blue) / delta;
- else if (green == max)
- h = 2 + (blue - red) / delta;
- else if (blue == max)
- h = 4 + (red - green) / delta;
-
- h *= 60;
- if (h < 0.0)
- h += 360;
- }
-
- *r = h;
- *g = l;
- *b = s;
-}
-
-static void
-hls_to_rgb (gdouble *h,
- gdouble *l,
- gdouble *s)
-{
- gdouble hue;
- gdouble lightness;
- gdouble saturation;
- gdouble m1, m2;
- gdouble r, g, b;
-
- lightness = *l;
- saturation = *s;
-
- if (lightness <= 0.5)
- m2 = lightness * (1 + saturation);
- else
- m2 = lightness + saturation - lightness * saturation;
- m1 = 2 * lightness - m2;
-
- if (saturation == 0)
- {
- *h = lightness;
- *l = lightness;
- *s = lightness;
- }
- else
- {
- hue = *h + 120;
- while (hue > 360)
- hue -= 360;
- while (hue < 0)
- hue += 360;
-
- if (hue < 60)
- r = m1 + (m2 - m1) * hue / 60;
- else if (hue < 180)
- r = m2;
- else if (hue < 240)
- r = m1 + (m2 - m1) * (240 - hue) / 60;
- else
- r = m1;
-
- hue = *h;
- while (hue > 360)
- hue -= 360;
- while (hue < 0)
- hue += 360;
-
- if (hue < 60)
- g = m1 + (m2 - m1) * hue / 60;
- else if (hue < 180)
- g = m2;
- else if (hue < 240)
- g = m1 + (m2 - m1) * (240 - hue) / 60;
- else
- g = m1;
-
- hue = *h - 120;
- while (hue > 360)
- hue -= 360;
- while (hue < 0)
- hue += 360;
-
- if (hue < 60)
- b = m1 + (m2 - m1) * hue / 60;
- else if (hue < 180)
- b = m2;
- else if (hue < 240)
- b = m1 + (m2 - m1) * (240 - hue) / 60;
- else
- b = m1;
-
- *h = r;
- *l = g;
- *s = b;
- }
-}
diff --git a/notes/e-bevel-button-util.h b/notes/e-bevel-button-util.h
deleted file mode 100644
index 759a9025cc..0000000000
--- a/notes/e-bevel-button-util.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __E_BEVEL_BUTTON_UTIL_H__
-#define __E_BEVEL_BUTTON_UTIL_H__
-
-#define LIGHTNESS_MULT 1.3
-#define DARKNESS_MULT 0.7
-
-void
-e_bevel_button_util_shade (GdkColor *a,
- GdkColor *b,
- gdouble k);
-
-#endif /* __E_BEVEL_BUTTON_UTIL_H__ */
diff --git a/notes/e-bevel-button.c b/notes/e-bevel-button.c
deleted file mode 100644
index 03b0edf23d..0000000000
--- a/notes/e-bevel-button.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-
-#include <config.h>
-#include <gtk/gtkbutton.h>
-
-#include <gal/util/e-util.h>
-
-#include "e-bevel-button.h"
-#include "e-bevel-button-util.h"
-
-#define PARENT_TYPE GTK_TYPE_BUTTON
-
-static GtkButtonClass *parent_class = NULL;
-
-struct _EBevelButtonPrivate {
- GdkColor base_color;
- GdkColor dark_color;
- GdkColor light_color;
- GdkGC *gc;
-};
-
-static void
-e_bevel_button_paint (GtkWidget *widget, GdkRectangle *area)
-{
- EBevelButton *button;
-
- button = E_BEVEL_BUTTON (widget);
-
- if (GTK_WIDGET_DRAWABLE (widget)) {
- gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
- gdk_window_clear_area (widget->window, area->x, area->y, area->width, area->height);
-
- gdk_gc_set_foreground (button->priv->gc, &button->priv->base_color);
- gdk_draw_rectangle (widget->window,
- button->priv->gc,
- TRUE,
- 0, 0,
- widget->allocation.width, widget->allocation.height);
-
- if (GTK_BUTTON (button)->in_button) {
- gdk_gc_set_foreground (button->priv->gc,
- GTK_BUTTON (button)->button_down ?
- &button->priv->dark_color :
- &button->priv->light_color);
- gdk_draw_line (widget->window, button->priv->gc,
- 0, 0, 0, widget->allocation.height - 2);
- gdk_draw_line (widget->window, button->priv->gc,
- 0, 0, widget->allocation.width - 2, 0);
-
- gdk_gc_set_foreground (button->priv->gc,
- GTK_BUTTON (button)->button_down ?
- &button->priv->light_color :
- &button->priv->dark_color);
- gdk_draw_line (widget->window, button->priv->gc,
- widget->allocation.width - 1 , 1,
- widget->allocation.width - 1, widget->allocation.height - 1);
- gdk_draw_line (widget->window, button->priv->gc,
- 1, widget->allocation.height - 1,
- widget->allocation.width - 1, widget->allocation.height - 1);
- }
- }
-}
-
-static gint
-e_bevel_button_expose (GtkWidget *widget, GdkEventExpose *event)
-{
- GtkBin *bin;
- GdkEventExpose child_event;
-
- if (GTK_WIDGET_DRAWABLE (widget)) {
- bin = GTK_BIN (widget);
-
- e_bevel_button_paint (widget, &event->area);
-
- child_event = *event;
- if (bin->child && GTK_WIDGET_NO_WINDOW (bin->child) &&
- gtk_widget_intersect (bin->child, &event->area, &child_event.area))
- gtk_widget_event (bin->child, (GdkEvent*) &child_event);
- }
-
- return FALSE;
-}
-
-static void
-e_bevel_button_draw (GtkWidget *widget, GdkRectangle *area)
-{
- GdkRectangle child_area;
- GdkRectangle tmp_area;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (E_IS_BEVEL_BUTTON (widget));
- g_return_if_fail (area != NULL);
-
- if (GTK_WIDGET_DRAWABLE (widget)) {
- tmp_area = *area;
- tmp_area.x -= GTK_CONTAINER (widget)->border_width;
- tmp_area.y -= GTK_CONTAINER (widget)->border_width;
-
- e_bevel_button_paint (widget, &tmp_area);
-
- if (GTK_BIN (widget)->child && gtk_widget_intersect (GTK_BIN (widget)->child, &tmp_area, &child_area))
- gtk_widget_draw (GTK_BIN (widget)->child, &child_area);
- }
-}
-
-static void
-e_bevel_button_realize (GtkWidget *widget)
-{
- EBevelButton *button = E_BEVEL_BUTTON (widget);
-
- GTK_WIDGET_CLASS (parent_class)->realize (widget);
-
- button->priv->gc = gdk_gc_new (widget->window);
-
- gdk_color_parse ("#d0d888", &button->priv->base_color);
- e_bevel_button_util_shade (&button->priv->base_color,
- &button->priv->light_color,
- LIGHTNESS_MULT);
- e_bevel_button_util_shade (&button->priv->base_color,
- &button->priv->dark_color,
- DARKNESS_MULT);
- gdk_colormap_alloc_color (gdk_rgb_get_cmap (), &button->priv->base_color, FALSE, TRUE);
- gdk_colormap_alloc_color (gdk_rgb_get_cmap (), &button->priv->light_color, FALSE, TRUE);
- gdk_colormap_alloc_color (gdk_rgb_get_cmap (), &button->priv->dark_color, FALSE, TRUE);
-}
-
-static void
-e_bevel_button_class_init (EBevelButtonClass *klass)
-{
- GtkWidgetClass *widget_class;
-
- widget_class = (GtkWidgetClass *)klass;
-
- parent_class = g_type_class_ref(PARENT_TYPE);
-
- widget_class->draw = e_bevel_button_draw;
- widget_class->expose_event = e_bevel_button_expose;
- widget_class->realize = e_bevel_button_realize;
-}
-
-static void
-e_bevel_button_init (EBevelButton *button)
-{
- EBevelButtonPrivate *priv;
-
- GTK_WIDGET_UNSET_FLAGS (button, GTK_CAN_FOCUS);
-
- priv = g_new (EBevelButtonPrivate, 1);
-
- button->priv = priv;
-}
-
-GtkWidget *
-e_bevel_button_new (void)
-{
- EBevelButton *button;
-
- button = gtk_type_new (E_TYPE_BEVEL_BUTTON);
-
- return GTK_WIDGET (button);
-}
-
-E_MAKE_TYPE (e_bevel_button, "EBevelButton", EBevelButton, e_bevel_button_class_init, e_bevel_button_init, PARENT_TYPE);
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/notes/e-bevel-button.h b/notes/e-bevel-button.h
deleted file mode 100644
index e9197c3b63..0000000000
--- a/notes/e-bevel-button.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-#ifndef __E_BEVEL_BUTTON_H__
-#define __E_BEVEL_BUTTON_H__
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gtk/gtkbutton.h>
-
-#define E_TYPE_BEVEL_BUTTON (e_bevel_button_get_type ())
-#define E_BEVEL_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_BEVEL_BUTTON, EBevelButton))
-#define E_BEVEL_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_BEVEL_BUTTON, EBevelButtonClass))
-#define E_IS_BEVEL_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_BEVEL_BUTTON))
-#define E_IS_BEVEL_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), E_TYPE_BEVEL_BUTTON))
-
-typedef struct _EBevelButton EBevelButton;
-typedef struct _EBevelButtonPrivate EBevelButtonPrivate;
-typedef struct _EBevelButtonClass EBevelButtonClass;
-
-struct _EBevelButton {
- GtkButton parent;
-
- EBevelButtonPrivate *priv;
-};
-
-struct _EBevelButtonClass {
- GtkButtonClass parent_class;
-};
-
-GtkType e_bevel_button_get_type (void);
-
-GtkWidget *e_bevel_button_new (void);
-void e_bevel_button_set_base_color (EBevelButton *button, GdkColor *color);
-
-#endif /* __E_BEVEL_BUTTON_H__ */
-
diff --git a/notes/e-note.c b/notes/e-note.c
deleted file mode 100644
index e7d84a8256..0000000000
--- a/notes/e-note.c
+++ /dev/null
@@ -1,382 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-
-#include <config.h>
-#include <gnome.h>
-#include <gdk/gdkx.h>
-
-#include <gal/widgets/e-canvas.h>
-#include <gal/widgets/e-canvas-utils.h>
-#include <gal/util/e-util.h>
-#include <gal/e-text/e-text.h>
-
-#include "e-note.h"
-#include "e-bevel-button.h"
-#include "e-bevel-button-util.h"
-
-#define PARENT_TYPE GTK_TYPE_WINDOW
-
-enum {
- E_NOTE_TEXT_CHANGED,
- E_NOTE_LAST_SIGNAL
-};
-
-static guint e_note_signals [E_NOTE_LAST_SIGNAL] = { 0 };
-
-static GtkWindowClass *parent_class = NULL;
-
-struct _ENotePrivate {
- GtkWidget *canvas;
-
- GnomeCanvasItem *frame;
- GnomeCanvasItem *rect;
-
- GnomeCanvasItem *text_item;
-
- GnomeCanvasItem *move_button;
- GnomeCanvasItem *close_button;
- GnomeCanvasItem *resize_button;
-
- /* Used for moving and resizing */
- gint press_x, press_y;
- gint resize_width, resize_height;
- gboolean in_drag;
-};
-
-static void
-e_note_text_changed (ETextModel *model, gpointer data)
-{
- gtk_signal_emit (GTK_OBJECT (data),
- e_note_signals [E_NOTE_TEXT_CHANGED]);
-}
-
-static gint
-e_note_resize_button_changed (GtkWidget *widget, GdkEventButton *event, gpointer data)
-{
- ENote *note = E_NOTE (data);
-
- if (event->type == GDK_BUTTON_PRESS) {
- note->priv->press_x = event->x_root;
- note->priv->press_y = event->y_root;
-
- gdk_window_get_geometry (GTK_WIDGET (note)->window, NULL, NULL,
- &note->priv->resize_width, &note->priv->resize_height, NULL);
-
- gdk_pointer_grab (widget->window,
- FALSE,
- (GDK_BUTTON1_MOTION_MASK |
- GDK_POINTER_MOTION_HINT_MASK |
- GDK_BUTTON_RELEASE_MASK),
- NULL,
- NULL,
- GDK_CURRENT_TIME);
- note->priv->in_drag = TRUE;
-
- }
- else {
- if (note->priv->in_drag) {
- if (event->window != widget->window)
- return FALSE;
-
- gdk_pointer_ungrab (GDK_CURRENT_TIME);
- note->priv->in_drag = FALSE;
- }
- }
-
- return TRUE;
-}
-
-static gint
-e_note_resize_motion_event (GtkWidget *widget, GdkEventMotion *event, gpointer data)
-{
- GtkWidget *window = GTK_WIDGET (data);
- ENote *note = E_NOTE (data);
- gint new_x, new_y;
- gint width, height;
-
- if (note->priv->in_drag) {
- gdk_window_get_pointer (GDK_ROOT_PARENT (), &new_x, &new_y, NULL);
-
- width = note->priv->resize_width + new_x - note->priv->press_x;
- if (width < 60)
- width = 60;
-
- height = note->priv->resize_height + new_y - note->priv->press_y;
- if (height < 60)
- height = 60;
-
- gdk_window_resize (window->window, width, height);
-
- return TRUE;
- }
-
- return FALSE;
-}
-
-static gint
-e_note_move_button_changed (GtkWidget *widget, GdkEventButton *event, gpointer data)
-{
- ENote *note = E_NOTE (data);
-
- if (event->button != 1)
- return FALSE;
-
- if (event->type == GDK_BUTTON_PRESS) {
- gint root_x, root_y;
-
- gdk_window_get_origin (widget->window, &root_x, &root_y);
- note->priv->press_x = root_x - event->x_root;
- note->priv->press_y = root_y - event->y_root;
-
- gdk_pointer_grab (widget->window,
- FALSE,
- (GDK_BUTTON1_MOTION_MASK |
- GDK_POINTER_MOTION_HINT_MASK |
- GDK_BUTTON_RELEASE_MASK),
- NULL,
- NULL,
- GDK_CURRENT_TIME);
-
- note->priv->in_drag = TRUE;
- }
- else {
- if (note->priv->in_drag) {
- if (event->window != widget->window)
- return FALSE;
-
- gdk_pointer_ungrab (GDK_CURRENT_TIME);
- note->priv->in_drag = FALSE;
- }
- }
-
- return TRUE;
-}
-
-static gint
-e_note_move_motion_event (GtkWidget *widget, GdkEventMotion *event, gpointer data)
-{
- gint new_x, new_y;
- ENote *note = E_NOTE (data);
- GtkWidget *window = GTK_WIDGET (data);
-
- if (note->priv->in_drag) {
- gdk_window_get_pointer (GDK_ROOT_PARENT (), &new_x, &new_y, NULL);
-
- new_x += note->priv->press_x;
- new_y += note->priv->press_y;
-
- gdk_window_move (window->window, new_x, new_y);
- }
-
- return TRUE;
-}
-
-static void
-e_note_canvas_size_allocate (GtkWidget *widget, GtkAllocation *allocation, gpointer data)
-{
- ENote *note;
- gdouble height;
-
- note = E_NOTE (data);
-
- gnome_canvas_item_set (note->priv->text_item,
- "width", (gdouble) allocation->width - 10,
- NULL);
- g_object_get((note->priv->text_item),
- "height", &height,
- NULL);
- height = MAX (height, allocation->height);
- gnome_canvas_set_scroll_region (GNOME_CANVAS (note->priv->canvas), 0, 0,
- allocation->width, height);
- gnome_canvas_item_set (note->priv->frame,
- "x2", (gdouble) allocation->width - 1,
- "y2", (gdouble) allocation->height - 1,
- NULL);
- gnome_canvas_item_set (note->priv->rect,
- "x2", (gdouble) allocation->width - 1,
- "y2", (gdouble) allocation->height - 1,
- NULL);
- gnome_canvas_item_set (note->priv->move_button,
- "width", (gdouble) allocation->width - 29,
- NULL);
- gnome_canvas_item_set (note->priv->resize_button,
- "x", (gdouble) allocation->width - 23,
- "y", (gdouble) allocation->height - 23,
- NULL);
- gnome_canvas_item_set (note->priv->close_button,
- "x", (gdouble) allocation->width - 23,
- NULL);
-}
-
-static void
-e_note_realize (GtkWidget *widget)
-{
- GTK_WIDGET_CLASS (parent_class)->realize (widget);
-
- gdk_window_set_decorations (widget->window, 0);
-}
-
-static void
-e_note_class_init (ENoteClass *klass)
-{
- GtkWidgetClass *widget_class;
- GtkObjectClass *object_class;
-
- object_class = (GtkObjectClass *)klass;
- widget_class = (GtkWidgetClass *)klass;
- parent_class = g_type_class_ref(PARENT_TYPE);
-
- widget_class->realize = e_note_realize;
-
- e_note_signals [E_NOTE_TEXT_CHANGED] =
- gtk_signal_new ("changed",
- GTK_RUN_LAST,
- object_class->type,
- G_STRUCT_OFFSET (ENoteClass, text_changed),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
-
- gtk_object_class_add_signals (object_class, e_note_signals, E_NOTE_LAST_SIGNAL);
-}
-
-static void
-e_note_init (ENote *note)
-{
- ENotePrivate *priv;
- GtkWidget *button;
-
- priv = g_new (ENotePrivate, 1);
-
- note->priv = priv;
-
- gtk_widget_push_visual (gdk_rgb_get_visual ());
- gtk_widget_push_colormap (gdk_rgb_get_cmap ());
-
- priv->canvas = e_canvas_new ();
-
- gtk_widget_pop_visual ();
- gtk_widget_pop_colormap ();
-
- g_signal_connect((priv->canvas), "size_allocate",
- G_CALLBACK (e_note_canvas_size_allocate), note);
- gtk_widget_show (priv->canvas);
- gtk_container_add (GTK_CONTAINER (note), priv->canvas);
-
- priv->rect = gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (priv->canvas)),
- gnome_canvas_rect_get_type (),
- "x1", 0.0,
- "y1", 0.0,
- "x2", 100.0,
- "y2", 100.0,
- "fill_color_rgba", 0xf5ffa0ff,
- NULL);
- priv->frame = gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (priv->canvas)),
- gnome_canvas_rect_get_type (),
- "x1", 0.0,
- "y1", 0.0,
- "x2", 100.0,
- "y2", 100.0,
- "outline_color", "black",
- NULL);
-
- priv->text_item = gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (priv->canvas)),
- e_text_get_type (),
- "text", "",
- "font_gdk", priv->canvas->style->font,
- "fill_color", "black",
- "anchor", GTK_ANCHOR_NW,
- "clip", TRUE,
- "editable", TRUE,
- "line_wrap", TRUE,
- "width", 150.0,
- NULL);
- e_canvas_item_move_absolute(priv->text_item,
- 5.0, 25.0);
-
- g_signal_connect((E_TEXT (priv->text_item)->model), "changed",
- G_CALLBACK (e_note_text_changed), note);
-
- button = e_bevel_button_new ();
- g_signal_connect((button), "button_press_event",
- G_CALLBACK (e_note_move_button_changed), note);
- g_signal_connect((button), "button_release_event",
- G_CALLBACK (e_note_move_button_changed), note);
- g_signal_connect((button), "motion_notify_event",
- G_CALLBACK (e_note_move_motion_event), note);
- gtk_widget_show (button);
- priv->move_button = gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (priv->canvas)),
- gnome_canvas_widget_get_type (),
- "widget", button,
- "x", 3.0,
- "y", 3.0,
- "width", 20.0,
- "height", 20.0,
- NULL);
- button = e_bevel_button_new ();
- gtk_widget_show (button);
- priv->close_button = gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (priv->canvas)),
- gnome_canvas_widget_get_type (),
- "widget", button,
- "x", 3.0,
- "y", 3.0,
- "width", 20.0,
- "height", 20.0,
- NULL);
-
- button = e_bevel_button_new ();
- g_signal_connect((button), "button_press_event",
- G_CALLBACK (e_note_resize_button_changed), note);
- g_signal_connect((button), "button_release_event",
- G_CALLBACK (e_note_resize_button_changed), note);
- g_signal_connect((button), "motion_notify_event",
- G_CALLBACK (e_note_resize_motion_event), note);
- gtk_widget_show (button);
- priv->resize_button = gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (priv->canvas)),
- gnome_canvas_widget_get_type (),
- "widget", button,
- "x", 3.0,
- "y", 3.0,
- "width", 20.0,
- "height", 20.0,
- NULL);
-}
-
-void
-e_note_set_text (ENote *note, gchar *text)
-{
- g_return_if_fail (note != NULL);
- g_return_if_fail (E_IS_NOTE (note));
- g_return_if_fail (text != NULL);
-
- gnome_canvas_item_set (note->priv->text_item,
- "text", text,
- NULL);
-}
-
-gchar *
-e_note_get_text (ENote *note)
-{
- gchar *text;
-
- g_return_val_if_fail (note != NULL, NULL);
- g_return_val_if_fail (E_IS_NOTE (note), NULL);
- g_return_val_if_fail (text != NULL, NULL);
-
- g_object_get((note->priv->text_item),
- "text", &text,
- NULL);
-
- return text;
-}
-
-
-GtkWidget *
-e_note_new (void)
-{
- ENote *note;
-
- note = gtk_type_new (E_TYPE_NOTE);
-
- return GTK_WIDGET (note);
-}
-
-E_MAKE_TYPE (e_note, "ENote", ENote, e_note_class_init, e_note_init, PARENT_TYPE);
diff --git a/notes/e-note.h b/notes/e-note.h
deleted file mode 100644
index 1bf1273d01..0000000000
--- a/notes/e-note.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-
-#ifndef __E_NOTE_H__
-#define __E_NOTE_H__
-
-#include <config.h>
-#include <gnome.h>
-#include "e-bevel-button.h"
-
-#define E_TYPE_NOTE (e_note_get_type ())
-#define E_NOTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_NOTE, ENote))
-#define E_NOTE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_NOTE, ENoteClass))
-#define E_IS_NOTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_NOTE))
-#define E_IS_NOTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), E_TYPE_NOTE))
-
-typedef struct _ENote ENote;
-typedef struct _ENotePrivate ENotePrivate;
-typedef struct _ENoteClass ENoteClass;
-
-struct _ENote {
- GtkWindow parent;
-
- ENotePrivate *priv;
-};
-
-struct _ENoteClass {
- GtkWindowClass parent_class;
-
- void (* text_changed) (ENote *note);
-};
-
-GtkType e_note_get_type (void);
-GtkWidget *e_note_new (void);
-void e_note_set_text (ENote *note, gchar *text);
-gchar *e_note_get_text (ENote *note);
-
-#endif /* __E_NOTE_H__ */
diff --git a/notes/main.c b/notes/main.c
deleted file mode 100644
index 340a09469b..0000000000
--- a/notes/main.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * Author:
- * Anders Carlsson (andersca@gnu.org)
- *
- * (C) 2000 Ximian, Inc.
- */
-
-#include <config.h>
-#include <gnome.h>
-#include <bonobo.h>
-#include <liboaf/liboaf.h>
-
-#include "e-util/e-gui-utils.h"
-#include "component-factory.h"
-
-static void
-init_corba (gint argc, gchar **argv)
-{
- gnome_init_with_popt_table ("evolution-notes-component", VERSION, argc, argv,
- oaf_popt_options, 0, NULL);
- oaf_init (argc, argv);
-}
-
-static void
-init_bonobo (void)
-{
- if (bonobo_init (CORBA_OBJECT_NIL, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL) == FALSE) {
- e_notice (NULL, GTK_MESSAGE_ERROR,
- _("Notes Component: Could not initialize bonobo"));
- exit (1);
- }
-}
-
-gint
-main (gint argc, gchar **argv)
-{
- bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR);
- textdomain (PACKAGE);
-
- init_corba (argc, argv);
- init_bonobo ();
-
- e_setup_base_dir ();
-
- notes_factory_init ();
- component_factory_init ();
-
- bonobo_main ();
-
- return 0;
-}
diff --git a/notes/test-notes.c b/notes/test-notes.c
deleted file mode 100644
index 1114b57e66..0000000000
--- a/notes/test-notes.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-
-#include <config.h>
-#include <gnome.h>
-#include <gdk/gdkx.h>
-
-#include <gal/widgets/e-canvas.h>
-#include <gal/e-text/e-text.h>
-
-#include "e-note.h"
-
-void
-text_changed (GtkWidget *widget, gpointer data)
-{
- g_print ("Text changed!\n");
-}
-
-gint
-main (gint argc, gchar **argv)
-{
- GtkWidget *note;
-
- gnome_init ("NotesTest", "0.0.1", argc, argv);
-
- note = e_note_new ();
- e_note_set_text (E_NOTE (note), "This is a text note widget");
- g_signal_connect((note), "changed",
- G_CALLBACK (text_changed), NULL);
-
- gtk_widget_show (note);
- gtk_main ();
-
- return 0;
-}