Commit d566827e authored by Darin Adler's avatar Darin Adler

reviewed by: John Sullivan <sullivan@eazel.com>

	Did most of the work for bug 5779, separating out the Eazel logos
	so they won't be used by non-Eazel folks making changes to
	Nautilus if they choose to do "non-approved" changes (allowed by
	GPL of course).

	* nautilus.spec.in: Add new logos.
	* configure.in: Add eazel-logos and eazel-logos/throbber.
	* Makefile.am: Add the eazel-logos subdirectory.
	* eazel-logos/Makefile.am: Created.
	* eazel-logos/throbber/Makefile.am: Created.

	* components/services/nautilus-dependent-shared/icons/eazel-logo-right-side-logo.png:
	* icons/About_Image.png:
	* icons/about_background.png:
	* icons/default.xml:
	* icons/druid_header.png:
	* icons/throbber/001.png:
	* icons/throbber/002.png:
	* icons/throbber/003.png:
	* icons/throbber/004.png:
	* icons/throbber/005.png:
	* icons/throbber/006.png:
	* icons/throbber/007.png:
	* icons/throbber/008.png:
	* icons/throbber/009.png:
	* icons/throbber/010.png:
	* icons/throbber/011.png:
	* icons/throbber/012.png:
	* icons/throbber/013.png:
	* icons/throbber/014.png:
	* icons/throbber/015.png:
	* icons/throbber/016.png:
	* icons/throbber/017.png:
	* icons/throbber/018.png:
	* icons/throbber/019.png:
	* icons/throbber/020.png:
	* icons/throbber/021.png:
	* icons/throbber/022.png:
	* icons/throbber/023.png:
	* icons/throbber/024.png:
	* icons/throbber/025.png:
	* icons/throbber/026.png:
	* icons/throbber/027.png:
	* icons/throbber/028.png:
	* icons/throbber/029.png:
	* icons/throbber/030.png:
	* icons/throbber/Makefile.am:
	* icons/throbber/rest.png:
	Updated with non-logo versions.

	Did 90% of the work for bug 6950 (need new report_redirect call in
	addition to report_location_change). While working on that, I also
	moved the deferral of outgoing calls that is done in the Mozilla
	component so that it is done by the NautilusView class instead.

	* libnautilus/nautilus-view-component.idl: Added report_redirect.
	* libnautilus/nautilus-view.h: Added report_redirect.
	* libnautilus/nautilus-view.c: (queue_outgoing_call): Added
	queing for the outgoing side.
	(nautilus_view_initialize): Allocate queue.
	(nautilus_view_destroy): Deallocate queue.
	(str_list_copy): Utility needed here because we can't use
	libnautilus-extensions.
	(list_free_deep_callback): New. Used in queuing code.
	(free_location_plus_callback): New. Used in queueing code.
	(call_open_location_in_this_window),
	(call_open_location_prefer_existing_window),
	(call_open_location_force_new_window),
	(call_report_location_change), (call_report_redirect),
	(call_report_selection_change), (call_report_status),
	(call_report_load_underway), (call_report_load_progress),
	(call_report_load_complete), (call_report_load_failed),
	(call_set_title), (call_go_back): Functions that get queued.
	These have the bulk of the code to do work.
	(nautilus_view_open_location_in_this_window),
	(nautilus_view_open_location_prefer_existing_window),
	(nautilus_view_open_location_force_new_window),
	(nautilus_view_report_location_change),
	(nautilus_view_report_redirect),
	(nautilus_view_report_selection_change),
	(nautilus_view_report_status),
	(nautilus_view_report_load_underway),
	(nautilus_view_report_load_progress),
	(nautilus_view_report_load_complete),
	(nautilus_view_report_load_failed), (nautilus_view_set_title),
	(nautilus_view_go_back): These functions now simply queue the work
	that needs to be done.

	* src/nautilus-view-frame-corba.c: (free_location_plus_callback):
	Add a new field for the "from_location" needed for redirect.
	(report_redirect): The actual function to do the work.
	(impl_Nautilus_ViewFrame_report_redirect): Queue function.
	* src/nautilus-view-frame.h:
	* src/nautilus-view-frame-private.h:
	* src/nautilus-view-frame.c:
	(nautilus_view_frame_initialize_class): Create report_redirect
	signal.
	(nautilus_view_frame_report_redirect): Emit the signal.
	* src/nautilus-window-manage-views.c: (report_redirect_callback):
	Code to implement the redirect. For now this does the exact same
	thing as report_location_change. This is where all the remaining
	work to fix the bug goes.

	* components/mozilla/nautilus-mozilla-content-view.c:
	(view_load_location_callback), (mozilla_title_changed_callback),
	(mozilla_net_start_callback), (mozilla_net_stop_callback),
	(mozilla_link_message_callback), (mozilla_progress_callback),
	(mozilla_dom_mouse_click_callback),
	(navigate_mozilla_to_nautilus_uri), (update_nautilus_uri),
	(eazel_services_scheme_from_http): Remove the "async" calls that
	defer calls until timeout time now that NautilusView itself does
	that for all components.

	* libnautilus-extensions/nautilus-gtk-extensions.h:
	* libnautilus-extensions/nautilus-gtk-extensions.c:
	(nautilus_gtk_marshal_NONE__POINTER_POINTER_POINTER_POINTER):
	Added new marshal function needed for report_redirect.

	Other changes.

	* THANKS: Add some more contributors, after running the script
	to detect new ChangeLog entries.
parent 3179f2c4
2001-02-27 Darin Adler <darin@eazel.com>
reviewed by: John Sullivan <sullivan@eazel.com>
Did most of the work for bug 5779, separating out the Eazel logos
so they won't be used by non-Eazel folks making changes to
Nautilus if they choose to do "non-approved" changes (allowed by
GPL of course).
* nautilus.spec.in: Add new logos.
* configure.in: Add eazel-logos and eazel-logos/throbber.
* Makefile.am: Add the eazel-logos subdirectory.
* eazel-logos/Makefile.am: Created.
* eazel-logos/throbber/Makefile.am: Created.
* components/services/nautilus-dependent-shared/icons/eazel-logo-right-side-logo.png:
* icons/About_Image.png:
* icons/about_background.png:
* icons/default.xml:
* icons/druid_header.png:
* icons/throbber/001.png:
* icons/throbber/002.png:
* icons/throbber/003.png:
* icons/throbber/004.png:
* icons/throbber/005.png:
* icons/throbber/006.png:
* icons/throbber/007.png:
* icons/throbber/008.png:
* icons/throbber/009.png:
* icons/throbber/010.png:
* icons/throbber/011.png:
* icons/throbber/012.png:
* icons/throbber/013.png:
* icons/throbber/014.png:
* icons/throbber/015.png:
* icons/throbber/016.png:
* icons/throbber/017.png:
* icons/throbber/018.png:
* icons/throbber/019.png:
* icons/throbber/020.png:
* icons/throbber/021.png:
* icons/throbber/022.png:
* icons/throbber/023.png:
* icons/throbber/024.png:
* icons/throbber/025.png:
* icons/throbber/026.png:
* icons/throbber/027.png:
* icons/throbber/028.png:
* icons/throbber/029.png:
* icons/throbber/030.png:
* icons/throbber/Makefile.am:
* icons/throbber/rest.png:
Updated with non-logo versions.
Did 90% of the work for bug 6950 (need new report_redirect call in
addition to report_location_change). While working on that, I also
moved the deferral of outgoing calls that is done in the Mozilla
component so that it is done by the NautilusView class instead.
* libnautilus/nautilus-view-component.idl: Added report_redirect.
* libnautilus/nautilus-view.h: Added report_redirect.
* libnautilus/nautilus-view.c: (queue_outgoing_call): Added
queing for the outgoing side.
(nautilus_view_initialize): Allocate queue.
(nautilus_view_destroy): Deallocate queue.
(str_list_copy): Utility needed here because we can't use
libnautilus-extensions.
(list_free_deep_callback): New. Used in queuing code.
(free_location_plus_callback): New. Used in queueing code.
(call_open_location_in_this_window),
(call_open_location_prefer_existing_window),
(call_open_location_force_new_window),
(call_report_location_change), (call_report_redirect),
(call_report_selection_change), (call_report_status),
(call_report_load_underway), (call_report_load_progress),
(call_report_load_complete), (call_report_load_failed),
(call_set_title), (call_go_back): Functions that get queued.
These have the bulk of the code to do work.
(nautilus_view_open_location_in_this_window),
(nautilus_view_open_location_prefer_existing_window),
(nautilus_view_open_location_force_new_window),
(nautilus_view_report_location_change),
(nautilus_view_report_redirect),
(nautilus_view_report_selection_change),
(nautilus_view_report_status),
(nautilus_view_report_load_underway),
(nautilus_view_report_load_progress),
(nautilus_view_report_load_complete),
(nautilus_view_report_load_failed), (nautilus_view_set_title),
(nautilus_view_go_back): These functions now simply queue the work
that needs to be done.
* src/nautilus-view-frame-corba.c: (free_location_plus_callback):
Add a new field for the "from_location" needed for redirect.
(report_redirect): The actual function to do the work.
(impl_Nautilus_ViewFrame_report_redirect): Queue function.
* src/nautilus-view-frame.h:
* src/nautilus-view-frame-private.h:
* src/nautilus-view-frame.c:
(nautilus_view_frame_initialize_class): Create report_redirect
signal.
(nautilus_view_frame_report_redirect): Emit the signal.
* src/nautilus-window-manage-views.c: (report_redirect_callback):
Code to implement the redirect. For now this does the exact same
thing as report_location_change. This is where all the remaining
work to fix the bug goes.
* components/mozilla/nautilus-mozilla-content-view.c:
(view_load_location_callback), (mozilla_title_changed_callback),
(mozilla_net_start_callback), (mozilla_net_stop_callback),
(mozilla_link_message_callback), (mozilla_progress_callback),
(mozilla_dom_mouse_click_callback),
(navigate_mozilla_to_nautilus_uri), (update_nautilus_uri),
(eazel_services_scheme_from_http): Remove the "async" calls that
defer calls until timeout time now that NautilusView itself does
that for all components.
* libnautilus-extensions/nautilus-gtk-extensions.h:
* libnautilus-extensions/nautilus-gtk-extensions.c:
(nautilus_gtk_marshal_NONE__POINTER_POINTER_POINTER_POINTER):
Added new marshal function needed for report_redirect.
Other changes.
* THANKS: Add some more contributors, after running the script
to detect new ChangeLog entries.
2001-02-27 John Harper <jsh@eazel.com>
* cut-n-paste-code/widgets/e-paned/README.changes: updated this
......
......@@ -12,6 +12,7 @@ endif
SUBDIRS = \
data \
icons \
eazel-logos \
intl \
cut-n-paste-code \
librsvg \
......
......@@ -14,6 +14,7 @@ Fatih Demir <kabalak@kabalak.net> - bug fixes
Gregory S. Hayes <ghayes@syncomm.org> - bug fixes
Havoc Pennington <hp@redhat.com> - various contributions
JP Rosevear <jpr@arcavia.com> - bug fixes
Jason Leach <jasonleach@usa.net> - Solaris fix
Jim Garrison <garrison@users.sourceforge.net> - bug fixes
Joe Shaw <joe@ximian.com> - installer code, bug fixes
John Fleck <jfleck@inkstain.net> - help browser work
......@@ -25,12 +26,13 @@ Martin Baulig <martin@home-of-linux.org> - added PersistFile support
Matt Bissiri <bissiri@eecs.umich.edu> - list widget improvements
Michael Meeks <michael@ximian.com> - bonobo fixes
Morten Welinder <terra@diku.dk> - check-fixme suggestions
Richard Boulton <richard@tartarus.org> - build fixes
Richard Hult <rhult@hem.passagen.se> - bug reporting
Robert Brady <rwb197@zepler.org> - bug fixes
Shane Butlers <sbutle@deakin.edu.au> - IDE in hardware view patch for showing IDE
Stanislav Brabec <utx@penguin.cz> - bug fixes
Vera Horiuchi <vera@eazel.com> - documentation
Victor Lecha <victor@eazel.com> - build fixes.
Victor Lecha <victor@eazel.com> - build fixes
The following people who did testing work:
......@@ -48,8 +50,6 @@ Tim Tan <tim@eazel.com>
Victor Lecha <victor@eazel.com>
Will LaShell <will@lashell.net>
As well as the following people who contributed translations:
Akira TAGOH <tagoh@gnome.gr.jp>
......@@ -61,9 +61,11 @@ Benedikt Roth <Benedikt.Roth@gmx.net>
Carlos Perell Marn <carlos@hispalinux.es>
Christian Meyer <linux@chrisime.de>
Christian Rose <menthos@menthos.com>
Christophe Merlet <redfox@eikonex.org>
Christopher R. Gabriel <cgabriel@softwarelibero.org>
Eric Brayeur <eb@ibelgique.com>
Fatih Demir <kabalak@gmx.net>
Gustavo Maciel Dias Vieira <gdvieira@zaz.com.br>
Jarkko Ranta <jjranta@cc.joensuu.fi>
Jean-Michel Ardantz <jmardantz@ifrance.com>
Jesus Bravo Alvarez <jba@pobox.com>
......@@ -72,7 +74,9 @@ Kjenneth Christiansen <kenneth@gnu.org>
Manuel de Vega Barreiro <barreiro@arrakis.es>
Martin Norbck <d95mback@dtek.chalmers.se>
Matthias Warkus <mawarkus@gnome.org>
Pablo Gonzalo del Campo <pablodc@bigfoot.com>
Pablo Saratxaga <pablo@mandrakesoft.com>
Pauli Virtanen <pauli.virtanen@saunalahti.fi>
Robert Brady <robert@suse.co.uk>
Simos Xenitellis <simos@hellug.gr>
Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
......
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Copyright (C) 2000 Eazel, Inc.
* Copyright (C) 2000, 2001 Eazel, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
......@@ -103,23 +103,6 @@ struct NautilusMozillaContentViewDetails {
gboolean user_initiated_navigation;
BonoboUIComponent *ui;
/* For async NautilusView messages */
char *pending_title; /*for set_title*/
char *pending_report_uri; /*for report_location_change*/
char *pending_link_message; /*for report_status*/
double pending_load_progress; /*for load_progress*/
char *pending_open_uri; /*for open_location*/
gboolean is_pending_set_title :1;
gboolean is_pending_report_load_failed :1;
gboolean is_pending_report_load_underway :1;
gboolean is_pending_report_load_complete :1;
gboolean is_pending_report_location_change :1;
gboolean is_pending_report_status :1;
gboolean is_pending_report_load_progress :1;
gboolean is_pending_open_location :1;
};
/* GTK Type System */
......@@ -141,7 +124,7 @@ static void vfs_read_callback (GnomeVFSAsyncHandle *handle,
gpointer data);
/* NautilusView callback functions */
static void view_load_location_callback (NautilusView *nautilus_view,
static void view_load_location_callback (NautilusView *nautilus_view,
const char *location,
gpointer data);
......@@ -236,34 +219,10 @@ static void post_widget_initialize (void);
static char * eazel_services_scheme_to_http (NautilusMozillaContentView *view,
const char *uri);
static char * eazel_services_scheme_from_http (NautilusMozillaContentView *view,
static char * eazel_services_scheme_from_http (NautilusMozillaContentView *view,
const char *uri);
#endif /* EAZEL_SERVICES */
/*
* Async NautilusView message dispatchers
*/
static void async_set_title (NautilusMozillaContentView *view,
const char *title);
static void async_report_load_failed (NautilusMozillaContentView *view);
static void async_report_load_underway (NautilusMozillaContentView *view);
static void async_report_load_complete (NautilusMozillaContentView *view);
static void async_report_location_change (NautilusMozillaContentView *view,
const char *report_uri);
static void async_report_status (NautilusMozillaContentView *view,
const char *link_message);
static void async_report_load_progress (NautilusMozillaContentView *view,
double load_progress);
static void async_open_location (NautilusMozillaContentView *view,
const char *open_uri);
/* BonoboControl callbacks */
static void bonobo_control_activate_callback (BonoboObject *control, gboolean state, gpointer callback_data);
......@@ -490,7 +449,7 @@ try_transform_nautilus_uri_to_file_scheme (const char *uri)
}
static void
view_load_location_callback (NautilusView *nautilus_view,
view_load_location_callback (NautilusView *nautilus_view,
const char *location,
gpointer data)
{
......@@ -812,7 +771,7 @@ mozilla_title_changed_callback (GtkMozEmbed *mozilla, gpointer user_data)
DEBUG_MSG (("=%s : new title='%s'\n", __FUNCTION__, new_title));
if (new_title != NULL && strcmp (new_title, "") != 0) {
async_set_title (view, new_title);
nautilus_view_set_title (view->details->nautilus_view, new_title);
}
g_free (new_title);
......@@ -1008,7 +967,7 @@ mozilla_net_start_callback (GtkMozEmbed *mozilla,
g_assert (GTK_MOZ_EMBED (mozilla) == GTK_MOZ_EMBED (view->details->mozilla));
async_report_load_underway (view);
nautilus_view_report_load_underway (view->details->nautilus_view);
DEBUG_MSG (("-%s\n", __FUNCTION__));
}
......@@ -1025,7 +984,7 @@ mozilla_net_stop_callback (GtkMozEmbed *mozilla,
g_assert (GTK_MOZ_EMBED (mozilla) == view->details->mozilla);
async_report_load_complete (view);
nautilus_view_report_load_complete (view->details->nautilus_view);
DEBUG_MSG (("-%s\n", __FUNCTION__));
}
......@@ -1057,7 +1016,7 @@ mozilla_link_message_callback (GtkMozEmbed *mozilla, gpointer user_data)
/* DEBUG_MSG (("=%s new link message '%s'\n", __FUNCTION__, translated_link_message)); */
async_report_status (view, translated_link_message);
nautilus_view_report_status (view->details->nautilus_view, translated_link_message);
g_free (translated_link_message);
g_free (link_message);
......@@ -1085,11 +1044,11 @@ mozilla_progress_callback (GtkMozEmbed *mozilla,
*/
if (max_progress == -1 || max_progress == 0) {
async_report_load_progress (view, 0);
nautilus_view_report_load_progress (view->details->nautilus_view, 0);
} else if (max_progress < current_progress) {
async_report_load_progress (view, 1.0);
nautilus_view_report_load_progress (view->details->nautilus_view, 1.0);
} else {
async_report_load_progress (view, current_progress / max_progress);
nautilus_view_report_load_progress (view->details->nautilus_view, current_progress / max_progress);
}
}
......@@ -1203,7 +1162,7 @@ mozilla_dom_mouse_click_callback (GtkMozEmbed *mozilla,
* Right now, we report a load error. But we
* could tell ammonite to prompt for login
*/
async_report_load_failed (view);
nautilus_view_report_load_failed (view->details->nautilus_view);
ret = NS_DOM_EVENT_CONSUMED;
} else if (href[0] == '#') {
/* a navigation to an anchor within the same page */
......@@ -1260,7 +1219,7 @@ mozilla_dom_mouse_click_callback (GtkMozEmbed *mozilla,
} else {
/* With some schemes, navigation needs to be funneled through nautilus. */
DEBUG_MSG (("=%s : funnelling navigation through nautilus\n", __FUNCTION__));
async_open_location (view, href_full);
nautilus_view_open_location_in_this_window (view->details->nautilus_view, href_full);
ret = NS_DOM_EVENT_CONSUMED;
}
......@@ -1458,7 +1417,7 @@ navigate_mozilla_to_nautilus_uri (NautilusMozillaContentView *view,
cancel_pending_vfs_operation (view);
if (mozilla_uri == NULL) {
async_report_load_failed (view);
nautilus_view_report_load_failed (view->details->nautilus_view);
goto error;
}
......@@ -1525,7 +1484,10 @@ update_nautilus_uri (NautilusMozillaContentView *view, const char *nautilus_uri)
DEBUG_MSG (("=%s current URI is now '%s'\n", __FUNCTION__, view->details->uri));
async_report_location_change (view, view->details->uri);
nautilus_view_report_location_change (view->details->nautilus_view,
nautilus_uri,
NULL,
nautilus_uri);
}
/***********************************************************************************/
......@@ -2054,7 +2016,7 @@ eazel_services_scheme_to_http (NautilusMozillaContentView *view,
}
static char *
eazel_services_scheme_from_http (NautilusMozillaContentView *view,
eazel_services_scheme_from_http (NautilusMozillaContentView *view,
const char *uri)
{
AmmoniteError err;
......@@ -2072,227 +2034,3 @@ eazel_services_scheme_from_http (NautilusMozillaContentView *view,
}
#endif /* EAZEL_SERVICES */
/***********************************************************************************/
/***********************************************************************************/
/*
* What's going on here?
*
* Below are wrapper functions that delay outbound NautilusViewFrame callbacks
* until we return to the GTK idle loop. The problem is this:
*
* o Any outbound ORBit call, including oneway calls, may result in a
* pending inbound call being dispatched
* o Some inbound calls, particularly Bonobo::Control::realize, cannot safely
* be handled away from the event loop. Indeed, if Bonobo::Control::realize
* gets called during a callback from Mozilla, the mozilla view will deadlock.
*
* By postponing all outbound ORBit calls invoked as a result of mozilla callback
* to the event loop, we eliminated the possibility that inbound calls can occur
* during callbacks from Mozilla
*
* Note: outbound ORBit calls that do not occur as a result of a mozilla callback
* do not need to be so wrapped
*
* FIXME: We want to move this type of thing into libnautilus
*/
/*
* Note that the "unref" in the calls below matches the "ref" in the async_
* calls below
*/
#define DISPATCH_NOARG_TMPL(FUNCNAME) \
static int /* GtkFunction */ \
dispatch_##FUNCNAME (gpointer data) \
{ \
NautilusMozillaContentView *view; \
\
view = NAUTILUS_MOZILLA_CONTENT_VIEW (data); \
\
view->details->is_pending_##FUNCNAME = FALSE; \
\
if (!GTK_OBJECT_DESTROYED (view)) { \
DEBUG_MSG ((">>nautilus_view_" #FUNCNAME "\n")); \
nautilus_view_##FUNCNAME (view->details->nautilus_view); \
} \
gtk_object_unref (GTK_OBJECT (view)); \
\
return 0; \
}
#define DISPATCH_STRING_TMPL(FUNCNAME, REALFUNCNAME, ARGNAME) \
static int /* GtkFunction */ \
dispatch_##FUNCNAME (gpointer data) \
{ \
NautilusMozillaContentView *view; \
\
view = NAUTILUS_MOZILLA_CONTENT_VIEW (data); \
\
view->details->is_pending_##FUNCNAME = FALSE; \
\
if (!GTK_OBJECT_DESTROYED (view)) { \
DEBUG_MSG ((">>nautilus_view_" #REALFUNCNAME " '%s'\n", view->details->pending_##ARGNAME)); \
nautilus_view_##REALFUNCNAME (view->details->nautilus_view, view->details->pending_##ARGNAME); \
g_free (view->details->pending_##ARGNAME); \
view->details->pending_##ARGNAME = NULL; \
} \
gtk_object_unref (GTK_OBJECT (view)); \
\
return 0; \
}
#define DISPATCH_STRING_NO_DEBUG_TMPL(FUNCNAME, REALFUNCNAME, ARGNAME) \
static int /* GtkFunction */ \
dispatch_##FUNCNAME (gpointer data) \
{ \
NautilusMozillaContentView *view; \
\
view = NAUTILUS_MOZILLA_CONTENT_VIEW (data); \
\
view->details->is_pending_##FUNCNAME = FALSE; \
\
if (!GTK_OBJECT_DESTROYED (view)) { \
nautilus_view_##REALFUNCNAME (view->details->nautilus_view, view->details->pending_##ARGNAME); \
g_free (view->details->pending_##ARGNAME); \
view->details->pending_##ARGNAME = NULL; \
} \
gtk_object_unref (GTK_OBJECT (view)); \
\
return 0; \
}
DISPATCH_NOARG_TMPL (report_load_failed)
DISPATCH_NOARG_TMPL (report_load_underway)
DISPATCH_NOARG_TMPL (report_load_complete)
DISPATCH_STRING_TMPL (set_title, set_title, title)
DISPATCH_STRING_NO_DEBUG_TMPL (report_status, report_status, link_message)
DISPATCH_STRING_TMPL (open_location, open_location_in_this_window, open_uri)
static int /* GtkFunction */
dispatch_report_location_change (gpointer data)
{
NautilusMozillaContentView *view;
view = NAUTILUS_MOZILLA_CONTENT_VIEW (data);
view->details->is_pending_report_location_change = FALSE;
if (!GTK_OBJECT_DESTROYED (view)) {
nautilus_view_report_location_change (view->details->nautilus_view, view->details->pending_report_uri, NULL, view->details->pending_report_uri);
DEBUG_MSG ((">>nautilus_view_report_location_change\n"));
g_free (view->details->pending_report_uri);
view->details->pending_report_uri = NULL;
}
gtk_object_unref (GTK_OBJECT (view));
return 0;
}
static int /* GtkFunction */
dispatch_report_load_progress (gpointer data)
{
NautilusMozillaContentView *view;
view = NAUTILUS_MOZILLA_CONTENT_VIEW (data);
view->details->is_pending_report_load_progress = FALSE;
if (!GTK_OBJECT_DESTROYED (view)) {
DEBUG_MSG ((">>nautilus_view_report_load_progress %f\n",
view->details->pending_load_progress));
nautilus_view_report_load_progress (view->details->nautilus_view, view->details->pending_load_progress);
}
gtk_object_unref (GTK_OBJECT (view));
return 0;
}
/*
* These async_ functions delay CORBA calls by registering a gtk_timeout
* with the callbacks being the dispatch functions above.
*
* Note that a gtk reference is kept across the timeout callbacks
* to ensure the object is still valid
*/
#define ASYNC_NOARG_WRAPPER_TMPL(FUNCNAME) \
static void \
async_##FUNCNAME (NautilusMozillaContentView *view) \
{ \
DEBUG_MSG (("~" #FUNCNAME "\n")); \
\
if (!view->details->is_pending_##FUNCNAME) { \
view->details->is_pending_##FUNCNAME = TRUE; \
gtk_object_ref (GTK_OBJECT (view)); \
gtk_timeout_add (0, dispatch_##FUNCNAME, view); \
} \
}
#define ASYNC_STRING_WRAPPER_TMPL(FUNCNAME, ARGNAME) \
static void \
async_##FUNCNAME (NautilusMozillaContentView *view, const char *ARGNAME) \
{ \
g_free (view->details->pending_##ARGNAME); \
view->details->pending_##ARGNAME = g_strdup (ARGNAME); \
\
DEBUG_MSG (("~" #FUNCNAME " '%s'\n", view->details->pending_##ARGNAME)); \
\
if (!view->details->is_pending_##FUNCNAME) { \
view->details->is_pending_##FUNCNAME = TRUE; \
gtk_object_ref (GTK_OBJECT (view)); \
gtk_timeout_add (0, dispatch_##FUNCNAME, view); \
} \
}
#define ASYNC_STRING_WRAPPER_NO_DEBUG_TMPL(FUNCNAME, ARGNAME) \
static void \
async_##FUNCNAME (NautilusMozillaContentView *view, const char *ARGNAME) \
{ \
g_free (view->details->pending_##ARGNAME); \
view->details->pending_##ARGNAME = g_strdup (ARGNAME); \
\
if (!view->details->is_pending_##FUNCNAME) { \
view->details->is_pending_##FUNCNAME = TRUE; \
gtk_object_ref (GTK_OBJECT (view)); \
gtk_timeout_add (0, dispatch_##FUNCNAME, view); \
} \
}
ASYNC_NOARG_WRAPPER_TMPL (report_load_failed)
ASYNC_NOARG_WRAPPER_TMPL (report_load_underway)
ASYNC_NOARG_WRAPPER_TMPL (report_load_complete)
ASYNC_STRING_WRAPPER_TMPL (set_title, title)
ASYNC_STRING_WRAPPER_TMPL (report_location_change, report_uri)
ASYNC_STRING_WRAPPER_NO_DEBUG_TMPL (report_status, link_message)
ASYNC_STRING_WRAPPER_TMPL (open_location, open_uri)
static void
async_report_load_progress (NautilusMozillaContentView *view, double load_progress)
{
view->details->pending_load_progress = load_progress;
if (!view->details->is_pending_report_load_progress) {
DEBUG_MSG (("~report_load_progress %f\n",
view->details->pending_load_progress));
view->details->is_pending_report_load_progress = TRUE;
gtk_object_ref (GTK_OBJECT (view));
gtk_timeout_add (0, dispatch_report_load_progress, view);
}
}
......@@ -839,6 +839,8 @@ data/emblems/Makefile
data/linksets/Makefile
data/fonts/Makefile
data/fonts/urw/Makefile
eazel-logos/Makefile
eazel-logos/throbber/Makefile
cut-n-paste-code/Makefile
cut-n-paste-code/widgets/Makefile
cut-n-paste-code/widgets/e-paned/Makefile
......
NULL=
SUBDIRS = throbber
icondir = $(datadir)/pixmaps/nautilus/eazel-logos
icon_DATA =\
About_Image.png \
about_background.png \
default.xml \
druid_header.png \
eazel-logo-right-side-logo.png \
$(NULL)
EXTRA_DIST = $(icon_DATA)
NULL=
throbberdir = $(datadir)/pixmaps/nautilus/eazel-logos/throbber
throbber_DATA = \
001.png \
002.png \
003.png \
004.png \
005.png \
006.png \
007.png \
008.png \
009.png \
010.png \
011.png \
012.png \
013.png \
014.png \
015.png \
rest.png \
$(NULL)
EXTRA_DIST = $(throbber_DATA)
icons/About_Image.png

61.7 KB | W: | H:

icons/About_Image.png

56.5 KB | W: | H:

icons/About_Image.png
icons/About_Image.png
icons/About_Image.png
icons/About_Image.png
  • 2-up
  • Swipe
  • Onion skin
icons/about_background.png

70 KB | W: | H:

icons/about_background.png

51.9 KB | W: | H:

icons/about_background.png
icons/about_background.png
icons/about_background.png
icons/about_background.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -23,7 +23,7 @@
<thumbnails frame_offsets="3,3,6,6"/>
<throbber frame_count="15" url="http://www.eazel.com" delay="75"/>
<throbber frame_count="30" url="http://www.eazel.com" delay="75"/>
<zoom_control number_v_offset="-6" number_h_offset="-2" digit_width="6"/>
......
icons/druid_header.png

18.4 KB | W: | H:

icons/druid_header.png

15.2 KB | W: | H:

icons/druid_header.png
icons/druid_header.png
icons/druid_header.png
icons/druid_header.png
  • 2-up
  • Swipe
  • Onion skin
icons/throbber/001.png

5.63 KB | W: | H:

icons/throbber/001.png

2.17 KB | W: | H:

icons/throbber/001.png
icons/throbber/001.png
icons/throbber/001.png
icons/throbber/001.png
  • 2-up
  • Swipe
  • Onion skin
icons/throbber/002.png

5.62 KB | W: | H:

icons/throbber/002.png

2.18 KB | W: | H:

icons/throbber/002.png
icons/throbber/002.png
icons/throbber/002.png
icons/throbber/002.png
  • 2-up
  • Swipe
  • Onion skin
icons/throbber/003.png

5.58 KB | W: | H:

icons/throbber/003.png

2.17 KB | W: | H:

icons/throbber/003.png
icons/throbber/003.png
icons/throbber/003.png
icons/throbber/003.png
  • 2-up
  • Swipe
  • Onion skin
icons/throbber/004.png

5.48 KB | W: | H:

icons/throbber/004.png

2.28 KB | W: | H:

icons/throbber/004.png
icons/throbber/004.png
icons/throbber/004.png
icons/throbber/004.png
  • 2-up
  • Swipe
  • Onion skin
icons/throbber/005.png

5.46 KB | W: | H:

icons/throbber/005.png

2.45 KB | W: | H:

icons/throbber/005.png
icons/throbber/005.png
icons/throbber/005.png
icons/throbber/005.png
  • 2-up
  • Swipe
  • Onion skin
icons/throbber/006.png

5.55 KB | W: | H:

icons/throbber/006.png

2.18 KB | W: | H:

icons/throbber/006.png
icons/throbber/006.png
icons/throbber/006.png
icons/throbber/006.png
  • 2-up
  • Swipe
  • Onion skin