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

/*
* Copyright (c) 2017 Robert San <robertsanseries@gmail.com>
*
* This program 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 2 of the License, or (at your option) any later version.
*
* This program 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 this program; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*/

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

#define CIANO_CONFIGS_PROPERTIES_TEXT_CONVERT_FILE_TO _ ("Convert file to")
#define CIANO_CONFIGS_PROPERTIES_TEXT_VIDEO _ ("Video")
#define CIANO_CONFIGS_CONSTANTS_TEXT_MP4 "MP4"
#define CIANO_CONFIGS_CONSTANTS_TEXT_MPG "MPG"
#define CIANO_CONFIGS_CONSTANTS_TEXT_AVI "AVI"
#define CIANO_CONFIGS_CONSTANTS_TEXT_WMV "WMV"
#define CIANO_CONFIGS_CONSTANTS_TEXT_FLV "FLV"
#define CIANO_CONFIGS_CONSTANTS_TEXT_MKV "MKV"
#define CIANO_CONFIGS_CONSTANTS_TEXT_3GP "3GP"
#define CIANO_CONFIGS_CONSTANTS_TEXT_MOV "MOV"
#define CIANO_CONFIGS_CONSTANTS_TEXT_VOB "VOB"
#define CIANO_CONFIGS_CONSTANTS_TEXT_OGV "OGV"
#define CIANO_CONFIGS_CONSTANTS_TEXT_WEBM "WEBM"
#define CIANO_CONFIGS_PROPERTIES_TEXT_MUSIC _ ("Music")
#define CIANO_CONFIGS_CONSTANTS_TEXT_MP3 "MP3"
#define CIANO_CONFIGS_CONSTANTS_TEXT_WMA "WMA"
#define CIANO_CONFIGS_CONSTANTS_TEXT_OGG "OGG"
#define CIANO_CONFIGS_CONSTANTS_TEXT_WAV "WAV"
#define CIANO_CONFIGS_CONSTANTS_TEXT_AAC "AAC"
#define CIANO_CONFIGS_CONSTANTS_TEXT_FLAC "FLAC"
#define CIANO_CONFIGS_CONSTANTS_TEXT_AIFF "AIFF"
#define CIANO_CONFIGS_CONSTANTS_TEXT_MMF "MMF"
#define CIANO_CONFIGS_CONSTANTS_TEXT_M4A "M4A"
#define CIANO_CONFIGS_CONSTANTS_TEXT_OPUS "OPUS"
#define CIANO_CONFIGS_PROPERTIES_TEXT_IMAGE _ ("Image")
#define CIANO_CONFIGS_CONSTANTS_TEXT_JPG "JPG"
#define CIANO_CONFIGS_CONSTANTS_TEXT_BMP "BMP"
#define CIANO_CONFIGS_CONSTANTS_TEXT_PNG "PNG"
#define CIANO_CONFIGS_CONSTANTS_TEXT_TIF "TIF"
#define CIANO_CONFIGS_CONSTANTS_TEXT_GIF "GIF"
#define CIANO_CONFIGS_CONSTANTS_TEXT_TGA "TGA"
#define CIANO_CONFIGS_CONSTANTS_TEXT_WEBP "WEBP"
#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define CIANO_WIDGETS_TYPE_SOURCE_LIST (ciano_widgets_source_list_get_type ())
#define CIANO_WIDGETS_SOURCE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CIANO_WIDGETS_TYPE_SOURCE_LIST, CianoWidgetsSourceList))
#define CIANO_WIDGETS_SOURCE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CIANO_WIDGETS_TYPE_SOURCE_LIST, CianoWidgetsSourceListClass))
#define CIANO_WIDGETS_IS_SOURCE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CIANO_WIDGETS_TYPE_SOURCE_LIST))
#define CIANO_WIDGETS_IS_SOURCE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CIANO_WIDGETS_TYPE_SOURCE_LIST))
#define CIANO_WIDGETS_SOURCE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CIANO_WIDGETS_TYPE_SOURCE_LIST, CianoWidgetsSourceListClass))

typedef struct _CianoWidgetsSourceList CianoWidgetsSourceList;
typedef struct _CianoWidgetsSourceListClass CianoWidgetsSourceListClass;
typedef struct _CianoWidgetsSourceListPrivate CianoWidgetsSourceListPrivate;

#define CIANO_WIDGETS_SOURCE_LIST_TYPE_ITEM (ciano_widgets_source_list_item_get_type ())
#define CIANO_WIDGETS_SOURCE_LIST_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CIANO_WIDGETS_SOURCE_LIST_TYPE_ITEM, CianoWidgetsSourceListItem))
#define CIANO_WIDGETS_SOURCE_LIST_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CIANO_WIDGETS_SOURCE_LIST_TYPE_ITEM, CianoWidgetsSourceListItemClass))
#define CIANO_WIDGETS_SOURCE_LIST_IS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CIANO_WIDGETS_SOURCE_LIST_TYPE_ITEM))
#define CIANO_WIDGETS_SOURCE_LIST_IS_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CIANO_WIDGETS_SOURCE_LIST_TYPE_ITEM))
#define CIANO_WIDGETS_SOURCE_LIST_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CIANO_WIDGETS_SOURCE_LIST_TYPE_ITEM, CianoWidgetsSourceListItemClass))

typedef struct _CianoWidgetsSourceListItem CianoWidgetsSourceListItem;
typedef struct _CianoWidgetsSourceListItemClass CianoWidgetsSourceListItemClass;

#define CIANO_WIDGETS_TYPE_SOURCE_LIST_SIDEBAR (ciano_widgets_source_list_sidebar_get_type ())
#define CIANO_WIDGETS_SOURCE_LIST_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CIANO_WIDGETS_TYPE_SOURCE_LIST_SIDEBAR, CianoWidgetsSourceListSidebar))
#define CIANO_WIDGETS_SOURCE_LIST_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CIANO_WIDGETS_TYPE_SOURCE_LIST_SIDEBAR, CianoWidgetsSourceListSidebarClass))
#define CIANO_WIDGETS_IS_SOURCE_LIST_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CIANO_WIDGETS_TYPE_SOURCE_LIST_SIDEBAR))
#define CIANO_WIDGETS_IS_SOURCE_LIST_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CIANO_WIDGETS_TYPE_SOURCE_LIST_SIDEBAR))
#define CIANO_WIDGETS_SOURCE_LIST_SIDEBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CIANO_WIDGETS_TYPE_SOURCE_LIST_SIDEBAR, CianoWidgetsSourceListSidebarClass))

typedef struct _CianoWidgetsSourceListSidebar CianoWidgetsSourceListSidebar;
typedef struct _CianoWidgetsSourceListSidebarClass CianoWidgetsSourceListSidebarClass;
typedef struct _CianoWidgetsSourceListSidebarPrivate CianoWidgetsSourceListSidebarPrivate;

#define CIANO_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM (ciano_widgets_source_list_expandable_item_get_type ())
#define CIANO_WIDGETS_SOURCE_LIST_EXPANDABLE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CIANO_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM, CianoWidgetsSourceListExpandableItem))
#define CIANO_WIDGETS_SOURCE_LIST_EXPANDABLE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CIANO_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM, CianoWidgetsSourceListExpandableItemClass))
#define CIANO_WIDGETS_SOURCE_LIST_IS_EXPANDABLE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CIANO_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM))
#define CIANO_WIDGETS_SOURCE_LIST_IS_EXPANDABLE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CIANO_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM))
#define CIANO_WIDGETS_SOURCE_LIST_EXPANDABLE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CIANO_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM, CianoWidgetsSourceListExpandableItemClass))

typedef struct _CianoWidgetsSourceListExpandableItem CianoWidgetsSourceListExpandableItem;
typedef struct _CianoWidgetsSourceListExpandableItemClass CianoWidgetsSourceListExpandableItemClass;
enum  {
	CIANO_WIDGETS_SOURCE_LIST_SIDEBAR_0_PROPERTY,
	CIANO_WIDGETS_SOURCE_LIST_SIDEBAR_NUM_PROPERTIES
};
static GParamSpec* ciano_widgets_source_list_sidebar_properties[CIANO_WIDGETS_SOURCE_LIST_SIDEBAR_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

struct _CianoWidgetsSourceList {
	GtkScrolledWindow parent_instance;
	CianoWidgetsSourceListPrivate * priv;
};

struct _CianoWidgetsSourceListClass {
	GtkScrolledWindowClass parent_class;
	void (*item_selected) (CianoWidgetsSourceList* self, CianoWidgetsSourceListItem* item);
};

struct _CianoWidgetsSourceListSidebar {
	CianoWidgetsSourceList parent_instance;
	CianoWidgetsSourceListSidebarPrivate * priv;
	GtkButton* preferences;
};

struct _CianoWidgetsSourceListSidebarClass {
	CianoWidgetsSourceListClass parent_class;
};

struct _CianoWidgetsSourceListSidebarPrivate {
	CianoWidgetsSourceListExpandableItem* type_list;
};

static gint CianoWidgetsSourceListSidebar_private_offset;
static gpointer ciano_widgets_source_list_sidebar_parent_class = NULL;

VALA_EXTERN GType ciano_widgets_source_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CianoWidgetsSourceList, g_object_unref)
VALA_EXTERN GType ciano_widgets_source_list_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CianoWidgetsSourceListItem, g_object_unref)
VALA_EXTERN GType ciano_widgets_source_list_sidebar_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CianoWidgetsSourceListSidebar, g_object_unref)
VALA_EXTERN GType ciano_widgets_source_list_expandable_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CianoWidgetsSourceListExpandableItem, g_object_unref)
VALA_EXTERN CianoWidgetsSourceListSidebar* ciano_widgets_source_list_sidebar_new (void);
VALA_EXTERN CianoWidgetsSourceListSidebar* ciano_widgets_source_list_sidebar_construct (GType object_type);
VALA_EXTERN CianoWidgetsSourceListExpandableItem* ciano_widgets_source_list_expandable_item_new (const gchar* name);
VALA_EXTERN CianoWidgetsSourceListExpandableItem* ciano_widgets_source_list_expandable_item_construct (GType object_type,
                                                                                           const gchar* name);
VALA_EXTERN CianoWidgetsSourceList* ciano_widgets_source_list_new (CianoWidgetsSourceListExpandableItem* root);
VALA_EXTERN CianoWidgetsSourceList* ciano_widgets_source_list_construct (GType object_type,
                                                             CianoWidgetsSourceListExpandableItem* root);
VALA_EXTERN void ciano_widgets_source_list_item_set_selectable (CianoWidgetsSourceListItem* self,
                                                    gboolean value);
VALA_EXTERN void ciano_widgets_source_list_expandable_item_expand_all (CianoWidgetsSourceListExpandableItem* self,
                                                           gboolean inclusive,
                                                           gboolean recursive);
VALA_EXTERN void ciano_widgets_source_list_sidebar_mount_video_list (CianoWidgetsSourceListSidebar* self);
VALA_EXTERN void ciano_widgets_source_list_sidebar_mount_music_list (CianoWidgetsSourceListSidebar* self);
VALA_EXTERN void ciano_widgets_source_list_sidebar_mount_image_list (CianoWidgetsSourceListSidebar* self);
VALA_EXTERN CianoWidgetsSourceListExpandableItem* ciano_widgets_source_list_get_root (CianoWidgetsSourceList* self);
VALA_EXTERN void ciano_widgets_source_list_expandable_item_add (CianoWidgetsSourceListExpandableItem* self,
                                                    CianoWidgetsSourceListItem* item);
VALA_EXTERN void ciano_widgets_source_list_item_set_icon (CianoWidgetsSourceListItem* self,
                                              GIcon* value);
VALA_EXTERN CianoWidgetsSourceListItem* ciano_widgets_source_list_item_new (const gchar* name);
VALA_EXTERN CianoWidgetsSourceListItem* ciano_widgets_source_list_item_construct (GType object_type,
                                                                      const gchar* name);
static void ciano_widgets_source_list_sidebar_finalize (GObject * obj);
static GType ciano_widgets_source_list_sidebar_get_type_once (void);

static inline gpointer
ciano_widgets_source_list_sidebar_get_instance_private (CianoWidgetsSourceListSidebar* self)
{
	return G_STRUCT_MEMBER_P (self, CianoWidgetsSourceListSidebar_private_offset);
}

/**
         * Constructs a new {@code DialogConvertFile} object responsible for mount sidebar structure.
         *
         * @see Ciano.Configs.Properties
         * @see Ciano.Widgets.SourceList.ExpandableItem
         * @see mount_video_list
         * @see mount_music_list
         * @see mount_image_list
         */
CianoWidgetsSourceListSidebar*
ciano_widgets_source_list_sidebar_construct (GType object_type)
{
	CianoWidgetsSourceListSidebar * self = NULL;
	CianoWidgetsSourceListExpandableItem* _tmp0_;
	CianoWidgetsSourceListExpandableItem* _tmp1_;
	CianoWidgetsSourceListExpandableItem* _tmp2_;
	CianoWidgetsSourceListExpandableItem* _tmp3_;
	CianoWidgetsSourceListExpandableItem* _tmp4_;
	CianoWidgetsSourceListExpandableItem* _tmp5_;
	CianoWidgetsSourceListExpandableItem* _tmp6_;
	CianoWidgetsSourceListExpandableItem* _tmp7_;
	_tmp0_ = ciano_widgets_source_list_expandable_item_new ("");
	_tmp1_ = _tmp0_;
	self = (CianoWidgetsSourceListSidebar*) ciano_widgets_source_list_construct (object_type, _tmp1_);
	_g_object_unref0 (_tmp1_);
	_tmp2_ = ciano_widgets_source_list_expandable_item_new (CIANO_CONFIGS_PROPERTIES_TEXT_CONVERT_FILE_TO);
	_g_object_unref0 (self->priv->type_list);
	self->priv->type_list = _tmp2_;
	_tmp3_ = self->priv->type_list;
	ciano_widgets_source_list_item_set_selectable ((CianoWidgetsSourceListItem*) _tmp3_, FALSE);
	_tmp4_ = self->priv->type_list;
	ciano_widgets_source_list_expandable_item_expand_all (_tmp4_, TRUE, TRUE);
	ciano_widgets_source_list_sidebar_mount_video_list (self);
	ciano_widgets_source_list_sidebar_mount_music_list (self);
	ciano_widgets_source_list_sidebar_mount_image_list (self);
	_tmp5_ = ciano_widgets_source_list_get_root ((CianoWidgetsSourceList*) self);
	_tmp6_ = _tmp5_;
	_tmp7_ = self->priv->type_list;
	ciano_widgets_source_list_expandable_item_add (_tmp6_, (CianoWidgetsSourceListItem*) _tmp7_);
	return self;
}

CianoWidgetsSourceListSidebar*
ciano_widgets_source_list_sidebar_new (void)
{
	return ciano_widgets_source_list_sidebar_construct (CIANO_WIDGETS_TYPE_SOURCE_LIST_SIDEBAR);
}

/**
         * Creates the Videos section with the types supported in the application.
         *
         * @see Ciano.Configs.Properties
         * @see Ciano.Configs.Constants
         * @see Ciano.Widgets.SourceList.ExpandableItem
         * @see Ciano.Widgets.SourceList.Item
         */
void
ciano_widgets_source_list_sidebar_mount_video_list (CianoWidgetsSourceListSidebar* self)
{
	CianoWidgetsSourceListExpandableItem* video_list = NULL;
	CianoWidgetsSourceListExpandableItem* _tmp0_;
	GThemedIcon* _tmp1_;
	GThemedIcon* _tmp2_;
	CianoWidgetsSourceListItem* mp4_item = NULL;
	CianoWidgetsSourceListItem* _tmp3_;
	CianoWidgetsSourceListItem* mpg_item = NULL;
	CianoWidgetsSourceListItem* _tmp4_;
	CianoWidgetsSourceListItem* avi_item = NULL;
	CianoWidgetsSourceListItem* _tmp5_;
	CianoWidgetsSourceListItem* wmv_item = NULL;
	CianoWidgetsSourceListItem* _tmp6_;
	CianoWidgetsSourceListItem* flv_item = NULL;
	CianoWidgetsSourceListItem* _tmp7_;
	CianoWidgetsSourceListItem* mkv_item = NULL;
	CianoWidgetsSourceListItem* _tmp8_;
	CianoWidgetsSourceListItem* _3gp_item_ = NULL;
	CianoWidgetsSourceListItem* _tmp9_;
	CianoWidgetsSourceListItem* mov_item = NULL;
	CianoWidgetsSourceListItem* _tmp10_;
	CianoWidgetsSourceListItem* vob_item = NULL;
	CianoWidgetsSourceListItem* _tmp11_;
	CianoWidgetsSourceListItem* ogv_item = NULL;
	CianoWidgetsSourceListItem* _tmp12_;
	CianoWidgetsSourceListItem* webm_item = NULL;
	CianoWidgetsSourceListItem* _tmp13_;
	CianoWidgetsSourceListExpandableItem* _tmp14_;
	g_return_if_fail (self != NULL);
	_tmp0_ = ciano_widgets_source_list_expandable_item_new (CIANO_CONFIGS_PROPERTIES_TEXT_VIDEO);
	video_list = _tmp0_;
	_tmp1_ = (GThemedIcon*) g_themed_icon_new ("folder-videos");
	_tmp2_ = _tmp1_;
	ciano_widgets_source_list_item_set_icon ((CianoWidgetsSourceListItem*) video_list, (GIcon*) _tmp2_);
	_g_object_unref0 (_tmp2_);
	ciano_widgets_source_list_item_set_selectable ((CianoWidgetsSourceListItem*) video_list, FALSE);
	ciano_widgets_source_list_expandable_item_expand_all (video_list, TRUE, TRUE);
	_tmp3_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_MP4);
	mp4_item = _tmp3_;
	_tmp4_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_MPG);
	mpg_item = _tmp4_;
	_tmp5_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_AVI);
	avi_item = _tmp5_;
	_tmp6_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_WMV);
	wmv_item = _tmp6_;
	_tmp7_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_FLV);
	flv_item = _tmp7_;
	_tmp8_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_MKV);
	mkv_item = _tmp8_;
	_tmp9_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_3GP);
	_3gp_item_ = _tmp9_;
	_tmp10_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_MOV);
	mov_item = _tmp10_;
	_tmp11_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_VOB);
	vob_item = _tmp11_;
	_tmp12_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_OGV);
	ogv_item = _tmp12_;
	_tmp13_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_WEBM);
	webm_item = _tmp13_;
	ciano_widgets_source_list_expandable_item_add (video_list, mp4_item);
	ciano_widgets_source_list_expandable_item_add (video_list, mpg_item);
	ciano_widgets_source_list_expandable_item_add (video_list, avi_item);
	ciano_widgets_source_list_expandable_item_add (video_list, wmv_item);
	ciano_widgets_source_list_expandable_item_add (video_list, flv_item);
	ciano_widgets_source_list_expandable_item_add (video_list, mkv_item);
	ciano_widgets_source_list_expandable_item_add (video_list, _3gp_item_);
	ciano_widgets_source_list_expandable_item_add (video_list, mov_item);
	ciano_widgets_source_list_expandable_item_add (video_list, vob_item);
	ciano_widgets_source_list_expandable_item_add (video_list, ogv_item);
	ciano_widgets_source_list_expandable_item_add (video_list, webm_item);
	_tmp14_ = self->priv->type_list;
	ciano_widgets_source_list_expandable_item_add (_tmp14_, (CianoWidgetsSourceListItem*) video_list);
	_g_object_unref0 (webm_item);
	_g_object_unref0 (ogv_item);
	_g_object_unref0 (vob_item);
	_g_object_unref0 (mov_item);
	_g_object_unref0 (_3gp_item_);
	_g_object_unref0 (mkv_item);
	_g_object_unref0 (flv_item);
	_g_object_unref0 (wmv_item);
	_g_object_unref0 (avi_item);
	_g_object_unref0 (mpg_item);
	_g_object_unref0 (mp4_item);
	_g_object_unref0 (video_list);
}

/**
         * Creates the Music's section with the types supported in the application.
         *
         * @see Ciano.Configs.Properties
         * @see Ciano.Configs.Constants
         * @see Ciano.Widgets.SourceList.ExpandableItem
         * @see Ciano.Widgets.SourceList.Item
         */
void
ciano_widgets_source_list_sidebar_mount_music_list (CianoWidgetsSourceListSidebar* self)
{
	CianoWidgetsSourceListExpandableItem* music_list = NULL;
	CianoWidgetsSourceListExpandableItem* _tmp0_;
	GThemedIcon* _tmp1_;
	GThemedIcon* _tmp2_;
	CianoWidgetsSourceListItem* mp3_item = NULL;
	CianoWidgetsSourceListItem* _tmp3_;
	CianoWidgetsSourceListItem* wma_item = NULL;
	CianoWidgetsSourceListItem* _tmp4_;
	CianoWidgetsSourceListItem* ogg_item = NULL;
	CianoWidgetsSourceListItem* _tmp5_;
	CianoWidgetsSourceListItem* wav_item = NULL;
	CianoWidgetsSourceListItem* _tmp6_;
	CianoWidgetsSourceListItem* aac_item = NULL;
	CianoWidgetsSourceListItem* _tmp7_;
	CianoWidgetsSourceListItem* flac_item = NULL;
	CianoWidgetsSourceListItem* _tmp8_;
	CianoWidgetsSourceListItem* aiff_item = NULL;
	CianoWidgetsSourceListItem* _tmp9_;
	CianoWidgetsSourceListItem* mmf_item = NULL;
	CianoWidgetsSourceListItem* _tmp10_;
	CianoWidgetsSourceListItem* m4a_item = NULL;
	CianoWidgetsSourceListItem* _tmp11_;
	CianoWidgetsSourceListItem* opus_item = NULL;
	CianoWidgetsSourceListItem* _tmp12_;
	CianoWidgetsSourceListExpandableItem* _tmp13_;
	g_return_if_fail (self != NULL);
	_tmp0_ = ciano_widgets_source_list_expandable_item_new (CIANO_CONFIGS_PROPERTIES_TEXT_MUSIC);
	music_list = _tmp0_;
	_tmp1_ = (GThemedIcon*) g_themed_icon_new ("folder-music");
	_tmp2_ = _tmp1_;
	ciano_widgets_source_list_item_set_icon ((CianoWidgetsSourceListItem*) music_list, (GIcon*) _tmp2_);
	_g_object_unref0 (_tmp2_);
	ciano_widgets_source_list_item_set_selectable ((CianoWidgetsSourceListItem*) music_list, FALSE);
	_tmp3_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_MP3);
	mp3_item = _tmp3_;
	_tmp4_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_WMA);
	wma_item = _tmp4_;
	_tmp5_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_OGG);
	ogg_item = _tmp5_;
	_tmp6_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_WAV);
	wav_item = _tmp6_;
	_tmp7_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_AAC);
	aac_item = _tmp7_;
	_tmp8_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_FLAC);
	flac_item = _tmp8_;
	_tmp9_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_AIFF);
	aiff_item = _tmp9_;
	_tmp10_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_MMF);
	mmf_item = _tmp10_;
	_tmp11_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_M4A);
	m4a_item = _tmp11_;
	_tmp12_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_OPUS);
	opus_item = _tmp12_;
	ciano_widgets_source_list_expandable_item_add (music_list, mp3_item);
	ciano_widgets_source_list_expandable_item_add (music_list, wma_item);
	ciano_widgets_source_list_expandable_item_add (music_list, ogg_item);
	ciano_widgets_source_list_expandable_item_add (music_list, wav_item);
	ciano_widgets_source_list_expandable_item_add (music_list, aac_item);
	ciano_widgets_source_list_expandable_item_add (music_list, flac_item);
	ciano_widgets_source_list_expandable_item_add (music_list, aiff_item);
	ciano_widgets_source_list_expandable_item_add (music_list, mmf_item);
	ciano_widgets_source_list_expandable_item_add (music_list, m4a_item);
	ciano_widgets_source_list_expandable_item_add (music_list, opus_item);
	_tmp13_ = self->priv->type_list;
	ciano_widgets_source_list_expandable_item_add (_tmp13_, (CianoWidgetsSourceListItem*) music_list);
	_g_object_unref0 (opus_item);
	_g_object_unref0 (m4a_item);
	_g_object_unref0 (mmf_item);
	_g_object_unref0 (aiff_item);
	_g_object_unref0 (flac_item);
	_g_object_unref0 (aac_item);
	_g_object_unref0 (wav_item);
	_g_object_unref0 (ogg_item);
	_g_object_unref0 (wma_item);
	_g_object_unref0 (mp3_item);
	_g_object_unref0 (music_list);
}

/**
         * Creates the Pictures section with the types supported in the application.
         *
         * @see Ciano.Configs.Properties
         * @see Ciano.Configs.Constants
         * @see Ciano.Widgets.SourceList.ExpandableItem
         * @see Ciano.Widgets.SourceList.Item
         */
void
ciano_widgets_source_list_sidebar_mount_image_list (CianoWidgetsSourceListSidebar* self)
{
	CianoWidgetsSourceListExpandableItem* image_list = NULL;
	CianoWidgetsSourceListExpandableItem* _tmp0_;
	GThemedIcon* _tmp1_;
	GThemedIcon* _tmp2_;
	CianoWidgetsSourceListItem* jpg_item = NULL;
	CianoWidgetsSourceListItem* _tmp3_;
	CianoWidgetsSourceListItem* bmp_item = NULL;
	CianoWidgetsSourceListItem* _tmp4_;
	CianoWidgetsSourceListItem* png_item = NULL;
	CianoWidgetsSourceListItem* _tmp5_;
	CianoWidgetsSourceListItem* tif_item = NULL;
	CianoWidgetsSourceListItem* _tmp6_;
	CianoWidgetsSourceListItem* gif_item = NULL;
	CianoWidgetsSourceListItem* _tmp7_;
	CianoWidgetsSourceListItem* tga_item = NULL;
	CianoWidgetsSourceListItem* _tmp8_;
	CianoWidgetsSourceListItem* webp_item = NULL;
	CianoWidgetsSourceListItem* _tmp9_;
	CianoWidgetsSourceListExpandableItem* _tmp10_;
	g_return_if_fail (self != NULL);
	_tmp0_ = ciano_widgets_source_list_expandable_item_new (CIANO_CONFIGS_PROPERTIES_TEXT_IMAGE);
	image_list = _tmp0_;
	_tmp1_ = (GThemedIcon*) g_themed_icon_new ("folder-pictures");
	_tmp2_ = _tmp1_;
	ciano_widgets_source_list_item_set_icon ((CianoWidgetsSourceListItem*) image_list, (GIcon*) _tmp2_);
	_g_object_unref0 (_tmp2_);
	ciano_widgets_source_list_item_set_selectable ((CianoWidgetsSourceListItem*) image_list, FALSE);
	_tmp3_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_JPG);
	jpg_item = _tmp3_;
	_tmp4_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_BMP);
	bmp_item = _tmp4_;
	_tmp5_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_PNG);
	png_item = _tmp5_;
	_tmp6_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_TIF);
	tif_item = _tmp6_;
	_tmp7_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_GIF);
	gif_item = _tmp7_;
	_tmp8_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_TGA);
	tga_item = _tmp8_;
	_tmp9_ = ciano_widgets_source_list_item_new (CIANO_CONFIGS_CONSTANTS_TEXT_WEBP);
	webp_item = _tmp9_;
	ciano_widgets_source_list_expandable_item_add (image_list, jpg_item);
	ciano_widgets_source_list_expandable_item_add (image_list, bmp_item);
	ciano_widgets_source_list_expandable_item_add (image_list, png_item);
	ciano_widgets_source_list_expandable_item_add (image_list, tif_item);
	ciano_widgets_source_list_expandable_item_add (image_list, gif_item);
	ciano_widgets_source_list_expandable_item_add (image_list, tga_item);
	ciano_widgets_source_list_expandable_item_add (image_list, webp_item);
	_tmp10_ = self->priv->type_list;
	ciano_widgets_source_list_expandable_item_add (_tmp10_, (CianoWidgetsSourceListItem*) image_list);
	_g_object_unref0 (webp_item);
	_g_object_unref0 (tga_item);
	_g_object_unref0 (gif_item);
	_g_object_unref0 (tif_item);
	_g_object_unref0 (png_item);
	_g_object_unref0 (bmp_item);
	_g_object_unref0 (jpg_item);
	_g_object_unref0 (image_list);
}

static void
ciano_widgets_source_list_sidebar_class_init (CianoWidgetsSourceListSidebarClass * klass,
                                              gpointer klass_data)
{
	ciano_widgets_source_list_sidebar_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &CianoWidgetsSourceListSidebar_private_offset);
	G_OBJECT_CLASS (klass)->finalize = ciano_widgets_source_list_sidebar_finalize;
}

static void
ciano_widgets_source_list_sidebar_instance_init (CianoWidgetsSourceListSidebar * self,
                                                 gpointer klass)
{
	self->priv = ciano_widgets_source_list_sidebar_get_instance_private (self);
}

static void
ciano_widgets_source_list_sidebar_finalize (GObject * obj)
{
	CianoWidgetsSourceListSidebar * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, CIANO_WIDGETS_TYPE_SOURCE_LIST_SIDEBAR, CianoWidgetsSourceListSidebar);
	_g_object_unref0 (self->priv->type_list);
	_g_object_unref0 (self->preferences);
	G_OBJECT_CLASS (ciano_widgets_source_list_sidebar_parent_class)->finalize (obj);
}

/**
     * The {@code SourceListSidebar} class is responsible for assembling the list with
     * the types of items that are supported for conversion.
     *
     * @see Ciano.Widgets.SourceList
     * @since 0.1.0
     */
static GType
ciano_widgets_source_list_sidebar_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (CianoWidgetsSourceListSidebarClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) ciano_widgets_source_list_sidebar_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CianoWidgetsSourceListSidebar), 0, (GInstanceInitFunc) ciano_widgets_source_list_sidebar_instance_init, NULL };
	GType ciano_widgets_source_list_sidebar_type_id;
	ciano_widgets_source_list_sidebar_type_id = g_type_register_static (CIANO_WIDGETS_TYPE_SOURCE_LIST, "CianoWidgetsSourceListSidebar", &g_define_type_info, 0);
	CianoWidgetsSourceListSidebar_private_offset = g_type_add_instance_private (ciano_widgets_source_list_sidebar_type_id, sizeof (CianoWidgetsSourceListSidebarPrivate));
	return ciano_widgets_source_list_sidebar_type_id;
}

GType
ciano_widgets_source_list_sidebar_get_type (void)
{
	static volatile gsize ciano_widgets_source_list_sidebar_type_id__once = 0;
	if (g_once_init_enter (&ciano_widgets_source_list_sidebar_type_id__once)) {
		GType ciano_widgets_source_list_sidebar_type_id;
		ciano_widgets_source_list_sidebar_type_id = ciano_widgets_source_list_sidebar_get_type_once ();
		g_once_init_leave (&ciano_widgets_source_list_sidebar_type_id__once, ciano_widgets_source_list_sidebar_type_id);
	}
	return ciano_widgets_source_list_sidebar_type_id__once;
}

