c8f3f17cf1
When building for Mingw64 target on Fedora 22 a warning is issued about _WIN32_WINNT being redefined. In file included from ui/gtk.c:40:0: include/ui/gtk.h:5:0: warning: "_WIN32_WINNT" redefined # define _WIN32_WINNT 0x0601 /* needed to get definition of MAPVK_VK_TO_VSC */ ^ In file included from /usr/i686-w64-mingw32/sys-root/mingw/include/crtdefs.h:10:0, from /usr/i686-w64-mingw32/sys-root/mingw/include/stdio.h:9, from /home/berrange/src/virt/qemu/include/qemu/fprintf-fn.h:12, from /home/berrange/src/virt/qemu/include/qemu-common.h:18, from ui/gtk.c:37: /usr/i686-w64-mingw32/sys-root/mingw/include/_mingw.h:225:0: note: this is the location of the previous definition #define _WIN32_WINNT 0x502 ^ Rather than try to get MAPVK_VK_TO_VSC defined indirectly by defining _WIN32_WINNT, instead just define it explicitly if missing. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Signed-off-by: Stefan Weil <sw@weilnetz.de> Acked-by: Paolo Bonzini <pbonzini@redhat.com>
96 lines
2.2 KiB
C
96 lines
2.2 KiB
C
#ifndef UI_GTK_H
|
|
#define UI_GTK_H
|
|
|
|
#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
|
|
|
|
#if defined(CONFIG_OPENGL)
|
|
#include "ui/egl-helpers.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;
|
|
#if defined(CONFIG_OPENGL)
|
|
ConsoleGLState *gls;
|
|
EGLContext ectx;
|
|
EGLSurface esurface;
|
|
int glupdates;
|
|
#endif
|
|
} 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;
|
|
|
|
/* ui/gtk.c */
|
|
void gd_update_windowsize(VirtualConsole *vc);
|
|
|
|
/* ui/gtk-egl.c */
|
|
void gd_egl_init(VirtualConsole *vc);
|
|
void gd_egl_draw(VirtualConsole *vc);
|
|
void gd_egl_update(DisplayChangeListener *dcl,
|
|
int x, int y, int w, int h);
|
|
void gd_egl_refresh(DisplayChangeListener *dcl);
|
|
void gd_egl_switch(DisplayChangeListener *dcl,
|
|
DisplaySurface *surface);
|
|
void gtk_egl_init(void);
|
|
|
|
#endif /* UI_GTK_H */
|