summaryrefslogtreecommitdiffstats
path: root/src/virt-viewer-display.h
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2011-07-11 15:35:47 +0100
committerDaniel P. Berrange <berrange@redhat.com>2011-07-11 15:35:47 +0100
commit4ba39d0224cdc424cd63ca80b6e26c36b174f5b7 (patch)
tree441574c79544e1f4f017f89e5eaf950bec7a54cb /src/virt-viewer-display.h
parent7a7112a9faad624519e09222621dbfa57d132a39 (diff)
downloadvirt-viewer-4ba39d0224cdc424cd63ca80b6e26c36b174f5b7.tar.gz
virt-viewer-4ba39d0224cdc424cd63ca80b6e26c36b174f5b7.tar.xz
virt-viewer-4ba39d0224cdc424cd63ca80b6e26c36b174f5b7.zip
Remove circular dependancy between VirtViewerDisplay and VirtViewer
Add many signals to VirtViewerDisplay which are emitted when various events occur. This lets us remove all the code in the VirtViewerDisplay subclasses which call back into VirtViewer methods. Instead VirtViewer can simply connect signals to the display
Diffstat (limited to 'src/virt-viewer-display.h')
-rw-r--r--src/virt-viewer-display.h28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/virt-viewer-display.h b/src/virt-viewer-display.h
index c60e62e..6df6d21 100644
--- a/src/virt-viewer-display.h
+++ b/src/virt-viewer-display.h
@@ -26,8 +26,6 @@
#include <gtk/gtk.h>
-#include "virt-viewer-priv.h"
-
G_BEGIN_DECLS
#define VIRT_VIEWER_TYPE_DISPLAY virt_viewer_display_get_type()
@@ -51,13 +49,13 @@ typedef struct _VirtViewerDisplay VirtViewerDisplay;
typedef struct _VirtViewerDisplayClass VirtViewerDisplayClass;
typedef struct _VirtViewerDisplayPrivate VirtViewerDisplayPrivate;
+typedef struct _VirtViewerDisplayChannel VirtViewerDisplayChannel;
+
/* perhaps this become an interface, and be pushed in gtkvnc and spice? */
struct _VirtViewerDisplay {
GtkBin parent;
- VirtViewer *viewer;
-
VirtViewerDisplayPrivate *priv;
};
@@ -71,8 +69,26 @@ struct _VirtViewerDisplayClass {
GdkPixbuf* (* get_pixbuf) (VirtViewerDisplay* display);
gboolean (* open_fd) (VirtViewerDisplay* display, int fd);
gboolean (* open_host) (VirtViewerDisplay* display, char *host, char *port);
- gboolean (* channel_open_fd) (VirtViewerDisplay* display,
- VirtViewerDisplayChannel* channel, int fd);
+ gboolean (* channel_open_fd) (VirtViewerDisplay* display, VirtViewerDisplayChannel *channel, int fd);
+
+ /* signals */
+ void (*display_connected)(VirtViewerDisplay *display);
+ void (*display_initialized)(VirtViewerDisplay *display);
+ void (*display_disconnected)(VirtViewerDisplay *display);
+ void (*display_auth_refused)(VirtViewerDisplay *display, const char *msg);
+ void (*display_auth_failed)(VirtViewerDisplay *display, const char *msg);
+
+ void (*display_channel_open)(VirtViewerDisplay *display, VirtViewerDisplayChannel *channel);
+
+ void (*display_pointer_grab)(VirtViewerDisplay *display);
+ void (*display_pointer_ungrab)(VirtViewerDisplay *display);
+ void (*display_keyboard_grab)(VirtViewerDisplay *display);
+ void (*display_keyboard_ungrab)(VirtViewerDisplay *display);
+
+ void (*display_desktop_resize)(VirtViewerDisplay *display);
+
+ void (*display_cut_text)(VirtViewerDisplay *display, const char *str);
+ void (*display_bell)(VirtViewerDisplay *display);
};
GType virt_viewer_display_get_type(void);