diff options
author | Gene Z. Ragan <gzr@eazel.com> | 2000-05-19 23:56:10 +0000 |
---|---|---|
committer | Gene Ragan <gzr@src.gnome.org> | 2000-05-19 23:56:10 +0000 |
commit | ec4c139c8a9d8ca7d8dd7241e0896139cdc71dea (patch) | |
tree | 4457065a48c18f39c3b191f986df21452bd58d21 /libnautilus-private/nautilus-undo-manager.c | |
parent | f3df1c2b67710f0c8af8cfd7e6c60ba9e103abba (diff) | |
download | nautilus-ec4c139c8a9d8ca7d8dd7241e0896139cdc71dea.tar.gz |
GTK and CORBA object that acts as interface to an undo manager.
2000-05-19 Gene Z. Ragan <gzr@eazel.com>
* libnautilus/nautilus-undo-context.c:
* libnautilus/nautilus-undo-context.h:
(impl_Nautilus_Undo_Context__destroy),
(impl_Nautilus_Undo_Context__create),
(impl_Nautilus_Undo_Context__get_undo_manager),
(nautilus_undo_context_new), (nautilus_undo_context_initialize),
(nautilus_undo_context_initialize_class), (destroy):
GTK and CORBA object that acts as interface to an undo manager.
* libnautilus/Makefile.am:
Added entries for new NautilusUndoContext files.
* libnautilus/nautilus-undo-manager.c:
(impl_Nautilus_Undo_Manager__forget), (nautilus_undo_manager_undo),
(nautilus_undo_manager_unregister_object),
(get_current_transaction_name), (free_undo_manager_list_data),
(prune_undo_manager_list):
Removed all references to NautilusUndoTransaction and changed them to use
the Nautilus_Undo_Transaction CORBA object instead.
Diffstat (limited to 'libnautilus-private/nautilus-undo-manager.c')
-rw-r--r-- | libnautilus-private/nautilus-undo-manager.c | 66 |
1 files changed, 51 insertions, 15 deletions
diff --git a/libnautilus-private/nautilus-undo-manager.c b/libnautilus-private/nautilus-undo-manager.c index 06d530023..00e9fa750 100644 --- a/libnautilus-private/nautilus-undo-manager.c +++ b/libnautilus-private/nautilus-undo-manager.c @@ -152,8 +152,11 @@ impl_Nautilus_Undo_Manager__forget (impl_POA_Nautilus_Undo_Manager *servant, const Nautilus_Undo_Transaction transaction, CORBA_Environment *ev) { -} + NautilusUndoManager *manager; + g_assert (NAUTILUS_IS_UNDO_MANAGER (servant->gtk_object)); + manager = NAUTILUS_UNDO_MANAGER (servant->gtk_object); +} /* nautilus_undo_manager_new */ NautilusUndoManager * @@ -300,7 +303,8 @@ nautilus_undo_manager_undo (NautilusUndoManager *manager) /* nautilus_undo_manager_add_redo_transaction (undo_transaction); */ } else { /* Purge transaction */ - bonobo_object_unref (BONOBO_OBJECT (undo_transaction)); + Bonobo_Unknown_unref (undo_transaction, &ev); + CORBA_Object_release (undo_transaction, &ev); } /* Fire off signal informing that an undo transaction has occurred */ @@ -388,10 +392,13 @@ gboolean nautilus_undo_manager_unregister_object (GtkObject *object) { NautilusUndoManager *manager; - NautilusUndoTransaction *transaction; + Nautilus_Undo_Transaction transaction; gboolean success; GList *list; int index, length; + CORBA_Environment ev; + + CORBA_exception_init(&ev); /* FIXME: We can't get a pointer to the actual undo manager, so this * needs to work through the CORBA interface to the undo manager. @@ -411,13 +418,17 @@ nautilus_undo_manager_unregister_object (GtkObject *object) list = g_list_nth (manager->details->undo_list, index); if (list) { transaction = list->data; - if (nautilus_undo_transaction_contains_object (transaction, object)) { + /* FIXME: We need a way to do this */ + /*if (nautilus_undo_transaction_contains_object (transaction, object)) { manager->details->undo_list = g_list_remove (manager->details->undo_list, transaction); - bonobo_object_unref (BONOBO_OBJECT (transaction)); + + Bonobo_Unknown_unref (transaction, &ev); + CORBA_Object_release (transaction, &ev); + index--; success = TRUE; - } + }*/ } } @@ -427,13 +438,19 @@ nautilus_undo_manager_unregister_object (GtkObject *object) list = g_list_nth (manager->details->redo_list, index); if (list) { transaction = list->data; + /* FIXME: We need a way to do this */ + /* if (nautilus_undo_transaction_contains_object(transaction, object)) { manager->details->redo_list = g_list_remove (manager->details->redo_list, transaction); - bonobo_object_unref (BONOBO_OBJECT (transaction)); + + Bonobo_Unknown_unref (transaction, &ev); + CORBA_Object_release (transaction, &ev); + index--; success = TRUE; } + */ } } @@ -481,8 +498,9 @@ nautilus_undo_manager_can_redo (NautilusUndoManager *manager) static const gchar * get_current_transaction_name (GList *list) { - NautilusUndoTransaction *transaction; + Nautilus_Undo_Transaction transaction; const gchar *transaction_name; + CORBA_Environment ev; /* Check for NULL list */ if (list == NULL) { @@ -503,14 +521,18 @@ get_current_transaction_name (GList *list) g_warning("Unable to get current transaction name due to NULL transaction in list."); return NULL; } - + /* Check for valid transaction name */ - transaction_name = nautilus_undo_transaction_get_name(transaction); + CORBA_exception_init(&ev); + transaction_name = Nautilus_Undo_Transaction__get_base_description (transaction, &ev); + if ( transaction_name == NULL) { g_warning("Current transaction name is NULL."); return NULL; } + CORBA_exception_free(&ev); + return transaction_name; } @@ -617,7 +639,10 @@ static GList * free_undo_manager_list_data (GList *list) { int length, index; - NautilusUndoTransaction *transaction; + Nautilus_Undo_Transaction transaction; + CORBA_Environment ev; + + CORBA_exception_init(&ev); length = g_list_length (list); for (index = 0; index < length; index++) { @@ -625,10 +650,14 @@ free_undo_manager_list_data (GList *list) if (list) { transaction = list->data; list = g_list_remove (list, transaction); - bonobo_object_unref (BONOBO_OBJECT (transaction)); + + Bonobo_Unknown_unref (transaction, &ev); + CORBA_Object_release (transaction, &ev); } } + CORBA_exception_free(&ev); + return list; } @@ -642,17 +671,24 @@ static GList * prune_undo_manager_list (GList *list, gint items) { gint index; - NautilusUndoTransaction *transaction; - + Nautilus_Undo_Transaction transaction; + CORBA_Environment ev; + + CORBA_exception_init(&ev); + for (index = 0; index < items; index++) { list = g_list_first (list); if (list) { transaction = list->data; list = g_list_remove (list, transaction); - bonobo_object_unref (BONOBO_OBJECT (transaction)); + + Bonobo_Unknown_unref (transaction, &ev); + CORBA_Object_release (transaction, &ev); } } + CORBA_exception_free(&ev); + return list; } |