/* FavoritesTimeline.c generated by valac 0.26.2, the Vala compiler
 * generated from FavoritesTimeline.vala, do not modify */

/*  This file is part of corebird, a Gtk+ linux Twitter client.
 *  Copyright (C) 2013 Timm Bäder
 *
 *  corebird is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  corebird 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 General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with corebird.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include <json-glib/json-glib.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gio/gio.h>
#include <glib/gi18n-lib.h>


#define TYPE_SCROLL_WIDGET (scroll_widget_get_type ())
#define SCROLL_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCROLL_WIDGET, ScrollWidget))
#define SCROLL_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCROLL_WIDGET, ScrollWidgetClass))
#define IS_SCROLL_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCROLL_WIDGET))
#define IS_SCROLL_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCROLL_WIDGET))
#define SCROLL_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCROLL_WIDGET, ScrollWidgetClass))

typedef struct _ScrollWidget ScrollWidget;
typedef struct _ScrollWidgetClass ScrollWidgetClass;
typedef struct _ScrollWidgetPrivate ScrollWidgetPrivate;

#define TYPE_IPAGE (ipage_get_type ())
#define IPAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IPAGE, IPage))
#define IS_IPAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IPAGE))
#define IPAGE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_IPAGE, IPageIface))

typedef struct _IPage IPage;
typedef struct _IPageIface IPageIface;

#define TYPE_BUNDLE (bundle_get_type ())
#define BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BUNDLE, Bundle))
#define BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BUNDLE, BundleClass))
#define IS_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BUNDLE))
#define IS_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BUNDLE))
#define BUNDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BUNDLE, BundleClass))

typedef struct _Bundle Bundle;
typedef struct _BundleClass BundleClass;

#define TYPE_MAIN_WINDOW (main_window_get_type ())
#define MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MAIN_WINDOW, MainWindow))
#define MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MAIN_WINDOW, MainWindowClass))
#define IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MAIN_WINDOW))
#define IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MAIN_WINDOW))
#define MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MAIN_WINDOW, MainWindowClass))

typedef struct _MainWindow MainWindow;
typedef struct _MainWindowClass MainWindowClass;

#define TYPE_ACCOUNT (account_get_type ())
#define ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ACCOUNT, Account))
#define ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ACCOUNT, AccountClass))
#define IS_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ACCOUNT))
#define IS_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ACCOUNT))
#define ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ACCOUNT, AccountClass))

typedef struct _Account Account;
typedef struct _AccountClass AccountClass;

#define TYPE_ITIMELINE (itimeline_get_type ())
#define ITIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ITIMELINE, ITimeline))
#define IS_ITIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ITIMELINE))
#define ITIMELINE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_ITIMELINE, ITimelineIface))

typedef struct _ITimeline ITimeline;
typedef struct _ITimelineIface ITimelineIface;

#define TYPE_TWEET_LIST_BOX (tweet_list_box_get_type ())
#define TWEET_LIST_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TWEET_LIST_BOX, TweetListBox))
#define TWEET_LIST_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TWEET_LIST_BOX, TweetListBoxClass))
#define IS_TWEET_LIST_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TWEET_LIST_BOX))
#define IS_TWEET_LIST_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TWEET_LIST_BOX))
#define TWEET_LIST_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TWEET_LIST_BOX, TweetListBoxClass))

typedef struct _TweetListBox TweetListBox;
typedef struct _TweetListBoxClass TweetListBoxClass;

#define TYPE_DELTA_UPDATER (delta_updater_get_type ())
#define DELTA_UPDATER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DELTA_UPDATER, DeltaUpdater))
#define DELTA_UPDATER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DELTA_UPDATER, DeltaUpdaterClass))
#define IS_DELTA_UPDATER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DELTA_UPDATER))
#define IS_DELTA_UPDATER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DELTA_UPDATER))
#define DELTA_UPDATER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DELTA_UPDATER, DeltaUpdaterClass))

typedef struct _DeltaUpdater DeltaUpdater;
typedef struct _DeltaUpdaterClass DeltaUpdaterClass;

#define TYPE_DEFAULT_TIMELINE (default_timeline_get_type ())
#define DEFAULT_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEFAULT_TIMELINE, DefaultTimeline))
#define DEFAULT_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEFAULT_TIMELINE, DefaultTimelineClass))
#define IS_DEFAULT_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEFAULT_TIMELINE))
#define IS_DEFAULT_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEFAULT_TIMELINE))
#define DEFAULT_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEFAULT_TIMELINE, DefaultTimelineClass))

typedef struct _DefaultTimeline DefaultTimeline;
typedef struct _DefaultTimelineClass DefaultTimelineClass;
typedef struct _DefaultTimelinePrivate DefaultTimelinePrivate;

#define TYPE_BADGE_RADIO_TOOL_BUTTON (badge_radio_tool_button_get_type ())
#define BADGE_RADIO_TOOL_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BADGE_RADIO_TOOL_BUTTON, BadgeRadioToolButton))
#define BADGE_RADIO_TOOL_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BADGE_RADIO_TOOL_BUTTON, BadgeRadioToolButtonClass))
#define IS_BADGE_RADIO_TOOL_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BADGE_RADIO_TOOL_BUTTON))
#define IS_BADGE_RADIO_TOOL_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BADGE_RADIO_TOOL_BUTTON))
#define BADGE_RADIO_TOOL_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BADGE_RADIO_TOOL_BUTTON, BadgeRadioToolButtonClass))

typedef struct _BadgeRadioToolButton BadgeRadioToolButton;
typedef struct _BadgeRadioToolButtonClass BadgeRadioToolButtonClass;

#define TYPE_IMESSAGE_RECEIVER (imessage_receiver_get_type ())
#define IMESSAGE_RECEIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMESSAGE_RECEIVER, IMessageReceiver))
#define IS_IMESSAGE_RECEIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMESSAGE_RECEIVER))
#define IMESSAGE_RECEIVER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_IMESSAGE_RECEIVER, IMessageReceiverIface))

typedef struct _IMessageReceiver IMessageReceiver;
typedef struct _IMessageReceiverIface IMessageReceiverIface;

#define TYPE_STREAM_MESSAGE_TYPE (stream_message_type_get_type ())

#define TYPE_FAVORITES_TIMELINE (favorites_timeline_get_type ())
#define FAVORITES_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FAVORITES_TIMELINE, FavoritesTimeline))
#define FAVORITES_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FAVORITES_TIMELINE, FavoritesTimelineClass))
#define IS_FAVORITES_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FAVORITES_TIMELINE))
#define IS_FAVORITES_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FAVORITES_TIMELINE))
#define FAVORITES_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FAVORITES_TIMELINE, FavoritesTimelineClass))

typedef struct _FavoritesTimeline FavoritesTimeline;
typedef struct _FavoritesTimelineClass FavoritesTimelineClass;
typedef struct _FavoritesTimelinePrivate FavoritesTimelinePrivate;

#define TYPE_TWEET_LIST_ENTRY (tweet_list_entry_get_type ())
#define TWEET_LIST_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TWEET_LIST_ENTRY, TweetListEntry))
#define TWEET_LIST_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TWEET_LIST_ENTRY, TweetListEntryClass))
#define IS_TWEET_LIST_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TWEET_LIST_ENTRY))
#define IS_TWEET_LIST_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TWEET_LIST_ENTRY))
#define TWEET_LIST_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TWEET_LIST_ENTRY, TweetListEntryClass))

typedef struct _TweetListEntry TweetListEntry;
typedef struct _TweetListEntryClass TweetListEntryClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define TYPE_ITWITTER_ITEM (itwitter_item_get_type ())
#define ITWITTER_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ITWITTER_ITEM, ITwitterItem))
#define IS_ITWITTER_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ITWITTER_ITEM))
#define ITWITTER_ITEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_ITWITTER_ITEM, ITwitterItemIface))

typedef struct _ITwitterItem ITwitterItem;
typedef struct _ITwitterItemIface ITwitterItemIface;
typedef struct _TweetListEntryPrivate TweetListEntryPrivate;

#define TYPE_TWEET (tweet_get_type ())
#define TWEET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TWEET, Tweet))
#define TWEET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TWEET, TweetClass))
#define IS_TWEET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TWEET))
#define IS_TWEET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TWEET))
#define TWEET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TWEET, TweetClass))

typedef struct _Tweet Tweet;
typedef struct _TweetClass TweetClass;
typedef struct _TweetPrivate TweetPrivate;

#define TYPE_MEDIA (media_get_type ())
#define MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA, Media))
#define MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA, MediaClass))
#define IS_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA))
#define IS_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA))
#define MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA, MediaClass))

typedef struct _Media Media;
typedef struct _MediaClass MediaClass;
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
#define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL)))
#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
typedef struct _Block37Data Block37Data;

struct _ScrollWidget {
	GtkScrolledWindow parent_instance;
	ScrollWidgetPrivate * priv;
};

struct _ScrollWidgetClass {
	GtkScrolledWindowClass parent_class;
};

struct _IPageIface {
	GTypeInterface parent_iface;
	void (*on_join) (IPage* self, gint page_id, Bundle* args);
	void (*on_leave) (IPage* self);
	void (*create_tool_button) (IPage* self, GtkRadioButton* group);
	GtkRadioButton* (*get_tool_button) (IPage* self);
	gchar* (*get_title) (IPage* self);
	gboolean (*handles_double_open) (IPage* self);
	void (*double_open) (IPage* self);
	gint (*get_id) (IPage* self);
	void (*set_id) (IPage* self, gint value);
	MainWindow* (*get_main_window) (IPage* self);
	void (*set_main_window) (IPage* self, MainWindow* value);
	Account* (*get_account) (IPage* self);
	void (*set_account) (IPage* self, Account* value);
};

struct _ITimelineIface {
	GTypeInterface parent_iface;
	gint64 (*get_lowest_id) (ITimeline* self);
	void (*set_lowest_id) (ITimeline* self, gint64 value);
	gint64 (*get_max_id) (ITimeline* self);
	void (*set_max_id) (ITimeline* self, gint64 value);
	TweetListBox* (*get_tweet_list) (ITimeline* self);
	void (*set_tweet_list) (ITimeline* self, TweetListBox* value);
	gint (*get_unread_count) (ITimeline* self);
	void (*set_unread_count) (ITimeline* self, gint value);
	DeltaUpdater* (*get_delta_updater) (ITimeline* self);
	void (*set_delta_updater) (ITimeline* self, DeltaUpdater* value);
	const gchar* (*get_function) (ITimeline* self);
};

struct _DefaultTimeline {
	ScrollWidget parent_instance;
	DefaultTimelinePrivate * priv;
	gboolean initialized;
	BadgeRadioToolButton* tool_button;
	gboolean loading;
	GtkWidget* last_focus_widget;
};

struct _DefaultTimelineClass {
	ScrollWidgetClass parent_class;
	void (*on_join) (DefaultTimeline* self, gint page_id, Bundle* args);
	void (*on_leave) (DefaultTimeline* self);
	void (*load_cached) (DefaultTimeline* self);
	void (*load_newest) (DefaultTimeline* self);
	void (*load_older) (DefaultTimeline* self);
	gchar* (*get_title) (DefaultTimeline* self);
	void (*create_tool_button) (DefaultTimeline* self, GtkRadioButton* group);
	const gchar* (*get_function) (DefaultTimeline* self);
};

typedef enum  {
	STREAM_MESSAGE_TYPE_UNSUPPORTED,
	STREAM_MESSAGE_TYPE_DELETE,
	STREAM_MESSAGE_TYPE_SCRUB_GEO,
	STREAM_MESSAGE_TYPE_LIMIT,
	STREAM_MESSAGE_TYPE_DISCONNECT,
	STREAM_MESSAGE_TYPE_FRIENDS,
	STREAM_MESSAGE_TYPE_EVENT,
	STREAM_MESSAGE_TYPE_WARNING,
	STREAM_MESSAGE_TYPE_DIRECT_MESSAGE,
	STREAM_MESSAGE_TYPE_TWEET,
	STREAM_MESSAGE_TYPE_EVENT_LIST_CREATED,
	STREAM_MESSAGE_TYPE_EVENT_LIST_DESTROYED,
	STREAM_MESSAGE_TYPE_EVENT_LIST_UPDATED,
	STREAM_MESSAGE_TYPE_EVENT_LIST_UNSUBSCRIBED,
	STREAM_MESSAGE_TYPE_EVENT_LIST_SUBSCRIBED,
	STREAM_MESSAGE_TYPE_EVENT_LIST_MEMBER_ADDED,
	STREAM_MESSAGE_TYPE_EVENT_LIST_MEMBER_REMOVED,
	STREAM_MESSAGE_TYPE_EVENT_FAVORITE,
	STREAM_MESSAGE_TYPE_EVENT_UNFAVORITE,
	STREAM_MESSAGE_TYPE_EVENT_FOLLOW,
	STREAM_MESSAGE_TYPE_EVENT_UNFOLLOW,
	STREAM_MESSAGE_TYPE_EVENT_BLOCK,
	STREAM_MESSAGE_TYPE_EVENT_UNBLOCK,
	STREAM_MESSAGE_TYPE_EVENT_MUTE,
	STREAM_MESSAGE_TYPE_EVENT_UNMUTE,
	STREAM_MESSAGE_TYPE_EVENT_USER_UPDATE
} StreamMessageType;

struct _IMessageReceiverIface {
	GTypeInterface parent_iface;
	void (*stream_message_received) (IMessageReceiver* self, StreamMessageType type, JsonNode* root_node);
};

struct _FavoritesTimeline {
	DefaultTimeline parent_instance;
	FavoritesTimelinePrivate * priv;
};

struct _FavoritesTimelineClass {
	DefaultTimelineClass parent_class;
};

struct _ITwitterItemIface {
	GTypeInterface parent_iface;
	gint (*update_time_delta) (ITwitterItem* self, GDateTime* now);
	gint64 (*get_sort_factor) (ITwitterItem* self);
	gboolean (*get_seen) (ITwitterItem* self);
	void (*set_seen) (ITwitterItem* self, gboolean value);
};

struct _TweetListEntry {
	GtkListBoxRow parent_instance;
	TweetListEntryPrivate * priv;
	gchar* notification_id;
	Tweet* tweet;
};

struct _TweetListEntryClass {
	GtkListBoxRowClass parent_class;
};

struct _Tweet {
	GObject parent_instance;
	TweetPrivate * priv;
	gint64 id;
	gint64 rt_id;
	gchar* text;
	gint64 user_id;
	gchar* user_name;
	gchar* retweeted_by;
	gchar* rt_by_screen_name;
	gint64 rt_by_id;
	gboolean is_retweet;
	GdkPixbuf* inline_media;
	gchar* time_delta;
	gchar* avatar_url;
	gchar* avatar_name;
	gchar* screen_name;
	gint64 created_at;
	gint64 rt_created_at;
	gboolean verified;
	gint64 my_retweet;
	gboolean protected;
	gint64 reply_id;
	Media** medias;
	gint medias_length1;
	gint retweet_count;
	gint favorite_count;
	gchar** mentions;
	gint mentions_length1;
};

struct _TweetClass {
	GObjectClass parent_class;
};

struct _Block37Data {
	int _ref_count_;
	FavoritesTimeline* self;
	GtkWidget* w;
};


static gpointer favorites_timeline_parent_class = NULL;
static IMessageReceiverIface* favorites_timeline_imessage_receiver_parent_iface = NULL;

GType scroll_widget_get_type (void) G_GNUC_CONST;
GType bundle_get_type (void) G_GNUC_CONST;
GType main_window_get_type (void) G_GNUC_CONST;
GType account_get_type (void) G_GNUC_CONST;
GType ipage_get_type (void) G_GNUC_CONST;
GType tweet_list_box_get_type (void) G_GNUC_CONST;
GType delta_updater_get_type (void) G_GNUC_CONST;
GType itimeline_get_type (void) G_GNUC_CONST;
GType default_timeline_get_type (void) G_GNUC_CONST;
GType badge_radio_tool_button_get_type (void) G_GNUC_CONST;
GType stream_message_type_get_type (void) G_GNUC_CONST;
GType imessage_receiver_get_type (void) G_GNUC_CONST;
GType favorites_timeline_get_type (void) G_GNUC_CONST;
enum  {
	FAVORITES_TIMELINE_DUMMY_PROPERTY,
	FAVORITES_TIMELINE_FUNCTION
};
FavoritesTimeline* favorites_timeline_new (gint id);
FavoritesTimeline* favorites_timeline_construct (GType object_type, gint id);
DefaultTimeline* default_timeline_construct (GType object_type, gint id);
static void favorites_timeline_real_stream_message_received (IMessageReceiver* base, StreamMessageType type, JsonNode* root);
static JsonNode* _vala_JsonNode_copy (JsonNode* self);
TweetListBox* itimeline_get_tweet_list (ITimeline* self);
GType tweet_list_entry_get_type (void) G_GNUC_CONST;
GType itwitter_item_get_type (void) G_GNUC_CONST;
GType tweet_get_type (void) G_GNUC_CONST;
GType media_get_type (void) G_GNUC_CONST;
void tweet_set_favorited (Tweet* self, gboolean value);
static void _vala_JsonNode_free (JsonNode* self);
Tweet* tweet_new (void);
Tweet* tweet_construct (GType object_type);
void tweet_load_from_json (Tweet* self, JsonNode* status_node, GDateTime* now, Account* account);
Account* ipage_get_account (IPage* self);
MainWindow* ipage_get_main_window (IPage* self);
TweetListEntry* tweet_list_entry_new (Tweet* tweet, MainWindow* window, Account* account);
TweetListEntry* tweet_list_entry_construct (GType object_type, Tweet* tweet, MainWindow* window, Account* account);
DeltaUpdater* itimeline_get_delta_updater (ITimeline* self);
void delta_updater_add (DeltaUpdater* self, ITwitterItem* entry);
void default_timeline_postprocess_tweet (DefaultTimeline* self, TweetListEntry* tle);
void default_timeline_toggle_favorite (DefaultTimeline* self, gint64 id, gboolean mode);
static void favorites_timeline_real_on_leave (DefaultTimeline* base);
static Block37Data* block37_data_ref (Block37Data* _data37_);
static void block37_data_unref (void * _userdata_);
gboolean tweet_get_favorited (Tweet* self);
static gboolean _____lambda103_ (Block37Data* _data37_);
static gboolean ______lambda103__gsource_func (gpointer self);
static void favorites_timeline_real_load_newest (DefaultTimeline* base);
void itimeline_load_newest_internal (ITimeline* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void itimeline_load_newest_internal_finish (ITimeline* self, GAsyncResult* _res_);
static void __lambda104_ (FavoritesTimeline* self);
static void ___lambda104__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
static void favorites_timeline_real_load_older (DefaultTimeline* base);
void scroll_widget_balance_next_upper_change (ScrollWidget* self, gint mode);
#define BOTTOM 2
void itimeline_load_older_internal (ITimeline* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void itimeline_load_older_internal_finish (ITimeline* self, GAsyncResult* _res_);
static void __lambda105_ (FavoritesTimeline* self);
static void ___lambda105__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
static gchar* favorites_timeline_real_get_title (DefaultTimeline* base);
static void favorites_timeline_real_create_tool_button (DefaultTimeline* base, GtkRadioButton* group);
BadgeRadioToolButton* badge_radio_tool_button_new (GtkRadioButton* group, const gchar* icon_name, const gchar* text);
BadgeRadioToolButton* badge_radio_tool_button_construct (GType object_type, GtkRadioButton* group, const gchar* icon_name, const gchar* text);
const gchar* default_timeline_get_function (DefaultTimeline* self);
static void _vala_favorites_timeline_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);


FavoritesTimeline* favorites_timeline_construct (GType object_type, gint id) {
	FavoritesTimeline * self = NULL;
	gint _tmp0_ = 0;
	_tmp0_ = id;
	self = (FavoritesTimeline*) default_timeline_construct (object_type, _tmp0_);
	return self;
}


FavoritesTimeline* favorites_timeline_new (gint id) {
	return favorites_timeline_construct (TYPE_FAVORITES_TIMELINE, id);
}


static JsonNode* _vala_JsonNode_copy (JsonNode* self) {
	return g_boxed_copy (json_node_get_type (), self);
}


static gpointer __vala_JsonNode_copy0 (gpointer self) {
	return self ? _vala_JsonNode_copy (self) : NULL;
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


static void _vala_JsonNode_free (JsonNode* self) {
	g_boxed_free (json_node_get_type (), self);
}


static void favorites_timeline_real_stream_message_received (IMessageReceiver* base, StreamMessageType type, JsonNode* root) {
	FavoritesTimeline * self;
	StreamMessageType _tmp0_ = 0;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FAVORITES_TIMELINE, FavoritesTimeline);
	g_return_if_fail (root != NULL);
	_tmp0_ = type;
	if (_tmp0_ == STREAM_MESSAGE_TYPE_EVENT_FAVORITE) {
		JsonNode* tweet_obj = NULL;
		JsonNode* _tmp1_ = NULL;
		JsonObject* _tmp2_ = NULL;
		JsonNode* _tmp3_ = NULL;
		JsonNode* _tmp4_ = NULL;
		gint64 tweet_id = 0LL;
		JsonNode* _tmp5_ = NULL;
		JsonObject* _tmp6_ = NULL;
		gint64 _tmp7_ = 0LL;
		TweetListBox* _tmp8_ = NULL;
		TweetListBox* _tmp9_ = NULL;
		GList* _tmp10_ = NULL;
		Tweet* tweet = NULL;
		Tweet* _tmp21_ = NULL;
		Tweet* _tmp22_ = NULL;
		JsonNode* _tmp23_ = NULL;
		GDateTime* _tmp24_ = NULL;
		GDateTime* _tmp25_ = NULL;
		Account* _tmp26_ = NULL;
		Account* _tmp27_ = NULL;
		Tweet* _tmp28_ = NULL;
		TweetListEntry* tle = NULL;
		Tweet* _tmp29_ = NULL;
		Tweet* _tmp30_ = NULL;
		MainWindow* _tmp31_ = NULL;
		MainWindow* _tmp32_ = NULL;
		Account* _tmp33_ = NULL;
		Account* _tmp34_ = NULL;
		TweetListEntry* _tmp35_ = NULL;
		DeltaUpdater* _tmp36_ = NULL;
		DeltaUpdater* _tmp37_ = NULL;
		TweetListEntry* _tmp38_ = NULL;
		TweetListBox* _tmp39_ = NULL;
		TweetListBox* _tmp40_ = NULL;
		TweetListEntry* _tmp41_ = NULL;
		TweetListEntry* _tmp42_ = NULL;
		_tmp1_ = root;
		_tmp2_ = json_node_get_object (_tmp1_);
		_tmp3_ = json_object_get_member (_tmp2_, "target_object");
		_tmp4_ = __vala_JsonNode_copy0 (_tmp3_);
		tweet_obj = _tmp4_;
		_tmp5_ = tweet_obj;
		_tmp6_ = json_node_get_object (_tmp5_);
		_tmp7_ = json_object_get_int_member (_tmp6_, "id");
		tweet_id = _tmp7_;
		_tmp8_ = itimeline_get_tweet_list (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_ITIMELINE, ITimeline));
		_tmp9_ = _tmp8_;
		_tmp10_ = gtk_container_get_children (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_container_get_type (), GtkContainer));
		{
			GList* w_collection = NULL;
			GList* w_it = NULL;
			w_collection = _tmp10_;
			for (w_it = w_collection; w_it != NULL; w_it = w_it->next) {
				GtkWidget* _tmp11_ = NULL;
				GtkWidget* w = NULL;
				_tmp11_ = _g_object_ref0 ((GtkWidget*) w_it->data);
				w = _tmp11_;
				{
					GtkWidget* _tmp12_ = NULL;
					TweetListEntry* tle = NULL;
					GtkWidget* _tmp13_ = NULL;
					TweetListEntry* _tmp14_ = NULL;
					TweetListEntry* _tmp15_ = NULL;
					Tweet* _tmp16_ = NULL;
					gint64 _tmp17_ = 0LL;
					gint64 _tmp18_ = 0LL;
					_tmp12_ = w;
					if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, TYPE_TWEET_LIST_ENTRY)) {
						_g_object_unref0 (w);
						continue;
					}
					_tmp13_ = w;
					_tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_TWEET_LIST_ENTRY, TweetListEntry));
					tle = _tmp14_;
					_tmp15_ = tle;
					_tmp16_ = _tmp15_->tweet;
					_tmp17_ = _tmp16_->id;
					_tmp18_ = tweet_id;
					if (_tmp17_ == _tmp18_) {
						TweetListEntry* _tmp19_ = NULL;
						Tweet* _tmp20_ = NULL;
						_tmp19_ = tle;
						_tmp20_ = _tmp19_->tweet;
						tweet_set_favorited (_tmp20_, TRUE);
						_g_object_unref0 (tle);
						_g_object_unref0 (w);
						_g_list_free0 (w_collection);
						__vala_JsonNode_free0 (tweet_obj);
						return;
					}
					_g_object_unref0 (tle);
					_g_object_unref0 (w);
				}
			}
			_g_list_free0 (w_collection);
		}
		_tmp21_ = tweet_new ();
		tweet = _tmp21_;
		_tmp22_ = tweet;
		_tmp23_ = tweet_obj;
		_tmp24_ = g_date_time_new_now_local ();
		_tmp25_ = _tmp24_;
		_tmp26_ = ipage_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IPAGE, IPage));
		_tmp27_ = _tmp26_;
		tweet_load_from_json (_tmp22_, _tmp23_, _tmp25_, _tmp27_);
		_g_date_time_unref0 (_tmp25_);
		_tmp28_ = tweet;
		tweet_set_favorited (_tmp28_, TRUE);
		_tmp29_ = tweet;
		_tmp30_ = _g_object_ref0 (_tmp29_);
		_tmp31_ = ipage_get_main_window (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IPAGE, IPage));
		_tmp32_ = _tmp31_;
		_tmp33_ = ipage_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IPAGE, IPage));
		_tmp34_ = _tmp33_;
		_tmp35_ = tweet_list_entry_new (_tmp30_, _tmp32_, _tmp34_);
		g_object_ref_sink (_tmp35_);
		tle = _tmp35_;
		_tmp36_ = itimeline_get_delta_updater (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_ITIMELINE, ITimeline));
		_tmp37_ = _tmp36_;
		_tmp38_ = tle;
		delta_updater_add (_tmp37_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_ITWITTER_ITEM, ITwitterItem));
		_tmp39_ = itimeline_get_tweet_list (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_ITIMELINE, ITimeline));
		_tmp40_ = _tmp39_;
		_tmp41_ = tle;
		gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_widget_get_type (), GtkWidget));
		_tmp42_ = tle;
		default_timeline_postprocess_tweet (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DEFAULT_TIMELINE, DefaultTimeline), _tmp42_);
		_g_object_unref0 (tle);
		_g_object_unref0 (tweet);
		__vala_JsonNode_free0 (tweet_obj);
	} else {
		StreamMessageType _tmp43_ = 0;
		_tmp43_ = type;
		if (_tmp43_ == STREAM_MESSAGE_TYPE_EVENT_UNFAVORITE) {
			gint64 id = 0LL;
			JsonNode* _tmp44_ = NULL;
			JsonObject* _tmp45_ = NULL;
			JsonObject* _tmp46_ = NULL;
			gint64 _tmp47_ = 0LL;
			gint64 _tmp48_ = 0LL;
			_tmp44_ = root;
			_tmp45_ = json_node_get_object (_tmp44_);
			_tmp46_ = json_object_get_object_member (_tmp45_, "target_object");
			_tmp47_ = json_object_get_int_member (_tmp46_, "id");
			id = _tmp47_;
			_tmp48_ = id;
			default_timeline_toggle_favorite (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DEFAULT_TIMELINE, DefaultTimeline), _tmp48_, FALSE);
		}
	}
}


static Block37Data* block37_data_ref (Block37Data* _data37_) {
	g_atomic_int_inc (&_data37_->_ref_count_);
	return _data37_;
}


static void block37_data_unref (void * _userdata_) {
	Block37Data* _data37_;
	_data37_ = (Block37Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data37_->_ref_count_)) {
		FavoritesTimeline* self;
		self = _data37_->self;
		_g_object_unref0 (_data37_->w);
		_g_object_unref0 (self);
		g_slice_free (Block37Data, _data37_);
	}
}


static gboolean _____lambda103_ (Block37Data* _data37_) {
	FavoritesTimeline* self;
	gboolean result = FALSE;
	TweetListBox* _tmp0_ = NULL;
	TweetListBox* _tmp1_ = NULL;
	GtkWidget* _tmp2_ = NULL;
	self = _data37_->self;
	_tmp0_ = itimeline_get_tweet_list (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_ITIMELINE, ITimeline));
	_tmp1_ = _tmp0_;
	_tmp2_ = _data37_->w;
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_container_get_type (), GtkContainer), _tmp2_);
	result = FALSE;
	return result;
}


static gboolean ______lambda103__gsource_func (gpointer self) {
	gboolean result;
	result = _____lambda103_ (self);
	return result;
}


static void favorites_timeline_real_on_leave (DefaultTimeline* base) {
	FavoritesTimeline * self;
	GList* children = NULL;
	TweetListBox* _tmp0_ = NULL;
	TweetListBox* _tmp1_ = NULL;
	GList* _tmp2_ = NULL;
	GList* _tmp3_ = NULL;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FAVORITES_TIMELINE, FavoritesTimeline);
	_tmp0_ = itimeline_get_tweet_list (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_ITIMELINE, ITimeline));
	_tmp1_ = _tmp0_;
	_tmp2_ = gtk_container_get_children (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_container_get_type (), GtkContainer));
	children = _tmp2_;
	_tmp3_ = children;
	{
		GList* w_collection = NULL;
		GList* w_it = NULL;
		w_collection = _tmp3_;
		for (w_it = w_collection; w_it != NULL; w_it = w_it->next) {
			GtkWidget* _tmp4_ = NULL;
			GtkWidget* w = NULL;
			_tmp4_ = _g_object_ref0 ((GtkWidget*) w_it->data);
			w = _tmp4_;
			{
				Block37Data* _data37_;
				GtkWidget* _tmp5_ = NULL;
				GtkWidget* _tmp6_ = NULL;
				Tweet* _tmp7_ = NULL;
				gboolean _tmp8_ = FALSE;
				gboolean _tmp9_ = FALSE;
				_data37_ = g_slice_new0 (Block37Data);
				_data37_->_ref_count_ = 1;
				_data37_->self = g_object_ref (self);
				_data37_->w = w;
				_tmp5_ = _data37_->w;
				if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_TWEET_LIST_ENTRY)) {
					block37_data_unref (_data37_);
					_data37_ = NULL;
					continue;
				}
				_tmp6_ = _data37_->w;
				_tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_TWEET_LIST_ENTRY, TweetListEntry)->tweet;
				_tmp8_ = tweet_get_favorited (_tmp7_);
				_tmp9_ = _tmp8_;
				if (!_tmp9_) {
					g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ______lambda103__gsource_func, block37_data_ref (_data37_), block37_data_unref);
				}
				block37_data_unref (_data37_);
				_data37_ = NULL;
			}
		}
	}
	_g_list_free0 (children);
}


static void __lambda104_ (FavoritesTimeline* self) {
	G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DEFAULT_TIMELINE, DefaultTimeline)->loading = FALSE;
}


static void ___lambda104__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	__lambda104_ ((FavoritesTimeline*) self);
	g_object_unref (self);
}


static void favorites_timeline_real_load_newest (DefaultTimeline* base) {
	FavoritesTimeline * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FAVORITES_TIMELINE, FavoritesTimeline);
	G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DEFAULT_TIMELINE, DefaultTimeline)->loading = TRUE;
	itimeline_load_newest_internal (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_ITIMELINE, ITimeline), ___lambda104__gasync_ready_callback, g_object_ref (self));
}


static void __lambda105_ (FavoritesTimeline* self) {
	G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DEFAULT_TIMELINE, DefaultTimeline)->loading = FALSE;
}


static void ___lambda105__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	__lambda105_ ((FavoritesTimeline*) self);
	g_object_unref (self);
}


static void favorites_timeline_real_load_older (DefaultTimeline* base) {
	FavoritesTimeline * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FAVORITES_TIMELINE, FavoritesTimeline);
	scroll_widget_balance_next_upper_change (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SCROLL_WIDGET, ScrollWidget), BOTTOM);
	G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DEFAULT_TIMELINE, DefaultTimeline)->loading = TRUE;
	itimeline_load_older_internal (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_ITIMELINE, ITimeline), ___lambda105__gasync_ready_callback, g_object_ref (self));
}


static gchar* favorites_timeline_real_get_title (DefaultTimeline* base) {
	FavoritesTimeline * self;
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FAVORITES_TIMELINE, FavoritesTimeline);
	_tmp0_ = _ ("Favorites");
	_tmp1_ = g_strdup (_tmp0_);
	result = _tmp1_;
	return result;
}


static void favorites_timeline_real_create_tool_button (DefaultTimeline* base, GtkRadioButton* group) {
	FavoritesTimeline * self;
	GtkRadioButton* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	BadgeRadioToolButton* _tmp2_ = NULL;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FAVORITES_TIMELINE, FavoritesTimeline);
	g_return_if_fail ((group == NULL) || GTK_IS_RADIO_BUTTON (group));
	_tmp0_ = group;
	_tmp1_ = _ ("Favorites");
	_tmp2_ = badge_radio_tool_button_new (_tmp0_, "starred-symbolic", _tmp1_);
	g_object_ref_sink (_tmp2_);
	_g_object_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DEFAULT_TIMELINE, DefaultTimeline)->tool_button);
	G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DEFAULT_TIMELINE, DefaultTimeline)->tool_button = _tmp2_;
}


static const gchar* favorites_timeline_real_get_function (DefaultTimeline* base) {
	const gchar* result;
	FavoritesTimeline* self;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FAVORITES_TIMELINE, FavoritesTimeline);
	result = "1.1/favorites/list.json";
	return result;
}


static void favorites_timeline_class_init (FavoritesTimelineClass * klass) {
	favorites_timeline_parent_class = g_type_class_peek_parent (klass);
	((DefaultTimelineClass *) klass)->on_leave = favorites_timeline_real_on_leave;
	((DefaultTimelineClass *) klass)->load_newest = favorites_timeline_real_load_newest;
	((DefaultTimelineClass *) klass)->load_older = favorites_timeline_real_load_older;
	((DefaultTimelineClass *) klass)->get_title = favorites_timeline_real_get_title;
	((DefaultTimelineClass *) klass)->create_tool_button = favorites_timeline_real_create_tool_button;
	DEFAULT_TIMELINE_CLASS (klass)->get_function = favorites_timeline_real_get_function;
	G_OBJECT_CLASS (klass)->get_property = _vala_favorites_timeline_get_property;
	g_object_class_install_property (G_OBJECT_CLASS (klass), FAVORITES_TIMELINE_FUNCTION, g_param_spec_string ("function", "function", "function", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
}


static void favorites_timeline_imessage_receiver_interface_init (IMessageReceiverIface * iface) {
	favorites_timeline_imessage_receiver_parent_iface = g_type_interface_peek_parent (iface);
	iface->stream_message_received = (void (*)(IMessageReceiver*, StreamMessageType, JsonNode*)) favorites_timeline_real_stream_message_received;
}


static void favorites_timeline_instance_init (FavoritesTimeline * self) {
}


GType favorites_timeline_get_type (void) {
	static volatile gsize favorites_timeline_type_id__volatile = 0;
	if (g_once_init_enter (&favorites_timeline_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FavoritesTimelineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) favorites_timeline_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FavoritesTimeline), 0, (GInstanceInitFunc) favorites_timeline_instance_init, NULL };
		static const GInterfaceInfo imessage_receiver_info = { (GInterfaceInitFunc) favorites_timeline_imessage_receiver_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType favorites_timeline_type_id;
		favorites_timeline_type_id = g_type_register_static (TYPE_DEFAULT_TIMELINE, "FavoritesTimeline", &g_define_type_info, 0);
		g_type_add_interface_static (favorites_timeline_type_id, TYPE_IMESSAGE_RECEIVER, &imessage_receiver_info);
		g_once_init_leave (&favorites_timeline_type_id__volatile, favorites_timeline_type_id);
	}
	return favorites_timeline_type_id__volatile;
}


static void _vala_favorites_timeline_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	FavoritesTimeline * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_FAVORITES_TIMELINE, FavoritesTimeline);
	switch (property_id) {
		case FAVORITES_TIMELINE_FUNCTION:
		g_value_set_string (value, default_timeline_get_function (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DEFAULT_TIMELINE, DefaultTimeline)));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}



