Implement resource streams
[projects/chimara/chimara.git] / libchimara / chimara-glk.c
index b7c0a7d6f3df2f9290ed5e459ea02d9c481b9e26..6a4c0d3e07a402aec0ee11ce1132ca1a3912dffa 100644 (file)
@@ -148,7 +148,8 @@ enum {
        PROP_SPACING,
        PROP_PROGRAM_NAME,
        PROP_PROGRAM_INFO,
-       PROP_STORY_NAME
+       PROP_STORY_NAME,
+       PROP_RUNNING
 };
 
 enum {
@@ -170,6 +171,8 @@ G_DEFINE_TYPE(ChimaraGlk, chimara_glk, GTK_TYPE_CONTAINER);
 static void
 chimara_glk_init(ChimaraGlk *self)
 {
+       chimara_init(); /* This is a library entry point */
+
     gtk_widget_set_has_window(GTK_WIDGET(self), FALSE);
 
     ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(self);
@@ -267,6 +270,9 @@ chimara_glk_get_property(GObject *object, guint prop_id, GValue *value, GParamSp
                case PROP_STORY_NAME:
                        g_value_set_string(value, priv->story_name);
                        break;
+               case PROP_RUNNING:
+                       g_value_set_boolean(value, priv->running);
+                       break;
                default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
     }
@@ -947,6 +953,17 @@ chimara_glk_class_init(ChimaraGlkClass *klass)
                NULL,
                G_PARAM_READABLE | G_PARAM_STATIC_STRINGS) );
        
+       /**
+        * ChimaraGlk:running:
+        *
+        * Whether this Glk widget is currently running a game or not.
+        */
+       g_object_class_install_property(object_class, PROP_RUNNING,
+               g_param_spec_boolean("running", _("Running"),
+               _("Whether there is a program currently running"),
+               FALSE,
+               G_PARAM_READABLE | G_PARAM_STATIC_STRINGS) );
+
        /* Private data */
     g_type_class_add_private(klass, sizeof(ChimaraGlkPrivate));
 }