mirror of
https://gitlab.com/virt-viewer/virt-viewer.git
synced 2025-03-12 20:58:17 +03:00
src: convert VirtViewerDisplayVnc to G_DECLARE_FINAL_TYPE
This removes the use of a private data struct. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
45b03df8b8
commit
99f6cd7f87
@ -30,11 +30,12 @@
|
||||
|
||||
#include <glib/gi18n.h>
|
||||
|
||||
struct _VirtViewerDisplayVncPrivate {
|
||||
struct _VirtViewerDisplayVnc {
|
||||
VirtViewerDisplay parent;
|
||||
VncDisplay *vnc;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE(VirtViewerDisplayVnc, virt_viewer_display_vnc, VIRT_VIEWER_TYPE_DISPLAY)
|
||||
G_DEFINE_TYPE(VirtViewerDisplayVnc, virt_viewer_display_vnc, VIRT_VIEWER_TYPE_DISPLAY)
|
||||
|
||||
static void virt_viewer_display_vnc_send_keys(VirtViewerDisplay* display, const guint *keyvals, int nkeyvals);
|
||||
static GdkPixbuf *virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display);
|
||||
@ -43,9 +44,9 @@ static void virt_viewer_display_vnc_close(VirtViewerDisplay *display);
|
||||
static void
|
||||
virt_viewer_display_vnc_finalize(GObject *obj)
|
||||
{
|
||||
VirtViewerDisplayVnc *vnc = VIRT_VIEWER_DISPLAY_VNC(obj);
|
||||
VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(obj);
|
||||
|
||||
g_object_unref(vnc->priv->vnc);
|
||||
g_object_unref(self->vnc);
|
||||
|
||||
G_OBJECT_CLASS(virt_viewer_display_vnc_parent_class)->finalize(obj);
|
||||
}
|
||||
@ -56,7 +57,7 @@ virt_viewer_display_vnc_release_cursor(VirtViewerDisplay *display)
|
||||
{
|
||||
VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
|
||||
|
||||
vnc_display_force_grab(self->priv->vnc, FALSE);
|
||||
vnc_display_force_grab(self->vnc, FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -76,7 +77,6 @@ virt_viewer_display_vnc_class_init(VirtViewerDisplayVncClass *klass)
|
||||
static void
|
||||
virt_viewer_display_vnc_init(VirtViewerDisplayVnc *self G_GNUC_UNUSED)
|
||||
{
|
||||
self->priv = virt_viewer_display_vnc_get_instance_private(self);
|
||||
}
|
||||
|
||||
|
||||
@ -147,9 +147,9 @@ virt_viewer_display_vnc_send_keys(VirtViewerDisplay* display,
|
||||
|
||||
g_return_if_fail(self != NULL);
|
||||
g_return_if_fail(keyvals != NULL);
|
||||
g_return_if_fail(self->priv->vnc != NULL);
|
||||
g_return_if_fail(self->vnc != NULL);
|
||||
|
||||
vnc_display_send_keys(self->priv->vnc, keyvals, nkeyvals);
|
||||
vnc_display_send_keys(self->vnc, keyvals, nkeyvals);
|
||||
}
|
||||
|
||||
|
||||
@ -159,9 +159,9 @@ virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display)
|
||||
VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
|
||||
|
||||
g_return_val_if_fail(self != NULL, NULL);
|
||||
g_return_val_if_fail(self->priv->vnc != NULL, NULL);
|
||||
g_return_val_if_fail(self->vnc != NULL, NULL);
|
||||
|
||||
return vnc_display_get_pixbuf(self->priv->vnc);
|
||||
return vnc_display_get_pixbuf(self->vnc);
|
||||
}
|
||||
|
||||
|
||||
@ -210,17 +210,17 @@ GtkWidget *
|
||||
virt_viewer_display_vnc_new(VirtViewerSessionVnc *session,
|
||||
VncDisplay *vnc)
|
||||
{
|
||||
VirtViewerDisplayVnc *display;
|
||||
VirtViewerDisplayVnc *self;
|
||||
VirtViewerApp *app;
|
||||
|
||||
display = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_VNC, "session", session, NULL);
|
||||
self = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_VNC, "session", session, NULL);
|
||||
|
||||
g_object_ref(vnc);
|
||||
display->priv->vnc = vnc;
|
||||
self->vnc = vnc;
|
||||
|
||||
gtk_container_add(GTK_CONTAINER(display), GTK_WIDGET(display->priv->vnc));
|
||||
vnc_display_set_keyboard_grab(display->priv->vnc, TRUE);
|
||||
vnc_display_set_pointer_grab(display->priv->vnc, TRUE);
|
||||
gtk_container_add(GTK_CONTAINER(self), GTK_WIDGET(self->vnc));
|
||||
vnc_display_set_keyboard_grab(self->vnc, TRUE);
|
||||
vnc_display_set_pointer_grab(self->vnc, TRUE);
|
||||
|
||||
/*
|
||||
* In auto-resize mode we have things setup so that we always
|
||||
@ -231,43 +231,43 @@ virt_viewer_display_vnc_new(VirtViewerSessionVnc *session,
|
||||
* We disable force_size because we want to allow user to
|
||||
* manually size the widget smaller too
|
||||
*/
|
||||
vnc_display_set_force_size(display->priv->vnc, FALSE);
|
||||
vnc_display_set_scaling(display->priv->vnc, TRUE);
|
||||
vnc_display_set_force_size(self->vnc, FALSE);
|
||||
vnc_display_set_scaling(self->vnc, TRUE);
|
||||
|
||||
/* When VNC desktop resizes, we have to resize the containing widget */
|
||||
g_signal_connect(display->priv->vnc, "vnc-desktop-resize",
|
||||
G_CALLBACK(virt_viewer_display_vnc_resize_desktop), display);
|
||||
g_signal_connect(self->vnc, "vnc-desktop-resize",
|
||||
G_CALLBACK(virt_viewer_display_vnc_resize_desktop), self);
|
||||
|
||||
g_signal_connect(display->priv->vnc, "vnc-pointer-grab",
|
||||
G_CALLBACK(virt_viewer_display_vnc_mouse_grab), display);
|
||||
g_signal_connect(display->priv->vnc, "vnc-pointer-ungrab",
|
||||
G_CALLBACK(virt_viewer_display_vnc_mouse_ungrab), display);
|
||||
g_signal_connect(display->priv->vnc, "vnc-keyboard-grab",
|
||||
G_CALLBACK(virt_viewer_display_vnc_key_grab), display);
|
||||
g_signal_connect(display->priv->vnc, "vnc-keyboard-ungrab",
|
||||
G_CALLBACK(virt_viewer_display_vnc_key_ungrab), display);
|
||||
g_signal_connect(display->priv->vnc, "vnc-initialized",
|
||||
G_CALLBACK(virt_viewer_display_vnc_initialized), display);
|
||||
g_signal_connect(self->vnc, "vnc-pointer-grab",
|
||||
G_CALLBACK(virt_viewer_display_vnc_mouse_grab), self);
|
||||
g_signal_connect(self->vnc, "vnc-pointer-ungrab",
|
||||
G_CALLBACK(virt_viewer_display_vnc_mouse_ungrab), self);
|
||||
g_signal_connect(self->vnc, "vnc-keyboard-grab",
|
||||
G_CALLBACK(virt_viewer_display_vnc_key_grab), self);
|
||||
g_signal_connect(self->vnc, "vnc-keyboard-ungrab",
|
||||
G_CALLBACK(virt_viewer_display_vnc_key_ungrab), self);
|
||||
g_signal_connect(self->vnc, "vnc-initialized",
|
||||
G_CALLBACK(virt_viewer_display_vnc_initialized), self);
|
||||
|
||||
app = virt_viewer_session_get_app(VIRT_VIEWER_SESSION(session));
|
||||
virt_viewer_signal_connect_object(app, "notify::enable-accel",
|
||||
G_CALLBACK(enable_accel_changed), display->priv->vnc, 0);
|
||||
enable_accel_changed(app, NULL, display->priv->vnc);
|
||||
G_CALLBACK(enable_accel_changed), self->vnc, 0);
|
||||
enable_accel_changed(app, NULL, self->vnc);
|
||||
|
||||
return GTK_WIDGET(display);
|
||||
return GTK_WIDGET(self);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
virt_viewer_display_vnc_close(VirtViewerDisplay *display)
|
||||
{
|
||||
VirtViewerDisplayVnc *vnc = VIRT_VIEWER_DISPLAY_VNC(display);
|
||||
VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
|
||||
|
||||
/* We're not the real owner, so we shouldn't be letting the container
|
||||
* destroy the widget. There are still signals that need to be
|
||||
* propagated to the VirtViewerSession
|
||||
*/
|
||||
gtk_container_remove(GTK_CONTAINER(display), GTK_WIDGET(vnc->priv->vnc));
|
||||
gtk_container_remove(GTK_CONTAINER(display), GTK_WIDGET(self->vnc));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -33,35 +33,11 @@
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define VIRT_VIEWER_TYPE_DISPLAY_VNC virt_viewer_display_vnc_get_type()
|
||||
|
||||
#define VIRT_VIEWER_DISPLAY_VNC(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVnc))
|
||||
|
||||
#define VIRT_VIEWER_DISPLAY_VNC_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass))
|
||||
|
||||
#define VIRT_VIEWER_IS_DISPLAY_VNC(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC))
|
||||
|
||||
#define VIRT_VIEWER_IS_DISPLAY_VNC_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC))
|
||||
|
||||
#define VIRT_VIEWER_DISPLAY_VNC_GET_CLASS(obj) \
|
||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass))
|
||||
|
||||
typedef struct _VirtViewerDisplayVnc VirtViewerDisplayVnc;
|
||||
typedef struct _VirtViewerDisplayVncClass VirtViewerDisplayVncClass;
|
||||
typedef struct _VirtViewerDisplayVncPrivate VirtViewerDisplayVncPrivate;
|
||||
|
||||
struct _VirtViewerDisplayVnc {
|
||||
VirtViewerDisplay parent;
|
||||
|
||||
VirtViewerDisplayVncPrivate *priv;
|
||||
};
|
||||
|
||||
struct _VirtViewerDisplayVncClass {
|
||||
VirtViewerDisplayClass parent_class;
|
||||
};
|
||||
G_DECLARE_FINAL_TYPE(VirtViewerDisplayVnc,
|
||||
virt_viewer_display_vnc,
|
||||
VIRT_VIEWER,
|
||||
DISPLAY_VNC,
|
||||
VirtViewerDisplay);
|
||||
|
||||
GType virt_viewer_display_vnc_get_type(void);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user