… 7 years later.
This is a public service announcement.
Please stop writing this:
#define G_DESKTOP_APP_INFO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfo)) #define G_DESKTOP_APP_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfoClass)) #define G_IS_DESKTOP_APP_INFO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DESKTOP_APP_INFO)) #define G_IS_DESKTOP_APP_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DESKTOP_APP_INFO)) #define G_DESKTOP_APP_INFO_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfoClass)) typedef struct _GDesktopAppInfo GDesktopAppInfo; typedef struct _GDesktopAppInfoClass GDesktopAppInfoClass; struct _GDesktopAppInfoClass { GObjectClass parent_class; }; GType g_desktop_app_info_get_type (void) G_GNUC_CONST;
and start writing this:
G_DECLARE_FINAL_TYPE(GDesktopAppInfo, g_desktop_app_info, G, DESKTOP_APP_INFO, GObject)
Thank you for your attention.
I foresee many patches in the near future ;-)
All hail desrt \o/
Nice.
The documentation comment is wrong, the example uses:
G_DECLARE_FINAL_TYPE (MyAppWindow, my_app_window, GtkWindow, MY_APP, WINDOW)
– GtkWindow should be at the end.
Same for
G_DECLARE_DERIVABLE_TYPE (GtkFrobber, gtk_frobber, GtkFrobber, GTK, FROBBER)
hooray
What should I do if I need more entries in the struct _GDesktopAppInfoClass ?
For example,
struct _GDesktopAppInfoClass
{
GObjectClass parent_class;
gboolean initialized;
GError *init_error;
GFile *filename;
GList *entries;
}