[nautilus-actions] Refactoring: update status bar management
- From: Pierre Wieser <pwieser src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus-actions] Refactoring: update status bar management
- Date: Fri, 19 Feb 2010 02:28:58 +0000 (UTC)
commit 7efa61dd38a127ac34a68168b71d0c69dbd4c359
Author: Pierre Wieser <pwieser trychlos org>
Date: Wed Feb 17 19:43:08 2010 +0100
Refactoring: update status bar management
src/api/na-iio-provider.h | 2 +-
src/core/na-io-provider.c | 56 ++++++++++++++++++++++++++++++++++++++++
src/core/na-io-provider.h | 2 +
src/nact/nact-main-statusbar.c | 56 +++------------------------------------
4 files changed, 64 insertions(+), 52 deletions(-)
---
diff --git a/src/api/na-iio-provider.h b/src/api/na-iio-provider.h
index 143e1fe..4b0a96b 100644
--- a/src/api/na-iio-provider.h
+++ b/src/api/na-iio-provider.h
@@ -208,7 +208,7 @@ void na_iio_provider_item_changed ( const NAIIOProvider *instance, const gchar
/* The reasons for which an item may not be writable
* adding a new status here should imply also adding a new tooltip
- * in nact_main_statusbar_set_locked().
+ * in #na_io_provider_get_tooltip().
*/
enum {
NA_IIO_PROVIDER_STATUS_UNDETERMINED = 0,
diff --git a/src/core/na-io-provider.c b/src/core/na-io-provider.c
index d6a518d..341676a 100644
--- a/src/core/na-io-provider.c
+++ b/src/core/na-io-provider.c
@@ -32,6 +32,7 @@
#include <config.h>
#endif
+#include <glib/gi18n.h>
#include <string.h>
#include <api/na-iio-provider.h>
@@ -1225,3 +1226,58 @@ na_io_provider_delete_item( const NAIOProvider *provider, const NAObjectItem *it
return( ret );
}
+
+/**
+ * na_io_provider_get_tooltip:
+ * @reason: the reason for why an item is not writable.
+ *
+ * Returns: the associated tooltip, as a newly allocated string which
+ * should be g_free() by the caller.
+ */
+gchar *
+na_io_provider_get_tooltip( guint reason )
+{
+ gchar *tooltip;
+
+ tooltip = NULL;
+
+ switch( reason ){
+ case NA_IIO_PROVIDER_STATUS_ITEM_READONLY:
+ tooltip = g_strdup( _( "Item is read-only." ));
+ break;
+
+ case NA_IIO_PROVIDER_STATUS_PROVIDER_NOT_WILLING_TO:
+ tooltip = g_strdup( _( "I/O provider is not willing to write." ));
+ break;
+
+ case NA_IIO_PROVIDER_STATUS_NO_PROVIDER_FOUND:
+ tooltip = g_strdup( _( "No writable I/O provider found." ));
+ break;
+
+ case NA_IIO_PROVIDER_STATUS_PROVIDER_LOCKED_BY_ADMIN:
+ tooltip = g_strdup( _( "I/O provider has been locked down by an administrator." ));
+ break;
+
+ case NA_IIO_PROVIDER_STATUS_PROVIDER_LOCKED_BY_USER:
+ tooltip = g_strdup( _( "I/O provider has been locked down by the user." ));
+ break;
+
+ case NA_IIO_PROVIDER_STATUS_NO_API:
+ tooltip = g_strdup( _( "I/O provider implementation lacks of required API." ));
+ break;
+
+ case NA_IIO_PROVIDER_STATUS_CONFIGURATION_LOCKED_BY_ADMIN:
+ tooltip = g_strdup( _( "The whole configuration has been locked down by an administrator." ));
+ break;
+
+ case 0:
+ tooltip = g_strdup( "" );
+ break;
+
+ default:
+ tooltip = g_strdup_printf( _( "Item is not writable for an unknown reason (%d)" ), reason );
+ break;
+ }
+
+ return( tooltip );
+}
diff --git a/src/core/na-io-provider.h b/src/core/na-io-provider.h
index a390177..6ce3035 100644
--- a/src/core/na-io-provider.h
+++ b/src/core/na-io-provider.h
@@ -101,6 +101,8 @@ gboolean na_io_provider_has_write_api ( const NAIOProvider *p
guint na_io_provider_write_item ( const NAIOProvider *provider, const NAObjectItem *item, GSList **messages );
guint na_io_provider_delete_item( const NAIOProvider *provider, const NAObjectItem *item, GSList **messages );
+gchar *na_io_provider_get_tooltip( guint reason );
+
G_END_DECLS
#endif /* __CORE_NA_IO_PROVIDER_H__ */
diff --git a/src/nact/nact-main-statusbar.c b/src/nact/nact-main-statusbar.c
index 9e0852a..8e5af08 100644
--- a/src/nact/nact-main-statusbar.c
+++ b/src/nact/nact-main-statusbar.c
@@ -34,8 +34,9 @@
#include <glib/gi18n.h>
-#include <runtime/na-utils.h>
+#include <core/na-io-provider.h>
+#include "nact-gtk-utils.h"
#include "nact-main-statusbar.h"
typedef struct {
@@ -185,15 +186,6 @@ void
nact_main_statusbar_set_locked( NactMainWindow *window, gboolean readonly, gint reason )
{
static const gchar *thisfn = "nact_main_statusbar_set_locked";
-
- static const gchar *tooltip_item_read_only = N_( "Item is read-only." );
- static const gchar *tooltip_provider_not_willing_to = N_( "I/O provider is not willing to write." );
- static const gchar *tooltip_provider_not_found = N_( "No writable I/O provider found." );
- static const gchar *tooltip_provider_locked_by_admin = N_( "I/O provider has been locked down by an administrator." );
- static const gchar *tooltip_provider_locked_by_user = N_( "I/O provider has been locked down by the user." );
- static const gchar *tooltip_provider_no_api = N_( "I/O provider implementation lacks of required API." );
- static const gchar *tooltip_config_locked = N_( "The whole configuration has been locked down by an administrator." );
-
GtkStatusbar *bar;
GtkFrame *frame;
GtkImage *image;
@@ -216,46 +208,8 @@ nact_main_statusbar_set_locked( NactMainWindow *window, gboolean readonly, gint
if( readonly ){
gtk_image_set_from_file( image, LOCKED_IMAGE );
set_pixbuf = FALSE;
-
- switch( reason ){
- case NA_IIO_PROVIDER_STATUS_ITEM_READONLY:
- g_free( tooltip );
- tooltip = g_strdup( tooltip_item_read_only );
- break;
-
- case NA_IIO_PROVIDER_STATUS_PROVIDER_NOT_WILLING_TO:
- g_free( tooltip );
- tooltip = g_strdup( tooltip_provider_not_willing_to );
- break;
-
- case NA_IIO_PROVIDER_STATUS_NO_PROVIDER_FOUND:
- g_free( tooltip );
- tooltip = g_strdup( tooltip_provider_not_found );
- break;
-
- case NA_IIO_PROVIDER_STATUS_PROVIDER_LOCKED_BY_ADMIN:
- g_free( tooltip );
- tooltip = g_strdup( tooltip_provider_locked_by_admin );
- break;
-
- case NA_IIO_PROVIDER_STATUS_PROVIDER_LOCKED_BY_USER:
- g_free( tooltip );
- tooltip = g_strdup( tooltip_provider_locked_by_user );
- break;
-
- case NA_IIO_PROVIDER_STATUS_NO_API:
- g_free( tooltip );
- tooltip = g_strdup( tooltip_provider_no_api );
- break;
-
- case NA_IIO_PROVIDER_STATUS_CONFIGURATION_LOCKED_BY_ADMIN:
- g_free( tooltip );
- tooltip = g_strdup( tooltip_config_locked );
- break;
-
- default:
- break;
- }
+ g_free( tooltip );
+ tooltip = na_io_provider_get_tooltip( reason );
}
gtk_widget_set_tooltip_text( GTK_WIDGET( image ), tooltip );
@@ -263,7 +217,7 @@ nact_main_statusbar_set_locked( NactMainWindow *window, gboolean readonly, gint
}
if( set_pixbuf ){
- pixbuf = na_utils_get_pixbuf( NULL, GTK_ICON_SIZE_MENU );
+ pixbuf = nact_gtk_utils_get_pixbuf( NULL, GTK_ICON_SIZE_MENU );
gtk_image_set_from_pixbuf( image, pixbuf );
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]