gtk: add ui_info support, cleanups + fixes.
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAABAgAGBQJVTKI4AAoJEEy22O7T6HE4eP8P/1luJq5YIXcMhk+fBvAAOZhp jpYG9u48CHEWwArcdeeyC142Z6bR3G3UKApsGoikzyIqt5uALe/4Z/APcdvfPM+S efjdtAMPymSY0Hstg9zLL+lqMMFusShzodvdE/O3oS+swxBzVZNKGPrGE94OX48j RvDykDOlKqvumSwJtgX8b68la2UHUQZU35XzUuBnHV47ifWEGHGIAVZs73PJXOdk 7TGvsOHaPHUygy7zPpnlo87606uApN6VZRFWAaCLxKZ1WS8O/vkqfx9DQ5KLbunv vX4epXH8lkmCAYwXelOoYhw37WN8kgWy5d7nbLvmMwcZz+yMgUjNDS6emC1OV+TV QY5V7btABh2Nb+nX5nQCY1RgXO4rttKYakTOgfabQbBq1XqqBY8Zvpszju/DV5J6 Z8oIEqo7oyY7YBYvToXjFWz5zf+NH2pWILbhPCRponp3FPWraMt/+FJ5zU47s31p fBnHrmfV3E82MhrJNArE/W5lvQzPzGhUf/4+JZ62eoxoRlzAt5jORRfXLcsAuCZm zxUKRntDro76fBPPWot99LDLtUrJtxtw0ZLz4wn5xd8IYCbQBsVtUsCROG3vjqYx P4EhpGcNqfPd7g23mUSFAHYiKENOjzB8zvROp07jCorVm3CqNYVrYOGAnQQXhxar RS+LAWMFtVFhQi6GGnaX =uLWh -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/kraxel/tags/pull-gtk-20150508-1' into staging gtk: add ui_info support, cleanups + fixes. # gpg: Signature made Fri May 8 12:47:04 2015 BST using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" * remotes/kraxel/tags/pull-gtk-20150508-1: gtk: update mouse position in mouse_set() gtk: create gtk.h gtk: add ui_info support console: add dpy_ui_info_supported console: delayed ui_info guest notification Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
ec62ad1e27
4 changed files with 124 additions and 74 deletions
|
|
@ -228,6 +228,7 @@ void update_displaychangelistener(DisplayChangeListener *dcl,
|
|||
uint64_t interval);
|
||||
void unregister_displaychangelistener(DisplayChangeListener *dcl);
|
||||
|
||||
bool dpy_ui_info_supported(QemuConsole *con);
|
||||
int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info);
|
||||
|
||||
void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h);
|
||||
|
|
|
|||
76
include/ui/gtk.h
Normal file
76
include/ui/gtk.h
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
#ifndef UI_GTK_H
|
||||
#define UI_GTK_H
|
||||
|
||||
#ifdef _WIN32
|
||||
# define _WIN32_WINNT 0x0601 /* needed to get definition of MAPVK_VK_TO_VSC */
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
|
||||
/* Work around an -Wstrict-prototypes warning in GTK headers */
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wstrict-prototypes"
|
||||
#endif
|
||||
#include <gtk/gtk.h>
|
||||
#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
|
||||
#ifdef GDK_WINDOWING_X11
|
||||
#include <gdk/gdkx.h>
|
||||
#include <X11/XKBlib.h>
|
||||
#endif
|
||||
|
||||
/* Compatibility define to let us build on both Gtk2 and Gtk3 */
|
||||
#if GTK_CHECK_VERSION(3, 0, 0)
|
||||
static inline void gdk_drawable_get_size(GdkWindow *w, gint *ww, gint *wh)
|
||||
{
|
||||
*ww = gdk_window_get_width(w);
|
||||
*wh = gdk_window_get_height(w);
|
||||
}
|
||||
#endif
|
||||
|
||||
typedef struct GtkDisplayState GtkDisplayState;
|
||||
|
||||
typedef struct VirtualGfxConsole {
|
||||
GtkWidget *drawing_area;
|
||||
DisplayChangeListener dcl;
|
||||
DisplaySurface *ds;
|
||||
pixman_image_t *convert;
|
||||
cairo_surface_t *surface;
|
||||
double scale_x;
|
||||
double scale_y;
|
||||
} VirtualGfxConsole;
|
||||
|
||||
#if defined(CONFIG_VTE)
|
||||
typedef struct VirtualVteConsole {
|
||||
GtkWidget *box;
|
||||
GtkWidget *scrollbar;
|
||||
GtkWidget *terminal;
|
||||
CharDriverState *chr;
|
||||
} VirtualVteConsole;
|
||||
#endif
|
||||
|
||||
typedef enum VirtualConsoleType {
|
||||
GD_VC_GFX,
|
||||
GD_VC_VTE,
|
||||
} VirtualConsoleType;
|
||||
|
||||
typedef struct VirtualConsole {
|
||||
GtkDisplayState *s;
|
||||
char *label;
|
||||
GtkWidget *window;
|
||||
GtkWidget *menu_item;
|
||||
GtkWidget *tab_item;
|
||||
GtkWidget *focus;
|
||||
VirtualConsoleType type;
|
||||
union {
|
||||
VirtualGfxConsole gfx;
|
||||
#if defined(CONFIG_VTE)
|
||||
VirtualVteConsole vte;
|
||||
#endif
|
||||
};
|
||||
} VirtualConsole;
|
||||
|
||||
#endif /* UI_GTK_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue