/* gtk-sidebar.h
 */

#ifndef __GTK_SIDEBAR_H__
#define __GTK_SIDEBAR_H__

#include <gtk/gtkvbox.h>

G_BEGIN_DECLS

typedef struct _GtkSidebar GtkSidebar;
typedef struct _GtkSidebarClass GtkSidebarClass;
typedef struct _GtkSidebarPrivate GtkSidebarPrivate;

#define GTK_TYPE_SIDEBAR		     (gtk_sidebar_get_type())
#define GTK_SIDEBAR(object)	     (G_TYPE_CHECK_INSTANCE_CAST((object), GTK_TYPE_SIDEBAR, GtkSidebar))
#define GTK_SIDEBAR_CLASS(klass)	     (G_TYPE_CHACK_CLASS_CAST((klass), GTK_TYPE_SIDEBAR, GtkSidebarClass))
#define GTK_IS_SIDEBAR(object)	     (G_TYPE_CHECK_INSTANCE_TYPE((object), GTK_TYPE_SIDEBAR))
#define GTK_IS_SIDEBAR_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_SIDEBAR))
#define GTK_SIDEBAR_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), GTK_TYPE_SIDEBAR, GtkSidebarClass))

struct _GtkSidebar {
	GtkVBox base_instance;

	GtkSidebarPrivate *priv;
};

struct _GtkSidebarClass {
	GtkVBoxClass base_class;
};

GType      gtk_sidebar_get_type  	   (void);
GtkWidget *gtk_sidebar_new         	   (void);

void       gtk_sidebar_add_page    	   (GtkSidebar   *sidebar,
					    const char   *page_id,
					    const char   *page_title,
					    GtkWidget    *main_widget);

void       gtk_sidebar_remove_page         (GtkSidebar   *sidebar,
					    GtkWidget    *main_widget);

void       gtk_sidebar_show_page           (GtkSidebar   *sidebar,
					    GtkWidget    *main_widget);

GtkWidget *gtk_sidebar_get_current_page    (GtkSidebar   *sidebar);
char      *gtk_sidebar_get_current_page_id (GtkSidebar   *sidebar);
void      *gtk_sidebar_set_current_page_title
					   (GtkSidebar   *sidebar,
					    const char   *page_title);

G_END_DECLS

#endif /* __GTK_SIDEBAR_H__ */


