IupCanvas
Creates an interface element that is a canvas - a working area for your application.
Creation
Ihandle* IupCanvas(const char *action); [in C] iup.canvas{} -> (elem: ihandle) [in Lua] canvas(action) [in LED]
action: Name of the action generated when the canvas needs to be redrawn. It can be NULL.
Returns: the identifier of the created element, or NULL if an error occurs.
Attributes
BGCOLOR: Background color. The background is painted only if the ACTION callback is not defined. If the callback is defined the application must draw all the canvas contents.
CURSOR: Defines a cursor for the canvas.
SCROLLBAR (creation only): Associates a horizontal and/or vertical scrollbar to the canvas. Default: "NO".
DX: Size of the thumb in the horizontal scrollbar. Also the horizontal page size. Default: "0.1".
DY: Size of the thumb in the vertical scrollbar. Also the vertical page size. Default: "0.1".
POSX: Position of the thumb in the horizontal scrollbar. Default: "0.0".
POSY: Position of the thumb in the vertical scrollbar. Default: "0.0".
XMAX: Maximum value of the horizontal scrollbar. Default: "0.0".
XMIN: Minimum value of the horizontal scrollbar. Default: "1.0".
YMIN: Minimum value of the vertical scrollbar. Default: "0.0".
YMAX: Maximum value of the vertical scrollbar. Default: "1.0".
LINEX: The amount the thumb moves when an horizontal step is performed. Default: 1/10th of DX. (since 3.0)
LINEY: The amount the thumb moves when a vertical step is performed. Default: 1/10th of DY. (since 3.0)
XAUTOHIDE: When enabled, if DX >= XMAX-XMIN then the horizontal scrollbar is hidden. Default: "YES". (since 3.0)
YAUTOHIDE: When enabled, if DY >= YMAX-YMIN then the vertical scrollbar is hidden. Default: "YES". (since 3.0)
BORDER (creation only): Shows a border around the canvas. Default: "YES".
EXPAND: The default value is "YES". The natural size is the size of 1 character.
DRAGDROP: [Windows and GTK Only] Enable or disable the drag&drop of files. Default: NO, but if DROPFILES_CB is defined when the element is mapped then it will be automatically enabled.
DRAWSIZE: The size of the drawing area in pixels. This size is also used in the RESIZE_CB callback.
Notice that the drawing area size is not the same as RASTERSIZE. The SCROLLBAR and BORDER attributes affect the size of the drawing area.
BACKINGSTORE [Motif Only]: Controls the canvas backing store flag. The default value is "YES".
MDICLIENT (creation only) [Windows Only]: Configure this canvas as an MDI client window. No callbacks will be called. This canvas will be used internally only. The default value is "NO".
HDC_WMPAINT [Windows Only]: Contains the HDC created with the BeginPaint inside the WM_PAINT message. Valid only during the ACTION callback.
ACTIVE, FONT, X, Y, POSITION, WID, TIP, SIZE, RASTERSIZE, ZORDER, VISIBLE: also accepted.
Callbacks
ACTION: Action generated when the canvas needs to be redrawn.
int function(Ihandle *ih, float posx, float posy); [in C] elem:action(posx, posy: number) -> (ret: number) [in Lua]
ih:
identifier of the element that activated the
event.
posx:
thumb position in the horizontal scrollbar. The POSX attribute value.
posy:
thumb position in the vertical scrollbar. The POSY attribute value.
BUTTON_CB: Action generated when any mouse button is pressed or released.
DROPFILES_CB [Windows Only]: Action generated when one or more files are dropped from the Windows Explorer in the dialog.
FOCUS_CB: Called when the canvas gets or looses the focus. It is called after the common callbacks GETFOCUS_CB and KILL_FOCUS_CB.
int function(Ihandle *ih, int focus); [in C] elem:focus_cb(focus: number) -> (ret: number) [in Lua]
ih:
identifier of the element that activated the
event.
focus: is non zero if the canvas is getting the focus, is zero
if it is loosing the focus.
MOTION_CB: Action generated when the mouse is moved.
KEYPRESS_CB: Action generated when a key is pressed or released. It is called after the common callback K_ANY.
RESIZE_CB: Action generated when the canvas size is changed.
SCROLL_CB: Called when the scrollbar is manipulated.
WHEEL_CB: Action generated when the mouse wheel is rotated.
WOM_CB [Windows Only]: Action generated when an audio device receives an event.
MAP_CB, GETFOCUS_CB, KILLFOCUS_CB, ENTERWINDOW_CB, LEAVEWINDOW_CB, K_ANY, HELP_CB: All common callbacks are supported.
Notes
Note that some keys might remove the focus from the canvas. To avoid this, return IGNORE in the K_ANY callback.
The mouse cursor position can be programatically controled using the global attribute CURSORPOS.