ruby-iup 0.0.1-i386-mswin32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/doc/README +10 -0
- data/doc/build_install.txt +77 -0
- data/examples/README +16 -0
- data/examples/ctrl/cbox.rb +221 -0
- data/examples/ctrl/checkboard.rb +33 -0
- data/examples/ctrl/degrade.rb +73 -0
- data/examples/ctrl/example1.rb +53 -0
- data/examples/ctrl/example2.rb +39 -0
- data/examples/ctrl/iupcolorbar.rb +95 -0
- data/examples/ctrl/iupcolorbrowser.rb +45 -0
- data/examples/ctrl/iupdial.rb +117 -0
- data/examples/ctrl/iupgauge.rb +242 -0
- data/examples/ctrl/iupgetcolor.rb +8 -0
- data/examples/ctrl/iupgetparam.rb +62 -0
- data/examples/ctrl/iupglcanvas.rb +172 -0
- data/examples/ctrl/iupmask.rb +15 -0
- data/examples/ctrl/iupmatrix.rb +39 -0
- data/examples/ctrl/iupplot2.rb +603 -0
- data/examples/ctrl/iuptabs.rb +22 -0
- data/examples/ctrl/iuptree.rb +190 -0
- data/examples/ctrl/iupval.rb +71 -0
- data/examples/ctrl/numbering.rb +46 -0
- data/examples/ctrl/sample.rb +166 -0
- data/examples/dlg/iupalarm.rb +14 -0
- data/examples/dlg/iupfiledlg.rb +19 -0
- data/examples/dlg/iupgetfile.rb +19 -0
- data/examples/dlg/iuplistdialog.rb +26 -0
- data/examples/dlg/iupmessage.rb +5 -0
- data/examples/dlg/iupscanf.rb +17 -0
- data/examples/elem/iupbutton.rb +197 -0
- data/examples/elem/iupcanvas.rb +27 -0
- data/examples/elem/iupcanvas2.rb +113 -0
- data/examples/elem/iupcanvas3.rb +62 -0
- data/examples/elem/iupdialog.rb +71 -0
- data/examples/elem/iupdialog2.rb +25 -0
- data/examples/elem/iupfill.rb +51 -0
- data/examples/elem/iupframe.rb +25 -0
- data/examples/elem/iuphbox.rb +68 -0
- data/examples/elem/iupimage.rb +113 -0
- data/examples/elem/iupitem.rb +60 -0
- data/examples/elem/iuplabel.rb +57 -0
- data/examples/elem/iuplist.rb +41 -0
- data/examples/elem/iuplist2.rb +125 -0
- data/examples/elem/iupmenu.rb +32 -0
- data/examples/elem/iupmultiline.rb +24 -0
- data/examples/elem/iupmultiline2.rb +156 -0
- data/examples/elem/iupradio.rb +32 -0
- data/examples/elem/iupseparator.rb +81 -0
- data/examples/elem/iupsubmenu.rb +85 -0
- data/examples/elem/iuptext.rb +61 -0
- data/examples/elem/iuptimer.rb +36 -0
- data/examples/elem/iuptoggle.rb +110 -0
- data/examples/elem/iupvbox.rb +87 -0
- data/examples/elem/iupzbox.rb +60 -0
- data/examples/elem/mdisample.rb +376 -0
- data/examples/elem/progressbar.rb +294 -0
- data/examples/elem/scrollbar.rb +66 -0
- data/examples/elem/tray.rb +90 -0
- data/examples/func/iupgetattribute.rb +32 -0
- data/examples/func/iupidle.rb +48 -0
- data/ext/extconf.rb +27 -0
- data/ext/iup-win32/cd.dll +0 -0
- data/ext/iup-win32/cd.lib +0 -0
- data/ext/iup-win32/cdcontextplus.dll +0 -0
- data/ext/iup-win32/cdcontextplus.lib +0 -0
- data/ext/iup-win32/cdlua51.lib +0 -0
- data/ext/iup-win32/cdluacontextplus51.lib +0 -0
- data/ext/iup-win32/cdluaim51.lib +0 -0
- data/ext/iup-win32/cdluapdf51.lib +0 -0
- data/ext/iup-win32/cdpdf.dll +0 -0
- data/ext/iup-win32/cdpdf.lib +0 -0
- data/ext/iup-win32/freetype6.dll +0 -0
- data/ext/iup-win32/freetype6.lib +0 -0
- data/ext/iup-win32/im.dll +0 -0
- data/ext/iup-win32/im_avi.dll +0 -0
- data/ext/iup-win32/im_capture.dll +0 -0
- data/ext/iup-win32/im_ecw.dll +0 -0
- data/ext/iup-win32/im_fftw.dll +0 -0
- data/ext/iup-win32/im_jp2.dll +0 -0
- data/ext/iup-win32/im_process.dll +0 -0
- data/ext/iup-win32/im_wmv.dll +0 -0
- data/ext/iup-win32/iup.dll +0 -0
- data/ext/iup-win32/iup.lib +0 -0
- data/ext/iup-win32/iup_pplot.dll +0 -0
- data/ext/iup-win32/iup_pplot.lib +0 -0
- data/ext/iup-win32/iupcd.dll +0 -0
- data/ext/iup-win32/iupcd.lib +0 -0
- data/ext/iup-win32/iupcontrols.dll +0 -0
- data/ext/iup-win32/iupcontrols.lib +0 -0
- data/ext/iup-win32/iupgl.dll +0 -0
- data/ext/iup-win32/iupgl.lib +0 -0
- data/ext/iup-win32/iupim.dll +0 -0
- data/ext/iup-win32/iupim.lib +0 -0
- data/ext/iup-win32/iupimglib.dll +0 -0
- data/ext/iup-win32/iupimglib.lib +0 -0
- data/ext/iup-win32/iuplua51.lib +0 -0
- data/ext/iup-win32/iuplua_pplot51.lib +0 -0
- data/ext/iup-win32/iupluacd51.lib +0 -0
- data/ext/iup-win32/iupluacontrols51.lib +0 -0
- data/ext/iup-win32/iupluagl51.lib +0 -0
- data/ext/iup-win32/iupluaim51.lib +0 -0
- data/ext/iup-win32/iupluaimglib51.lib +0 -0
- data/ext/iup-win32/iupluaole51.lib +0 -0
- data/ext/iup-win32/iupole.dll +0 -0
- data/ext/iup-win32/iupole.lib +0 -0
- data/ext/iup-win32/iupstub.lib +0 -0
- data/ext/iup-win32/pdflib.dll +0 -0
- data/ext/iup-win32/pdflib.lib +0 -0
- data/ext/iup.c +1261 -0
- data/ext/mkrf_conf.rb +72 -0
- data/ext/rb_cd.h +1525 -0
- data/ext/rb_iup.h +2446 -0
- data/ext/rb_iup_pplot.h +129 -0
- data/ext/rb_iupcb.h +13 -0
- data/ext/rb_iupcbox.h +40 -0
- data/ext/rb_iupcells.h +15 -0
- data/ext/rb_iupcolorbar.h +17 -0
- data/ext/rb_iupcompat.h +237 -0
- data/ext/rb_iupcontrols.h +28 -0
- data/ext/rb_iupdef.h +3 -0
- data/ext/rb_iupdial.h +24 -0
- data/ext/rb_iupgauge.h +15 -0
- data/ext/rb_iupgc.h +18 -0
- data/ext/rb_iupgetparam.h +72 -0
- data/ext/rb_iupgl.h +58 -0
- data/ext/rb_iupim.h +25 -0
- data/ext/rb_iupmask.h +189 -0
- data/ext/rb_iupmatrix.h +80 -0
- data/ext/rb_iupole.h +24 -0
- data/ext/rb_iupsbox.h +23 -0
- data/ext/rb_iupspeech.h +25 -0
- data/ext/rb_iupspin.h +29 -0
- data/ext/rb_iuptabs.h +29 -0
- data/ext/rb_iuptree.h +94 -0
- data/ext/rb_iupval.h +24 -0
- data/lib/README +1 -0
- data/lib/iup.so +0 -0
- metadata +187 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'iup'
|
3
|
+
|
4
|
+
case(Iup.Alarm("IupAlarm Example","File not saved! Save it now?", "Yes", "No", "Cancel"))
|
5
|
+
when 1
|
6
|
+
Iup.Message("Save file", "File saved sucessfully - leaving program")
|
7
|
+
when 2
|
8
|
+
Iup.Message("Save file", "File not saved - leaving program anyway")
|
9
|
+
when 3
|
10
|
+
Iup.Message("Save file", "Operation canceled")
|
11
|
+
end
|
12
|
+
|
13
|
+
Iup.MainLoop()
|
14
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'iup'
|
3
|
+
|
4
|
+
|
5
|
+
filedlg = Iup.FileDlg(:dialogtype=>"SAVE",:title=>"File Save",:filter=>"*.jpg",:filterinfo=>"JPEG Files")
|
6
|
+
|
7
|
+
filedlg.Popup(Iup::CENTER, Iup::CENTER)
|
8
|
+
|
9
|
+
case(filedlg.status)
|
10
|
+
when '1'
|
11
|
+
Iup.Message("New file",filedlg.value)
|
12
|
+
when '0'
|
13
|
+
Iup.Message("File already exists",filedlg.value)
|
14
|
+
when '-1'
|
15
|
+
Iup.Message("IupFileDlg","Operation Canceled")
|
16
|
+
end
|
17
|
+
|
18
|
+
filedlg.Destroy()
|
19
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'iup'
|
3
|
+
|
4
|
+
file = "./*.txt"
|
5
|
+
file,err = Iup.GetFile(file)
|
6
|
+
case(err)
|
7
|
+
when 1
|
8
|
+
Iup.Message("New file",file)
|
9
|
+
when 0
|
10
|
+
Iup.Message("File already exists",file)
|
11
|
+
when -1
|
12
|
+
Iup.Message("IupFileDlg","Operation canceled")
|
13
|
+
when -2
|
14
|
+
Iup.Message("IupFileDlg","Allocation error")
|
15
|
+
when -3
|
16
|
+
Iup.Message("IupFileDlg","Invalid parameter")
|
17
|
+
end
|
18
|
+
|
19
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'iup'
|
3
|
+
|
4
|
+
marks = [0,0,0,0,1,1,0,0]
|
5
|
+
options = ["Blue","Red","Green" ,"Yellow","Black","White","Gray","Brown"]
|
6
|
+
size = options.size
|
7
|
+
|
8
|
+
marks,error = Iup.ListDialog(2,"Color Selection",size,options,0,16,5,marks)
|
9
|
+
|
10
|
+
if(error == -1)
|
11
|
+
Iup.Message("IupListDialog","Operation canceled");
|
12
|
+
else
|
13
|
+
selection = ""
|
14
|
+
|
15
|
+
marks.each_index {|i|
|
16
|
+
selection += options[i]+"\n" if(marks[i]==1)
|
17
|
+
}
|
18
|
+
|
19
|
+
if(selection!="")
|
20
|
+
Iup.Message("Options selected",selection)
|
21
|
+
else
|
22
|
+
Iup.Message("IupListDialog","No option selected")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'iup'
|
3
|
+
|
4
|
+
text = "This is a vector of characters"
|
5
|
+
real = 0.0012
|
6
|
+
integer = 12
|
7
|
+
fmt = "Data entering example\n" +
|
8
|
+
"text = %300.40%s\n" +
|
9
|
+
"real = %20.10%g\n" +
|
10
|
+
"integer = %20.10%d\n"
|
11
|
+
text,real,integer = Iup.Scanf(fmt,text,real,integer)
|
12
|
+
if text.nil? then
|
13
|
+
Iup.Message("IupScanf","Operation canceled")
|
14
|
+
else
|
15
|
+
string = "Text: #{text}\nReal: #{real}\nInteger: #{integer}\n"
|
16
|
+
Iup.Message("IupScanf",string)
|
17
|
+
end
|
@@ -0,0 +1,197 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
#*****************************************************************************
|
3
|
+
#* Iup.Button example *
|
4
|
+
#* Author : Claudio Coutinho de Biasi *
|
5
|
+
#* Description : Creates four buttons. The first uses images, the second *
|
6
|
+
#* turns the first on and off, the third exits the *
|
7
|
+
#* application and the last does nothing *
|
8
|
+
#*****************************************************************************/
|
9
|
+
require 'iup'
|
10
|
+
|
11
|
+
#* Defines released button's image */
|
12
|
+
|
13
|
+
pixmap_release = [
|
14
|
+
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
15
|
+
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
|
16
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
17
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
18
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
19
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
20
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
21
|
+
1,1,3,3,3,3,3,3,4,4,3,3,3,3,2,2,
|
22
|
+
1,1,3,3,3,3,3,4,4,4,4,3,3,3,2,2,
|
23
|
+
1,1,3,3,3,3,3,4,4,4,4,3,3,3,2,2,
|
24
|
+
1,1,3,3,3,3,3,3,4,4,3,3,3,3,2,2,
|
25
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
26
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
27
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
28
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
29
|
+
1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
|
30
|
+
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
31
|
+
]
|
32
|
+
|
33
|
+
#* Defines pressed button's image */
|
34
|
+
pixmap_press = [
|
35
|
+
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
36
|
+
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
|
37
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
38
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
39
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
40
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
41
|
+
1,1,3,3,3,3,3,4,4,3,3,3,3,3,2,2,
|
42
|
+
1,1,3,3,3,3,4,4,4,4,3,3,3,3,2,2,
|
43
|
+
1,1,3,3,3,3,4,4,4,4,3,3,3,3,2,2,
|
44
|
+
1,1,3,3,3,3,3,4,4,3,3,3,3,3,2,2,
|
45
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
46
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
47
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
48
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
49
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
50
|
+
1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
|
51
|
+
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
52
|
+
]
|
53
|
+
|
54
|
+
#* Defines inactive button's image */
|
55
|
+
pixmap_inactive = [
|
56
|
+
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
57
|
+
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
|
58
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
59
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
60
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
61
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
62
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
63
|
+
1,1,3,3,3,3,3,3,4,4,3,3,3,3,2,2,
|
64
|
+
1,1,3,3,3,3,3,4,4,4,4,3,3,3,2,2,
|
65
|
+
1,1,3,3,3,3,3,4,4,4,4,3,3,3,2,2,
|
66
|
+
1,1,3,3,3,3,3,3,4,4,3,3,3,3,2,2,
|
67
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
68
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
69
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
70
|
+
1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
|
71
|
+
1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
|
72
|
+
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
73
|
+
]
|
74
|
+
|
75
|
+
# Creates a text */
|
76
|
+
text = Iup.Text(:readonly=>"YES")
|
77
|
+
|
78
|
+
# Defines released button's image size */
|
79
|
+
img_release = Iup.Image(16, 16, pixmap_release)
|
80
|
+
|
81
|
+
# Defines released button's image colors */
|
82
|
+
img_release["1"] = "215 215 215"
|
83
|
+
img_release["2"] = "40 40 40"
|
84
|
+
img_release["3"] = "30 50 210"
|
85
|
+
img_release["4"] = "240 0 0"
|
86
|
+
|
87
|
+
# Associates img_release with handle "img_release" */
|
88
|
+
Iup.SetHandle( "img_release", img_release )
|
89
|
+
|
90
|
+
# Defines pressed button's image size */
|
91
|
+
img_press = Iup.Image( 16, 16, pixmap_press )
|
92
|
+
|
93
|
+
# Defines pressed button's image colors */
|
94
|
+
img_press["1"] = "40 40 40"
|
95
|
+
img_press["2"] = "215 215 215"
|
96
|
+
img_press["3"] = "0 20 180"
|
97
|
+
img_press["4"] = "210 0 0"
|
98
|
+
|
99
|
+
# Associates img_press with handle "img_press" */
|
100
|
+
Iup.SetHandle( "img_press", img_press )
|
101
|
+
|
102
|
+
# Defines inactive button's image size */
|
103
|
+
img_inactive = Iup.Image( 16, 16, pixmap_inactive )
|
104
|
+
|
105
|
+
# Defines inactive button's image colors */
|
106
|
+
img_inactive["1"] = "215 215 215"
|
107
|
+
img_inactive["2"] = "40 40 40"
|
108
|
+
img_inactive["3"] = "100 100 100"
|
109
|
+
img_inactive["4"] = "200 200 200"
|
110
|
+
|
111
|
+
# Associates img_inactive with handle "img_inactive" */
|
112
|
+
Iup.SetHandle("img_inactive", img_inactive )
|
113
|
+
|
114
|
+
# Creates a button */
|
115
|
+
btn_image = Iup.Button(:title=>"Button with image",:image=>"img_release",:impress=>"img_press",:iminactive=>"img_inactive")
|
116
|
+
|
117
|
+
# Creates a button */
|
118
|
+
btn_big = Iup.Button(:title=>"Big useless button",:size=>"EIGHTHxEIGHTH")
|
119
|
+
|
120
|
+
# Creates a button entitled Exit associated with action exit_act */
|
121
|
+
btn_exit = Iup.Button("Exit")
|
122
|
+
|
123
|
+
# Creates a button entitled on/off associated with action onoff_act */
|
124
|
+
btn_on_off = Iup.Button("on/off")
|
125
|
+
|
126
|
+
# Creates dialog with the four buttons and the text*/
|
127
|
+
dlg = Iup.Dialog(
|
128
|
+
Iup.Vbox([
|
129
|
+
Iup.Hbox([
|
130
|
+
Iup.Fill(),
|
131
|
+
btn_image,
|
132
|
+
btn_on_off,
|
133
|
+
btn_exit,
|
134
|
+
Iup.Fill()]
|
135
|
+
),
|
136
|
+
text,
|
137
|
+
btn_big]
|
138
|
+
),
|
139
|
+
:expand=>"YES",:title=>"IupButton",:resize=>"NO",
|
140
|
+
:menubox=>"NO",:maxbox=>"NO",:minbox=>"NO")
|
141
|
+
|
142
|
+
|
143
|
+
btn_on_off_cb = lambda do |ih|
|
144
|
+
# If the button with with image is active...*/
|
145
|
+
if(btn_image.active=="YES")
|
146
|
+
# Deactivates the button with image */
|
147
|
+
btn_image.active = "NO"
|
148
|
+
# else it is inactive */
|
149
|
+
else
|
150
|
+
# Activates the button with image */
|
151
|
+
btn_image.active = "YES"
|
152
|
+
end
|
153
|
+
|
154
|
+
# Executed function sucessfully */
|
155
|
+
Iup::DEFAULT
|
156
|
+
end
|
157
|
+
|
158
|
+
btn_image_button_cb = lambda do |ih,b,e,x,y,status|
|
159
|
+
# If the left button changed its state... */
|
160
|
+
if( b == Iup::BUTTON1 )
|
161
|
+
# If the button was pressed... */
|
162
|
+
if(e == 1)
|
163
|
+
# Sets text's value */
|
164
|
+
text.value = "Red button pressed"
|
165
|
+
# else the button was released */
|
166
|
+
else
|
167
|
+
# Sets text's value */
|
168
|
+
text.value = "Red button released"
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
# Executed function sucessfully */
|
173
|
+
Iup::DEFAULT
|
174
|
+
end
|
175
|
+
|
176
|
+
btn_exit_cb = lambda do |ih|
|
177
|
+
# Exits the program */
|
178
|
+
Iup::CLOSE
|
179
|
+
end
|
180
|
+
|
181
|
+
|
182
|
+
# Registers callbacks */
|
183
|
+
btn_exit.action = btn_exit_cb
|
184
|
+
btn_on_off.action = btn_on_off_cb
|
185
|
+
btn_image.button_cb = btn_image_button_cb
|
186
|
+
|
187
|
+
# Shows dialog on the center of the screen */
|
188
|
+
dlg.ShowXY(Iup::CENTER, Iup::CENTER )
|
189
|
+
|
190
|
+
# Initializes IUP main loop */
|
191
|
+
Iup.MainLoop()
|
192
|
+
|
193
|
+
dlg.Destroy()
|
194
|
+
img_release.Destroy()
|
195
|
+
img_inactive.Destroy()
|
196
|
+
img_press.Destroy()
|
197
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'iup'
|
3
|
+
|
4
|
+
|
5
|
+
cdcanvas = nil
|
6
|
+
|
7
|
+
repaint_cb = lambda do |ih,x,y|
|
8
|
+
cdcanvas.CanvasActivate()
|
9
|
+
cdcanvas.CanvasBackground(Cd::BLACK)
|
10
|
+
cdcanvas.CanvasClear()
|
11
|
+
cdcanvas.CanvasForeground(Cd::BLUE)
|
12
|
+
cdcanvas.CanvasBox(0, 100, 0, 100)
|
13
|
+
Iup::DEFAULT
|
14
|
+
end
|
15
|
+
|
16
|
+
cnvs = Iup.Canvas(:action=>repaint_cb,:size=>"300x100")
|
17
|
+
dlg = Iup.Dialog(Iup.Frame(cnvs),:title=>"IupCanvas + Canvas Draw" )
|
18
|
+
dlg.Map
|
19
|
+
|
20
|
+
cdcanvas = Cd.CreateCanvas( Cd.CD_IUP, cnvs )
|
21
|
+
|
22
|
+
# Shows dialog on the center of the screen */
|
23
|
+
dlg.ShowXY(Iup::CENTER, Iup::CENTER )
|
24
|
+
|
25
|
+
# Initializes IUP main loop */
|
26
|
+
Iup.MainLoop()
|
27
|
+
dlg.Destroy()
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'iup'
|
3
|
+
|
4
|
+
|
5
|
+
image = []
|
6
|
+
for x in 0...640
|
7
|
+
image[x] = []
|
8
|
+
for y in 0...400
|
9
|
+
image[x][y]=0
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
label = Iup.Label("IupCanvas")
|
14
|
+
|
15
|
+
iupcanvas = Iup.Canvas()
|
16
|
+
iupcanvas.attr = "CURSOR=CROSS, RASTERSIZE=320x200, EXPAND=NO, SCROLLBAR=YES, DX=0.5, DY=0.5"
|
17
|
+
|
18
|
+
repaint_cb = lambda do |ih,x,y|
|
19
|
+
sx = ih.posx.to_f
|
20
|
+
sy = -ih.posy.to_f
|
21
|
+
|
22
|
+
cdcanvas = Cd.ActiveCanvas()
|
23
|
+
return Iup::DEFAULT if cdcanvas == nil
|
24
|
+
|
25
|
+
cdcanvas.CanvasClear()
|
26
|
+
|
27
|
+
for x in 0...320
|
28
|
+
for y in 0...200
|
29
|
+
cdcanvas.CanvasMark(x,y) if(image[(320.0*sx).to_i+x][(200.0*sy).to_i+y]!=0)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
Iup::DEFAULT
|
33
|
+
end
|
34
|
+
|
35
|
+
button_cb = lambda do |ih, botao, estado, x, y,status|
|
36
|
+
sx = ih.posx.to_f
|
37
|
+
sy = -ih.posy.to_f
|
38
|
+
|
39
|
+
cdcanvas = Cd.ActiveCanvas()
|
40
|
+
y = cdcanvas.CanvasUpdateYAxis(y)
|
41
|
+
if(botao == Iup::BUTTON1 && estado!=0)
|
42
|
+
cdcanvas.CanvasMark(x,y)
|
43
|
+
image[(320.0*sx).to_i+x][(200.0*sy).to_i+y] = 1
|
44
|
+
end
|
45
|
+
|
46
|
+
Iup::DEFAULT
|
47
|
+
end
|
48
|
+
|
49
|
+
motion_cb = lambda do |ih, x, y,status|
|
50
|
+
sx = ih.posx.to_f
|
51
|
+
|
52
|
+
sy = -ih.posy.to_f
|
53
|
+
|
54
|
+
buffer = "(#{(320.0*sx).to_i+x}, #{(200.0*sy).to_i+y})"
|
55
|
+
|
56
|
+
label.title = buffer
|
57
|
+
|
58
|
+
Iup::DEFAULT
|
59
|
+
end
|
60
|
+
|
61
|
+
scroll_cb = lambda do |ih,op,posx,posy|
|
62
|
+
repaint_cb.call(ih,0.0,0.0)
|
63
|
+
|
64
|
+
Iup::DEFAULT
|
65
|
+
end
|
66
|
+
|
67
|
+
enter_cb = lambda do |ih|
|
68
|
+
Cd.Background(Cd::WHITE)
|
69
|
+
repaint_cb.call(ih,0.0,0.0)
|
70
|
+
|
71
|
+
Iup::DEFAULT
|
72
|
+
end
|
73
|
+
|
74
|
+
leave_cb = lambda do |ih|
|
75
|
+
Cd.Background(Cd::GRAY)
|
76
|
+
repaint_cb.call(ih,0.0,0.0)
|
77
|
+
label = Iup.GetHandle("label")
|
78
|
+
label.title = "IupCanvas"
|
79
|
+
|
80
|
+
Iup::DEFAULT
|
81
|
+
end
|
82
|
+
|
83
|
+
iupcanvas.action = repaint_cb
|
84
|
+
iupcanvas.button_cb = button_cb
|
85
|
+
iupcanvas.scroll_cb = scroll_cb
|
86
|
+
iupcanvas.motion_cb = motion_cb
|
87
|
+
iupcanvas.enterwindow_cb = enter_cb
|
88
|
+
iupcanvas.leavewindow_cb = leave_cb
|
89
|
+
|
90
|
+
dlg = Iup.Dialog(Iup.Vbox([iupcanvas,Iup.Hbox([Iup.Fill(), label, Iup.Fill()])]))
|
91
|
+
dlg.attr = "TITLE=IupCanvas, RESIZE=NO, MAXBOX=NO"
|
92
|
+
|
93
|
+
dlg.ShowXY(Iup::CENTER,Iup::CENTER)
|
94
|
+
|
95
|
+
cdcanvas = Cd.CreateCanvas(Cd.CD_IUP, iupcanvas)
|
96
|
+
|
97
|
+
if(cdcanvas==nil)
|
98
|
+
Iup.Message("IupCanvas","Error creating canvas")
|
99
|
+
dlg.Destroy()
|
100
|
+
exit
|
101
|
+
end
|
102
|
+
|
103
|
+
if(cdcanvas.Activate() == Cd::ERROR)
|
104
|
+
Iup.Message("IupCanvas","Error creating canvas")
|
105
|
+
dlg.Destroy()
|
106
|
+
exit
|
107
|
+
end
|
108
|
+
|
109
|
+
cdcanvas.CanvasClear()
|
110
|
+
|
111
|
+
# Initializes IUP main loop */
|
112
|
+
Iup.MainLoop()
|
113
|
+
dlg.Destroy()
|