summaryrefslogtreecommitdiff
path: root/endless/eossplashpagemanager.c
diff options
context:
space:
mode:
Diffstat (limited to 'endless/eossplashpagemanager.c')
-rw-r--r--endless/eossplashpagemanager.c65
1 files changed, 34 insertions, 31 deletions
diff --git a/endless/eossplashpagemanager.c b/endless/eossplashpagemanager.c
index bbaf898..bd13645 100644
--- a/endless/eossplashpagemanager.c
+++ b/endless/eossplashpagemanager.c
@@ -42,17 +42,13 @@
* ]|
*/
-G_DEFINE_TYPE (EosSplashPageManager, eos_splash_page_manager, EOS_TYPE_PAGE_MANAGER)
-
-#define SPLASH_PAGE_MANAGER_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), EOS_TYPE_SPLASH_PAGE_MANAGER, EosSplashPageManagerPrivate))
-
-struct _EosSplashPageManagerPrivate
-{
+typedef struct {
GtkWidget *splash_page;
GtkWidget *main_page;
gboolean main_page_shown;
-};
+} EosSplashPageManagerPrivate;
+
+G_DEFINE_TYPE_WITH_PRIVATE (EosSplashPageManager, eos_splash_page_manager, EOS_TYPE_PAGE_MANAGER)
enum
{
@@ -115,7 +111,8 @@ eos_splash_page_manager_add (GtkContainer *container,
GtkWidget *new_page)
{
EosSplashPageManager *self = EOS_SPLASH_PAGE_MANAGER (container);
- if (self->priv->splash_page != NULL)
+ EosSplashPageManagerPrivate *priv = eos_splash_page_manager_get_instance_private (self);
+ if (priv->splash_page != NULL)
{
g_critical ("Not adding page %p to splash page manager. You already added"
"a splash page.", new_page);
@@ -131,11 +128,12 @@ eos_splash_page_manager_remove (GtkContainer *container,
GtkWidget *page)
{
EosSplashPageManager *self = EOS_SPLASH_PAGE_MANAGER (container);
- if (page == self->priv->splash_page)
+ EosSplashPageManagerPrivate *priv = eos_splash_page_manager_get_instance_private (self);
+ if (page == priv->splash_page)
{
eos_splash_page_manager_set_splash_page (self, NULL);
}
- if (page == self->priv->main_page)
+ if (page == priv->main_page)
{
eos_splash_page_manager_set_main_page (self, NULL);
}
@@ -147,8 +145,6 @@ eos_splash_page_manager_class_init (EosSplashPageManagerClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
- g_type_class_add_private (klass, sizeof (EosSplashPageManagerPrivate));
-
object_class->get_property = eos_splash_page_manager_get_property;
object_class->set_property = eos_splash_page_manager_set_property;
@@ -186,7 +182,6 @@ eos_splash_page_manager_class_init (EosSplashPageManagerClass *klass)
static void
eos_splash_page_manager_init (EosSplashPageManager *self)
{
- self->priv = SPLASH_PAGE_MANAGER_PRIVATE (self);
}
/* Public API */
@@ -219,7 +214,8 @@ eos_splash_page_manager_get_splash_page (EosSplashPageManager *self)
{
g_return_val_if_fail (EOS_IS_SPLASH_PAGE_MANAGER (self), NULL);
- return self->priv->splash_page;
+ EosSplashPageManagerPrivate *priv = eos_splash_page_manager_get_instance_private (self);
+ return priv->splash_page;
}
/**
@@ -240,18 +236,19 @@ eos_splash_page_manager_set_splash_page (EosSplashPageManager *self,
g_return_if_fail (page == NULL || GTK_IS_WIDGET (page));
g_return_if_fail (page == NULL || gtk_widget_get_parent (page) == NULL);
+ EosSplashPageManagerPrivate *priv = eos_splash_page_manager_get_instance_private (self);
- if (self->priv->splash_page != page)
+ if (priv->splash_page != page)
{
- if (self->priv->splash_page != NULL)
- gtk_container_remove (GTK_CONTAINER (self), self->priv->splash_page);
+ if (priv->splash_page != NULL)
+ gtk_container_remove (GTK_CONTAINER (self), priv->splash_page);
if (page != NULL)
{
GTK_CONTAINER_CLASS (eos_splash_page_manager_parent_class)->add (GTK_CONTAINER (self), page);
- if (!self->priv->main_page_shown)
+ if (!priv->main_page_shown)
eos_page_manager_set_visible_page (EOS_PAGE_MANAGER (self), page);
}
- self->priv->splash_page = page;
+ priv->splash_page = page;
g_object_notify( G_OBJECT (self), "splash-page");
}
}
@@ -272,7 +269,8 @@ eos_splash_page_manager_get_main_page (EosSplashPageManager *self)
{
g_return_val_if_fail (EOS_IS_SPLASH_PAGE_MANAGER (self), NULL);
- return self->priv->main_page;
+ EosSplashPageManagerPrivate *priv = eos_splash_page_manager_get_instance_private (self);
+ return priv->main_page;
}
/**
@@ -293,14 +291,15 @@ eos_splash_page_manager_set_main_page (EosSplashPageManager *self,
g_return_if_fail (page == NULL || GTK_IS_WIDGET (page));
g_return_if_fail (page == NULL || gtk_widget_get_parent (page) == NULL);
- if (self->priv->main_page != page)
+ EosSplashPageManagerPrivate *priv = eos_splash_page_manager_get_instance_private (self);
+ if (priv->main_page != page)
{
- if (self->priv->main_page != NULL)
- gtk_container_remove (GTK_CONTAINER (self), self->priv->main_page);
+ if (priv->main_page != NULL)
+ gtk_container_remove (GTK_CONTAINER (self), priv->main_page);
// Call page manager add not our own.
if (page != NULL)
GTK_CONTAINER_CLASS (eos_splash_page_manager_parent_class)->add (GTK_CONTAINER (self), page);
- self->priv->main_page = page;
+ priv->main_page = page;
g_object_notify( G_OBJECT (self), "main-page");
}
}
@@ -315,13 +314,15 @@ void
eos_splash_page_manager_show_main_page (EosSplashPageManager *self)
{
g_return_if_fail (EOS_IS_SPLASH_PAGE_MANAGER (self));
- if (self->priv->main_page == NULL)
+
+ EosSplashPageManagerPrivate *priv = eos_splash_page_manager_get_instance_private (self);
+ if (priv->main_page == NULL)
{
g_critical ("Main page is null, have you set it?");
return;
}
- self->priv->main_page_shown = TRUE;
- eos_page_manager_set_visible_page (EOS_PAGE_MANAGER (self), self->priv->main_page);
+ priv->main_page_shown = TRUE;
+ eos_page_manager_set_visible_page (EOS_PAGE_MANAGER (self), priv->main_page);
}
/**
@@ -336,11 +337,13 @@ void
eos_splash_page_manager_show_splash_page (EosSplashPageManager *self)
{
g_return_if_fail (EOS_IS_SPLASH_PAGE_MANAGER (self));
- if (self->priv->splash_page == NULL)
+
+ EosSplashPageManagerPrivate *priv = eos_splash_page_manager_get_instance_private (self);
+ if (priv->splash_page == NULL)
{
g_critical ("Splash page is null, have you set it?");
return;
}
- self->priv->main_page_shown = FALSE;
- eos_page_manager_set_visible_page (EOS_PAGE_MANAGER (self), self->priv->splash_page);
+ priv->main_page_shown = FALSE;
+ eos_page_manager_set_visible_page (EOS_PAGE_MANAGER (self), priv->splash_page);
}