[virt-tools-list] [PATCH virt-viewer 07/17] Add a few property getters, used by controller
Marc-André Lureau
marcandre.lureau at gmail.com
Fri Jan 27 13:51:26 UTC 2012
- virt_viewer_app_get_windows()
- virt_viewer_window_get_builder()
- "VirtViewerSessionSpice:spice-session" property
---
src/virt-viewer-app.c | 7 +++++
src/virt-viewer-app.h | 1 +
src/virt-viewer-session-spice.c | 47 +++++++++++++++++++++++++++++++++++++-
src/virt-viewer-window.c | 9 +++++++
src/virt-viewer-window.h | 1 +
5 files changed, 63 insertions(+), 2 deletions(-)
diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index 97b53c2..352f206 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -1528,6 +1528,13 @@ virt_viewer_app_show_display(VirtViewerApp *self)
g_hash_table_foreach(self->priv->windows, show_display_cb, self);
}
+GHashTable*
+virt_viewer_app_get_windows(VirtViewerApp *self)
+{
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL);
+ return self->priv->windows;
+}
+
/*
* Local variables:
* c-indent-level: 8
diff --git a/src/virt-viewer-app.h b/src/virt-viewer-app.h
index 7c3f0a7..320e75c 100644
--- a/src/virt-viewer-app.h
+++ b/src/virt-viewer-app.h
@@ -86,6 +86,7 @@ void virt_viewer_app_set_connect_info(VirtViewerApp *self,
gboolean virt_viewer_app_window_set_visible(VirtViewerApp *self, VirtViewerWindow *window, gboolean visible);
void virt_viewer_app_show_status(VirtViewerApp *self, const gchar *fmt, ...);
void virt_viewer_app_show_display(VirtViewerApp *self);
+GHashTable* virt_viewer_app_get_windows(VirtViewerApp *self);
G_END_DECLS
diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c
index 066f922..f89d042 100644
--- a/src/virt-viewer-session-spice.c
+++ b/src/virt-viewer-session-spice.c
@@ -41,6 +41,12 @@ struct _VirtViewerSessionSpicePrivate {
#define VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpicePrivate))
+enum {
+ PROP_0,
+ PROP_SPICE_SESSION,
+};
+
+
static void virt_viewer_session_spice_close(VirtViewerSession *session);
static gboolean virt_viewer_session_spice_open_fd(VirtViewerSession *session, int fd);
static gboolean virt_viewer_session_spice_open_host(VirtViewerSession *session, char *host, char *port);
@@ -55,7 +61,33 @@ static void virt_viewer_session_spice_channel_destroy(SpiceSession *s,
static void
-virt_viewer_session_spice_finalize(GObject *obj)
+virt_viewer_session_spice_get_property(GObject *object, guint property_id,
+ GValue *value, GParamSpec *pspec)
+{
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(object);
+ VirtViewerSessionSpicePrivate *priv = self->priv;
+
+ switch (property_id) {
+ case PROP_SPICE_SESSION:
+ g_value_set_object(value, priv->session);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
+}
+
+static void
+virt_viewer_session_spice_set_property(GObject *object, guint property_id,
+ const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
+{
+ switch (property_id) {
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
+}
+
+static void
+virt_viewer_session_spice_dispose(GObject *obj)
{
VirtViewerSessionSpice *spice = VIRT_VIEWER_SESSION_SPICE(obj);
@@ -76,7 +108,9 @@ virt_viewer_session_spice_class_init(VirtViewerSessionSpiceClass *klass)
VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass);
GObjectClass *oclass = G_OBJECT_CLASS(klass);
- oclass->finalize = virt_viewer_session_spice_finalize;
+ oclass->get_property = virt_viewer_session_spice_get_property;
+ oclass->set_property = virt_viewer_session_spice_set_property;
+ oclass->dispose = virt_viewer_session_spice_dispose;
dclass->close = virt_viewer_session_spice_close;
dclass->open_fd = virt_viewer_session_spice_open_fd;
@@ -85,6 +119,15 @@ virt_viewer_session_spice_class_init(VirtViewerSessionSpiceClass *klass)
dclass->channel_open_fd = virt_viewer_session_spice_channel_open_fd;
g_type_class_add_private(oclass, sizeof(VirtViewerSessionSpicePrivate));
+
+ g_object_class_install_property(oclass,
+ PROP_SPICE_SESSION,
+ g_param_spec_object("spice-session",
+ "Spice session",
+ "Spice session",
+ SPICE_TYPE_SESSION,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
}
static void
diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
index 324e37f..d80b456 100644
--- a/src/virt-viewer-window.c
+++ b/src/virt-viewer-window.c
@@ -912,9 +912,18 @@ GtkMenuItem*
virt_viewer_window_get_menu_displays(VirtViewerWindow *self)
{
g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL);
+
return GTK_MENU_ITEM(gtk_builder_get_object(self->priv->builder, "menu-displays"));
}
+GtkBuilder*
+virt_viewer_window_get_builder(VirtViewerWindow *self)
+{
+ g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL);
+
+ return self->priv->builder;
+}
+
/*
* Local variables:
* c-indent-level: 8
diff --git a/src/virt-viewer-window.h b/src/virt-viewer-window.h
index 9baab76..cf66f5e 100644
--- a/src/virt-viewer-window.h
+++ b/src/virt-viewer-window.h
@@ -69,6 +69,7 @@ gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self);
void virt_viewer_window_leave_fullscreen(VirtViewerWindow *self);
void virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gboolean move, gint x, gint y);
GtkMenuItem *virt_viewer_window_get_menu_displays(VirtViewerWindow *self);
+GtkBuilder* virt_viewer_window_get_builder(VirtViewerWindow *window);
G_END_DECLS
--
1.7.7.6
More information about the virt-tools-list
mailing list