Make it possible to build with GTK3 on Windows

svn path=/trunk/; revision=43083
This commit is contained in:
Anders Broman 2012-06-04 20:42:09 +00:00
parent 5d675858f8
commit 7b43b3de0f
3 changed files with 61 additions and 11 deletions

View File

@ -1086,13 +1086,31 @@ install-generated-files:
install-all: install-generated-files
set copycmd=/y
if not exist $(INSTALL_DIR) mkdir $(INSTALL_DIR)
!IF "$(GTK_INST_VERSION)" == "3.4"
xcopy $(GTK_DIR)\bin\libgdk-3-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libgtk-3-0.dll $(INSTALL_DIR) /d
!ELSE
xcopy $(GTK_DIR)\bin\libgdk-win32-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libgdk_pixbuf-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libgtk-win32-2.0-0.dll $(INSTALL_DIR) /d
!ENDIF
xcopy $(GTK_DIR)\bin\libgdk_pixbuf-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libatk-1.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libpango-1.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libpangowin32-1.0-0.dll $(INSTALL_DIR) /d
if not exist $(INSTALL_DIR)\etc mkdir $(INSTALL_DIR)\etc
!IF "$(GTK_INST_VERSION)" == "3.4"
if not exist $(INSTALL_DIR)\etc\gtk-3.0 mkdir $(INSTALL_DIR)\etc\gtk-3.0
if not exist $(INSTALL_DIR)\etc\pango mkdir $(INSTALL_DIR)\etc\pango
if not exist $(INSTALL_DIR)\lib mkdir $(INSTALL_DIR)\lib
if not exist $(INSTALL_DIR)\lib\gtk-3.0 mkdir $(INSTALL_DIR)\lib\gtk-3.0
if not exist $(INSTALL_DIR)\lib\gtk-3.0\$(GTK_LIB_DIR) mkdir $(INSTALL_DIR)\lib\gtk-3.0\$(GTK_LIB_DIR)
xcopy $(GTK_DIR)\etc\gtk-3.0\*.* $(INSTALL_DIR)\etc\gtk-3.0 /d
!IFDEF NEED_CAIRO_DLL
xcopy $(GTK_DIR)\bin\libcairo-2.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libcairo-gobject-2.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libpangocairo-1.0-0.dll $(INSTALL_DIR) /d
!ENDIF
!ELSE
if not exist $(INSTALL_DIR)\etc\gtk-2.0 mkdir $(INSTALL_DIR)\etc\gtk-2.0
if not exist $(INSTALL_DIR)\etc\pango mkdir $(INSTALL_DIR)\etc\pango
if not exist $(INSTALL_DIR)\lib mkdir $(INSTALL_DIR)\lib
@ -1110,6 +1128,7 @@ install-all: install-generated-files
xcopy $(GTK_DIR)\bin\libcairo-2.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libpangocairo-1.0-0.dll $(INSTALL_DIR) /d
!ENDIF
!ENDIF
!IFDEF NEED_EXPAT_DLL
xcopy $(GTK_DIR)\bin\$(EXPAT_DLL) $(INSTALL_DIR) /d
!ENDIF
@ -1144,10 +1163,13 @@ install-all: install-generated-files
!IFDEF NEED_XML_DLL
xcopy $(GTK_DIR)\bin\$(XML_DLL) $(INSTALL_DIR) /d
!ENDIF
!IF "$(GTK_INST_VERSION)" == "3.4"
!ELSE
if not exist $(INSTALL_DIR)\$(GTK_WIMP_DLLDST_DIR) mkdir $(INSTALL_DIR)\$(GTK_WIMP_DLLDST_DIR)
xcopy "$(GTK_WIMP_DLLSRC_DIR)\libwimp.dll" $(INSTALL_DIR)\$(GTK_WIMP_DLLDST_DIR) /d
if not exist $(INSTALL_DIR)\$(GTK_WIMP_RCDST_DIR) mkdir $(INSTALL_DIR)\$(GTK_WIMP_RCDST_DIR)
xcopy "$(GTK_WIMP_RCSRC_DIR)\gtkrc" $(INSTALL_DIR)\$(GTK_WIMP_RCDST_DIR) /d
!ENDIF
xcopy $(GTK_DIR)\bin\libgio-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libglib-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libgmodule-2.0-0.dll $(INSTALL_DIR) /d

View File

@ -242,7 +242,7 @@ GTK_PKG=2.24.10-2.7
PKG_SUFIX=ws
!ELSE
PKG_SUFIX=ws
GTK_PKG=3.4.2-2.4
GTK_PKG=3.4.2-3.5
!ENDIF
#
@ -452,7 +452,7 @@ GTK_PKG=2.24.10-2.7
PKG_SUFIX=ws
!ELSE
PKG_SUFIX=ws
GTK_PKG=3.4.0-3.13
GTK_PKG=3.4.2-3.5
!ENDIF
#
@ -1012,6 +1012,10 @@ GLIB_LIBS=$(GTK_DIR)\lib\glib-$(GLIB_VERSION).lib \
$(GTK_DIR)\lib\gobject-$(GLIB_VERSION).lib
GTHREAD_LIBS=$(GTK_DIR)\lib\gthread-$(GLIB_VERSION).lib
# 2.18 was no good(Theming problem)
!IF "$(GTK_INST_VERSION)" == "2.24" || "$(GTK_INST_VERSION)" == "2.22" || "$(GTK_INST_VERSION)" == "2.16" || "$(GTK_INST_VERSION)" == "2.14"
# GTK+
GTK_CFLAGS=$(GLIB_CFLAGS) /I$(GTK_DIR)\include\gtk-2.0 \
/I$(GTK_DIR)\include\gdk-pixbuf-2.0 \
@ -1030,8 +1034,6 @@ GTK_LIBS=$(GTK_DIR)\lib\gtk-win32-2.0.lib \
$(GTK_DIR)\lib\pangocairo-1.0.lib \
$(GLIB_LIBS)
# 2.18 was no good(Theming problem)
!IF "$(GTK_INST_VERSION)" == "2.24" || "$(GTK_INST_VERSION)" == "2.22" || "$(GTK_INST_VERSION)" == "2.16" || "$(GTK_INST_VERSION)" == "2.14"
GTK_LIB_DIR=2.10.0
!IFDEF PNG_DLL
@ -1074,8 +1076,8 @@ GTK_CFLAGS=$(GLIB_CFLAGS) /I$(GTK_DIR)\include\gtk-3.0 \
/I$(GTK_DIR)\include\pango-1.0 \
-DGTK_DISABLE_SINGLE_INCLUDES \
-DGSEAL_ENABLE
GTK_LIBS=$(GTK_DIR)\lib\gtk-win32-2.0.lib \
$(GTK_DIR)\lib\gdk-win32-2.0.lib \
GTK_LIBS=$(GTK_DIR)\lib\gtk-3.lib \
$(GTK_DIR)\lib\gdk-3.lib \
$(GTK_DIR)\lib\gdk_pixbuf-2.0.lib \
$(GTK_DIR)\lib\cairo.lib \
$(GTK_DIR)\lib\pango-1.0.lib \

View File

@ -1552,8 +1552,8 @@ static void callback_cross_on_off (GtkWidget *toggle, gpointer data)
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (toggle))) {
int x, y;
g->cross.draw = TRUE;
gdk_window_get_pointer (gtk_widget_get_window(g->drawing_area), &x, &y, 0);
cross_draw (g, x, y);
// gdk_window_get_pointer (gtk_widget_get_window(g->drawing_area), &x, &y, 0);
// cross_draw (g, x, y);
} else {
g->cross.draw = FALSE;
cross_erase (g);
@ -3305,8 +3305,16 @@ static void do_zoom_keyboard (struct graph *g)
struct { double x, y; } factor;
int pointer_x, pointer_y;
gdk_window_get_pointer (gtk_widget_get_window(g->drawing_area), &pointer_x, &pointer_y, 0);
#if GTK_CHECK_VERSION(3,0,0)
gdk_window_get_device_position (gtk_widget_get_window(g->drawing_area),
gdk_device_manager_get_client_pointer (
gdk_display_get_device_manager (
gtk_widget_get_display (GTK_WIDGET (g->drawing_area)))),
&pointer_x, &pointer_y, NULL);
#else
gdk_window_get_pointer (gtk_widget_get_window(g->drawing_area), &pointer_x, &pointer_y, 0);
#endif
if (g->zoom.flags & ZOOM_OUT) {
if (g->zoom.flags & ZOOM_HLOCK)
factor.x = 1.0;
@ -3386,8 +3394,18 @@ static void do_select_segment (struct graph *g)
{
int pointer_x, pointer_y;
#if GTK_CHECK_VERSION(3,0,0)
gdk_window_get_device_position (gtk_widget_get_window(g->drawing_area),
gdk_device_manager_get_client_pointer (
gdk_display_get_device_manager (
gtk_widget_get_display (GTK_WIDGET (g->drawing_area)))),
&pointer_x, &pointer_y, NULL);
#else
gdk_window_get_pointer (gtk_widget_get_window(g->drawing_area), &pointer_x, &pointer_y, 0);
#endif
graph_select_segment (g, pointer_x, pointer_y);
}
static void do_wscale_graph (struct graph *g)
@ -3419,8 +3437,16 @@ static void do_magnify_create (struct graph *g)
{
int pointer_x, pointer_y;
gdk_window_get_pointer (gtk_widget_get_window(g->drawing_area), &pointer_x, &pointer_y, 0);
#if GTK_CHECK_VERSION(3,0,0)
gdk_window_get_device_position (gtk_widget_get_window(g->drawing_area),
gdk_device_manager_get_client_pointer (
gdk_display_get_device_manager (
gtk_widget_get_display (GTK_WIDGET (g->drawing_area)))),
&pointer_x, &pointer_y, NULL);
#else
gdk_window_get_pointer (gtk_widget_get_window(g->drawing_area), &pointer_x, &pointer_y, 0);
#endif
magnify_create (g, (int )rint (pointer_x), (int )rint (pointer_y));
}