diff --git a/ChangeLog b/ChangeLog index 91c34d4aa2fc4f7cb440130d7889710a43f38b72..dee3033ab19231e5b4b8660f5c65e8432f00306d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-11-22 Benedikt Meurer <benny@xfce.org> + + * thunar-vfs/*.{c,h}, thunar/*.c, thunarx/*.c: Avoid duplicating static + strings if possible. + * thunar-vfs/thunar-vfs-scandir.c(thunar_vfs_scandir_collect): Ignore + EACCES and EPERM on subdirectories with recursive scanning. + * thunar-vfs/thunar-vfs-info.h(ThunarVfsInfo): Compress "type", "mode" + and "flags" to reduce memory overhead. + 2005-11-22 Benedikt Meurer <benny@xfce.org> * configure.in.in: Add fr and pt_BR to gettext linguas, which were diff --git a/thunar-vfs/thunar-vfs-info.c b/thunar-vfs/thunar-vfs-info.c index 0a25c48f19fcfb2dfd761b6e11fcbdb00132e21c..fbc707faaade1948a78d0c23140e1d949a5898fa 100644 --- a/thunar-vfs/thunar-vfs-info.c +++ b/thunar-vfs/thunar-vfs-info.c @@ -85,7 +85,7 @@ thunar_vfs_info_get_type (void) if (G_UNLIKELY (type == G_TYPE_INVALID)) { - type = g_boxed_type_register_static ("ThunarVfsInfo", + type = g_boxed_type_register_static (I_("ThunarVfsInfo"), (GBoxedCopyFunc) thunar_vfs_info_ref, (GBoxedFreeFunc) thunar_vfs_info_unref); } diff --git a/thunar-vfs/thunar-vfs-info.h b/thunar-vfs/thunar-vfs-info.h index c1ce4fbdc18f3d643ca4ef5988367bc55e1e139e..1146c1fb1c3f41872ab120dd80a833b7c6aed814 100644 --- a/thunar-vfs/thunar-vfs-info.h +++ b/thunar-vfs/thunar-vfs-info.h @@ -42,13 +42,13 @@ typedef struct _ThunarVfsInfo ThunarVfsInfo; struct _ThunarVfsInfo { /* File type */ - ThunarVfsFileType type; + ThunarVfsFileType type : 8; /* File permissions and special mode flags */ - ThunarVfsFileMode mode; + ThunarVfsFileMode mode : 12; /* File flags */ - ThunarVfsFileFlags flags; + ThunarVfsFileFlags flags : 12; /* Owner's user id */ ThunarVfsUserId uid; diff --git a/thunar-vfs/thunar-vfs-interactive-job.c b/thunar-vfs/thunar-vfs-interactive-job.c index 55a4b3f18302ffb8a4fe503ef853b9f31b272f6e..ab6069c33c623ec55926df22d7423c2e7ffc32f0 100644 --- a/thunar-vfs/thunar-vfs-interactive-job.c +++ b/thunar-vfs/thunar-vfs-interactive-job.c @@ -56,11 +56,37 @@ static ThunarVfsInteractiveJobResponse thunar_vfs_interactive_job_ask (Th -static guint interactive_signals[LAST_SIGNAL]; +static GObjectClass *thunar_vfs_interactive_job_parent_class; +static guint interactive_signals[LAST_SIGNAL]; -G_DEFINE_ABSTRACT_TYPE (ThunarVfsInteractiveJob, thunar_vfs_interactive_job, THUNAR_VFS_TYPE_JOB); +GType +thunar_vfs_interactive_job_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarVfsInteractiveJobClass), + NULL, + NULL, + (GClassInitFunc) thunar_vfs_interactive_job_class_init, + NULL, + NULL, + sizeof (ThunarVfsInteractiveJob), + 0, + (GInstanceInitFunc) thunar_vfs_interactive_job_init, + NULL, + }; + + type = g_type_register_static (THUNAR_VFS_TYPE_JOB, I_("ThunarVfsInteractiveJob"), &info, G_TYPE_FLAG_ABSTRACT); + } + + return type; +} @@ -81,6 +107,9 @@ thunar_vfs_interactive_job_class_init (ThunarVfsInteractiveJobClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_vfs_interactive_job_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_vfs_interactive_job_finalize; @@ -97,7 +126,7 @@ thunar_vfs_interactive_job_class_init (ThunarVfsInteractiveJobClass *klass) * Return value: the selected choice. **/ interactive_signals[ASK] = - g_signal_new ("ask", + g_signal_new (I_("ask"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_NO_HOOKS | G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarVfsInteractiveJobClass, ask), @@ -118,7 +147,7 @@ thunar_vfs_interactive_job_class_init (ThunarVfsInteractiveJobClass *klass) * the application on creation of the @job. **/ interactive_signals[NEW_FILES] = - g_signal_new ("new-files", + g_signal_new (I_("new-files"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_NO_HOOKS, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, @@ -138,7 +167,7 @@ thunar_vfs_interactive_job_class_init (ThunarVfsInteractiveJobClass *klass) * box. **/ interactive_signals[INFO_MESSAGE] = - g_signal_new ("info-message", + g_signal_new (I_("info-message"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_NO_HOOKS, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, @@ -153,7 +182,7 @@ thunar_vfs_interactive_job_class_init (ThunarVfsInteractiveJobClass *klass) * of the overall progress. **/ interactive_signals[PERCENT] = - g_signal_new ("percent", + g_signal_new (I_("percent"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_NO_HOOKS, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, diff --git a/thunar-vfs/thunar-vfs-job.c b/thunar-vfs/thunar-vfs-job.c index 5125c42b1698f9632cbb0b1287af4bc7b4a88610..dd5dfc9ba71e54d6e2fe1ea516716c938fc8fab8 100644 --- a/thunar-vfs/thunar-vfs-job.c +++ b/thunar-vfs/thunar-vfs-job.c @@ -36,7 +36,7 @@ #include <thunar-vfs/thunar-vfs-alias.h> -#include <gdk/gdk.h> +#include <exo/exo.h> @@ -113,7 +113,7 @@ thunar_vfs_job_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_OBJECT, "ThunarVfsJob", &info, G_TYPE_FLAG_ABSTRACT); + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarVfsJob"), &info, G_TYPE_FLAG_ABSTRACT); } return type; @@ -144,7 +144,7 @@ thunar_vfs_job_class_init (ThunarVfsJobClass *klass) * @job. **/ job_signals[ERROR] = - g_signal_new ("error", + g_signal_new (I_("error"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_NO_HOOKS, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, @@ -160,7 +160,7 @@ thunar_vfs_job_class_init (ThunarVfsJobClass *klass) * user. **/ job_signals[FINISHED] = - g_signal_new ("finished", + g_signal_new (I_("finished"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_NO_HOOKS, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, diff --git a/thunar-vfs/thunar-vfs-link-job.c b/thunar-vfs/thunar-vfs-link-job.c index 66f7962a6a567a5736f5d2025a3f78a262a1696c..e329ec075879634d37be1baa71ccba257938bfa5 100644 --- a/thunar-vfs/thunar-vfs-link-job.c +++ b/thunar-vfs/thunar-vfs-link-job.c @@ -89,7 +89,7 @@ thunar_vfs_link_job_get_type (void) }; type = g_type_register_static (THUNAR_VFS_TYPE_INTERACTIVE_JOB, - "ThunarVfsLinkJob", &info, 0); + I_("ThunarVfsLinkJob"), &info, 0); } return type; diff --git a/thunar-vfs/thunar-vfs-listdir-job.c b/thunar-vfs/thunar-vfs-listdir-job.c index f7606d1dc5526b12d4f175450c8c4f661f2bdd50..15390dd29bbf665a6ac2bc357781c646598d72bf 100644 --- a/thunar-vfs/thunar-vfs-listdir-job.c +++ b/thunar-vfs/thunar-vfs-listdir-job.c @@ -102,7 +102,7 @@ thunar_vfs_listdir_job_get_type (void) }; type = g_type_register_static (THUNAR_VFS_TYPE_JOB, - "ThunarVfsListdirJob", + I_("ThunarVfsListdirJob"), &info, 0); } @@ -134,7 +134,7 @@ thunar_vfs_listdir_job_class_init (ThunarVfsJobClass *klass) * to be never emitted with an @infos parameter of %NULL. **/ listdir_signals[INFOS_READY] = - g_signal_new ("infos-ready", + g_signal_new (I_("infos-ready"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_NO_HOOKS, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, @@ -349,3 +349,6 @@ thunar_vfs_listdir_job_new (ThunarVfsPath *folder_path) } + +#define __THUNAR_VFS_LISTDIR_JOB_C__ +#include <thunar-vfs/thunar-vfs-aliasdef.c> diff --git a/thunar-vfs/thunar-vfs-mime-application.c b/thunar-vfs/thunar-vfs-mime-application.c index 71e6ecf4836306ea353546aec07f410c87fd6a36..7df9d57647b8d15b4cbfc2d26614a96c7337bd03 100644 --- a/thunar-vfs/thunar-vfs-mime-application.c +++ b/thunar-vfs/thunar-vfs-mime-application.c @@ -67,7 +67,7 @@ thunar_vfs_mime_application_get_type (void) if (G_UNLIKELY (type == G_TYPE_INVALID)) { - type = g_boxed_type_register_static ("ThunarVfsMimeApplication", + type = g_boxed_type_register_static (I_("ThunarVfsMimeApplication"), (GBoxedCopyFunc) thunar_vfs_mime_application_ref, (GBoxedFreeFunc) thunar_vfs_mime_application_unref); } diff --git a/thunar-vfs/thunar-vfs-mime-cache.c b/thunar-vfs/thunar-vfs-mime-cache.c index 6e5f573bacffebaf707647f443a582833c2c5441..59a1429381a16b41c9f28f28da7c735b2ab12f78 100644 --- a/thunar-vfs/thunar-vfs-mime-cache.c +++ b/thunar-vfs/thunar-vfs-mime-cache.c @@ -52,6 +52,7 @@ #endif #include <thunar-vfs/thunar-vfs-mime-cache.h> +#include <thunar-vfs/thunar-vfs-alias.h> #if GLIB_CHECK_VERSION(2,6,0) #include <glib/gstdio.h> @@ -134,7 +135,8 @@ thunar_vfs_mime_cache_get_type (void) }; type = g_type_register_static (THUNAR_VFS_TYPE_MIME_PROVIDER, - "ThunarVfsMimeCache", &info, 0); + I_("ThunarVfsMimeCache"), + &info, 0); } return type; diff --git a/thunar-vfs/thunar-vfs-mime-database.c b/thunar-vfs/thunar-vfs-mime-database.c index 1a16eb07d1b583dbbff15fe94ee8ee08307677f6..7697f39b21dcbaeb2519989d0a3d7f45a073a463 100644 --- a/thunar-vfs/thunar-vfs-mime-database.c +++ b/thunar-vfs/thunar-vfs-mime-database.c @@ -170,7 +170,36 @@ struct _ThunarVfsMimeProviderData -G_DEFINE_TYPE (ThunarVfsMimeDatabase, thunar_vfs_mime_database, G_TYPE_OBJECT); +static GObjectClass *thunar_vfs_mime_database_parent_class; + + + +GType +thunar_vfs_mime_database_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarVfsMimeDatabaseClass), + NULL, + NULL, + (GClassInitFunc) thunar_vfs_mime_database_class_init, + NULL, + NULL, + sizeof (ThunarVfsMimeDatabase), + 0, + (GInstanceInitFunc) thunar_vfs_mime_database_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarVfsMimeDatabase"), &info, 0); + } + + return type; +} @@ -179,6 +208,9 @@ thunar_vfs_mime_database_class_init (ThunarVfsMimeDatabaseClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_vfs_mime_database_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_vfs_mime_database_finalize; } diff --git a/thunar-vfs/thunar-vfs-mime-info.c b/thunar-vfs/thunar-vfs-mime-info.c index 62eb3b45f725ea05684930dea3e464bd1775519c..4c1de3723c638ed28aae0c3fed2be75a17f9cc42 100644 --- a/thunar-vfs/thunar-vfs-mime-info.c +++ b/thunar-vfs/thunar-vfs-mime-info.c @@ -96,7 +96,7 @@ thunar_vfs_mime_info_get_type (void) if (G_UNLIKELY (type == G_TYPE_INVALID)) { - type = g_boxed_type_register_static ("ThunarVfsMimeInfo", + type = g_boxed_type_register_static (I_("ThunarVfsMimeInfo"), (GBoxedCopyFunc) thunar_vfs_mime_info_ref, (GBoxedFreeFunc) thunar_vfs_mime_info_unref); } diff --git a/thunar-vfs/thunar-vfs-mime-legacy.c b/thunar-vfs/thunar-vfs-mime-legacy.c index 9099c7e7e0719f3f51a6fd30f24cfc011d2fa6e3..d35436a4cf6a9f3c9ff72f1ecc9ef24962a51af0 100644 --- a/thunar-vfs/thunar-vfs-mime-legacy.c +++ b/thunar-vfs/thunar-vfs-mime-legacy.c @@ -37,6 +37,7 @@ #endif #include <thunar-vfs/thunar-vfs-mime-legacy.h> +#include <thunar-vfs/thunar-vfs-alias.h> @@ -144,7 +145,7 @@ thunar_vfs_mime_legacy_get_type (void) }; type = g_type_register_static (THUNAR_VFS_TYPE_MIME_PROVIDER, - "ThunarVfsMimeLegacy", &info, 0); + I_("ThunarVfsMimeLegacy"), &info, 0); } return type; @@ -641,3 +642,5 @@ thunar_vfs_mime_legacy_new (const gchar *directory) +#define __THUNAR_VFS_MIME_LEGACY_C__ +#include <thunar-vfs/thunar-vfs-aliasdef.c> diff --git a/thunar-vfs/thunar-vfs-mime-provider.c b/thunar-vfs/thunar-vfs-mime-provider.c index e1b4b8a3a4ceac1cbe0e6cc95515c8d16c8d95b4..96d431af1a39fa65d2103b0c85b80b26e79a512c 100644 --- a/thunar-vfs/thunar-vfs-mime-provider.c +++ b/thunar-vfs/thunar-vfs-mime-provider.c @@ -23,6 +23,7 @@ #endif #include <thunar-vfs/thunar-vfs-mime-provider.h> +#include <thunar-vfs/thunar-vfs-alias.h> @@ -47,9 +48,13 @@ thunar_vfs_mime_provider_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_OBJECT, "ThunarVfsMimeProvider", &info, G_TYPE_FLAG_ABSTRACT); + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarVfsMimeProvider"), &info, G_TYPE_FLAG_ABSTRACT); } return type; } + + +#define __THUNAR_VFS_MIME_PROVIDER_C__ +#include <thunar-vfs/thunar-vfs-aliasdef.c> diff --git a/thunar-vfs/thunar-vfs-mime-provider.h b/thunar-vfs/thunar-vfs-mime-provider.h index bc609567f2d2c196cc6c16e58ec6a2f39ebc7c9f..9f8c0d5d28ac4d314789213af925bda23dcff159 100644 --- a/thunar-vfs/thunar-vfs-mime-provider.h +++ b/thunar-vfs/thunar-vfs-mime-provider.h @@ -21,7 +21,7 @@ #ifndef __THUNAR_VFS_MIME_PROVIDER_H__ #define __THUNAR_VFS_MIME_PROVIDER_H__ -#include <glib-object.h> +#include <exo/exo.h> G_BEGIN_DECLS; diff --git a/thunar-vfs/thunar-vfs-mkdir-job.c b/thunar-vfs/thunar-vfs-mkdir-job.c index 1e5812b20b1021ba06d3e02a1adedcfdf32e0d9b..ecc7bf4b724907cf135cdeb2cc3cdf7f4c92e053 100644 --- a/thunar-vfs/thunar-vfs-mkdir-job.c +++ b/thunar-vfs/thunar-vfs-mkdir-job.c @@ -86,7 +86,7 @@ thunar_vfs_mkdir_job_get_type (void) }; type = g_type_register_static (THUNAR_VFS_TYPE_INTERACTIVE_JOB, - "ThunarVfsMkdirJob", &info, 0); + I_("ThunarVfsMkdirJob"), &info, 0); } return type; diff --git a/thunar-vfs/thunar-vfs-monitor.c b/thunar-vfs/thunar-vfs-monitor.c index 8ef86d0e1292f29aa896eeefe823ca50c3a0101c..ab106b4584fff6819ebb86d1200b39b0b2687323 100644 --- a/thunar-vfs/thunar-vfs-monitor.c +++ b/thunar-vfs/thunar-vfs-monitor.c @@ -128,7 +128,36 @@ struct _ThunarVfsMonitorNotification -G_DEFINE_TYPE (ThunarVfsMonitor, thunar_vfs_monitor, G_TYPE_OBJECT); +static GObjectClass *thunar_vfs_monitor_parent_class; + + + +GType +thunar_vfs_monitor_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarVfsMonitorClass), + NULL, + NULL, + (GClassInitFunc) thunar_vfs_monitor_class_init, + NULL, + NULL, + sizeof (ThunarVfsMonitor), + 0, + (GInstanceInitFunc) thunar_vfs_monitor_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarVfsMonitor"), &info, 0); + } + + return type; +} @@ -137,6 +166,9 @@ thunar_vfs_monitor_class_init (ThunarVfsMonitorClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_vfs_monitor_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_vfs_monitor_finalize; } diff --git a/thunar-vfs/thunar-vfs-path.c b/thunar-vfs/thunar-vfs-path.c index 7c0fc6d7d71713f4834d6066b6e0f5cf0e6e1abf..0799a4a2fa24ec65915069956d6f3ba994f61cf4 100644 --- a/thunar-vfs/thunar-vfs-path.c +++ b/thunar-vfs/thunar-vfs-path.c @@ -177,7 +177,7 @@ thunar_vfs_path_get_type (void) if (G_UNLIKELY (type == G_TYPE_INVALID)) { - type = g_boxed_type_register_static ("ThunarVfsPath", + type = g_boxed_type_register_static (I_("ThunarVfsPath"), (GBoxedCopyFunc) thunar_vfs_path_ref, (GBoxedFreeFunc) thunar_vfs_path_unref); } diff --git a/thunar-vfs/thunar-vfs-scandir.c b/thunar-vfs/thunar-vfs-scandir.c index aaa1a6b71ccbac42343c0047065f06b80ff22dd8..5c5dadb0cd8d987a81b54e6c2b211c283368f78b 100644 --- a/thunar-vfs/thunar-vfs-scandir.c +++ b/thunar-vfs/thunar-vfs-scandir.c @@ -58,6 +58,7 @@ #endif #include <thunar-vfs/thunar-vfs-scandir.h> +#include <thunar-vfs/thunar-vfs-alias.h> @@ -369,7 +370,7 @@ thunar_vfs_scandir_collect (ThunarVfsScandirHandle *handle, if (G_UNLIKELY (!succeed)) { /* we can ignore certain errors here */ - if (errno == EMLINK || errno == ENOTDIR || errno == ENOENT) + if (errno == EACCES || errno == EMLINK || errno == ENOTDIR || errno == ENOENT || errno == EPERM) succeed = TRUE; } } @@ -426,3 +427,7 @@ thunar_vfs_scandir (ThunarVfsPath *path, return handle.path_list; } + + +#define __THUNAR_VFS_SCANDIR_C__ +#include <thunar-vfs/thunar-vfs-aliasdef.c> diff --git a/thunar-vfs/thunar-vfs-thumb-jpeg.c b/thunar-vfs/thunar-vfs-thumb-jpeg.c index 62888906a733a5a634564ef8b042c177a96f2a31..210e05983ef54c0beba571dccfcc8a2e47d025ed 100644 --- a/thunar-vfs/thunar-vfs-thumb-jpeg.c +++ b/thunar-vfs/thunar-vfs-thumb-jpeg.c @@ -335,3 +335,5 @@ error: +#define __THUNAR_VFS_THUMB_JPEG_C__ +#include <thunar-vfs/thunar-vfs-aliasdef.c> diff --git a/thunar-vfs/thunar-vfs-thumb.c b/thunar-vfs/thunar-vfs-thumb.c index b03ef8b2d3426344236e6fb4b2c4e23b83c397f5..0e23de6f8a457eec4fa8dbd884c6d111017bd6d8 100644 --- a/thunar-vfs/thunar-vfs-thumb.c +++ b/thunar-vfs/thunar-vfs-thumb.c @@ -118,7 +118,36 @@ struct _ThunarVfsThumbFactory -G_DEFINE_TYPE (ThunarVfsThumbFactory, thunar_vfs_thumb_factory, G_TYPE_OBJECT); +static GObjectClass *thunar_vfs_thumb_factory_parent_class; + + + +GType +thunar_vfs_thumb_factory_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarVfsThumbFactoryClass), + NULL, + NULL, + (GClassInitFunc) thunar_vfs_thumb_factory_class_init, + NULL, + NULL, + sizeof (ThunarVfsThumbFactory), + 0, + (GInstanceInitFunc) thunar_vfs_thumb_factory_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarVfsThumbFactory"), &info, 0); + } + + return type; +} @@ -127,6 +156,9 @@ thunar_vfs_thumb_factory_class_init (ThunarVfsThumbFactoryClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_vfs_thumb_factory_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_vfs_thumb_factory_finalize; gobject_class->get_property = thunar_vfs_thumb_factory_get_property; diff --git a/thunar-vfs/thunar-vfs-transfer-job.c b/thunar-vfs/thunar-vfs-transfer-job.c index b5fac46a11ea67872cb65148836dea1f2068f3ad..938b30206f3ac3fedefb189073a9de7ccb51515a 100644 --- a/thunar-vfs/thunar-vfs-transfer-job.c +++ b/thunar-vfs/thunar-vfs-transfer-job.c @@ -148,7 +148,38 @@ struct _ThunarVfsTransferPair -G_DEFINE_TYPE (ThunarVfsTransferJob, thunar_vfs_transfer_job, THUNAR_VFS_TYPE_INTERACTIVE_JOB); +static GObjectClass *thunar_vfs_transfer_job_parent_class; + + + +GType +thunar_vfs_transfer_job_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarVfsTransferJobClass), + NULL, + NULL, + (GClassInitFunc) thunar_vfs_transfer_job_class_init, + NULL, + NULL, + sizeof (ThunarVfsTransferJob), + 0, + (GInstanceInitFunc) thunar_vfs_transfer_job_init, + NULL, + }; + + type = g_type_register_static (THUNAR_VFS_TYPE_INTERACTIVE_JOB, + I_("ThunarVfsTransferJob"), + &info, 0); + } + + return type; +} @@ -158,6 +189,9 @@ thunar_vfs_transfer_job_class_init (ThunarVfsTransferJobClass *klass) ThunarVfsJobClass *thunarvfs_job_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_vfs_transfer_job_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_vfs_transfer_job_finalize; @@ -860,3 +894,7 @@ failure: return NULL; } + + +#define __THUNAR_VFS_TRANSFER_JOB_C__ +#include <thunar-vfs/thunar-vfs-aliasdef.c> diff --git a/thunar-vfs/thunar-vfs-unlink-job.c b/thunar-vfs/thunar-vfs-unlink-job.c index 54f8020b844afbb7da16b0a9dd02ab8439932a27..b84a02a9cd8995808c14e2fec44a67b0c82f002d 100644 --- a/thunar-vfs/thunar-vfs-unlink-job.c +++ b/thunar-vfs/thunar-vfs-unlink-job.c @@ -109,7 +109,8 @@ thunar_vfs_unlink_job_get_type (void) }; type = g_type_register_static (THUNAR_VFS_TYPE_INTERACTIVE_JOB, - "ThunarVfsUnlinkJob", &info, 0); + I_("ThunarVfsUnlinkJob"), + &info, 0); } return type; @@ -292,3 +293,6 @@ thunar_vfs_unlink_job_new (GList *path_list, } + +#define __THUNAR_VFS_UNLINK_JOB_C__ +#include <thunar-vfs/thunar-vfs-aliasdef.c> diff --git a/thunar-vfs/thunar-vfs-user.c b/thunar-vfs/thunar-vfs-user.c index 51f5dc3ab06e7d0607782d49951d5934048f8f76..84d708a76f42ef128427ec343a3df1614dea9848 100644 --- a/thunar-vfs/thunar-vfs-user.c +++ b/thunar-vfs/thunar-vfs-user.c @@ -102,7 +102,7 @@ thunar_vfs_group_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_OBJECT, "ThunarVfsGroup", &info, 0); + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarVfsGroup"), &info, 0); } return type; @@ -251,7 +251,7 @@ thunar_vfs_user_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_OBJECT, "ThunarVfsUser", &info, 0); + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarVfsUser"), &info, 0); } return type; diff --git a/thunar-vfs/thunar-vfs-volume.c b/thunar-vfs/thunar-vfs-volume.c index 8180791ba41dec7b9779b71fe3d09817cf9579f8..320c607f66a5221af833ddf03b2ffd74c6a4e6a4 100644 --- a/thunar-vfs/thunar-vfs-volume.c +++ b/thunar-vfs/thunar-vfs-volume.c @@ -67,10 +67,7 @@ thunar_vfs_volume_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_INTERFACE, - "ThunarVfsVolume", - &info, 0); - + type = g_type_register_static (G_TYPE_INTERFACE, I_("ThunarVfsVolume"), &info, 0); g_type_interface_add_prerequisite (type, G_TYPE_OBJECT); } @@ -93,7 +90,7 @@ thunar_vfs_volume_base_init (gpointer klass) * Emitted whenever the state of @volume changed. **/ volume_signals[THUNAR_VFS_VOLUME_CHANGED] = - g_signal_new ("changed", + g_signal_new (I_("changed"), G_TYPE_FROM_INTERFACE (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarVfsVolumeIface, changed), diff --git a/thunar/thunar-application.c b/thunar/thunar-application.c index ca7ef19634d955bc66bfa16b733814c93dda2111..23c7a4e9d5126daef764cbe1255e0a620cf2b84c 100644 --- a/thunar/thunar-application.c +++ b/thunar/thunar-application.c @@ -79,7 +79,36 @@ struct _ThunarApplication -G_DEFINE_TYPE (ThunarApplication, thunar_application, G_TYPE_OBJECT); +static GObjectClass *thunar_application_parent_class; + + + +GType +thunar_application_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarApplicationClass), + NULL, + NULL, + (GClassInitFunc) thunar_application_class_init, + NULL, + NULL, + sizeof (ThunarApplication), + 0, + (GInstanceInitFunc) thunar_application_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarApplication"), &info, 0); + } + + return type; +} @@ -88,6 +117,9 @@ thunar_application_class_init (ThunarApplicationClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_application_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_application_finalize; } diff --git a/thunar/thunar-chooser-dialog.c b/thunar/thunar-chooser-dialog.c index 91f49d495e158d80dc63a4d07d5aabe3f400d1d3..d52048e4bdd426aeaee7f8d274862f12b536edfd 100644 --- a/thunar/thunar-chooser-dialog.c +++ b/thunar/thunar-chooser-dialog.c @@ -104,7 +104,36 @@ struct _ThunarChooserDialog -G_DEFINE_TYPE (ThunarChooserDialog, thunar_chooser_dialog, GTK_TYPE_DIALOG); +static GObjectClass *thunar_chooser_dialog_parent_class; + + + +GType +thunar_chooser_dialog_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarChooserDialogClass), + NULL, + NULL, + (GClassInitFunc) thunar_chooser_dialog_class_init, + NULL, + NULL, + sizeof (ThunarChooserDialog), + 0, + (GInstanceInitFunc) thunar_chooser_dialog_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_DIALOG, I_("ThunarChooserDialog"), &info, 0); + } + + return type; +} @@ -115,6 +144,9 @@ thunar_chooser_dialog_class_init (ThunarChooserDialogClass *klass) GtkWidgetClass *gtkwidget_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_chooser_dialog_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_chooser_dialog_dispose; gobject_class->get_property = thunar_chooser_dialog_get_property; diff --git a/thunar/thunar-chooser-model.c b/thunar/thunar-chooser-model.c index 599c3db893fbf294c85ec4120d3fdf3258c0f7ca..92b2157d117d5554c3773ae9e4d37d93b8f2facb 100644 --- a/thunar/thunar-chooser-model.c +++ b/thunar/thunar-chooser-model.c @@ -90,7 +90,36 @@ struct _ThunarChooserModel -G_DEFINE_TYPE (ThunarChooserModel, thunar_chooser_model, GTK_TYPE_TREE_STORE); +static GObjectClass *thunar_chooser_model_parent_class; + + + +GType +thunar_chooser_model_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarChooserModelClass), + NULL, + NULL, + (GClassInitFunc) thunar_chooser_model_class_init, + NULL, + NULL, + sizeof (ThunarChooserModel), + 0, + (GInstanceInitFunc) thunar_chooser_model_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_TREE_STORE, I_("ThunarChooserModel"), &info, 0); + } + + return type; +} @@ -99,6 +128,9 @@ thunar_chooser_model_class_init (ThunarChooserModelClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_chooser_model_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_chooser_model_finalize; gobject_class->get_property = thunar_chooser_model_get_property; diff --git a/thunar/thunar-clipboard-manager.c b/thunar/thunar-clipboard-manager.c index bc2b8206a771fccd0d4b070d7d68f966e5d93fd1..4112cae854bc57977e0daa4ddb15ab2306ed92a3 100644 --- a/thunar/thunar-clipboard-manager.c +++ b/thunar/thunar-clipboard-manager.c @@ -55,6 +55,7 @@ enum static void thunar_clipboard_manager_class_init (ThunarClipboardManagerClass *klass); +static void thunar_clipboard_manager_init (ThunarClipboardManager *manager); static void thunar_clipboard_manager_finalize (GObject *object); static void thunar_clipboard_manager_get_property (GObject *object, guint prop_id, @@ -118,12 +119,38 @@ static const GtkTargetEntry clipboard_targets[] = { "UTF8_STRING", 0, TARGET_UTF8_STRING } }; -static GQuark thunar_clipboard_manager_quark = 0; -static guint manager_signals[LAST_SIGNAL]; +static GObjectClass *thunar_clipboard_manager_parent_class; +static GQuark thunar_clipboard_manager_quark = 0; +static guint manager_signals[LAST_SIGNAL]; -G_DEFINE_TYPE (ThunarClipboardManager, thunar_clipboard_manager, G_TYPE_OBJECT); +GType +thunar_clipboard_manager_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarClipboardManagerClass), + NULL, + NULL, + (GClassInitFunc) thunar_clipboard_manager_class_init, + NULL, + NULL, + sizeof (ThunarClipboardManager), + 0, + (GInstanceInitFunc) thunar_clipboard_manager_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarClipboardManager"), &info, 0); + } + + return type; +} @@ -132,6 +159,9 @@ thunar_clipboard_manager_class_init (ThunarClipboardManagerClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_clipboard_manager_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_clipboard_manager_finalize; gobject_class->get_property = thunar_clipboard_manager_get_property; @@ -159,7 +189,7 @@ thunar_clipboard_manager_class_init (ThunarClipboardManagerClass *klass) * clipboard associated with @manager changes. **/ manager_signals[CHANGED] = - g_signal_new ("changed", + g_signal_new (I_("changed"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (ThunarClipboardManagerClass, changed), @@ -173,7 +203,6 @@ thunar_clipboard_manager_class_init (ThunarClipboardManagerClass *klass) static void thunar_clipboard_manager_init (ThunarClipboardManager *manager) { - manager->can_paste = FALSE; manager->x_special_gnome_copied_files = gdk_atom_intern ("x-special/gnome-copied-files", FALSE); } diff --git a/thunar/thunar-create-dialog.c b/thunar/thunar-create-dialog.c index 44d3b606260c76563c613f94074a8f11e991c535..129b8553c7098526bcd56a6cf210cea608185619 100644 --- a/thunar/thunar-create-dialog.c +++ b/thunar/thunar-create-dialog.c @@ -71,7 +71,36 @@ struct _ThunarCreateDialog -G_DEFINE_TYPE (ThunarCreateDialog, thunar_create_dialog, GTK_TYPE_DIALOG); +static GObjectClass *thunar_create_dialog_parent_class; + + + +GType +thunar_create_dialog_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarCreateDialogClass), + NULL, + NULL, + (GClassInitFunc) thunar_create_dialog_class_init, + NULL, + NULL, + sizeof (ThunarCreateDialog), + 0, + (GInstanceInitFunc) thunar_create_dialog_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_DIALOG, I_("ThunarCreateDialog"), &info, 0); + } + + return type; +} @@ -81,6 +110,9 @@ thunar_create_dialog_class_init (ThunarCreateDialogClass *klass) GtkWidgetClass *gtkwidget_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_create_dialog_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_create_dialog_dispose; gobject_class->get_property = thunar_create_dialog_get_property; diff --git a/thunar/thunar-details-view.c b/thunar/thunar-details-view.c index e3f02f0e49824eb2d6e5e1c1a07b83fda0ba54b7..9bf7e168d38e4510d2ada9d2624abeb311d74057 100644 --- a/thunar/thunar-details-view.c +++ b/thunar/thunar-details-view.c @@ -73,7 +73,36 @@ struct _ThunarDetailsView -G_DEFINE_TYPE (ThunarDetailsView, thunar_details_view, THUNAR_TYPE_STANDARD_VIEW); +static GObjectClass *thunar_details_view_parent_class; + + + +GType +thunar_details_view_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarDetailsViewClass), + NULL, + NULL, + (GClassInitFunc) thunar_details_view_class_init, + NULL, + NULL, + sizeof (ThunarDetailsView), + 0, + (GInstanceInitFunc) thunar_details_view_init, + NULL, + }; + + type = g_type_register_static (THUNAR_TYPE_STANDARD_VIEW, I_("ThunarDetailsView"), &info, 0); + } + + return type; +} @@ -83,6 +112,9 @@ thunar_details_view_class_init (ThunarDetailsViewClass *klass) ThunarStandardViewClass *thunarstandard_view_class; GtkWidgetClass *gtkwidget_class; + /* determine the parent type class */ + thunar_details_view_parent_class = g_type_class_peek_parent (klass); + gtkwidget_class = GTK_WIDGET_CLASS (klass); gtkwidget_class->get_accessible = thunar_details_view_get_accessible; diff --git a/thunar/thunar-dnd.c b/thunar/thunar-dnd.c index 46ce1bb52b75b0664dea277e284e0bf286beb99d..858d92e661e8159d26b7c3dd6f1719c40b87ed3d 100644 --- a/thunar/thunar-dnd.c +++ b/thunar/thunar-dnd.c @@ -31,7 +31,7 @@ static void action_selected (GtkWidget *item, GdkDragAction *action) { - *action = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (item), "action")); + *action = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (item), I_("action"))); } @@ -84,7 +84,7 @@ thunar_dnd_ask (GtkWidget *widget, if (G_LIKELY ((actions & action_items[n]) != 0)) { item = gtk_image_menu_item_new_with_mnemonic (_(action_names[n])); - g_object_set_data (G_OBJECT (item), "action", GUINT_TO_POINTER (action_items[n])); + g_object_set_data (G_OBJECT (item), I_("action"), GUINT_TO_POINTER (action_items[n])); g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (action_selected), &action); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); diff --git a/thunar/thunar-emblem-chooser.c b/thunar/thunar-emblem-chooser.c index 3fb7326fa7dc070952181025480c16bf1cb30d06..c0447540d9906aa2b718a91d55b642ed2c96901e 100644 --- a/thunar/thunar-emblem-chooser.c +++ b/thunar/thunar-emblem-chooser.c @@ -84,7 +84,36 @@ struct _ThunarEmblemChooser -G_DEFINE_TYPE (ThunarEmblemChooser, thunar_emblem_chooser, GTK_TYPE_SCROLLED_WINDOW); +static GObjectClass *thunar_emblem_chooser_parent_class; + + + +GType +thunar_emblem_chooser_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarEmblemChooserClass), + NULL, + NULL, + (GClassInitFunc) thunar_emblem_chooser_class_init, + NULL, + NULL, + sizeof (ThunarEmblemChooser), + 0, + (GInstanceInitFunc) thunar_emblem_chooser_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_SCROLLED_WINDOW, I_("ThunarEmblemChooser"), &info, 0); + } + + return type; +} @@ -94,6 +123,9 @@ thunar_emblem_chooser_class_init (ThunarEmblemChooserClass *klass) GtkWidgetClass *gtkwidget_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_emblem_chooser_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_emblem_chooser_dispose; gobject_class->finalize = thunar_emblem_chooser_finalize; @@ -279,7 +311,7 @@ thunar_emblem_chooser_button_toggled (GtkToggleButton *button, for (lp = children; lp != NULL; lp = lp->next) if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (lp->data))) { - emblem_name = g_object_get_data (G_OBJECT (lp->data), "thunar-emblem"); + emblem_name = g_object_get_data (G_OBJECT (lp->data), I_("thunar-emblem")); emblem_names = g_list_append (emblem_names, g_strdup (emblem_name)); } g_list_free (children); @@ -317,7 +349,7 @@ thunar_emblem_chooser_file_changed (ThunarFile *file, children = gtk_container_get_children (GTK_CONTAINER (chooser->table)); for (lp = children; lp != NULL; lp = lp->next) { - emblem_name = g_object_get_data (G_OBJECT (lp->data), "thunar-emblem"); + emblem_name = g_object_get_data (G_OBJECT (lp->data), I_("thunar-emblem")); if (g_list_find_custom (emblem_names, emblem_name, (GCompareFunc) strcmp) != NULL) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lp->data), TRUE); else @@ -419,7 +451,7 @@ thunar_emblem_chooser_create_button (ThunarEmblemChooser *chooser, /* allocate the button */ button = gtk_check_button_new (); GTK_WIDGET_UNSET_FLAGS (button, GTK_CAN_FOCUS); - g_object_set_data_full (G_OBJECT (button), "thunar-emblem", g_strdup (emblem), g_free); + g_object_set_data_full (G_OBJECT (button), I_("thunar-emblem"), g_strdup (emblem), g_free); g_signal_connect (G_OBJECT (button), "toggled", G_CALLBACK (thunar_emblem_chooser_button_toggled), chooser); /* allocate the box */ diff --git a/thunar/thunar-favourites-model.c b/thunar/thunar-favourites-model.c index 2ab65b0971acac42f03a552076c6620c293b1586..99bf892c2f6aa492bbf8814c0982df70e52264f2 100644 --- a/thunar/thunar-favourites-model.c +++ b/thunar/thunar-favourites-model.c @@ -143,13 +143,52 @@ struct _ThunarFavourite -G_DEFINE_TYPE_WITH_CODE (ThunarFavouritesModel, - thunar_favourites_model, - G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL, - thunar_favourites_model_tree_model_init) - G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_DRAG_SOURCE, - thunar_favourites_model_drag_source_init)); +static GObjectClass *thunar_favourites_model_parent_class; + + + +GType +thunar_favourites_model_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarFavouritesModelClass), + NULL, + NULL, + (GClassInitFunc) thunar_favourites_model_class_init, + NULL, + NULL, + sizeof (ThunarFavouritesModel), + 0, + (GInstanceInitFunc) thunar_favourites_model_init, + NULL, + }; + + static const GInterfaceInfo tree_model_info = + { + (GInterfaceInitFunc) thunar_favourites_model_tree_model_init, + NULL, + NULL, + }; + + static const GInterfaceInfo drag_source_info = + { + (GInterfaceInitFunc) thunar_favourites_model_drag_source_init, + NULL, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarFavouritesModel"), &info, 0); + g_type_add_interface_static (type, GTK_TYPE_TREE_MODEL, &tree_model_info); + g_type_add_interface_static (type, GTK_TYPE_TREE_DRAG_SOURCE, &drag_source_info); + } + + return type; +} @@ -158,6 +197,9 @@ thunar_favourites_model_class_init (ThunarFavouritesModelClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_favourites_model_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_favourites_model_finalize; } diff --git a/thunar/thunar-favourites-pane.c b/thunar/thunar-favourites-pane.c index 9e9989bbfdcaa69eaaaea3d1a823b892fea752a3..1b68e4d3ab2808d59a74835cb18eac9c34a8852e 100644 --- a/thunar/thunar-favourites-pane.c +++ b/thunar/thunar-favourites-pane.c @@ -68,13 +68,52 @@ struct _ThunarFavouritesPane -G_DEFINE_TYPE_WITH_CODE (ThunarFavouritesPane, - thunar_favourites_pane, - GTK_TYPE_SCROLLED_WINDOW, - G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, - thunar_favourites_pane_navigator_init) - G_IMPLEMENT_INTERFACE (THUNAR_TYPE_SIDE_PANE, - thunar_favourites_pane_side_pane_init)); +static GObjectClass *thunar_favourites_pane_parent_class; + + + +GType +thunar_favourites_pane_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarFavouritesPaneClass), + NULL, + NULL, + (GClassInitFunc) thunar_favourites_pane_class_init, + NULL, + NULL, + sizeof (ThunarFavouritesPane), + 0, + (GInstanceInitFunc) thunar_favourites_pane_init, + NULL, + }; + + static const GInterfaceInfo navigator_info = + { + (GInterfaceInitFunc) thunar_favourites_pane_navigator_init, + NULL, + NULL, + }; + + static const GInterfaceInfo side_pane_info = + { + (GInterfaceInitFunc) thunar_favourites_pane_side_pane_init, + NULL, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_SCROLLED_WINDOW, I_("ThunarFavouritesPane"), &info, 0); + g_type_add_interface_static (type, THUNAR_TYPE_NAVIGATOR, &navigator_info); + g_type_add_interface_static (type, THUNAR_TYPE_SIDE_PANE, &side_pane_info); + } + + return type; +} @@ -83,6 +122,9 @@ thunar_favourites_pane_class_init (ThunarFavouritesPaneClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_favourites_pane_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_favourites_pane_dispose; gobject_class->get_property = thunar_favourites_pane_get_property; diff --git a/thunar/thunar-favourites-view.c b/thunar/thunar-favourites-view.c index a9f38b65996bde2183899a65d50fae97d9a35e6d..7e3d2310bffbcef9e00da732ad94fccd5e6d521d 100644 --- a/thunar/thunar-favourites-view.c +++ b/thunar/thunar-favourites-view.c @@ -125,7 +125,36 @@ static const GtkTargetEntry drop_targets[] = { -G_DEFINE_TYPE (ThunarFavouritesView, thunar_favourites_view, GTK_TYPE_TREE_VIEW); +static GObjectClass *thunar_favourites_view_parent_class; + + + +GType +thunar_favourites_view_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarFavouritesViewClass), + NULL, + NULL, + (GClassInitFunc) thunar_favourites_view_class_init, + NULL, + NULL, + sizeof (ThunarFavouritesView), + 0, + (GInstanceInitFunc) thunar_favourites_view_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_TREE_VIEW, I_("ThunarFavouritesView"), &info, 0); + } + + return type; +} @@ -135,6 +164,9 @@ thunar_favourites_view_class_init (ThunarFavouritesViewClass *klass) GtkTreeViewClass *gtktree_view_class; GtkWidgetClass *gtkwidget_class; + /* determine the parent type class */ + thunar_favourites_view_parent_class = g_type_class_peek_parent (klass); + gtkwidget_class = GTK_WIDGET_CLASS (klass); gtkwidget_class->button_press_event = thunar_favourites_view_button_press_event; gtkwidget_class->drag_data_received = thunar_favourites_view_drag_data_received; @@ -150,7 +182,7 @@ thunar_favourites_view_class_init (ThunarFavouritesViewClass *klass) * Invoked whenever a favourite is activated by the user. **/ view_signals[FAVOURITE_ACTIVATED] = - g_signal_new ("favourite-activated", + g_signal_new (I_("favourite-activated"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarFavouritesViewClass, favourite_activated), @@ -290,7 +322,7 @@ thunar_favourites_view_button_press_event (GtkWidget *widget, /* append the remove menu item */ item = gtk_image_menu_item_new_with_mnemonic (_("_Remove Favourite")); - g_object_set_data_full (G_OBJECT (item), "thunar-favourites-row", + g_object_set_data_full (G_OBJECT (item), I_("thunar-favourites-row"), gtk_tree_row_reference_new (model, path), (GDestroyNotify) gtk_tree_row_reference_free); g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (thunar_favourites_view_remove_activated), widget); @@ -305,7 +337,7 @@ thunar_favourites_view_button_press_event (GtkWidget *widget, /* append the rename menu item */ item = gtk_image_menu_item_new_with_mnemonic (_("Re_name Favourite")); - g_object_set_data_full (G_OBJECT (item), "thunar-favourites-row", + g_object_set_data_full (G_OBJECT (item), I_("thunar-favourites-row"), gtk_tree_row_reference_new (model, path), (GDestroyNotify) gtk_tree_row_reference_free); g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (thunar_favourites_view_rename_activated), widget); @@ -481,7 +513,7 @@ thunar_favourites_view_remove_activated (GtkWidget *item, GtkTreeModel *model; GtkTreePath *path; - row = g_object_get_data (G_OBJECT (item), "thunar-favourites-row"); + row = g_object_get_data (G_OBJECT (item), I_("thunar-favourites-row")); path = gtk_tree_row_reference_get_path (row); if (G_LIKELY (path != NULL)) { @@ -503,7 +535,7 @@ thunar_favourites_view_rename_activated (GtkWidget *item, GtkTreePath *path; GList *renderers; - row = g_object_get_data (G_OBJECT (item), "thunar-favourites-row"); + row = g_object_get_data (G_OBJECT (item), I_("thunar-favourites-row")); path = gtk_tree_row_reference_get_path (row); if (G_LIKELY (path != NULL)) { diff --git a/thunar/thunar-file.c b/thunar/thunar-file.c index d7dd46a0e0fab01102a8db2f822db282448129ec..d54efb46720501b4894c4a836ba4f11cf3d107af 100644 --- a/thunar/thunar-file.c +++ b/thunar/thunar-file.c @@ -133,8 +133,7 @@ thunar_file_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_OBJECT, "ThunarFile", &info, 0); - + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarFile"), &info, 0); g_type_add_interface_static (type, THUNARX_TYPE_FILE_INFO, &file_info_info); } @@ -213,7 +212,7 @@ thunar_file_class_init (ThunarFileClass *klass) * Emitted whenever the system notices a change to @file. **/ file_signals[CHANGED] = - g_signal_new ("changed", + g_signal_new (I_("changed"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (ThunarFileClass, changed), @@ -229,7 +228,7 @@ thunar_file_class_init (ThunarFileClass *klass) * was destroyed. **/ file_signals[DESTROY] = - g_signal_new ("destroy", + g_signal_new (I_("destroy"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_CLEANUP | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, G_STRUCT_OFFSET (ThunarFileClass, destroy), @@ -246,7 +245,7 @@ thunar_file_class_init (ThunarFileClass *klass) * reregister it's VFS directory monitor. **/ file_signals[RENAMED] = - g_signal_new ("renamed", + g_signal_new (I_("renamed"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (ThunarFileClass, renamed), diff --git a/thunar/thunar-folder.c b/thunar/thunar-folder.c index c7b0368cc7455488818120f295a922138c77cda9..fa9055fba94acecc83a03129dfa86fd250d714cc 100644 --- a/thunar/thunar-folder.c +++ b/thunar/thunar-folder.c @@ -104,12 +104,38 @@ struct _ThunarFolder -static guint folder_signals[LAST_SIGNAL]; -static GQuark thunar_folder_quark; +static GObjectClass *thunar_folder_parent_class; +static guint folder_signals[LAST_SIGNAL]; +static GQuark thunar_folder_quark; -G_DEFINE_TYPE (ThunarFolder, thunar_folder, GTK_TYPE_OBJECT); +GType +thunar_folder_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarFolderClass), + NULL, + NULL, + (GClassInitFunc) thunar_folder_class_init, + NULL, + NULL, + sizeof (ThunarFolder), + 0, + (GInstanceInitFunc) thunar_folder_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_OBJECT, I_("ThunarFolder"), &info, 0); + } + + return type; +} @@ -118,6 +144,9 @@ thunar_folder_class_init (ThunarFolderClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_folder_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_folder_finalize; gobject_class->get_property = thunar_folder_get_property; @@ -145,7 +174,7 @@ thunar_folder_class_init (ThunarFolderClass *klass) * load the directory content because of an error. **/ folder_signals[ERROR] = - g_signal_new ("error", + g_signal_new (I_("error"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarFolderClass, error), @@ -160,7 +189,7 @@ thunar_folder_class_init (ThunarFolderClass *klass) * been added to a particular folder. **/ folder_signals[FILES_ADDED] = - g_signal_new ("files-added", + g_signal_new (I_("files-added"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarFolderClass, files_added), @@ -177,7 +206,7 @@ thunar_folder_class_init (ThunarFolderClass *klass) * the reload of folders, which take longer to load. **/ folder_signals[FILES_REMOVED] = - g_signal_new ("files-removed", + g_signal_new (I_("files-removed"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarFolderClass, files_removed), diff --git a/thunar/thunar-history.c b/thunar/thunar-history.c index 29d4c14862d53a3a9af5326beae415408bb28857..146139689a7f7416a4d14d9b0e1ea70639451bfd 100644 --- a/thunar/thunar-history.c +++ b/thunar/thunar-history.c @@ -81,11 +81,44 @@ struct _ThunarHistory -G_DEFINE_TYPE_WITH_CODE (ThunarHistory, - thunar_history, - G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, - thunar_history_navigator_init)); +static GObjectClass *thunar_history_parent_class; + + + +GType +thunar_history_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarHistoryClass), + NULL, + NULL, + (GClassInitFunc) thunar_history_class_init, + NULL, + NULL, + sizeof (ThunarHistory), + 0, + (GInstanceInitFunc) thunar_history_init, + NULL, + }; + + static const GInterfaceInfo navigator_info = + { + (GInterfaceInitFunc) thunar_history_navigator_init, + NULL, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarHistory"), &info, 0); + g_type_add_interface_static (type, THUNAR_TYPE_NAVIGATOR, &navigator_info); + } + + return type; +} @@ -94,6 +127,9 @@ thunar_history_class_init (ThunarHistoryClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_history_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_history_dispose; gobject_class->finalize = thunar_history_finalize; diff --git a/thunar/thunar-icon-factory.c b/thunar/thunar-icon-factory.c index 56c7b99fa7fdf147bcfa500989dc4bbe2391c069..226cb8c367525b3490330574b363ef699dc20bbd 100644 --- a/thunar/thunar-icon-factory.c +++ b/thunar/thunar-icon-factory.c @@ -32,8 +32,6 @@ #include <string.h> #endif -#include <exo/exo.h> - #include <thunar/thunar-fallback-icon.h> #include <thunar/thunar-gdk-pixbuf-extensions.h> #include <thunar/thunar-icon-factory.h> @@ -128,12 +126,38 @@ struct _ThunarIconKey -static GQuark thunar_icon_factory_quark = 0; -static GQuark thunar_file_thumb_path_quark = 0; +static GObjectClass *thunar_icon_factory_parent_class = NULL; +static GQuark thunar_icon_factory_quark = 0; +static GQuark thunar_file_thumb_path_quark = 0; -G_DEFINE_TYPE (ThunarIconFactory, thunar_icon_factory, G_TYPE_OBJECT); +GType +thunar_icon_factory_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarIconFactoryClass), + NULL, + NULL, + (GClassInitFunc) thunar_icon_factory_class_init, + NULL, + NULL, + sizeof (ThunarIconFactory), + 0, + (GInstanceInitFunc) thunar_icon_factory_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarIconFactory"), &info, 0); + } + + return type; +} @@ -142,6 +166,9 @@ thunar_icon_factory_class_init (ThunarIconFactoryClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_icon_factory_parent_class = g_type_class_peek_parent (klass); + /* setup the thunar-file-thumb-path quark */ thunar_file_thumb_path_quark = g_quark_from_static_string ("thunar-file-thumb-path"); diff --git a/thunar/thunar-icon-renderer.c b/thunar/thunar-icon-renderer.c index b48a9bb463d28e032374c67007acfe59db039bd1..e749e7367c1d767a46c61c78f5a23c155dc0bc01 100644 --- a/thunar/thunar-icon-renderer.c +++ b/thunar/thunar-icon-renderer.c @@ -85,7 +85,36 @@ struct _ThunarIconRenderer -G_DEFINE_TYPE (ThunarIconRenderer, thunar_icon_renderer, GTK_TYPE_CELL_RENDERER); +static GObjectClass *thunar_icon_renderer_parent_class; + + + +GType +thunar_icon_renderer_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarIconRendererClass), + NULL, + NULL, + (GClassInitFunc) thunar_icon_renderer_class_init, + NULL, + NULL, + sizeof (ThunarIconRenderer), + 0, + (GInstanceInitFunc) thunar_icon_renderer_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_CELL_RENDERER, I_("ThunarIconRenderer"), &info, 0); + } + + return type; +} @@ -95,6 +124,9 @@ thunar_icon_renderer_class_init (ThunarIconRendererClass *klass) GtkCellRendererClass *gtkcell_renderer_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_icon_renderer_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_icon_renderer_finalize; gobject_class->get_property = thunar_icon_renderer_get_property; diff --git a/thunar/thunar-icon-view.c b/thunar/thunar-icon-view.c index 488b31e62c4cffe7d13ce25118254e1a71379d38..453d000baf4697c5e5a2e5f90a2222203dd804b8 100644 --- a/thunar/thunar-icon-view.c +++ b/thunar/thunar-icon-view.c @@ -140,7 +140,36 @@ static const GtkRadioActionEntry order_action_entries[] = -G_DEFINE_TYPE (ThunarIconView, thunar_icon_view, THUNAR_TYPE_STANDARD_VIEW); +static GObjectClass *thunar_icon_view_parent_class; + + + +GType +thunar_icon_view_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarIconViewClass), + NULL, + NULL, + (GClassInitFunc) thunar_icon_view_class_init, + NULL, + NULL, + sizeof (ThunarIconView), + 0, + (GInstanceInitFunc) thunar_icon_view_init, + NULL, + }; + + type = g_type_register_static (THUNAR_TYPE_STANDARD_VIEW, I_("ThunarIconView"), &info, 0); + } + + return type; +} @@ -151,6 +180,9 @@ thunar_icon_view_class_init (ThunarIconViewClass *klass) GtkWidgetClass *gtkwidget_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_icon_view_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->set_property = thunar_icon_view_set_property; diff --git a/thunar/thunar-launcher.c b/thunar/thunar-launcher.c index 1adf59d44c3dc31bce64fdadfe28742be7fc3ca9..bb1b2db3cc0b239eb7d37a66d437ede3f7b4ea70 100644 --- a/thunar/thunar-launcher.c +++ b/thunar/thunar-launcher.c @@ -103,11 +103,37 @@ struct _ThunarLauncher -static guint launcher_signals[LAST_SIGNAL]; +static GObjectClass *thunar_launcher_parent_class; +static guint launcher_signals[LAST_SIGNAL]; -G_DEFINE_TYPE (ThunarLauncher, thunar_launcher, G_TYPE_OBJECT); +GType +thunar_launcher_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarLauncherClass), + NULL, + NULL, + (GClassInitFunc) thunar_launcher_class_init, + NULL, + NULL, + sizeof (ThunarLauncher), + 0, + (GInstanceInitFunc) thunar_launcher_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarLauncher"), &info, 0); + } + + return type; +} @@ -116,6 +142,9 @@ thunar_launcher_class_init (ThunarLauncherClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_launcher_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_launcher_dispose; gobject_class->finalize = thunar_launcher_finalize; @@ -171,7 +200,7 @@ thunar_launcher_class_init (ThunarLauncherClass *klass) * based on the @launcher in the current window (if possible). **/ launcher_signals[OPEN_DIRECTORY] = - g_signal_new ("open-directory", + g_signal_new (I_("open-directory"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarLauncherClass, open_directory), diff --git a/thunar/thunar-list-model.c b/thunar/thunar-list-model.c index b2113527010cb13eed18a9a22b7221df302eed75..1d1d3a5222ee64631177899713495a32c96bcb56 100644 --- a/thunar/thunar-list-model.c +++ b/thunar/thunar-list-model.c @@ -220,19 +220,61 @@ struct _SortTuple -static guint list_model_signals[LAST_SIGNAL]; +static GObjectClass *thunar_list_model_parent_class; +static guint list_model_signals[LAST_SIGNAL]; -G_DEFINE_TYPE_WITH_CODE (ThunarListModel, - thunar_list_model, - G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL, - thunar_list_model_tree_model_init) - G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_DRAG_DEST, - thunar_list_model_drag_dest_init) - G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_SORTABLE, - thunar_list_model_sortable_init)); +GType +thunar_list_model_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarListModelClass), + NULL, + NULL, + (GClassInitFunc) thunar_list_model_class_init, + NULL, + NULL, + sizeof (ThunarListModel), + 0, + (GInstanceInitFunc) thunar_list_model_init, + NULL, + }; + + static const GInterfaceInfo tree_model_info = + { + (GInterfaceInitFunc) thunar_list_model_tree_model_init, + NULL, + NULL, + }; + + static const GInterfaceInfo drag_dest_info = + { + (GInterfaceInitFunc) thunar_list_model_drag_dest_init, + NULL, + NULL, + }; + + static const GInterfaceInfo sortable_info = + { + (GInterfaceInitFunc) thunar_list_model_sortable_init, + NULL, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarListModel"), &info, 0); + g_type_add_interface_static (type, GTK_TYPE_TREE_MODEL, &tree_model_info); + g_type_add_interface_static (type, GTK_TYPE_TREE_DRAG_DEST, &drag_dest_info); + g_type_add_interface_static (type, GTK_TYPE_TREE_SORTABLE, &sortable_info); + } + + return type; +} @@ -241,6 +283,9 @@ thunar_list_model_class_init (ThunarListModelClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_list_model_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_list_model_finalize; gobject_class->dispose = thunar_list_model_dispose; @@ -308,7 +353,7 @@ thunar_list_model_class_init (ThunarListModelClass *klass) * @store content. **/ list_model_signals[ERROR] = - g_signal_new ("error", + g_signal_new (I_("error"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarListModelClass, error), diff --git a/thunar/thunar-location-bar.c b/thunar/thunar-location-bar.c index a2b602fea66e5fb959af04461322dfffe6c91ce7..c7b4a7ffc760bfaff2864598d379c66790fb8644 100644 --- a/thunar/thunar-location-bar.c +++ b/thunar/thunar-location-bar.c @@ -45,10 +45,7 @@ thunar_location_bar_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_INTERFACE, - "ThunarLocationBar", - &info, 0); - + type = g_type_register_static (G_TYPE_INTERFACE, I_("ThunarLocationBar"), &info, 0); g_type_interface_add_prerequisite (type, THUNAR_TYPE_NAVIGATOR); } diff --git a/thunar/thunar-location-buttons.c b/thunar/thunar-location-buttons.c index c1979d6d80ada98475d6fdd929294dc2a877ef6f..79a5665198c450c3cb266210d71463caa1217286 100644 --- a/thunar/thunar-location-buttons.c +++ b/thunar/thunar-location-buttons.c @@ -162,13 +162,52 @@ static const GtkTargetEntry drag_targets[] = -G_DEFINE_TYPE_WITH_CODE (ThunarLocationButtons, - thunar_location_buttons, - GTK_TYPE_CONTAINER, - G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, - thunar_location_buttons_navigator_init) - G_IMPLEMENT_INTERFACE (THUNAR_TYPE_LOCATION_BAR, - thunar_location_buttons_location_bar_init)); +static GObjectClass *thunar_location_buttons_parent_class; + + + +GType +thunar_location_buttons_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarLocationButtonsClass), + NULL, + NULL, + (GClassInitFunc) thunar_location_buttons_class_init, + NULL, + NULL, + sizeof (ThunarLocationButtons), + 0, + (GInstanceInitFunc) thunar_location_buttons_init, + NULL, + }; + + static const GInterfaceInfo navigator_info = + { + (GInterfaceInitFunc) thunar_location_buttons_navigator_init, + NULL, + NULL, + }; + + static const GInterfaceInfo location_bar_info = + { + (GInterfaceInitFunc) thunar_location_buttons_location_bar_init, + NULL, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_CONTAINER, I_("ThunarLocationButtons"), &info, 0); + g_type_add_interface_static (type, THUNAR_TYPE_NAVIGATOR, &navigator_info); + g_type_add_interface_static (type, THUNAR_TYPE_LOCATION_BAR, &location_bar_info); + } + + return type; +} @@ -179,6 +218,9 @@ thunar_location_buttons_class_init (ThunarLocationButtonsClass *klass) GtkWidgetClass *gtkwidget_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_location_buttons_parent_class = g_type_class_peek_parent (klass); + gtk_label_quark = g_quark_from_static_string ("gtk-label"); thunar_file_quark = g_quark_from_static_string ("thunar-file"); diff --git a/thunar/thunar-location-dialog.c b/thunar/thunar-location-dialog.c index c912adf1026620a903805796c004526932262a54..288d11c4b2b20ecff899a7abf7d56abcaf5515a1 100644 --- a/thunar/thunar-location-dialog.c +++ b/thunar/thunar-location-dialog.c @@ -26,8 +26,7 @@ -static void thunar_location_dialog_class_init (ThunarLocationDialogClass *klass); -static void thunar_location_dialog_init (ThunarLocationDialog *location_dialog); +static void thunar_location_dialog_init (ThunarLocationDialog *location_dialog); @@ -45,13 +44,31 @@ struct _ThunarLocationDialog -G_DEFINE_TYPE (ThunarLocationDialog, thunar_location_dialog, GTK_TYPE_DIALOG); - - - -static void -thunar_location_dialog_class_init (ThunarLocationDialogClass *klass) +GType +thunar_location_dialog_get_type (void) { + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarLocationDialogClass), + NULL, + NULL, + NULL, + NULL, + NULL, + sizeof (ThunarLocationDialog), + 0, + (GInstanceInitFunc) thunar_location_dialog_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_DIALOG, I_("ThunarLocationDialog"), &info, 0); + } + + return type; } diff --git a/thunar/thunar-location-entry.c b/thunar/thunar-location-entry.c index 9b068fcf11220890b1cf5ad05b7960da24d7c81f..459d8fc55b9af6f8d440535eec172b6dc2e8bfff 100644 --- a/thunar/thunar-location-entry.c +++ b/thunar/thunar-location-entry.c @@ -70,13 +70,52 @@ struct _ThunarLocationEntry -G_DEFINE_TYPE_WITH_CODE (ThunarLocationEntry, - thunar_location_entry, - GTK_TYPE_HBOX, - G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, - thunar_location_entry_navigator_init) - G_IMPLEMENT_INTERFACE (THUNAR_TYPE_LOCATION_BAR, - thunar_location_entry_location_bar_init)); +static GObjectClass *thunar_location_entry_parent_class; + + + +GType +thunar_location_entry_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarLocationEntryClass), + NULL, + NULL, + (GClassInitFunc) thunar_location_entry_class_init, + NULL, + NULL, + sizeof (ThunarLocationEntry), + 0, + (GInstanceInitFunc) thunar_location_entry_init, + NULL, + }; + + static const GInterfaceInfo navigator_info = + { + (GInterfaceInitFunc) thunar_location_entry_navigator_init, + NULL, + NULL, + }; + + static const GInterfaceInfo location_bar_info = + { + (GInterfaceInitFunc) thunar_location_entry_location_bar_init, + NULL, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_HBOX, I_("ThunarLocationEntry"), &info, 0); + g_type_add_interface_static (type, THUNAR_TYPE_NAVIGATOR, &navigator_info); + g_type_add_interface_static (type, THUNAR_TYPE_LOCATION_BAR, &location_bar_info); + } + + return type; +} @@ -85,6 +124,9 @@ thunar_location_entry_class_init (ThunarLocationEntryClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_location_entry_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_location_entry_finalize; gobject_class->get_property = thunar_location_entry_get_property; diff --git a/thunar/thunar-metafile.c b/thunar/thunar-metafile.c index cb7e08c2e63eafe2688c1fed69a643c5cce9e296..8783ad8ea39d657478adaaf8327850b124da8e99 100644 --- a/thunar/thunar-metafile.c +++ b/thunar/thunar-metafile.c @@ -66,7 +66,36 @@ struct _ThunarMetafile -G_DEFINE_TYPE (ThunarMetafile, thunar_metafile, G_TYPE_OBJECT); +static GObjectClass *thunar_metafile_parent_class; + + + +GType +thunar_metafile_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarMetafileClass), + NULL, + NULL, + (GClassInitFunc) thunar_metafile_class_init, + NULL, + NULL, + sizeof (ThunarMetafile), + 0, + (GInstanceInitFunc) thunar_metafile_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarMetafile"), &info, 0); + } + + return type; +} @@ -75,6 +104,9 @@ thunar_metafile_class_init (ThunarMetafileClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_metafile_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_metafile_finalize; } diff --git a/thunar/thunar-navigator.c b/thunar/thunar-navigator.c index 047a0efd8e92ad492f980162d9ea3fc0e5bbfaa9..75db0393e8d3953b9158513f28cc3f3b436ec91b 100644 --- a/thunar/thunar-navigator.c +++ b/thunar/thunar-navigator.c @@ -62,9 +62,7 @@ thunar_navigator_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_INTERFACE, - "ThunarNavigator", - &info, 0); + type = g_type_register_static (G_TYPE_INTERFACE, I_("ThunarNavigator"), &info, 0); } return type; @@ -99,7 +97,7 @@ thunar_navigator_base_init (gpointer klass) * or the "current-directory" property. **/ navigator_signals[CHANGE_DIRECTORY] = - g_signal_new ("change-directory", + g_signal_new (I_("change-directory"), G_TYPE_FROM_INTERFACE (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarNavigatorIface, change_directory), diff --git a/thunar/thunar-open-with-action.c b/thunar/thunar-open-with-action.c index b7829549a192614b0a6fdd024442d780718f0986..e8f36803de07375322dc540ea007702fd32b1b03 100644 --- a/thunar/thunar-open-with-action.c +++ b/thunar/thunar-open-with-action.c @@ -82,9 +82,37 @@ struct _ThunarOpenWithAction -static guint open_with_action_signals[LAST_SIGNAL]; +static GObjectClass *thunar_open_with_action_parent_class; +static guint open_with_action_signals[LAST_SIGNAL]; -G_DEFINE_TYPE (ThunarOpenWithAction, thunar_open_with_action, GTK_TYPE_ACTION); + + +GType +thunar_open_with_action_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarOpenWithActionClass), + NULL, + NULL, + (GClassInitFunc) thunar_open_with_action_class_init, + NULL, + NULL, + sizeof (ThunarOpenWithAction), + 0, + (GInstanceInitFunc) thunar_open_with_action_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_ACTION, I_("ThunarOpenWithAction"), &info, 0); + } + + return type; +} @@ -94,6 +122,9 @@ thunar_open_with_action_class_init (ThunarOpenWithActionClass *klass) GtkActionClass *gtkaction_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_open_with_action_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_open_with_action_dispose; gobject_class->finalize = thunar_open_with_action_finalize; @@ -127,7 +158,7 @@ thunar_open_with_action_class_init (ThunarOpenWithActionClass *klass) * open @path_list with @application. **/ open_with_action_signals[OPEN_APPLICATION] = - g_signal_new ("open-application", + g_signal_new (I_("open-application"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarOpenWithActionClass, open_application), @@ -251,7 +282,7 @@ thunar_open_with_action_activated (GtkWidget *item, return; /* query the launch parameters for this application item */ - application = g_object_get_data (G_OBJECT (item), "thunar-vfs-mime-application"); + application = g_object_get_data (G_OBJECT (item), I_("thunar-vfs-mime-application")); /* generate a single item list */ path_list.data = thunar_file_get_path (file); @@ -319,7 +350,7 @@ thunar_open_with_action_menu_mapped (GtkWidget *menu, text = g_strdup_printf (_("%s (default)"), thunar_vfs_mime_application_get_name (default_application)); item = gtk_image_menu_item_new_with_label (text); - g_object_set_data_full (G_OBJECT (item), "thunar-vfs-mime-application", default_application, (GDestroyNotify) thunar_vfs_mime_application_unref); + g_object_set_data_full (G_OBJECT (item), I_("thunar-vfs-mime-application"), default_application, (GDestroyNotify) thunar_vfs_mime_application_unref); g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (thunar_open_with_action_activated), open_with_action); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); @@ -345,7 +376,7 @@ thunar_open_with_action_menu_mapped (GtkWidget *menu, for (lp = applications; lp != NULL; lp = lp->next) { item = gtk_image_menu_item_new_with_label (thunar_vfs_mime_application_get_name (lp->data)); - g_object_set_data_full (G_OBJECT (item), "thunar-vfs-mime-application", lp->data, (GDestroyNotify) thunar_vfs_mime_application_unref); + g_object_set_data_full (G_OBJECT (item), I_("thunar-vfs-mime-application"), lp->data, (GDestroyNotify) thunar_vfs_mime_application_unref); g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (thunar_open_with_action_activated), open_with_action); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); diff --git a/thunar/thunar-path-entry.c b/thunar/thunar-path-entry.c index 2961581493961fa8a42ac098b4d191ca4b38b447..9f46a5888c54f1a015d7d5656a9f164231e5bd7f 100644 --- a/thunar/thunar-path-entry.c +++ b/thunar/thunar-path-entry.c @@ -50,7 +50,6 @@ enum static void thunar_path_entry_class_init (ThunarPathEntryClass *klass); static void thunar_path_entry_editable_init (GtkEditableClass *iface); -static void thunar_path_entry_init (ThunarPathEntry *path_entry); static void thunar_path_entry_finalize (GObject *object); static void thunar_path_entry_get_property (GObject *object, guint prop_id, @@ -119,13 +118,47 @@ static const GtkTargetEntry drag_targets[] = { "text/uri-list", 0, 0, }, }; + + static GtkEditableClass *thunar_path_entry_editable_parent_iface; +static GObjectClass *thunar_path_entry_parent_class; + -G_DEFINE_TYPE_WITH_CODE (ThunarPathEntry, - thunar_path_entry, - GTK_TYPE_ENTRY, - G_IMPLEMENT_INTERFACE (GTK_TYPE_EDITABLE, - thunar_path_entry_editable_init)); + +GType +thunar_path_entry_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarPathEntryClass), + NULL, + NULL, + (GClassInitFunc) thunar_path_entry_class_init, + NULL, + NULL, + sizeof (ThunarPathEntry), + 0, + NULL, + NULL, + }; + + static const GInterfaceInfo editable_info = + { + (GInterfaceInitFunc) thunar_path_entry_editable_init, + NULL, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_ENTRY, I_("ThunarPathEntry"), &info, 0); + g_type_add_interface_static (type, GTK_TYPE_EDITABLE, &editable_info); + } + + return type; +} @@ -136,6 +169,9 @@ thunar_path_entry_class_init (ThunarPathEntryClass *klass) GtkEntryClass *gtkentry_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_path_entry_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_path_entry_finalize; gobject_class->get_property = thunar_path_entry_get_property; @@ -193,14 +229,6 @@ thunar_path_entry_editable_init (GtkEditableClass *iface) -static void -thunar_path_entry_init (ThunarPathEntry *path_entry) -{ - path_entry->drag_button = -1; -} - - - static void thunar_path_entry_finalize (GObject *object) { @@ -506,7 +534,7 @@ thunar_path_entry_button_release_event (GtkWidget *widget, if (event->window == path_entry->icon_area && event->button == path_entry->drag_button) { /* reset the drag button state */ - path_entry->drag_button = -1; + path_entry->drag_button = 0; return TRUE; } @@ -525,7 +553,7 @@ thunar_path_entry_motion_notify_event (GtkWidget *widget, GdkPixbuf *icon; gint size; - if (event->window == path_entry->icon_area && path_entry->drag_button >= 0 && path_entry->current_file != NULL + if (event->window == path_entry->icon_area && path_entry->drag_button > 0 && path_entry->current_file != NULL && gtk_drag_check_threshold (widget, path_entry->drag_x, path_entry->drag_y, event->x, event->y)) { /* create the drag context */ @@ -543,7 +571,7 @@ thunar_path_entry_motion_notify_event (GtkWidget *widget, } /* reset the drag button state */ - path_entry->drag_button = -1; + path_entry->drag_button = 0; return TRUE; } diff --git a/thunar/thunar-preferences-dialog.c b/thunar/thunar-preferences-dialog.c index 3cde958f80574ab72f47d0b6b468f3391ea8aa6e..2b0a4a1eea67b1386cd541aca7d774b30ba7b1ba 100644 --- a/thunar/thunar-preferences-dialog.c +++ b/thunar/thunar-preferences-dialog.c @@ -53,7 +53,36 @@ struct _ThunarPreferencesDialog -G_DEFINE_TYPE (ThunarPreferencesDialog, thunar_preferences_dialog, GTK_TYPE_DIALOG); +static GObjectClass *thunar_preferences_dialog_parent_class; + + + +GType +thunar_preferences_dialog_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarPreferencesDialogClass), + NULL, + NULL, + (GClassInitFunc) thunar_preferences_dialog_class_init, + NULL, + NULL, + sizeof (ThunarPreferencesDialog), + 0, + (GInstanceInitFunc) thunar_preferences_dialog_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_DIALOG, I_("ThunarPreferencesDialog"), &info, 0); + } + + return type; +} @@ -108,6 +137,9 @@ thunar_preferences_dialog_class_init (ThunarPreferencesDialogClass *klass) GtkDialogClass *gtkdialog_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_preferences_dialog_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_preferences_dialog_finalize; diff --git a/thunar/thunar-preferences.c b/thunar/thunar-preferences.c index 9ab063d98b8219126d0d957c36b3cffcdcf2a537..518354720fdf73a036c552f5bf9f7fd18677aaaa 100644 --- a/thunar/thunar-preferences.c +++ b/thunar/thunar-preferences.c @@ -91,7 +91,36 @@ struct _ThunarPreferences -G_DEFINE_TYPE (ThunarPreferences, thunar_preferences, G_TYPE_OBJECT); +static GObjectClass *thunar_preferences_parent_class; + + + +GType +thunar_preferences_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarPreferencesClass), + NULL, + NULL, + (GClassInitFunc) thunar_preferences_class_init, + NULL, + NULL, + sizeof (ThunarPreferences), + 0, + (GInstanceInitFunc) thunar_preferences_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarPreferences"), &info, 0); + } + + return type; +} @@ -100,6 +129,9 @@ thunar_preferences_class_init (ThunarPreferencesClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_preferences_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_preferences_finalize; gobject_class->get_property = thunar_preferences_get_property; diff --git a/thunar/thunar-progress-dialog.c b/thunar/thunar-progress-dialog.c index b0ff845032e613aa68db6e189c5e0f84ddef6a6b..1c06f0c2c0d91dd9d92a09e56151a439b11e3bfb 100644 --- a/thunar/thunar-progress-dialog.c +++ b/thunar/thunar-progress-dialog.c @@ -88,7 +88,36 @@ struct _ThunarProgressDialog -G_DEFINE_TYPE (ThunarProgressDialog, thunar_progress_dialog, GTK_TYPE_DIALOG); +static GObjectClass *thunar_progress_dialog_parent_class; + + + +GType +thunar_progress_dialog_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarProgressDialogClass), + NULL, + NULL, + (GClassInitFunc) thunar_progress_dialog_class_init, + NULL, + NULL, + sizeof (ThunarProgressDialog), + 0, + (GInstanceInitFunc) thunar_progress_dialog_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_DIALOG, I_("ThunarProgressDialog"), &info, 0); + } + + return type; +} @@ -109,6 +138,9 @@ thunar_progress_dialog_class_init (ThunarProgressDialogClass *klass) GtkDialogClass *gtkdialog_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_progress_dialog_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_progress_dialog_dispose; gobject_class->get_property = thunar_progress_dialog_get_property; diff --git a/thunar/thunar-properties-dialog.c b/thunar/thunar-properties-dialog.c index 7a0f73fb7ac898b1113da39aae38c8499fcca7b2..67ed7db39fdfbf0e6fb9b83cfc29b44dfe5bd375 100644 --- a/thunar/thunar-properties-dialog.c +++ b/thunar/thunar-properties-dialog.c @@ -103,7 +103,36 @@ struct _ThunarPropertiesDialog -G_DEFINE_TYPE (ThunarPropertiesDialog, thunar_properties_dialog, GTK_TYPE_DIALOG); +static GObjectClass *thunar_properties_dialog_parent_class; + + + +GType +thunar_properties_dialog_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarPropertiesDialogClass), + NULL, + NULL, + (GClassInitFunc) thunar_properties_dialog_class_init, + NULL, + NULL, + sizeof (ThunarPropertiesDialog), + 0, + (GInstanceInitFunc) thunar_properties_dialog_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_DIALOG, I_("ThunarPropertiesDialog"), &info, 0); + } + + return type; +} @@ -114,6 +143,9 @@ thunar_properties_dialog_class_init (ThunarPropertiesDialogClass *klass) GtkWidgetClass *gtkwidget_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_properties_dialog_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_properties_dialog_dispose; gobject_class->finalize = thunar_properties_dialog_finalize; diff --git a/thunar/thunar-side-pane.c b/thunar/thunar-side-pane.c index 1c1e24441a7098f021f452cb957d6dbcde27ed79..f75110b7d8529ec15b5af37c17debf37bfab1baf 100644 --- a/thunar/thunar-side-pane.c +++ b/thunar/thunar-side-pane.c @@ -45,10 +45,7 @@ thunar_side_pane_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_INTERFACE, - "ThunarSidePane", - &info, 0); - + type = g_type_register_static (G_TYPE_INTERFACE, I_("ThunarSidePane"), &info, 0); g_type_interface_add_prerequisite (type, GTK_TYPE_WIDGET); g_type_interface_add_prerequisite (type, THUNAR_TYPE_NAVIGATOR); } diff --git a/thunar/thunar-standard-view.c b/thunar/thunar-standard-view.c index 148c13faed03845584991922f17d8f2136ad471e..2b0a73e09500a794fd34f73b18b41230a5e0eda5 100644 --- a/thunar/thunar-standard-view.c +++ b/thunar/thunar-standard-view.c @@ -320,10 +320,7 @@ thunar_standard_view_get_type (void) NULL, }; - type = g_type_register_static (GTK_TYPE_SCROLLED_WINDOW, - "ThunarStandardView", - &info, G_TYPE_FLAG_ABSTRACT); - + type = g_type_register_static (GTK_TYPE_SCROLLED_WINDOW, I_("ThunarStandardView"), &info, G_TYPE_FLAG_ABSTRACT); g_type_add_interface_static (type, THUNAR_TYPE_NAVIGATOR, &navigator_info); g_type_add_interface_static (type, THUNAR_TYPE_VIEW, &view_info); } @@ -386,7 +383,7 @@ thunar_standard_view_class_init (ThunarStandardViewClass *klass) * is an internal signal used to bind the action to keys. **/ standard_view_signals[DELETE_SELECTED_FILES] = - g_signal_new ("delete-selected-files", + g_signal_new (I_("delete-selected-files"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (ThunarStandardViewClass, delete_selected_files), @@ -2225,8 +2222,10 @@ thunar_standard_view_loading_unbound (gpointer user_data) if (G_UNLIKELY (standard_view->loading)) { standard_view->loading = FALSE; + g_object_freeze_notify (G_OBJECT (standard_view)); g_object_notify (G_OBJECT (standard_view), "loading"); g_object_notify (G_OBJECT (standard_view), "statusbar-text"); + g_object_thaw_notify (G_OBJECT (standard_view)); } } diff --git a/thunar/thunar-statusbar.c b/thunar/thunar-statusbar.c index 2004d416deaa0bc62fd731b63d31ab129626be58..3f1a673062fb7a36e0d929d95995620e9e242b37 100644 --- a/thunar/thunar-statusbar.c +++ b/thunar/thunar-statusbar.c @@ -148,7 +148,7 @@ thunar_statusbar_icon_get_type (void) NULL, }; - type = g_type_register_static (GTK_TYPE_WIDGET, "ThunarStatusbarIcon", &info, 0); + type = g_type_register_static (GTK_TYPE_WIDGET, I_("ThunarStatusbarIcon"), &info, 0); } return type; @@ -708,11 +708,40 @@ struct _ThunarStatusbar -G_DEFINE_TYPE_WITH_CODE (ThunarStatusbar, - thunar_statusbar, - GTK_TYPE_STATUSBAR, - G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, - thunar_statusbar_navigator_init)); +GType +thunar_statusbar_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarStatusbarClass), + NULL, + NULL, + (GClassInitFunc) thunar_statusbar_class_init, + NULL, + NULL, + sizeof (ThunarStatusbar), + 0, + (GInstanceInitFunc) thunar_statusbar_init, + NULL, + }; + + static const GInterfaceInfo navigator_info = + { + (GInterfaceInitFunc) thunar_statusbar_navigator_init, + NULL, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_STATUSBAR, I_("ThunarStatusbar"), &info, 0); + g_type_add_interface_static (type, THUNAR_TYPE_NAVIGATOR, &navigator_info); + } + + return type; +} diff --git a/thunar/thunar-text-renderer.c b/thunar/thunar-text-renderer.c index f4f7344ae149b9329d06df893197ba33e2bd9f12..c1d232f2440d5f90bb8f6c7266e3eb079f0f705f 100644 --- a/thunar/thunar-text-renderer.c +++ b/thunar/thunar-text-renderer.c @@ -134,11 +134,37 @@ struct _ThunarTextRenderer -static guint text_renderer_signals[LAST_SIGNAL]; +static GObjectClass *thunar_text_renderer_parent_class; +static guint text_renderer_signals[LAST_SIGNAL]; -G_DEFINE_TYPE (ThunarTextRenderer, thunar_text_renderer, GTK_TYPE_CELL_RENDERER); +GType +thunar_text_renderer_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarTextRendererClass), + NULL, + NULL, + (GClassInitFunc) thunar_text_renderer_class_init, + NULL, + NULL, + sizeof (ThunarTextRenderer), + 0, + (GInstanceInitFunc) thunar_text_renderer_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_CELL_RENDERER, I_("ThunarTextRenderer"), &info, 0); + } + + return type; +} @@ -148,6 +174,9 @@ thunar_text_renderer_class_init (ThunarTextRendererClass *klass) GtkCellRendererClass *gtkcell_renderer_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_text_renderer_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_text_renderer_finalize; gobject_class->get_property = thunar_text_renderer_get_property; @@ -228,7 +257,7 @@ thunar_text_renderer_class_init (ThunarTextRendererClass *klass) * Emitted whenever the user successfully edits a cell. **/ text_renderer_signals[EDITED] = - g_signal_new ("edited", + g_signal_new (I_("edited"), G_OBJECT_CLASS_TYPE (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThunarTextRendererClass, edited), @@ -256,7 +285,7 @@ thunar_text_renderer_finalize (GObject *object) /* drop the cached widget */ thunar_text_renderer_set_widget (text_renderer, NULL); - G_OBJECT_CLASS (thunar_text_renderer_parent_class)->finalize (object); + (*G_OBJECT_CLASS (thunar_text_renderer_parent_class)->finalize) (object); } @@ -574,7 +603,7 @@ thunar_text_renderer_start_editing (GtkCellRenderer *renderer, gtk_editable_select_region (GTK_EDITABLE (text_renderer->entry), 0, -1); /* remember the tree path that we're editing */ - g_object_set_data_full (G_OBJECT (text_renderer->entry), "thunar-text-renderer-path", g_strdup (path), g_free); + g_object_set_data_full (G_OBJECT (text_renderer->entry), I_("thunar-text-renderer-path"), g_strdup (path), g_free); /* connect required signals */ g_signal_connect (G_OBJECT (text_renderer->entry), "editing-done", G_CALLBACK (thunar_text_renderer_editing_done), text_renderer); @@ -663,7 +692,7 @@ thunar_text_renderer_editing_done (GtkCellEditable *editable, if (G_LIKELY (!GTK_ENTRY (editable)->editing_canceled)) { text = gtk_entry_get_text (GTK_ENTRY (editable)); - path = g_object_get_data (G_OBJECT (editable), "thunar-text-renderer-path"); + path = g_object_get_data (G_OBJECT (editable), I_("thunar-text-renderer-path")); g_signal_emit (G_OBJECT (text_renderer), text_renderer_signals[EDITED], 0, path, text); } } diff --git a/thunar/thunar-thumbnail-generator.c b/thunar/thunar-thumbnail-generator.c index 44191251908bf516ef942319e1090350a093f636..a2b59e09ef3c22450c859d9805cbabfbdb84c3f1 100644 --- a/thunar/thunar-thumbnail-generator.c +++ b/thunar/thunar-thumbnail-generator.c @@ -65,7 +65,36 @@ struct _ThunarThumbnailInfo -G_DEFINE_TYPE (ThunarThumbnailGenerator, thunar_thumbnail_generator, G_TYPE_OBJECT); +static GObjectClass *thunar_thumbnail_generator_parent_class; + + + +GType +thunar_thumbnail_generator_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarThumbnailGeneratorClass), + NULL, + NULL, + (GClassInitFunc) thunar_thumbnail_generator_class_init, + NULL, + NULL, + sizeof (ThunarThumbnailGenerator), + 0, + (GInstanceInitFunc) thunar_thumbnail_generator_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarThumbnailGenerator"), &info, 0); + } + + return type; +} @@ -74,6 +103,9 @@ thunar_thumbnail_generator_class_init (ThunarThumbnailGeneratorClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_thumbnail_generator_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_thumbnail_generator_finalize; } diff --git a/thunar/thunar-view.c b/thunar/thunar-view.c index db85252f4b74a6e1c914ef6439e9ea852acd1de6..17e556d553f4a3a24ea560a089876879aa46c1eb 100644 --- a/thunar/thunar-view.c +++ b/thunar/thunar-view.c @@ -49,10 +49,7 @@ thunar_view_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_INTERFACE, - "ThunarView", - &info, 0); - + type = g_type_register_static (G_TYPE_INTERFACE, I_("ThunarView"), &info, 0); g_type_interface_add_prerequisite (type, GTK_TYPE_WIDGET); g_type_interface_add_prerequisite (type, THUNAR_TYPE_NAVIGATOR); } diff --git a/thunar/thunar-window.c b/thunar/thunar-window.c index aa887425fabe53f47230ab2c8c70ef0c96d9485a..b89951da1c54070bb2635fbe4896ed233a52b130 100644 --- a/thunar/thunar-window.c +++ b/thunar/thunar-window.c @@ -181,7 +181,36 @@ static const GtkToggleActionEntry toggle_action_entries[] = -G_DEFINE_TYPE (ThunarWindow, thunar_window, GTK_TYPE_WINDOW); +static GObjectClass *thunar_window_parent_class; + + + +GType +thunar_window_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarWindowClass), + NULL, + NULL, + (GClassInitFunc) thunar_window_class_init, + NULL, + NULL, + sizeof (ThunarWindow), + 0, + (GInstanceInitFunc) thunar_window_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_WINDOW, I_("ThunarWindow"), &info, 0); + } + + return type; +} @@ -191,6 +220,9 @@ thunar_window_class_init (ThunarWindowClass *klass) GtkWidgetClass *gtkwidget_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunar_window_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_window_dispose; gobject_class->finalize = thunar_window_finalize; @@ -999,7 +1031,7 @@ thunar_window_menu_item_selected (GtkWidget *menu_item, gchar *tooltip; /* determine the action for the menu item */ - action = g_object_get_data (G_OBJECT (menu_item), "gtk-action"); + action = g_object_get_data (G_OBJECT (menu_item), I_("gtk-action")); if (G_UNLIKELY (action == NULL)) return; diff --git a/thunarx/Makefile.am b/thunarx/Makefile.am index 1c1bad21faceb11e3fd7a717917db778d445662a..aa38784310901384ed4f36acea13ca5462102e31 100644 --- a/thunarx/Makefile.am +++ b/thunarx/Makefile.am @@ -36,6 +36,7 @@ libthunarx_1_la_SOURCES = \ thunarx-config.c \ thunarx-file-info.c \ thunarx-menu-provider.c \ + thunarx-private.h \ thunarx-property-page.c \ thunarx-property-page-provider.c \ thunarx-provider-factory.c \ diff --git a/thunarx/thunarx-file-info.c b/thunarx/thunarx-file-info.c index c1d279cc19c7fc9af6976700a39c7eb4b26d5d18..6a669d1b2afbf349d80108e6f71395ee0434bf84 100644 --- a/thunarx/thunarx-file-info.c +++ b/thunarx/thunarx-file-info.c @@ -23,6 +23,7 @@ #endif #include <thunarx/thunarx-file-info.h> +#include <thunarx/thunarx-private.h> #include <thunarx/thunarx-alias.h> @@ -48,8 +49,7 @@ thunarx_file_info_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_INTERFACE, "ThunarxFileInfo", &info, 0); - + type = g_type_register_static (G_TYPE_INTERFACE, I_("ThunarxFileInfo"), &info, 0); g_type_interface_add_prerequisite (type, G_TYPE_OBJECT); } diff --git a/thunarx/thunarx-menu-provider.c b/thunarx/thunarx-menu-provider.c index f697a4956632b0142a75c6ff16c47c63df8ae953..70f82a16eae6139d7efd00858ecd6a96ac4ee6d7 100644 --- a/thunarx/thunarx-menu-provider.c +++ b/thunarx/thunarx-menu-provider.c @@ -23,6 +23,7 @@ #endif #include <thunarx/thunarx-menu-provider.h> +#include <thunarx/thunarx-private.h> #include <thunarx/thunarx-alias.h> @@ -53,7 +54,7 @@ thunarx_menu_provider_get_type (void) }; /* register the menu provider interface */ - type = g_type_register_static (G_TYPE_INTERFACE, "ThunarxMenuProvider", &info, 0); + type = g_type_register_static (G_TYPE_INTERFACE, I_("ThunarxMenuProvider"), &info, 0); g_type_interface_add_prerequisite (type, G_TYPE_OBJECT); /* allocate the thunarx-menu-provider-action quark */ diff --git a/thunarx/thunarx-private.h b/thunarx/thunarx-private.h new file mode 100644 index 0000000000000000000000000000000000000000..2f2d4ac425c21d48e0bb7fba8417dcea0c7661bb --- /dev/null +++ b/thunarx/thunarx-private.h @@ -0,0 +1,40 @@ +/* $Id$ */ +/*- + * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#if !defined(THUNARX_INSIDE_THUNARX_H) && !defined(THUNARX_COMPILATION) +#error "Only <thunarx/thunarx.h> can be included directly, this file may disappear or change contents" +#endif + +#ifndef __THUNARX_PRIVATE_H__ +#define __THUNARX_PRIVATE_H__ + +#include <glib.h> + +G_BEGIN_DECLS; + +#if GLIB_CHECK_VERSION(2,9,0) +#define I_(string) (g_intern_static_string ((string))) +#else +#define I_(string) (g_quark_to_string (g_quark_from_static_string ((string)))) +#endif + +G_END_DECLS; + +#endif /* !__THUNARX_PRIVATE_H__ */ diff --git a/thunarx/thunarx-property-page-provider.c b/thunarx/thunarx-property-page-provider.c index c1caec61b8e81a7d4628ae62e125b44aae94b050..06aa0d5300d1fd5181ba6f10f2915ec7a1aaee79 100644 --- a/thunarx/thunarx-property-page-provider.c +++ b/thunarx/thunarx-property-page-provider.c @@ -22,6 +22,7 @@ #include <config.h> #endif +#include <thunarx/thunarx-private.h> #include <thunarx/thunarx-property-page-provider.h> #include <thunarx/thunarx-alias.h> @@ -53,7 +54,7 @@ thunarx_property_page_provider_get_type (void) }; /* register the property page provider interface */ - type = g_type_register_static (G_TYPE_INTERFACE, "ThunarxPropertyPageProvider", &info, 0); + type = g_type_register_static (G_TYPE_INTERFACE, I_("ThunarxPropertyPageProvider"), &info, 0); g_type_interface_add_prerequisite (type, G_TYPE_OBJECT); /* allocate the thunarx-property-page quark */ diff --git a/thunarx/thunarx-property-page.c b/thunarx/thunarx-property-page.c index 554ac6ffc6f83cfbb1b926f782153d28a87abfef..c37902a8e6927fe21d4bc612d6502a3608a5f0a1 100644 --- a/thunarx/thunarx-property-page.c +++ b/thunarx/thunarx-property-page.c @@ -24,6 +24,7 @@ #include <glib/gi18n-lib.h> +#include <thunarx/thunarx-private.h> #include <thunarx/thunarx-property-page.h> #include <thunarx/thunarx-alias.h> @@ -68,7 +69,36 @@ struct _ThunarxPropertyPagePrivate -G_DEFINE_TYPE (ThunarxPropertyPage, thunarx_property_page, GTK_TYPE_BIN); +static GObjectClass *thunarx_property_page_parent_class; + + + +GType +thunarx_property_page_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarxPropertyPageClass), + NULL, + NULL, + (GClassInitFunc) thunarx_property_page_class_init, + NULL, + NULL, + sizeof (ThunarxPropertyPage), + 0, + (GInstanceInitFunc) thunarx_property_page_init, + NULL, + }; + + type = g_type_register_static (GTK_TYPE_BIN, I_("ThunarxPropertyPage"), &info, 0); + } + + return type; +} @@ -79,6 +109,9 @@ thunarx_property_page_class_init (ThunarxPropertyPageClass *klass) GtkWidgetClass *gtkwidget_class; GObjectClass *gobject_class; + /* determine the parent type class */ + thunarx_property_page_parent_class = g_type_class_peek_parent (klass); + /* add our private data to the class type */ g_type_class_add_private (klass, sizeof (ThunarxPropertyPagePrivate)); diff --git a/thunarx/thunarx-provider-factory.c b/thunarx/thunarx-provider-factory.c index a9105d0d2444d8895e1b52581dcec798f9578598..8b13437c1535ae242085ad98c0a24a58f1a1fd35 100644 --- a/thunarx/thunarx-provider-factory.c +++ b/thunarx/thunarx-provider-factory.c @@ -24,6 +24,7 @@ #include <gdk/gdk.h> +#include <thunarx/thunarx-private.h> #include <thunarx/thunarx-provider-factory.h> #include <thunarx/thunarx-provider-module.h> #include <thunarx/thunarx-provider-plugin.h> @@ -71,7 +72,36 @@ struct _ThunarxProviderFactory -G_DEFINE_TYPE (ThunarxProviderFactory, thunarx_provider_factory, G_TYPE_OBJECT); +static GObjectClass *thunarx_provider_factory_parent_class; + + + +GType +thunarx_provider_factory_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + static const GTypeInfo info = + { + sizeof (ThunarxProviderFactoryClass), + NULL, + NULL, + (GClassInitFunc) thunarx_provider_factory_class_init, + NULL, + NULL, + sizeof (ThunarxProviderFactory), + 0, + (GInstanceInitFunc) thunarx_provider_factory_init, + NULL, + }; + + type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarxProviderFactory"), &info, 0); + } + + return type; +} @@ -80,6 +110,9 @@ thunarx_provider_factory_class_init (ThunarxProviderFactoryClass *klass) { GObjectClass *gobject_class; + /* determine the parent type class */ + thunarx_provider_factory_parent_class = g_type_class_peek_parent (klass); + gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunarx_provider_factory_finalize; } diff --git a/thunarx/thunarx-provider-module.c b/thunarx/thunarx-provider-module.c index 73ea192374c10fb53bd9e477a3bd1b4df674d312..601a085dd27c9aabd19242576adaf76731cdde78 100644 --- a/thunarx/thunarx-provider-module.c +++ b/thunarx/thunarx-provider-module.c @@ -24,6 +24,7 @@ #include <gmodule.h> +#include <thunarx/thunarx-private.h> #include <thunarx/thunarx-provider-module.h> #include <thunarx/thunarx-provider-plugin.h> #include <thunarx/thunarx-alias.h> @@ -109,7 +110,7 @@ thunarx_provider_module_get_type (void) NULL, }; - type = g_type_register_static (G_TYPE_TYPE_MODULE, "ThunarxProviderModule", &info, 0); + type = g_type_register_static (G_TYPE_TYPE_MODULE, I_("ThunarxProviderModule"), &info, 0); g_type_add_interface_static (type, THUNARX_TYPE_PROVIDER_PLUGIN, &plugin_info); } diff --git a/thunarx/thunarx-provider-plugin.c b/thunarx/thunarx-provider-plugin.c index b1facb0a45572cfdacb48384063429c9eb7b9f01..fe80c652d56a98202ffd875d23264cc7665c3e09 100644 --- a/thunarx/thunarx-provider-plugin.c +++ b/thunarx/thunarx-provider-plugin.c @@ -24,6 +24,7 @@ #include <glib/gi18n-lib.h> +#include <thunarx/thunarx-private.h> #include <thunarx/thunarx-provider-plugin.h> #include <thunarx/thunarx-alias.h> @@ -55,7 +56,7 @@ thunarx_provider_plugin_get_type (void) }; /* register the provider plugin interface */ - type = g_type_register_static (G_TYPE_INTERFACE, "ThunarxProviderPlugin", &info, 0); + type = g_type_register_static (G_TYPE_INTERFACE, I_("ThunarxProviderPlugin"), &info, 0); } return type;