mirror of
https://gitlab.com/virt-viewer/virt-viewer.git
synced 2025-02-02 09:47:04 +03:00
src: convert VirtViewerDisplay to G_DECLARE_DERIVABLE_TYPE
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
10b2850d70
commit
4e4bd0d67f
@ -31,6 +31,7 @@
|
|||||||
#include "virt-viewer-display.h"
|
#include "virt-viewer-display.h"
|
||||||
#include "virt-viewer-util.h"
|
#include "virt-viewer-util.h"
|
||||||
|
|
||||||
|
typedef struct _VirtViewerDisplayPrivate VirtViewerDisplayPrivate;
|
||||||
struct _VirtViewerDisplayPrivate
|
struct _VirtViewerDisplayPrivate
|
||||||
{
|
{
|
||||||
guint desktopWidth;
|
guint desktopWidth;
|
||||||
@ -242,14 +243,13 @@ virt_viewer_display_class_init(VirtViewerDisplayClass *class)
|
|||||||
static void
|
static void
|
||||||
virt_viewer_display_init(VirtViewerDisplay *display)
|
virt_viewer_display_init(VirtViewerDisplay *display)
|
||||||
{
|
{
|
||||||
|
VirtViewerDisplayPrivate *priv = virt_viewer_display_get_instance_private(display);
|
||||||
gtk_widget_set_has_window(GTK_WIDGET(display), FALSE);
|
gtk_widget_set_has_window(GTK_WIDGET(display), FALSE);
|
||||||
gtk_widget_set_redraw_on_allocate(GTK_WIDGET(display), FALSE);
|
gtk_widget_set_redraw_on_allocate(GTK_WIDGET(display), FALSE);
|
||||||
|
|
||||||
display->priv = virt_viewer_display_get_instance_private(display);
|
priv->desktopWidth = MIN_DISPLAY_WIDTH;
|
||||||
|
priv->desktopHeight = MIN_DISPLAY_HEIGHT;
|
||||||
display->priv->desktopWidth = MIN_DISPLAY_WIDTH;
|
priv->zoom_level = NORMAL_ZOOM_LEVEL;
|
||||||
display->priv->desktopHeight = MIN_DISPLAY_HEIGHT;
|
|
||||||
display->priv->zoom_level = NORMAL_ZOOM_LEVEL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkWidget*
|
GtkWidget*
|
||||||
@ -265,7 +265,7 @@ virt_viewer_display_set_property(GObject *object,
|
|||||||
GParamSpec *pspec)
|
GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
|
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
|
||||||
VirtViewerDisplayPrivate *priv = display->priv;
|
VirtViewerDisplayPrivate *priv = virt_viewer_display_get_instance_private(display);
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_DESKTOP_WIDTH:
|
case PROP_DESKTOP_WIDTH:
|
||||||
@ -298,7 +298,7 @@ virt_viewer_display_get_property(GObject *object,
|
|||||||
GParamSpec *pspec)
|
GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
|
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
|
||||||
VirtViewerDisplayPrivate *priv = display->priv;
|
VirtViewerDisplayPrivate *priv = virt_viewer_display_get_instance_private(display);
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_DESKTOP_WIDTH:
|
case PROP_DESKTOP_WIDTH:
|
||||||
@ -367,7 +367,7 @@ static void virt_viewer_display_get_preferred_width(GtkWidget *widget,
|
|||||||
int *defwidth)
|
int *defwidth)
|
||||||
{
|
{
|
||||||
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
|
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
|
||||||
VirtViewerDisplayPrivate *priv = display->priv;
|
VirtViewerDisplayPrivate *priv = virt_viewer_display_get_instance_private(display);
|
||||||
|
|
||||||
virt_viewer_display_get_preferred_dimension_from_desktop(display,
|
virt_viewer_display_get_preferred_dimension_from_desktop(display,
|
||||||
MIN_DISPLAY_WIDTH,
|
MIN_DISPLAY_WIDTH,
|
||||||
@ -382,7 +382,7 @@ static void virt_viewer_display_get_preferred_height(GtkWidget *widget,
|
|||||||
int *defheight)
|
int *defheight)
|
||||||
{
|
{
|
||||||
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
|
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
|
||||||
VirtViewerDisplayPrivate *priv = display->priv;
|
VirtViewerDisplayPrivate *priv = virt_viewer_display_get_instance_private(display);
|
||||||
|
|
||||||
virt_viewer_display_get_preferred_dimension_from_desktop(display,
|
virt_viewer_display_get_preferred_dimension_from_desktop(display,
|
||||||
MIN_DISPLAY_HEIGHT,
|
MIN_DISPLAY_HEIGHT,
|
||||||
@ -398,7 +398,7 @@ virt_viewer_display_size_allocate(GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GtkBin *bin = GTK_BIN(widget);
|
GtkBin *bin = GTK_BIN(widget);
|
||||||
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
|
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
|
||||||
VirtViewerDisplayPrivate *priv = display->priv;
|
VirtViewerDisplayPrivate *priv = virt_viewer_display_get_instance_private(display);
|
||||||
GtkAllocation child_allocation;
|
GtkAllocation child_allocation;
|
||||||
gint width, height;
|
gint width, height;
|
||||||
gint border_width;
|
gint border_width;
|
||||||
@ -441,7 +441,7 @@ void virt_viewer_display_set_desktop_size(VirtViewerDisplay *display,
|
|||||||
guint width,
|
guint width,
|
||||||
guint height)
|
guint height)
|
||||||
{
|
{
|
||||||
VirtViewerDisplayPrivate *priv = display->priv;
|
VirtViewerDisplayPrivate *priv = virt_viewer_display_get_instance_private(display);
|
||||||
|
|
||||||
if (width == priv->desktopWidth && height == priv->desktopHeight)
|
if (width == priv->desktopWidth && height == priv->desktopHeight)
|
||||||
return;
|
return;
|
||||||
@ -459,7 +459,7 @@ void virt_viewer_display_get_desktop_size(VirtViewerDisplay *display,
|
|||||||
guint *width,
|
guint *width,
|
||||||
guint *height)
|
guint *height)
|
||||||
{
|
{
|
||||||
VirtViewerDisplayPrivate *priv = display->priv;
|
VirtViewerDisplayPrivate *priv = virt_viewer_display_get_instance_private(display);
|
||||||
|
|
||||||
*width = priv->desktopWidth;
|
*width = priv->desktopWidth;
|
||||||
*height = priv->desktopHeight;
|
*height = priv->desktopHeight;
|
||||||
@ -478,7 +478,7 @@ void virt_viewer_display_queue_resize(VirtViewerDisplay *display)
|
|||||||
void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display,
|
void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display,
|
||||||
guint zoom)
|
guint zoom)
|
||||||
{
|
{
|
||||||
VirtViewerDisplayPrivate *priv = display->priv;
|
VirtViewerDisplayPrivate *priv = virt_viewer_display_get_instance_private(display);
|
||||||
|
|
||||||
if (zoom < MIN_ZOOM_LEVEL)
|
if (zoom < MIN_ZOOM_LEVEL)
|
||||||
zoom = MIN_ZOOM_LEVEL;
|
zoom = MIN_ZOOM_LEVEL;
|
||||||
@ -497,7 +497,7 @@ void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display,
|
|||||||
|
|
||||||
guint virt_viewer_display_get_zoom_level(VirtViewerDisplay *display)
|
guint virt_viewer_display_get_zoom_level(VirtViewerDisplay *display)
|
||||||
{
|
{
|
||||||
VirtViewerDisplayPrivate *priv = display->priv;
|
VirtViewerDisplayPrivate *priv = virt_viewer_display_get_instance_private(display);
|
||||||
return priv->zoom_level;
|
return priv->zoom_level;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -524,9 +524,11 @@ GdkPixbuf* virt_viewer_display_get_pixbuf(VirtViewerDisplay *display)
|
|||||||
|
|
||||||
guint virt_viewer_display_get_show_hint(VirtViewerDisplay *self)
|
guint virt_viewer_display_get_show_hint(VirtViewerDisplay *self)
|
||||||
{
|
{
|
||||||
|
VirtViewerDisplayPrivate *priv;
|
||||||
g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), 0);
|
g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), 0);
|
||||||
|
|
||||||
return self->priv->show_hint;
|
priv = virt_viewer_display_get_instance_private(self);
|
||||||
|
return priv->show_hint;
|
||||||
}
|
}
|
||||||
|
|
||||||
void virt_viewer_display_set_show_hint(VirtViewerDisplay *self, guint mask, gboolean enable)
|
void virt_viewer_display_set_show_hint(VirtViewerDisplay *self, guint mask, gboolean enable)
|
||||||
@ -535,7 +537,7 @@ void virt_viewer_display_set_show_hint(VirtViewerDisplay *self, guint mask, gboo
|
|||||||
guint hint;
|
guint hint;
|
||||||
g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
|
g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
|
||||||
|
|
||||||
priv = self->priv;
|
priv = virt_viewer_display_get_instance_private(self);
|
||||||
hint = priv->show_hint;
|
hint = priv->show_hint;
|
||||||
|
|
||||||
if (enable)
|
if (enable)
|
||||||
@ -595,30 +597,38 @@ void virt_viewer_display_set_enabled(VirtViewerDisplay *self, gboolean enabled)
|
|||||||
|
|
||||||
gboolean virt_viewer_display_get_enabled(VirtViewerDisplay *self)
|
gboolean virt_viewer_display_get_enabled(VirtViewerDisplay *self)
|
||||||
{
|
{
|
||||||
return ((self->priv->show_hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_SET) &&
|
VirtViewerDisplayPrivate *priv;
|
||||||
!(self->priv->show_hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED));
|
priv = virt_viewer_display_get_instance_private(self);
|
||||||
|
return ((priv->show_hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_SET) &&
|
||||||
|
!(priv->show_hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED));
|
||||||
}
|
}
|
||||||
|
|
||||||
VirtViewerSession* virt_viewer_display_get_session(VirtViewerDisplay *self)
|
VirtViewerSession* virt_viewer_display_get_session(VirtViewerDisplay *self)
|
||||||
{
|
{
|
||||||
|
VirtViewerDisplayPrivate *priv;
|
||||||
g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), NULL);
|
g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), NULL);
|
||||||
|
|
||||||
return self->priv->session;
|
priv = virt_viewer_display_get_instance_private(self);
|
||||||
|
return priv->session;
|
||||||
}
|
}
|
||||||
|
|
||||||
void virt_viewer_display_set_monitor(VirtViewerDisplay *self, gint monitor)
|
void virt_viewer_display_set_monitor(VirtViewerDisplay *self, gint monitor)
|
||||||
{
|
{
|
||||||
|
VirtViewerDisplayPrivate *priv;
|
||||||
g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
|
g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
|
||||||
|
|
||||||
self->priv->monitor = monitor;
|
priv = virt_viewer_display_get_instance_private(self);
|
||||||
|
priv->monitor = monitor;
|
||||||
g_object_notify(G_OBJECT(self), "monitor");
|
g_object_notify(G_OBJECT(self), "monitor");
|
||||||
}
|
}
|
||||||
|
|
||||||
gint virt_viewer_display_get_monitor(VirtViewerDisplay *self)
|
gint virt_viewer_display_get_monitor(VirtViewerDisplay *self)
|
||||||
{
|
{
|
||||||
|
VirtViewerDisplayPrivate *priv;
|
||||||
g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), -1);
|
g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), -1);
|
||||||
|
|
||||||
return self->priv->monitor;
|
priv = virt_viewer_display_get_instance_private(self);
|
||||||
|
return priv->monitor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void virt_viewer_display_release_cursor(VirtViewerDisplay *self)
|
void virt_viewer_display_release_cursor(VirtViewerDisplay *self)
|
||||||
@ -659,20 +669,24 @@ void virt_viewer_display_close(VirtViewerDisplay *self)
|
|||||||
|
|
||||||
void virt_viewer_display_set_fullscreen(VirtViewerDisplay *self, gboolean fullscreen)
|
void virt_viewer_display_set_fullscreen(VirtViewerDisplay *self, gboolean fullscreen)
|
||||||
{
|
{
|
||||||
|
VirtViewerDisplayPrivate *priv;
|
||||||
g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
|
g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
|
||||||
|
|
||||||
if (self->priv->fullscreen == fullscreen)
|
priv = virt_viewer_display_get_instance_private(self);
|
||||||
|
if (priv->fullscreen == fullscreen)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
self->priv->fullscreen = fullscreen;
|
priv->fullscreen = fullscreen;
|
||||||
g_object_notify(G_OBJECT(self), "fullscreen");
|
g_object_notify(G_OBJECT(self), "fullscreen");
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean virt_viewer_display_get_fullscreen(VirtViewerDisplay *self)
|
gboolean virt_viewer_display_get_fullscreen(VirtViewerDisplay *self)
|
||||||
{
|
{
|
||||||
|
VirtViewerDisplayPrivate *priv;
|
||||||
g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), FALSE);
|
g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), FALSE);
|
||||||
|
|
||||||
return self->priv->fullscreen;
|
priv = virt_viewer_display_get_instance_private(self);
|
||||||
|
return priv->fullscreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
void virt_viewer_display_get_preferred_monitor_geometry(VirtViewerDisplay* self,
|
void virt_viewer_display_get_preferred_monitor_geometry(VirtViewerDisplay* self,
|
||||||
@ -734,7 +748,9 @@ void virt_viewer_display_get_preferred_monitor_geometry(VirtViewerDisplay* self,
|
|||||||
gint
|
gint
|
||||||
virt_viewer_display_get_nth(VirtViewerDisplay *self)
|
virt_viewer_display_get_nth(VirtViewerDisplay *self)
|
||||||
{
|
{
|
||||||
return self->priv->nth_display;
|
VirtViewerDisplayPrivate *priv;
|
||||||
|
priv = virt_viewer_display_get_instance_private(self);
|
||||||
|
return priv->nth_display;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -33,29 +33,15 @@ G_BEGIN_DECLS
|
|||||||
#define MIN_DISPLAY_HEIGHT 200
|
#define MIN_DISPLAY_HEIGHT 200
|
||||||
|
|
||||||
#define VIRT_VIEWER_TYPE_DISPLAY virt_viewer_display_get_type()
|
#define VIRT_VIEWER_TYPE_DISPLAY virt_viewer_display_get_type()
|
||||||
|
G_DECLARE_DERIVABLE_TYPE(VirtViewerDisplay,
|
||||||
#define VIRT_VIEWER_DISPLAY(obj) \
|
virt_viewer_display,
|
||||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplay))
|
VIRT_VIEWER,
|
||||||
|
DISPLAY,
|
||||||
#define VIRT_VIEWER_DISPLAY_CLASS(klass) \
|
GtkBin)
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass))
|
|
||||||
|
|
||||||
#define VIRT_VIEWER_IS_DISPLAY(obj) \
|
|
||||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY))
|
|
||||||
|
|
||||||
#define VIRT_VIEWER_IS_DISPLAY_CLASS(klass) \
|
|
||||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY))
|
|
||||||
|
|
||||||
#define VIRT_VIEWER_DISPLAY_GET_CLASS(obj) \
|
|
||||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass))
|
|
||||||
|
|
||||||
typedef struct _VirtViewerSession VirtViewerSession;
|
typedef struct _VirtViewerSession VirtViewerSession;
|
||||||
typedef struct _VirtViewerSessionClass VirtViewerSessionClass;
|
typedef struct _VirtViewerSessionClass VirtViewerSessionClass;
|
||||||
|
|
||||||
typedef struct _VirtViewerDisplay VirtViewerDisplay;
|
|
||||||
typedef struct _VirtViewerDisplayClass VirtViewerDisplayClass;
|
|
||||||
typedef struct _VirtViewerDisplayPrivate VirtViewerDisplayPrivate;
|
|
||||||
|
|
||||||
typedef struct _VirtViewerDisplayChannel VirtViewerDisplayChannel;
|
typedef struct _VirtViewerDisplayChannel VirtViewerDisplayChannel;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@ -64,13 +50,6 @@ typedef enum {
|
|||||||
VIRT_VIEWER_DISPLAY_SHOW_HINT_SET = 1 << 2,
|
VIRT_VIEWER_DISPLAY_SHOW_HINT_SET = 1 << 2,
|
||||||
} VirtViewerDisplayShowHintFlags;
|
} VirtViewerDisplayShowHintFlags;
|
||||||
|
|
||||||
/* perhaps this become an interface, and be pushed in gtkvnc and spice? */
|
|
||||||
struct _VirtViewerDisplay {
|
|
||||||
GtkBin parent;
|
|
||||||
|
|
||||||
VirtViewerDisplayPrivate *priv;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _VirtViewerDisplayClass {
|
struct _VirtViewerDisplayClass {
|
||||||
GtkBinClass parent_class;
|
GtkBinClass parent_class;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user