summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscuri <scuri>2009-06-26 17:22:45 +0000
committerscuri <scuri>2009-06-26 17:22:45 +0000
commitfeab2c247a73bffa2cba7833e05b6b4f92351e41 (patch)
treefa81b2e5b56dcf09d67dd845f2bbb2cbe8675605
parent6571550c067af0bb8579d892ab2cf2b8e4543c6e (diff)
*** empty log message ***
-rw-r--r--html/download/cdtest.zipbin40518 -> 41788 bytes
-rw-r--r--html/download/samples_cdlua5.tar.gzbin2296 -> 2301 bytes
-rw-r--r--html/download/samples_cdlua5.zipbin4405 -> 4405 bytes
-rw-r--r--html/download/simple.zipbin12690 -> 13717 bytes
-rw-r--r--html/en/history.html2
-rw-r--r--html/en/samples.html3
-rw-r--r--html/examples/cdalign.wlua67
-rw-r--r--html/examples/cdtext.wlua59
-rw-r--r--html/examples/imagergb.wlua35
-rw-r--r--html/examples/iupcdaux.lua45
-rw-r--r--html/examples/iuplua_cdlua.wlua58
-rw-r--r--html/examples/rubberband.wlua54
-rw-r--r--include/cd.h2
13 files changed, 322 insertions, 3 deletions
diff --git a/html/download/cdtest.zip b/html/download/cdtest.zip
index c46f356..9f4b9e5 100644
--- a/html/download/cdtest.zip
+++ b/html/download/cdtest.zip
Binary files differ
diff --git a/html/download/samples_cdlua5.tar.gz b/html/download/samples_cdlua5.tar.gz
index 6cd8ab3..30e1d54 100644
--- a/html/download/samples_cdlua5.tar.gz
+++ b/html/download/samples_cdlua5.tar.gz
Binary files differ
diff --git a/html/download/samples_cdlua5.zip b/html/download/samples_cdlua5.zip
index 90a03fa..54f8b10 100644
--- a/html/download/samples_cdlua5.zip
+++ b/html/download/samples_cdlua5.zip
Binary files differ
diff --git a/html/download/simple.zip b/html/download/simple.zip
index 8d06244..c4f1c38 100644
--- a/html/download/simple.zip
+++ b/html/download/simple.zip
Binary files differ
diff --git a/html/en/history.html b/html/en/history.html
index bd6e29c..caa535b 100644
--- a/html/en/history.html
+++ b/html/en/history.html
@@ -10,7 +10,7 @@
<body>
<h1>History of Changes</h1>
-<h3>Version 5.2 (24/Jun/2008)</h3>
+<h3>Version 5.2 (26/Jun/2008)</h3>
<ul>
<li><span style="color: #0000FF">New:</span> functions <strong>
CanvasGetVectorTextBox, CanvasGetVectorFontSize</strong> and <strong>
diff --git a/html/en/samples.html b/html/en/samples.html
index 1759ddc..f29f855 100644
--- a/html/en/samples.html
+++ b/html/en/samples.html
@@ -56,7 +56,8 @@ canvas:Text(10, 10, &quot;Test&quot;)
canvas:KillCanvas()</pre>
<p>Check the file <a href="../download/samples_cdlua5.zip">samples_cdlua5.zip</a> or <a href="../download/samples_cdlua5.tar.gz">samples_cdlua5.tar.gz</a> for several samples in Lua.
- For some of them you will need also the IUP libraries.&nbsp; </p>
+ For some of them you will need also the IUP libraries.&nbsp;You can also browse the
+ <a href="../examples/">examples folder</a>. </p>
<h3>Screen Capture in Windows</h3>
diff --git a/html/examples/cdalign.wlua b/html/examples/cdalign.wlua
new file mode 100644
index 0000000..849d258
--- /dev/null
+++ b/html/examples/cdalign.wlua
@@ -0,0 +1,67 @@
+require("iupcdaux") -- utility module used in some samples
+
+dlg = iupcdaux.new_dialog(w, h)
+cnv = dlg[1] -- retrieve the IUP canvas
+
+function DrawText(canvas, x, y, text, align)
+ canvas:TextAlignment(align)
+ canvas:Mark(x, y)
+ canvas:Text(x, y, text)
+ xmin, xmax, ymin, ymax = canvas:GetTextBox(x, y, text)
+ canvas:Rect(xmin, xmax, ymin, ymax)
+end
+
+text_aligment = {
+ cd.NORTH,
+ cd.SOUTH,
+ cd.EAST,
+ cd.WEST,
+ cd.NORTH_EAST,
+ cd.NORTH_WEST,
+ cd.SOUTH_EAST,
+ cd.SOUTH_WEST,
+ cd.CENTER,
+ cd.BASE_LEFT,
+ cd.BASE_CENTER,
+ cd.BASE_RIGHT
+}
+
+text_aligment_str = {
+ "NORTH",
+ "SOUTH",
+ "EAST",
+ "WEST",
+ "NORTH EAST",
+ "NORTH WEST",
+ "SOUTH EAST",
+ "SOUTH WEST",
+ "CENTER",
+ "BASE LEFT",
+ "BASE CENTER",
+ "BASE RIGHT"
+}
+
+
+-- custom function used in action callback
+-- from the iupcdaux module
+function cnv:Draw(canvas)
+ canvas:MarkSize(40)
+ canvas:Font("Courier", cd.PLAIN, 12)
+
+ i = 1
+ while (i <= 12) do
+ DrawText(canvas, 100, 35*i + 30, text_aligment_str[i], text_aligment[i])
+ i = i + 1
+ end
+end
+
+
+--tmpCanvas = cd.CreateCanvas(cd.PS, "cdalign.ps")
+--tmpCanvas:Clear()
+--cnv:Draw(tmpCanvas)
+--tmpCanvas:Kill()
+
+
+dlg:show()
+iup.MainLoop()
+
diff --git a/html/examples/cdtext.wlua b/html/examples/cdtext.wlua
new file mode 100644
index 0000000..556d02f
--- /dev/null
+++ b/html/examples/cdtext.wlua
@@ -0,0 +1,59 @@
+require("iupcdaux") -- utility module used in some samples
+
+--require"cdluacontextplus"
+--cd.UseContextPlus(1)
+
+dlg = iupcdaux.new_dialog(w, h)
+cnv = dlg[1] -- retrieve the IUP canvas
+
+function DrawTextBox(canvas, x, y, text)
+ canvas:Mark(x, y)
+ canvas:Text(x, y, text)
+ w, h = canvas:GetTextSize(text)
+ xmin = x - w/2
+ ymin = y - h/2
+ xmax = x + w/2
+ ymax = y + h/2
+ canvas:Line(xmin, ymin, xmax, ymin)
+ canvas:Line(xmin, ymin, xmin, ymax)
+ canvas:Line(xmin, ymax, xmax, ymax)
+ canvas:Line(xmax, ymin, xmax, ymax)
+end
+
+-- custom function used in action callback
+-- from the iupcdaux module
+function cnv:Draw(canvas)
+
+ -- Available in ContextPlus drivers or in IMAGERGB driver
+ -- canvas:SetAttribute("ANTIALIAS", "1")
+
+ canvas:TextAlignment(cd.CENTER)
+ canvas:MarkSize(40)
+
+ canvas:Font("Courier", cd.PLAIN, 12)
+ local aa = canvas:GetAttribute("ANTIALIAS")
+ if (aa == "1") then
+ DrawTextBox(canvas, 130, 30, "ANTIALIAS=1")
+ else
+ DrawTextBox(canvas, 130, 30, "ANTIALIAS=0")
+ end
+
+ canvas:Font("Courier", cd.ITALIC, 34)
+ DrawTextBox(canvas, 130, 160, "xxxxxppx")
+
+ canvas:Font("Times", cd.PLAIN, 12)
+ DrawTextBox(canvas, 130, 290, "taaaa")
+
+ canvas:Font("Times", cd.BOLD, 14)
+ DrawTextBox(canvas, 130, 370, "gggggggg")
+end
+
+
+--tmpCanvas = cd.CreateCanvas(cd.PS, "cdtext.ps")
+--tmpCanvas:Clear()
+--cnv:Draw(tmpCanvas)
+--tmpCanvas:Kill()
+
+
+dlg:show()
+iup.MainLoop()
diff --git a/html/examples/imagergb.wlua b/html/examples/imagergb.wlua
new file mode 100644
index 0000000..b7c6f11
--- /dev/null
+++ b/html/examples/imagergb.wlua
@@ -0,0 +1,35 @@
+require("iupcdaux") -- utility module used in some samples
+
+w = 100
+h = 100
+
+image_rgb = cd.CreateImageRGB(w, h)
+
+size = w * h
+i = 0
+while i < size do
+
+ if i < size/2 then
+ image_rgb.r[i] = 255
+ image_rgb.g[i] = 0
+ image_rgb.b[i] = 0
+ else
+ image_rgb.r[i] = 0
+ image_rgb.g[i] = 0
+ image_rgb.b[i] = 255
+ end
+
+ i = i + 1
+end
+
+dlg = iupcdaux.new_dialog(w, h)
+cnv = dlg[1] -- retrieve the IUP canvas
+
+-- custom function used in action callback
+-- from the iupcdaux module
+function cnv:Draw(canvas)
+ canvas:PutImageRectRGB(image_rgb, 0, 0, w, h, 0, 0, 0, 0)
+end
+
+dlg:show()
+iup.MainLoop()
diff --git a/html/examples/iupcdaux.lua b/html/examples/iupcdaux.lua
new file mode 100644
index 0000000..18ae23c
--- /dev/null
+++ b/html/examples/iupcdaux.lua
@@ -0,0 +1,45 @@
+require"cdlua"
+require"iuplua"
+require"iupluacd"
+
+iupcdaux = {}
+iupcdaux.count = 0
+
+-- Function to easy create a new IUP dialog with an IUP canvas,
+-- and a CD canvas pointing to that IUP canvas
+
+function iupcdaux.new_dialog(w, h)
+
+ -- defaul size
+ w = w or 300
+ h = h or 200
+
+ cnv = iup.canvas { bgcolor="255 255 255", rastersize=w.."x"..h }
+ dlg = iup.dialog { cnv; title="canvas_"..(iupcdaux.count+1) }
+
+ function cnv:map_cb()
+ canvas = cd.CreateCanvas(cd.IUP, self)
+ self.canvas = canvas -- store the CD canvas in a IUP attribute
+ end
+
+ function cnv:action()
+ canvas = self.canvas -- retrieve the CD canvas from the IUP attribute
+ canvas:Activate()
+ canvas:Clear()
+
+ if (self.Draw) then
+ self:Draw(canvas)
+ end
+ end
+
+ function dlg:close_cb()
+ cnv = self[1]
+ canvas = cnv.canvas -- retrieve the CD canvas from the IUP attribute
+ canvas:Kill()
+ self:destroy()
+ return iup.IGNORE -- because we destroy the dialog
+ end
+
+ iupcdaux.count = iupcdaux.count + 1
+ return dlg
+end
diff --git a/html/examples/iuplua_cdlua.wlua b/html/examples/iuplua_cdlua.wlua
new file mode 100644
index 0000000..5528117
--- /dev/null
+++ b/html/examples/iuplua_cdlua.wlua
@@ -0,0 +1,58 @@
+require"cdlua"
+require"iuplua"
+require"iupluacd"
+
+cnv = iup.canvas {size = "200x100"}
+
+box = iup.vbox{
+ iup.button { title="Version" },
+ cnv,
+ iup.button { title="Close" },
+ }
+
+dlg = iup.dialog{box; title="Example IUPLUA/CDLUA"}
+
+function cnv:map_cb()
+ canvas = cd.CreateCanvas(cd.IUP, self)
+ self.canvas = canvas -- store the CD canvas in a IUP attribute
+end
+
+function dlg:close_cb()
+ cnv = self[1][2]
+ canvas = cnv.canvas -- retrieve the CD canvas from the IUP attribute
+ canvas:Kill()
+ self:destroy()
+ return iup.IGNORE -- because we destroy the dialog
+end
+
+bt_version = dlg[1][1]
+function bt_version:action()
+ iup.Message("Version", "CD Version: " .. cd.Version() .. "\nIUP Version: " .. iup.Version() .. "\n" .. _VERSION)
+end
+
+bt_close = dlg[1][3]
+function bt_close:action()
+ return iup.CLOSE
+end
+
+function cnv:action()
+ canvas = self.canvas -- retrieve the CD canvas from the IUP attribute
+
+ canvas:Activate()
+ canvas:Clear()
+ canvas:Foreground (cd.RED)
+ canvas:Box (10, 55, 10, 55)
+ canvas:Foreground(cd.EncodeColor(255, 32, 140))
+ canvas:Line(0, 0, 300, 100)
+end
+
+function cnv:button_cb(b, e, x, y, r)
+ print ("Button: " .. "Button="..tostring(b).." Pressed="..tostring(e).." X="..tostring(x).." Y="..tostring(y) )
+end
+
+function cnv:resize_cb(w, h)
+ print("Resize: Width="..w.." Height="..h)
+end
+
+dlg:show()
+iup.MainLoop()
diff --git a/html/examples/rubberband.wlua b/html/examples/rubberband.wlua
new file mode 100644
index 0000000..595373a
--- /dev/null
+++ b/html/examples/rubberband.wlua
@@ -0,0 +1,54 @@
+require("iupcdaux") -- utility module used in some samples
+
+dlg = iupcdaux.new_dialog(w, h)
+cnv = dlg[1] -- retrieve the IUP canvas
+
+
+function cnv:button_cb(button,pressed,x,y,r)
+ canvas = self.canvas -- retrieve the CD canvas from the IUP attribute
+
+ -- start drag if button1 is pressed
+ if button ==iup.BUTTON1 and pressed == 1 then
+ y = canvas:UpdateYAxis(y)
+
+ -- prepare for XOR
+ canvas:Foreground(cd.WHITE)
+ canvas:WriteMode(cd.XOR)
+
+ xstart = x
+ ystart = y
+ drag = 1
+ first = 1
+ else
+ if (drag == 1) then
+ drag = 0
+ canvas:Rect(xstart,xend,ystart,yend)
+ end
+ end
+end
+
+
+function cnv:motion_cb(x,y,r)
+ canvas = self.canvas -- retrieve the CD canvas from the IUP attribute
+
+ if (drag == 1) then
+ y = canvas:UpdateYAxis(y)
+
+ if (first == 1) then
+ first = 0
+ else
+ canvas:Rect(xstart,xend,ystart,yend)
+ end
+
+ canvas:Rect(xstart,x,ystart,y)
+
+ xend = x
+ yend = y
+ end
+end
+
+first = 1
+drag = 0
+
+dlg:show()
+iup.MainLoop()
diff --git a/include/cd.h b/include/cd.h
index 99323d2..9ab099b 100644
--- a/include/cd.h
+++ b/include/cd.h
@@ -20,7 +20,7 @@ extern "C" {
#define CD_DESCRIPTION "A 2D Graphics Library"
#define CD_COPYRIGHT "Copyright (C) 1994-2009 Tecgraf, PUC-Rio."
#define CD_VERSION "5.2"
-#define CD_VERSION_DATE "2009/06/24"
+#define CD_VERSION_DATE "2009/06/26"
#define CD_VERSION_NUMBER 502000
typedef struct _cdContext cdContext;