ruby-iup 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +3 -0
- data/MANIFEST +8 -0
- data/MIT-LICENSE +18 -0
- data/README +12 -0
- data/Rakefile +68 -80
- data/doc/build_install.txt +9 -12
- data/examples/ctrl/cbox.rb +14 -15
- data/examples/ctrl/checkboard.rb +1 -1
- data/examples/ctrl/example1.rb +53 -53
- data/examples/ctrl/example2.rb +39 -39
- data/examples/ctrl/iupcolorbar.rb +95 -95
- data/examples/ctrl/iupcolorbrowser.rb +45 -45
- data/examples/ctrl/iupdial.rb +117 -117
- data/examples/ctrl/iupgetcolor.rb +7 -7
- data/examples/ctrl/iupgetparam.rb +62 -62
- data/examples/ctrl/iupglcanvas.rb +172 -172
- data/examples/ctrl/iupmask.rb +1 -3
- data/examples/ctrl/iupmatrix.rb +39 -39
- data/examples/ctrl/iupplot2.rb +2 -1
- data/examples/ctrl/iuptabs.rb +22 -22
- data/examples/ctrl/iuptree.rb +190 -190
- data/examples/ctrl/iupval.rb +71 -71
- data/examples/ctrl/numbering.rb +46 -46
- data/examples/ctrl/sample.rb +166 -166
- data/examples/dlg/iupfiledlg.rb +19 -19
- data/examples/dlg/iupgetfile.rb +19 -19
- data/examples/dlg/iuplistdialog.rb +26 -26
- data/examples/dlg/iupmessage.rb +5 -5
- data/examples/dlg/iupscanf.rb +17 -17
- data/examples/elem/iupdialog2.rb +25 -25
- data/examples/elem/iupfill.rb +51 -51
- data/examples/elem/iupframe.rb +25 -25
- data/examples/elem/iuphbox.rb +68 -68
- data/examples/elem/iupimage.rb +113 -113
- data/examples/elem/iupitem.rb +60 -60
- data/examples/elem/iuplabel.rb +57 -57
- data/examples/elem/iuplist.rb +41 -41
- data/examples/elem/iuplist2.rb +125 -125
- data/examples/elem/iupmenu.rb +32 -32
- data/examples/elem/iupmultiline.rb +24 -24
- data/examples/elem/iupmultiline2.rb +156 -156
- data/examples/elem/iupradio.rb +32 -32
- data/examples/elem/iupseparator.rb +81 -81
- data/examples/elem/iupsubmenu.rb +85 -85
- data/examples/elem/iuptext.rb +61 -61
- data/examples/elem/iuptimer.rb +36 -36
- data/examples/elem/iuptoggle.rb +110 -110
- data/examples/elem/iupvbox.rb +87 -87
- data/examples/elem/iupzbox.rb +60 -60
- data/examples/elem/mdisample.rb +377 -376
- data/examples/elem/scrollbar.rb +66 -66
- data/examples/elem/tray.rb +90 -90
- data/examples/func/iupgetattribute.rb +32 -32
- data/examples/func/iupidle.rb +48 -48
- data/ext/extconf.rb +62 -27
- data/ext/iup-linux/include/cd.h +9 -5
- data/ext/iup-linux/include/cd_private.h +13 -6
- data/ext/iup-linux/include/cdsvg.h +22 -0
- data/ext/iup-linux/include/im.h +287 -282
- data/ext/iup-linux/include/im_attrib.h +120 -116
- data/ext/iup-linux/include/im_attrib_flat.h +39 -39
- data/ext/iup-linux/include/im_binfile.h +224 -214
- data/ext/iup-linux/include/im_capture.h +365 -365
- data/ext/iup-linux/include/im_color.h +465 -465
- data/ext/iup-linux/include/im_colorhsi.h +56 -61
- data/ext/iup-linux/include/im_complex.h +180 -160
- data/ext/iup-linux/include/im_convert.h +142 -127
- data/ext/iup-linux/include/im_counter.h +69 -69
- data/ext/iup-linux/include/im_dib.h +195 -195
- data/ext/iup-linux/include/im_file.h +115 -111
- data/ext/iup-linux/include/im_format.h +97 -79
- data/ext/iup-linux/include/im_format_all.h +575 -576
- data/ext/iup-linux/include/im_format_avi.h +88 -87
- data/ext/iup-linux/include/im_format_ecw.h +93 -93
- data/ext/iup-linux/include/im_format_jp2.h +79 -78
- data/ext/iup-linux/include/im_format_raw.h +74 -64
- data/ext/iup-linux/include/im_format_wmv.h +101 -100
- data/ext/iup-linux/include/im_image.h +425 -403
- data/ext/iup-linux/include/im_kernel.h +315 -315
- data/ext/iup-linux/include/im_lib.h +191 -191
- data/ext/iup-linux/include/im_math.h +368 -368
- data/ext/iup-linux/include/im_math_op.h +214 -219
- data/ext/iup-linux/include/im_palette.h +172 -172
- data/ext/iup-linux/include/im_plus.h +73 -73
- data/ext/iup-linux/include/im_process.h +36 -35
- data/ext/iup-linux/include/im_process_ana.h +222 -221
- data/ext/iup-linux/include/im_process_glo.h +170 -170
- data/ext/iup-linux/include/im_process_loc.h +608 -577
- data/ext/iup-linux/include/im_process_pon.h +734 -712
- data/ext/iup-linux/include/im_raw.h +34 -34
- data/ext/iup-linux/include/im_util.h +277 -277
- data/ext/iup-linux/include/imlua.h +75 -83
- data/ext/iup-linux/include/iup.h +86 -40
- data/ext/iup-linux/include/iupcb.h +1 -25
- data/ext/iup-linux/include/iupcbox.h +1 -0
- data/ext/iup-linux/include/iupcbs.h +1 -1
- data/ext/iup-linux/include/iupcells.h +1 -130
- data/ext/iup-linux/include/iupcolorbar.h +1 -126
- data/ext/iup-linux/include/iupcontrols.h +26 -16
- data/ext/iup-linux/include/iupdef.h +205 -0
- data/ext/iup-linux/include/iupdial.h +1 -63
- data/ext/iup-linux/include/iupgauge.h +1 -57
- data/ext/iup-linux/include/iupgc.h +1 -0
- data/ext/iup-linux/include/iupgetparam.h +1 -27
- data/ext/iup-linux/include/iupgl.h +2 -7
- data/ext/iup-linux/include/iupim.h +7 -1
- data/ext/iup-linux/include/iupkey.h +4 -4
- data/ext/iup-linux/include/iupmask.h +2 -1
- data/ext/iup-linux/include/iupmatrix.h +1 -63
- data/ext/iup-linux/include/iupsbox.h +1 -0
- data/ext/iup-linux/include/iupspin.h +1 -21
- data/ext/iup-linux/include/iuptabs.h +1 -75
- data/ext/iup-linux/include/iuptree.h +1 -93
- data/ext/iup-linux/include/iupval.h +1 -46
- data/ext/iup-linux/include/old_im.h +59 -59
- data/ext/iup-linux/include/wd.h +5 -0
- data/ext/iup-linux/libcd.a +0 -0
- data/ext/iup-linux/libcdcontextplus.a +0 -0
- data/ext/iup-linux/libcdgdk.a +0 -0
- data/ext/iup-linux/libcdpdf.a +0 -0
- data/ext/iup-linux/libfreetype.a +0 -0
- data/ext/iup-linux/libim.a +0 -0
- data/ext/iup-linux/libim_fftw.a +0 -0
- data/ext/iup-linux/libim_jp2.a +0 -0
- data/ext/iup-linux/libim_process.a +0 -0
- data/ext/iup-linux/libiup.a +0 -0
- data/ext/iup-linux/libiup_pplot.a +0 -0
- data/ext/iup-linux/libiupcd.a +0 -0
- data/ext/iup-linux/libiupcontrols.a +0 -0
- data/ext/iup-linux/libiupgl.a +0 -0
- data/ext/iup-linux/libiupim.a +0 -0
- data/ext/iup-linux/libiupimglib.a +0 -0
- data/ext/iup-linux/libiupmot.a +0 -0
- data/ext/iup-linux/libpdflib.a +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cd.h +9 -5
- data/ext/{iup-win32 → iup-mingw32}/include/cd_canvas.hpp +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cd_old.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cd_private.h +13 -6
- data/ext/{iup-win32 → iup-mingw32}/include/cdcgm.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdclipbd.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cddbuf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cddebug.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cddgn.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cddxf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdemf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdgdiplus.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdimage.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdirgb.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdiup.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdlua.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdlua3_private.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdlua5_private.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdluaim.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdluaiup.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdluapdf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdmf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdmf_private.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdnative.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdpdf.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdpicture.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdprint.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdps.h +0 -0
- data/ext/iup-mingw32/include/cdsvg.h +22 -0
- data/ext/{iup-win32 → iup-mingw32}/include/cdwmf.h +0 -0
- data/ext/iup-mingw32/include/im.h +287 -0
- data/ext/iup-mingw32/include/im_attrib.h +120 -0
- data/ext/iup-mingw32/include/im_attrib_flat.h +39 -0
- data/ext/iup-mingw32/include/im_binfile.h +224 -0
- data/ext/iup-mingw32/include/im_capture.h +365 -0
- data/ext/iup-mingw32/include/im_color.h +465 -0
- data/ext/iup-mingw32/include/im_colorhsi.h +56 -0
- data/ext/iup-mingw32/include/im_complex.h +180 -0
- data/ext/iup-mingw32/include/im_convert.h +142 -0
- data/ext/iup-mingw32/include/im_counter.h +69 -0
- data/ext/iup-mingw32/include/im_dib.h +195 -0
- data/ext/iup-mingw32/include/im_file.h +115 -0
- data/ext/iup-mingw32/include/im_format.h +97 -0
- data/ext/iup-mingw32/include/im_format_all.h +575 -0
- data/ext/iup-mingw32/include/im_format_avi.h +88 -0
- data/ext/iup-mingw32/include/im_format_ecw.h +93 -0
- data/ext/iup-mingw32/include/im_format_jp2.h +79 -0
- data/ext/iup-mingw32/include/im_format_raw.h +74 -0
- data/ext/iup-mingw32/include/im_format_wmv.h +101 -0
- data/ext/iup-mingw32/include/im_image.h +425 -0
- data/ext/iup-mingw32/include/im_kernel.h +315 -0
- data/ext/iup-mingw32/include/im_lib.h +191 -0
- data/ext/iup-mingw32/include/im_math.h +368 -0
- data/ext/iup-mingw32/include/im_math_op.h +214 -0
- data/ext/iup-mingw32/include/im_palette.h +172 -0
- data/ext/iup-mingw32/include/im_plus.h +73 -0
- data/ext/iup-mingw32/include/im_process.h +36 -0
- data/ext/iup-mingw32/include/im_process_ana.h +222 -0
- data/ext/iup-mingw32/include/im_process_glo.h +170 -0
- data/ext/iup-mingw32/include/im_process_loc.h +608 -0
- data/ext/iup-mingw32/include/im_process_pon.h +734 -0
- data/ext/iup-mingw32/include/im_raw.h +34 -0
- data/ext/iup-mingw32/include/im_util.h +277 -0
- data/ext/iup-mingw32/include/imlua.h +75 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iup.h +86 -40
- data/ext/{iup-win32 → iup-mingw32}/include/iup_pplot.h +0 -0
- data/ext/iup-mingw32/include/iupcb.h +1 -0
- data/ext/iup-mingw32/include/iupcbox.h +1 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupcbs.h +1 -1
- data/ext/iup-mingw32/include/iupcells.h +1 -0
- data/ext/iup-mingw32/include/iupcolorbar.h +1 -0
- data/ext/iup-mingw32/include/iupcontrols.h +46 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupdef.h +205 -0
- data/ext/iup-mingw32/include/iupdial.h +1 -0
- data/ext/iup-mingw32/include/iupgauge.h +1 -0
- data/ext/iup-mingw32/include/iupgc.h +1 -0
- data/ext/iup-mingw32/include/iupgetparam.h +1 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupgl.h +2 -7
- data/ext/{iup-win32 → iup-mingw32}/include/iupim.h +7 -1
- data/ext/{iup-win32 → iup-mingw32}/include/iupkey.h +4 -4
- data/ext/{iup-win32 → iup-mingw32}/include/iuplua.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iuplua_pplot.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupluacontrols.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupluagl.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupluaim.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupluaole.h +0 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupmask.h +2 -1
- data/ext/iup-mingw32/include/iupmatrix.h +1 -0
- data/ext/{iup-win32 → iup-mingw32}/include/iupole.h +0 -0
- data/ext/iup-mingw32/include/iupsbox.h +1 -0
- data/ext/iup-mingw32/include/iupspin.h +1 -0
- data/ext/iup-mingw32/include/iuptabs.h +1 -0
- data/ext/iup-mingw32/include/iuptree.h +1 -0
- data/ext/iup-mingw32/include/iupval.h +1 -0
- data/ext/iup-mingw32/include/old_im.h +59 -0
- data/ext/{iup-win32 → iup-mingw32}/include/wd.h +5 -0
- data/ext/{iup-win32 → iup-mingw32}/include/wd_old.h +0 -0
- data/ext/iup-mingw32/libcd.a +0 -0
- data/ext/iup-mingw32/libcdpdf.a +0 -0
- data/ext/iup-mingw32/libfreetype6.a +0 -0
- data/ext/iup-mingw32/libim.a +0 -0
- data/ext/iup-mingw32/libim_avi.a +0 -0
- data/ext/iup-mingw32/libim_fftw.a +0 -0
- data/ext/iup-mingw32/libim_jp2.a +0 -0
- data/ext/iup-mingw32/libim_process.a +0 -0
- data/ext/iup-mingw32/libiup.a +0 -0
- data/ext/iup-mingw32/libiup_pplot.a +0 -0
- data/ext/iup-mingw32/libiupcd.a +0 -0
- data/ext/iup-mingw32/libiupcontrols.a +0 -0
- data/ext/iup-mingw32/libiupgl.a +0 -0
- data/ext/iup-mingw32/libiupim.a +0 -0
- data/ext/iup-mingw32/libiupimglib.a +0 -0
- data/ext/iup-mingw32/libiupole.a +0 -0
- data/ext/iup-mingw32/libpdflib.a +0 -0
- data/ext/iup-mswin32/cd.lib +0 -0
- data/ext/iup-mswin32/cdcontextplus.lib +0 -0
- data/ext/iup-mswin32/cdgdk.lib +0 -0
- data/ext/iup-mswin32/cdpdf.lib +0 -0
- data/ext/iup-mswin32/freetype6.lib +0 -0
- data/ext/iup-mswin32/im.lib +0 -0
- data/ext/iup-mswin32/im_avi.lib +0 -0
- data/ext/iup-mswin32/im_capture.lib +0 -0
- data/ext/iup-mswin32/im_fftw.lib +0 -0
- data/ext/iup-mswin32/im_jp2.lib +0 -0
- data/ext/iup-mswin32/im_process.lib +0 -0
- data/ext/iup-mswin32/im_wmv.lib +0 -0
- data/ext/iup-mswin32/include/cd.h +498 -0
- data/ext/iup-mswin32/include/cd_canvas.hpp +358 -0
- data/ext/iup-mswin32/include/cd_old.h +158 -0
- data/ext/iup-mswin32/include/cd_private.h +369 -0
- data/ext/iup-mswin32/include/cdcgm.h +34 -0
- data/ext/iup-mswin32/include/cdclipbd.h +22 -0
- data/ext/iup-mswin32/include/cddbuf.h +23 -0
- data/ext/iup-mswin32/include/cddebug.h +24 -0
- data/ext/iup-mswin32/include/cddgn.h +23 -0
- data/ext/iup-mswin32/include/cddxf.h +22 -0
- data/ext/iup-mswin32/include/cdemf.h +22 -0
- data/ext/iup-mswin32/include/cdgdiplus.h +29 -0
- data/ext/iup-mswin32/include/cdimage.h +23 -0
- data/ext/iup-mswin32/include/cdirgb.h +30 -0
- data/ext/iup-mswin32/include/cdiup.h +22 -0
- data/ext/iup-mswin32/include/cdlua.h +39 -0
- data/ext/iup-mswin32/include/cdlua3_private.h +120 -0
- data/ext/iup-mswin32/include/cdlua5_private.h +141 -0
- data/ext/iup-mswin32/include/cdluaim.h +24 -0
- data/ext/iup-mswin32/include/cdluaiup.h +27 -0
- data/ext/iup-mswin32/include/cdluapdf.h +27 -0
- data/ext/iup-mswin32/include/cdmf.h +24 -0
- data/ext/iup-mswin32/include/cdmf_private.h +32 -0
- data/ext/iup-mswin32/include/cdnative.h +26 -0
- data/ext/iup-mswin32/include/cdpdf.h +38 -0
- data/ext/iup-mswin32/include/cdpicture.h +22 -0
- data/ext/iup-mswin32/include/cdprint.h +23 -0
- data/ext/iup-mswin32/include/cdps.h +37 -0
- data/ext/iup-mswin32/include/cdsvg.h +22 -0
- data/ext/iup-mswin32/include/cdwmf.h +22 -0
- data/ext/iup-mswin32/include/im.h +287 -0
- data/ext/iup-mswin32/include/im_attrib.h +120 -0
- data/ext/iup-mswin32/include/im_attrib_flat.h +39 -0
- data/ext/iup-mswin32/include/im_binfile.h +224 -0
- data/ext/iup-mswin32/include/im_capture.h +365 -0
- data/ext/iup-mswin32/include/im_color.h +465 -0
- data/ext/iup-mswin32/include/im_colorhsi.h +56 -0
- data/ext/iup-mswin32/include/im_complex.h +180 -0
- data/ext/iup-mswin32/include/im_convert.h +142 -0
- data/ext/iup-mswin32/include/im_counter.h +69 -0
- data/ext/iup-mswin32/include/im_dib.h +195 -0
- data/ext/iup-mswin32/include/im_file.h +115 -0
- data/ext/iup-mswin32/include/im_format.h +97 -0
- data/ext/iup-mswin32/include/im_format_all.h +575 -0
- data/ext/iup-mswin32/include/im_format_avi.h +88 -0
- data/ext/iup-mswin32/include/im_format_ecw.h +93 -0
- data/ext/iup-mswin32/include/im_format_jp2.h +79 -0
- data/ext/iup-mswin32/include/im_format_raw.h +74 -0
- data/ext/iup-mswin32/include/im_format_wmv.h +101 -0
- data/ext/iup-mswin32/include/im_image.h +425 -0
- data/ext/iup-mswin32/include/im_kernel.h +315 -0
- data/ext/iup-mswin32/include/im_lib.h +191 -0
- data/ext/iup-mswin32/include/im_math.h +368 -0
- data/ext/iup-mswin32/include/im_math_op.h +214 -0
- data/ext/iup-mswin32/include/im_palette.h +172 -0
- data/ext/iup-mswin32/include/im_plus.h +73 -0
- data/ext/iup-mswin32/include/im_process.h +36 -0
- data/ext/iup-mswin32/include/im_process_ana.h +222 -0
- data/ext/iup-mswin32/include/im_process_glo.h +170 -0
- data/ext/iup-mswin32/include/im_process_loc.h +608 -0
- data/ext/iup-mswin32/include/im_process_pon.h +734 -0
- data/ext/iup-mswin32/include/im_raw.h +34 -0
- data/ext/iup-mswin32/include/im_util.h +277 -0
- data/ext/iup-mswin32/include/imlua.h +75 -0
- data/ext/iup-mswin32/include/iup.h +364 -0
- data/ext/iup-mswin32/include/iup_pplot.h +40 -0
- data/ext/iup-mswin32/include/iupcb.h +1 -0
- data/ext/iup-mswin32/include/iupcbox.h +1 -0
- data/ext/iup-mswin32/include/iupcbs.h +43 -0
- data/ext/iup-mswin32/include/iupcells.h +1 -0
- data/ext/iup-mswin32/include/iupcolorbar.h +1 -0
- data/ext/iup-mswin32/include/iupcontrols.h +46 -0
- data/ext/iup-mswin32/include/iupdef.h +725 -0
- data/ext/iup-mswin32/include/iupdial.h +1 -0
- data/ext/iup-mswin32/include/iupgauge.h +1 -0
- data/ext/iup-mswin32/include/iupgc.h +1 -0
- data/ext/iup-mswin32/include/iupgetparam.h +1 -0
- data/ext/iup-mswin32/include/iupgl.h +96 -0
- data/ext/iup-mswin32/include/iupim.h +27 -0
- data/ext/iup-mswin32/include/iupkey.h +457 -0
- data/ext/iup-mswin32/include/iuplua.h +41 -0
- data/ext/iup-mswin32/include/iuplua_pplot.h +26 -0
- data/ext/iup-mswin32/include/iupluacontrols.h +27 -0
- data/ext/iup-mswin32/include/iupluagl.h +26 -0
- data/ext/iup-mswin32/include/iupluaim.h +26 -0
- data/ext/iup-mswin32/include/iupluaole.h +26 -0
- data/ext/iup-mswin32/include/iupmask.h +41 -0
- data/ext/iup-mswin32/include/iupmatrix.h +1 -0
- data/ext/iup-mswin32/include/iupole.h +24 -0
- data/ext/iup-mswin32/include/iupsbox.h +1 -0
- data/ext/iup-mswin32/include/iupspin.h +1 -0
- data/ext/iup-mswin32/include/iuptabs.h +1 -0
- data/ext/iup-mswin32/include/iuptree.h +1 -0
- data/ext/iup-mswin32/include/iupval.h +1 -0
- data/ext/iup-mswin32/include/old_im.h +59 -0
- data/ext/iup-mswin32/include/wd.h +83 -0
- data/ext/iup-mswin32/include/wd_old.h +85 -0
- data/ext/iup-mswin32/iup.lib +0 -0
- data/ext/iup-mswin32/iup_pplot.lib +0 -0
- data/ext/iup-mswin32/iupcd.lib +0 -0
- data/ext/iup-mswin32/iupcontrols.lib +0 -0
- data/ext/iup-mswin32/iupgl.lib +0 -0
- data/ext/iup-mswin32/iupgtk.lib +0 -0
- data/ext/iup-mswin32/iupim.lib +0 -0
- data/ext/{iup-win32/iupimglib.dll → iup-mswin32/iupimglib.lib} +0 -0
- data/ext/iup-mswin32/iupole.lib +0 -0
- data/ext/iup-mswin32/pdflib.lib +0 -0
- data/ext/iup.c +6 -37
- data/ext/{rb_cd.h → rb_cd.c} +300 -302
- data/ext/rb_iup.c +2485 -0
- data/ext/rb_iup.h +400 -2475
- data/ext/{rb_iup_pplot.h → rb_iup_pplot.c} +21 -22
- data/ext/{rb_iupcb.h → rb_iupcb.c} +2 -3
- data/ext/{rb_iupcells.h → rb_iupcells.c} +5 -5
- data/ext/{rb_iupcolorbar.h → rb_iupcolorbar.c} +2 -3
- data/ext/{rb_iupcontrols.h → rb_iupcontrols.c} +1 -1
- data/ext/{rb_iupdial.h → rb_iupdial.c} +3 -4
- data/ext/{rb_iupgauge.h → rb_iupgauge.c} +2 -3
- data/ext/{rb_iupgc.h → rb_iupgc.c} +1 -1
- data/ext/{rb_iupgetparam.h → rb_iupgetparam.c} +12 -10
- data/ext/{rb_iupgl.h → rb_iupgl.c} +10 -10
- data/ext/{rb_iupim.h → rb_iupim.c} +6 -6
- data/ext/{rb_iupmatrix.h → rb_iupmatrix.c} +15 -16
- data/ext/{rb_iupole.h → rb_iupole.c} +4 -4
- data/ext/{rb_iupsbox.h → rb_iupsbox.c} +3 -3
- data/ext/{rb_iupspin.h → rb_iupspin.c} +4 -5
- data/ext/{rb_iuptabs.h → rb_iuptabs.c} +5 -6
- data/ext/{rb_iuptree.h → rb_iuptree.c} +20 -21
- data/ext/{rb_iupval.h → rb_iupval.c} +3 -4
- data/ruby-iup.gemspec +26 -0
- data/test/test_ruby_iup.rb +25 -0
- metadata +395 -270
- data/ext/iup-linux/include/lauxlib.h +0 -174
- data/ext/iup-linux/include/lua.h +0 -388
- data/ext/iup-linux/include/lua.hpp +0 -9
- data/ext/iup-linux/include/luaconf.h +0 -763
- data/ext/iup-linux/include/lualib.h +0 -53
- data/ext/iup-linux/libcd.so +0 -0
- data/ext/iup-linux/libcdcontextplus.so +0 -0
- data/ext/iup-linux/libcdpdf.so +0 -0
- data/ext/iup-linux/libfreetype.so +0 -0
- data/ext/iup-linux/libim.so +0 -0
- data/ext/iup-linux/libim_fftw.so +0 -0
- data/ext/iup-linux/libim_jp2.so +0 -0
- data/ext/iup-linux/libim_process.so +0 -0
- data/ext/iup-linux/libiup.so +0 -0
- data/ext/iup-linux/libiup_pplot.so +0 -0
- data/ext/iup-linux/libiupcd.so +0 -0
- data/ext/iup-linux/libiupcontrols.so +0 -0
- data/ext/iup-linux/libiupgl.so +0 -0
- data/ext/iup-linux/libiupim.so +0 -0
- data/ext/iup-linux/libiupimglib.so +0 -0
- data/ext/iup-linux/libiupmot.so +0 -0
- data/ext/iup-linux/libpdflib.so +0 -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/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.lib +0 -0
- data/ext/iup-win32/im_avi.dll +0 -0
- data/ext/iup-win32/im_avi.lib +0 -0
- data/ext/iup-win32/im_capture.dll +0 -0
- data/ext/iup-win32/im_capture.lib +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_fftw.lib +0 -0
- data/ext/iup-win32/im_jp2.dll +0 -0
- data/ext/iup-win32/im_jp2.lib +0 -0
- data/ext/iup-win32/im_process.dll +0 -0
- data/ext/iup-win32/im_process.lib +0 -0
- data/ext/iup-win32/im_wmv.dll +0 -0
- data/ext/iup-win32/im_wmv.lib +0 -0
- data/ext/iup-win32/imlua_capture51.dll +0 -0
- data/ext/iup-win32/imlua_capture51.lib +0 -0
- data/ext/iup-win32/imlua_wmv51.dll +0 -0
- data/ext/iup-win32/imlua_wmv51.lib +0 -0
- data/ext/iup-win32/include/iupcb.h +0 -25
- data/ext/iup-win32/include/iupcells.h +0 -130
- data/ext/iup-win32/include/iupcolorbar.h +0 -126
- data/ext/iup-win32/include/iupcontrols.h +0 -36
- data/ext/iup-win32/include/iupdial.h +0 -63
- data/ext/iup-win32/include/iupgauge.h +0 -57
- data/ext/iup-win32/include/iupgetparam.h +0 -27
- data/ext/iup-win32/include/iupmatrix.h +0 -63
- data/ext/iup-win32/include/iupspin.h +0 -21
- data/ext/iup-win32/include/iuptabs.h +0 -75
- data/ext/iup-win32/include/iuptree.h +0 -93
- data/ext/iup-win32/include/iupval.h +0 -46
- 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/iupgtk.dll +0 -0
- data/ext/iup-win32/iupgtk.lib +0 -0
- data/ext/iup-win32/iupim.dll +0 -0
- data/ext/iup-win32/iupim.lib +0 -0
- data/ext/iup-win32/iupimglib.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/mkrf_conf.rb +0 -72
- data/ext/rb_iupcompat.h +0 -237
- data/ext/rb_iupdef.h +0 -3
- data/ext/rb_iupmask.h +0 -189
- data/lib/README +0 -1
@@ -1,116 +1,120 @@
|
|
1
|
-
/** \file
|
2
|
-
* \brief Attributes Table.
|
3
|
-
*
|
4
|
-
* See Copyright Notice in im_lib.h
|
5
|
-
*/
|
6
|
-
|
7
|
-
#ifndef __IM_ATTRIB_H_
|
8
|
-
#define __IM_ATTRIB_H_
|
9
|
-
|
10
|
-
#include "im_attrib_flat.h"
|
11
|
-
|
12
|
-
/** \brief Attributes Table.
|
13
|
-
*
|
14
|
-
* \par
|
15
|
-
* All the attributes have a name, a type, a count and the data.\n
|
16
|
-
* Names are usually strings with less that 30 chars.
|
17
|
-
* \par
|
18
|
-
* Attributes are stored in a hash table for fast access. \n
|
19
|
-
* We use the hash function described in "The Pratice of Programming" of Kernighan & Pike.
|
20
|
-
* \ingroup util */
|
21
|
-
class imAttribTable
|
22
|
-
{
|
23
|
-
imAttribTablePrivate* ptable;
|
24
|
-
public:
|
25
|
-
|
26
|
-
/** Creates an empty table.
|
27
|
-
* If size is zero the default size of 101 is used. Size must be a prime number.
|
28
|
-
* Other common values are 67, 599 and 1499.*/
|
29
|
-
imAttribTable(int hash_size)
|
30
|
-
{ ptable = imAttribTableCreate(hash_size); }
|
31
|
-
|
32
|
-
/** Destroys the table and all the attributes. */
|
33
|
-
~imAttribTable()
|
34
|
-
{ imAttribTableDestroy(ptable); ptable = 0; }
|
35
|
-
|
36
|
-
/** Returns the number of elements in the table. */
|
37
|
-
int Count() const
|
38
|
-
{ return imAttribTableCount(ptable); }
|
39
|
-
|
40
|
-
/** Removes all the attributes in the table */
|
41
|
-
void RemoveAll()
|
42
|
-
{ imAttribTableRemoveAll(ptable); }
|
43
|
-
|
44
|
-
/** Copies the contents of the given table into this table. */
|
45
|
-
void CopyFrom(const imAttribTable& table)
|
46
|
-
{ imAttribTableCopyFrom(ptable, table.ptable); }
|
47
|
-
|
48
|
-
/** Inserts an attribute into the table. \n
|
49
|
-
*
|
50
|
-
*
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
*
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
}
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
*
|
72
|
-
*
|
73
|
-
* \
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
*
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
void
|
113
|
-
{
|
114
|
-
|
115
|
-
|
116
|
-
|
1
|
+
/** \file
|
2
|
+
* \brief Attributes Table.
|
3
|
+
*
|
4
|
+
* See Copyright Notice in im_lib.h
|
5
|
+
*/
|
6
|
+
|
7
|
+
#ifndef __IM_ATTRIB_H_
|
8
|
+
#define __IM_ATTRIB_H_
|
9
|
+
|
10
|
+
#include "im_attrib_flat.h"
|
11
|
+
|
12
|
+
/** \brief Attributes Table.
|
13
|
+
*
|
14
|
+
* \par
|
15
|
+
* All the attributes have a name, a type, a count and the data.\n
|
16
|
+
* Names are usually strings with less that 30 chars.
|
17
|
+
* \par
|
18
|
+
* Attributes are stored in a hash table for fast access. \n
|
19
|
+
* We use the hash function described in "The Pratice of Programming" of Kernighan & Pike.
|
20
|
+
* \ingroup util */
|
21
|
+
class imAttribTable
|
22
|
+
{
|
23
|
+
imAttribTablePrivate* ptable;
|
24
|
+
public:
|
25
|
+
|
26
|
+
/** Creates an empty table.
|
27
|
+
* If size is zero the default size of 101 is used. Size must be a prime number.
|
28
|
+
* Other common values are 67, 599 and 1499.*/
|
29
|
+
imAttribTable(int hash_size)
|
30
|
+
{ ptable = imAttribTableCreate(hash_size); }
|
31
|
+
|
32
|
+
/** Destroys the table and all the attributes. */
|
33
|
+
~imAttribTable()
|
34
|
+
{ imAttribTableDestroy(ptable); ptable = 0; }
|
35
|
+
|
36
|
+
/** Returns the number of elements in the table. */
|
37
|
+
int Count() const
|
38
|
+
{ return imAttribTableCount(ptable); }
|
39
|
+
|
40
|
+
/** Removes all the attributes in the table */
|
41
|
+
void RemoveAll()
|
42
|
+
{ imAttribTableRemoveAll(ptable); }
|
43
|
+
|
44
|
+
/** Copies the contents of the given table into this table. */
|
45
|
+
void CopyFrom(const imAttribTable& table)
|
46
|
+
{ imAttribTableCopyFrom(ptable, table.ptable); }
|
47
|
+
|
48
|
+
/** Inserts an attribute into the table. \n
|
49
|
+
* If data_type is BYTE then count can be -1 to indicate a NULL terminated string.
|
50
|
+
* Data is duplicated if not NULL, else data is initialized with zeros.
|
51
|
+
* See also \ref imDataType. */
|
52
|
+
void Set(const char* name, int data_type, int count, const void* data)
|
53
|
+
{ imAttribTableSet(ptable, name, data_type, count, data); }
|
54
|
+
|
55
|
+
/** Removes an attribute from the table given its name. */
|
56
|
+
void UnSet(const char *name)
|
57
|
+
{ imAttribTableUnSet(ptable, name); }
|
58
|
+
|
59
|
+
/** Finds an attribute in the table.
|
60
|
+
* Returns the attribute if found, NULL otherwise.
|
61
|
+
* See also \ref imDataType. */
|
62
|
+
const void* Get(const char *name, int *data_type = 0, int *count = 0) const
|
63
|
+
{ return imAttribTableGet(ptable, name, data_type, count); }
|
64
|
+
|
65
|
+
/** For each attribute calls the user callback. If the callback returns 0 the function returns. */
|
66
|
+
void ForEach(void* user_data, imAttribTableCallback attrib_func) const
|
67
|
+
{ imAttribTableForEach(ptable, user_data, attrib_func); }
|
68
|
+
};
|
69
|
+
|
70
|
+
/** \brief Attributes Table.
|
71
|
+
*
|
72
|
+
* \par
|
73
|
+
* Same as \ref imAttribTable, but uses an array of fixed size.
|
74
|
+
* \ingroup util */
|
75
|
+
class imAttribArray
|
76
|
+
{
|
77
|
+
imAttribTablePrivate* ptable;
|
78
|
+
public:
|
79
|
+
|
80
|
+
/** Creates an empty array. */
|
81
|
+
imAttribArray(int count)
|
82
|
+
{ ptable = imAttribArrayCreate(count); }
|
83
|
+
|
84
|
+
/** Destroys the array and all the attributes. */
|
85
|
+
~imAttribArray()
|
86
|
+
{ imAttribTableDestroy(ptable); ptable = 0; }
|
87
|
+
|
88
|
+
/** Returns the number of elements in the array. */
|
89
|
+
int Count() const
|
90
|
+
{ return imAttribTableCount(ptable); }
|
91
|
+
|
92
|
+
/** Removes all the attributes in the array */
|
93
|
+
void RemoveAll()
|
94
|
+
{ imAttribTableRemoveAll(ptable); }
|
95
|
+
|
96
|
+
/** Copies the contents of the given table into this table. */
|
97
|
+
void CopyFrom(const imAttribArray& table)
|
98
|
+
{ imAttribArrayCopyFrom(ptable, table.ptable); }
|
99
|
+
|
100
|
+
/** Inserts one attribute into the array.
|
101
|
+
* The attribute data is a simple array of data_type elements of count length. \n
|
102
|
+
* Data is duplicated if not NULL, else data is initialized with zeros.
|
103
|
+
* When NULL is specified use the Get method to retrieve a pointer to the data
|
104
|
+
* so you can initialize it with other values.
|
105
|
+
* See also \ref imDataType. */
|
106
|
+
void Set(int index, const char* name, int data_type, int count, const void* data)
|
107
|
+
{ imAttribArraySet(ptable, index, name, data_type, count, data); }
|
108
|
+
|
109
|
+
/** Finds one attribute in the array.
|
110
|
+
* Returns the attribute if found, NULL otherwise.
|
111
|
+
* See also \ref imDataType. */
|
112
|
+
const void* Get(int index, char *name = 0, int *data_type = 0, int *count = 0) const
|
113
|
+
{ return imAttribArrayGet(ptable, index, name, data_type, count); }
|
114
|
+
|
115
|
+
/** For each attribute calls the user callback. If the callback returns 0 the function returns. */
|
116
|
+
void ForEach(void* user_data, imAttribTableCallback attrib_func) const
|
117
|
+
{ imAttribTableForEach(ptable, user_data, attrib_func); }
|
118
|
+
};
|
119
|
+
|
120
|
+
#endif
|
@@ -1,39 +1,39 @@
|
|
1
|
-
/** \file
|
2
|
-
* \brief Attributes Table Flat API.
|
3
|
-
* This will simplify the DLL export, and can be used for C aplications.
|
4
|
-
*
|
5
|
-
* See Copyright Notice in im_lib.h
|
6
|
-
*/
|
7
|
-
|
8
|
-
#ifndef __IM_ATTRIB_FLAT_H_
|
9
|
-
#define __IM_ATTRIB_FLAT_H_
|
10
|
-
|
11
|
-
#if defined(__cplusplus)
|
12
|
-
extern "C" {
|
13
|
-
#endif
|
14
|
-
|
15
|
-
struct imAttribTablePrivate;
|
16
|
-
|
17
|
-
/** Definition of the callback used in ForEach function. */
|
18
|
-
typedef int (*imAttribTableCallback)(void* user_data, int index, const char* name, int data_type, int count, const void* data);
|
19
|
-
|
20
|
-
imAttribTablePrivate* imAttribTableCreate(int hash_size);
|
21
|
-
void imAttribTableDestroy(imAttribTablePrivate* ptable);
|
22
|
-
int imAttribTableCount(imAttribTablePrivate* ptable);
|
23
|
-
void imAttribTableRemoveAll(imAttribTablePrivate* ptable);
|
24
|
-
const void* imAttribTableGet(const imAttribTablePrivate* ptable, const char *name, int *data_type, int *count);
|
25
|
-
void imAttribTableSet(imAttribTablePrivate* ptable, const char* name, int data_type, int count, const void* data);
|
26
|
-
void imAttribTableUnSet(imAttribTablePrivate* ptable, const char *name);
|
27
|
-
void imAttribTableCopyFrom(imAttribTablePrivate* ptable_dst, const imAttribTablePrivate* ptable_src);
|
28
|
-
void imAttribTableForEach(const imAttribTablePrivate* ptable, void* user_data, imAttribTableCallback attrib_func);
|
29
|
-
|
30
|
-
imAttribTablePrivate* imAttribArrayCreate(int hash_size);
|
31
|
-
const void* imAttribArrayGet(const imAttribTablePrivate* ptable, int index, char *name, int *data_type, int *count);
|
32
|
-
void imAttribArraySet(imAttribTablePrivate* ptable, int index, const char* name, int data_type, int count, const void* data);
|
33
|
-
void imAttribArrayCopyFrom(imAttribTablePrivate* ptable_dst, const imAttribTablePrivate* ptable_src);
|
34
|
-
|
35
|
-
#if defined(__cplusplus)
|
36
|
-
}
|
37
|
-
#endif
|
38
|
-
|
39
|
-
#endif
|
1
|
+
/** \file
|
2
|
+
* \brief Attributes Table Flat API.
|
3
|
+
* This will simplify the DLL export, and can be used for C aplications.
|
4
|
+
*
|
5
|
+
* See Copyright Notice in im_lib.h
|
6
|
+
*/
|
7
|
+
|
8
|
+
#ifndef __IM_ATTRIB_FLAT_H_
|
9
|
+
#define __IM_ATTRIB_FLAT_H_
|
10
|
+
|
11
|
+
#if defined(__cplusplus)
|
12
|
+
extern "C" {
|
13
|
+
#endif
|
14
|
+
|
15
|
+
struct imAttribTablePrivate;
|
16
|
+
|
17
|
+
/** Definition of the callback used in ForEach function. */
|
18
|
+
typedef int (*imAttribTableCallback)(void* user_data, int index, const char* name, int data_type, int count, const void* data);
|
19
|
+
|
20
|
+
imAttribTablePrivate* imAttribTableCreate(int hash_size);
|
21
|
+
void imAttribTableDestroy(imAttribTablePrivate* ptable);
|
22
|
+
int imAttribTableCount(imAttribTablePrivate* ptable);
|
23
|
+
void imAttribTableRemoveAll(imAttribTablePrivate* ptable);
|
24
|
+
const void* imAttribTableGet(const imAttribTablePrivate* ptable, const char *name, int *data_type, int *count);
|
25
|
+
void imAttribTableSet(imAttribTablePrivate* ptable, const char* name, int data_type, int count, const void* data);
|
26
|
+
void imAttribTableUnSet(imAttribTablePrivate* ptable, const char *name);
|
27
|
+
void imAttribTableCopyFrom(imAttribTablePrivate* ptable_dst, const imAttribTablePrivate* ptable_src);
|
28
|
+
void imAttribTableForEach(const imAttribTablePrivate* ptable, void* user_data, imAttribTableCallback attrib_func);
|
29
|
+
|
30
|
+
imAttribTablePrivate* imAttribArrayCreate(int hash_size);
|
31
|
+
const void* imAttribArrayGet(const imAttribTablePrivate* ptable, int index, char *name, int *data_type, int *count);
|
32
|
+
void imAttribArraySet(imAttribTablePrivate* ptable, int index, const char* name, int data_type, int count, const void* data);
|
33
|
+
void imAttribArrayCopyFrom(imAttribTablePrivate* ptable_dst, const imAttribTablePrivate* ptable_src);
|
34
|
+
|
35
|
+
#if defined(__cplusplus)
|
36
|
+
}
|
37
|
+
#endif
|
38
|
+
|
39
|
+
#endif
|
@@ -1,214 +1,224 @@
|
|
1
|
-
/** \file
|
2
|
-
* \brief Binary File Access.
|
3
|
-
*
|
4
|
-
* See Copyright Notice in im_lib.h
|
5
|
-
*/
|
6
|
-
|
7
|
-
#include "im_util.h"
|
8
|
-
|
9
|
-
#ifndef __IM_BINFILE_H
|
10
|
-
#define __IM_BINFILE_H
|
11
|
-
|
12
|
-
#if defined(__cplusplus)
|
13
|
-
extern "C" {
|
14
|
-
#endif
|
15
|
-
|
16
|
-
|
17
|
-
/** \defgroup binfile Binary File Access
|
18
|
-
*
|
19
|
-
* \par
|
20
|
-
* These functions are very usefull for reading/writing binary files
|
21
|
-
* that have headers or data that have to be converted depending on
|
22
|
-
* the current CPU byte order. It can invert 2, 4 or 8 bytes numbers to/from little/big-endian orders.
|
23
|
-
* \par
|
24
|
-
* It will process the data only if the file format is diferent from the current CPU.
|
25
|
-
* \par
|
26
|
-
* Can read from disk or memory. In case of a memory buffer, the file name must be the \ref imBinMemoryFileName structure.
|
27
|
-
* \par
|
28
|
-
* See \ref im_binfile.h
|
29
|
-
* \ingroup util */
|
30
|
-
|
31
|
-
typedef struct _imBinFile imBinFile;
|
32
|
-
|
33
|
-
/** Opens an existant binary file for reading.
|
34
|
-
* The default file byte order is the CPU byte order.
|
35
|
-
* Returns NULL if failed.
|
36
|
-
* \ingroup binfile */
|
37
|
-
imBinFile* imBinFileOpen(const char* pFileName);
|
38
|
-
|
39
|
-
/** Creates a new binary file for writing.
|
40
|
-
* The default file byte order is the CPU byte order.
|
41
|
-
* Returns NULL if failed.
|
42
|
-
* \ingroup binfile */
|
43
|
-
imBinFile* imBinFileNew(const char* pFileName);
|
44
|
-
|
45
|
-
/** Closes the file.
|
46
|
-
* \ingroup binfile */
|
47
|
-
void imBinFileClose(imBinFile* bfile);
|
48
|
-
|
49
|
-
/** Indicates that was an error on the last operation.
|
50
|
-
* \ingroup binfile */
|
51
|
-
int imBinFileError(imBinFile* bfile);
|
52
|
-
|
53
|
-
/** Returns the file size in bytes.
|
54
|
-
* \ingroup binfile */
|
55
|
-
unsigned long imBinFileSize(imBinFile* bfile);
|
56
|
-
|
57
|
-
/** Changes the file byte order. Returns the old one.
|
58
|
-
* \ingroup binfile */
|
59
|
-
int imBinFileByteOrder(imBinFile* bfile, int pByteOrder);
|
60
|
-
|
61
|
-
/** Reads an array of count values with byte sizes: 1, 2, 4, or 8. And invert the byte order if necessary after read.
|
62
|
-
* \ingroup binfile */
|
63
|
-
unsigned long imBinFileRead(imBinFile* bfile, void* pValues, unsigned long pCount, int pSizeOf);
|
64
|
-
|
65
|
-
/** Writes an array of values with sizes: 1, 2, 4, or 8. And invert the byte order if necessary before write.\n
|
66
|
-
* <b>ATENTION</b>: The function will not make a temporary copy of the values to invert the byte order.\n
|
67
|
-
* So after the call the values will be invalid, if the file byte order is diferent from the CPU byte order.
|
68
|
-
* \ingroup binfile */
|
69
|
-
unsigned long imBinFileWrite(imBinFile* bfile, void* pValues, unsigned long pCount, int pSizeOf);
|
70
|
-
|
71
|
-
/** Writes a string without the NULL terminator. The function uses sprintf to compose the string. \n
|
72
|
-
* The internal buffer is fixed at 4096 bytes.
|
73
|
-
* \ingroup binfile */
|
74
|
-
unsigned long imBinFilePrintf(imBinFile* bfile, char *format, ...);
|
75
|
-
|
76
|
-
/**
|
77
|
-
*
|
78
|
-
* \ingroup binfile */
|
79
|
-
|
80
|
-
|
81
|
-
/**
|
82
|
-
*
|
83
|
-
* \ingroup binfile */
|
84
|
-
|
85
|
-
|
86
|
-
/** Moves the file pointer from the
|
87
|
-
*
|
88
|
-
* \ingroup binfile */
|
89
|
-
void
|
90
|
-
|
91
|
-
/**
|
92
|
-
*
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
*
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
int
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
1
|
+
/** \file
|
2
|
+
* \brief Binary File Access.
|
3
|
+
*
|
4
|
+
* See Copyright Notice in im_lib.h
|
5
|
+
*/
|
6
|
+
|
7
|
+
#include "im_util.h"
|
8
|
+
|
9
|
+
#ifndef __IM_BINFILE_H
|
10
|
+
#define __IM_BINFILE_H
|
11
|
+
|
12
|
+
#if defined(__cplusplus)
|
13
|
+
extern "C" {
|
14
|
+
#endif
|
15
|
+
|
16
|
+
|
17
|
+
/** \defgroup binfile Binary File Access
|
18
|
+
*
|
19
|
+
* \par
|
20
|
+
* These functions are very usefull for reading/writing binary files
|
21
|
+
* that have headers or data that have to be converted depending on
|
22
|
+
* the current CPU byte order. It can invert 2, 4 or 8 bytes numbers to/from little/big-endian orders.
|
23
|
+
* \par
|
24
|
+
* It will process the data only if the file format is diferent from the current CPU.
|
25
|
+
* \par
|
26
|
+
* Can read from disk or memory. In case of a memory buffer, the file name must be the \ref imBinMemoryFileName structure.
|
27
|
+
* \par
|
28
|
+
* See \ref im_binfile.h
|
29
|
+
* \ingroup util */
|
30
|
+
|
31
|
+
typedef struct _imBinFile imBinFile;
|
32
|
+
|
33
|
+
/** Opens an existant binary file for reading.
|
34
|
+
* The default file byte order is the CPU byte order.
|
35
|
+
* Returns NULL if failed.
|
36
|
+
* \ingroup binfile */
|
37
|
+
imBinFile* imBinFileOpen(const char* pFileName);
|
38
|
+
|
39
|
+
/** Creates a new binary file for writing.
|
40
|
+
* The default file byte order is the CPU byte order.
|
41
|
+
* Returns NULL if failed.
|
42
|
+
* \ingroup binfile */
|
43
|
+
imBinFile* imBinFileNew(const char* pFileName);
|
44
|
+
|
45
|
+
/** Closes the file.
|
46
|
+
* \ingroup binfile */
|
47
|
+
void imBinFileClose(imBinFile* bfile);
|
48
|
+
|
49
|
+
/** Indicates that was an error on the last operation.
|
50
|
+
* \ingroup binfile */
|
51
|
+
int imBinFileError(imBinFile* bfile);
|
52
|
+
|
53
|
+
/** Returns the file size in bytes.
|
54
|
+
* \ingroup binfile */
|
55
|
+
unsigned long imBinFileSize(imBinFile* bfile);
|
56
|
+
|
57
|
+
/** Changes the file byte order. Returns the old one.
|
58
|
+
* \ingroup binfile */
|
59
|
+
int imBinFileByteOrder(imBinFile* bfile, int pByteOrder);
|
60
|
+
|
61
|
+
/** Reads an array of count values with byte sizes: 1, 2, 4, or 8. And invert the byte order if necessary after read.
|
62
|
+
* \ingroup binfile */
|
63
|
+
unsigned long imBinFileRead(imBinFile* bfile, void* pValues, unsigned long pCount, int pSizeOf);
|
64
|
+
|
65
|
+
/** Writes an array of values with sizes: 1, 2, 4, or 8. And invert the byte order if necessary before write.\n
|
66
|
+
* <b>ATENTION</b>: The function will not make a temporary copy of the values to invert the byte order.\n
|
67
|
+
* So after the call the values will be invalid, if the file byte order is diferent from the CPU byte order.
|
68
|
+
* \ingroup binfile */
|
69
|
+
unsigned long imBinFileWrite(imBinFile* bfile, void* pValues, unsigned long pCount, int pSizeOf);
|
70
|
+
|
71
|
+
/** Writes a string without the NULL terminator. The function uses sprintf to compose the string. \n
|
72
|
+
* The internal buffer is fixed at 4096 bytes.
|
73
|
+
* \ingroup binfile */
|
74
|
+
unsigned long imBinFilePrintf(imBinFile* bfile, char *format, ...);
|
75
|
+
|
76
|
+
/** Reads an integer number from the current position until found a non integer character.
|
77
|
+
* Returns a non zero value if sucessfull.
|
78
|
+
* \ingroup binfile */
|
79
|
+
int imBinFileReadInteger(imBinFile* handle, int *value);
|
80
|
+
|
81
|
+
/** Reads an floating point number from the current position until found a non number character.
|
82
|
+
* Returns a non zero value if sucessfull.
|
83
|
+
* \ingroup binfile */
|
84
|
+
int imBinFileReadFloat(imBinFile* handle, float *value);
|
85
|
+
|
86
|
+
/** Moves the file pointer from the begining of the file.\n
|
87
|
+
* When writing to a file seeking can go beyond the end of the file.
|
88
|
+
* \ingroup binfile */
|
89
|
+
void imBinFileSeekTo(imBinFile* bfile, unsigned long pOffset);
|
90
|
+
|
91
|
+
/** Moves the file pointer from current position.\n
|
92
|
+
* If the offset is a negative value the pointer moves backwards.
|
93
|
+
* \ingroup binfile */
|
94
|
+
void imBinFileSeekOffset(imBinFile* bfile, long pOffset);
|
95
|
+
|
96
|
+
/** Moves the file pointer from the end of the file.\n
|
97
|
+
* The offset is usually a negative value.
|
98
|
+
* \ingroup binfile */
|
99
|
+
void imBinFileSeekFrom(imBinFile* bfile, long pOffset);
|
100
|
+
|
101
|
+
/** Returns the current offset position.
|
102
|
+
* \ingroup binfile */
|
103
|
+
unsigned long imBinFileTell(imBinFile* bfile);
|
104
|
+
|
105
|
+
/** Indicates that the file pointer is at the end of the file.
|
106
|
+
* \ingroup binfile */
|
107
|
+
int imBinFileEndOfFile(imBinFile* bfile);
|
108
|
+
|
109
|
+
/** Predefined I/O Modules.
|
110
|
+
* \ingroup binfile */
|
111
|
+
enum imBinFileModule
|
112
|
+
{
|
113
|
+
IM_RAWFILE, /**< System dependent file I/O Rotines. */
|
114
|
+
IM_STREAM, /**< Standard Ansi C Stream I/O Rotines. */
|
115
|
+
IM_MEMFILE, /**< Uses a memory buffer (see \ref imBinMemoryFileName). */
|
116
|
+
IM_SUBFILE, /**< It is a sub file. FileName is a imBinFile* pointer from any other module. */
|
117
|
+
IM_FILEHANDLE,/**< System dependent file I/O Rotines, but FileName is a system file handle ("int" in UNIX and "HANDLE" in Windows). */
|
118
|
+
IM_IOCUSTOM0 /**< Other registered modules starts from here. */
|
119
|
+
};
|
120
|
+
|
121
|
+
/** Sets the current I/O module.
|
122
|
+
* \returns the previous function set, or -1 if failed.
|
123
|
+
* See also \ref imBinFileModule.
|
124
|
+
* \ingroup binfile */
|
125
|
+
int imBinFileSetCurrentModule(int pModule);
|
126
|
+
|
127
|
+
/** \brief Memory File I/O Filename
|
128
|
+
*
|
129
|
+
* \par
|
130
|
+
* Fake file name for the memory I/O module.
|
131
|
+
* \ingroup binfile */
|
132
|
+
typedef struct _imBinMemoryFileName
|
133
|
+
{
|
134
|
+
unsigned char *buffer; /**< The memory buffer. If you are reading the buffer must exists.
|
135
|
+
* If you are writing the buffer can be internally allocated to the given size. The buffer is never free.
|
136
|
+
* The buffer is allocated using "malloc", and reallocated using "realloc". Use "free" to release it.
|
137
|
+
* To avoid RTL conflicts use the function imBinMemoryRelease. */
|
138
|
+
int size; /**< Size of the buffer. */
|
139
|
+
float reallocate; /**< Reallocate factor for the memory buffer when writing (size += reallocate*size).
|
140
|
+
* Set reallocate to 0 to disable reallocation, in this case buffer must not be NULL. */
|
141
|
+
}imBinMemoryFileName;
|
142
|
+
|
143
|
+
/** Release the internal memory allocated when writing a Memory File (see \ref imBinMemoryFileName).
|
144
|
+
* \ingroup binfile */
|
145
|
+
void imBinMemoryRelease(unsigned char *buffer);
|
146
|
+
|
147
|
+
|
148
|
+
#if defined(__cplusplus)
|
149
|
+
}
|
150
|
+
#endif
|
151
|
+
|
152
|
+
|
153
|
+
#if defined(__cplusplus)
|
154
|
+
|
155
|
+
/** Base class to help the creation of new modules.\n
|
156
|
+
* It handles the read/write operations with byte order correction if necessary.
|
157
|
+
* \ingroup binfile */
|
158
|
+
class imBinFileBase
|
159
|
+
{
|
160
|
+
friend class imBinSubFile;
|
161
|
+
|
162
|
+
protected:
|
163
|
+
int IsNew,
|
164
|
+
FileByteOrder,
|
165
|
+
DoByteOrder; // to speed up byte order checking
|
166
|
+
|
167
|
+
// These will actually read/write the data
|
168
|
+
virtual unsigned long ReadBuf(void* pValues, unsigned long pSize) = 0;
|
169
|
+
virtual unsigned long WriteBuf(void* pValues, unsigned long pSize) = 0;
|
170
|
+
|
171
|
+
public:
|
172
|
+
|
173
|
+
int InitByteOrder(int ByteOrder)
|
174
|
+
{
|
175
|
+
int old_byte_order = this->FileByteOrder;
|
176
|
+
this->FileByteOrder = ByteOrder;
|
177
|
+
|
178
|
+
if (ByteOrder != imBinCPUByteOrder())
|
179
|
+
this->DoByteOrder = 1;
|
180
|
+
else
|
181
|
+
this->DoByteOrder = 0;
|
182
|
+
return old_byte_order;
|
183
|
+
}
|
184
|
+
|
185
|
+
// These will take care of byte swap if needed.
|
186
|
+
|
187
|
+
unsigned long Read(void* pValues, unsigned long pCount, int pSizeOf)
|
188
|
+
{
|
189
|
+
unsigned long rSize = ReadBuf(pValues, pCount * pSizeOf);
|
190
|
+
if (pSizeOf != 1 && DoByteOrder) imBinSwapBytes(pValues, pCount, pSizeOf);
|
191
|
+
return rSize/pSizeOf;
|
192
|
+
}
|
193
|
+
|
194
|
+
unsigned long Write(void* pValues, unsigned long pCount, int pSizeOf)
|
195
|
+
{
|
196
|
+
if (pSizeOf != 1 && DoByteOrder) imBinSwapBytes(pValues, pCount, pSizeOf);
|
197
|
+
return WriteBuf(pValues, pCount * pSizeOf)/pSizeOf;
|
198
|
+
}
|
199
|
+
|
200
|
+
virtual void Open(const char* pFileName) = 0;
|
201
|
+
virtual void New(const char* pFileName) = 0;
|
202
|
+
virtual void Close() = 0;
|
203
|
+
virtual unsigned long FileSize() = 0;
|
204
|
+
virtual int HasError() const = 0;
|
205
|
+
virtual void SeekTo(unsigned long pOffset) = 0;
|
206
|
+
virtual void SeekOffset(long pOffset) = 0;
|
207
|
+
virtual void SeekFrom(long pOffset) = 0;
|
208
|
+
virtual unsigned long Tell() const = 0;
|
209
|
+
virtual int EndOfFile() const = 0;
|
210
|
+
};
|
211
|
+
|
212
|
+
/** File I/O module creation callback.
|
213
|
+
* \ingroup binfile */
|
214
|
+
typedef imBinFileBase* (*imBinFileNewFunc)();
|
215
|
+
|
216
|
+
/** Register a user I/O module.\n
|
217
|
+
* Returns the new function set id.\n
|
218
|
+
* Accepts up to 10 modules.
|
219
|
+
* \ingroup binfile */
|
220
|
+
extern "C" int imBinFileRegisterModule(imBinFileNewFunc pNewFunc);
|
221
|
+
|
222
|
+
#endif
|
223
|
+
|
224
|
+
#endif
|