Add smartcard-{insert,remove} and release-cursor virtual methods

This commit is contained in:
Marc-André Lureau 2012-02-14 18:28:19 +01:00
parent 23dc09eacb
commit 6c916253ee
4 changed files with 52 additions and 4 deletions

View File

@ -567,6 +567,18 @@ gboolean virt_viewer_display_get_auto_resize(VirtViewerDisplay *self)
return self->priv->auto_resize;
}
void virt_viewer_display_release_cursor(VirtViewerDisplay *self)
{
VirtViewerDisplayClass *klass;
g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
klass = VIRT_VIEWER_DISPLAY_GET_CLASS(self);
g_return_if_fail(klass->release_cursor != NULL);
klass->release_cursor(self);
}
/*
* Local variables:
* c-indent-level: 4

View File

@ -70,9 +70,10 @@ struct _VirtViewerDisplayClass {
GtkBinClass parent_class;
/* virtual methods */
void (*send_keys)(VirtViewerDisplay* display,
void (*send_keys)(VirtViewerDisplay *display,
const guint *keyvals, int nkeyvals);
GdkPixbuf *(*get_pixbuf)(VirtViewerDisplay* display);
GdkPixbuf *(*get_pixbuf)(VirtViewerDisplay *display);
void (*release_cursor)(VirtViewerDisplay *display);
/* signals */
void (*display_pointer_grab)(VirtViewerDisplay *display);
@ -109,6 +110,8 @@ void virt_viewer_display_set_show_hint(VirtViewerDisplay *display, gint hint);
VirtViewerSession* virt_viewer_display_get_session(VirtViewerDisplay *display);
void virt_viewer_display_set_auto_resize(VirtViewerDisplay *display, gboolean auto_resize);
gboolean virt_viewer_display_get_auto_resize(VirtViewerDisplay *display);
void virt_viewer_display_release_cursor(VirtViewerDisplay *display);
G_END_DECLS
#endif /* _VIRT_VIEWER_DISPLAY_H */

View File

@ -378,6 +378,36 @@ void virt_viewer_session_usb_device_selection(VirtViewerSession *self,
klass->usb_device_selection(self, parent);
}
void virt_viewer_session_smartcard_insert(VirtViewerSession *self)
{
VirtViewerSessionClass *klass;
g_return_if_fail(VIRT_VIEWER_IS_SESSION(self));
klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
if (klass->smartcard_insert == NULL) {
g_debug("No session smartcard support");
return;
}
klass->smartcard_insert(self);
}
void virt_viewer_session_smartcard_remove(VirtViewerSession *self)
{
VirtViewerSessionClass *klass;
g_return_if_fail(VIRT_VIEWER_IS_SESSION(self));
klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
if (klass->smartcard_remove == NULL) {
g_debug("No session smartcard support");
return;
}
klass->smartcard_remove(self);
}
/*
* Local variables:
* c-indent-level: 4

View File

@ -70,6 +70,8 @@ struct _VirtViewerSessionClass {
gboolean (* channel_open_fd) (VirtViewerSession* session, VirtViewerSessionChannel *channel, int fd);
gboolean (* has_usb) (VirtViewerSession* session);
void (* usb_device_selection) (VirtViewerSession* session, GtkWindow *parent);
void (* smartcard_insert) (VirtViewerSession* session);
void (* smartcard_remove) (VirtViewerSession* session);
/* signals */
void (*session_connected)(VirtViewerSession *session);
@ -113,8 +115,9 @@ void virt_viewer_session_set_auto_usbredir(VirtViewerSession* session, gboolean
gboolean virt_viewer_session_get_auto_usbredir(VirtViewerSession* session);
gboolean virt_viewer_session_has_usb(VirtViewerSession *self);
void virt_viewer_session_usb_device_selection(VirtViewerSession *self,
GtkWindow *parent);
void virt_viewer_session_usb_device_selection(VirtViewerSession *self, GtkWindow *parent);
void virt_viewer_session_smartcard_insert(VirtViewerSession *self);
void virt_viewer_session_smartcard_remove(VirtViewerSession *self);
G_END_DECLS