winop(n) BLT Built-In Commands winop(n)______________________________________________________________________________NAMEwinop - Perform assorted window and image operations
SYNOPSISwinop changes window
winop gradients leftcolor rightcolor gradients
winop image subcommand ...
winop image alpha srcImage destImage color
winop image colors ?-alpha? srcImage
winop image convolve srcImage destImage filter
winop image gradient image leftcolor rightcolor ...
winop image merge srcImage1 srcImage2 destImage ?alpha? ?...?
winop image mirror srcImage1 destImage ?x|y|xy|tile|outer|inner?
winop image quantize srcImage destImage ?nColors?
winop image readjpeg filename photoname
winop image resample srcImage destImage ?horizFilter? ?vertFil‐
ter?
winop image rotate srcImage destImage angle
winop image subsample srcImage destImage x y width height
?horizFilter? ?vertFilter?
winop lower ?window?...
winop map ?window?...
winop move window x y
winop query
winop raise ?window?...
winop snap window photoName ?width height ?
winop unmap ?window?...
winop warpto ?window?
_________________________________________________________________DESCRIPTION
The winop command performs various window and image operations on Tk
windows using low-level Xlib function calls to work around window man‐
ager pecularities.
INTRODUCTION
Tk has several commands for manipulating its windows: raise, lower, wm,
etc. These commands ask the window manager to perform operations on Tk
windows. In some cases, a particular window manager won't perform the
operation as expected.
For example, if you positioned a toplevel window using wm geometry, the
window may not actually be at those particular coordinates. The posi‐
tion of the window may be offset by dimensions of the title bar added
by the window manager.
In situations like these, the winop command can be used to workaround
these difficulties. Instead, it makes low-level Xlib (such XRaiseWin‐
dow and XMapWindow) calls to perform these operations.
toplevel .top
wm withdraw .top
# Set the geometry to make the window manager
# place the window.
wm geometry .top +100+100
# Move the window to the desired location
# and "update" to force the window manager
# to recognize it.
winop move .top 100 100
update
wm deiconify .top
winop move .top 100 100
OPERATIONS
The following operations are available for the winop command:
winop changes window
Realize window.
winop image subcommand ...
Image sub-commands.
winop image alpha ?-shift? srcImage destImage color ?alpha?
?withalpha?
Set image pixels of the given color to transparent. If
an alpha value is not given, it defaults to 0 (meaning
transparent). An alpha of 255 is used for solid. The
srcImage and destImage may be the same. If the color is
* any color is matched. If color is prefixed with !
match is inverted.
winop gradients leftcolor rightcolor width
Return a list of width colors that graduate from left‐
color to the color just before rightcolor. Note that the
last color in the returned list is not rightcolor. A
typical use for this is calculating shadow colors.
winop image blur srcImage dstImage ?radius?
Blur an image using gaussian blur.
winop image colors ?-alpha? ?-count? srcImage
Return list of distinct colors. If -alpha is given, the
alpha is appended to each color after a colon, eg
#FF0000:00. If -count is given, returns color/count
pairs.
winop image convolve srcImage destImage filter
Convolve an image: filter is a list of numbers. The
srcImage and destImage may be the same.
winop image gradient image leftcolor rightcolor ...
Generate a gradient from left to right into image. The
following options are available:
-type halfsine|sine|linear|rectangular|radial|split|blank
Set the type of gradient. The default is sine.
-skew N
The skew determines the initial fraction of the
image that the gradient occupies, after which only
rightcolor is used. The skew must be > 0 and <=
1.0. The default value is 1.0, meaning not skewed.
-slant N
Make the gradient slant where a value of 1.0 slants
at 45 degrees. The value must be between -100.0 and
100.0.
-mathval N
Curve the gradient by passing the Y position to the
function -mathfunc. The value must be between
-100.0 and 100.0 (typically 1.0). The default is
0.0, which means disabled.
-mathfunc X
Function to use with -mathval. The default value is
sin. The value must be one of: sin cos tan sinh
cosh tanh asin acos atan log log10 exp sqrt rand
circle.
-rand N
Add small random purturbations to gradient to avoid
striation lines. The value must be between 0.0 and
0.1.
-height N
Change the image height.
-width N
Change the image width.
winop image merge srcImage1 srcImage2 destImage ?opacity? ?opac‐
ity2?
Merge two images with alpha blending. The default ?opac‐
ity? is 0.5, and the default for ?opacity2? is 1.0 -
?opacity?.
winop image mirror srcImage1 destImage ?x|y|xy|tile|outer|inner?
?halo?
Flips an image on axis x, y or xy. The tile option
results in a double size image with mirror copies
appended to generate a tile-able image. The outer option
is used to resize an image while preserving the outside
border by halo pixels (default is 16). The inner option
copies from the center of source keeping it centered.
These last 2 are used implicitly by blt::tile::button
-bdtile, etc. The srcImage1 and destImage must not be
the same if using tile, inner or outer. The default is
xy.
winop image quantize srcImage destImage ?nColors?
Limit number of colors in image. Default 1. The srcIm‐
age and destImage may be the same.
winop image readjpeg filename photoname
Read a jpeg image using libjpeg. IMG makes this obsolete
(and thus probably not builtin).
winop image recolor srcImage destImage oldColor newColor ?alpha?
Change pixels from oldColor to newColor. If ?alpha? is
not given it defaults to 255 (opaque). The srcImage and
destImage may be the same.
winop image resample srcImage destImage ?horizFilter? ?vertFil‐
ter?
Resample an image. If srcImage and destImage are the
same size, just makes a copy. Otherwise the image is
resized to the size of destImage, possibly wih filtering.
Filters are one of: bell bessel box bspline catrom
default dummy gauss8 gaussian gi lanczos3 mitchell none
sinc triangle. The destImage must be greater than 1x1.
winop image rotate srcImage destImage angle
Rotate an image. The srcImage and destImage may be the
same.
winop image subsample srcImage destImage x y width height
?horizFilter? ?vertFilter?
Resample area of an image. See resample.
winop image trans image x y ?alpha?
Get or set the integer alpha value within an image.
winop lower ?window?...
Lowers window to the bottom of the X window stack. Window is
the path name of a Tk window.
winop map ?window?...
Maps window on the screen. Window is the path name of a Tk win‐
dow. If window is already mapped, this command has no effect.
winop move window x y
Move window to the screen location specified by x and y. Window
is the path name of a Tk window, while x and y are screen coor‐
dinates. This command returns the empty string.
winop query
Query pointer position. Returns @X,Y.
winop raise ?window?...
Raises window to the top of the X window stack. Window must be a
valid path name of a Tk window. This command returns the empty
string.
winop snap window photoName ?width height?
Takes a snapshot of the window and stores the contents in the
photo image photoName. Window is the valid path name of a Tk
window which must be totally visible (unobscured). PhotoName is
the name of a Tk photo image which must already exist. This
command can fail if the window is obscured in any fashion, such
as covered by another window or partially offscreen. In that
case, an error message is returned. If width or height is
given, the image is resampled to the given size.
winop unmap ?window?...
Unmaps window from the screen. Window is the path name of a Tk
window.
winop warpto ?window?
Warps the pointer to window. Window is the path name of a Tk
window which must be mapped. If window is in the form @x,y,
where x and y are root screen coordinates, the pointer is warped
to that location on the screen.
[I've never heard a good case for warping the pointer in an
application. It can be useful for testing, but in applications,
it's always a bad idea. Simply stated, the user owns the
pointer, not the application. If you have an application that
needs it, I'd like to hear about it.]
If no window argument is present the current location of the
pointer is returned. The location is returned as a list in the
form "x y", where x and y are the current coordinates of the
pointer.
KEYWORDS
window, map, raise, lower, pointer, warp
BLT 2.5 winop(n)