[nautilus-actions] Set default icon for the application
- From: Pierre Wieser <pwieser src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [nautilus-actions] Set default icon for the application
- Date: Tue, 18 Aug 2009 20:04:36 +0000 (UTC)
commit c009526ec7cab92b6e472332c82318be84bc227f
Author: Pierre Wieser <pwieser trychlos org>
Date: Tue Aug 18 22:07:36 2009 +0200
Set default icon for the application
The corresponding virtual and public functions were ommitted when rewriting
the BaseApplication class.
src/nact/base-application-class.h | 13 +++++++
src/nact/base-application.c | 69 ++++++++++++++++++++++++++++++------
src/nact/base-application.h | 3 +-
3 files changed, 72 insertions(+), 13 deletions(-)
---
diff --git a/src/nact/base-application-class.h b/src/nact/base-application-class.h
index 51e8c08..e42b2cd 100644
--- a/src/nact/base-application-class.h
+++ b/src/nact/base-application-class.h
@@ -199,6 +199,19 @@ typedef struct {
gboolean ( *application_initialize_ui ) ( BaseApplication *appli );
/**
+ * application_initialize_default_icon:
+ * @appli: this #BaseApplication instance.
+ *
+ * Initializes the default icon for the application.
+ *
+ * Returns: %TRUE if the default icon has been successfully set for
+ * the application, %FALSE else.
+ *
+ * The base class implementation always returns %TRUE.
+ */
+ gboolean ( *application_initialize_default_icon )( BaseApplication *appli );
+
+ /**
* application_initialize_application:
* @appli: this #BaseApplication instance.
*
diff --git a/src/nact/base-application.c b/src/nact/base-application.c
index 26cf7b1..5a32429 100644
--- a/src/nact/base-application.c
+++ b/src/nact/base-application.c
@@ -89,6 +89,7 @@ static gboolean v_initialize_i18n( BaseApplication *application );
static gboolean v_initialize_gtk( BaseApplication *application );
static gboolean v_initialize_unique_app( BaseApplication *application );
static gboolean v_initialize_ui( BaseApplication *application );
+static gboolean v_initialize_default_icon( BaseApplication *application );
static gboolean v_initialize_application( BaseApplication *application );
static int do_application_run( BaseApplication *application );
@@ -97,6 +98,7 @@ static gboolean do_application_initialize_i18n( BaseApplication *applicati
static gboolean do_application_initialize_gtk( BaseApplication *application );
static gboolean do_application_initialize_unique_app( BaseApplication *application );
static gboolean do_application_initialize_ui( BaseApplication *application );
+static gboolean do_application_initialize_default_icon( BaseApplication *application );
static gboolean do_application_initialize_application( BaseApplication *application );
static gboolean check_for_unique_app( BaseApplication *application );
@@ -109,10 +111,11 @@ static void display_error_message( BaseApplication *application );
static void set_get_dialog_error( BaseApplication *application, const gchar *dialog );
static void set_initialize_i18n_error( BaseApplication *application );
static void set_initialize_gtk_error( BaseApplication *application );
-static void set_initialize_application_error( BaseApplication *application );
static void set_initialize_unique_app_error( BaseApplication *application );
static void set_initialize_ui_get_fname_error( BaseApplication *application );
static void set_initialize_ui_add_xml_error( BaseApplication *application, const gchar *filename, GError *error );
+static void set_initialize_default_icon_error( BaseApplication *application );
+static void set_initialize_application_error( BaseApplication *application );
GType
base_application_get_type( void )
@@ -233,9 +236,10 @@ class_init( BaseApplicationClass *klass )
klass->application_initialize = do_application_initialize;
klass->application_initialize_i18n = do_application_initialize_i18n;
klass->application_initialize_gtk = do_application_initialize_gtk;
- klass->application_initialize_application = do_application_initialize_application;
klass->application_initialize_unique_app = do_application_initialize_unique_app;
klass->application_initialize_ui = do_application_initialize_ui;
+ klass->application_initialize_default_icon = do_application_initialize_default_icon;
+ klass->application_initialize_application = do_application_initialize_application;
klass->application_get_application_name = NULL;
klass->application_get_icon_name = NULL;
klass->application_get_unique_app_name = NULL;
@@ -775,9 +779,26 @@ v_initialize_ui( BaseApplication *application )
}
static gboolean
+v_initialize_default_icon( BaseApplication *application )
+{
+ static const gchar *thisfn = "base_application_v_initialize_default_icon";
+ g_debug( "%s: application=%p", thisfn, application );
+
+ g_assert( BASE_IS_APPLICATION( application ));
+
+ gboolean ok = BASE_APPLICATION_GET_CLASS( application )->application_initialize_default_icon( application );
+
+ if( !ok ){
+ set_initialize_default_icon_error( application );
+ }
+
+ return( ok );
+}
+
+static gboolean
v_initialize_application( BaseApplication *application )
{
- static const gchar *thisfn = "base_application_v_initialize_application_name";
+ static const gchar *thisfn = "base_application_v_initialize_application";
g_debug( "%s: application=%p", thisfn, application );
g_assert( BASE_IS_APPLICATION( application ));
@@ -828,6 +849,7 @@ do_application_initialize( BaseApplication *application )
v_initialize_gtk( application ) &&
v_initialize_unique_app( application ) &&
v_initialize_ui( application ) &&
+ v_initialize_default_icon( application ) &&
v_initialize_application( application )
);
}
@@ -906,6 +928,20 @@ do_application_initialize_ui( BaseApplication *application )
}
static gboolean
+do_application_initialize_default_icon( BaseApplication *application )
+{
+ gchar *name = base_application_get_icon_name( application );
+
+ if( name && strlen( name )){
+ gtk_window_set_default_icon_name( name );
+ }
+
+ g_free( name );
+
+ return( TRUE );
+}
+
+static gboolean
do_application_initialize_application( BaseApplication *application )
{
BaseWindow *window;
@@ -1079,15 +1115,6 @@ set_initialize_gtk_error( BaseApplication *application )
}
static void
-set_initialize_application_error( BaseApplication *application )
-{
- application->private->exit_code = APPLICATION_ERROR_MAIN_WINDOW;
-
- application->private->exit_message1 =
- g_strdup( _( "Unable to get the main window of the application." ));
-}
-
-static void
set_initialize_unique_app_error( BaseApplication *application )
{
application->private->exit_code = APPLICATION_ERROR_UNIQUE_APP;
@@ -1118,3 +1145,21 @@ set_initialize_ui_add_xml_error( BaseApplication *application, const gchar *file
application->private->exit_message2 = g_strdup( error->message );
}
}
+
+static void
+set_initialize_default_icon_error( BaseApplication *application )
+{
+ application->private->exit_code = APPLICATION_ERROR_DEFAULT_ICON;
+
+ application->private->exit_message1 =
+ g_strdup( _( "Unable to set the default icon for the application." ));
+}
+
+static void
+set_initialize_application_error( BaseApplication *application )
+{
+ application->private->exit_code = APPLICATION_ERROR_MAIN_WINDOW;
+
+ application->private->exit_message1 =
+ g_strdup( _( "Unable to get the main window of the application." ));
+}
diff --git a/src/nact/base-application.h b/src/nact/base-application.h
index fce8ff3..7a7f892 100644
--- a/src/nact/base-application.h
+++ b/src/nact/base-application.h
@@ -51,7 +51,8 @@ enum {
APPLICATION_ERROR_UNIQUE_APP, /* another instance is running */
APPLICATION_ERROR_UI_FNAME, /* empty XML filename */
APPLICATION_ERROR_UI_LOAD, /* unable to load the XML definition of the UI */
- APPLICATION_ERROR_DIALOG_LOAD /* unable to load a dialog from the XML definition */
+ APPLICATION_ERROR_DIALOG_LOAD, /* unable to load a dialog from the XML definition */
+ APPLICATION_ERROR_DEFAULT_ICON /* unable to set default icon */
};
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]