/* Copyright (c) 1995-2003 Nick Ing-Simmons. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. */ #define PERL_NO_GET_CONTEXT #include #include #include #include #include #include #include #include #include DECLARE_VTABLES; static void Tk_ImageBackground _((Tk_Window win, char *imageString)); static void ButtonImageProc _((ClientData clientData, int x, int y, int width, int height, int imgWidth, int imgHeight)); static void BackgroundImageProc(clientData, x, y, width, height, imgWidth, imgHeight) ClientData clientData; /* Pointer to widget record. */ int x, y; /* Upper left pixel (within image) * that must be redisplayed. */ int width, height; /* Dimensions of area to redisplay * (may be <= 0). */ int imgWidth, imgHeight; /* New dimensions of image. */ { } static void Tk_ImageBackground(tkwin, imageString) Tk_Window tkwin; char *imageString; { Display *dpy = Tk_Display(tkwin); Tcl_Interp *interp = ((TkWindow*) tkwin)->mainPtr->interp; Tk_Image image = Tk_GetImage(interp, tkwin, imageString, BackgroundImageProc, (ClientData) tkwin); int width, height; Pixmap pixmap; Tk_SizeOfImage(image, &width, &height); Tk_MakeWindowExist(tkwin); pixmap = Tk_GetPixmap(dpy, Tk_WindowId(tkwin), width, height, Tk_Depth(tkwin)); Tk_RedrawImage(image, 0, 0, width, height, pixmap, 0, 0); Tk_SetWindowBackgroundPixmap(tkwin, pixmap); Tk_FreePixmap(dpy, pixmap); Tk_FreeImage(image); } MODULE = Tk::ImageBack PACKAGE = Tk PREFIX = Tk_ PROTOTYPES: DISABLE void Tk_ImageBackground(tkwin, imageString) Tk_Window tkwin char * imageString BOOT: { IMPORT_VTABLES; }