32 lines
918 B
Lua
32 lines
918 B
Lua
require"imlua"
|
|
require"cdlua"
|
|
require"cdluaim"
|
|
require"iuplua"
|
|
require"iupluacd"
|
|
|
|
image = im.FileImageLoad("flower.jpg") -- directly load the image at index 0. it will open and close the file
|
|
cnv = iup.canvas{rastersize = image:Width().."x"..image:Height(), border = "NO"}
|
|
cnv.image = image -- store the new image in the IUP canvas as an attribute
|
|
|
|
function cnv:map_cb() -- the CD canvas can only be created when the IUP canvas is mapped
|
|
self.canvas = cd.CreateCanvas(cd.IUP, self)
|
|
end
|
|
|
|
function cnv:action() -- called everytime the IUP canvas needs to be repainted
|
|
self.canvas:Activate()
|
|
self.canvas:Clear()
|
|
self.image:cdCanvasPutImageRect(self.canvas, 0, 0, 0, 0, 0, 0, 0, 0) -- use default values
|
|
end
|
|
|
|
dlg = iup.dialog{cnv}
|
|
|
|
function dlg:close_cb()
|
|
cnv.image:Destroy()
|
|
cnv.canvas:Kill()
|
|
self:destroy()
|
|
return iup.IGNORE -- because we destroy the dialog
|
|
end
|
|
|
|
dlg:show()
|
|
iup.MainLoop()
|