Fix the handling of stored state. Actually use the margins from the Page

1999-12-08  Tor Lillqvist  <tml@iki.fi>

* plug-ins/common/winprint.c: Fix the handling of stored
state. Actually use the margins from the Page Setup dialog (just
the left and top margins currently).

* plug-ins/common/animationplay.c: Weird include hackery to be
compilable with current CVS GTk+ (on Win32).

* plug-ins/gfig/gfig.c: With current CVS GTk+, use gdk_parent_root
instead of gdk_root_parent (Win32).

* app/makefile.cygwin
* libgimp/makefile.cygwin
* plug-ins/makefile.cygwin: Get GDK library from new place.
This commit is contained in:
Tor Lillqvist 1999-12-08 00:19:20 +00:00 committed by Tor Lillqvist
parent 4989f4c255
commit a999bb9dd0
7 changed files with 119 additions and 61 deletions

View File

@ -1,3 +1,19 @@
1999-12-08 Tor Lillqvist <tml@iki.fi>
* plug-ins/common/winprint.c: Fix the handling of stored
state. Actually use the margins from the Page Setup dialog (just
the left and top margins currently).
* plug-ins/common/animationplay.c: Weird include hackery to be
compilable with current CVS GTk+ (on Win32).
* plug-ins/gfig/gfig.c: With current CVS GTk+, use gdk_parent_root
instead of gdk_root_parent (Win32).
* app/makefile.cygwin
* libgimp/makefile.cygwin
* plug-ins/makefile.cygwin: Get GDK library from new place.
1999-12-07 Michael Natterer <mitch@gimp.org>
* pixmaps/yes.xpm: Resize it to the same size as "no.xpm" because

View File

@ -268,11 +268,11 @@ gimp.def: gimp.sym
gimp.exe : ../config.h $(gimp_OBJECTS) libgimpim.a gimp.def gimpres.o
# This is sickening.
$(CC) $(CFLAGS) -Wl,--base-file,gimp.base -mwindows -o gimp.exe $(gimp_OBJECTS) -L . -lgimpim -L ../libgimp -lgimpi -L $(GTK)/gtk -lgtk-$(GTK_VER) -L $(GTK)/gdk/win32 -lgdk-$(GTK_VER) -L $(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) gimpres.o -lgdi32 -luser32
$(CC) $(CFLAGS) -Wl,--base-file,gimp.base -mwindows -o gimp.exe $(gimp_OBJECTS) -L . -lgimpim -L ../libgimp -lgimpi -L $(GTK)/gtk -lgtk-$(GTK_VER) -L $(GTK)/gdk -lgdk-$(GTK_VER) -L $(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) gimpres.o -lgdi32 -luser32
$(DLLTOOL) --base-file gimp.base --input-def gimp.def --output-exp gimp.exp
$(CC) $(CFLAGS) -Wl,--base-file,gimp.base,gimp.exp -mwindows -o gimp.exe $(gimp_OBJECTS) -L . -lgimpim -L ../libgimp -lgimpi -L $(GTK)/gtk -lgtk-$(GTK_VER) -L $(GTK)/gdk/win32 -lgdk-$(GTK_VER) -L $(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) gimpres.o -lgdi32 -luser32
$(CC) $(CFLAGS) -Wl,--base-file,gimp.base,gimp.exp -mwindows -o gimp.exe $(gimp_OBJECTS) -L . -lgimpim -L ../libgimp -lgimpi -L $(GTK)/gtk -lgtk-$(GTK_VER) -L $(GTK)/gdk -lgdk-$(GTK_VER) -L $(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) gimpres.o -lgdi32 -luser32
$(DLLTOOL) --base-file gimp.base --input-def gimp.def --output-exp gimp.exp
$(CC) $(CFLAGS) -Wl,gimp.exp -mwindows -o gimp.exe $(gimp_OBJECTS) -L. -lgimpim -L ../libgimp -lgimpi -L $(GTK)/gtk -lgtk-$(GTK_VER) -L $(GTK)/gdk/win32 -lgdk-$(GTK_VER) -L $(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) gimpres.o -lgdi32 -luser32
$(CC) $(CFLAGS) -Wl,gimp.exp -mwindows -o gimp.exe $(gimp_OBJECTS) -L. -lgimpim -L ../libgimp -lgimpi -L $(GTK)/gtk -lgtk-$(GTK_VER) -L $(GTK)/gdk -lgdk-$(GTK_VER) -L $(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) gimpres.o -lgdi32 -luser32
$(DLLTOOL) --dllname gimp.exe gimp.def --output-lib libgimp.a $(gimp_OBJECTS)
.SUFFIXES: .c .o .i

View File

@ -143,7 +143,7 @@ gimpui_OBJECTS = \
gimpunitmenu.o
gimpui-$(GIMP_VER).dll : $(gimpui_OBJECTS) gimpui.def
$(GLIB)/build-dll gimpui $(GIMP_VER) gimpui.def -s $(gimpui_OBJECTS) -L . -lgimp-$(GIMP_VER) -L $(GTK)/gtk -lgtk-$(GTK_VER) -L $(GTK)/gdk/win32 -lgdk-$(GTK_VER) -L $(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER)
$(GLIB)/build-dll gimpui $(GIMP_VER) gimpui.def -s $(gimpui_OBJECTS) -L . -lgimp-$(GIMP_VER) -L $(GTK)/gtk -lgtk-$(GTK_VER) -L $(GTK)/gdk -lgdk-$(GTK_VER) -L $(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER)
.SUFFIXES: .c .o .i

View File

@ -102,11 +102,22 @@
#include <string.h>
#include <ctype.h>
#define WinMain WinMain_foo /* Kludge for Win32*/
#include <gdk/gdkx.h>
#include <glib.h>
#if defined (G_OS_WIN32)
/* This just to be able to include windows.h and undef RGB */
#define WinMain WinMain_foo
#include <windows.h>
#undef WinMain
#undef RGB /* On Windows from <windows.h> */
#undef RGB
#endif
#include <gtk/gtk.h>
#ifndef GDK_WINDOWING_WIN32
#include <gdk/gdkx.h>
#else
#include <gdk/win32/gdkwin32.h>
#endif
#include "libgimp/gimp.h"
#include "libgimp/stdplugins-intl.h"

View File

@ -235,6 +235,7 @@ run (char *name,
int y;
double devY, devYstep;
int iDevY, iDevYstep;
int iDevLeftMargin, iDevTopMargin;
guchar *inRow;
guchar *bgrRow;
HGLOBAL hDevMode, hDevNames;
@ -270,29 +271,30 @@ run (char *name,
switch (run_mode)
{
case RUN_INTERACTIVE:
vars.devmodeSize = 0;
vars.prDlg.lStructSize = 0;
gimp_get_data (NAME_PRINT, &vars);
if (vars.devmodeSize > 0)
if (gimp_get_data_size (NAME_PRINT) > 0)
{
/* Restore saved DEVMODE. */
hDevMode = GlobalAlloc (GMEM_MOVEABLE, vars.devmodeSize);
g_assert (hDevMode != NULL);
dmp = GlobalLock (hDevMode);
g_assert (dmp != NULL);
gimp_get_data (NAME_PRINT "devmode", dmp);
GlobalUnlock (hDevMode);
vars.prDlg.hDevMode = hDevMode;
g_assert (gimp_get_data_size (NAME_PRINT) == sizeof (vars));
gimp_get_data (NAME_PRINT, &vars);
if (vars.devmodeSize > 0)
{
/* Restore saved DEVMODE. */
g_assert (gimp_get_data_size (NAME_PRINT "devmode")
== vars.devmodeSize);
hDevMode = GlobalAlloc (GMEM_MOVEABLE, vars.devmodeSize);
g_assert (hDevMode != NULL);
dmp = GlobalLock (hDevMode);
g_assert (dmp != NULL);
gimp_get_data (NAME_PRINT "devmode", dmp);
GlobalUnlock (hDevMode);
vars.prDlg.hDevMode = hDevMode;
}
else
{
vars.prDlg.hDevMode = NULL;
}
}
else
{
vars.prDlg.hDevMode = NULL;
}
if (vars.prDlg.lStructSize == 0)
{
vars.prDlg.lStructSize = sizeof (PRINTDLG);
vars.prDlg.Flags = 0;
}
vars.prDlg.Flags = 0;
vars.prDlg.hwndOwner = NULL;
vars.prDlg.hDevNames = NULL;
vars.prDlg.Flags |=
@ -300,6 +302,7 @@ run (char *name,
| PD_NOSELECTION;
vars.prDlg.nMinPage = vars.prDlg.nMaxPage = 0;
vars.prDlg.nCopies = 1;
vars.prDlg.lStructSize = sizeof (PRINTDLG);
if (!PrintDlg (&vars.prDlg))
{
if (CommDlgExtendedError ())
@ -333,7 +336,6 @@ run (char *name,
* Print the image.
*/
/* Check if support for BitBlt */
if (status == STATUS_SUCCESS)
{
/* Check if support for BitBlt */
@ -462,6 +464,22 @@ run (char *name,
oldBm = SelectObject (hdcMem, hBitmap);
if (vars.psDlg.Flags & PSD_MARGINS)
if (vars.psDlg.Flags & PSD_INHUNDREDTHSOFMILLIMETERS)
{
/* Hundreths of millimeters */
iDevLeftMargin = vars.psDlg.rtMargin.left / 2540.0 * devResX;
iDevTopMargin = vars.psDlg.rtMargin.top / 2540.0 * devResY;
}
else
{
/* Thousandths of inches */
iDevLeftMargin = vars.psDlg.rtMargin.left / 1000.0 * devResX;
iDevTopMargin = vars.psDlg.rtMargin.top / 1000.0 * devResY;
}
else
iDevLeftMargin = iDevTopMargin = 0;
devY = 0.0;
iDevY = 0;
for (y = 0; y < height; y++)
@ -498,7 +516,9 @@ run (char *name,
devW = devWidth - iDevX;
else
devW = iDevXstep;
if (!StretchBlt (vars.prDlg.hDC, iDevX, iDevY,
if (!StretchBlt (vars.prDlg.hDC,
iDevX + iDevLeftMargin,
iDevY + iDevTopMargin,
devW, iDevYstep,
hdcMem, x, 0, w, 1, SRCCOPY))
{
@ -549,32 +569,33 @@ run (char *name,
switch (run_mode)
{
case RUN_INTERACTIVE:
vars.devmodeSize = 0;
vars.psDlg.lStructSize = 0;
gimp_get_data (NAME_PRINT, &vars);
if (vars.devmodeSize > 0)
if (gimp_get_data_size (NAME_PRINT) > 0)
{
/* Restore saved DEVMODE. */
hDevMode = GlobalAlloc (GMEM_MOVEABLE, vars.devmodeSize);
g_assert (hDevMode != NULL);
dmp = GlobalLock (hDevMode);
g_assert (dmp != NULL);
gimp_get_data (NAME_PRINT "devmode", dmp);
GlobalUnlock (hDevMode);
vars.psDlg.hDevMode = hDevMode;
g_assert (gimp_get_data_size (NAME_PRINT) == sizeof (vars));
gimp_get_data (NAME_PRINT, &vars);
if (vars.devmodeSize > 0)
{
/* Restore saved DEVMODE. */
g_assert (gimp_get_data_size (NAME_PRINT "devmode")
== vars.devmodeSize);
hDevMode = GlobalAlloc (GMEM_MOVEABLE, vars.devmodeSize);
g_assert (hDevMode != NULL);
dmp = GlobalLock (hDevMode);
g_assert (dmp != NULL);
gimp_get_data (NAME_PRINT "devmode", dmp);
GlobalUnlock (hDevMode);
vars.psDlg.hDevMode = hDevMode;
}
else
{
vars.psDlg.hDevMode = NULL;
}
}
else
{
vars.psDlg.hDevMode = NULL;
}
if (vars.psDlg.lStructSize == 0)
{
vars.psDlg.lStructSize = sizeof (PAGESETUPDLG);
}
vars.psDlg.Flags = 0;
vars.psDlg.hwndOwner = NULL;
vars.psDlg.hDevNames = NULL;
vars.psDlg.Flags = 0;
vars.psDlg.lStructSize = sizeof (PAGESETUPDLG);
if (!PageSetupDlg (&vars.psDlg))
{
if (CommDlgExtendedError ())
@ -583,6 +604,7 @@ run (char *name,
status = STATUS_EXECUTION_ERROR;
break;
}
vars.psDlg.Flags |= PSD_MARGINS;
hDevMode = vars.psDlg.hDevMode;
hDevNames = vars.psDlg.hDevNames;
break;
@ -592,20 +614,22 @@ run (char *name,
break;
}
}
else
status = STATUS_CALLING_ERROR;
/* Store data. */
if (status == STATUS_SUCCESS && run_mode == RUN_INTERACTIVE)
{
/* Save DEVMODE */
dmp = GlobalLock (hDevMode);
vars.devmodeSize = dmp->dmSize + dmp->dmDriverExtra;
#if 0
g_message("DeviceName = %.*s, Orientation = %s, PaperSize = %s, "
g_message("vars.devmodeSize = %d, DeviceName = %.*s, Orientation = %s, PaperSize = %s, "
"Scale = %d%%, Copies = %d, PrintQuality = %s, "
"%s, ICMMethod = %s, ICMIntent = %s, MediaType = %s, "
"DitherType = %s",
vars.devmodeSize,
CCHDEVICENAME, dmp->dmDeviceName,
(dmp->dmOrientation == DMORIENT_PORTRAIT ? "PORTRAIT" :
(dmp->dmOrientation == DMORIENT_LANDSCAPE ? "LANDSCAPE" :
@ -630,11 +654,9 @@ run (char *name,
(dmp->dmICMMethod == DMICMMETHOD_DRIVER ? "DRIVER" :
(dmp->dmICMMethod == DMICMMETHOD_DEVICE ? "DEVICE" :
"?")))),
(dmp->dmICMIntent == DMICM_ABS_COLORIMETRIC ? "ABS_COLORIMETRIC" :
(dmp->dmICMIntent == DMICM_COLORIMETRIC ? "COLORIMETRIC" :
(dmp->dmICMIntent == DMICM_CONTRAST ? "CONTRAST" :
(dmp->dmICMIntent == DMICM_SATURATE ? "SATURATE" :
"?")))),
(dmp->dmICMIntent == DMICM_CONTRAST ? "CONTRAST" :
(dmp->dmICMIntent == DMICM_SATURATE ? "SATURATE" :
"?")),
(dmp->dmMediaType == DMMEDIA_STANDARD ? "STANDARD" :
(dmp->dmMediaType == DMMEDIA_GLOSSY ? "GLOSSY" :
(dmp->dmMediaType == DMMEDIA_TRANSPARENCY ? "TRANSPARENCY" :

View File

@ -48,8 +48,8 @@
#include "config.h"
#include <glib.h> /* Include early for obscure Win32
build reasons */
#include <glib.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
@ -78,6 +78,16 @@
# endif
#endif
#if defined (GTK_CHECK_VERSION) && GTK_CHECK_VERSION (1,3,0)
#define gdk_root_parent gdk_parent_root
#endif
#ifdef G_OS_WIN32
extern __declspec(dllimport) void *gdk_root_parent;
#else
extern void * gdk_root_parent;
#endif
#include "libgimp/gimp.h"
#include "libgimp/gimpui.h"
#include "pix_data.h"
@ -1789,7 +1799,6 @@ my_gdk_pixmap_create_from_xpm_d (GdkWindow *window,
gchar *buffer, *color_name = NULL, pixel_str[32];
_GdkPixmapColor *colors = NULL, *color = NULL;
gulong index;
extern void * gdk_root_parent;
if (!window)
window = (GdkWindow*) &gdk_root_parent;

View File

@ -557,7 +557,7 @@ RESOURCE = ../../app/gimpres.o
endif
$(PLUGIN).exe : $(OBJECTS) $(RESOURCE)
$(CC) $(CFLAGS) -mwindows -s -o $(PLUGIN).exe $(OBJECTS) $(RESOURCE) -L $(PLUGINDIR)/megawidget -lmegawidget -L $(PLUGINDIR)/gpc -lgpc -L $(PLUGINDIR)/libgck/gck -lgck -L ../../libgimp -lgimp-$(GIMP_VER) -lgimpui-$(GIMP_VER) -L $(GTK)/gtk -lgtk-$(GTK_VER) -L $(GTK)/gdk/win32 -lgdk-$(GTK_VER) -L $(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) $(EXTRALIBS) $(LDFLAGS)
$(CC) $(CFLAGS) -mwindows -s -o $(PLUGIN).exe $(OBJECTS) $(RESOURCE) -L $(PLUGINDIR)/megawidget -lmegawidget -L $(PLUGINDIR)/gpc -lgpc -L $(PLUGINDIR)/libgck/gck -lgck -L ../../libgimp -lgimp-$(GIMP_VER) -lgimpui-$(GIMP_VER) -L $(GTK)/gtk -lgtk-$(GTK_VER) -L $(GTK)/gdk -lgdk-$(GTK_VER) -L $(INTL) -lgnu-intl -L $(GLIB) -lglib-$(GLIB_VER) $(EXTRALIBS) $(LDFLAGS)
# Kludge to get the path to the win32 headers
WIN32APIHEADERS = $(shell echo "\#include <winver.h>" | $(CC) -M -E - | tail -1 | sed -e 's!/winver.h!!')