2005-07-31 08:34:07 -07:00
|
|
|
/*
|
2006-01-06 23:20:58 -08:00
|
|
|
* Copyright (C) 2000-2006 Carsten Haitzler, Geoff Harrison and various contributors
|
|
|
|
* Copyright (C) 2004-2006 Kim Woelders
|
2005-07-31 08:34:07 -07:00
|
|
|
*
|
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
* of this software and associated documentation files (the "Software"), to
|
|
|
|
* deal in the Software without restriction, including without limitation the
|
|
|
|
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
|
|
* sell copies of the Software, and to permit persons to whom the Software is
|
|
|
|
* furnished to do so, subject to the following conditions:
|
|
|
|
*
|
|
|
|
* The above copyright notice and this permission notice shall be included in
|
|
|
|
* all copies of the Software, its documentation and marketing & publicity
|
|
|
|
* materials, and acknowledgment shall be given in the documentation, materials
|
|
|
|
* and software packages that this Software was used.
|
|
|
|
*
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
|
|
* THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
|
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
|
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
*/
|
|
|
|
#include "E.h"
|
2005-09-17 23:35:38 -07:00
|
|
|
#include "eobj.h"
|
2005-07-31 08:34:07 -07:00
|
|
|
#include "ewins.h"
|
|
|
|
#include "hiwin.h"
|
2005-09-26 10:32:10 -07:00
|
|
|
#include "iclass.h"
|
2005-07-31 08:34:07 -07:00
|
|
|
#include "xwin.h"
|
|
|
|
|
|
|
|
#define DEBUG_HIWIN 0
|
|
|
|
|
|
|
|
struct _hiwin
|
|
|
|
{
|
|
|
|
EObj o;
|
|
|
|
EWin *ewin;
|
|
|
|
int zoom;
|
|
|
|
int xo, yo, wo, ho;
|
|
|
|
void (*evcb) (XEvent * ev, void *data);
|
|
|
|
void *data;
|
|
|
|
char animate;
|
2005-08-06 03:25:55 -07:00
|
|
|
GC gc;
|
2005-07-31 08:34:07 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
2005-08-06 03:25:55 -07:00
|
|
|
void (*init) (Hiwin * phi);
|
|
|
|
void (*draw) (Hiwin * phi);
|
|
|
|
void (*fini) (Hiwin * phi, int shown);
|
2005-07-31 08:34:07 -07:00
|
|
|
} HiwinRender;
|
|
|
|
|
2005-08-06 03:25:55 -07:00
|
|
|
static ImageClass *hiwin_ic = NULL;
|
|
|
|
|
2005-07-31 08:34:07 -07:00
|
|
|
static void
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderImageInit(Hiwin * phi)
|
2005-07-31 08:34:07 -07:00
|
|
|
{
|
2005-08-06 03:25:55 -07:00
|
|
|
EWin *ewin = phi->ewin;
|
2005-07-31 08:34:07 -07:00
|
|
|
Imlib_Image *im;
|
|
|
|
Pixmap pmap;
|
|
|
|
|
|
|
|
pmap = EoGetPixmap(ewin);
|
|
|
|
if (pmap)
|
|
|
|
{
|
|
|
|
imlib_context_set_drawable(pmap);
|
|
|
|
im = imlib_create_image_from_drawable(0, 0, 0,
|
|
|
|
EoGetW(ewin), EoGetH(ewin), 0);
|
|
|
|
/* Skip zoom effect if composite is active */
|
|
|
|
phi->animate = 0;
|
|
|
|
}
|
|
|
|
else if (phi->zoom > 2 && EwinIsOnScreen(ewin))
|
|
|
|
{
|
|
|
|
imlib_context_set_drawable(EoGetWin(ewin));
|
|
|
|
im = imlib_create_image_from_drawable(0, 0, 0,
|
|
|
|
EoGetW(ewin), EoGetH(ewin), 0);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
imlib_context_set_drawable(ewin->mini_pmm.pmap);
|
|
|
|
im = imlib_create_image_from_drawable(0, 0, 0,
|
|
|
|
ewin->mini_w, ewin->mini_h, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
imlib_context_set_image(im);
|
|
|
|
imlib_context_set_drawable(EoGetWin(phi));
|
|
|
|
ESetWindowBackgroundPixmap(EoGetWin(phi), None);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderImageDrawX(Hiwin * phi, Drawable draw)
|
2005-07-31 08:34:07 -07:00
|
|
|
{
|
2005-08-06 03:25:55 -07:00
|
|
|
imlib_context_set_drawable(draw);
|
2005-07-31 08:34:07 -07:00
|
|
|
imlib_render_image_on_drawable_at_size(0, 0, EoGetW(phi), EoGetH(phi));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderImageDraw(Hiwin * phi)
|
|
|
|
{
|
|
|
|
HiwinRenderImageDrawX(phi, EoGetWin(phi));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
HiwinRenderImageFini(Hiwin * phi, int shown)
|
2005-07-31 08:34:07 -07:00
|
|
|
{
|
|
|
|
Pixmap pmap;
|
|
|
|
|
|
|
|
if (shown)
|
|
|
|
{
|
|
|
|
pmap =
|
|
|
|
ECreatePixmap(EoGetWin(phi), EoGetW(phi), EoGetH(phi), VRoot.depth);
|
|
|
|
ESetWindowBackgroundPixmap(EoGetWin(phi), pmap);
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderImageDrawX(phi, pmap);
|
2005-07-31 08:34:07 -07:00
|
|
|
EFreePixmap(pmap);
|
|
|
|
EClearWindow(EoGetWin(phi));
|
|
|
|
}
|
|
|
|
imlib_free_image_and_decache();
|
|
|
|
}
|
|
|
|
|
2005-08-06 03:25:55 -07:00
|
|
|
#if USE_COMPOSITE
|
|
|
|
static void
|
|
|
|
HiwinRenderImageUpdate(Hiwin * phi)
|
|
|
|
{
|
|
|
|
Imlib_Image *im;
|
|
|
|
Pixmap pmap;
|
|
|
|
EWin *ewin = phi->ewin;
|
|
|
|
|
|
|
|
pmap = EoGetPixmap(ewin);
|
|
|
|
if (pmap == None)
|
|
|
|
return;
|
|
|
|
|
|
|
|
imlib_context_set_drawable(pmap);
|
|
|
|
im = imlib_create_image_from_drawable(0, 0, 0,
|
|
|
|
EoGetW(ewin), EoGetH(ewin), 0);
|
|
|
|
|
|
|
|
imlib_context_set_image(im);
|
|
|
|
ESetWindowBackgroundPixmap(EoGetWin(phi), None);
|
|
|
|
HiwinRenderImageDrawX(phi, EoGetWin(phi));
|
|
|
|
imlib_free_image_and_decache();
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2005-07-31 08:34:07 -07:00
|
|
|
static const HiwinRender HiwinRenderImage = {
|
|
|
|
HiwinRenderImageInit, HiwinRenderImageDraw, HiwinRenderImageFini
|
|
|
|
};
|
|
|
|
|
|
|
|
static void
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderIclassInit(Hiwin * phi __UNUSED__)
|
2005-07-31 08:34:07 -07:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderIclassDraw(Hiwin * phi)
|
2005-07-31 08:34:07 -07:00
|
|
|
{
|
2005-08-06 03:25:55 -07:00
|
|
|
ImageclassApply(hiwin_ic, EoGetWin(phi), EoGetW(phi), EoGetH(phi), 0, 0,
|
2005-07-31 08:34:07 -07:00
|
|
|
STATE_NORMAL, 0, ST_PAGER);
|
|
|
|
EClearWindow(EoGetWin(phi));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderIclassFini(Hiwin * phi, int shown)
|
2005-07-31 08:34:07 -07:00
|
|
|
{
|
|
|
|
if (shown)
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderIclassDraw(phi);
|
2005-07-31 08:34:07 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static const HiwinRender HiwinRenderIclass = {
|
|
|
|
HiwinRenderIclassInit, HiwinRenderIclassDraw, HiwinRenderIclassFini
|
|
|
|
};
|
|
|
|
|
2005-08-06 03:25:55 -07:00
|
|
|
static void
|
|
|
|
HiwinRenderPixmapInit(Hiwin * phi)
|
2005-07-31 08:34:07 -07:00
|
|
|
{
|
2005-08-06 03:25:55 -07:00
|
|
|
phi->gc = ECreateGC(EoGetWin(phi), 0, NULL);
|
|
|
|
}
|
2005-07-31 08:34:07 -07:00
|
|
|
|
|
|
|
static void
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderPixmapDrawX(Hiwin * phi, Drawable draw)
|
2005-07-31 08:34:07 -07:00
|
|
|
{
|
2005-08-06 03:25:55 -07:00
|
|
|
XSetForeground(disp, phi->gc, BlackPixel(disp, VRoot.scr));
|
|
|
|
XFillRectangle(disp, draw, phi->gc, 0, 0, EoGetW(phi), EoGetH(phi));
|
|
|
|
XSetForeground(disp, phi->gc, WhitePixel(disp, VRoot.scr));
|
|
|
|
XFillRectangle(disp, draw, phi->gc, 1, 1, EoGetW(phi) - 2, EoGetH(phi) - 2);
|
2005-07-31 08:34:07 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderPixmapDraw(Hiwin * phi)
|
2005-07-31 08:34:07 -07:00
|
|
|
{
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderPixmapDrawX(phi, EoGetWin(phi));
|
2005-07-31 08:34:07 -07:00
|
|
|
EClearWindow(EoGetWin(phi));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderPixmapFini(Hiwin * phi, int shown)
|
2005-07-31 08:34:07 -07:00
|
|
|
{
|
|
|
|
Pixmap pmap;
|
|
|
|
|
|
|
|
if (shown)
|
|
|
|
{
|
|
|
|
pmap =
|
|
|
|
ECreatePixmap(EoGetWin(phi), EoGetW(phi), EoGetH(phi), VRoot.depth);
|
|
|
|
ESetWindowBackgroundPixmap(EoGetWin(phi), pmap);
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinRenderPixmapDrawX(phi, pmap);
|
2005-07-31 08:34:07 -07:00
|
|
|
EFreePixmap(pmap);
|
|
|
|
EClearWindow(EoGetWin(phi));
|
|
|
|
}
|
|
|
|
|
2005-08-06 03:25:55 -07:00
|
|
|
EFreeGC(phi->gc);
|
|
|
|
phi->gc = None;
|
2005-07-31 08:34:07 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static const HiwinRender HiwinRenderPixmap = {
|
|
|
|
HiwinRenderPixmapInit, HiwinRenderPixmapDraw, HiwinRenderPixmapFini
|
|
|
|
};
|
|
|
|
|
|
|
|
static void
|
|
|
|
HiwinEvent(XEvent * ev, void *prm)
|
|
|
|
{
|
|
|
|
Hiwin *phi = prm;
|
|
|
|
|
|
|
|
if (phi->evcb)
|
|
|
|
phi->evcb(ev, phi->data);
|
|
|
|
}
|
|
|
|
|
2005-08-06 03:25:55 -07:00
|
|
|
#if USE_COMPOSITE
|
|
|
|
static void
|
|
|
|
HiwinEwinEvent(XEvent * ev, void *prm)
|
|
|
|
{
|
|
|
|
Hiwin *phi = prm;
|
|
|
|
|
|
|
|
#if DEBUG_HIWIN
|
|
|
|
Eprintf("HiwinEwinEvent type=%d %s\n", ev->type, EwinGetName(phi->ewin));
|
|
|
|
#endif
|
|
|
|
|
|
|
|
switch (ev->type)
|
|
|
|
{
|
|
|
|
case EX_EVENT_DAMAGE_NOTIFY:
|
|
|
|
HiwinRenderImageUpdate(phi);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2005-07-31 08:34:07 -07:00
|
|
|
Hiwin *
|
|
|
|
HiwinCreate(void)
|
|
|
|
{
|
|
|
|
Hiwin *phi;
|
|
|
|
|
|
|
|
phi = Ecalloc(1, sizeof(Hiwin));
|
|
|
|
if (!phi)
|
|
|
|
return NULL;
|
|
|
|
|
2005-10-16 02:33:49 -07:00
|
|
|
EoInit(phi, EOBJ_TYPE_MISC, None, 0, 0, 3, 3, 1, "HiWin");
|
2005-07-31 08:34:07 -07:00
|
|
|
EoSetShadow(phi, 0);
|
|
|
|
EoSetFloating(phi, 1);
|
|
|
|
EoSetLayer(phi, 19);
|
|
|
|
EventCallbackRegister(EoGetWin(phi), 0, HiwinEvent, phi);
|
|
|
|
ESelectInput(EoGetWin(phi),
|
|
|
|
ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
|
|
|
|
EnterWindowMask | LeaveWindowMask);
|
|
|
|
|
|
|
|
return phi;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
HiwinSetGeom(Hiwin * phi, int x, int y, int w, int h)
|
|
|
|
{
|
|
|
|
phi->xo = x;
|
|
|
|
phi->yo = y;
|
|
|
|
phi->wo = w;
|
|
|
|
phi->ho = h;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
HiwinInit(Hiwin * phi, EWin * ewin)
|
|
|
|
{
|
2005-08-06 03:25:55 -07:00
|
|
|
if (ewin == phi->ewin)
|
|
|
|
return;
|
|
|
|
|
|
|
|
#if USE_COMPOSITE
|
|
|
|
if (phi->ewin)
|
|
|
|
{
|
|
|
|
#if DEBUG_HIWIN
|
|
|
|
Eprintf("Unregister %s\n", EwinGetName(phi->ewin));
|
|
|
|
#endif
|
|
|
|
EventCallbackUnregister(EoGetWin(phi->ewin), 0, HiwinEwinEvent, phi);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2005-07-31 08:34:07 -07:00
|
|
|
phi->ewin = ewin;
|
2005-08-06 03:25:55 -07:00
|
|
|
|
|
|
|
#if USE_COMPOSITE
|
|
|
|
if (phi->ewin)
|
|
|
|
{
|
|
|
|
#if DEBUG_HIWIN
|
|
|
|
Eprintf("Register %s\n", EwinGetName(phi->ewin));
|
|
|
|
#endif
|
|
|
|
EventCallbackRegister(EoGetWin(phi->ewin), 0, HiwinEwinEvent, phi);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
if (!hiwin_ic)
|
|
|
|
hiwin_ic = ImageclassFind("PAGER_WIN", 0);
|
2005-07-31 08:34:07 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
HiwinSetCallback(Hiwin * phi, void (*func) (XEvent * ev, void *data),
|
|
|
|
void *data)
|
|
|
|
{
|
|
|
|
phi->evcb = func;
|
|
|
|
phi->data = data;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
HiwinGetXY(Hiwin * phi, int *x, int *y)
|
|
|
|
{
|
|
|
|
*x = EoGetX(phi);
|
|
|
|
*y = EoGetY(phi);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
HiwinMove(Hiwin * phi, int x, int y)
|
|
|
|
{
|
|
|
|
EoMove(phi, x, y);
|
|
|
|
}
|
|
|
|
|
|
|
|
EWin *
|
|
|
|
HiwinGetEwin(Hiwin * phi, int check)
|
|
|
|
{
|
|
|
|
EWin *ewin;
|
|
|
|
|
|
|
|
if (!phi)
|
|
|
|
return NULL;
|
|
|
|
if (!check || !phi->ewin)
|
|
|
|
return phi->ewin;
|
|
|
|
|
|
|
|
ewin = EwinFindByPtr(phi->ewin);
|
|
|
|
|
|
|
|
return ewin;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
HiwinHide(Hiwin * phi)
|
|
|
|
{
|
|
|
|
if (!phi)
|
|
|
|
return;
|
|
|
|
|
|
|
|
if (EoIsShown(phi))
|
|
|
|
{
|
|
|
|
GrabPointerRelease();
|
2005-08-06 03:25:55 -07:00
|
|
|
HiwinInit(phi, NULL);
|
2005-07-31 08:34:07 -07:00
|
|
|
EoUnmap(phi);
|
|
|
|
}
|
|
|
|
|
|
|
|
phi->data = NULL;
|
|
|
|
phi->evcb = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
HiwinShow(Hiwin * phi, EWin * ewin, int zoom, int confine)
|
|
|
|
{
|
|
|
|
const HiwinRender *pz;
|
|
|
|
int x, y, w, h, zold;
|
|
|
|
int xx, yy, ww, hh, i, i1, i2, step, px, py;
|
|
|
|
|
|
|
|
if (!ewin)
|
|
|
|
ewin = phi->ewin;
|
|
|
|
if (!ewin)
|
|
|
|
return;
|
|
|
|
|
|
|
|
if (ewin->mini_pmm.pmap)
|
2005-08-06 03:25:55 -07:00
|
|
|
pz = &HiwinRenderImage;
|
|
|
|
else if (hiwin_ic)
|
|
|
|
pz = &HiwinRenderIclass;
|
2005-07-31 08:34:07 -07:00
|
|
|
else
|
2005-08-06 03:25:55 -07:00
|
|
|
pz = &HiwinRenderPixmap;
|
2005-07-31 08:34:07 -07:00
|
|
|
|
|
|
|
if (phi->zoom <= 2 && zoom == 2)
|
|
|
|
{
|
|
|
|
phi->zoom = 1;
|
|
|
|
|
|
|
|
x = phi->xo + phi->wo / 2;
|
|
|
|
y = phi->yo + phi->ho / 2;
|
|
|
|
w = zoom * phi->wo;
|
|
|
|
h = zoom * phi->ho;
|
|
|
|
|
|
|
|
step = zoom - phi->zoom;
|
|
|
|
}
|
|
|
|
else if (zoom <= 2)
|
|
|
|
{
|
|
|
|
x = phi->xo + phi->wo / 2;
|
|
|
|
y = phi->yo + phi->ho / 2;
|
|
|
|
w = zoom * phi->wo;
|
|
|
|
h = zoom * phi->ho;
|
|
|
|
step = 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
x = VRoot.w / 2;
|
|
|
|
y = VRoot.h / 2;
|
|
|
|
w = zoom * EoGetW(phi->ewin) / 4;
|
|
|
|
h = zoom * EoGetH(phi->ewin) / 4;
|
|
|
|
step = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
#if DEBUG_HIWIN
|
|
|
|
Eprintf("HiwinShow %s zoom=%d->%d step=%d %d,%d %dx%d\n",
|
|
|
|
EoGetName(ewin), phi->zoom, zoom, step, x, y, w, h);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
zold = phi->zoom;
|
|
|
|
phi->zoom = zoom;
|
|
|
|
phi->animate = 1;
|
|
|
|
|
2005-08-06 03:25:55 -07:00
|
|
|
pz->init(phi);
|
2005-07-31 08:34:07 -07:00
|
|
|
|
|
|
|
EoMap(phi, 0);
|
|
|
|
|
|
|
|
if (step && phi->animate)
|
|
|
|
{
|
|
|
|
x = phi->xo;
|
|
|
|
y = phi->yo;
|
|
|
|
w = phi->wo;
|
|
|
|
h = phi->ho;
|
|
|
|
|
|
|
|
if (w > h)
|
|
|
|
{
|
|
|
|
i1 = w * zold;
|
|
|
|
i2 = w * zoom;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
i1 = h * zold;
|
|
|
|
i2 = h * zoom;
|
|
|
|
}
|
|
|
|
|
|
|
|
for (i = i1; i != i2; i += step)
|
|
|
|
{
|
|
|
|
if (w > h)
|
|
|
|
{
|
|
|
|
ww = i;
|
|
|
|
hh = (ww * h) / w;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
hh = i;
|
|
|
|
ww = (hh * w) / h;
|
|
|
|
}
|
|
|
|
xx = x + ((w - ww) / 2);
|
|
|
|
yy = y + ((h - hh) / 2);
|
|
|
|
EoMoveResize(phi, xx, yy, ww, hh);
|
2005-08-06 03:25:55 -07:00
|
|
|
pz->draw(phi);
|
2005-07-31 08:34:07 -07:00
|
|
|
|
2005-08-07 13:33:21 -07:00
|
|
|
EQueryPointer(None, &px, &py, NULL, NULL);
|
2005-07-31 08:34:07 -07:00
|
|
|
if ((px < x) || (py < y) || (px >= (x + w)) || (py >= (y + h)))
|
|
|
|
{
|
2005-08-06 03:25:55 -07:00
|
|
|
pz->fini(phi, 0);
|
|
|
|
HiwinHide(phi);
|
2005-07-31 08:34:07 -07:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
EoMoveResize(phi, x - w / 2, y - h / 2, w, h);
|
|
|
|
}
|
|
|
|
|
|
|
|
GrabPointerSet(EoGetWin(phi), ECSR_ACT_MOVE, confine);
|
|
|
|
|
2005-08-06 03:25:55 -07:00
|
|
|
pz->fini(phi, 1);
|
2005-07-31 08:34:07 -07:00
|
|
|
}
|