Add a few property getters, used by controller

- virt_viewer_app_get_windows()
- virt_viewer_window_get_builder()
- "VirtViewerSessionSpice:spice-session" property
This commit is contained in:
Marc-André Lureau 2012-01-27 14:51:26 +01:00 committed by Daniel P. Berrange
parent 67284efecf
commit 80a3192603
5 changed files with 63 additions and 2 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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