Copy disabled (too large)
Download .txt
Showing preview only (10,392K chars total). Download the full file to get everything.
Repository: libvips/nip2
Branch: master
Commit: 9b93b0b2ea56
Files: 772
Total size: 9.8 MB
Directory structure:
gitextract_szh7h6y0/
├── .gitignore
├── AUTHORS
├── COPYING
├── ChangeLog
├── Makefile.am
├── NEWS
├── README.md
├── THANKS
├── TODO
├── autogen.sh
├── configure.ac
├── doc/
│ ├── README
│ ├── doc-programmer/
│ │ ├── hierarchy.txt
│ │ ├── imageview
│ │ ├── makeindex.pl
│ │ ├── menu.txt
│ │ └── regionview
│ └── src/
│ ├── Example.def
│ ├── html.cfg
│ ├── infrared.tex
│ ├── intro.tex
│ ├── menus.tex
│ ├── mydefs.tex
│ ├── nipguide.tex
│ ├── program.tex
│ ├── reference.tex
│ └── tutorial.tex
├── man/
│ ├── Makefile.am
│ └── man1/
│ ├── Makefile.am
│ └── nip2.1
├── nip2.appdata.xml
├── nip2.desktop.in
├── nip2.spec.in
├── nip2.xml
├── po/
│ ├── ChangeLog
│ ├── LINGUAS
│ ├── POTFILES.in
│ ├── POTFILES.skip
│ ├── POTFILES2
│ ├── en_GB.gmo
│ ├── en_GB.po
│ ├── malkovich.gmo
│ ├── malkovich.po
│ └── messages
├── proj/
│ ├── README
│ └── src/
│ ├── makefile.msc
│ └── nip.rc
├── share/
│ ├── Makefile.am
│ └── nip2/
│ ├── Makefile.am
│ ├── compat/
│ │ ├── 7.10/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Format.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.12/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Format.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.14/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.16/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.24/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.26/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.28/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.38/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.40/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.8/
│ │ │ ├── Capture.def
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Format.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Morphology.def
│ │ │ ├── Mosaic.def
│ │ │ ├── New.def
│ │ │ ├── Print.def
│ │ │ ├── Resize.def
│ │ │ ├── Rotate.def
│ │ │ ├── Statistics.def
│ │ │ ├── X_ray.def
│ │ │ ├── _convert.def
│ │ │ ├── _errors.def
│ │ │ ├── _generate.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.9/
│ │ │ ├── Capture.def
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Format.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Morphology.def
│ │ │ ├── Mosaic.def
│ │ │ ├── New.def
│ │ │ ├── Print.def
│ │ │ ├── Resize.def
│ │ │ ├── Rotate.def
│ │ │ ├── Statistics.def
│ │ │ ├── X_ray.def
│ │ │ ├── _convert.def
│ │ │ ├── _errors.def
│ │ │ ├── _generate.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 8.2/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 8.3/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 8.4/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 8.5/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 8.6/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── Makefile.am
│ │ └── _compat.def
│ ├── data/
│ │ ├── AdobeRGB1998.icc
│ │ ├── Makefile.am
│ │ ├── cmyk.icm
│ │ ├── examples/
│ │ │ ├── 1_point_mosaic/
│ │ │ │ └── 1pt_mosaic.ws
│ │ │ ├── 2_point_mosaic/
│ │ │ │ └── 2pts_mosaic.ws
│ │ │ ├── businesscard/
│ │ │ │ └── businesscard.ws
│ │ │ ├── clone/
│ │ │ │ └── clone.ws
│ │ │ ├── framing/
│ │ │ │ └── framing.ws
│ │ │ ├── logo/
│ │ │ │ └── logo2.ws
│ │ │ ├── manual_balance/
│ │ │ │ └── manual_balance.ws
│ │ │ ├── overlays_and_blending/
│ │ │ │ └── overlay_blend.ws
│ │ │ ├── print_test_image.v
│ │ │ └── registering/
│ │ │ └── registering.ws
│ │ ├── macbeth_lab_d50.mat
│ │ ├── macbeth_lab_d65.mat
│ │ ├── rachel.con
│ │ └── sRGB.icm
│ ├── rc/
│ │ ├── Makefile.am
│ │ └── ipgtkrc
│ └── start/
│ ├── Colour.def
│ ├── Filter.def
│ ├── Histogram.def
│ ├── Image.def
│ ├── Magick.def
│ ├── Makefile.am
│ ├── Math.def
│ ├── Matrix.def
│ ├── Object.def
│ ├── Preferences.ws
│ ├── Tasks.def
│ ├── Widgets.def
│ ├── _Object.def
│ ├── _convert.def
│ ├── _generate.def
│ ├── _joe_extra.def
│ ├── _joe_utilities.def
│ ├── _list.def
│ ├── _magick.def
│ ├── _predicate.def
│ ├── _stdenv.def
│ └── _types.def
├── src/
│ ├── BITMAPS/
│ │ ├── Makefile.am
│ │ ├── ant.xbm
│ │ ├── automatic.xbm
│ │ ├── automatic.xpm
│ │ ├── automatic1.xbm
│ │ ├── automatic1.xpm
│ │ ├── automatic2.xbm
│ │ ├── automatic2.xpm
│ │ ├── automatic3.xbm
│ │ ├── automatic3.xpm
│ │ ├── book_closed.xpm
│ │ ├── book_open.xpm
│ │ ├── change.xbm
│ │ ├── col.xpm
│ │ ├── convol.xbm
│ │ ├── dropper.xpm
│ │ ├── dropper_msk.xbm
│ │ ├── dropper_src.xbm
│ │ ├── floppy.xpm
│ │ ├── image.xbm
│ │ ├── kill.xbm
│ │ ├── mag_msk.xbm
│ │ ├── magin.xpm
│ │ ├── magin_src.xbm
│ │ ├── magout.xpm
│ │ ├── magout_src.xbm
│ │ ├── mini_page.xpm
│ │ ├── morph.xbm
│ │ ├── paint.xpm
│ │ ├── pan.xpm
│ │ ├── program.xbm
│ │ ├── select.xpm
│ │ ├── separator.xpm
│ │ ├── slider.xbm
│ │ ├── toolbox_closed.xpm
│ │ ├── toolbox_open.xpm
│ │ ├── tools.xpm
│ │ ├── watch_1.xbm
│ │ ├── watch_2.xbm
│ │ ├── watch_3.xbm
│ │ ├── watch_4.xbm
│ │ ├── watch_5.xbm
│ │ ├── watch_6.xbm
│ │ ├── watch_7.xbm
│ │ ├── watch_8.xbm
│ │ └── watch_msk.xbm
│ ├── Makefile.am
│ ├── action.c
│ ├── action.h
│ ├── boxes.c
│ ├── boxes.h
│ ├── builtin.c
│ ├── builtin.h
│ ├── cache.c
│ ├── cache.h
│ ├── call.c
│ ├── call.h
│ ├── class.c
│ ├── class.h
│ ├── classmodel.c
│ ├── classmodel.h
│ ├── clock.c
│ ├── clock.h
│ ├── colour.c
│ ├── colour.h
│ ├── colourdisplay.c
│ ├── colourdisplay.h
│ ├── colourview.c
│ ├── colourview.h
│ ├── column.c
│ ├── column.h
│ ├── columnview.c
│ ├── columnview.h
│ ├── compile.c
│ ├── compile.h
│ ├── conversion.c
│ ├── conversion.h
│ ├── conversionview.c
│ ├── conversionview.h
│ ├── defbrowser.c
│ ├── defbrowser.h
│ ├── doubleclick.c
│ ├── doubleclick.h
│ ├── dummy.c
│ ├── dump.c
│ ├── dump.h
│ ├── editview.c
│ ├── editview.h
│ ├── error.c
│ ├── error.h
│ ├── expr.c
│ ├── expr.h
│ ├── expression.c
│ ├── expression.h
│ ├── expressionview.c
│ ├── expressionview.h
│ ├── filemodel.c
│ ├── filemodel.h
│ ├── filesel.c
│ ├── filesel.h
│ ├── floatwindow.c
│ ├── floatwindow.h
│ ├── fontname.c
│ ├── fontname.h
│ ├── fontnameview.c
│ ├── fontnameview.h
│ ├── formula.c
│ ├── formula.h
│ ├── graphicview.c
│ ├── graphicview.h
│ ├── graphwindow.c
│ ├── graphwindow.h
│ ├── group.c
│ ├── group.h
│ ├── gtkutil.c
│ ├── gtkutil.h
│ ├── heap.c
│ ├── heap.h
│ ├── heapmodel.c
│ ├── heapmodel.h
│ ├── helpindex.h
│ ├── iarrow.c
│ ├── iarrow.h
│ ├── icontainer.c
│ ├── icontainer.h
│ ├── idialog.c
│ ├── idialog.h
│ ├── iimage.c
│ ├── iimage.h
│ ├── iimageview.c
│ ├── iimageview.h
│ ├── imagedisplay.c
│ ├── imagedisplay.h
│ ├── imageheader.c
│ ├── imageheader.h
│ ├── imageinfo.c
│ ├── imageinfo.h
│ ├── imagemodel.c
│ ├── imagemodel.h
│ ├── imagepresent.c
│ ├── imagepresent.h
│ ├── imageview.c
│ ├── imageview.h
│ ├── iobject.c
│ ├── iobject.h
│ ├── ip.h
│ ├── iregion.c
│ ├── iregion.h
│ ├── iregiongroup.c
│ ├── iregiongroup.h
│ ├── iregiongroupview.c
│ ├── iregiongroupview.h
│ ├── iregionview.c
│ ├── iregionview.h
│ ├── istring.h
│ ├── itext.c
│ ├── itext.h
│ ├── itextview.c
│ ├── itextview.h
│ ├── iwindow.c
│ ├── iwindow.h
│ ├── lex.l
│ ├── link.c
│ ├── link.h
│ ├── log
│ ├── log.c
│ ├── log.h
│ ├── main.c
│ ├── main.h
│ ├── mainw.c
│ ├── mainw.h
│ ├── makehelpindex.pl
│ ├── managed.c
│ ├── managed.h
│ ├── managedfile.c
│ ├── managedfile.h
│ ├── managedgobject.c
│ ├── managedgobject.h
│ ├── managedgvalue.c
│ ├── managedgvalue.h
│ ├── managedstring.c
│ ├── managedstring.h
│ ├── matrix.c
│ ├── matrix.h
│ ├── matrixview.c
│ ├── matrixview.h
│ ├── model.c
│ ├── model.h
│ ├── nip2-cli.c
│ ├── nip2-icon.rc
│ ├── nipmarshal.c
│ ├── nipmarshal.h
│ ├── nipmarshal.list
│ ├── number.c
│ ├── number.h
│ ├── numberview.c
│ ├── numberview.h
│ ├── option.c
│ ├── option.h
│ ├── optionview.c
│ ├── optionview.h
│ ├── paintboxview.c
│ ├── paintboxview.h
│ ├── pane.c
│ ├── pane.h
│ ├── panechild.c
│ ├── panechild.h
│ ├── parse.y
│ ├── parser.h
│ ├── path.c
│ ├── path.h
│ ├── pathname.c
│ ├── pathname.h
│ ├── pathnameview.c
│ ├── pathnameview.h
│ ├── plot.c
│ ├── plot.h
│ ├── plotmodel.c
│ ├── plotmodel.h
│ ├── plotpresent.c
│ ├── plotpresent.h
│ ├── plotstatus.c
│ ├── plotstatus.h
│ ├── plotview.c
│ ├── plotview.h
│ ├── plotwindow.c
│ ├── plotwindow.h
│ ├── popupbutton.c
│ ├── popupbutton.h
│ ├── predicate.c
│ ├── predicate.h
│ ├── prefcolumnview.c
│ ├── prefcolumnview.h
│ ├── prefs.c
│ ├── prefs.h
│ ├── prefworkspaceview.c
│ ├── prefworkspaceview.h
│ ├── preview.c
│ ├── preview.h
│ ├── program.c
│ ├── program.h
│ ├── progress.c
│ ├── progress.h
│ ├── real.c
│ ├── real.h
│ ├── reduce.c
│ ├── reduce.h
│ ├── regionview.c
│ ├── regionview.h
│ ├── rhs.c
│ ├── rhs.h
│ ├── rhsview.c
│ ├── rhsview.h
│ ├── row.c
│ ├── row.h
│ ├── rowview.c
│ ├── rowview.h
│ ├── secret.c
│ ├── secret.h
│ ├── slider.c
│ ├── slider.h
│ ├── sliderview.c
│ ├── sliderview.h
│ ├── spin.c
│ ├── spin.h
│ ├── statusview.c
│ ├── statusview.h
│ ├── string.c
│ ├── stringview.c
│ ├── stringview.h
│ ├── subcolumn.c
│ ├── subcolumn.h
│ ├── subcolumnview.c
│ ├── subcolumnview.h
│ ├── symbol.c
│ ├── symbol.h
│ ├── toggle.c
│ ├── toggle.h
│ ├── toggleview.c
│ ├── toggleview.h
│ ├── tool.c
│ ├── tool.h
│ ├── toolkit.c
│ ├── toolkit.h
│ ├── toolkitbrowser.c
│ ├── toolkitbrowser.h
│ ├── toolkitgroup.c
│ ├── toolkitgroup.h
│ ├── toolkitgroupview.c
│ ├── toolkitgroupview.h
│ ├── toolkitview.c
│ ├── toolkitview.h
│ ├── toolview.c
│ ├── toolview.h
│ ├── trace.c
│ ├── trace.h
│ ├── tree.c
│ ├── tree.h
│ ├── tslider.c
│ ├── tslider.h
│ ├── util.c
│ ├── util.h
│ ├── value.c
│ ├── value.h
│ ├── valueview.c
│ ├── valueview.h
│ ├── vector.c
│ ├── vector.h
│ ├── view.c
│ ├── view.h
│ ├── vipsobject.c
│ ├── vipsobject.h
│ ├── vobject.c
│ ├── vobject.h
│ ├── watch.c
│ ├── watch.h
│ ├── workspace.c
│ ├── workspace.h
│ ├── workspacedefs.c
│ ├── workspacedefs.h
│ ├── workspacegroup.c
│ ├── workspacegroup.h
│ ├── workspacegroupview.c
│ ├── workspacegroupview.h
│ ├── workspaceroot.c
│ ├── workspaceroot.h
│ ├── workspaceview.c
│ └── workspaceview.h
└── test/
├── Makefile.am
├── extras/
│ ├── test-5x5.v
│ ├── test_magick2.ws
│ ├── test_recomp_order.ws
│ └── test_transform.ws
├── test_all.sh.in
└── workspaces/
├── big_and_small_disks.ws
├── gold_sample.v
├── test_colour.ws
├── test_conv.ws
├── test_fail.ws
├── test_filter.ws
├── test_fourier.ws
├── test_histogram.ws
├── test_image.ws
├── test_math.ws
├── test_matrix.ws
├── test_snip.def
├── test_stats.ws
├── test_tasks.ws
└── test_widgets.ws
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
INSTALL
test-driver
test/test-suite.log
test/test_all.sh.log
test/test_all.sh.trs
po/nip2.pot
nip2-*.tar.gz
*.o
.*.swp
TAGS
tags
Makefile
scan
Makefile.in
config.*
autom4te.cache
aclocal.m4
m4/
compile
configure
depcomp
install-sh
libtool
ltmain.sh
missing
mkinstalldirs
nip2.desktop
nip2.spec
po/POTFILES
fred
po/Makefile.in.in
src/.deps/
src/gtksheet-marshal.c
src/gtksheettypebuiltins.c
src/lex.c
src/nip2
src/parse.c
src/parse.h
stamp-h1
test/test_all.sh
ylwrap
doc/html/
doc/pdf/
================================================
FILE: AUTHORS
================================================
Authors of nip2
John Cupitt
Joe Padfield
Hans Breuer
Rich Lott
Leo Davidson
Plus helpful comments and suggestions from many others.
================================================
FILE: COPYING
================================================
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
================================================
FILE: ChangeLog
================================================
started 8.9.2 22/11/23
- fix a lockup with comment characters in REPL [MvGulik]
started 8.9.1 15/2/23
- fix build with --std=c99 [Schamschula]
started 8.9.0 10/4/20
- add find_trim
started 8.7.1 13/11/18
- fix uint status bar pixels >2**31 [Rob Erdmann]
- fix crash on redhat [bgilbert]
started 8.7.0 22/5/18
- added vips7compat.h include for libvips 8.7
- more output for -V to help debugging CLI mode
- revised Text widget
- added Canny
- Sobel uses the new vips_sobel() operator
- add mitchell kernel
- add 8.6 compat
started 8.6.1 1/5/18
- better enum display in header
started 8.6.0 16/8/17
- add scRGB support
- improve radiance support
- add composite to alpha menu
- add Image / Select / Fill
- add combine mode to indexed histogram
- better compat handling
started 8.5.1 22/1/17
- fix a crash bug
- make separate Image / Alpha menu, add Add, Extract, Drop
started 8.5 24/1/17
- add max_slope to lhist
- gaussnoise goes via vips8 now
- add snake option to array join [Joe Padfield]
- parse_float was broken for numbers starting "0."
- add alpha section to Image / Band menu ... Flatten, Premultiply,
Unpremultiply, Blend
- add Entropy to hist menu
started 8.4.1 25/9/16
- simplify nip2-icon.rc build, bgilbert
started 8.4
- added Perlin and Worley menu items
started 8.3.1 on 19/5/16
- disable debug by default, thanks Benjamin
- configure changes to help win64
- improve middle-drag in ws and image view
- be more careful about the name of the image file we remove on close
- simpler system for positioning new columns
- rename boostrap.sh as autogen to help snapcraft
started 8.3.0 on 28/3/16
- move path search stuff into _convert from _magick
- added autotrace menu item
- resize now uses vips_resize() behind the scenes
- added Kernel type for picking interpolators
started 8.2.1 on 4/12/16
- tiny improvement to idle handling
- added R2 to linreg and linregw
- fixed vips_call for image array args
- changed default unsharp settings to be less brutal and to ban -ve sharpness
started 8.2 on 4/11/15
- version bump to match vips
- fix icc_import with RGBA images
- added mapim and Image / Transform / Map
- added Filter / Coordinate Transform ... polar and rect in there
started 8.0 on 3/5/15
- version bump for vips-8.0 release
- fix a race in Makefile.am, thanks nieder
- get rid of run-nip2.sh, mostly useless, thanks nieder
started 7.42.1 started 30/12/14
- add fftw3 configure
- fix gvc configure
started 7.42.0 started 4/11/14
- removed the non-nip2 bits of the test suite, they are in vips now
started 7.41.0 8/10/14
- remove greyc stuff
started 7.40.5 17/9/14
- improve .desktop file
- fix Lch -> Yxy conversion
started 7.40.4 19/8/14
- swap the HP printer profile for a freer one
- swap lena for a PD sample
started 7.40.3 4/7/14
- fix compile with older libvipes, now goes back to at least 7.30
- fix more bash-isms to help freebsd
- don't test IM by default, in case it's not installed
- get graph display working again with latest libgvc
started 7.40.2 30/6/14
- fix quoting in magick commands
- auto-fallback to gm if no convert found
- use libxml2 pretty-printer
started 7.40.1 24/6/14
- update copyright date
- larger max size for dialog text
- fix popen()pclose() warnings on win
started 7.40.0 23/6/14
- version bump
started 7.39.0 28/1/14
- add optional libgsf dependency
- added export-to-file to plotwindow
- added graph_export_image
- added .to_image to Plot
- added .caption / .xcaption / .ycaption options to Plot
- added caption / xcaption / ycaption options to Plot_object
- added snibgo's much better ImageMagick menu items
- added test_magick.ws to make check
- added series_captions option to Plot_object
- support imagevec as a vips_call argument
- added system2 and system3
- added Magick.version detector
- better image cache menu item
- added hough_line and hough_circle
- removed tear-off menus, gtk+ has deprecated them
started 7.38.4 23/6/14
- fix memccpy() in tool.c, thanks khindenburg
started 7.38.3 16/5/14
- fix tiny timeout error
started 7.38.2 21/1/14
- fix a tiny mem leak
started 7.38.1 20/1/14
- fix scRGB display
started 7.38.0 18/1/14
- version bump
started 7.36.6 9/1/14
- fix some clang warnings
- add some brackets to find_colour-calib, seems to help clang builds with
optimiser, strangely
started 7.36.5 19/12/13
- add "merge into ws" item to rmb tab gutter menu
- oops, progress feedback was accidentally disabled
- error boxes were accidentally supressed
started 7.36.4 18/10/13
- fix bootstrap warnings
- use g_mkdir()
- better load of workspaces with closed columns
started 7.36.2 8/10/13
- add --profile option
- fix + button on wsgv
started 7.36.1 7/10/13
- better ^Q behaviour, thanks MvGulik
started 7.36.0 3/10/13
started 7.35.0 9/8/13
- removed old thing to show API docs (thanks Benjamin)
- measure now lets you pick the area to measure, and draws sample patches
- new column now goes to right of current column, not alphabetically
- detect doubleclick on ws tab label background
- tabs can be locked
- tabs have error indicators
started 7.34.1 28/6/13
- fix build on older gtk, thanks Joe
started 7.34.0 7/6/13
- version bump
- drag col to far left to insert
- fix compat warning text
- fix prefs revert to default
- reenable scroll-wheel slider change in paintbox and conversionview
- insert new columns in alphabetical position
started 7.33.0 14/3/13
- add tabs
- get_* work on Groups
- columns snap to a grid
started 7.32.2 12/3/13
- add a test for seq mode
started 7.32.1 7/3/13
- remove "fred" from dist
- license updates, thanks Benjamin
started 7.32.0 22/1/13
- added colour temperature to colour and colour to colour temperature
- removed gtksheet, broken on windows, no future on anywhere
- added histogram invert
- much better Matrix / New items
started 7.31 3/9/12
- don't show tooltips for toolkit menu items with submenus (thanks MvGulik)
- better definition of foldr1
- better definition of to_group (thanks MvGulik)
- better defintion of scan, renamed as scanl
- don't clear def browser filter on text buffer ::changed in program window
- update program window filter on cursor move
started 7.30.2 24/12/12
- small fix for OS X ML
started 7.30.1 7/8/12
- update rectangle select (thanks Joe)
- group save was broken (thanks John VV)
started 7.30.0 20/7/12
- update for new version
started 7.29.0 20/6/12
- added skew and kurtosis
- added Definition Browser to program window, shows stuff as you program
- program window cleanups
- Find calib is much faster and handles linear float input better
- Find calib optionally leaves brightness untouched
- Apply calib handles linear float input better
- add a 7.28 compat area
started 7.28.5, 8/5/12
- change keybinding for Delete to ctrl+bsp to work around a GTK bug
- rewrite filenames on workspace load, file selection and file drag-drop
started 7.28.4, 6/5/12
- added bigtiff save option
started 7.28.3, 17/4/12
- up max size of user defs, lets you work with larger groups
started 7.28.2, 10/4/12
- complex constant divided by real constant was wrong
- more self-tests
- disable the libvips operation cache, it doesn't know about invalidate and
breaks various things
started 7.28.1, 12/3/12
- oop, add Array to private Type decoder (thanks MvGulik)
- new version of Draw / Scale (thanks Joe)
started 7.28.0, 30/1/12
- bump for new stable version
- better "make check"
- disable asserts and cast checks in production builds
- much faster draw_rect
- remove background stipple from image display (helps win32)
- Draw / Rect lets you adjust line thickness
- added Draw / Scale (thanks Joe)
- added VipsStats test (thanks Rebecca)
started 7.27.0, 23/8/11
- bump for new cycle
- add raw load/save test
- test fits load/save
- better image header display, now on right-click rowview menu
- search image header
- rmb popup menu on imageview windows
- popup menu button widget
- added "vips_call" builtin to call any vips8 operation
- added Matrix / New / Series
- added Matrix / Sort
started 7.26.5, 31/12/11
- fix possible security thing in yyerror(), thanks Jay
started 7.26.4, 14/9/11
- better error messages for print-main
started 7.26.3, 15/8/11
- tidier cancel messages
- disable dump.c debug
started 7.26.2, 10/8/11
- update threading test for fixed benchmark
- fix blocking in progress update (thanks M. v. Gulik)
- search returns empty list for file not found rather than throwing an
exception
- magick_command tries to use $VIPSHOME/bin/convert.exe, if it exists
- magick_command tries quotes filenames
started 7.26.1, 28/7/11
- much better threading test, based on im_benchmarkn()
started 7.26.0, 26/7/11
- version bump
started 7.25.0, 7/1/11
- version bump
- oop spelling
- fix a crash with resizing dirty matrices
- minor fix to vips_call error messages
- more tests in "make check"
- moved vips_cache and vips_call out of the vips_ namespace
- added approx. option to blur/sharpen
- added Matrix / New Circular / Square / Identity
- removed the splash screen, all machines are fast enough now
- added EXEEXT env var
- better "bad superclass" error
- changed order of args for Option_enum
- added Option_list
- added a simple Magick menu
- better compat handling
- added a 7.24 compat dir
- removed the "already open for read" error on save, too annoying for the
small amount of safety it gave you
- test pfm load/save
- also test cmyk jpeg/tif load/save
- allow file modes in filenames, so "nip2 wtc_pyr.tif:2" works
- show main window much sooner during workspace load and startup
- better progress feedback
- added Image / Select / Rectangle
- added Image / Draw menu
started 7.24.0, 30/11/10
- bump for 7.24
- fix build without graphviz
- much faster colour atlas menu item
- fix make check, again
- fix debug everywhere
- fix a va_args problem on Windows
started 7.23.0, 2/8/10
- fix a crash in thumbnail preview with large images
- doublelick while painting with a rect (eg. text) would crash (thanks
M.v.Gulik)
- drag multiple workspaces to the mainw could get stuck (thanks M.v.Gulik)
- find-again before find would crash (thanks M.v.Gulik)
- open multiple ws in file browser would crash
- added filemodel_set_window_hint() and filemodel_get_window_hint() to help ^Q
display popups on the right window
- split vips_call.c to vips_call / vips_cache
- added IM_TYPE_RW support to vips_call.c: you can call paintbox operations
directly now
- gtk_window_present() parents when we show children in iwindow.c
- fix a crash with win32 and two PRESS on a window while in rect mode
(thanks M.v.Gulik)
- fix a crash with duplicate Colour (thanks M.v.Gulik)
- fix an occasional crash with ^Q in imageview
- added high-quality thumbnail option (thanks Martin)
- set lib env var more carefully (thanks Jay)
- configure tests for libgvc, the graphviz library
- added "Workspace as graph" view option
- better "segment" menu item
- "value" menu item
- rename stuff to avoid name clashes with cfitsio
- "make check" runs twice, with and without vector stuff
- better infobar behaviour
- test_conv.ws tests convolution carefully
- nib radius slider replaces the old 1-10 dropdown, nibs above radius 0 are
anti-aliased
- changes to help rhel5
- oop, could delete vips files accidentally
- better file search
started 7.22.2, 5/7/10
- show nthreads in space free tooltip
- fix win32 button order, again
- fix duplicate workspace
- added ^Q, for quit nip2, to all windows
- rename gtk_entry_*() to gtk_item_entry_*() in gtkitementry.c, thanks Adam
started 7.22.1, 13/6/10
- relax tolerances in test_colour.ws, thanks Peter
- improve region repaint during drag, thanks Ruven
- test relational constants
- test load / save in various file formats
- test threading system
- removed malkovich locale, oops
started 7.22.0, 12/5/10
- version bump
- gtksheet sizing changes, again
- plot window destroy cleanup
started 7.21.0, 8/12/09
- 7.16 ws load could fail (thanks Jim)
- "make check" tests the example workspaces too
- nip2-cli.c improvements (thanks Leo)
- leak test improvements
- set double-click time from the system
- don't copy to file for paintbox, it makes dangling pointers if you use it in
complex workspaces
- thumbnail updates on paint actions, woo
- rect and text tools have a working preview box
- safer handling of missing exprs in formula
- handle im_invalidate() in paintbox ourselves
- much faster and smarter image window repaints, especially with the paintbox
active
- #CPUs in prefs defaults to zero, meaning autodetect
- works without GtkInfoBar
- better show/hide behaviour for paned
- progress feedback for paintbox open
started 7.20.5, 27/11/09
- fixed up GtkInfoBar support
- oop, help was rather broken
started 7.20.4, 26/11/09
- removed 'browse thumbnails' button from filesel
- added 'preview' widget to file open
- added some basic GtkInfoBar support
started 7.20.3, 25/11/09
- argh, button order error in dialogs on win32
- updated help index
- initial window size was too large
started 7.20.2, 11/11/09
- make GRegex optional so we can work with older glibs
- fix a crash with "-p" and Managedstring
started 7.20.1, 11/11/09
- add "convf" operator
- default number of CPUs bumped to 4
- plot.c can work with goffice-0.7.15
started 7.20.0, 9/11/09
- version bump
- "make dist" fixes
started 7.19.0
- remove deprecated use of GtkList in option edit ... needs replacing
- dropped in new Joe defs (thanks Joe)
- reverse dialog button order on win32
- fix memleak with IMAGEVEC args to VIPS
- _check_all etc. no longer chain up, for a slight speed increase
- fix crash with "" as LHS for various copy operations, eg. ("" ++ "a")
- add test_snip.def to test language features
- replace-from-file marks a workspace as modified
- Arrow and Mark grab handles improved
- "don't attach a profile" option for jpeg save
- fixes for gtkdoc merge
- set TMPDIR on startup to help im_system()
- add RAD as a coding type (thanks Roland)
- add Filter / Morphology / Segment menu item
- much faster meanze for 8 & 16-bit unsigned images
- added a "rotate" option to custom convolution
- added Histogram / Find / Indexed
- Cache defaults to 128x128 tiles
- use libgoffice to display plots
- use new gtksheet widget, fall back to treeview if we can't build it
- better regexp searching in Program window (now full PCRE)
- oop horrible tree_map() bug with uops caused a variety of strangeness
- group image save now sets image save options (thanks Joe)
- sum and product now work for any object
- don't set non-existant properties in vips_object_new
- faster constant image maker with im_embed()
- added "join image array from list", thanks Joe
- phew, label backgrounds are back
- added raw import (thanks Jim)
started 7.18.0
- bumped version numbers
- added 7.16 compat mode
- revised manual
- added snohalo1 wrapper
- dropper did not update inkwell picture
- better button colour changes
- fix examples
started 7.17.2
- added progress.[hc] for a better progress/cancel system (again)
- splash screen uses new progress system
- added list delete, difference, "--" operator
- fixed a bug with startup recomps not happening (it was trying to do them
in the background, argh)
- buildlut makes Plot, not Image
- much faster gaussian mask build for large masks
- "Size To" has a "break aspect ratio" option
- better error message for "[1, 2] < [3, 4]"
- support RAD coding
- added Radiance menu
started 7.17.0
- merged 7.16 branch back into trunk
- bumped version number
- manual version number was wrong
- removed vips8 link, we've started moving that stuff into vips7 now
- patches for ubuntu 8.10
- added yafr interp
- rotate etc. now have an interp param
- revised "resize" to use new modes
- transform menu items have inter options
- configure fails if bison is not found
- fix the filesel filter after a filename change
- nicer message on cancel
- new VipsFormat stuff
- LEXLIBS->LEXLIB (thanks Adam)
- added Managedstring, removed old static string system
- caption columns can be null, display "doubleclick to edit .." message if
they are
- added vipsobject builder from old call8 code
- added vips_object_new builtin
- moved BufInfo down into vips
- added IM_INTERPOLATE to vips_call
- added Interpolate class and Interpolate_picker
- error window output no longer truncates on symbols with many errors
- renamed 'Recover After Crash' as 'Search for Workspace Backups'
- better Scale alignment in display
- regions and scales default to live dragging
- better image display defaults (no ruler, no display bar etc.)
- thumbnails are transparent when you drag them
- side panes have titlebars and close buttons
- block attempts to OK on directories in file dialogs
- we have a copyright symbol! nicer 'about' box too
- better region label positioning
- double images ignored rgb16/grey16 hints
- configure dies if flex/lex not found
- Managedgobject."property" works
- added (dir gtype), (dir gobject)
- oops, rank filters were off by one by default
started 7.16.3
- fixed cancel system (again)
started 7.16.2
- argh, "-o" was broken
- oops, some left over code for function overloading in the parser
- init builtins earlier, so we can spot accidental redefinition
- added a NULL type, Group now uses it to indicate an empty slot
- another stab at fixing the order of startup actions
started 7.16.1
- better pointer set
- fixed a couple of notify snafus
- use g_assert() instead of assert() to avoid abort() death
branch for 7.16
- bumped version
- grey16/rgb16 not always set on colour space conversion
- revamped test system
- set GValue strings as refstrings
- try to transform gvalues we get to strings, if we can
- added Joe's shrink within macro
- removed the last of the fade stuff for faster repaint
- open multiple now makea a group, so we can process more files at once
- revamped 'make check', much nicer and more useful
- better file type guessing
- better progress feedback
- revised image write code gives better feedback
- better group-save, again
- fixed a problem with recalc backtracking
started 7.15.0
- fixed segv with making tools for non-toplevels
- expand the heap if more than 50% full after a GC (was 70%)
- added nip2-cli.c (thanks Leo)
- updated README
- more HIGgy titlebar text in mainw/program
- refactor: IWINDOW_TRUE/_FALSE renamed to _YES/_NO
- adjustable panes in image header view
- histdif was broken for unsigned image types
- fix memleak in compile_lcomp()
- better --help text
- get rid of intltool
- use g_idle_add() instead of GAsyncQueue for render notify
- fix a segv in imageview destroy
- == did not always find the best method
- better time debugging in symbol recalc
- added $var for string constants
- added s => v syntax
- fixed recursive invocation bug in vips_call.c
- much better hashing of vips calls
- configure shows a summary at the end
- syntax change :-( lcomps now use [expr :: generators] to reduce ambiguity
the old syntax failed for things like [a || b | a <- [true]; b <- [false]]
- added --test, so we can check test_toolkits automatically
- added --prefix, so we can run without installing
- added "make check" support
- got rid of the annoying progress popup, it's back in the status bar now
- status bar tells you which sym it is computing
- revised busy system does all busy feedback
- configure switch to stop update of desktop database (thanks Adam)
- vips_call hashing improvements
- images are GCd after 60s of inactivity, rather than immediately, giving
the call cache a chance to revive them ... speedup in some cases
- added a 7.14 compat area
- join_lr/_tb args swapped
- check_args now does not recurse up a class, instead all _check members have
to chain up ... a bit quicker
- watch "invalidate" in vips_call.c cache ... so paint actions now decache
indirect results as well
- added Math / Cluster, though it needs a bit of work
- insert now format-alikes
- another go at removing refresh flicker ... region dragging flickers a bit
instead
- added Image / Header / Get / Custom
- recurse for save groups of groups
- added Image / Cache menu item
- merged loadable-formats branch
started 7.14.0
- updated docs
- added 7.12 compat
- check for update-mime-database and friends (thanks Tom)
- more leak fixes
- updated examples and prefs workspaces
- break _Object.def out of _types.def
- better "if image then constant else constant" behaviour
- fixed segvs with IMAGE lifetime and progress dialogs
- use xdg-open to show help pages, if available
- fixed segvs with IMAGE lifetime and progress dialogs
- fixed segvs with outdated iimage change callbacks
- some tweaking of the toolkits menu
- fixed another lcomp bug
- intercept from greyscale option in find_calib
- removed unnecessaary assert() from parser
- recomp all on startup even in batch mode fixes some strange bugs
- apply calib works for groups of images
- renamed Error as iError to help windows
- more small windows fixes
- more small os x fixes
started 7.13.3
- save image was broken, weakrefs were not being updated
- wrongly setting vips-7.8 region compat mode on all old WS load
- "Close" in ws defs pane menu was not working
- removed image window / plot window transient-for behaviour, we lost maximise
buttons :(
- block ungroup of things larger than 100 elements
- allow +/- for zoom in and out shortcuts
- mainw rmb menu has open/merge items
- merge ws doesn't add extra space
- added LHS patterns, eg. "[a, b] = fred 12;"
- better spacing in merge ws / load ws
- added is_list_len and friends ... faster then len for long lists
- compile on demand, saves 25% of startup time
- now bison only, we won't work with yacc (will package deps need updating?)
- added lcomp patterns, eg. "[x*y|[x,y]<-zip2[1..10][11..20]]"
- use LHS patterns in defs
- oop, dist typechecking could segv
- split trace.c to make log.c, base class for logging windows
- added error ... error logging window
- added destory_if_destroyed() and done some cleanups
- oop, im_and_image etc. refs remaining in compat
- disallow const-only LHS patterns, eg. "12 = fred;"
started 7.13.2
- remove Application from nip2.desktop.in
- revised progress system ... works for "max" now!
- fix reporting of parse errors in inner scopes
- lcomps now nest correctly ... try "Matrix [[x*y|x<-[1..10]]|y<-[1..10]]"
- workspaces loaded from stdin with -w save more sensibly
started 7.13.1
- you can type "fred = 12" into a columnview, woo
- gah, lcomps had "undefined" set on various members because of trimming off
parser temps
- more visible arrow dashes
- added pane.[hc]
- added a left pane to mainw to hold ws-local defs
- ws-local defs sort-of work
- added workspacedefs.[hc]
- print all workspace mains on exit too
- renamed lor/land as any/all, in line with Haskell
- added INTVEC and DOUBLEVEC output
- added greyc filter
- added "--set" command-line option
- better left/right pane widget
- resize tk browser search box with pane
- nicer widget colour change ... use "*xx*" in style file rather than setting
names and contained names
started 7.13.0
- woo, fork for new development version
- started cleaning up parse.y
- simpler DOT syntax ... A1."poop" works now
- added lambdas ... \x x + 1
- added listcomp syntax ... [x | x <- [1..]; x > 12]
- recomb was broken for >3 band images (thanks km)
- lambdas were not being marked as locals correctly, oops
- added listcomp code generator
started 7.12.5
- tiny win32 cleanups
- nicer formula widget, better view switching
- better file filter lookup
- oops, min and max only worked for rectangular lists
started 7.12.4
- cleaner Makefile.ams
- transform was only working for [[real]] :-( (thanks Mikkel)
started 7.12.3
- added right click / save for plot widgets
- remove .svn dirs from dist
started 7.12.2
- added support for TIFF predictor
- added Tasks / Capture / Plot Bands
started 7.12.1 9/5/07
- custom convolution of Plot no longer loses Plot wrapper
- better plot colours
- better spacing in plot status bar
- added histogram differentiate, zero crossings
- better ifthenelse on groups
- added "expr.(expr)" form, removed builtin get_member
- larger sensitive area for arrow crosshairs
- added region-on-image-from-region, again
- minpos/maxpos work for lists
- Math / List works for Groups
- maxpos/minpos return -1 for []
- max/min error for []
- stricter about the empty matrix being [[]]
- image/Image ==/!= list was broken
- empty groups were broken
- remove special case for assemble on groups ... you now need to group->list
first
- [] as a group member means no-value
- better Group insides
started 7.12.0 28/4/07
- fix up 7.10 compat mode
- more fixes to the convert.sed script
- small fixes to 7.12 toolkits for test_toolkits.ws
started 7.11.18 10/3/07
- added plotwindow, floatwindow
- duplicate plot was broken
- floating plots have stuff
- gtkplotcanvas.c only swallows motion/buttonpress events it handles
- gtkplotcanvas.c no longer tries to do focus handling
- plotwindow status bar
- added plotmodel.[hc], plotpresent.[hc]
- plotview has a caption, displays class name
- better captions for real/group/vector in heapmodel
- gtk_plot_canvas_destroy() was not unreffing the pixmap (thanks Simon)
- added next error stock item
- better clock value display
- added keep-child-windows-in-front pref (thanks Rachel)
- gtkplotcanvas.c has new cursor handling stuff to help nip do cursor changes
for middle-drag scrolling
- lots of toolkit tweaks
- revised the manual
- ooop, increment_filename fix, it was putting the number at the start of the
filename if there was no number there
- better batch mode error messages, added -V flag for verbose messages
- oop, variable name from filename was a bit broken
- started revising the examples
- increment on save and browse thumbnails were broken by gtk-2.10, gah
- removed debugging menus
- bump for 7.12! w00t
started 7.11.17 26/1/07
- snap hdrag of columns to make lining up easier
- better CSV import
- added zero-excluding mean and deviation to Math
- better set-workspace-name on ws load
- started a ws background popup menu
- grey ramp orientation swaps w/h
- better display control bar scale/offset for HDR XYZ/Lab/etc. images
- possible fix for intermittent fail to recomp on edit bug
- fix for image * group
- paste in gtkplot sources (we will probably need to hack it about a little)
- added plot/plotview
- oop, memleak in icontainer
- added a temporary Plot menu for testing
- set plot tick step to avoid mad mallocs on large ranges
started 7.11.16 21/12/06
- look for release on rulers as well as press
- adapt for new Hist system
- use im_concurrency_set()
- add im_get_option_group()
- oop, recursive invocation gah
- slightly better error messages
- better mainw title bar text
- added 'splits'
- better trace / profile / leak options
- more robust find chart calib
- only interpret RGB16 for display for int formats
- change im_histgr args
- oops, paintbox could set delete-on-close sometimes
- custom blur has many more controls
- better inter-workspace "depends on ..." messages
- chop/assemble image arrays now work on groups of groups, not list of lists
so you can process the chopped up image
- added 7.11 toolkit_tester, plus a little sed sscript to update old workspaces
started 7.11.15 6/12/06
- tiny fixes to startup code
started 7.11.14 6/12/06
- Vector arithmetic fix
- Vector display class
- more Matrix fixes
started 7.11.12 8/9/06
- Image Rank no longer rounds up
- only obey IM_CONCURRENCY pref in GUI mode
- added GVALUE input/output args
- added set_header, Set Metadata
- use LC_ALL rather then LC_MESSAGES (thanks Simon)
- better range == 0 check in conversionview
- re-added make-named-column action
- better textview reset during background recomp behaviour
- added LUT from scatter
- added AC_CHECK_TOOL to configure to find tools for cross-compilation.
- added map_nary, Crop now loops on all args
- test for glibtoolize during configure
- added tag image as hist, set type, image->matrix more flexible
- added get header field
- added Real displayer
- reordered Image menu
- optionview refresh was a bit broken
- ruler resize was a bit broken
- map_nary recurses
- make image windows children of the mainw ... so they can't pop behind
- "mean" can do lists of images etc.
- move ->parent from idialog into iwindow
- revised to_list behaviour, added to_Group
- show save prefs automatically on save
- removed broken scroll on focus code in columnview
- map_*ary no longer loop over lists ... they often represent compound
objects, eg. "mean [1, 2, 3]"
- new preferences viewer
- kill parent of nested dialog now kills dialog as well
- more JPEG save prefs
- CSV save prefs
started 7.11.11 18/7/06
- small polishes from gtkdisp3
- tweak for im_init_world() changes
- better behaviour for scale == 0 in conversionview
- better original-filename handling
- use im_msb() for GREY16/RGB16 images
- csv2vips wrapper update
- added parse_time
- fontname defaults to "Sans" ... stops a warning on load
- set window title less often
- update i18n infrastructure
started 7.11.10 23/6/06
- sync CVS again
- oop, selected closed columns caused kb grab confusion
- added call8.[hc].. vips8 interface
- new builtins vips_image_new, vips_call
- reworked doc build again, seems to work in dapper now
- added missing .br to man page
- allow '_' in environment variables in "expand"
- mainw tooltip reports operation cache size
- upped default memoisation cache max to 10000
- better caption for Group objects
- oop, mac os x detect was broken
- GSL error handler
- more work on vips8 interface
- add gcc attributes for varargs and noreturn
- mac build fixes
- keep prefs in ~/Library on mac
- vips8 interface done
- more tweaking for vips_call for robustness
- quick stab at background recomp in workspaces ... some stability problems
- tiny Toolitem fixes
- "Calculating ..." appears in status bar during a background recomp
- is_image builtin says yes to vips8 images too
- added Analyze and Vips8 menus
- added vips8_get_header builtin
- better ifthenelse behaviour for image/constant mixes
started 7.11.9 15/5/06
- reverse order of decls in image_name etc. to sensibleify Change Header
options
- better HIST preserving
- bug in complex display control bar (thanks Jean)
- use gtk_disable_setlocale() to preserve LC_NUMERIC setting (thanks Peter)
- more g_ascii_strtod() and friends for double parse/print
- disallow vips funcs with no input args
- gtksheet was freeing pixmaps with g_free(), not g_object_unref()
- better matrix type guesser
- optional link to vips8 for testing
- CSV load/save
- strict reduction of vips_call arguments prevents GC during argument gather
and dangling pointers
- oop, problem in Transform in Image.def
- added "dir" builtin
- always grab focus for bottom entry widget on column select
- even more test view reset tweaks
- added "objects in workspace" count to main status tooltip
- limit number of cursor shape updates
started 7.11.8 22/4/06
- added gravity, Find Projections now shows centre
- added project
- added OpenEXR read support
- fewer int/void* tricks to help x64
- call im_existsf() more sanely
- better Group caption
- don't save/load ->name automatically ... better 7.10 compat
- better pointer printing
- added support for RGB16 and GREY16 image types
- workspace window size is saved in ws file and overrides the global default
- some edit dialogs now done with member automation
- fixed NO_SPLASH
- fixed scroll to row on error, for closed columns
started 7.11.7 11/3/06
- allow complex constants of the form "12j", cf. python (also allow i)
- optionally display complex as "x + yj"
- ifdef'd out some more debugging code .. saved 30kb!
- new Managed class abstracts out code for GC/C managed objects
- Imageinfo now sits on this
- Managedfile object replaces the thing we had for read
- split trims trailing fails too
- scrapped ELEMENT_IMAGE .. we just have managed objects now
- added managedgobject
- added experimental Clock class
- moved some views into modelview.c
- delay showing the hglass for 0.2s
- change clock to seconds, subclass off Real
- modelview now has a right-button menu
- disable tile fade animation for thumbnails
- model _get()/_set()/_load()/_save() now automated
- sort column jump widget
- better scroll-to-column behaviour
- column jump is tear-off-able
- column jump is sorted by column name and name length
- added geometric mean
- added sum, product
- added linear regression
- fixed assert( 0 ) for VIPS operations with an implicit DISPLAY param
- added optional dependency on GSL, added gammq builtin
- print_base was broken for some argument combinations
- shift + mwheel scrolls left-right in workspaces
- update thumbnail on falsecolour / type changes in display bar
- matrix now uses member automation
- main uses GOption command-line parser
- make sure we don't clear dirty on rows coontain errors
- optionview only rebuilds the menu on change
- 7.10 compat defs updated
- itextview/clock fixes to make editing members easier
- added -o cmdline switch
- scrapped print-last mechanism ... printing main from an associated .def file
is much better
- always set argv, allow save of Image, split save to file and print value
- save Matrix as well with -o
- added -e option
- revised man page
- added Find Projections
- raised default memoisation cache size and heap size
started 7.11.6 18/2/06
- custom morph was broken, grid was broken (thanks Dave)
- Matrix_file now uses "search"
- reorganised morph menu slightly
- added Format / CSV import
- better handling of display of very long strings
- added lazy (read "filename") builtin
- \n was missing in expr_info error report
- removed "save successful" info box for great HIG-ness
- added is_prefix, is_suffix, is_substr
- Pathname widgets add to session path
- widgets like Group, Toggle, etc no longer add annoying stuff to tooltips
- readded "auto-recalc" menu item
- renamed Slider as Scale and added a caption field
- oops, string constant "\\" failed
- drag from konqueror might work now
- added hist_thresh, added threshold items to Image / Levels menu
- prettier Scale display, better display of multiline class member formula
- added correlate, correlate_fast, Filter / Correlate
- added "jump to column" menu item, handy for navigation in large workspaces
started 7.11.5 15/2/06
- added "search" builtin
- (c) line changed
- itextview mouse enter/exit now does help/highlight
- itextview insensitive in noedit mode
- tweak formula to stop resize with clearlooks theme
started 7.11.4 18/11/05
- added tile fade pref for Kirk ... it is a bit slow on win32
- fix compiler crash for [1..2] (thanks Jay)
- automatically add an icon to the win32 .exe
- added -main_load_args switch ... just a temp hack
- better -main printing
- added "path_separator" ... either '/' or '\\' depending on platform
- better char constant parsing
- better char constant display
- added path_relative/_absolute/_parse
- prefs now switch between / and \ automatically
started 7.11.3 26/9/05
- display original filename only for iimage which really were loaded from a
file
- ppm read uses direct open, rather than converting to vips
- fixed used-before-set problem in option ... could cause segvs when
displaying rows built from .defs containing errors
- added Filter / Blend / Alpha Blend (thanks rich)
- added Edit / Info (Ctrl-I) to mainw, some stuff there now, space for more to
go in
- removed nip2-7.11.ebuild now that nip2 is in gentoo portage
- desktop integration binds .v files to nip2 (thanks Ruven)
- align cols marks the ws as modified
- configure.in magic stolen from pango ... we now automatically disable
gobject cast checks in production builds
- display formula rather than value if there's a visible graphic
- falsecolour and type applied to thumbnails
- fix gcc4 warnings
- use g_mem_profile()
- plot slice can now plot along any arrow
- oop, some filters inadvertantly overrode width/height
- fix isclass is_class confusion
- itextview only shows value for non-class rows ... we assume members /
graphic will show the value, so we show the formula
- don't apply scale/offset displaybar controls to histograms / fourier images
if Interpret Types is on
- better initial kb focus for file load/save dialogs
- better tooltip for iimageview
- tooltips on demand function added
- colourdisplay, ... adapted to new dynamic tooltip API
- use input-only eventboxes for spinbuttons
- better rowview tooltip
- oops, buf_appendc() was a bit broken, fixed in vips too
started 7.11 (1/6/05)
- view image header now shows meta fields too
- does INTVEC args to vips
- now in CVS
- added Analyze format
- added name2gtype, gtype2name builtins
- added get_header, grid, matrix lr/tb join
- slice into tiles was broken for case tile size == image size
- removed led.[hc], now uses stock system
- always define our own strcasestr
- icc import offers to use embedded profile
- added 7.10 compat mode
- "reset" in display bar resets to workspace default, not to 1/0
- column titlebars reorganised
- reenable gtksheet support now gtkextra-2.0 is out
- original-filename tracks name loaded at
- bumped version to 7.11.2
- oop, fixed a nasty refresh bug
- configure now adds LEXLIB to link line
- pasted gtksheet code in so we can hack it
- added matrix area selects
- added Matrix / Extract / Area
- slightly better default widget handliing in dialogs
started 7.10.11
- docs no longer contain absolute nav links
- increment filename on save works again
- hide closed columns in NOEDIT mode
- install a .desktop file for GNOME (thanks Denis)
- group, right click, ungroup, no longer pops a spurious error dialog
- new pref lets you not use the crosshair in image display windows ... some
desktop themes have very annoying crosshair cursors
- call libMagick less to reduce segvs from the file open dialog with broken
ImageMagick libs
- show args in vips history
- fixed a rounding bug in image resize which sometimes made it miss by a
pixel
started 7.10.10
- fixed crash in vips_call with repeated calls to fns with large image vectors
- fixed crash replacing a region with an image
- fixed exit if temp area was missing (thanks Denis)
started 7.10.9
- allow filenames containing ':' chars
- uses im_render_fade() for prettier image display
- added CCITTFAX4 compression mode for TIFF save
- oops, image save options were being ignored :-(
- fix 64-bit compiler warnings
- fixed problem with very long filenames
- recover-after-crash no longer messes up recent menu
- "Jump to" in program window was broken
- fixed a crash with very large objects (thanks David)
- swap shift/control scroll modifiers to match HIG
- rotate matrix works for any size matrix
- rotate quadrants works for matrix as well as image
- added recalc after reload start stuff
- use auto label wrap
- firefox is now the default HTML viewer on *nix
- limit matrix display size to 10x10 unless we have gtksheet
- small startup speedups
- destroy views when a column is folded away to save some memory
- added Image Rank
- band join is much faster at joining many bands
- safer empty temp area
- added cute column open/close animation
- fixed a couple of problems with region dragging in compatibility mode
- removed column name dialog (thanks Joe)
- program window now lets you collapse the current kit
- allow \r in .def files (so we work with DOS edited files)
- added Image / Tile / Chop Into Tiles
- added 'Open Examples'
started 7.10.8
- explicit gthread dependency makes us work even if vips is built without
threads
- tiny .def fixes
- "-time_save" switch turns on image save timer for benchmarking
- mainw, trace, imageview, program now use gtkaction / gtkuimanager
- mainw and imagewindow 'view' settings now update prefs for you
- trace window uses new gtk_text_buffer/view widget
- image header uses GtkTextView for history display
- program window uses GtkTextView / GtkTreeView
- windows remember their size and pane positions
- fix a crash for edit defs of live widgets in prog window
- removed default file type pref ... now remembers last image and matrix file
type
- added "Set As Workspace Default" to conversion bar
- mnemonics for more popups
- fixed a crash if you quit mainw with an image window open (thanks Jay)
- new default cursor for imageview windows (thanks Jay)
- regions only update when grabbed
- now passes distcheck
- use g_setenv(), g_mkstemp(), IM_FREE*(), g_set_application_name(),
g_set_prgname()
- better cursor change layering
- better initial toolkitbrowser size
- absoluteize & canonicalize VIPSHOME (so we work with a relative path for
VIPSHOME)
- better time-to-go text
- more fixes to help compiles on 64-bit systems
- invalidate operation cache on paintbox actions ... makes paint on FFT work
again
- save settings in APPDIR on win32 rather than a dotfile
- added SAVEDIR environment variable
started 7.10.7
- tiny build fixes
- added "_" builtin function for i18n of toolkit menus
- softer 'unpainted' checkerboard (thanks Kirk)
- added "-i18n" command-line switch ... outputs constant _() strings and quits
- compiled string constants are automatically shared between all defs
- (_ "kjh") substituted at compile time
- started marking up .defs for i18n
- trace_args() was printing backwards
started 7.10.6
- uses fftw3 if available
started 7.10.5 19 oct 04
- removed "beta" from version
- perspective distort works on groups (thanks Joe)
- added get_left/get_top
- chaneg and tag colourspace now have option boxes
- new enum class and option builder cleans up some stuff
- fixed crash for display control bar scale on black image (thanks Mikkel)
- fixed image windows appearing off screen for workspaces made on large
displays being used on small displays (thanks Mikkel)
- un-offset regions during create in compatibility mode (thanks Rachel)
- fixed a race in vips history memo-isation (thanks Joe)
- speedups to vips function call history too
started 7.10.4 4 oct 04
- always include formatted html in dist, and install on install
- enable line crawl on win32
- prefs now autolayout, so look sensible even with font changes
- added Image/Bands/Extract|Insert|Delete
- linear match now works for groups
- prefs were not always saving automatically
- white_balance now takes two args: uses band ratios in small image to
fix large image ... makes using one image to fix a group of images much
easier
- also, works in XYZ, has adjustable white point target
- new icon (also used in About)
- LabQ and LabS conversions were broken
- check for strcasestr in libc
- display symbolic names in iimage caption
- oops, custom rank menu item was broken
- use a dumber sort algorithm for row recomp order ... glib was skipping too
many tests
- thumbnail convert settings update is smarter
- much faster display convert bar
- Joe's .defs are in
- image blend is smarter about reordering args
- small win32 fixes
- oops, did not remove all temp files if debugging was turned off
started 7.10.3 13 sep 04
- to_real now works for toggle & bool
- Rubber menu items were b0rked (thanks Joe)
- Rubber scale removed (rubber transforms now automatically rescale)
- fixed crash if you gave a number as a superclass (thanks Joe)
- win32: block log output to prevent annoying console window appearing
- shared model for toolkits menu and toolkitbrowser for big speed-up on main
window build and better update behaviour
- tk browser columns are reorderable (thanks Joe)
- better image type guessing (thanks Joe)
- thumbnails now use Type hint (thanks Joe)
- added simple number base conversion
- compound unary ops on Rect now work on width/height rather than left/top ...
so abs(Arrow) now gives the expected result
- repaint regionview immediately for better feedback
- group save can save unboxed images and will iterate over nested lists
- added trace VIPS operations, including cache hits/misses
- small menu polishing
- better 'revert to defaults' in prefs (thanks Jay)
- documentation revised
- fixed dependency tracking inside zero-arg hidden classes (thanks Joe)
- help system updated
started 7.10.2 23 aug 04
- convert bar settings now affect thumbnails too (thanks John VanVliet)
- show hglass cursor more often
- free rotate is now -180 to 180 (thanks Jay)
- added 'toolkit browser'
- work on docs
- small toolkit fixes
- better mainw decoration handling
- minor main window menu rearranging
started 7.10.1 28 july 04
+ top-bottom 2 point mos was broken (thanks Joe)
+ added aliases for resample and estpar to help compat mode rubber sheet
+ colour ops on LABQ were broken by the alpha channel stuff
+ larger default max heap size (thanks Mikkel)
+ added ebuild (thanks Ruven)
+ oop, fftw includes missing from IP_CFLAGS
+ added Expression widget
+ suppress unneeded textview in NOEDIT mode
+ better textview layout
+ indent subcolumns in NOEDIT mode
+ better regionview text layout
+ Image/Format reamed to Image/Number Format (thanks Joe)
+ prelight for rows, expressions and spinbuttons
+ better row label layout
+ menus reworked (again) for Expression class
+ oops, resample renamed as transform_search
+ win32 build fixes
+ added "Align Columns To Grid"
+ better focus handling in imageview (thanks Mikkel)
started 7.10.0 21 june 04
+ toolkit menu is now built dynamically from heap ... you can write functions
that generate menus
+ menu items can have tooltips, icons and labels
+ reorganised all menus
+ added "scope" keyword ... helps remove "root" from toolkits and makes them
relocatable
+ added "solarise" filter for fun
+ added "diffuse glow" filter for fun
+ slight improvement to references to non-local members in deeply nested
classes
+ ungroup will now also unpack lists
+ fixed segv if option menus were rebuilt while posted
+ added vips function call cache ... memoisation!
+ added prefs for #cpus and #memoise
+ gah, had forgotten to add several new widgets to model_base_init(), so they
were not loading correctly if used in prefs
+ put tearoffs back and fixed accels
+ added empty-temps yesno on startup
+ -main can output many images correctly
+ display control bar false colour works on RGB images
+ regionviews are offset in compatibility mode
started 7.9.7 1 jun 04
+ enable broken for gtk all the time in program.h (thanks Ruven)
+ now uses im_text() to paint paintbox text (imageinfo.c:2185)
+ better zooming from menu items (imageview.c, imagepresent.c, imagepresent.h)
+ extra recalc on startup to build classes before we load args (main.c)
+ set_output() was missing an "!" before imageinfo_file (graph.c)
+ saner startup error logging (main.c)
+ expr_error_print_all() now goes to a buffer (expr.[hc])
+ program.c has an error lister
+ main.c knows about new error lister
+ prefs.ws had max_undo broken by precedence change
+ String now interprets and expands C escape chars (eg. \n)
+ fixed close program window with selected text crash
+ fixed edit of row with error itext crash
+ added tile and Tile (replicate/mirror ... using im_replicate)
+ leak testing only in DEBUG builds
+ binary and unary operators now track the function they were called from, for
slightly better error messages
+ Number spots trailing characters
+ shadow and text paint work on labq
+ added resize longest axis mode to Shrink_to
+ fixed up menu dumper
+ don't track load/save progress in command-line mode (thanks Joe)
+ arithmetic and relational ops now work on images with a mixed number of
bands
+ UI polish suggestions from Joe are in or noted on the TODO
+ better update of visible hints in imagedisplay
+ new menu item system with "action" member lets you have icons, mnenonics
and i18n for toolkits
+ compatibility system for 7.8 workspaces
+ better recent menu
started 7.9.6 8 mar 04
+ added Group class
+ .def files rewritten for Groups, also many enhancements
+ oops, imageview=>file=>view header was broken
+ prefs option for 1 bit TIFF write
+ scale in display control bar was broken (thanks Ruven)
+ removed on-demand compile, caused strange recomp problems :-(
+ value display no longer decompiles class args
+ tracks lineno for tools
+ better "not defined" error message
+ better "bad parent class" error message
+ better error messages from calling VIPS functions
+ better "link report" error message
+ relaxed the restriction on superclasses ... you can now have anything as a
superclass, including a full constructed multi-arg class
+ detects redefinition of syms within a single parse action
+ precedence change: "?" and "." now the same precedence, like C
+ better "member not found" error message
+ spots nested comments
+ visualise image can handle labq hist
+ case ignored for class names in ws save files
+ SHIFT-mwheel now zooms in and out, like gimp-2.0; CTRL-mwheel scrolls
left-right
+ autosave does not back up system workspaces (eg. prefs) (thanks Joe)
+ raised arrow/region create threshold
+ optionmenu swapped for gtk-2.4's combobox
+ now gtk 2.4 only, gah! too annoying to have lots of ifdefs
+ uses GtkFileChooser
+ oops, String/Number did not implement load/save
+ much polishing
+ row.c no longer tries to recomp all rows that ref "this", was causing
confusion ... so, much faster, but will change row recomp order in some cases
+ hmm, trace was a bit broken
+ auug, instanceof_exact was broken for deeply nested classes, must have been
like that forever
+ fixed a nasty and long-standing bug with shared classes ... we now always
copy code rather than trying to cache it
+ ruler menus now have mm and offset setting
+ got rid of all xoffset/yoffset stuff, what a pain it was
+ Rect (and hence Arrow, Point, etc.) now behaves (roughly) like a complex for
arithmetic
+ better select behavior on thumbnail drag
+ renamed Point as Mark, Point is now a subclass that lets old nip workspaces
load
+ added Fontname widget
+ colour picker can be pinned up
+ better image thumbnail in workspace sizing
+ renamed Filename as Pathname and added a caption
+ all menus items rewritten for new batch system
started 7.9.5 6 feb 04
+ Rotate_fixed now has an option menu for the angle
+ imagearray_chop was broken
+ image thumbnail drags no longer embed the workspace name (unless they have
to)
+ merge workspace now shows an error dialog on failure
+ statusview does not display more than 8 bands
+ workspace saves view mode in files, and mainw knows about it
+ now uses pkg-config to find vips
+ splash does not focus "remove" toggle by default
+ oop, hourglass was broken
+ better hourglass animation
+ select/extend select now works on image thumbnails again
+ PRINT_LAST now done in workspace _dispose()
+ drag image thumbnail to background to make a new column and put in a link
+ compile now delayed until value needed ... saves 10% on startup time
+ value pointers only registered for GC if necessary .. saves another 3%
started 7.9.4 9 dec 03
+ removed last gtk_timeout*()s
+ fixed some memleaks
+ views now _sink() their child views, so even if views don't ever get added
to containers (eg. toolview, rowview), they still get freed properly
+ niprc now sets gtk-can-change-accels ... no one will discover this otherwise
+ added Custom_blur, dropshadow now uses a gaussian blur
+ some better error messages
+ Toolkits=>New items for filename, number, string
+ usage and About have version info
+ row delete now asks for confirmation
+ faster and more comprehensive common subexpression removal ... removed the
'optimise' option, might as well have it on always
+ better session path behaviour
+ much better open recent menu
+ better graphic save/replace scheme ... image filenames now change in a much
more sensible way
+ better iimage/iregion/iarrow caption scheme
+ can now drag from image thumbnails, cool drag icons
+ progress feedback on non-vips saves, and you can cancel too (!)
+ added extract_row, extract_column, extract_band, join_lr join_tb
+ extract_area now works for matricies too
+ better ruler tracking at high magnifications
+ defines HAVE_FFTW so we actually save and load wisdom now
+ "pos_changed" signal stops all the suprious imageinfo changed signals
+ "file_changed" signal lets iimage know when files are swapped about
+ better vips_call error messages
+ image cache is on mtime as well as filename, so loading changed files gets
the new version
+ auto-reload on file change preference
+ reorganised main window menus and scrapped "Insert"
+ done a simple splash screen with some startup feedback
started 7.9.3 20 oct 03
+ better welcome message
+ command-line mode with -main/-script/-workspace/-benchmark flags
+ better middle drag scroll
+ fixed the annoying race condition in repaint
+ fixed annoying rounding problems with colour drag
+ added TRUE/FALSE as synonyms for true/false
+ better image zoom shortcuts
+ more HIG-y layout in NOEDIT mode
+ added String/Number types
+ windows have icons, yea
+ fixed browse icons window
+ message internationalisation done
+ en_GB translation file
+ more higgy Stringset class
+ better help system for dialog boxes
+ paintbox now has buttons for tool select
+ cursor shape change in subwindows
+ load and save accelerators
+ configurable accelerators on the toolkit menu
+ more HIGgy dialogs for sliders, regions and matricies
+ basic "Open Recent" thing on workspace file menu
+ better keyboard nav for workspaceview
+ reworked image viewer for more model-view-ness
+ unified image view state
+ hmm, row_new_heap had a double paste, wonder how long that's been there ...
should be a bit faster at recomps
started 7.9.2 (30 sep 03)
+ toolbar accelerators done
+ image display, colour display, region display all reworked for gtk2-ness
started 7.9.1
+ HIG-ified (I hope)
+ broken into SDI interface
+ prefs dialog
+ toolbar in mainw
+ progress dialogs for image load/save
+ new error message system
+ live watch system
started 7.9.0 (1 aug 03)
+ compiles with gtk2!
+ lots of cleaning up
started 7.8.11 (30 jul 03)
+ better run-nip.sh start script
+ tiny fix to Calibrate_chart, thanks haida
+ big LED stolen from mozilla, just one of them now
+ add "%s" to existsf() calls for filenames with % in, thanks Clare
started 7.8.10 (22 may 03)
+ icc profile JPEG save option
+ "." now on end of datapath in prefs
+ fixed a race condition in regionview ... could crash during paint on slow
machines
+ better vector/image ops
+ D65 <-> D50 conversions improved
+ added d50 macbeth data file
+ added "measure" to _stdenv
+ added "insert", "extract_area" to _stdenv
+ "recomb" now works on matrix, vector etc.
+ more use of extract_area
+ mark_tree() is now iterative, so no stack overflow on large heaps
+ reduce_spine() is (slightly) less stack-hungry
+ recomp_row() will not rebuild models for rows with errors ... is this the
best way to stop it though?
+ calib_chart now works on 16 bit images
+ bumped version to 7.8.10 to match vips ... less confusing
+ changed doc builds so that we can include formatted documentation in the
make dist
+ fix to drag-n-drop code on winders (thanks Jim)
+ fix to incorrect error message in file info view
+ blocked dash crawl on winders, does nothing but flicker
+ "config" help option (thanks Kirk)
+ columns resize on close
+ middle-drag in workspace scrolls
+ new version of Joe's x-ray stuff
+ spec/ now has RPM .spec file
+ added a "run-nip.sh" startup script
+ moved reload to program window
+ drag column and workspace gets a + cursor
+ added "Match" to Image menu
+ added "Tone_for_print" to Print menu
+ new macos icon, thanks denis
started 7.8.7 (10 feb 03)
+ added set of relative constructors for point/region/arrow/etc.
+ used in various places to fix problems with dialogs on images with displaced
origins
+ _vislevel member sets default visibility level
+ updated widget menu items to set vislevel
+ added has_member, get_member builtins
+ add "%s" to everror() calls so we can have "%" in error messages safely
+ better if-then-else overloading
+ add "." to the end of the default search path
+ added "Area", a non-resizeable region
+ option.c was not initing value edit correctly
+ better initial size for option edit dialog
+ added orderlist_scan()
+ better title for region edit dialog
+ better row_save_test() means member ordering does not get lost on clone of
edited rows
+ imagedisplay_link() no longer makes conversion for you ... change to
iimageview.c _init() in step (removes redundant create/destroy pair)
+ imageview_new_area() could pick shrink == -1 in some circumstances (thanks
Joe)
+ drag file to imageview or thumbnail does replace-image
+ Region can now never fail (thanks Clare)
+ better feedback during paint image creation
+ better imageview File=>New=>* for images with displaced origins
+ added Edit_header to Image menu
+ catch errors from libxml2
+ Image == Vector was broken
+ Overlay has a "lock size" toggle
+ added Image=>Insert
+ renamed "Clear edits" as "Reset"
+ saves/restores fftw wisdom for first fft speedup
+ snap-to-* on region drag could resize region for zoom != 1
+ statusbar gave bad numbers for FFT and histogram images
+ use im_invfftr() for speedup
+ better ruler display at high magnification
+ oops, program=>find was broken
+ pin-up now part of dialog
started 7.8.6 (23 dec 02)
+ swapped list for hash table in heap set of managed pointers ... startup time
fallen from 2.4s to 1s!
+ much better heap-full reporting
+ knows about png
+ patch from Hans Breuer:
+ paintbox sort-of hacked back in
+ fixes to file selector on win32
+ misc. win32 #include fixes
+ OK buttons in dialogs now verbs
+ knows about magick
+ oops, Colour_chart_from_matrix and New_CRT_test_chart were broken in 7.8.5
+ new heap_is*() function style handles eval errors better
+ paintbox rewritten ... now paint bar
+ snap to guide added
+ much smarter region repaint system now does true xor animation
+ dash lines crawl in the background
+ Rect/Region/Arrow etc. can now have float args and won't barf on images with
strange offsets
+ default image file format preference
+ colour temperature conversions sorted out (thanks Haida)
+ fourier transforms now work with optical transform, rather than having
optical built into visualisation (helps paintbox)
+ removed use of g_mem_chunk()
+ new colourdisplay class for displaying swatches of flat colour
+ drag-n-drop colours
+ tries to detect C stack overflow in reduce_spine()
+ new trace system reduces C stack usage during reduction
+ fixed a few memleaks
+ copy-on-write for member edit slightly reduces overcomputations and makes
changes feed forward more gracefully
+ scale column coordinates with changes in font size
+ Tilt_brightness now works with n-band images
+ nativize paths
+ drag URIs to main window to load files (thanks Hans)
+ load any file type from command line arguments
+ small menu fixes
+ added RPM .spec files to distribution
+ help launcher for mac os x
started 7.8.5 (12 nov 02)
+ added a bunch of "%s" to allow percent in tooltips
+ rearranged reduce_spine() to trim stack usage ... should reduce C stack
overflow segv on deep recursion
+ added IR sample images to data dir
+ added rachel.con IR sharpen matrix
+ added Join.Array to build an image array
+ added Rubber stuff to Image
+ removed auto column switch on row select
+ added New to imageview window
+ finished-ish docs
+ >3 band images now display as RGB, 2 band images as mono ... helps
display of imported RGBA/GA tiffs
+ better update of toolkit menus on tool change with zero-param classes
+ better positioning in toolkit menus with hidden items
+ default vid crop fixed
+ added Overlay to Image menu (thanks Joe)
+ added Calibrate_chart and Calibrate_image to Capture menu (thanks Joe)
+ help buttons linked to html manual display
+ can now load workspaces from win machines on *nix, and vice versa (tries
both types of dir separator)
+ added Joe's Xray menu
+ present menus and rows in definition order rather than reference
dependence order
+ added Browse_multiband (thanks Joe)
+ can now pop up help viewer on win32 as well
+ knows about new im_LabS2Lab() and im_Lab2LabS() funcs
+ junk Hist on load to lessen balance confusion
+ more helpful save/replace file dialog titles
+ longer doubleclick time
+ sub-menus tear-offable
+ settable default image window size in prefs
+ optional auto-popup of new image rows
+ gtkfilesel2 knows not to select something twice
+ larger default max heap size
+ ws save files are prettyprinted and uncompressed by default for greater
portability
started 7.8.4 (8 nov 02)
+ fixed recover workspaces (thanks Joe)
started 7.8.3 (31 oct 02)
+ acinclude.m4 fixes for mac os x
+ set extension on get_filename if none set and not showing All
+ added Mosaic_force ... no tie-point refining, ever
+ only save edited sub-trees on workspace save ... shrinks ws files to about
1/3 their previous size
+ setlocale for numeric conversions to "C" to avoid "," as decimal point
madness
+ escape C sequences in filenames (eg. "\n" etc)
+ vips functions and builtins now linked via main symbol table, rather than an
extra lookup on "undefined"
+ pseudo-toolkits group VIPS packages and builtins
+ display help text on pseudo-tools in program window
+ "go to def" for program window
+ auto-expand for rows in program window
started 7.8.2 (27 oct 02)
+ set $HOME on win32
+ WinMain on win32 for non-cmdline start
+ -mwindows flag to stop command.com starting for non-command line start
on w32
+ lots of hacking on gtkfilesel2 for win32 compat
+ Matrix_file ""
+ New_mark.Region etc. menu item
+ more robust row recalc on .def edit
+ zero-arg local classes of classes sometimes recomped in the wrong order
(thanks Joe)
started 7.8.1 (18 oct 02)
+ d'oh, matrix constructors have to be classes for is_instanceof to work
+ much better change/refresh/scan behaviour for gtk_sheet
+ uses IM_DIR_SEP* for some win compat
+ many configure fixes for mingw
+ use gtk_fixed for workspace layout for gtkwin compat
+ rename Text -> iText to stop windows breakage
+ woohoo, fixed the grab problem in regionview
+ more robust workspace load
+ polishing
started 7.7.23 (23 aug 02)
+ bug in history tracking
+ better filename select
+ OK buttons in multi-select fsbs turn on and off
+ supress "super" iimages for region/arrow displays
+ rulers and status bar know about Xoffset/Yoffset
+ regionview uses IMAGE cods, converts to model cods and back on
refresh/update
+ defs adapted to origin stuff ... including Mosaic!
+ region create is ctrl-left
+ save-as-TIFF traps errors
+ done Plot and Resize, phew ... all menus finished (the ones I did anyway)
+ added namespaces to XML save file, prettyprint disabled, compression on
+ tooltips for toolkit menu items
+ "Name param1 param1: " string automatically prepended to help text
+ preferences for mainw start window size
+ menus reorganised to be more logical (I hope)
+ Separator class for submenus
+ column save adds enclosing workspace
+ drag in program window was broken
+ #dialog back in again, with an edit dialog
+ "menu item from column" thingy
+ refcount bug for long image load fixed
+ iDialog can autopopdown for represented obj destroy
+ toggle MB free/cells free
+ use gtk_sheet for text matrix display
+ configure detects gtk+extra for gtk_sheet
+ iimage caption displays name of most derived class
+ relaesed as 7.8.0 ! yea!
started 7.7.22 (15 july 02)
+ started Print menu
+ added "expand" builtin ... expands environment variables in a string
+ filesel history fixed
+ reconstruction from overridden constructor in oo removed ... now just there
for edits
+ done Colour menu, started Morphology
+ done Morphology menu, started Filter
+ if_then_else is now an overrideable binop
+ use (double) for image size calc to avoid int overflow
+ logical_and and logical_or can be overloaded ... still shortcut for plain
types, so not quite like other overloads
+ done Filter menu, started Freqfilter (will become part of Fourier)
+ done freqfilter, started Histogram
+ sliders no longer each have a continuous member ... set with a watch
directly from prefs
+ histogram visualisation
+ better trace will never evaluate graph unexpectedly
+ Real widget ... just draws a real number
+ better row name set system gets less confused
+ can now edit superclass constructors
+ better recovery after error in row recomp
+ better region caption
+ better scroll to new object for main window
+ "<", "<=" work on strings
+ started Image menu
+ small fixes for large files
+ image window title bar update fixes
+ auto select 1st matching file on load if no file specified
+ rename Patch -> Colour to fix class name / gtk type name confusion
+ classmodel_class_instance_new() now uses CLASS_new in preference, if defined
... lets you have separate behaviours for _type object creation and OK
in edit dialog
+ Xoffset/Yoffset added to header view
+ default class == thing, class != thing operations in _Object
+ class params no longer have subcolumns ... stops O(n**2) increase in
complexity with workspace size!
+ multiple select for for fileselect ... load many images/matricies/etc at
once
+ on load, objects renamed to the filename they were stored in
+ better workspace scroll on new object
started 7.7.21 (21 june 02)
+ override Pixel constructor in Colour and Generate_colour.widget
+ rename ... ivector -> iarrow
+ new op type for colour-through-image operations
+ better expr->err update on link clean
+ convolution matrix display now shows scale & offset
+ Matrix is now the base class, Matrix_vips etc. inherit from that
+ tags now decompile for better error messages
+ better graphic rebuilds for sub/super classes
+ better member-not-found error message
+ better new column positioning
+ rotate menu started
+ convert menu started
+ segv on CTRL-S on local objects fixed
+ flash help on row buttons
+ suppress display of superclasses with a leading '_'
+ better auto new workspace name
+ better column rename on ws merge
+ better scroll-to-visible for columns
+ row just uses "name" property now ... no "sym"
+ toolkit list now scrolls down RHS of main window ... no more resize probs
+ parent/child relationships shown with colour changes in rowview
+ removing column with an error resets error state properly
+ x2 speed up for recalc with fancy heap node serial number system, heh
+ better regionview create/destroy/link fixes occasional bad casts
+ better auto workspace scroll on load
+ scrapped .hd/.tl etc., too hard to overload ... builtins now
+ '' chars are now unsigned, signed chars are numbers in [-128, 127], chars
default to unsigned (now unlike int, short)
+ regions/arrows/etc. now defined on Image, not image
+ better trace system does not confusingly interleave prints
+ small filesel fixes
+ Complex, List, Fourier menus
+ display control bar knows about fourier images
+ display control bar menu resets properly
+ bits of Arithmetic broken out into Log and Trig menus
+ Filename widget ... should help make an ICC profile chooser
started 7.7.20 (17 may 02)
+ redone configure system ... data files now go in share/nip, not
share/vips/nip
+ fixes to Pixel class and Generate menu
+ -image is now *-1, not im_invert()
+ separate '!' and '-' operators for better C-style semantics
+ better toggle/extend select for thumbnails
+ Yxy display
+ ops on Matrix class done
+ stats menu added
+ removed matrix size limit
+ errors -> ierrors to please mac os
+ keep local edits on reload
+ oops, classes as parameters were broken
+ member edit of local classes was broken
+ class arg checks inherited
+ view header dialog in imageview
+ colour menu
+ nasty bug killed for discovered dynamic references to dirty symbols
+ Colour widget shows a swatch and lets you gtkcolorsel for edit
+ rowview menu on subrows too, plus select/extend-select
+ ceil/floor added as builtins
+ lots of small polishes
started 7.7.19 (10 apr 02)
+ it's now (c) 2002 :)
+ better LED spacing
+ "stop" sign toned down
+ split Expr to static stuff (Compile: parse/compile logic) and dynamic
stuff (called Expr still ... reduce stuff)
+ Exprs can share Compiles if we know they will have the same code
+ copy-on-write for edits
+ 100s of times faster for large workspaces: load ws with 270 images = 7s
+ oops, temp files now unlinked properly
+ icon browser refreshes in idle handler, plus better cancel behaviour
+ destroy callback added to iDialog, popdown_cb memleaks plugged
+ memleak in model rewrite plugged
+ all class instances in hierarchy have the same "this" ... simplifies OO
stuff a lot
+ removed heap_gc() from REDUCE_CATCH_START() for big speed up (d'oh)
+ smarter row dependency finder
+ leak plugged in get_image_info, plus more informative
+ reset menu item on graphic edit objects
+ ooop, added '\'' as a constant
+ C-style hex constants, better real constants
+ even fancier operator overloading scheme does builtins too, and is
extensible for other user funcs
+ abs/max/min/etc. can be overloaded
+ lots of menus done!
+ newimage dialog removed
+ classes with supers don't display as pull-rights in toolkits
+ updated vips.m4 for IRIX
+ top level dirties now say what they're blocked on in tooltip
+ cast to int type now behaves as C (no more round to nearest)
+ reload toolkit works better
+ smarter image cache dependency tracking fixes occasional segv
+ _animate() in class build for greater interruptibility
+ "++" is lazier for list args
+ image ++ [] allowed
+ builtins can be overloaded
+ tidies to reduce/action
+ dmalloc support
+ better column/row select behaviour
+ better event handling in image windows
+ scroll wheel in image windows
+ class typecheck delayed until first reference for great speedup
+ lots of polishing
+ Mac OS X fixes:
- change include order in ip.h for mac os x
- test for mount.h, util.c, ip.h changes for space free display on mac os x
- file size stuff changes
- small include order changes
- temp_name() fixes for duff mkstemp()
- ignore GDK warnings (eg. locale not known)
+ changeable max print length, dynamic buffers
+ Pixel[] class
+ ontop no longer saved for workspaces
+ text values display left justified
started 7.7.18 (1 mar 02)
+ load images from command line
+ new operator overloading system
+ new check system allows check to be inherited
+ nasty ii_destroy bug fixed
+ new trace option for builtin functions
+ nasty row destroy bug nailed
+ much better busy/not busy handling, feels smoother
+ more sensible workspace checkmarking, good speed improvement
+ more info displayed in image status bar
+ red error arrow not always unset ... eg failed file load
+ try to load a damaged (eg. truncated) image file ... wrong err msg
+ recover ws after crash fixed
started 7.7.17 (23 jan 02)
+ changed appearance order for subcolumn
+ params and super start with vislevel 0
+ '.' now binds more tightly than '\'
+ '\' renamed to '?'
+ '&&' and '||' split to separate logical and bitwise operators
+ removed local function display
+ better code generated for access to members across nested classes
+ better preservation of sharing in class browser
+ decompile makes loop labels
+ non-row locals link back to enclosing row correctly
+ inter-row dependencies via non-row locals spotted
+ user def of default constructor banned
+ nested classes with implicits refs now work
+ operator overloading added
started 7.7.16 (14 dec 01)
+ delay GC to once per sec where possible
+ ruler preferences
+ rows only reset on enter, not on dirty
+ graph.c indents prettily for easier debugging
+ nasty GC bug nailed
+ trace prefs options
+ assert() on program forced close fixed, class redef bug fixed, program
window tracks filemodel->modified more closely
+ region clone menu
+ destroy regionviews on hide
+ smarter and simpler layout resize
+ final (I hope) precedence changes ... now just like C
+ '<<', '>>', '~' and '@' (function compose) added
+ row recomp refinement ... simpler and faster
+ oops, menu items all done in imageview
+ row locals with external refs were not adding to top level dirties correctly
+ more rigorous backtracking for deducing recomp order
+ fancy pantsy heapmodel_reset() system for great justice
+ traced and optimised recomp ... seldom repeats itself now
started 7.7.15 (16/11/01)
+ rename workspace on top level load
+ added workspace merge
+ added column merge
+ clone stuff done
+ layout sizing done (tho' not very well)
+ toggle select and range select for rows
+ junked all old menus (now in scraps)
+ fancy new view manager only creates views when required ... x2 speed up on
workspace load
+ file browser lets you change the suffix by typing (eg. type "fred.jpg" into
save box while files-of-type is VIPS and you save JPEG)
+ replace and save matrix and image graphics
+ new Matrix class hierarchy
+ .nip-x.x.x directory stuff added, "Preferences" workspace loaded on startup
+ Watch class for getting pref settings quickly in C
+ removed all .iprc code
+ region drag now synchronous, so it can't lag
+ max heap size scales with workspaces loaded
+ duplicates automatically removed from paths, system files renamed to user
directory on auto load
+ workspaces reorder correctly
+ new row number layout scheme using on model pos layout
+ row drag 'n drop reordering
+ is_class predicate
+ Abut.Left_right and Add menu items done as trials
+ syntax changes to become more C-like:
and/or/eor/not keywords removed ... now &&/& ||/| ^ !
& (join) becomes ++ and does list cat too
! (region extract) removed
^ (raise to power) becomes **
+ precedences changed to be more C-like ... `\` now binds like array subscript
started 7.7.14
+ oop, about copyright line was wrong
+ model now has child_add(), child_remove() methods
+ child_add() child_remove() used for much init and cleanup ... nice!
+ fewer typed parent/child pointers in models ... getters to cast model
parent/child instead
+ parent_add(), parent_remove() methods in model
+ XML prettifier does indenting in save files
+ load/save moved to model from filemodel
+ text now loaded too, new rhs child add system
+ forward references in workspace load now work
+ simplified _build_display() system with _link() method for view subclasses
+ new iregiongroupview class for managing sets of region displays
+ more intelligent naming of objects across workspaces
+ workspace modified set for more actions ... reflected in mainw titlebar
+ context pointers are back, but inited from _child/parent_add() system
+ split to nip package
+ reworks for new package structure
+ row_recomp() sorts regeneration by row depth
+ new scan/reset system
+ Text now derives from Heapmodel, scrapped the last of the model_link() funcs
+ _refresh_value() -> _update_model()/_update_heap() pair, with ->modified to
control behaviour
+ _stdenv.def changes ... added is_space, split, splitl, split_lines,
parse_pint, parse_int, parse_float
+ program window parses on popdown
+ gtkutil has set-2-adjustments-at-once convenience function
+ all tally models (subcolumn downwards) now derive from Heapmodel
+ Heapmodel -> Heapmodel/Classmodel
+ all widget models derive from Classmodel
+ Text now delays parse/compile until recomp
+ regenerate system now uniform between graphic and text representations
+ new model_freeze()/model_thaw() system to reduce model_changed() emissions
+ XML load/save done for all class widgets
+ only save edited formula ... deduce others
+ better target symbol naming for region/point/vector/guide create
+ dialog boxes now have GNOME2 button ordering ... F1 binds to help
+ old row_change() mechanism ditched ... much simpler and clearer now
+ all class.c getters renamed
+ _update_model() -> _update_model()/_new_heap() pair ... faster
+ ditched base/derived instance vars, new rebuild from base system from new
unified model recomp system
+ ditched remake-from-base system :-( can no longer do islider ... but much
cleaner and more intuitive behaviour
+ tslider is now a proper widget
+ better jumping region labels during scroll
+ switch current column on row select
+ region labels / image window titles change helpfully on workspace switch
+ fantastically more complicated row_recomp() now deduces recomp order from
dependencies
+ graphic displays only save and restore their settings if they've been edited
+ text edit resets edits on sub rows
+ don't make a display or RHS for system rows (eg. this, check, name)
+ mainw_countdown_animate() now updates display again ... this may cause
problems, have to see :-(
+ tslider has elaborate workaround for slider destroy during changed callback
problems
started 7.7.12
+ added program window
+ reworked TODO list ... only 140 issues outstanding ... :-(
+ toolkitgroup now emits "changed" on any tool/toolkit change
+ find/find-next thing for program
+ new info mechanism
+ link report finds undefined symbols
+ tree view maintains sort order
+ model_child_add_before() to aid drag and drop reordering
+ toolview does menu reordering
+ popups pass down host widget
+ general "are you sure you want to remove" for models
+ destroying a tool now destroys associated symbol too
+ destroying a toolkit destroys all contained tools
+ destroying a top level row destroys the symbol
+ symbol/filemodel/model destroy split to finalize as well
+ stable owns a ref to syms it holds
+ if destroy a sym, mark all parents as having "not defined" errors
+ expr_error_set() now zaps compiled code to force recompile ... ensures user
fixes problems properly
+ textview always recompiles lines which you hit return on
+ better typecheck error messages for widget classes
+ right button menu on rulers
+ xml save
+ load_text and save_text methods in filemodel.c for tool/toolkit load/save
started 7.7.11
+ added trace window
started 7.7.10
+ BI_CONS is lazier and faster
started 7.7.9
+ "print" builtin added
+ oops, parse_function() was not passing sym down
+ better checkargs function
+ x-ray print menu patched, duh
started 7.7.8
+ browse now uses new image display code
+ ooops, PPM/PGM/PBM read added
+ conversion is now refcounted
+ all old image/region code removed
+ old window/dialog code removed
+ paintbox/edit/magic/menu/calibrate/cursor/request/dragdrop also gone for now
+ last of X11/Motif gone ... # of lines down 20k!
+ iregion/iregionview added
+ finally GNUified it
+ fixed newimage dialog
+ region redone as subclass of image
+ ip class names now have initial caps
+ better iwindow popdown behavious
+ imagedisplay implements gtk focus model
+ imageview key navigation: left-right-up-down-in-out, zoom to fit
+ imagedisplay repaint probs fixed
+ new expr_value_new()/_destroy() system to track images
+ regionview added
+ cursor manager added to iWindow
+ jumping region labels!
+ nasty reduce bug nailed ... heap corrupted if super-class constructor failed
+ class construction errors handled gracefully
+ rubberbanding regions on imagepresent
+ point and vector display types added
+ ivector/ivectorview added
+ instance vars can be virtualised by heapmodel ... for code sharing between
iregion/ivector/etc. ... sort of a lame MI fudge
+ regionview morphs between display types if unfrozen
+ Region/Vector/Point/HGuide/VGuide classes added
+ lists/image-bands index from zero
+ mark spine stack on GC ... oops, sometimes broke for nested recomp
+ reduce.c -> reduce.c/action.c
+ new action_strict() interface handles nested reduce_spine() calls correctly
... allows mutually recursive locals
+ some reworking of reduce.c ... still not very pretty :-(
started 7.7.7
+ [] can have whitespace between the [s
+ conversion.c added ... manages display conversion model and region/thread
display stuff
+ _list.def and _stdenv.def reworked from Miranda 2 stdenv:
foldl function args reversed
swap renamed as converse
foldl1, foldr1, map2, merge, replicate, scan, until added
faster sort (merge sort)
+ option/optionview pasted back in
+ image/option parts of sym->recomp scrapped
+ tslider widget ... entry, plus slider
+ conversionview ... display control bar
+ tslider does non-linear sliders
+ now uses 100%, 25%, 400% etc. to show magnification
+ oops, mono to labq was broken
+ statusview.[hc] added ... status bar!
+ iimage now tracks derived image value as well
+ better file_info display for JPEG/TIFF/PPM in file load
+ iimage now just has vips_image as class param
+ matrix/matrixview added, old mask stuff removed
+ lots of memory leaks removed (thank you memprof)
+ workspacegroup is a symbol ... workspaces are named root.Workspaces.blah
+ matrix resize
+ matrix load
+ is_string now defined in _stdenv.def, rather than being built in
+ vips_call knows about new matrix representation
+ better scanning system for text widgets
+ better uop/bop error messages with text_decompile()
started 7.7.6
+ decompile for parameter edit, value displays parameters (tho not secrets)
+ save/save as/close added to model
+ new workspace save done
+ better notebook tabs
+ new iWindowSusp stuff now allows composition of window funcs
+ iDialog now allows multiple OK buttons
+ Save/Don't save/Cancel on filemodel close
+ nasty nested iDialog problem found and fixed
+ close all filemodels on quit
+ tookit.c -> tool/toolview/toolkit/toolkitview; toolkits are filemodels
+ all sprintf()s gone
+ empty/load/replace for filemodel done
+ workspacegroup/workspacegroupview added
+ toolkitgroup/toolkitgroupview added
+ model -> view links removed, signals for 'changed' ... bit simpler n nicer
+ views track parents and children
+ scan set for auto re-reads of widgets
+ reset/scrollto now signals too
+ now called ip2
+ gtkdisp imagedisplay/present/asynch code pasted in
+ "image" builtin renamed as "vips_image"
+ image class added
+ iimage/iimageview added ... thumbnail display!
+ new (smarter) behaviour for spin expand/shrink; affects rhsview visibility
as well as subcolumnview visibility
+ threaded display code patched in
+ imageview added
+ image display rulers, magnification, titlebar wired up to menus
started 7.7.5
+ better centering of dialogs over their parents
+ oops, silly bug in stable_resolve()
+ new expr_resolve() sorts out static/dynamic scoping problems
+ uses mkstemp() for temp image file names
+ new mark dirty scheme
+ small destroy bugfixes
+ better tallyrow_recomp_rethink() code finds the right expr more often
+ better binding to root for dynamic exprs
+ expr_resolve() before expr_check()
+ "super" member is a regular member, not a parameter
+ about dialog, with easter egg :-)
+ new code for recomputation of superclasses ... does "this.x" if any supers
change, tracks use of params in super construct
+ warp focus to column bottom on column select
+ ':' char banned in file names
+ workspace load/save/save as/close done
+ workspace tab menu and tooltip
+ don't mark zombies dirty
clean up of front end started
+ Symbol extends GtkObject, Workspace extends Symbol
+ Columnset renamed Workspaceview, members moved between it and Workspace
+ Column split into Column and Columnview
+ refresh_note() system added
+ Model class underpins symbol/workspace/column etc.
+ tallycolumn -> subcolumn/subcolumnview
+ tallyrow -> row/rowview
+ tallyitem -> view
+ tallyrhs -> rhs/rhsview
+ text -> text/textview
+ Heapmodel class added to underpin slider/toggle/option/matpanel
+ slider -> slider/sliderview
+ toggle -> toggle/toggleview
+ mono <-> sRGB gammas both ways now
started 7.7.4
+ reload $VIPSHOME/lib on menu and plugin reload
+ no longer includes gtkintl.h
+ better namecaption API
+ better iwindow/idialog/namecaption build inheritance
+ cleaned up naming in main.c
+ gtkfilesel2 now inherits from idialog
+ filesel now inherits from gtkfilesel2
+ browse now inherits from idialog
+ now builds cleanly on Sun cc
+ found horrible gtkfilesel2 bug
+ fileselect removed
+ toggle/option/matpanel edit uses idialog
+ secret optimisation supressed for tally display
+ edit value (rather than source) for class params
+ edit reset on column after ENTER
+ asynch/menu bug fixes backported
+ Histogram.def renaming
+ -,/,* for realvec
started 7.7.3
+ secret now in terms of expr
+ compile now in terms of expr, not sym
+ bulletproof errors()/verrors()
+ resolve_names now knows about tally scopes as well as symbol scopes
+ linked global recompute and tallyrow recompute up
+ new link object joins up topsyms for recomputation ... saves a search on
tallyrow dirty, makes multiple external refs work
+ better slider edit dialog
+ new code for '.' operator now records context in heap, so we can spot
dynamic dependencies
+ improved link objects ... better handling of multiple links, more stuff
deduced, support for static and dynamic links
+ dynamic dependency management
+ class parameter edit
+ new spin widget for class display open/close
+ class member visibility table, controlled by spin widget
+ new im_vipshome() startup code
started 7.7.2
+ ws error button colour fix
+ big sym/expr/row relationship reorganisation
+ better error handling
+ better tally tooltips
+ better toolkit flash help, plus flash for sub menus
+ fixed some input_push/pop() problems
+ reorganised main menus, better pull-right display rules
+ automatic.c -> mainw.c ... lots of renaming and tidying up
+ multiple workspaces linked to symbols, columnsets now make syms local to
their workspaces
+ iwindow/idialog improvements, newcolumn/workspace dialog is now subclassed
off idialog
+ countdown fixes
+ another nasty tallyrow destroy bug
+ error message display fixes
started 7.7.1 ... 19/10/00
+ another nasty destroy bug
+ class browser looped for some classes containing errors
+ default constructor now not displayed (unless overridden in an enclosing
class)
+ recomp inside a class instance done
+ abs in _stdenv.def failed for complex
+ nasty gcc error in class_member() with -O2
+ tallytext rhs handling broken out into tallyrhs ... tallytext is simpler
... now have graphic/klass/text display
+ new tallyitem_trigger system with better error propogation
+ fold/unfold button for class instances
+ button tooltip displays long messages
+ tally => row rename
+ recomp/refresh/refresh_value sequences optimised
+ expr_clone() now works for function members of classes
+ refresh_value no longer uses _trigger() propogation mechanism
+ now tracks prhstext ... everything but the function name ... needed for
class edit of local functions
+ class/super now properties of expr, not sym ... classes are expressions,
not symbols
+ displays args to function members of classes
+ sym_tab tracks insert order, used to order class members in tally
+ table_find_child handles hidden children
started 7.7.0
+ default constructors
+ escape cancel in idialog
+ 'root.' and 'workspace.' static scope references
+ recalc dynamic dependencies on link
+ super-class constructors are blocked from referring to locals (other than
params)
+ class_member_base() stuff sorted out in slider.c ... usually need
non-overridden value
+ display update block mechanism for tally stops widgets updating
themselves
+ slider text value display redone
+ fixed a couple of nasty destroy bugs
+ 'Arithmetic.Add' now does sliders!
+ released as 7.7.0
================================================
FILE: Makefile.am
================================================
SUBDIRS = \
src \
test \
man \
share \
po
EXTRA_DIST = \
autogen.sh \
doc \
proj \
m4 \
screenshot.png \
nip2.desktop.in \
nip2.xml \
nip2.appdata.xml
nip2appdir = $(datadir)/applications
nip2mimedir = $(datadir)/mime/packages
nip2appdatadir = $(datadir)/appdata
nip2app_DATA = nip2.desktop
nip2mime_DATA = nip2.xml
nip2appdata_DATA = nip2.appdata.xml
install-exec-hook:
-rm -rf ${DESTDIR}$(datadir)/doc/nip2
$(mkinstalldirs) ${DESTDIR}$(datadir)/doc/nip2
-cp -r ${top_srcdir}/doc/html ${top_srcdir}/doc/pdf ${DESTDIR}$(datadir)/doc/nip2
-rm -rf ${DESTDIR}$(datadir)/doc/nip2/html/CVS
-rm -rf ${DESTDIR}$(datadir)/doc/nip2/pdf/CVS
if UPDATE_DESKTOP
install-data-hook:
-$(UPDATE_MIME_DATABASE) ${DESTDIR}$(datadir)/mime
-$(UPDATE_DESKTOP_DATABASE) ${DESTDIR}$(datadir)/applications
endif
dist-hook:
# make sure we don't get any .svn dirs from EXTRA_DIST
# also "fred" gets left around occasionally
-find $(distdir) -name .svn -exec rm -rf {} \;
-find $(distdir) -name fred -exec rm {} \;
uninstall-hook:
# make sure we have write permission for 'rm'
-chmod -R u+w ${DESTDIR}$(datadir)/doc/nip2
-rm -rf ${DESTDIR}$(datadir)/doc/nip2
-$(UPDATE_MIME_DATABASE) ${DESTDIR}$(datadir)/mime
-$(UPDATE_DESKTOP_DATABASE) ${DESTDIR}$(datadir)/applications
================================================
FILE: NEWS
================================================
================================================
FILE: README.md
================================================
# nip2 --- a user interface for libvips
We now have a first public test release of nip4, a rewrite of nip2 for the
gtk4 UI toolkit. If you have some time to try it, any feedback would
be very welcome:
https://github.com/jcupitt/nip4/releases
## nip2
nip2 is a GUI for the [libvips image processing
library](https://libvips.github.io/libvips). It's a little like a spreadsheet:
you create a set of formula connecting your objects together, and on a change
nip2 will recalculate. This makes it convenient for developing image processing
systems since you can watch pixels change as you adjust your equations.
Because nip2 uses libvips as the image processing engine it can handle very
large images and only needs a little memory. It scales to fairly complex
workflows: I've used it to develop systems with more than 10,000 cells,
analyzing images of many tens of gigabytes. It has a batch mode, so you
can run any image processing system you develop from the command-line and
without a GUI.

## Installing
You can probably install nip2 via your package manager. For
Windows and OS X, you can download a binary from the [nip2 releases
page](https://github.com/libvips/nip2/releases). If you have to build from
source, see the section below.
## Documentation
nip2 comes with a 50-page manual --- press F1 or Help / Contents in the
program to view it.
## Building nip2 from source
In the nip2 directory you should just be able to do the usual:
```
./configure
make
sudo make install
```
By default this will install files to `/usr/local`. Check the summary at the
end of `configure` and make sure you have all of the features you want.
If you downloaded from GIT you'll need:
```
./autogen.sh
```
first to build the configure system.
nip2 needs vips, gtk2 and libxml2 at runtime and flex/bison at compile time.
If you have fftw3, gsl, goffice, libgvc you get extra features.
### snapcraft
Rebuild snap with:
```
snapcraft cleanbuild
```
Though it's done automatically on a push.
================================================
FILE: THANKS
================================================
nip THANKS file
nip is a rewrite of ip, so see the THANKS file for that package.
We've had very helpful funding from the European Commission and from
Hewlett-Packard.
================================================
FILE: TODO
================================================
- add tests for new stuff
- seeing occasional "rewind image with active regions" message
- should parse_float / _int etc. allow leading and trailing spaces?
(split is_space x)?0
- how about adding
zip2 10 [1..5] == [[10, 1], [10, 2], [10, 3], ..
should be harmless, and quite useful
same for zip3 etc. as well
check zip use, we probably have this code there already, in various places
- sharpen should use new interface?
- can we call affine from nip2 vips_call? do we need a double array?
- hough_circle etc. don't get cached ... they use the vips8 API and the vips
cache only works for vips8
we can't turn on the vips8 cache since it does not know about invalidate
- columns can move about on load in large workspaces
- hide tabs if only one tab in window, though we'd need to allow tab drop
anywhere in window for that
- Matrix / New / Laplacian
edit a cell, turns into a plain matrix
need to override edit method
same for gaussian
rather tricky, compared to square / circle etc.
- breadcrumb trail for prog window, so you can get back to where you were?
- lambdas don't pattern match?
(\[a, b] a + b)
- load jpg, ^Q, no leaks
load jpg, paint bar, paint one dot, ^Q, no leaks
load jpg, extract area, paint bar, paint one dot, ^Q, leaks
load jpg, extract area, paint bar, paint one dot, ^Z, ^Q, leaks
load jpg, extract area, paint bar, paint one dot, close window, ^Q, leaks
seems to leak:
original image,
one large regions on that image (full width)
extract area operation
extracted image
region a bit bigger than paint action on that image
0) VipsRegion (0x8b052a0)
VipsRegion (object), base class VipsRegion: 0x8b052a0, im = 0x887aad0, left =
192, top = 128, width = 45, height = 2 VipsRegion (0x8b052a0)
1) VipsImage (0x887aad0)
VipsImage (image), image class 237x202 uchar, 3 bands, srgb, partial VipsImage
(0x887aad0)
2) VipsImage (0x8016b30)
VipsImage (image), image class 972x1296 uchar, 3 bands, srgb, openin VipsImage
(0x8016b30)
3) VipsRegion (0x8b05340)
VipsRegion (object), base class VipsRegion: 0x8b05340, im = 0x8016b30, left =
0, top = 30, width = 972, height = 283 VipsRegion (0x8b05340)
4) VipsExtractArea (0x882a910)
VipsExtractArea (extract_area), extract an area from an image - extract_area
((VipsImage*) 0x8016b30) 142 158 237 202 VipsExtractArea (0x882a910)
something to do with vips_image_wio_input() and the way it rewinds a PARTIAL
image? called from im_rwcheck()
- os x build reports missing jasper dylib?
- draw_circle could extract, draw and insert for huge memuse reduction
- section on compat mode for the docs
see mail to MvGulick for some notes
- expose more of the tone funcs in nip2
- quite a few hist operations have no GUI ... histspec, for example?
- nip2 should use zooming support, if possible
- the windows setup .exe install a bazillion .png icons we will never use,
then installs them all again as .svg, which we will certainly never use
- add extract_volume, cf. "grid"
record tile_size in meta somewhere? grid could set it, save a parameter off
extract_volume
also extract_sequence to get volume over time
- image + complex constant would be nice
- ban parameters which are built-ins, eg. "im", "re" etc., you get nasty
crashes
see also notes below: a new parser could fix this
can only ban for new code? do we have duff code in compat?
argh yes there are at least 15 like this, fix them or fix the parser? also
need to disable this check for compat defs
better to fix the parser, it can't be that hard
need to fix up the list comp compiler too, sigh
- we can't define local superclasses at the moment
eg. consider:
Fred = class {
Jim a = class {
value = a + 12;
}
Jennie x = class Jim x {
value = 99;
}
}
you can't do (Fred.Jennie 12) since Jim will have a secret 'this' param
(because it is a class member) and superclass constructors can't have
secrets
don't automatically give all members 'this' as a secret, check that they
make references to other class members that do need secrets first
- turn on GM in prefs, have to restart before _stdenv.def:magick sees the
change
- try this:
Workspaces.untitled
has_member "A1" A1
doesn't seem to work?
- matrix_gaussian_blur could have an 'accuracy' or 'max error' param? expose
in custom blur etc.
- oo_binary etc. needs revising, we don't search down branches as we should
for example, Matrix does:
// compound ... don't do iteration
[this.Matrix_base (op.fn this.value x.value),
(is_Matrix x || is_Real x || is_Vector x) &&
op.type == Operator_type.COMPOUND_REWRAP],
which is stupid, we should not wire Real and Vector in there, it ought to be
something like:
[this.Matrix_base (op.fn this.value x),
op.type == Operator_type.COMPOUND_REWRAP],
ie. don't strip the .value off x and rely on op.fn to do that, but this
breaks in various ways
remove all of _Object and redo it, thinking about what we want operators to
look like and what we want types to look like.
Have a base class for operators that does most of the standard stuff
get rid of the operator types rewrap / arithmetic / relational etc. etc.
- try
point re
= x
{
(x, y) = re;
}
it's the 're' param, it stops x being bound to the
get-real-part-of-complex builtin
expands to
point re
= x
{
$$x = re;
x
= re $$x, is_complex $$x
= error "bad match";
}
add secrets
point point.re
= x point.re
{
$$1 $$1.re = point.re;
x x.re
= x.re ($$x point.re), is_complex ($$x point.re)
= error "bad match";
}
x compiles to
if_then_else (<symbol "point.x.is_complex"> (<symbol "point.$$pattern_lhs78"> <symbol "point.re">))
<symbol "point.x.re"> (<symbol "point.$$pattern_lhs78"> <symbol "point.re">)
<symbol "point.x.error"> <Managed* 0x37c5a80>
abstracting point.re
after var abstract
((S ((Sr (if_then_else <compileref "point.x">)) ((Sl ((Sr (&& <compileref "point.x">)) ((Sr <symbol "point.x.is_complex">) <symbol "point.$$pattern_lhs78">))) true))) ((Sl ((Sr SHARE0[(: <compileref "point.x">)]) ((Sr <symbol "point.x.re">) <symbol "point.$$pattern_lhs78">))) ((REF0 (<symbol "point.x.error"> <Managed* 0x3a55980>)) [ ])))
reduce and get
reduce_spine: (<symbol "point.x.re"> (<symbol "point.$$pattern_lhs0"> (I (1,2))))
reduce_spine: (<symbol "point.re"> (<symbol "point.$$pattern_lhs0"> (I (1,2))))
sym-param found, argh: point.re
maybe fix this when we revise the parser
would be a good time to add multiple definitions as well
- redo name resolution in parser ... scrap the patch thing, instead have a
separate 'resolve' step that runs after parsing a top-level
don't create ZOMBIE symbols, instead make REF nodes in the tree
this binds local references, but leaves external refs dangling
we do a final link at load time when we copy into the heap
do we need zombies at all now?
make a fork for this
- we have ws->window_width, can we use the one on Model now instead?
- new inplace stuff needs a test suite
- 'don't show this dialog again' on delete row dialog, also in prefs
box_yesno() could take a string which is the name of a pref to check for
ask-or-not
- how about something that does:
im' = operation_list [a, b, c, d] im
it does a fold:
im' = d (c (b (a im)))
but the intermediate images are reused, so you can do in-place stuff with it
we could get rid of lineset!
- mac binary has a broken im_text() argh
- do we allow
[r, g, b] = Image_file "babe.jpg"
since ? is band index and list index, it seems to make sense
we have
image ++ image
image ++ [] == image
for bandjoin, so that lines up too, I guess
hmm
reverse image
to swap the bands over? heh need to be able to override hd and tl
- Ackermann
http://shootout.alioth.debian.org/great/benchmark.php?test=ackermann&lang=all&sort=cpu
A x y
= y + 1, x == 0
= A (x - 1) 1, y == 0
= A (x - 1) (A x (y - 1));
correct test result: A 3 4 == 125
A 3 10 is benchmark test ... we fail with a "C stack overflow" error
A 3 9 == 4093 works OK
we could make this a lot quicker with some arithmetic streamlining
could we do tail-recursion elimination?
strictness analysis would help too
- Fib
http://shootout.alioth.debian.org/great/benchmark.php?test=fibo&lang=all&sort=cpu
F x
= 1, x == 0
= 1, x == 1
= F (x - 2) + F (x - 1);
correct output F 32 == 3524578
cima is ~370s for this (!!)
work machine is about 50s
dell vostro laptop is 45s without optimiser
- turn on DEBUG in heap.c, run the fibonacci benchmark
we heap_copy F every time it recurses! because when we heap_copy we don't
link recursive references
try fixing this ... but remember the problems we had with shared classes
when we did link-to-value rather than link-to-copy
we also have a huge amount of stuff in the heap, could we trim this down?
how does it all get pulled in? is it preferences?
in nip1, F is about 4x faster
WONTFIX for 7.20
================
- look at:
http://www.eggheadcafe.com/software/aspnet/35467981/programmatic-console-appl.aspx
possibly better than nip2-cli.exe
- turning a column from Many Stats into a vector for doing arithmetic is very
tricky argh
add a matrix->vector converter? or maybe a one column or 1 row matrix should
also be a vector
- try:
nip2 Workspaces.uniformshapes2.A1.start_line=21 uniformshapes2.ws
--set does not work for non-toplevels
- try:
A1 = [1]
A2 = [x :: x <- A1]
change A1, A2 does not update, argh
we get:
link_expr_new: expr A2.$$lcomp0 references link->child = A1
so perhaps we are updating the local of A2, but not A2?
A2 is certainly being marked dirty ... on change of A1 we get:
row_dirty_set_single: A1 clear_error = true
symbol_dirty_set: A1 (0x1a59480)
symbol_dirty_set: A2 (0x1a595a0)
symbol_recalculate_check: untitled.A1
row_dirty_clear: A1
row_recomp_all: done row A1 - 0.000143873s
row_dirty_set_single: A1 clear_error = false
row_dirty_clear: A1
symbol_dirty_clear: A1 (0x1a59480)
success: [2]
symbol_recalculate_check: untitled.A2
symbol_dirty_clear: A2 (0x1a595a0)
success: [1]
so maybe A2.something is being updated, but the row is not
we now mark a row dirty if a sub-expr is dirty. but in row_renerate(), we
don't build subexprs
should we mark the subexpr dirty? (or maybe we do?)
or should we always copy all subexprs when we copy an expr
or only subexprs with no row?
do we calc rows outside-in or inside-out? does this affect copying subrows?
when do we copy now, the first time a row is made?
- we destroy and rebuild all links during recomp (eg. turn on DEBUG in
link.c), why is this? can't we only rebuild on a change of source text?
- fix the FIXME in itext_clear_edited() or wherever it is
- try:
start nip2
dir untitled
create A2, A3, etc.
A1 does not update
when we add/remove a def to workspace, should we mark the ws dirty?
- lambdas should allow patterns? eg.:
map (\[x, y] x + y) [[1, 2], [3, 4]] == [3, 7]
- OS X bundler:
http://sourceforge.net/apps/trac/gtk-osx/wiki/Bundle
test?
- imageinfo_make_paintable() no longer copies to a file, since this used to
cause problems with dangling pointers because of the im_close()s we had to
do
however, this means we now do all painting in memory :-( do we need to add
API to change a memory image (eg. a "p") into a file?
- test Joe's layout thing, compare to the thing we do in study2 to make the
diagnostic image
- im_blend(), im_ifthenelse(), im_add() etc. now do bandalike/formatalike
where do we use our bandalike/formatalike stuff? remove our stuff, though
make sure we have equivalents in vips now
- outline text example
- needs a custom convol menu item which can loop over a group of matricies
with a single image
actually, we need to nail this down, otherwise when we pass in a list of
sample texts the loops don't nest
- right-click menu on row button should have items for "Jump to referrer / WC1
/ JC1 ..." and "Jump to referred / ..."
- why didn't im_copy_file() work? mysterious
- line colours are wrong, argh, very mysterious, see
plot_new_gplot()
- gtk3.0 tests:
build with
#define G_DISABLE_DEPRECATED
#define G_DISABLE_SINGLE_INCLUDES
#define GDK_DISABLE_DEPRECATED
#define GTK_DISABLE_DEPRECATED
#define GDK_DISABLE_SINGLE_INCLUDES
#define GTK_DISABLE_SINGLE_INCLUDES
paste into config.h, somehow
need to remove:
GtkType
gtk_type_new
gtk_signal_connect
GTK_SIGNAL_FUNC
gtk_signal_handler_block_by_data
` gtk_signal_connect_object
GTK_CHECK_CAST
GTK_CHECK_TYPE
GtkSignalFunc
- add Set menu to Math with mkset/union/intersection/difference ?
could do bit operations on images?
- lcomps like:
argh = [x :: x <- poop]
the 'x' gets copied inside the lcomp, leaving a zombie 'x' attached to argh,
which Program / View / Errors then reports
fix: don't resolve names as we parse and junk the ugly patch list thing
instead, have a separate resolve stage that runs after we've moved scraps
of graph to their final home
- if we want full VipsObject introspection we will need a lot more
vips_object_arguments (name2gtype "VipsInterpolateYafrsmooth")
-> ["sharpness"]
need some equivalent for GParamSpec / VipsArgument
VipsArgument name type .... = class {}
return a list of these from vips_object_arguments()?
- heap_map_dict() should be reduce_map_dict(), since it does reduction, argh
redo heap_map_dict() in terms of reduce_map_dict()
actually, remove all the reduce_ stuff, it's daft to have a distinction
something to do when we break Snip out into libsnip
- Plot window should have image header menu item?
not trivial, image header needs a conversion to watch
we'd need to make a conversion in plotmodel
- filesel guess-file-type-from-suffix needs fixing
copy the vips model of having a user_name which is just "Workspace" or
somesuch, and making "Workspace file (*.ws)" string at runtime
use this to identity file types in util.c as well: get_image_info() needs it
- for rows made by typing stuff, always show the formula as well as the value
by default anyway?
we'd need to always show the up/down arrows, not just for classes
- drag from an image thumbnail to the ws background and you get a new column
with "A2" or whgatever in
does not work for plot thumbnails! how annoying
- right-click on image background to get a context menu with
save/replace/header? same as row thumbnail context?
- look at using goffice instead of gtkplot for graphs
http://ftp.gnome.org/pub/gnome/sources/goffice/
also in synaptic
there's also a new cairo-based gtkplot in SVN, apparently
- try
last [1..]
then CTRL-W ... we can quit the app, but it's still evaling and the prompt
never comes back
- Math / Cluster is a bit useless, will it work for complex numbers? vectors?
colours? groups?
what would we have to do to get it to work for these other types?
- toolkit load is where compiled code would go in
need to make load / parse / compile self-contained ... the only output is a
list of symbols, each with code and sub-symbols; there are no toolkits or
whatever made
after load / parse / compile, we need to walk the symbol list building tools
and all that stuff
we do:
load toolkit:
get filesize, date last modified, md5sum
look in ~/.nip2-7.x.x/cache for a file named with that md5sum
if present, open and check first two fields: filesize and date
if match, load compiled code
if no match, load / parse / compile toolkit, then save compiled
code to ~/.nip2-7.x.x./cache
walk symbol list building tools and all that stuff
how much time will this really save? can we easily get an estimate?
steps to follow:
1. make load / parse / compile self-contained, with separate pass to
build tools etc.
this is a useful cleanup whatever else we do
2. now we know exactly what the output of load / parse / compile is, we
should be able to write to a file
make our own binary format, don't use XML ... we want speed
3. try loading and benchmarking
4. if the benchmarks look promising, harden and polish
- numbering of group of group save seems to skip one at end of line?
- Math / Cluster is a bit useless, will it work for complex numbers? vectors?
colours? groups?
what would we have to do to get it to work for these other types?
- segv in test_toolkits on laptop (inside fftw3) ???!? valgrinds cleanly on
work machine
- try
last [1..]
then CTRL-W ... we can quit the app, but it's still evaling and the prompt
never comes back
- configure no longers sets GMSGFMT, is this OK? test on OS X
- for rows made by typing stuff, always show the formula as well as the value
by default anyway?
we'd need to always show the up/down arrows, not just for classes
- drag from an image thumbnail to the ws background and you get a new column
with "A2" or whgatever in
does not work for plot thumbnails! how annoying
- right-click on image background to get a context menu with
save/replace/header? same as row thumbnail context?
- look at using goffice instead of gtkplot for graphs
http://ftp.gnome.org/pub/gnome/sources/goffice/
also in synaptic
WONTFIX for 7.14
================
- quit while a thumbnail is painting: IMAGEs are leaked? seems esp. bad with
greyc, perhaps just because it's so slow
- do we enforce no-args-to-LHS-pattern anywhere? try
[a,b] a b = 12;
- use destroy_if_destroyed() in more places?
grep destroy_ *.h
- after pressing "Process" in the edit window, we always select last_sym,
which is often not what we want
make it jump less after a process ... eg. try editing something in the
middle of Image/Transform, very annoying
- use compile->last_sym to spot chains of defs
multiple definitions of the same function are allowed, provided they all
multiple definitions of the same function are allowed, provided they all
have the same number of arguments, and provided only one of them has no
argument pattern matching
example:
fred [a, b, 1] = a * b;
fred (Image x) = rot90 x;
fred z = error "what";
any of these can have locals, those locals just apply to that one
definition
this compiles to:
fred $$a4
= $$fred1, is_list $$a4 && len $$a4 == 2 && $$a4?2 == 1
= $$fred2, is_instance_of "Image" $$a4
= $$fred3
{
$$fred1
= a * b
{
a = $$a4?0;
b = $$a4?1;
}
$$fred2
= rot90 x
{
x = $$a4;
}
$$fred3
= error "what";
{
z = $$a4;
}
}
so each pattern-matching definition generates a condition and an action
constants in patterns become part of the condition test
the action goes into a private function, the conditions are joined together
in the function wrapper
the no-pattern case (if present) becomes the action for the "otherwise"
clause in the wrapper
if not present, we generate (error "pattern match failed") or somesuch for
the default case
we will need to regenerate the wrapper function every time a definition of
fred is added or removed ... can we do this easily?
when are two definitions considered equal? should we warn about this? "fred
x" could occur in two files, for example
process:
* we see a "fred arg-list" incoming
* does the arg list contain any patterns?
yes:
* do we already have a fred in this scope?
yes:
* the existing fred must be the wrapper, this must be
a new possible RHS
* check that the number of args matches
no:
* generate a fred to act as the wrapper
* add args called $$arg1 etc. to the main fred
* add this new fred as a $$fredn local to the current
fred
* expand the patterns as local references to the main
fred's arguments
* parse the rest of the def in that context
* keep the pattern list around, we'll need it to generate the
ifs for the wrapper later
no:
* do we have a fred in this scope?
yes:
* check the previous fred was a pattern matcher
* check the number of args matches
* check there isn't already a default case
* add as above
no:
* add as a regular non-pattern definition
issues:
* where do we store the pattern lists? we can't expand them at
parse-time, since we need them to make the wrapper (which we can't
make until we've seen all the candidate RHS)
* when one of the RHS is changed, we need to regenerate the wrapper,
how do we do this? (could nuke the generated code in the compile
when we see a new RHS, then rebuild the wrapper in compile on the
next heap_copy?)
* our current condition generator won't work ... we need to test
consts as well, and it'll be rather inefficient as we'll repeatedly
test the trunk as we loop over the leaves --- instead, walk the
pattern recursively top-down testing each node
process:
* see "fred" (as opposed to simple_pattern)
* is there already a fred in scope?
yes:
* was current_compile->last_sym also a "fred"?
yes:
* another definition
yes:
* this must be an alternative definition
- we put the 2nd fred in as a local of the first, but then the 2nd can see all
the stuff the first has as locals
z = 42;
fred 1 = 12 { z = 99; }
fred 2 = z;
"fred 2" will return 99 :(
we need to make "fred 2 = z" into another fred at the same level, eg
$$alternate42$fred 2 = z;
Nope, then how do we link the freds together for remove etc.?
Better:
see a new sym (fred), create it
parse args with simple names becoming params, patterns becoming
$$arg42 plus a local $$patt42 holding the pattern source
expand the pattern to an access def as well, so our children can bind
to it
at the = sign, test for any pattern args present .. if there are none,
carry on as before
otherwise, make a new local called $$alternate42 or whatever and parse
the RHS into that
at the end of parse, need to resolve outwards twice, since we nest in
twice
now if we see another fred, check that the number of args matches and
then parse in as $$alternate99
what abut
fred 2 a = 12;
fred 1 b = 32;
the first fred will make a top-level with
fred $$arg12 a
=
{
$$alernate42 = 12;
$$patt12 = 2;
}
then when we parse the 2nd fred the name of the 2nd param is wrong :(
Even betterer:
use GLR to split off the four cases for us
ident =
pattern =
ident ident_list =
ident pattern_list =
change pattern syntax so that ident is not part of simple_pattern
need to change lcomp as well
so we need to check why PARSE_PARAMS gets used: can we do without the
params part? yes, it's used so we can edit functions, but we no longer
do this
these days all we need is expr I think, but we'd need a small action
wrapper around it to wipe out any existing tree and locals
Find_item = class
Menuaction "_Find"
("find a transform which will map sample image onto " ++
"reference") {
action reference sample = class
Transform b reference.width reference.height {
_vislevel = 3;
// controls
order = rubber_order;
interp = rubber_interp;
wrap = rubber_wrap;
max_err = Expression "Maximum error" 0.3;
max_iter = Expression "Maximum iterations" 10;
// transform
[a,b,c] = transform_search max_err max_iter order interp wrap
sample reference;
transformed_image = Image a;
final_error = c;
}
}
fails with
Bad superclass.
Superclass constructor
"Image_transform_item.Image_rubber_item.Transform"
should have no secret arguments.
but this:
Find_item = class
Menuaction "_Find"
("find a transform which will map sample image onto " ++
"reference") {
action reference sample = class
_t {
_vislevel = 3;
// controls
order = rubber_order;
interp = rubber_interp;
wrap = rubber_wrap;
max_err = Expression "Maximum error" 0.3;
max_iter = Expression "Maximum iterations" 10;
// transform
[a,b,c] = transform_search max_err max_iter order interp wrap
sample reference;
transformed_image = Image a;
_t = Transform b reference.width reference.height;
final_error = c;
}
}
(ie. make the superclass constructor into a member) works fine
- try using bison's location system
http://www.gnu.org/software/bison/manual/html_mono/bison.html#Locations
- add something to Symbol:
Symbol *access_for;
links generated access def to the $$thing4 which holds the RHS
handy for the program window, also maybe for lcomp code gen?
also for row edits
- don't offer to clear temps if there's been a crash
need to be able to test for process-still-running by PID
try
http://msdn2.microsoft.com/en-us/library/ms886766.aspx
gboolean
process_running( int pid )
{
HANDLE handle;
if( (handle = OpenProcess( 0, FALSE, pid )) ) {
CloseHandle( handle );
return( TRUE );
}
return( FALSE );
}
- autoarrange after every column resize or move
animate movement, so columns slither out of the way and in to place when
you drop
duplicate column placement would be odd: maybe place duplicate below? also
new column? what about dropping an image on to the ws background?
- there's some left-recursion in the parser, eg. comma_list, is this easily
fixable?
- add (*) (operator sections) ... need a binup / uop production? can't
do this without losing precedence stuff, it'll need a separate production
for sections
- magic definition maker could make a workspace-local def, rather cool
- test classmodel_dict_new() ... part of classmodel member automation
need to implement member edit for OPTION groups
classmodel_done_member() ... read widget set -> model
classmodel_buildedit_member( ... model -> build widget set
part of the [["key",value]] arg type
- can we get VIPS errors reported in Error too?
we'd need to add logging to vips I think
- toolkits / find doesn't find builtins on their name ... eg. search for
"im_add"
too hard to fix with the way searching is done now
- turn on update regions during drag, fix the x pos, try dragging, horrible
flickering as we update twice, once after the drag motion and once after the
recomp
if you comment out the explicit vobject_refresh() in
regionview_model_update() the flickering goes, but region dragging is then
very unresponsive
fix this when we get fast recomp back again
- have a test_types.ws ... test arithmetic on all combinations of _types?
- panner would be cool
- tooltips on Expression rows always show unedited formula
could special-case formula for things with expression RHS?
- what about iimage, iregion, iarrow ... can we member automate these? why are
they different?
- can't see error indications in noedit mode
should set a red background for display area as well as for rowview button?
- need to be able to override cons to be able to make a List class :-(
see reduce.c:1710
this will change the strictness of cons ... how much breakage will this
cause? very unclear
try this as a quick hack
need to do this before we can finish List
need List to make gamma easy
- unselected column headers are too like the bg colour on windows?
- python uses z.real and z.imag to extract real/image, should we add this too?
we don't really have complex as a true class, so it would be rather odd
need to add "[a].head" etc as well
- python blocks complex->real with casts ... insists you use .imag/.real or
abs()
- if nip sees a IM_RW_IMAGE argument, it could automatically do this:
int
im_flood_blob_copy( IMAGE *in, IMAGE *out, int x, int y, PEL *ink )
{
IMAGE *t;
if( !(t = im_open_local( out, "im_flood_blob_copy", "t" )) ||
im_copy( in, t ) ||
im_flood_blob( t, x, y, ink, NULL ) ||
im_copy( t, out ) )
return( -1 );
return( 0 );
}
so it would turn a single IM_RW_IMAGE arg into a paired input and output
arg
could make im_lineset() into a regular inplace func and rely on nip to wrap
and unwrap
junk flood_blob_copy
nip could do this lazilly ... if we see the user doing
im_line (im_line ...) ...
then we could make one memory image and call im_line twice on it
destructively ... cool! we'd need to check refcounts to make sure the
intermediate wasn't being used anywhere else
hmm! might actually be very hard, we don't have true refcounts for things in
the heap
need to do it on read instead:
- for image i
- use as an IM_RW_IMAGE arg ... copy to a memory area and pass in memory
handle
- return memory area IMAGE j, and set a flag saying "can operate on
destructively"
- if we use j as an IM_RW_IMAGE arg, skip the copy and just pass memory
area in destructively ... we now have two ImageInfo sharing a single
IMAGE
- !!!!
- does ImageInfo allow IMAGE sharing? not sure it does
- maybe this needs to be a vips8 feature when we'll have refcounts on
IMAGE
- tooltip on column says which other columns items in this column refer to,
and which columns refer to items in this column
- how about a nip start folder common to all versions
so nip2-7.11.14 tries
.nip2-7.11.14/start
.nip2-7.11/start
.nip2-7/start
.nip2/start
or maybe
.nip2/7.11.14/start
.nip2/7.11/start
.nip2/7/start
.nip2/start
bit less cluttered
also, we could have
.nip2/tmp
and not have multiple nip2 tmp areas
workspace recover after crash could break though ... maybe keep ws saves in
.nip2/7.11.4/tmp?
- think again about class arg checks
is there some way we can avoid the _check overhead? or at least check less
often
- plotpresent/imagepresent could have a common base class with the focus stuff
in? also kb nav, zoom, drag-scroll
a bit difficult, because we want two different policies on window resize:
plot should change the object to match the window
- photographic negative should also be in image/levels ?
no, it does ->sRGB, (255-) etc., so it's better as a filter
- gtk+ 2.12 has a treeview widget with rectangular select and grid lines
use instead of gtksheet?
- stop image flickering on clock recomp?
want background pattern to be a property of the image display widget, not
the image?
so we fade in tiles when that section of the image has never been displayed
before (eg. on scroll or zoom)
we don't fade when that section has been painted and we are just changing
the image (eg. on recalc)
if fadesteps == 1, only paint the sections of the tile for which mask == 255
this way we will never paint the bg pattern
need some hack for scroll/zoom ; test for mask == 255 would be slow :(
================================================
FILE: autogen.sh
================================================
#!/bin/sh
# set -x
# remove /everything/ ready to remake
rm -f Makefile Makefile.in aclocal.m4 config.* configure depcomp
rm -rf autom4te.cache
rm -f install-sh intltool-* ltmain.sh missing mkinstalldirs
rm -f src/*.o src/nip2 src/Makefile src/Makefile.in
# glib-gettextize asks us to copy these files to m4 if they aren't there
# I don't have $ACDIR/isc-posix.m4, how mysterious
ACDIR=`aclocal --print-ac-dir`
# OS X with brew sets ACDIR to
# /usr/local/Cellar/automake/x.y.z/share/aclocal, the staging area, which is
# totally wrong argh
if [ ! -d $ACDIR ]; then
ACDIR=/usr/local/share/aclocal
fi
mkdir -p m4
cp $ACDIR/codeset.m4 m4
cp $ACDIR/gettext.m4 m4
cp $ACDIR/glibc21.m4 m4
cp $ACDIR/iconv.m4 m4
cp $ACDIR/lcmessage.m4 m4
cp $ACDIR/progtest.m4 m4
# some systems need libtoolize, some glibtoolize ... how annoying
echo -n "testing for glibtoolize ... "
if glibtoolize --version >/dev/null 2>&1; then
LIBTOOLIZE=glibtoolize
echo using glibtoolize
else
LIBTOOLIZE=libtoolize
echo using libtoolize
fi
aclocal
# this produces a lot of benign but misleading output ... hide it and hope for
# the best
glib-gettextize --force --copy > /dev/null
test -r aclocal.m4 && chmod u+w aclocal.m4
autoconf
autoheader
$LIBTOOLIZE --copy --force --automake
automake --add-missing --copy
./configure $*
================================================
FILE: configure.ac
================================================
# Process this file with autoconf to produce a configure script.
AC_INIT([nip2], [8.9.2], [vipsip@jiscmail.ac.uk])
# foreign stops complaints about a missing README (we use README.md instead)
# and missing INSTALL (the standard Gnu INSTALL is not very useful)
AM_INIT_AUTOMAKE([-Wno-portability foreign])
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_MACRO_DIR([m4])
dnl
dnl We do the version number components as m4 macros
dnl so that we can base configure --help output off
dnl of them.
dnl
m4_define([nip_major_version], [8])
m4_define([nip_minor_version], [9])
m4_define([nip_micro_version], [2])
m4_define([nip_version],
[nip_major_version.nip_minor_version.nip_micro_version])
MAJOR_VERSION=nip_major_version()
MINOR_VERSION=nip_minor_version()
MICRO_VERSION=nip_micro_version()
AC_DEFINE_UNQUOTED(MAJOR_VERSION, $MAJOR_VERSION, [Major version number])
AC_DEFINE_UNQUOTED(MINOR_VERSION, $MINOR_VERSION, [Minor version number])
AC_DEFINE_UNQUOTED(MICRO_VERSION, $MICRO_VERSION, [Micro version number])
AC_CANONICAL_HOST
AC_MSG_CHECKING([for native Win32])
case "$host" in
*-*-mingw*)
nip_os_win32=yes
;;
*)
nip_os_win32=no
;;
esac
AC_MSG_RESULT([$nip_os_win32])
if test x"$nip_os_win32" = "xyes"; then
AC_DEFINE(OS_WIN32,1,[native win32])
# makes gcc use win native alignment
IP_CFLAGS="-mms-bitfields $IP_CFLAGS"
fi
# src/Makeile.am uses this to add an icon to the .exe
AM_CONDITIONAL(OS_WIN32, test x"$nip_os_win32" = "xyes")
AC_MSG_CHECKING([for Mac OS X])
case "$host" in
*-*-darwin*)
nip_os_darwin=yes
;;
*)
nip_os_darwin=no
;;
esac
AC_MSG_RESULT([$nip_os_darwin])
if test x"$nip_os_darwin" = "xyes"; then
AC_DEFINE(OS_DARWIN,1,[native Mac OS X])
fi
AC_ARG_ENABLE(debug,
AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
[turn on debugging @<:@default=debug_default()@:>@]),,
enable_debug=no)
if test "x$enable_debug" = "xyes"; then
NIP_DEBUG_FLAGS="-DDEBUG_FATAL -DDEBUG_LEAK"
else
NIP_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
if test "x$enable_debug" = "xno"; then
NIP_DEBUG_FLAGS="$GLIB_DEBUG_FLAGS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
fi
fi
IP_CFLAGS="$NIP_DEBUG_FLAGS $IP_CFLAGS"
# we want largefile support, if possible
AC_SYS_LARGEFILE
# Checks for programs.
AC_PROG_AWK
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_LEX
# we must have flex or lex
if test x"$LEX" = x:; then
AC_MSG_ERROR([lex/flex not found: $PACKAGE requires one of these])
fi
IP_LIBS="$IP_LIBS $LEXLIB"
AC_PROG_INSTALL
AC_PROG_LN_S
AC_CHECK_TOOL(WINDRES, windres)
AC_CHECK_TOOL(DLLWRAP, dllwrap)
AC_CHECK_TOOL(DLLTOOL, dlltool)
AC_CHECK_TOOL(OBJDUMP, objdump)
AC_CHECK_TOOL(RANLIB, ranlib)
AC_CHECK_TOOL(STRIP, strip)
AC_CHECK_TOOL(BISON, bison)
# we have to have bison :-( maybe we could ship the generated .c/.h files? not
# clear on their portability
if test x"$BISON" = x; then
AC_MSG_ERROR([bison not found: $PACKAGE uses bison-only features])
fi
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(AS, as)
AC_CHECK_TOOL(LD, ld)
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
# dmalloc option
AM_WITH_DMALLOC
# i18n
GETTEXT_PACKAGE=nip2
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.])
# ALL_LINGUAS="en_GB malkovich"
ALL_LINGUAS="en_GB"
AM_GLIB_GNU_GETTEXT
# check for flex ... nip needs to adjust itself a bit
if test "${LEX}" = "flex"; then
AC_DEFINE(HAVE_FLEX,1,[using flex, rather than lex])
fi
# flex >= 2.5.36 uses a nonstandard type for yyleng
AC_MSG_CHECKING([whether yyleng is yy_size_t])
cat > conftest.l <<EOF
%%
%%
yy_size_t yyleng;
EOF
$LEX conftest.l
AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED [`cat $LEX_OUTPUT_ROOT.c`]], [
AC_MSG_RESULT(yes)
AC_DEFINE(YYLENG_IS_YY_SIZE_T,1,
[Define to 1 if lex declares yyleng to be yy_size_t.])
], [
AC_MSG_RESULT(no)
])
rm -f conftest.l $LEX_OUTPUT_ROOT.c
# get packages we need
# gtk before 2.4.9 crashes with the way we use combobox :-(
# vips before 7.30 used "vips-x.y" as the pkg name
PKG_CHECK_MODULES(REQUIRED_PACKAGES,
gmodule-2.0 gthread-2.0 gtk+-2.0 >= 2.4.9 libxml-2.0 vips >= 7.30)
IP_CFLAGS="$REQUIRED_PACKAGES_CFLAGS $IP_CFLAGS"
IP_LIBS="$REQUIRED_PACKAGES_LIBS $IP_LIBS"
# gdk_window_set_opacity() was added in gtk 2.12
PKG_CHECK_EXISTS(gtk+-2.0 >= 2.12,
[nip_set_opacity=yes],
[nip_set_opacity=no]
)
if test x"$nip_set_opacity" = x"yes"; then
AC_DEFINE(HAVE_SET_OPACITY,1,[define if you have gdk_window_set_opacity()])
fi
# GtkInfoBar was added in gtk 2.18
PKG_CHECK_EXISTS(gtk+-2.0 >= 2.18,
[nip_use_infobar=yes],
[nip_use_infobar=no]
)
if test x"$nip_use_infobar" = x"yes"; then
AC_DEFINE(USE_INFOBAR,1,[define if you have GtkInfoBar])
fi
# notebook action widgets came in 2.20
PKG_CHECK_EXISTS(gtk+-2.0 >= 2.20,
[nip_use_notebook_action=yes],
[nip_use_notebook_action=no]
)
if test x"$nip_use_notebook_action" = x"yes"; then
AC_DEFINE(USE_NOTEBOOK_ACTION,1,[define if you have gtk_notebook_set_action_widget()])
fi
# notebook group names widgets came in 2.24
PKG_CHECK_EXISTS(gtk+-2.0 >= 2.24,
[nip_use_notebook_group_name=yes],
[nip_use_notebook_group_name=no]
)
if test x"$nip_use_notebook_group_name" = x"yes"; then
AC_DEFINE(USE_NOTEBOOK_GROUP_NAME,1,[define if you have gtk_notebook_set_group_name()])
fi
# GRegex was added in glib-2.14
# we need it for regex searching in the program window
PKG_CHECK_EXISTS(glib-2.0 >= 2.14,
[nip_use_gregex=yes],
[nip_use_gregex=no]
)
if test x"$nip_use_gregex" = x"yes"; then
AC_DEFINE(HAVE_GREGEX,1,[define if you have GRegex])
fi
# Check for the function strccpy in libgen
AC_CHECK_HEADER(libgen.h,
AC_CHECK_LIB(gen, strccpy,
AC_DEFINE(HAVE_STRCCPY,1,[have strccpy() in -lgen])
IP_LIBS="$IP_LIBS -lgen"
),
)
# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(limits.h pwd.h fnmatch.h sys/statvfs.h sys/vfs.h sys/mount.h sys/resource.h sys/wait.h malloc.h sys/time.h sys/param.h unistd.h)
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_STRUCT_TM
# Checks for library functions.
AC_FUNC_ALLOCA
AC_FUNC_FNMATCH
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(geteuid getcwd getpwnam getrlimit getpwent getwd putenv regcomp strcspn strspn strstr)
# need fftw so we load and unload wisdom on startup/shutdown
AC_ARG_WITH([fftw3], AS_HELP_STRING([--without-fftw3], [build without fftw3 (default: test)]))
if test "x$with_fftw3" != "xno"; then
PKG_CHECK_MODULES(FFTW3, fftw3,
[AC_DEFINE(HAVE_FFTW3,1,[define if you have fftw3 installed.])
with_fftw3=yes
],
[AC_MSG_WARN([fftw3 not found; disabling fftw support])
with_fftw3=no
])
IP_CFLAGS="$FFTW3_INCLUDES $FFTW3_CFLAGS $IP_CFLAGS"
IP_LIBS="$FFTW3_LIBS $IP_LIBS"
fi
# goffice needs libgsf to save plots to files
AC_ARG_WITH([libgsf], AS_HELP_STRING([--without-libgsf], [build without libgsf (default: test)]))
if test "x$with_libgsf" != "xno"; then
PKG_CHECK_MODULES(LIBGSF, libgsf-1,
[AC_DEFINE(HAVE_LIBGSF,1,[define if you have libgsf installed.])
with_libgsf=yes
],
[AC_MSG_WARN([libgsf not found; disabling save plot to file])
with_libgsf=no
])
IP_CFLAGS="$LIBGSF_CFLAGS $LIBGSF_INCLUDES $IP_CFLAGS"
IP_LIBS="$LIBGSF_LIBS $IP_LIBS"
fi
# optional ... use libgoffice to draw plots
# pretty basic functionality, really, but we need to be able to build without
# it for testing
AC_ARG_WITH([libgoffice], AS_HELP_STRING([--without-libgoffice], [build without libgoffice (default: test)]))
if test "x$with_libgoffice" != "xno"; then
PKG_CHECK_MODULES(LIBGOFFICE, libgoffice-0.8,
[AC_DEFINE(HAVE_LIBGOFFICE,1,[define if you have libgoffice installed.])
with_libgoffice=yes
],
[AC_MSG_WARN([libgoffice not found; disabling plot display])
with_libgoffice=no
])
IP_CFLAGS="$LIBGOFFICE_CFLAGS $LIBGOFFICE_INCLUDES $IP_CFLAGS"
IP_LIBS="$LIBGOFFICE_LIBS $IP_LIBS"
fi
# optional ... use libgvc to draw graphs of workspace dependencies
AC_ARG_WITH([libgvc], AS_HELP_STRING([--without-libgvc], [build without libgvc (default: test)]))
# gvc 2.30 is broken in a number of ways and we can't use it, see for example
# http://lists.research.att.com/pipermail/graphviz-devel/2012/001544.html
if test "x$with_libgvc" != "xno"; then
PKG_CHECK_MODULES(LIBGVC, libgvc > 2.30,
[AC_DEFINE(HAVE_LIBGVC,1,[define if you have libgvc installed.])
with_libgvc=yes
],
[AC_MSG_WARN([libgvc not found; disabling workspace dep graph display])
with_libgvc=no
])
IP_CFLAGS="$LIBGVC_CFLAGS $LIBGVC_INCLUDES $IP_CFLAGS"
IP_LIBS="$LIBGVC_LIBS $IP_LIBS"
fi
# optional ... we add some gsl funcs as builtins if available
AC_ARG_WITH([gsl], AS_HELP_STRING([--without-gsl], [build without gsl (default: test)]))
if test "x$with_gsl" != "xno"; then
PKG_CHECK_MODULES(GSL, gsl,
[AC_DEFINE(HAVE_GSL,1,[define if you have gsl installed.])
with_gsl=yes
],
[AC_MSG_WARN([gsl not found; disabling extra numerical functions])
with_gsl=no
])
IP_CFLAGS="$GSL_CFLAGS $GSL_INCLUDES $IP_CFLAGS"
IP_LIBS="$GSL_LIBS $IP_LIBS"
fi
# optional ... use this to open the help browser, if available
AC_PATH_PROG(XDG_OPEN, xdg-open, no)
if test "x$XDG_OPEN" != "xno"; then
AC_DEFINE(HAVE_XDG_OPEN,1,[define if you have xdg-open])
AC_DEFINE_UNQUOTED(XDG_OPEN, "$XDG_OPEN", [path of xdg-open binary])
fi
# optional ... use these to update desktop after install
AC_PATH_PROG(UPDATE_MIME_DATABASE, update-mime-database, no)
AC_PATH_PROG(UPDATE_DESKTOP_DATABASE, update-desktop-database, no)
nip_desktop_update=no
if test "x$UPDATE_MIME_DATABASE" != "xno"; then
if test "x$UPDATE_DESKTOP_DATABASE" != "xno"; then
nip_desktop_update=yes
fi
fi
# stop the DBs being updated: useful for packagers
AC_ARG_ENABLE(update-desktop,
AC_HELP_STRING([--disable-update-desktop],
[disable update of desktop database]),
[nip_desktop_update=$enableval],)
if test x"$nip_desktop_update" = "xyes"; then
AM_CONDITIONAL(UPDATE_DESKTOP, true)
else
AM_CONDITIONAL(UPDATE_DESKTOP, false)
fi
# we always need -lm
IP_LIBS="$IP_LIBS -lm"
AC_SUBST(IP_CFLAGS)
AC_SUBST(IP_LIBS)
# needed by test/test_all.sh
# :( what's a better way to do this, argh
TOP_SRCDIR=$ac_pwd
AC_SUBST(TOP_SRCDIR)
AC_OUTPUT([
nip2.desktop
Makefile
man/Makefile
man/man1/Makefile
share/Makefile
share/nip2/Makefile
share/nip2/data/Makefile
share/nip2/rc/Makefile
share/nip2/start/Makefile
share/nip2/compat/Makefile
share/nip2/compat/7.8/Makefile
share/nip2/compat/7.9/Makefile
share/nip2/compat/7.10/Makefile
share/nip2/compat/7.12/Makefile
share/nip2/compat/7.14/Makefile
share/nip2/compat/7.16/Makefile
share/nip2/compat/7.24/Makefile
share/nip2/compat/7.26/Makefile
share/nip2/compat/7.28/Makefile
share/nip2/compat/7.38/Makefile
share/nip2/compat/7.40/Makefile
share/nip2/compat/8.2/Makefile
share/nip2/compat/8.3/Makefile
share/nip2/compat/8.4/Makefile
share/nip2/compat/8.5/Makefile
share/nip2/compat/8.6/Makefile
src/BITMAPS/Makefile
src/Makefile
test/Makefile
test/test_all.sh
po/Makefile.in
nip2.spec
])
# generated script needs to be executable
chmod +x test/test_all.sh
AC_MSG_RESULT([
* general build options
native win32: $nip_os_win32
native os x: $nip_os_darwin
update desktop after install: $nip_desktop_update
debug: $enable_debug
* optional packages and modules
use fftw3 for FFT: $with_fftw3
use gsl for numeric functions: $with_gsl
use libgoffice to show plots: $with_libgoffice
use libgsf to save plots to files: $with_libgsf
use libgvc to show ws dep graphs: $with_libgvc
(requires gvc > 2.30)
use gtkinfobar to show messages: $nip_use_infobar
(requires gtk+-2.0 >= 2.18)
use notebook action widget: $nip_use_notebook_action
(requires gtk+-2.0 >= 2.20)
use notebook group name: $nip_use_notebook_group_name
(requires gtk+-2.0 >= 2.24)
allow regex searches: $nip_use_gregex
(requires glib-2.0 >= 2.14)
display help files with xdg: $XDG_OPEN
])
================================================
FILE: doc/README
================================================
nip documentation
Type "make install" to rebuild html/ and ps/ directories with formatted
docuimentation. You'll need latex and tex4ht.
The Makefile.am in nip2-x.x copies the contents of the html/ and ps/ to
$prefix/share/doc/nip2 during the main nip2 install process.
Once you have the docs installed, rebuild nip2's help index with:
cd nip2-x.x/src
make helpindex.h
to index the HTML docs and link the HELP buttons in nip to the correct place
in the formatted pages.
================================================
FILE: doc/doc-programmer/hierarchy.txt
================================================
class hierarchy
===============
GObject
|
+-iObject
|
+-Heap
+-Imagemodel
+-Toolviewitemgroup
+-iContainer
|
+-Compile
+-Expr
+-Imageinfo
+-Watch
+-Model
|
+-Conversion
+-Toolkitgroup
+-Workspacegroup
+-Filemodel
| |
| +-Tool
| +-Toolkit
| +-Column
| +-Symbol
| |
| +-Workspace
|
+-Heapmodel
|
+-Rhs
+-Subcolumn
+-iText
+-Row
+-Classmodel
|
+-Slider
+-Patch
+-Filename
+-Fontname
+-Expression
+-Number
+-Matrix
+-String
+-Option
+-Toggle
+-iRegiongroup
+-iArrow
+-iImage
|
+-iRegion
GtkVBox
View
Textview
Workspacegroupview
Workspaceview
Toolkitgroupview
Toolkitview
Toolview
Graphicview
Toggleview
Sliderview
Patchview
Filenameview
Fontnameview
Optionview
iArrowview
Matrixview
Regionview
iImageview
iRegionview
Editview
Stringview
Numberview
Expressionview
Rhsview
Rowview
Subcolumnview
Spin
Columnview
iRegiongroupview
Imagepresent
GtkFrame
Conversionview
Statusview
GtkDrawingArea
Imagedisplay
GtkWindow
iWindow
Imageview
Program
Trace
iDialog
Namecaption
Find
Imageheader
Browse
Filesel
GtkEventBox
Formula
================================================
FILE: doc/doc-programmer/imageview
================================================
imagemodel is the base model class ... imageview_new makes the imagemodel, then
all the component widgets (imagepresent, statusview, paintboxview,
conversionview, imageview) watch this for updates
the conversion from the real image to the display image is handled by
conversion, a sub-model of imagemodel
imageview holds the ref to imagemodel ... destroy this and everything goes
================================================
FILE: doc/doc-programmer/makeindex.pl
================================================
#!/usr/bin/perl
# my labels = `grep '<A NAME="nip_label_' $VIPSHOME/share/doc/nip/html/*.html`;
my lab = `grep bel html`;
# print $labels;
================================================
FILE: doc/doc-programmer/menu.txt
================================================
nip menu organisation
here's how it's currently arranged, all ideas for new arrangements welcome
you can change the name of any item, move between menus etc.
once we pick an arrangement, we're stuck with it forever :-(
top level menus are always sorted alphabetically, within each menu, you can
have any order you like
I was thinking (for example) maybe there should be a "Capture" menu: we could
put all the stuff you tend to do when acquiring images in there (eg. crop,
white balance, New_video, etc.)
Arithmetic
Add
Subtract
Multiply
Divide
Remainder
-------
Absolute_value
Absolute_value_vector like abs, but treat pixels as vectors
Sign unit vector in direction of value
Negate value * -1
Photographic_negative 255 - value (255 == max value for type)
Boolean
And
Or
Eor
Not
-------
Left_shift bitwise left/right shift
Right_shift
-------
If_then_else
Band_and and the bands of an image together
Band_or or the bands of an image together
Colour
Mono_to
Mono
XYZ
Yxy
Lab
LCh
UCS
RGB
sRGB
LabQ
LabS
Falsecolour
XYZ_to
Mono
XYZ
Yxy
Lab
LCh
UCS
RGB
sRGB
LabQ
LabS
etc. etc. ... every combination of the 10 colour spaces
-------
Recombination linear recombination with editable matrix
-------
dE_ calculate colour difference between two objects
CIELAB
UCS
-------
Tint_mono_image apply coloured tint to mono image
Colour_chart_from_matrix make a synthetic colour chart from a matrix
Colour_from_image make a colour from the average colour in image
Image_from_colour make a patch of pixels from a colour
Similar_colour find similar colours
Complex
Complex_extract
Real extract real part of complex
Imaginary extract imaginary part of complex
Complex_build combine two reals to make a complex
-------
Polar rectangular to (amplitude, phase)
Rectangular polar to rectangular
Convert
Decompose break up compound object
Compose combine small objects to make a bigger one
-------
Cast_to
unsigned_8bit convert numeric types
signed_8bit
unsigned_16bit
signed_16bit
unsigned_32bit
signed_32bit
float_32bit
float_64bit
complex_64bit
complex_128bit
Ceil round up
Floor round down
Rint round nearest
Scale_to_byte
-------
Convert_to_matrix try to make a matrix from an object
Convert_to_image try to make an image from a thing
-------
Falsecolour
Filter
Blur
Sharpen
Median
Laplacian
Sobel
Linedet
Emboss
-------
Custom_rank rank filter with editable params
Custom_convolution convolution filter with editable params
Fourier
Fourier_transform
Fourier_inverse
-------
Ideal_fourier_filter
High_low
Ring
Band
Gaussian_fourier_filter
High_low
Ring
Band
Butterworth_fourier_filter
High_low
Ring
Band
Histogram
Hist_find
Hist_map
Hist_cumulative
Hist_normalise
Hist_match
-------
Hist_equalise
Global
Local
Guide_slice graph pixel values along a guide
Image
Copy
-------
Adjust_scale_offset
Adjust_gamma
Custom_sharpen
White_balance
Light_correct_white_image
Smooth_image
Drop_shadow
Join
Abut
Left_right
Top_bottom
Crop
List
Head
Tail
Init
Last
-------
Reverse
Sort
Make_set
Transpose_list
Concat
-------
Length
Subscript
Take
Drop
-------
Join
Cons
Zip
Log
Exponential
Log_natural
-------
Log10
Exponential10
-------
Raise_to_power
Morphology
Dilate8
Dilate4
Erode8
Erode4
-------
Open
Close
Clean
Thin
-------
Dilate
Erode
Dilate_multiple
Erode_multiple
-------
Custom_morphology
Find_profile search an image for edge profiles
Mosaic
Mosaic_translate the two-point funcs
Left_right
Top_bottom
Mosaic_affine the four-point funcs
Left_right
Top_bottom
-------
Mosaic_balance
Tilt_brightness
Left_right
Top_bottom
-------
Mosaic_rebuild rebuild mosaic with different files
New
New_slider
New_toggle
New_option
New_matrix
Convolution
Recombination
Morphology
New_image
New_colour
New_video just linux video at the moment
-------
New_eye
New_zone_plate
New_grey
New_xy
New_gauss_noise
New_fractal
New_CRT_test_chart
New_frequency_test_chart
New_checkerboard
New_grid
New_ideal
High_low this set of items make fourier filter masks
Ring
Band
New_gaussian
High_low
Ring
Band
New_butterworth
High_low
Ring
Band
-------
New_CIELAB_slice slice through cielab
New_LAB_colour pick a colour with a poiont on a LAB slice
Plot
Plot_scatter
Print
ICC_export PCS -> device
ICC_import device -> PCS
ICC_transform device -> device
ICC_ac2rc
-------
D65XYZ_to change white point for measure/print
D50XYZ
D50XYZ_to
D65XYZ
D50XYZ_to
Lab
D50Lab_to
XYZ
-------
Sharpen_for_print
Morph_for_print
Relational
Equal
Not_equal
More
Less
More_equal
Less_equal
Resize
Resize_image change size by a scale factor
Resize_xy_image separate xy scale factors
Resize_canvas
-------
Shrink_to
Quicklook shrink to smallest axis == 64 pixels
Icon shrink to smallest axis == 400 pixels
Rotate
Rotate_fixed
r90
r180
r270
r45
Rotate_free rotate with a slider
-------
Flip
up_down
left_right
Transpose
-------
Straighten_arrow rotate to get an arrow straight
Statistics
Mean
Deviation
Stats
-------
Max
Min
Maxmin
Maximum_position
Minimum_position
-------
Count_set
Count_clear
-------
Measure_colour_chart
Statistical_difference more of a filter really :-(
Count_lines
Trig
Sin
Cos
Tan
-------
Asin
Acos
Atan
-------
Rad
Deg
-------
Angle_range is angle within arc ... clock arithmetic
================================================
FILE: doc/doc-programmer/regionview
================================================
how regionviews are built and maintained
iregion iregionview
end of parent_add, make
iregiongroup child
iregiongroup iregiongroupview
monitor object updates, on iregiongroupview_refresh() create and
set and unset model->display destroy regionview ... watches iregion model
regionview_new( iregion, area, imagepresent )
does not view_link(), since it's not a true view ... adds own signal
handlers for "changed" and "destroy" on iregion/iarrow
================================================
FILE: doc/src/Example.def
================================================
/* Gamma im gam: correct
*/
Gamma A1 B7
= error "arg 1 is not image", not is_image A1;
= error "arg 2 is not number", not is_number B7;
= Convert_to_unsigned_char B5
{
B4 = A1 ^ (1/B7);
B5 = B4 * (255 / 255 ^ (1/B7));
};
================================================
FILE: doc/src/html.cfg
================================================
% configuration file for output of nipguide as html
\Preamble{html}
\begin{document}
% stop the mono font shrinkage we do for paper output
\renewenvironment{ctd}{\begin{quote}\tt}{\end{quote}}
% make a label
% in html, write an extra label which we can link to nip's help system
\renewcommand{\mylabel}[1]{
\label{#1}
\HCode{<a name="nip_label_#1"></a>}
}
% supress " on page xx" if we're making HTML
\renewcommand{\onpage}[1]{}
\EndPreamble
================================================
FILE: doc/src/infrared.tex
================================================
\chapter{Assembling infrared mosaics}
\mylabel{sec:ir}
VIPS has a package of functions designed to help join many small images
together to make a single large image. They were originally designed to
assemble infrared reflectograms but are general enough to be useful for
other sorts of image as well, such as X-rays.
This chapter first introduces the mechanics of infrared imaging then
explains how to use \nip{} to assemble the images you grab. Finally, it
suggests some printing techniques.
\section{Infrared imaging}
Most museums use tube cameras (usually called Vidicons) for infrared
imaging. Although they are relatively cheap they are not very stable
and they suffer from (sometimes quite severe) geometric distortions.
More modern solid-state cameras are still expensive but are becoming
more widely used because of their greater stability. This
guide assumes you are using a tube camera but almost all of it applies to
solid-state cameras as well.
Whatever your camera there are three main sources of error which have to be
addressed in order to be able to make successful mosaics:
\begin{enumerate}
\item
Tube cameras suffer very badly from distortions in the image, usually either
`pin-cushioning' or `barrelling'. These distortions result in alignment
errors when sub-images are joined together.
\item
The sensitivity of the tube varies across its surface, causing some parts of
each sub-image to be brighter than others. This is made worse by unavoidable
variations in illumination. When a lot of such images are joined together the
result is a `brick wall' effect.
\item
The sensitivity of the tube also varies between sub-images, partly as
the overall lightness in the field of view changes, and also because the
electronics in the camera change as the camera heats up. This leads to a
patchy, unbalanced mosaic.
\end{enumerate}
The first two problems will be different in each Vidicon and will change
each time a tube is replaced. All three problems need to be addressed to
create successful infrared reflectogram mosaics.
\subsection{Setting up your system}
\subsubsection{Mechanical set-up}
It is vital that the optical axis of the Vidicon is at right-angles to the
picture plane and that, whether it is the Vidicon or the painting that moves
during image capture, it remains perpendicular. Obviously, with a seriously
warped panel, this may not be possible. The lighting should be carefully
adjusted so that the area of interest is lit as evenly as possible. If you
can, arrange for the lights to remain stationary with respect to the camera.
An easy way to test camera alignment is to image a piece of graph paper,
move the camera (either left-right or up-down) by 90\% of the field of view,
and see how features in the overlap area move. First rotate the centre
around the optical axis to get the centre line of the images lined up. Next
check the corners and adjust camera pitch and yaw.
\subsubsection{Video set-up}
\mylabel{sec:vidpref}
On Linux, you can capture video directly into \nip{} provided that your
capture card is compatible with v4l. You may need to adjust the \nip{}
video settings. These settings can be found under the headings \ct{Video
for linux} and \ct{General video capture} in the \ct{Preferences} window,
which can be accessed by selecting \ctr{Edit}\ct{Preferences} from the main
\nip{} window. The default settings, see \fref{fg:vidpref}, are for the
Hauppauge PCI capture card and should be changed as required.
\begin{fig2}
\figw{3in}{scr21a.png}
\caption{Recommended video preference settings}
\mylabel{fg:vidpref}
\end{fig2}
Once you have set up your card, select \ctr{Tasks}\ctr{Capture}\ct{Capture
Video Frame} to create a new video object, which will appear as a still
image in your current selected column. The captured image can be updated by
opening the image in a viewing window and then pressing Ctrl-C (a shortcut
for \ctr{File}\ct{Recalculate Image}).
You can create more than one video object: this can help you to get the
overlaps right if you have two open at once (one showing the previous grab)
when you are moving the camera around.
\subsubsection{Setting the crop and aspect}
While it is possible to correct geometric distortions after the image is
captured, it is difficult to do the necessary modelling accurately and
reliably. Instead, we suggest the grabbed images should simply be cropped,
since the most severe distortion affects the perimeter of each video image.
To determine the area to crop, set up the Vidicon as it would be set to
image a painting and capture an image of a rectangular grid --- a piece of
graph paper works well as a target. Before capturing the grid, check the
current video crop settings in the \ct{Preferences} window
and ensure that the crop is set at maximum: left 0, top 0, width 768,
height 576 (these are the dimensions for a PAL signal, they may be different
on your system). Also set the \ct{Aspect ratio} line to 1.
Create a new video object and look for the largest rectangle with little
distortion (no more than a few pixels). If you create a region on the video
image (by holding down the Ctrl key and dragging down and right with
the left mouse button, see \pref{sec:region}) you can compare the straight
edges of the region against the distorted lines of the grid. You can then
expand and contract the region until you decide on the optimum area. The
settings you need for the crop box can be taken from the values contained
within the region object, which can be viewed by left-clicking several
times on the down arrow to the left of the region object name.
Finally, you can set an aspect ratio: \nip{} will automatically stretch
video frames vertically by this factor. You can measure the aspect ratio of
your capture card by taking a picture of something you know to be square and
dividing the width in pixels by the height in pixels.
Move back to the \ct{Preferences} window and enter the crop values in the
\ct{General video capture} section. Next time you create a new video object,
you should find that it is cropped to the appropriate area. The settings
you enter in the \ctr{Preferences} window will be saved and automatically
loaded again next time you start \nip{}. See appendix~\ref{sec:config}.
Choosing the usable area of the image is a matter of compromise --- the
smaller the area, the more images are required to build a mosaic of a
particular painting. If the area chosen is too large then the amount of
distortion can cause serious errors in the final mosaic.
It's possible to use the VIPS rubber sheet plug in to detect and correct
geometric distortion in your images automatically. This lets you use the
full area of the sensor. It is a bit fiddly, but see the rubber sheet
documentation if you are determined.
\subsection{Capturing the data}
\subsubsection{Setting the gain and offset}
Once everything is correctly set up, position the painting in front of the
camera and experiment with the gain and offset settings on the Vidicon to
achieve the optimum infrared image on the computer screen. Note that the
appearance of the image on the computer will normally be different to its
appearance on the video monitor connected directly to the camera.
Repeat this process at different points across the whole area to be captured.
Although it is not always possible, the aim is to find a setting that does
not need altering much during the capture of the data. This seems to lead
to more successful mosaics.
\subsubsection{Grey card correction}
To counteract the problem of uneven sensitivity across the target area of the
tube, it is necessary to capture an image of a piece of grey card. This grey
card image is then used to correct all subsequent images. The card should be a
flat, even grey, of around 50\% reflectance. The Vidicon and lighting
positions with respect to the painting should not be changed between the
imaging of the grey card and the capturing of the mosaic. A grey card can be
captured at any time, but it is good practice to start with one --- you may
forget later.
If your mosaic will take several hours to capture, you may wish to grab extra
grey cards, since the sensitivity of the tube can change as it warms
up. Be sure to note which data images correspond to which grey cards!
In association with the first grey card, it is a good idea to grab an image of
your grid to record the scale at which the data images are being made.
\subsubsection{Image capture}
\mylabel{sec:imcap}
Open a video window, \ctr{Tasks}\ctr{Capture}\ct{Capture Video Frame},
and when it shows the desired area, save the file. The choice of file name
is a question of personal preference. We find it helpful to use a format
that indicates where in the mosaic the data comes from --- for example,
\ct{dat3.5.v} for the fifth image in row three.
It is helpful to be able to see the previous image to ensure that there is
sufficient overlap. To achieve this, a second video window can be opened and
placed alongside and the images grabbed into alternate windows.
\subsubsection{Capture tips}
\begin{itemize}
\item
Make a new directory for each painting, and keep all of the image files
for that painting (including a grey card and a grid) in that directory.
\item
VIPS can join up images in any layout, but you will get much less confused
when you assemble your images if you stick to a regular grid. This can be
difficult --- a good compromise is to keep one axis fixed and grab in rows
(or columns).
\item
You can help to reduce mosaicing errors later if you keep your rows (or
columns) as short as possible. So if the painting is in landscape format, grab
in columns (or turn the painting on its side and grab in rows); if the
painting is portrait, grab in rows (or turn the painting on its side and grab
in columns).
\item
The semi-automatic mosaic functions (see \pref{sec:mosaicing}) need a minimum
overlap between the sub-images they join of around 20 pixels. For safety, you
should aim for a larger overlap than this: we recommend an overlap
of 60 pixels (around 20mm, usually).
\item
If the overlap area is featureless, it is worth identifying a good tie-point
and ensuring it is visible in both images, even if this means increasing the
overlap for one of the joins.
\end{itemize}
\subsection{Correcting illumination}
\mylabel{sec:grey}
Before the mosaic can be assembled, the data images need to be corrected for
non-uniformity of illumination using the grey card image. This function can be
performed within \nip{} or directly using a predefined VIPS command-line tool.
\subsection{Correcting with the command-line tool}
\mylabel{sec:linuxgrey}
First, close \nip{} and open a command line window, (xterm, mingw, etc). Move
to the directory containing your image files with \ct{cd}. For example, if you
have made a directory called \ct{raphael} inside your home directory, type:
\begin{verbatim}
prompt% cd raphael
\end{verbatim}
The program you need to use is called \ct{light\_correct}. You need to give
it the name of the grey-card image and the names of all of the image files
you want it to correct with that gray card. Suppose you have saved your
gray card image as \ct{grey.v}, and your painting image files are called
\ct{dat1.1.v} and \ct{dat1.2.v}. You would then enter:
\begin{verbatim}
prompt% light_correct grey.v dat1.1.v dat1.2.v
\end{verbatim}
The program will run and print messages explaining its progress. It creates
a new set of corrected image files, with the same names as before, but
prefixed with \ct{ic\_}. In this example, it would create two new images files
called \ct{ic\_dat1.1.v} and \ct{ic\_dat1.2.v}.
If there are a lot of image files to correct this could mean a lot of typing.
Fortunately, you can use wildcard characters to abbreviate lists of file
names. The example above can be abbreviated to:
\begin{verbatim}
prompt% light_correct grey.v dat*.v
\end{verbatim}
\noindent
The \ct{dat*.v} means `any filename which starts \ct{dat} and ends with
\ct{.v}'.
You can use this technique to correct different parts of your mosaic
with different grey cards. If you have a file called \ct{grey1.v} for the
first row in your mosaic, and a file called \ct{grey2.v} for the second, you
could do the correction in two parts:
\begin{verbatim}
prompt% light_correct grey1.v dat1.*.v \\
prompt% light_correct grey2.v dat2.*.v
\end{verbatim}
\subsection{Correcting within \nip{}}
\mylabel{sec:wingrey}
The function within \nip{} used to preform this correction is
\ctr{Tasks}\ctr{Capture}\ct{Flatfield}. A set of images can be corrected
at the same time by joining them together in a \ct{Group}. A group can
be produced by selecting all of the required images and then using the
\ctr{Edit}\ct{Group} command.
Load all of your images into \nip{}, and group all the image except the
grey image. Select your grey image and then your new group and then run
the \ctr{Tasks}\ctr{Capture}\ct{Flatfield} function. This will produce
you a group of corrected images. Right-click on this new group and select
\ct{Save As} from the menu. In the save window type in a name, for example
\ct{fred\_01.v} and then hit the save button. All of the images in your group
will then be saved as \ct{fred\_01.v}, \ct{fred\_02.v}, \ct{fred\_03.v}
\ldots{} \ct{fred\_n.v}.
If you want to keep row numbers in your file names, (see \pref{sec:imcap}),
you will need to correct your images one row at a time, saving each row as
\ct{fred01\_01.v}, \ct{fred02\_01.v}, etc.
\section{Assembling the mosaic}
\mylabel{sec:mosaicing}
The tutorial has a section on mosaic assembly with \nip{}: see \pref{sec:irtut}.
Mosaic assembly is normally painless. There are a few factors
you should bear in mind when you are deciding how to assemble an image
(particularly a large image):
\begin{itemize}
\item
You can open up a mosaic join and change a few options, such as the blend
width. If you want to change the defaults for a whole workspace, change the
\ct{Mosaic defaults} options in your \ct{Preferences}.
\item
If two images just won't join correctly, try using
\ctr{Tasks}\ctr{Mosaic}\ctr{One Point}\ct{Manual Left to
Right} instead. These functions operate in the same way as the usual
mosaic functions, but do not do a search.
This is useful when the overlap is too small for the search
to work correctly, or when the overlap area is very smooth and contains
too few features for the search to find the exact overlap for you.
\item
\nip{} does not do sub-pixel interpolation. As a result, each join will on
average cause a positioning error of about 0.5 pixels, even if your input
images contain no geometric distortion. If there are distortions in your input
images (there usually are distortions in infrared images), then errors can be
as much as 1--2 pixels per join. These errors accumulate as the number of
images you join becomes larger.
If you join a strip of 10 images together with
\ctr{Tasks}\ctr{Mosaic}\ctr{One Point}\ct{Left to Right}, on average you
can expect a total error of about 5 pixels. If you join two strips like
this together top-bottom, you can therefore expect a mismatch of about 2.5
pixels at each end of the join.
You can minimise the effect of these errors if you assemble your images
differently. Suppose you have a 10 by 10 mosaic to build. Instead of making
and joining 10 strips of 10 images each, make four 5 by 5 sub-mosaics (one for
each quadrant) and then join these four quadrants together. The errors will
now be more evenly spread over the image and therefore will be less visible.
\item
\mylabel{sec:pieces}
Some operating systems limit the number of files a program can have open
at once: this in turn limits the size of the mosaics you can assemble in
one go. If you are having problems putting together very large mosaics, try
building your image in sections (\ct{top}, \ct{middle} and \ct{bottom},
perhaps), and later load up and join these larger pieces.
\end{itemize}
\section{Balancing the mosaic}
\mylabel{sec:balance}
Like assembly, mosaic balancing is normally automatic and painless. You may
sometimes have problems if the image is very large, or needs dramatic
corrections:
\begin{itemize}
\item
Each VIPS image file has an associated history, recording the operations on
that image since it was loaded from a file. You can view an image's history
by clicking on \ctr{View}\ct{Image header} in an image view window.
The automatic balancer uses the history to work out how you built your
mosaic. The balancer knows about left-right and top-bottom joins, but nothing
else! If the history has other stuff recorded in there, you'll see
unhelpful error messages like \ct{unable to open tmp/xxx.v}, or \ct{more
than one root}.
If you need to perform corrections to any of your sub-images, do them, save
the image, load it again, and then build the mosaic. This will make sure the
history of the image you are trying to balance only contains mosaic
operations.
\item
On some systems the balancer can run out of memory or out of file descriptors
on very large mosaics. If your mosaic is made up of more than a few hundred
images, and you are having balancing problems you may have hit one
of these limits.
The solution (as with mosaic assembly) is to assemble and balance your mosaic
in smaller pieces.
\item
If your grey-card correction is not accurate, you will find that the
balancer will magnify any problems you have.
Suppose your lighting and camera set-up always produces images which are
brighter on the right than the left, and suppose, due to some problem with
your grey-card correction, this effect is not completely removed. You will
find that when you balance a mosaic, the small differences between left and
right edges of your sub-images will have been smoothed out, but they will have
caused a large difference in brightness between the extreme left edge of your
final image and the extreme right.
\nip{} includes several functions which can help to fix this problem, the
most commonly used being: \ctr{Tasks}\ctr{Mosaic}\ctr{Tilt Brightness}\ct{Left
to Right} and \ctr{Tasks}\ctr{Mosaic}\ctr{Tilt Brightness}\ct{Top to Bottom}.
\end{itemize}
\section{Other \nip{} features useful for reflectograms}
You can use \nip{}'s general image processing facilities to play around with
reflectogram mosaics. You can make false-colour images of your reflectograms,
blend them with visible images or X-rays, search them for edges, and so on
see the \ct{registering} and
\ct{overlays\_and\_blending}
examples for ideas.
There are also some first order mosaic functions:
\ctr{Tasks}\ctr{Mosaic}\ctr{Two Points}\ct{Left to Right} and
\ctr{Tasks}\ctr{Mosaic}\ctr{Two Points}\ct{Top to Bottom}. These functions
automatically rotate and scale the right-hand image in a join. They are
useful for assembling X-ray mosaics, and for fixing very difficult joins in
reflectogram images. These functions work the same way as the \ct{One Point}
functions except that you will need to define two tie-points on each image.
You can mosaic images of any numeric type: 16-bit integer images are handy for
mosaicing X-ray images, for example.
\section{Printing}
Once you have assembled a good reflectogram, you will want to print it,
or to use it in other computer programs. The best way to do this is to save
the final image in TIFF or JPEG format, and then load it into the new
application --- see~\pref{sec:loadsave}.
There are a couple of points to bear in mind: first, like any image,
reflectograms look best on paper if you sharpen them up a little first. Click
on \ctr{Filter}\ctr{Convolution}\ct{Custom Convolution}, right click on
the matrix button, select \ct{Replace from file}. Double Click on the
second or lower \ct{data} directory listed in the left hand column to
enter \nip{}'s main data directory. Change the \ctr{Image type select}
option to \ct{All FIles (*)} and then select and load \ct{rachel.con}.
This will usually produce an approprioatly sharpened reflectogram.
Secondly, you will need to try several prints with different contrasts
and brightnesses to get a good match between the paper and the screen,
try \ctr{Image}\ctr{Levels}\ct{Linear}. You may even want to fiddle with
the gamma, try \ctr{Image}\ctr{Levels}\ct{Power}.
Finally, you may not need a full resolution image. For almost all printers
there's no point going over about 300 dpi (dots per inch), or about 3000 by
2000 pixels for an A4 page. To reduce the size of an image, use one of the
functions listed under \ctr{Resize}\ctr{Transform}\ct{Resize}.
================================================
FILE: doc/src/intro.tex
================================================
\chapter{Getting started}
\noindent
\nip{} is a user interface for the VIPS image processing library. It is
designed to be fast, even when working with very large images, and to
be easy to extend.
This guide is split into quite a few chapters:
\begin{itemize}
\item
If you want to use \nip{} to assemble infrared mosaics, you should read
\cref{sec:ir}. The middle section in the tutorial (see \pref{sec:irtut})
does IR mosaics very quickly.
\item
If you want to use \nip{} for general image processing, work through
\cref{sec:tutorial}.
\item
If you have specific questions about some part of \nip{}'s user-interface, look
at \cref{sec:reference}.
\item
If you're really hardcore, take a look at \cref{sec:program}, which covers
programming.
\item
If you want to know more about VIPS, the image processing package
underlying \nip{}, try the \emph{VIPS Manual}.
\end{itemize}
If \nip{} has installed correctly you should see something like
\fref{fg:introwin} when it starts up.
\begin{figure}
\figw{3in}{snap1.jpg}
\caption{\nip{} as it starts up}
\label{fg:introwin}
\end{figure}
================================================
FILE: doc/src/menus.tex
================================================
\chapter{Image processing menus}
\mylabel{sec:menus}
\noindent
This chapter is runs quickly through the \ct{Toolkits} menu. See
\cref{sec:program} if you want to understand how the menus are written
(or want to add more of your own). Use the Toolkit Browser to find stuff.
Some things are common to almost all menu items:
\begin{description}
\item[Tooltips]
If you rest your mouse pointer over an item,
you'll see a quick description of what the item does.
\item[Grouping]
You can select several objects, click \ctr{Edit}\ct{Group}, and then
when you click the item, it will operate on all the objects in the
group.
\item[Any type]
Almost all items will work on any object. You can add an image and a
number, for example, find the colour difference between a number and
an image, or transform a matrix from LAB to XYZ.
\end{description}
\section{Colour}
\mylabel{sec:menu-colour}
This menu groups operations on colorimetric images and patches of
colour. A colour patch is three float numbers plus a tag saying how those
number should be interpreted as colour (for example, as a colour in CIE LAB
colourspace). You can drag and drop between colour patches, and into and from
the inkwell in an image paint window. Double-left-click on a colour patch to
open a colour select dialog.
\nip{} has 9 main types of colorimetric image, see \tref{tb:colour}.
All these types are D65 (that is, daylight) absolute colorimetric.
When it displays an image, \nip{} uses the \ct{Type} field in the image
header as a hint on how to transform the numbers in the image into RGB for
the display. The current \ct{Type} is displayed at the end of the caption
line below an image thumbnail.
The \ct{Mono}, \ct{GREY16} and \ct{RGB16} types are not really calibrated
themselves: they are usually whatever you get by loading an image from a file.
You'll usually need an extra step, such as applying an embedded ICC profile,
before you get accurate colour.
\begin{tab2}
\begin{center}
\begin{tabular}{||l|l|l||}
\hline
Name & Format & Notes \\
\hline
\ct{Mono} & One band 8 bit &
Not calibrated \\
\ct{sRGB} & Three band 8 bit &
Screen device space for the sRGB standard \\
\ct{GREY16} & One band 16 bit &
Not calibrated \\
\ct{RGB16} & Three band 16 bit &
Not calibrated \\
\ct{Lab} & Three band float &
The 1976 version of the CIE perceptual colourspace \\
\ct{LabQ} & Four band 8 bit &
Like \ct{Lab}, but represented as 10:11:11 bits \\
\ct{LabS} & Three band 16 bit &
Like \ct{Lab}, but represented as 15:16:16 bits \\
\ct{LCh} & Three band float &
\ct{Lab}, but with polar coordinates \\
\ct{XYZ} & Three band float &
The base CIE colourspace \\
\ct{Yxy} & Three band float &
Sometimes useful for colour meters \\
\ct{UCS} & Three band float &
Highly uniform space from the CMC(l:c) standard \\
\hline
\end{tabular}
\end{center}
\caption{\nip{} colourspaces}
\mylabel{tb:colour}
\end{tab2}
\begin{description}
\item[\ct{New}]
Make a patch of colour, or pick a colour from a slice through CIELAB
colourspace.
\item[\ct{Convert To Colour}]
Convert anything into a Colour object.
\item[\ct{Colourspace}]
Change the colourspace. The stored numbers change, but the
visual appearance should stay the same.
\item[\ct{Tag As}]
Change the colourspace tag (the \ct{Type} field in the image
header). The stored numbers stay the same, but the visual appearance
should change.
\item[\ct{Colour Temperature}]
Change the colour temperature. \ct{Move Whitepoint} just adjusts the
ratios of X and Z using the CIE standard illuminants.
\ct{D65 to D50} and \ct{D50 to D65} transform using either a 3x3
matrix which is numerically minimal in XYZ space with respect to the
colours on a Macbeth Color Checker, or via Bradford cone space. The
Bradford transform omits the power term.
The final two items go from XYZ to LAB and back, but with D50
normalisation rather than the default D65.
\item[\ct{ICC}]
Transform images (not patches of colour) device space to profile
connection space (LAB float) and back.
You need to be careful about colour temperature issues:
all printers work with D50, and \nip{} is all D65. Use the D65 to D50
interchange items in the \ct{Colour Temperature} menu to swap back and
forth.
All printers also work with relative colorimetry, and \nip{} is
generally absolute. Use \ct{Absolute to Relative} to scale an absolute
colorimetric image by a media white point.
\item[\ct{Radiance}]
\nip{} can read and write images written by the Radiance family
of programs (usually with the suffix \ct{.hdr}), commonly used in
HDR photrography.
Images in this format used a packed floating point layout for their
pixels. Items in this menu pack and unpack pixels for you.
\item[\ct{Difference}]
Calculate various colour difference metrics. You can mix patches of
colour and colour images.
\item[\ct{Adjust}]
Change colour in a colorimetric way. \ct{Recombination}
multiplies each pixel in an image through a matrix. \ct{Cast}
displaces the neutral axis in LAB space. \ct{HSB} lets you adjust an
image in LCh colourspace.
\item[\ct{Similar Colour}]
find pixels in an image with a similar colour to a patch of
colour.
\item[\ct{Measure Colour Chart}]
This takes a trimmed image of a colour chart (a rectangular grid of
coloured squares), measures the average pixel value in the centre 50\%
of each square, and returns a matrix of the measured values.
Use \ct{Make Synthetic Colour Chart} to make a colour chart image from
a matrix of measurements.
\item[\ct{Plot ab Scatter}]
draws a 2 dimensional histogram of the distribution of pixel colours
in LAB colourspace.
\end{description}
\section{Filter}
\mylabel{sec:menu-filter}
This menu groups operations which filter images, or which are filters in the
photoshop sense.
\begin{description}
\item[\ct{Convolution}]
This menu has several standard convolution operations (blur, sharpen,
edge detect, etc.), plus the option to convolve with a custom kernel.
Two menu items are slightly more complicated. \ct{Unsharp Mask}
transforms to CIE LAB colour space, then sharpens just the L band
with a cored unsharp filter. The \ctr{Tasks}\ct{Print} menu has a
version of this filter tuned for typical inkjet printers.
\ct{Custom Blur} builds and applies a square or gaussian convolution
kernel for you based on a radius setting.
\item[\ct{Rank}]
A preset median filter, and a custom rank filter that lets you specify
window size and rank.
The \ct{Image Rank} item does pixel-wise ranking of a set of images.
\item[\ct{Morphology}]
These menu items implement basic morphological operations. Images are
zero for background and non-zero (usually 255) for object. Matricies
are shown as 0, 1 and * for background, object and don't-care.
The \ct{Threshold} item does a simple level threshold. Use the
\ctr{Math}\ct{Relational} menu to construct more complex image
binarisations. Use \ctr{Math}\ct{Boolean} to combine morphologies.
The first half of the menu lists simple erode and dilate operations, 4-
and 8-way connected. The second half contains several useful compound
filters.
See also \ctr{Histogram}\ct{Find Profile} for
something that can search an image for object edges. And
\ct{Math}\ctr{Statistics}\ct{Edges} can count the number of edges
across and down an image.
\item[\ct{Fourier}]
A selection of ideal, Gaussian and Butterworth Fourier space filters.
You can make other mask shapes yourself using the \ctr{Image}\ct{Make
Patterns} menus, then apply them using \ctr{Math}\ct{Fourier}. You can
also use the image paintbox to directly paint out peaks in a
fourier-space image before transforming back to real space.
\item[\ct{Enhance}]
A selection of simple image enhancement filters. \ct{Statistical
Difference} passes a window over an image and tries to match the
region statistics at each point to a target mean and deviation.
\item[\ct{Spatial Correlation}]
Place a small image at every possible position in a big image and
calculate the correlation at each position. \ct{Simple Difference} is
the much faster unnormalised version.
\item[\ct{GREYCstoration}]
VIPS includes a copy of the CImg library and you can use two useful
CImg operations from this menu: denoising and enlarging.
\item[\ct{Tilt Brightness}]
A selection of tools for adjusting the brightness of an image across
it's surface. Useful for correcting lighting problems.
\item[\ct{Blend}]
Blend two objects together using either a third object to control the
blend at each point, or a slider to set all points together. You can
blend almost anything with anything.
One useful version is to use a text image (see \ctr{Image}\ctr{Make
Patterns}\ct{Text}) to blend between two colours (see
\ctr{Colour}\ct{New}).
\ct{Along Line} does a left/right or top/bottom fade between two
images.
\item[\ct{Overlay}]
Make a colour overlay of two monochrome images. Useful with
\ctr{Image}\ctr{Transform} for testing image superposition.
\item[\ct{Colourize}]
Use a colour image to tint a monochrome image. Useful in conjunction
with \ctr{Image}\ctr{Transform}.
\item[\ct{Browse}]
Look at either the bits or the bands of an image.
\item[\ct{Photographic Negative} and friends]
A small selection of simple, faintly photoshop-style filters.
\end{description}
\section{Histogram}
\mylabel{sec:menu-histogram}
This menu groups operations for finding and transforming image histograms.
\nip{} represents histograms and lookup tables as images with \ct{Type}
set to \ct{Histogram}. Histograms may have pixels in any format and any
number of bands. You can only find histograms of unsigned 8- and 16-bit
images.
\begin{description}
\item[\ct{New}]
This makes a new ramp histogram. A set of sliders let you adjust the
shape. Use \ct{Map Histogram} to apply your ramp to an image.
\ct{Build LUT from Scatter} makes a histogram from a matrix of
$(x, y)$ values.
\ct{Tag Image as Histogram} marks an image as actually being a
histogram after all.
\ct{Tone Curve} builds a tone curve which you can later apply to an
image.
\item[\ct{Find}]
A one dimensional histogram treats each band as an independent
variable. An $n$-dimensional histogram treats each pixel as a vector of
$n$ elements, where $n$ is the number of bands in the image.
\item[\ct{Map}]
Looks up each pixel in the input in the histogram and sends the found
value to the output.
\item[\ct{Equalise}]
Find the global or locally histogram equalised image.
\item[\ct{Cumulative}]
Use this and friends to calculate a cumulative histogram (integrate),
normalise a histogram and match two histograms.
\item[\ct{Find Profile}]
Searches from the edges of an image for the first non-zero pixel and
returns a profile histogram.
\item[\ct{Find Projections}]
Sum columns and rows in an image.
\item[\ct{Plot Slice}]
Mark a guide on an image (drag from the
image rulers, or click \ctr{File}\ctr{New}\ct{Guide}) and click
\ct{Plot Slice} to make a histogram which is a horizontal or vertical
slice through an image. Use \ct{Extract Arrow} to extract the area
around an arrow or guide. Use \ct{Plot Object} to make a plot of any
object.
\end{description}
\section{Image}
\mylabel{sec:menu-image}
This menu groups operations which apply only to images.
\begin{description}
\item[\ct{New}]
Makes a new image. \ct{Region on Image} makes a new region, arrow,
guide or mark on an image. It's usually easier to open a viewer on
an image and Ctrl-drag.
\item[\ct{Convert to Image}]
Try to make an image out of anything.
\item[\ct{Format}]
Switch between the various precisions.
\item[\ct{Header}]
Try to change or examine the image header in various ways.
\item[\ct{Cache}]
This caches an image in RAM. Use this to save the results of a long
computation.
\item[\ct{Levels}]
Various tools that change the levels in an image. \ct{Tone Curve} is
the only complex one: it le
gitextract_szh7h6y0/
├── .gitignore
├── AUTHORS
├── COPYING
├── ChangeLog
├── Makefile.am
├── NEWS
├── README.md
├── THANKS
├── TODO
├── autogen.sh
├── configure.ac
├── doc/
│ ├── README
│ ├── doc-programmer/
│ │ ├── hierarchy.txt
│ │ ├── imageview
│ │ ├── makeindex.pl
│ │ ├── menu.txt
│ │ └── regionview
│ └── src/
│ ├── Example.def
│ ├── html.cfg
│ ├── infrared.tex
│ ├── intro.tex
│ ├── menus.tex
│ ├── mydefs.tex
│ ├── nipguide.tex
│ ├── program.tex
│ ├── reference.tex
│ └── tutorial.tex
├── man/
│ ├── Makefile.am
│ └── man1/
│ ├── Makefile.am
│ └── nip2.1
├── nip2.appdata.xml
├── nip2.desktop.in
├── nip2.spec.in
├── nip2.xml
├── po/
│ ├── ChangeLog
│ ├── LINGUAS
│ ├── POTFILES.in
│ ├── POTFILES.skip
│ ├── POTFILES2
│ ├── en_GB.gmo
│ ├── en_GB.po
│ ├── malkovich.gmo
│ ├── malkovich.po
│ └── messages
├── proj/
│ ├── README
│ └── src/
│ ├── makefile.msc
│ └── nip.rc
├── share/
│ ├── Makefile.am
│ └── nip2/
│ ├── Makefile.am
│ ├── compat/
│ │ ├── 7.10/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Format.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.12/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Format.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.14/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.16/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.24/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.26/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.28/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.38/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.40/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.8/
│ │ │ ├── Capture.def
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Format.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Morphology.def
│ │ │ ├── Mosaic.def
│ │ │ ├── New.def
│ │ │ ├── Print.def
│ │ │ ├── Resize.def
│ │ │ ├── Rotate.def
│ │ │ ├── Statistics.def
│ │ │ ├── X_ray.def
│ │ │ ├── _convert.def
│ │ │ ├── _errors.def
│ │ │ ├── _generate.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 7.9/
│ │ │ ├── Capture.def
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Format.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Morphology.def
│ │ │ ├── Mosaic.def
│ │ │ ├── New.def
│ │ │ ├── Print.def
│ │ │ ├── Resize.def
│ │ │ ├── Rotate.def
│ │ │ ├── Statistics.def
│ │ │ ├── X_ray.def
│ │ │ ├── _convert.def
│ │ │ ├── _errors.def
│ │ │ ├── _generate.def
│ │ │ ├── _list.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 8.2/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 8.3/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 8.4/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 8.5/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── 8.6/
│ │ │ ├── Colour.def
│ │ │ ├── Filter.def
│ │ │ ├── Histogram.def
│ │ │ ├── Image.def
│ │ │ ├── Magick.def
│ │ │ ├── Makefile.am
│ │ │ ├── Math.def
│ │ │ ├── Matrix.def
│ │ │ ├── Object.def
│ │ │ ├── Preferences.ws
│ │ │ ├── Tasks.def
│ │ │ ├── Widgets.def
│ │ │ ├── _Object.def
│ │ │ ├── _convert.def
│ │ │ ├── _generate.def
│ │ │ ├── _joe_extra.def
│ │ │ ├── _joe_utilities.def
│ │ │ ├── _list.def
│ │ │ ├── _magick.def
│ │ │ ├── _predicate.def
│ │ │ ├── _stdenv.def
│ │ │ └── _types.def
│ │ ├── Makefile.am
│ │ └── _compat.def
│ ├── data/
│ │ ├── AdobeRGB1998.icc
│ │ ├── Makefile.am
│ │ ├── cmyk.icm
│ │ ├── examples/
│ │ │ ├── 1_point_mosaic/
│ │ │ │ └── 1pt_mosaic.ws
│ │ │ ├── 2_point_mosaic/
│ │ │ │ └── 2pts_mosaic.ws
│ │ │ ├── businesscard/
│ │ │ │ └── businesscard.ws
│ │ │ ├── clone/
│ │ │ │ └── clone.ws
│ │ │ ├── framing/
│ │ │ │ └── framing.ws
│ │ │ ├── logo/
│ │ │ │ └── logo2.ws
│ │ │ ├── manual_balance/
│ │ │ │ └── manual_balance.ws
│ │ │ ├── overlays_and_blending/
│ │ │ │ └── overlay_blend.ws
│ │ │ ├── print_test_image.v
│ │ │ └── registering/
│ │ │ └── registering.ws
│ │ ├── macbeth_lab_d50.mat
│ │ ├── macbeth_lab_d65.mat
│ │ ├── rachel.con
│ │ └── sRGB.icm
│ ├── rc/
│ │ ├── Makefile.am
│ │ └── ipgtkrc
│ └── start/
│ ├── Colour.def
│ ├── Filter.def
│ ├── Histogram.def
│ ├── Image.def
│ ├── Magick.def
│ ├── Makefile.am
│ ├── Math.def
│ ├── Matrix.def
│ ├── Object.def
│ ├── Preferences.ws
│ ├── Tasks.def
│ ├── Widgets.def
│ ├── _Object.def
│ ├── _convert.def
│ ├── _generate.def
│ ├── _joe_extra.def
│ ├── _joe_utilities.def
│ ├── _list.def
│ ├── _magick.def
│ ├── _predicate.def
│ ├── _stdenv.def
│ └── _types.def
├── src/
│ ├── BITMAPS/
│ │ ├── Makefile.am
│ │ ├── ant.xbm
│ │ ├── automatic.xbm
│ │ ├── automatic.xpm
│ │ ├── automatic1.xbm
│ │ ├── automatic1.xpm
│ │ ├── automatic2.xbm
│ │ ├── automatic2.xpm
│ │ ├── automatic3.xbm
│ │ ├── automatic3.xpm
│ │ ├── book_closed.xpm
│ │ ├── book_open.xpm
│ │ ├── change.xbm
│ │ ├── col.xpm
│ │ ├── convol.xbm
│ │ ├── dropper.xpm
│ │ ├── dropper_msk.xbm
│ │ ├── dropper_src.xbm
│ │ ├── floppy.xpm
│ │ ├── image.xbm
│ │ ├── kill.xbm
│ │ ├── mag_msk.xbm
│ │ ├── magin.xpm
│ │ ├── magin_src.xbm
│ │ ├── magout.xpm
│ │ ├── magout_src.xbm
│ │ ├── mini_page.xpm
│ │ ├── morph.xbm
│ │ ├── paint.xpm
│ │ ├── pan.xpm
│ │ ├── program.xbm
│ │ ├── select.xpm
│ │ ├── separator.xpm
│ │ ├── slider.xbm
│ │ ├── toolbox_closed.xpm
│ │ ├── toolbox_open.xpm
│ │ ├── tools.xpm
│ │ ├── watch_1.xbm
│ │ ├── watch_2.xbm
│ │ ├── watch_3.xbm
│ │ ├── watch_4.xbm
│ │ ├── watch_5.xbm
│ │ ├── watch_6.xbm
│ │ ├── watch_7.xbm
│ │ ├── watch_8.xbm
│ │ └── watch_msk.xbm
│ ├── Makefile.am
│ ├── action.c
│ ├── action.h
│ ├── boxes.c
│ ├── boxes.h
│ ├── builtin.c
│ ├── builtin.h
│ ├── cache.c
│ ├── cache.h
│ ├── call.c
│ ├── call.h
│ ├── class.c
│ ├── class.h
│ ├── classmodel.c
│ ├── classmodel.h
│ ├── clock.c
│ ├── clock.h
│ ├── colour.c
│ ├── colour.h
│ ├── colourdisplay.c
│ ├── colourdisplay.h
│ ├── colourview.c
│ ├── colourview.h
│ ├── column.c
│ ├── column.h
│ ├── columnview.c
│ ├── columnview.h
│ ├── compile.c
│ ├── compile.h
│ ├── conversion.c
│ ├── conversion.h
│ ├── conversionview.c
│ ├── conversionview.h
│ ├── defbrowser.c
│ ├── defbrowser.h
│ ├── doubleclick.c
│ ├── doubleclick.h
│ ├── dummy.c
│ ├── dump.c
│ ├── dump.h
│ ├── editview.c
│ ├── editview.h
│ ├── error.c
│ ├── error.h
│ ├── expr.c
│ ├── expr.h
│ ├── expression.c
│ ├── expression.h
│ ├── expressionview.c
│ ├── expressionview.h
│ ├── filemodel.c
│ ├── filemodel.h
│ ├── filesel.c
│ ├── filesel.h
│ ├── floatwindow.c
│ ├── floatwindow.h
│ ├── fontname.c
│ ├── fontname.h
│ ├── fontnameview.c
│ ├── fontnameview.h
│ ├── formula.c
│ ├── formula.h
│ ├── graphicview.c
│ ├── graphicview.h
│ ├── graphwindow.c
│ ├── graphwindow.h
│ ├── group.c
│ ├── group.h
│ ├── gtkutil.c
│ ├── gtkutil.h
│ ├── heap.c
│ ├── heap.h
│ ├── heapmodel.c
│ ├── heapmodel.h
│ ├── helpindex.h
│ ├── iarrow.c
│ ├── iarrow.h
│ ├── icontainer.c
│ ├── icontainer.h
│ ├── idialog.c
│ ├── idialog.h
│ ├── iimage.c
│ ├── iimage.h
│ ├── iimageview.c
│ ├── iimageview.h
│ ├── imagedisplay.c
│ ├── imagedisplay.h
│ ├── imageheader.c
│ ├── imageheader.h
│ ├── imageinfo.c
│ ├── imageinfo.h
│ ├── imagemodel.c
│ ├── imagemodel.h
│ ├── imagepresent.c
│ ├── imagepresent.h
│ ├── imageview.c
│ ├── imageview.h
│ ├── iobject.c
│ ├── iobject.h
│ ├── ip.h
│ ├── iregion.c
│ ├── iregion.h
│ ├── iregiongroup.c
│ ├── iregiongroup.h
│ ├── iregiongroupview.c
│ ├── iregiongroupview.h
│ ├── iregionview.c
│ ├── iregionview.h
│ ├── istring.h
│ ├── itext.c
│ ├── itext.h
│ ├── itextview.c
│ ├── itextview.h
│ ├── iwindow.c
│ ├── iwindow.h
│ ├── lex.l
│ ├── link.c
│ ├── link.h
│ ├── log
│ ├── log.c
│ ├── log.h
│ ├── main.c
│ ├── main.h
│ ├── mainw.c
│ ├── mainw.h
│ ├── makehelpindex.pl
│ ├── managed.c
│ ├── managed.h
│ ├── managedfile.c
│ ├── managedfile.h
│ ├── managedgobject.c
│ ├── managedgobject.h
│ ├── managedgvalue.c
│ ├── managedgvalue.h
│ ├── managedstring.c
│ ├── managedstring.h
│ ├── matrix.c
│ ├── matrix.h
│ ├── matrixview.c
│ ├── matrixview.h
│ ├── model.c
│ ├── model.h
│ ├── nip2-cli.c
│ ├── nip2-icon.rc
│ ├── nipmarshal.c
│ ├── nipmarshal.h
│ ├── nipmarshal.list
│ ├── number.c
│ ├── number.h
│ ├── numberview.c
│ ├── numberview.h
│ ├── option.c
│ ├── option.h
│ ├── optionview.c
│ ├── optionview.h
│ ├── paintboxview.c
│ ├── paintboxview.h
│ ├── pane.c
│ ├── pane.h
│ ├── panechild.c
│ ├── panechild.h
│ ├── parse.y
│ ├── parser.h
│ ├── path.c
│ ├── path.h
│ ├── pathname.c
│ ├── pathname.h
│ ├── pathnameview.c
│ ├── pathnameview.h
│ ├── plot.c
│ ├── plot.h
│ ├── plotmodel.c
│ ├── plotmodel.h
│ ├── plotpresent.c
│ ├── plotpresent.h
│ ├── plotstatus.c
│ ├── plotstatus.h
│ ├── plotview.c
│ ├── plotview.h
│ ├── plotwindow.c
│ ├── plotwindow.h
│ ├── popupbutton.c
│ ├── popupbutton.h
│ ├── predicate.c
│ ├── predicate.h
│ ├── prefcolumnview.c
│ ├── prefcolumnview.h
│ ├── prefs.c
│ ├── prefs.h
│ ├── prefworkspaceview.c
│ ├── prefworkspaceview.h
│ ├── preview.c
│ ├── preview.h
│ ├── program.c
│ ├── program.h
│ ├── progress.c
│ ├── progress.h
│ ├── real.c
│ ├── real.h
│ ├── reduce.c
│ ├── reduce.h
│ ├── regionview.c
│ ├── regionview.h
│ ├── rhs.c
│ ├── rhs.h
│ ├── rhsview.c
│ ├── rhsview.h
│ ├── row.c
│ ├── row.h
│ ├── rowview.c
│ ├── rowview.h
│ ├── secret.c
│ ├── secret.h
│ ├── slider.c
│ ├── slider.h
│ ├── sliderview.c
│ ├── sliderview.h
│ ├── spin.c
│ ├── spin.h
│ ├── statusview.c
│ ├── statusview.h
│ ├── string.c
│ ├── stringview.c
│ ├── stringview.h
│ ├── subcolumn.c
│ ├── subcolumn.h
│ ├── subcolumnview.c
│ ├── subcolumnview.h
│ ├── symbol.c
│ ├── symbol.h
│ ├── toggle.c
│ ├── toggle.h
│ ├── toggleview.c
│ ├── toggleview.h
│ ├── tool.c
│ ├── tool.h
│ ├── toolkit.c
│ ├── toolkit.h
│ ├── toolkitbrowser.c
│ ├── toolkitbrowser.h
│ ├── toolkitgroup.c
│ ├── toolkitgroup.h
│ ├── toolkitgroupview.c
│ ├── toolkitgroupview.h
│ ├── toolkitview.c
│ ├── toolkitview.h
│ ├── toolview.c
│ ├── toolview.h
│ ├── trace.c
│ ├── trace.h
│ ├── tree.c
│ ├── tree.h
│ ├── tslider.c
│ ├── tslider.h
│ ├── util.c
│ ├── util.h
│ ├── value.c
│ ├── value.h
│ ├── valueview.c
│ ├── valueview.h
│ ├── vector.c
│ ├── vector.h
│ ├── view.c
│ ├── view.h
│ ├── vipsobject.c
│ ├── vipsobject.h
│ ├── vobject.c
│ ├── vobject.h
│ ├── watch.c
│ ├── watch.h
│ ├── workspace.c
│ ├── workspace.h
│ ├── workspacedefs.c
│ ├── workspacedefs.h
│ ├── workspacegroup.c
│ ├── workspacegroup.h
│ ├── workspacegroupview.c
│ ├── workspacegroupview.h
│ ├── workspaceroot.c
│ ├── workspaceroot.h
│ ├── workspaceview.c
│ └── workspaceview.h
└── test/
├── Makefile.am
├── extras/
│ ├── test-5x5.v
│ ├── test_magick2.ws
│ ├── test_recomp_order.ws
│ └── test_transform.ws
├── test_all.sh.in
└── workspaces/
├── big_and_small_disks.ws
├── gold_sample.v
├── test_colour.ws
├── test_conv.ws
├── test_fail.ws
├── test_filter.ws
├── test_fourier.ws
├── test_histogram.ws
├── test_image.ws
├── test_math.ws
├── test_matrix.ws
├── test_snip.def
├── test_stats.ws
├── test_tasks.ws
└── test_widgets.ws
SYMBOL INDEX (3314 symbols across 263 files)
FILE: src/action.c
function action_boperror (line 83) | static void
function action_nomerror (line 121) | static void
function action_uoperror (line 169) | static void
function action_set_range (line 201) | static void
function action_proc_eor (line 227) | static void
function action_proc_bor (line 260) | static void
function action_proc_band (line 289) | static void
function action_proc_dot (line 337) | static void
function action_proc_lesseq (line 433) | static void
function action_proc_less (line 467) | static void
function gboolean (line 505) | static gboolean
function gboolean (line 554) | static gboolean
function gboolean (line 617) | static gboolean
function gboolean (line 631) | static gboolean
function action_proc_equal (line 715) | static void
function action_proc_notequal (line 755) | static void
function action_proc_join (line 803) | static void
function action_proc_index (line 833) | static void
function action_proc_exp (line 860) | static void
function action_proc_lshift (line 882) | static void
function action_proc_rshift (line 905) | static void
function action_proc_rem (line 928) | static void
function action_proc_div (line 958) | static void
function action_proc_mul (line 1033) | static void
function action_proc_sub (line 1085) | static void
function action_proc_add (line 1134) | static void
function action_proc_bop_strict (line 1190) | static void
function action_proc_uop (line 1323) | void
function action_proc_construct (line 1615) | void
function action_proc_class_binary (line 1669) | static void
function action_proc_class_binary2 (line 1705) | static void
function action_landlor (line 1739) | static void
function action_if (line 1811) | static void
function action_proc_bop (line 1883) | void
function action_proc_class_unary (line 1963) | static void
function action_dispatch (line 1999) | void
FILE: src/boxes.c
function GtkWidget (line 42) | static GtkWidget *
function box_build (line 53) | static void
function box_error (line 83) | static void
function box_vmarkup (line 107) | static void
function box_markup (line 128) | static void
function box_alert (line 140) | void
function box_vinfo (line 159) | void
function box_info (line 181) | void
function iDialog (line 193) | iDialog *
function box_savenosave (line 225) | void
function about_build (line 258) | static void
function box_about (line 386) | void
function box_help (line 410) | void
function StringsetChild (line 448) | StringsetChild *
function stringset_destroy (line 464) | static void
function stringset_build (line 490) | static void
function stringset_class_init (line 527) | static void
function stringset_init (line 542) | static void
function GtkType (line 552) | GtkType
function GtkWidget (line 575) | GtkWidget *
function StringsetChild (line 583) | StringsetChild *
function find_build (line 603) | static void
function find_class_init (line 628) | static void
function find_init (line 638) | static void
function GtkType (line 648) | GtkType
function GtkWidget (line 671) | GtkWidget *
function box_url (line 681) | void
function fontchooser_build (line 755) | static void
function fontchooser_class_init (line 779) | static void
function fontchooser_init (line 791) | static void
function GtkType (line 796) | GtkType
function Fontchooser (line 819) | Fontchooser *
function gboolean (line 827) | gboolean
function fontbutton_finalize (line 862) | static void
function fontbutton_ok_cb (line 877) | static void
function fontbutton_popdown_cb (line 892) | static void
function fontbutton_clicked (line 903) | static void
function fontbutton_real_changed (line 930) | static void
function fontbutton_class_init (line 935) | static void
function fontbutton_init (line 958) | static void
function GtkType (line 967) | GtkType
function Fontbutton (line 990) | Fontbutton *
function fontbutton_set_font_name (line 999) | void
function infobar_destroy (line 1041) | static void
function infobar_class_init (line 1057) | static void
function infobar_init (line 1067) | static void
function GType (line 1077) | GType
function infobar_cancel_close (line 1102) | static void
function infobar_hide (line 1110) | static void
function gboolean (line 1119) | static gboolean
function infobar_start_close (line 1133) | static void
function gboolean (line 1143) | static gboolean
function infobar_show (line 1151) | static void
function infobar_info_cb (line 1162) | static void
function infobar_close_cb (line 1170) | static void
function Infobar (line 1176) | Infobar *
function Infobar (line 1232) | Infobar *
function infobar_vset (line 1242) | void
function infobar_set (line 1273) | void
FILE: src/boxes.h
type StringsetChild (line 62) | typedef struct {
type Stringset (line 71) | typedef struct _Stringset {
type StringsetClass (line 78) | typedef struct _StringsetClass {
type Find (line 103) | typedef struct _Find {
type FindClass (line 116) | typedef struct _FindClass {
type Fontchooser (line 139) | typedef struct _Fontchooser {
type FontchooserClass (line 145) | typedef struct _FontchooserClass {
type Fontbutton (line 169) | typedef struct _Fontbutton {
type FontbuttonClass (line 177) | typedef struct _FontbuttonClass {
type _Infobar (line 199) | struct _Infobar {
type InfobarClass (line 212) | typedef struct _InfobarClass {
FILE: src/builtin.c
function gboolean (line 43) | static gboolean
function gboolean (line 51) | static gboolean
function gboolean (line 59) | static gboolean isany( Reduce *rc, PElement *base ) { return( TRUE ); }
function gboolean (line 63) | static gboolean pe_is_image( Reduce *rc, PElement *base )
function gboolean (line 65) | static gboolean pe_is_real( Reduce *rc, PElement *base )
function gboolean (line 67) | static gboolean pe_is_complex( Reduce *rc, PElement *base )
function gboolean (line 69) | static gboolean pe_is_bool( Reduce *rc, PElement *base )
function gboolean (line 71) | static gboolean pe_is_char( Reduce *rc, PElement *base )
function gboolean (line 73) | static gboolean pe_is_list( Reduce *rc, PElement *base )
function gboolean (line 75) | static gboolean pe_is_flist( Reduce *rc, PElement *base )
function gboolean (line 77) | static gboolean pe_is_class( Reduce *rc, PElement *base )
function apply_underscore_call (line 112) | static void
function apply_has_member_call (line 137) | static void
function apply_is_instanceof_call (line 161) | static void
function apply_complex_call (line 182) | static void
function apply_list_call (line 218) | static void
function apply_gammq_call (line 249) | static void
function apply_image_call (line 287) | static void
function apply_read_call (line 337) | static void
function apply_graph_export_image_call (line 362) | static void
type MathFn (line 416) | typedef struct {
function ip_sin (line 422) | static double ip_sin( double a ) { return( sin( IM_RAD( a ) ) ); }
function ip_cos (line 423) | static double ip_cos( double a ) { return( cos( IM_RAD( a ) ) ); }
function ip_tan (line 424) | static double ip_tan( double a ) { return( tan( IM_RAD( a ) ) ); }
function ip_asin (line 425) | static double ip_asin( double a ) { return( IM_DEG( asin( a ) ) ); }
function ip_acos (line 426) | static double ip_acos( double a ) { return( IM_DEG( acos( a ) ) ); }
function ip_atan (line 427) | static double ip_atan( double a ) { return( IM_DEG( atan( a ) ) ); }
function ip_exp10 (line 428) | static double ip_exp10( double a ) { return( pow( 10.0, a ) ); }
function ip_ceil (line 429) | static double ip_ceil( double a ) { return( ceil( a ) ); }
function ip_floor (line 430) | static double ip_floor( double a ) { return( floor( a ) ); }
function apply_math_call (line 451) | static void
type PredicateFn (line 498) | typedef struct {
function apply_pred_call (line 517) | static void
function apply_error_call (line 547) | static void
function apply_search_call (line 571) | static void
function apply_print_call (line 603) | static void
function dir_gobject (line 681) | static void
function apply_dir_call (line 704) | static void
function apply_expand_call (line 777) | static void
function apply_name2gtype_call (line 800) | static void
function apply_gtype2name_call (line 825) | static void
function apply_vo_new_call (line 849) | static void
function apply_vo_call_call (line 876) | static void
function builtin_gsl_error (line 1037) | static void
function builtin_init (line 1049) | void
function builtin_usage (line 1084) | void
function builtin_trace_args (line 1103) | static void
function builtin_run (line 1125) | void
FILE: src/builtin.h
type BuiltinTypeSpot (line 32) | typedef struct {
type _BuiltinInfo (line 43) | struct _BuiltinInfo {
FILE: src/cache.c
function cache_hash (line 58) | static unsigned int
function gboolean (line 199) | static gboolean
function cache_history_sanity_sub (line 373) | static void
function cache_history_sanity (line 379) | static void
function CallInfo (line 408) | static CallInfo *
function cache_history_touch (line 434) | static void
function cache_history_remove (line 453) | void
function cache_history_remove_lru (line 483) | static void
function cache_history_destroy_cb (line 501) | static void
function cache_history_invalidate_cb (line 512) | static void
function cache_history_add (line 525) | static void
function gboolean (line 582) | static gboolean
function cache_tochar_shell (line 664) | void
function cache_tochar_trace (line 777) | void
function cache_args_vips (line 847) | static void
function cache_error_fn_vips (line 869) | static void
function gboolean (line 890) | static gboolean
function cache_free_argv (line 914) | static void
function cache_update_hist (line 927) | static void
function CallInfo (line 980) | CallInfo *
FILE: src/call.c
function call_check_all_destroyed (line 71) | void
function gboolean (line 98) | gboolean
function gboolean (line 117) | gboolean
function call_error (line 133) | void
function call_args_heap (line 143) | static void
function call_usage (line 163) | void
function call_error_arg (line 247) | static void
function call_error_toomany (line 267) | void
function CallArgumentType (line 285) | CallArgumentType
function gboolean (line 302) | gboolean
function call_n_args (line 357) | int
function call_make_doublevec (line 375) | static int
function call_make_intvec (line 396) | static int
function call_make_imagevec (line 416) | static int
function gboolean (line 436) | static gboolean
function gboolean (line 459) | static gboolean
function gboolean (line 640) | static gboolean
function gboolean (line 796) | static gboolean
function call_drop_refs (line 814) | static void
function call_info_dispose (line 834) | static void
function call_vargv_free (line 862) | static void
function call_info_finalize (line 927) | static void
function call_info_info (line 950) | static void
function call_info_class_init (line 959) | static void
function call_info_init (line 973) | static void
function GType (line 1003) | GType
function CallInfo (line 1028) | static CallInfo *
function gboolean (line 1079) | static gboolean
function gboolean (line 1102) | static gboolean
function gboolean (line 1169) | static gboolean
function gboolean (line 1369) | static gboolean
function gboolean (line 1422) | static gboolean
function callva (line 1469) | void
function gboolean (line 1494) | static gboolean
function gboolean (line 1557) | static gboolean
function call_spine (line 1608) | void
function call_run (line 1617) | void
FILE: src/call.h
type CallArgumentType (line 38) | typedef enum _CallArgumentType {
type CallInfo (line 68) | typedef struct _CallInfo {
type CallInfoClass (line 124) | typedef struct _CallInfoClass {
FILE: src/class.c
function gboolean (line 40) | static gboolean
function Compile (line 59) | Compile *
function gboolean (line 70) | gboolean
function gboolean (line 121) | gboolean
function gboolean (line 200) | gboolean
function gboolean (line 268) | gboolean
type ClassBuildInfo (line 286) | typedef struct {
function gboolean (line 297) | static gboolean
function gboolean (line 419) | static gboolean
function gboolean (line 505) | static gboolean
function Compile (line 621) | static Compile *
function class_guess_args (line 644) | static int
function gboolean (line 692) | static gboolean
function gboolean (line 748) | gboolean
function gboolean (line 880) | gboolean
function gboolean (line 926) | gboolean
function gboolean (line 968) | gboolean
function class_typecheck_error (line 1007) | static void
type gboolean (line 1030) | typedef gboolean (*ClassGetFn)( PElement *, void * );
function gboolean (line 1032) | static gboolean
function gboolean (line 1049) | gboolean
function gboolean (line 1056) | gboolean
function gboolean (line 1063) | gboolean
function gboolean (line 1076) | gboolean
function gboolean (line 1096) | gboolean
function gboolean (line 1103) | gboolean
function gboolean (line 1111) | gboolean
function gboolean (line 1128) | gboolean
function gboolean (line 1139) | gboolean
function gboolean (line 1157) | gboolean
function gboolean (line 1175) | gboolean
FILE: src/classmodel.c
function image_value_init (line 38) | void
function image_value_destroy (line 46) | void
function image_value_file_changed_cb (line 53) | static void
function image_value_set (line 69) | void
function image_value_caption (line 90) | void
function classmodel_graphic_save_cb (line 118) | static void
function classmodel_graphic_save (line 144) | void
function classmodel_graphic_replace_cb (line 182) | static void
function classmodel_graphic_replace (line 216) | void
function classmodel_iimage_link (line 257) | static void
type ClassmodelSearch (line 303) | typedef struct {
function classmodel_iimage_update (line 354) | void
function gboolean (line 384) | static gboolean
function gboolean (line 413) | static gboolean
function gboolean (line 501) | static gboolean
function classmodel_dispose (line 561) | static void
function classmodel_info (line 585) | static void
function classmodel_parent_add (line 590) | static void
type ClassmodelEdit (line 604) | typedef struct _ClassmodelEdit {
function gboolean (line 612) | static gboolean
function classmodel_done_cb (line 656) | static void
function GtkWidget (line 680) | static GtkWidget *
function classmodel_buildedit (line 731) | static void
function classmodel_edit (line 748) | static void
function gboolean (line 784) | static gboolean
function xmlNode (line 869) | static xmlNode *
function gboolean (line 895) | static gboolean
function gboolean (line 1018) | static gboolean
function gboolean (line 1082) | static gboolean
function gboolean (line 1206) | static gboolean
function gboolean (line 1229) | gboolean
function gboolean (line 1321) | static gboolean
function classmodel_class_init (line 1327) | static void
function classmodel_init (line 1370) | static void
function GType (line 1385) | GType
function classmodel_set_edited (line 1410) | void
function classmodel_update (line 1437) | void
function Classmodel (line 1462) | Classmodel *
FILE: src/classmodel.h
type ClassmodelMemberType (line 32) | typedef enum {
type MatrixValue (line 47) | typedef struct _MatrixValue {
type ImageValue (line 55) | typedef struct {
type ClassmodelMember (line 67) | typedef struct {
type _Classmodel (line 91) | struct _Classmodel {
type ClassmodelClass (line 109) | typedef struct _ClassmodelClass {
FILE: src/clock.c
function clock_dispose (line 38) | static void
function clock_done_cb (line 53) | static void
function clock_edit (line 83) | static void
function gboolean (line 113) | static gboolean
function clock_class_init (line 198) | static void
function clock_init (line 231) | static void
function GType (line 253) | GType
FILE: src/clock.h
type Clock (line 42) | typedef struct _Clock {
type ClockClass (line 53) | typedef struct _ClockClass {
FILE: src/colour.c
function colour_finalize (line 66) | static void
type ColourEdit (line 79) | typedef struct _ColourEdit {
function colour_get_vips_type (line 88) | static int
function colour_refresh (line 116) | static void
function colour_set_colour (line 125) | void
function Imageinfo (line 152) | Imageinfo *
function colour_get_rgb (line 178) | static void
function colour_set_rgb (line 190) | void
function colour_done_cb (line 220) | static void
function colour_buildedit (line 237) | static void
function colour_edit (line 255) | static void
function View (line 283) | static View *
function colour_class_init (line 313) | static void
function colour_init (line 343) | static void
function GType (line 355) | GType
FILE: src/colour.h
type _Colour (line 42) | struct _Colour {
type ColourClass (line 55) | typedef struct _ColourClass {
FILE: src/colourdisplay.c
function colourdisplay_set_drag_type (line 47) | static void
function colourdisplay_realize (line 87) | static void
function colourdisplay_drag_begin (line 97) | static void
function colourdisplay_drag_end (line 121) | static void
function colourdisplay_drag_data_get (line 128) | static void
function colourdisplay_drag_data_received (line 177) | static void
function colourdisplay_generate_tooltip (line 238) | static void
function colourdisplay_conversion_changed (line 251) | static void
function colourdisplay_class_init (line 264) | static void
function colourdisplay_init (line 282) | static void
function GtkType (line 298) | GtkType
function Colourdisplay (line 321) | Colourdisplay *
FILE: src/colourdisplay.h
type Colourdisplay (line 41) | typedef struct _Colourdisplay {
type ColourdisplayClass (line 50) | typedef struct _ColourdisplayClass {
FILE: src/colourview.c
function colourview_link (line 38) | static void
function colourview_refresh (line 49) | static void
function colourview_class_init (line 65) | static void
function colourview_area_changed_cb (line 83) | static void
function colourview_doubleclick_one_cb (line 93) | static void
function colourview_doubleclick_two_cb (line 103) | static void
function colourview_init (line 110) | static void
function GtkType (line 153) | GtkType
function View (line 176) | View *
FILE: src/colourview.h
type Colourview (line 38) | typedef struct _Colourview {
type ColourviewClass (line 46) | typedef struct _ColourviewClass {
FILE: src/column.c
function column_finalize (line 73) | static void
function Subcolumn (line 102) | static Subcolumn *
function column_child_add (line 110) | static void
function column_child_remove (line 122) | static void
function Workspace (line 132) | static Workspace *
function column_parent_add (line 138) | static void
function View (line 155) | static View *
function xmlNode (line 164) | static xmlNode *
function gboolean (line 198) | static gboolean
function column_set_last_new (line 214) | static void
function gboolean (line 221) | static gboolean
function column_class_init (line 259) | static void
function column_init (line 295) | static void
function GType (line 314) | GType
function Column (line 339) | Column *
function Column (line 365) | Column *
function column_clear_last_new (line 371) | void
function Row (line 379) | Row *
function gboolean (line 397) | gboolean
function gboolean (line 428) | gboolean
function column_set_offset (line 439) | void
function column_set_open (line 463) | void
function gboolean (line 475) | static gboolean
function column_scrollto (line 488) | void
FILE: src/column.h
type _Column (line 42) | struct _Column {
type ColumnClass (line 67) | typedef struct _ColumnClass {
FILE: src/columnview.c
function columnview_caption_cb (line 44) | static void
function columnview_select_cb (line 58) | static void
function columnview_clone_cb (line 70) | static void
function columnview_merge_sub (line 95) | static void
function columnview_merge_cb (line 123) | static void
function columnview_save_as_sub (line 144) | static void
function columnview_save_as_cb (line 174) | static void
function columnview_filename (line 196) | static void
function columnview_to_menu_done_cb (line 222) | static void
function columnview_to_menu_cb (line 270) | static void
function columnview_get_position (line 311) | void
function columnview_left_press (line 341) | static void
function columnview_add_shadow (line 405) | static void
function columnview_left_motion (line 434) | static void
function columnview_left_release (line 522) | static void
function gboolean (line 567) | static gboolean
function columnview_destroy (line 625) | static void
function columnview_size_allocate (line 654) | static void
function columnview_updown_cb (line 676) | static void
function columnview_destroy_cb (line 686) | static void
function columnview_destroy2_cb (line 697) | static void
function columnview_caption_enter_cb (line 708) | static void
function gboolean (line 730) | static gboolean
function columnview_add_caption (line 747) | static void
function columnview_text_enter_cb (line 768) | static void
function columnview_add_text (line 790) | static void
function columnview_refresh (line 813) | static void
function columnview_link (line 959) | static void
function columnview_child_add (line 970) | static void
function columnview_scrollto (line 986) | static void
function columnview_class_init (line 1005) | static void
function gboolean (line 1051) | static gboolean
function columnview_init (line 1075) | static void
function GtkType (line 1187) | GtkType
function View (line 1210) | View *
FILE: src/columnview.h
type ColumnviewState (line 41) | typedef enum {
type _Columnview (line 48) | struct _Columnview {
type ColumnviewClass (line 94) | typedef struct _ColumnviewClass {
FILE: src/compile.c
function Compile (line 63) | Compile *
function compile_name (line 93) | void
function Compile (line 109) | static Compile *
function Compile (line 120) | Compile *
function Symbol (line 141) | Symbol *
function compile_link_make (line 150) | void
function compile_expr_link_make (line 227) | void
function compile_finalize (line 241) | static void
function compile_class_init (line 309) | static void
function compile_init (line 325) | static void
function GType (line 358) | GType
function Compile (line 385) | Compile *
function compile_heap_max_fn (line 414) | static int
function Compile (line 422) | Compile *
function Compile (line 438) | Compile *
function gboolean (line 459) | static gboolean
function gboolean (line 496) | static gboolean
function gboolean (line 510) | static gboolean
function gboolean (line 599) | static gboolean
function compile_abstract_body (line 856) | static int
function compile_node_count (line 1013) | static int
type gpointer (line 1031) | typedef gpointer CompileHash;
type CompileShare (line 1045) | typedef struct _CompileShare {
function gboolean (line 1052) | static gboolean
function compile_share_destroy (line 1061) | static void
function compile_share_init (line 1077) | static void
function compile_share_add (line 1110) | static void
function GSList (line 1137) | static GSList *
function CompileHash (line 1153) | static CompileHash
function CompileHash (line 1200) | static CompileHash
function gboolean (line 1247) | static gboolean
function compile_transform_reference (line 1314) | static int
function compile_share_trim (line 1358) | static void
function compile_share_scan (line 1394) | static void
function gboolean (line 1460) | static gboolean
function ParseNode (line 1676) | static ParseNode *
function ParseNode (line 1723) | static ParseNode *
function gboolean (line 1754) | gboolean
function compile_error_set (line 1796) | void
function compile_patch_pointers (line 1816) | static void
function compile_resolve (line 1845) | static void
function compile_resolve_names (line 1927) | void
function Symbol (line 1937) | Symbol *
function compile_resolve_dynamic (line 1985) | void
function Symbol (line 1993) | Symbol *
function GSList (line 2041) | static GSList *
function ParseNode (line 2131) | ParseNode *
function Symbol (line 2222) | static Symbol *
function compile_lcomp (line 2243) | void
function ParseNode (line 2444) | static ParseNode *
function ParseNode (line 2514) | static ParseNode *
function ParseNode (line 2633) | static ParseNode *
type PatternLhs (line 2654) | typedef struct _PatternLhs {
function compile_pattern_lhs_leaf (line 2667) | static void
function GSList (line 2737) | GSList *
function ParseNode (line 2759) | static ParseNode *
function gboolean (line 2772) | gboolean
FILE: src/compile.h
type _Compile (line 48) | struct _Compile {
type CompileClass (line 79) | typedef struct _CompileClass {
FILE: src/conversion.c
function conversion_area_changed (line 66) | static void
function conversion_dispose (line 73) | static void
function conversion_finalize (line 94) | static void
function IMAGE (line 126) | static IMAGE *
type ConversionUpdate (line 215) | typedef struct _ConversionUpdate {
function gboolean (line 222) | static gboolean
function conversion_render_notify_cb (line 265) | static void
function conversion_get_default_tiles (line 283) | static int
function IMAGE (line 295) | static IMAGE *
type LintraInfo (line 375) | typedef struct {
function lintrauc_gen (line 423) | static int
function im_lintrauc (line 464) | static int
function IMAGE (line 495) | static IMAGE *
function conversion_rebuild_repaint (line 808) | static void
function conversion_rebuild_display (line 861) | static void
function conversion_rebuild_visual (line 924) | static void
function conversion_changed (line 981) | static void
function conversion_class_init (line 1015) | static void
function conversion_init (line 1048) | static void
function GType (line 1092) | GType
function conversion_link (line 1117) | static void
function Conversion (line 1124) | Conversion *
function conversion_ii_changed_cb (line 1139) | static void
function conversion_ii_area_changed_cb (line 1148) | static void
function conversion_set_image (line 1160) | void
function conversion_dmag (line 1214) | double
function conversion_double (line 1228) | int
function conversion_halve (line 1243) | int
function conversion_disp_to_im (line 1258) | void
function conversion_im_to_disp (line 1267) | void
function conversion_disp_to_im_rect (line 1278) | void
function conversion_im_to_disp_rect (line 1296) | void
function conversion_set_mag (line 1314) | void
function conversion_set_synchronous (line 1380) | void
function conversion_set_params (line 1395) | void
FILE: src/conversion.h
type _Conversion (line 42) | struct _Conversion {
type ConversionClass (line 82) | typedef struct _ConversionClass {
FILE: src/conversionview.c
function gboolean (line 40) | static gboolean
function conversionview_scale_cb (line 59) | static void
function conversionview_falsecolour_cb (line 85) | static void
function conversionview_interpret_cb (line 95) | static void
function conversionview_reset_cb (line 105) | static void
function conversionview_set_default_cb (line 126) | static void
function conversionview_hide_cb (line 139) | static void
function conversionview_class_init (line 147) | static void
function conversionview_scale_change_cb (line 162) | static void
function conversionview_offset_change_cb (line 175) | static void
function conversionview_init (line 186) | static void
function GtkType (line 261) | GtkType
function conversionview_changed_cb (line 287) | static void
function conversionview_link (line 315) | static void
function Conversionview (line 325) | Conversionview *
FILE: src/conversionview.h
type _Conversionview (line 38) | struct _Conversionview {
type ConversionviewClass (line 50) | typedef struct _ConversionviewClass {
FILE: src/defbrowser.c
function defbrowser_destroy (line 48) | static void
function defbrowser_rebuild_item3 (line 58) | static void
function defbrowser_refresh (line 100) | static void
function defbrowser_class_init (line 117) | static void
function defbrowser_entry_changed_cb (line 130) | static void
function gboolean (line 138) | static gboolean
function gboolean (line 152) | static gboolean
function Tool (line 170) | static Tool *
function gboolean (line 189) | static gboolean
function defbrowser_selection_changed_cb (line 201) | static void
function defbrowser_init (line 210) | static void
function GtkType (line 279) | GtkType
function defbrowser_set_program (line 302) | void
function Defbrowser (line 314) | Defbrowser *
function defbrowser_get_width (line 324) | int
function defbrowser_set_filter (line 335) | void
FILE: src/defbrowser.h
type Defbrowser (line 41) | typedef struct _Defbrowser {
type DefbrowserClass (line 53) | typedef struct _DefbrowserClass {
FILE: src/doubleclick.c
type Doubleclick (line 56) | typedef struct doubleclick_info {
function Doubleclick (line 70) | static Doubleclick *
function doubleclick_free (line 87) | void
function gboolean (line 95) | static gboolean
function gboolean (line 122) | static gboolean
function doubleclick_destroy_cb (line 180) | static void
function doubleclick_realize_cb (line 197) | static void
function doubleclick_add (line 205) | void
FILE: src/dummy.c
function poop (line 1) | int poop () {}
FILE: src/dump.c
function dump_expr (line 239) | void
function dump_compile (line 286) | void
function dump_symbol_table (line 419) | void
function Symbol (line 467) | Symbol *
function psym (line 475) | void
function pgraph (line 488) | void
function psymv (line 500) | void
function print_element (line 517) | static void
function graph_heap (line 588) | void
function dump_parseconst (line 676) | static void
function dump_links (line 839) | void
function dump_symbol_heap (line 851) | void
FILE: src/editview.c
function editview_link (line 38) | static void
function editview_refresh (line 50) | static void
function editview_class_init (line 66) | static void
function gboolean (line 86) | static gboolean
function editview_activate_cb (line 104) | static void
function editview_init (line 120) | static void
function GtkType (line 148) | GtkType
function editview_set_entry (line 171) | void
FILE: src/editview.h
type Editview (line 38) | typedef struct _Editview {
type EditviewClass (line 47) | typedef struct _EditviewClass {
FILE: src/error.c
function ierror_show_all (line 51) | static void
function ierror_show_all_action_cb (line 65) | static void
function unresolved_show_all (line 91) | static void
function unresolved_show_all_action_cb (line 105) | static void
function ierror_class_init (line 152) | static void
function ierror_init (line 166) | static void
function GtkType (line 171) | GtkType
function ierror_link (line 194) | static void
function iError (line 209) | iError *
FILE: src/error.h
type _iError (line 38) | struct _iError {
type iErrorClass (line 44) | typedef struct _iErrorClass {
FILE: src/expr.c
function Expr (line 87) | static Expr *
function Expr (line 98) | Expr *
function expr_name (line 134) | void
function Expr (line 143) | Expr *
function Expr (line 156) | static Expr *
function Expr (line 178) | Expr *
function Expr (line 190) | Expr *
function Row (line 215) | static Row *
function expr_new_value (line 226) | void
function expr_value_destroy (line 245) | void
function expr_dispose (line 285) | static void
function expr_info (line 341) | static void
function expr_real_new_value (line 353) | static void
function expr_class_init (line 369) | static void
function expr_init (line 399) | static void
function GType (line 416) | GType
function Expr (line 441) | Expr *
function Expr (line 464) | Expr *
function expr_error_get (line 524) | void
function expr_error_clear (line 540) | void
function expr_tip_sub (line 610) | void
function expr_tip (line 666) | void
function expr_resolve (line 676) | void
FILE: src/expr.h
type _Expr (line 45) | struct _Expr {
type ExprClass (line 71) | typedef struct _ExprClass {
FILE: src/expression.c
function iText (line 70) | iText *
function View (line 84) | static View *
function xmlNode (line 90) | static xmlNode *
function gboolean (line 104) | static gboolean
function gboolean (line 121) | static gboolean
function expression_class_init (line 140) | static void
function expression_init (line 164) | static void
function GType (line 170) | GType
FILE: src/expression.h
type _Expression (line 38) | struct _Expression {
type ExpressionClass (line 46) | typedef struct _ExpressionClass {
FILE: src/expressionview.c
function expressionview_activate_cb (line 72) | void
function expressionview_refresh (line 93) | static void
function expressionview_set_edit (line 120) | static void
function expressionview_link (line 129) | static void
function expressionview_reset (line 156) | static void
function expressionview_class_init (line 168) | static void
function expressionview_init (line 188) | static void
function GtkType (line 203) | GtkType
function View (line 227) | View *
FILE: src/expressionview.h
type Expressionview (line 40) | typedef struct _Expressionview {
type ExpressionviewClass (line 46) | typedef struct _ExpressionviewClass {
FILE: src/filemodel.c
function filemodel_register (line 52) | void
function filemodel_unregister (line 69) | void
function filemodel_set_modified (line 113) | void
function filemodel_set_window_hint (line 122) | void
function iWindow (line 130) | iWindow *
function gboolean (line 139) | gboolean
function filemodel_info (line 178) | static void
function filemodel_set_filename (line 197) | void
function filemodel_finalize (line 217) | static void
function filemodel_dispose (line 239) | static void
function xmlNode (line 261) | static xmlNode *
function gboolean (line 276) | static gboolean
function gboolean (line 293) | static gboolean
function filemodel_real_set_modified (line 300) | static void
function filemodel_xml_save_format_file (line 318) | static int
function gboolean (line 326) | static gboolean
function gboolean (line 379) | static gboolean
function gboolean (line 397) | static gboolean
function filemodel_class_init (line 426) | static void
function filemodel_init (line 454) | static void
function GtkType (line 476) | GtkType
function filemodel_set_offset (line 501) | void
function gboolean (line 515) | static gboolean
function gboolean (line 553) | static gboolean
function gboolean (line 570) | static gboolean
function gboolean (line 587) | static gboolean
function gboolean (line 610) | gboolean
function gboolean (line 650) | gboolean
function filemodel_inter_saveas_sub_cb (line 690) | static void
function filemodel_inter_saveas_cb (line 713) | static void
function filemodel_inter_saveas (line 741) | void
function filemodel_inter_save (line 748) | void
function filemodel_inter_empty_cb (line 765) | static void
function filemodel_inter_savenempty_ok_cb (line 777) | static void
function filemodel_inter_savenempty_cb (line 787) | void
function filemodel_inter_savenempty (line 820) | void
function filemodel_inter_close_cb (line 830) | static void
function filemodel_inter_savenclose_cb (line 841) | void
function filemodel_inter_savenclose (line 851) | void
function filemodel_inter_load_cb (line 861) | static void
function filemodel_inter_loadas_cb (line 885) | static void
function filemodel_inter_loadas (line 910) | void
function filemodel_inter_replace_cb (line 920) | static void
function filemodel_inter_replace (line 930) | void
function Filemodel (line 943) | static Filemodel *
function filemodel_inter_close_registered_cb (line 958) | void
function filemodel_set_auto_load (line 981) | void
FILE: src/filemodel.h
type _Filemodel (line 44) | struct _Filemodel {
type FilemodelClass (line 65) | typedef struct _FilemodelClass {
FILE: src/filesel.c
type TiffCompression (line 39) | typedef enum {
type TiffLayout (line 48) | typedef enum {
type TiffMultires (line 53) | typedef enum {
type TiffFormat (line 58) | typedef enum {
function FileselFileType (line 159) | static FileselFileType **
function FileselFileType (line 176) | static FileselFileType **
function filesel_startup (line 211) | void
function gboolean (line 223) | gboolean
function filesel_tiff_mode (line 294) | static void
function filesel_jpeg_mode (line 329) | static void
function filesel_png_mode (line 376) | static void
function filesel_ppm_mode (line 384) | static void
function filesel_csv_mode (line 400) | static void
type FileselMode (line 414) | typedef struct {
function FileselMode (line 428) | static FileselMode *
function filesel_add_mode (line 451) | void
function filesel_destroy (line 476) | static void
function filesel_space_update (line 494) | static void
function filesel_suffix_to_glob (line 533) | static void
function filesel_make_patt (line 555) | void
function filesel_dir_enter (line 583) | static void
function filesel_current_folder_changed_cb (line 603) | static void
function filesel_info_update (line 611) | static void
function filesel_get_filetype (line 623) | int
function filesel_find_file_type (line 653) | static int
function filesel_set_filter (line 666) | static void
function filesel_set_filetype_from_filename (line 679) | static void
function gboolean (line 708) | gboolean
function filesel_selection_changed_cb (line 809) | static void
function filesel_file_activated_cb (line 831) | static void
function filesel_auto_incr_cb (line 839) | static void
function filesel_update_preview_cb (line 848) | static void
function GtkFileFilter (line 860) | static GtkFileFilter *
function filesel_add_filter (line 886) | static void
function filesel_build (line 902) | static void
function filesel_class_init (line 1019) | static void
function filesel_increment_filename (line 1034) | static void
function filesel_refresh_all (line 1067) | void
function filesel_init (line 1073) | static void
function GtkType (line 1110) | GtkType
function GtkWidget (line 1133) | GtkWidget *
function filesel_set_done (line 1144) | void
function filesel_trigger2 (line 1153) | static void
function filesel_trigger (line 1188) | static void
function filesel_prefs_ok_cb (line 1207) | static void
function filesel_prefs (line 1221) | static void
function filesel_yesno_cb (line 1250) | static void
function filesel_done_cb (line 1275) | static void
function filesel_set_flags (line 1311) | void
function filesel_set_filetype (line 1321) | void
function filesel_set_filetype_pref (line 1335) | void
function filesel_set_multi (line 1342) | void
FILE: src/filesel.h
type FileselFileType (line 35) | typedef struct _FileselFileType {
type Filesel (line 80) | typedef struct _Filesel {
type FileselClass (line 113) | typedef struct _FileselClass {
FILE: src/floatwindow.c
function floatwindow_popdown (line 38) | static void
function floatwindow_build (line 65) | static void
function floatwindow_class_init (line 112) | static void
function floatwindow_init (line 137) | static void
function GType (line 143) | GType
function floatwindow_link (line 168) | void
FILE: src/floatwindow.h
type Floatwindow (line 39) | typedef struct _Floatwindow {
type FloatwindowClass (line 47) | typedef struct _FloatwindowClass {
FILE: src/fontname.c
function fontname_finalize (line 38) | static void
function View (line 48) | static View *
function fontname_class_init (line 65) | static void
function fontname_init (line 86) | static void
function GType (line 97) | GType
FILE: src/fontname.h
type Fontname (line 38) | typedef struct _Fontname {
type FontnameClass (line 44) | typedef struct _FontnameClass {
FILE: src/fontnameview.c
function fontnameview_link (line 38) | static void
function fontnameview_refresh (line 50) | static void
function fontnameview_class_init (line 72) | static void
function fontnameview_changed_cb (line 90) | static void
function fontnameview_init (line 103) | static void
function GtkType (line 130) | GtkType
function View (line 153) | View *
FILE: src/fontnameview.h
type Fontnameview (line 39) | typedef struct _Fontnameview {
type FontnameviewClass (line 46) | typedef struct _FontnameviewClass {
FILE: src/formula.c
function formula_refresh_unqueue (line 62) | static void
function gboolean (line 77) | static gboolean
function formula_activate (line 105) | static void
function formula_activate_cb (line 111) | static void
function formula_changed (line 119) | static void
function formula_add_edit (line 127) | static void
function formula_refresh (line 162) | static void
function gboolean (line 218) | static gboolean
function formula_refresh_queue (line 233) | static void
function formula_destroy (line 247) | static void
function formula_set_edit (line 273) | void
function formula_set_needs_focus (line 292) | void
function formula_set_sensitive (line 307) | void
function gboolean (line 326) | gboolean
function gboolean (line 359) | static gboolean
function gboolean (line 378) | static gboolean
function gboolean (line 399) | static gboolean
function formula_real_changed (line 420) | static void
function formula_class_init (line 430) | static void
function formula_init (line 487) | static void
function GtkType (line 540) | GtkType
function Formula (line 564) | Formula *
function formula_set_caption (line 572) | void
function formula_set_value_expr (line 586) | void
FILE: src/formula.h
type Formula (line 40) | typedef struct _Formula {
type FormulaClass (line 63) | typedef struct _FormulaClass {
FILE: src/graphicview.c
function graphicview_link (line 38) | static void
function graphicview_class_init (line 54) | static void
function graphicview_init (line 64) | static void
function GtkType (line 70) | GtkType
FILE: src/graphicview.h
type Graphicview (line 40) | typedef struct _Graphicview {
type GraphicviewClass (line 48) | typedef struct _GraphicviewClass {
FILE: src/graphwindow.c
function graph_write_dot (line 116) | static void
function graph_write (line 130) | void
function graphwindow_destroy (line 140) | static void
function graphwindow_class_init (line 170) | static void
function graphwindow_init (line 186) | static void
function GType (line 199) | GType
function graphwindow_refresh_title (line 224) | static void
function gboolean (line 242) | static gboolean
function gboolean (line 273) | static gboolean
function gboolean (line 306) | static gboolean
function gboolean (line 318) | static gboolean
function graphwindow_layout_queue (line 348) | static void
function graphwindow_changed_cb (line 358) | static void
function graphwindow_build (line 385) | static void
function graphwindow_link (line 437) | static void
function Graphwindow (line 453) | Graphwindow *
FILE: src/graphwindow.h
type _Graphwindow (line 39) | struct _Graphwindow {
type GraphwindowClass (line 66) | typedef struct _GraphwindowClass {
FILE: src/group.c
function gboolean (line 44) | gboolean
function gboolean (line 118) | static gboolean
function gboolean (line 138) | static gboolean
function group_class_init (line 158) | static void
function group_init (line 173) | static void
function GType (line 179) | GType
FILE: src/group.h
type Group (line 38) | typedef struct _Group {
type GroupClass (line 43) | typedef struct _GroupClass {
FILE: src/gtkutil.c
function adjustments_set_value (line 42) | void
function widget_visible (line 91) | void
function GtkWidget (line 102) | GtkWidget *
function get_geo (line 117) | void
function set_fixed (line 137) | void
function GtkWidget (line 148) | GtkWidget *
function GtkWidget (line 161) | GtkWidget *
function GtkWidget (line 174) | GtkWidget *
function GtkWidget (line 192) | GtkWidget *
function GtkWidget (line 207) | GtkWidget *
function GtkWidget (line 222) | GtkWidget *
function GtkWidget (line 249) | GtkWidget *
function popup_activate_cb (line 266) | static void
function GtkWidget (line 281) | GtkWidget *
function GtkWidget (line 294) | GtkWidget *
function GtkWidget (line 307) | GtkWidget *
function popup_show (line 319) | void
function gboolean (line 332) | static gboolean
function popup_link (line 352) | void
function guint (line 361) | guint
function popup_detach (line 378) | void
function set_tooltip_events (line 384) | static void
function set_tooltip (line 393) | void
type TooltipGenerate (line 425) | typedef struct _TooltipGenerate {
function tooltip_generate_free (line 436) | static void
function gboolean (line 447) | static gboolean
function tooltip_generate_attach (line 462) | static void
function set_tooltip_generate (line 478) | void
function junk_tooltips (line 504) | void
function set_gentryv (line 513) | void
function set_gentry (line 544) | void
function set_glabel (line 554) | void
function set_glabel1 (line 570) | void
function set_gcaption (line 586) | void
function gboolean (line 603) | gboolean
function gboolean (line 626) | gboolean
function gboolean (line 638) | gboolean
function gboolean (line 658) | gboolean
function gboolean (line 691) | gboolean
function gboolean (line 714) | gboolean
function gboolean (line 730) | gboolean
function GtkWidget (line 746) | GtkWidget *
function GtkWidget (line 772) | GtkWidget *
function GtkWidget (line 787) | GtkWidget *
function GtkWidget (line 815) | GtkWidget *
function GtkWidget (line 838) | GtkWidget *
type FiledropInfo (line 873) | typedef struct {
function gboolean (line 879) | static gboolean
function filedrop_drag_data_received (line 892) | static void
function filedrop_destroy (line 946) | static void
function filedrop_register (line 952) | void
function set_symbol_drag_type (line 982) | void
type Listen (line 1014) | typedef struct _Listen {
function listen_gobject_destroy_cb (line 1026) | static void
function listen_source_destroy_cb (line 1037) | static void
function listen_add (line 1061) | void
function widget_update_pointer (line 1082) | void
function get_dpi (line 1107) | int
function GtkWidget (line 1122) | GtkWidget *
function vfatal (line 1142) | void
function text_view_set_text (line 1171) | void
function text_view_select_text (line 1183) | void
type DestroyIfDestroyed (line 1200) | typedef struct _DestroyIfDestroyed {
function destroy_if_destroyed_parent_cb (line 1211) | static void
function destroy_if_destroyed_child_cb (line 1236) | static void
function destroy_if_destroyed (line 1252) | void
function process_events (line 1274) | void
FILE: src/gtkutil.h
type gboolean (line 125) | typedef gboolean (*FiledropFunc)( void *client, const char *file );
FILE: src/heap.c
function heap_check_free (line 129) | static void
function heap_check_managed (line 171) | static void
function heap_sanity (line 182) | int
function heap_check_all_destroyed (line 199) | void
function heapblock_free (line 207) | static void
function heap_set_flush (line 221) | static void
function heap_dispose_print (line 227) | static void
function heap_dispose (line 235) | static void
function heap_finalize (line 258) | static void
function heap_info (line 277) | static void
function heapblock_empty (line 309) | static void
function gboolean (line 328) | static gboolean
function heap_class_init (line 370) | static void
function heap_init (line 384) | static void
function GType (line 412) | GType
function heap_link (line 437) | static void
function Heap (line 458) | Heap *
function heap_set (line 471) | void
function heap_clear (line 484) | void
function heap_serial_new (line 499) | int
function heap_mark_tree (line 514) | static void
function mark_element (line 602) | static void
function gboolean (line 632) | gboolean
function gint (line 708) | static gint
function heap_gc_request (line 723) | void
function heap_register_element (line 733) | void
function heap_unregister_element (line 741) | void
function heap_register_reduce (line 754) | void
function heap_unregister_reduce (line 762) | void
function HeapNode (line 770) | HeapNode *
function gboolean (line 840) | gboolean
function gboolean (line 850) | gboolean
function gboolean (line 867) | gboolean
function gboolean (line 877) | gboolean
function gboolean (line 896) | gboolean
function gboolean (line 924) | gboolean
function heap_list_init (line 939) | void
function gboolean (line 947) | gboolean
function gboolean (line 971) | gboolean
function gboolean (line 984) | gboolean
function heap_appl_init (line 999) | void
function gboolean (line 1009) | gboolean
function gboolean (line 1032) | gboolean
function gboolean (line 1062) | gboolean
function gboolean (line 1085) | gboolean
function gboolean (line 1104) | gboolean
function gboolean (line 1133) | gboolean
function gboolean (line 1160) | gboolean
function gboolean (line 1187) | gboolean
function gboolean (line 1217) | gboolean
function gboolean (line 1273) | gboolean
type HeapMapDict (line 1298) | typedef struct _HeapMapDict {
function gboolean (line 1365) | gboolean
function gboolean (line 1379) | gboolean
function gboolean (line 1393) | gboolean
function gboolean (line 1407) | gboolean
function gboolean (line 1421) | gboolean
function gboolean (line 1439) | gboolean
function heap_get_realvec (line 1453) | int
function heap_get_imagevec (line 1468) | int
function gboolean (line 1484) | gboolean
function gboolean (line 1499) | gboolean
function gboolean (line 1511) | gboolean
function gboolean (line 1523) | gboolean
function gboolean (line 1538) | gboolean
function gboolean (line 1550) | gboolean
function gboolean (line 1562) | gboolean
function gboolean (line 1574) | gboolean
function gboolean (line 1586) | gboolean
function gboolean (line 1598) | gboolean
function gboolean (line 1610) | gboolean
function heap_list_length (line 1622) | int
function heap_list_length_max (line 1635) | int
function gboolean (line 1648) | gboolean
function gboolean (line 1660) | gboolean
function gboolean (line 1677) | static gboolean
function gboolean (line 1776) | gboolean
function gboolean (line 1849) | gboolean
function gboolean (line 1956) | gboolean
function lisp_symval (line 2067) | static void
function lisp_list (line 2123) | static void
function gboolean (line 2155) | static gboolean
function lisp_node (line 2201) | static void
function lisp_pelement (line 2345) | static void
function graph_node (line 2447) | void
function graph_pelement (line 2469) | void
function graph_element (line 2497) | void
function graph_pointer (line 2506) | void
function shell_node (line 2522) | static void
function shell_pelement (line 2593) | static void
function graph_value (line 2641) | void
FILE: src/heap.h
type NodeType (line 34) | typedef unsigned char NodeType;
type EType (line 48) | typedef unsigned char EType;
type NodeFlags (line 66) | typedef unsigned char NodeFlags;
type CombinatorType (line 83) | typedef enum combinator_type {
type Element (line 95) | typedef struct _Element {
type HeapNode (line 102) | typedef struct _HeapNode {
type PElement (line 150) | typedef struct pelement {
type _HeapBlock (line 276) | struct _HeapBlock {
type _Heap (line 299) | struct _Heap {
type HeapClass (line 328) | typedef struct _HeapClass {
FILE: src/heapmodel.c
function Rhs (line 104) | static Rhs *
function Row (line 119) | static Row *
function heapmodel_parent_add (line 132) | static void
function heapmodel_class_init (line 180) | static void
function heapmodel_init (line 198) | static void
function GType (line 207) | GType
function heapmodel_set_modified (line 232) | void
function gboolean (line 255) | gboolean
function gboolean (line 280) | gboolean
FILE: src/heapmodel.h
type _Heapmodel (line 43) | struct _Heapmodel {
type HeapmodelClass (line 57) | typedef struct _HeapmodelClass {
FILE: src/iarrow.c
function iarrow_finalize (line 38) | static void
function View (line 167) | static View *
function iarrow_class_init (line 205) | static void
function iarrow_init (line 250) | static void
function GType (line 259) | GType
FILE: src/iarrow.h
type _iArrow (line 42) | struct _iArrow {
type iArrowClass (line 54) | typedef struct _iArrowClass {
FILE: src/icontainer.c
function icontainer_get_n_children (line 54) | int
function iContainer (line 60) | iContainer *
function GSList (line 66) | GSList *
function icontainer_sanity (line 192) | void
function gint (line 203) | static gint
function icontainer_pos_sort (line 209) | void
function icontainer_pos_last (line 226) | int
function icontainer_pos_renumber (line 276) | void
function gint (line 327) | gint
function icontainer_custom_sort (line 333) | void
function icontainer_child_add (line 343) | void
function icontainer_child_add_before (line 365) | void
function icontainer_child_move (line 382) | void
function icontainer_current (line 430) | void
function iContainer (line 462) | iContainer *
function icontainer_reparent (line 484) | void
function icontainer_dispose (line 517) | static void
function icontainer_finalize (line 541) | static void
function icontainer_info (line 556) | static void
function icontainer_real_pos_changed (line 566) | static void
function icontainer_link (line 571) | static void
function icontainer_real_child_add (line 590) | static void
function icontainer_unlink (line 626) | static void
function icontainer_real_child_remove (line 642) | static void
function icontainer_real_parent_add (line 671) | static void
function icontainer_real_parent_remove (line 684) | static void
function icontainer_real_current (line 699) | static void
function icontainer_real_child_detach (line 731) | static void
function icontainer_real_child_attach (line 742) | static void
function icontainer_class_init (line 752) | static void
function icontainer_init (line 834) | static void
function GType (line 845) | GType
function icontainer_set_hash (line 872) | void
function iContainer (line 884) | iContainer *
FILE: src/icontainer.h
type _iContainer (line 48) | struct _iContainer {
type iContainerClass (line 71) | typedef struct _iContainerClass {
type gint (line 118) | typedef gint (*icontainer_sort_fn)( iContainer *a, iContainer *b );
FILE: src/idialog.c
type OKButton (line 40) | typedef struct {
function OKButton (line 55) | static OKButton *
function idialog_free_client (line 69) | void
function idialog_notify_parent (line 77) | static void
function idialog_set_ok_button_state (line 98) | void
function idialog_set_button_state (line 107) | static void
function idialog_popdown_notify (line 119) | static void
function idialog_popdown_cb (line 141) | static void
function idialog_done_notify (line 160) | static void
function idialog_done_trigger (line 197) | void
function idialog_cancel_notify (line 218) | static void
function idialog_cancel_trigger (line 246) | static void
function idialog_done_cb (line 262) | static void
function idialog_cancel_cb (line 272) | static void
function idialog_help_cb (line 278) | static void
function idialog_destroy (line 285) | static void
function idialog_realize (line 320) | static void
function idialog_iobject_destroy (line 337) | static void
function idialog_set_default (line 381) | static void
function idialog_build (line 391) | static void
function idialog_class_init (line 557) | static void
function idialog_init (line 580) | static void
function GtkType (line 627) | GtkType
function GtkWidget (line 650) | GtkWidget *
function idialog_set_iobject (line 663) | void
function idialog_set_pinup (line 669) | void
function idialog_set_modal (line 679) | void
function idialog_set_nosep (line 685) | void
function idialog_set_button_focus (line 691) | void
function idialog_set_help_tag (line 697) | void
function idialog_set_callbacks (line 703) | void
function idialog_add_ok (line 714) | void
function idialog_set_notify (line 731) | void
function idialog_set_build (line 738) | void
function idialog_set_cancel_text (line 748) | void
function idialog_set_default_entry (line 754) | void
function idialog_init_entry (line 764) | void
FILE: src/idialog.h
type iDialog (line 45) | typedef struct _iDialog iDialog;
type _iDialog (line 49) | struct _iDialog {
type iDialogClass (line 109) | typedef struct _iDialogClass {
FILE: src/iimage.c
function iimage_dispose (line 38) | static void
function iimage_finalize (line 59) | static void
function iimage_info (line 101) | static void
function View (line 122) | static View *
function iimage_edit (line 128) | static void
function iimage_header (line 137) | void
function xmlNode (line 161) | static xmlNode *
function gboolean (line 193) | static gboolean
function gboolean (line 258) | static gboolean
function gboolean (line 304) | static gboolean
function gboolean (line 330) | static gboolean
function gboolean (line 375) | gboolean
function gboolean (line 398) | static gboolean
function iimage_class_init (line 405) | static void
function iimage_init (line 450) | static void
function GtkType (line 478) | GtkType
FILE: src/iimage.h
type _iImage (line 42) | struct _iImage {
type iImageClass (line 80) | typedef struct _iImageClass {
FILE: src/iimageview.c
function iimageview_realize (line 38) | static void
function GtkWidget (line 48) | GtkWidget *
function iimageview_drag_begin (line 64) | static void
function iimageview_drag_end (line 87) | static void
function iimageview_drag_data_get (line 98) | static void
function iimageview_drag_data_received (line 124) | static void
function iimageview_edit (line 182) | static void
function iimageview_link (line 193) | static void
function iimageview_refresh (line 214) | static void
function iimageview_class_init (line 266) | static void
function iimageview_doubleclick_one_cb (line 291) | static void
function iimageview_doubleclick_two_cb (line 301) | static void
function gboolean (line 308) | static gboolean
function iimageview_tooltip_generate (line 320) | static void
function iimageview_init (line 339) | static void
function GtkType (line 395) | GtkType
function View (line 418) | View *
FILE: src/iimageview.h
type iImageview (line 38) | typedef struct _iImageview {
type iImageviewClass (line 48) | typedef struct _iImageviewClass {
FILE: src/imagedisplay.c
function imagedisplay_queue_draw_area (line 56) | void
function imagedisplay_paint_image (line 71) | static void
function imagedisplay_paint_background (line 165) | static void
function imagedisplay_paint_background_clipped (line 180) | static void
function imagedisplay_paint (line 216) | static void
function gint (line 266) | static gint
function gboolean (line 309) | static gboolean
function imagedisplay_destroy (line 341) | static void
function imagedisplay_real_conversion_changed (line 364) | static void
function imagedisplay_real_area_changed (line 398) | static void
function imagedisplay_realize (line 404) | static void
function imagedisplay_class_init (line 428) | static void
function imagedisplay_init (line 455) | static void
function GType (line 468) | GType
function imagedisplay_conversion_changed_cb (line 495) | static void
function imagedisplay_conversion_area_changed_cb (line 511) | static void
function imagedisplay_set_conversion (line 528) | void
function Imagedisplay (line 553) | Imagedisplay *
function imagedisplay_set_shrink_to_fit (line 568) | void
FILE: src/imagedisplay.h
type _Imagedisplay (line 46) | struct _Imagedisplay {
type ImagedisplayClass (line 65) | typedef struct _ImagedisplayClass {
FILE: src/imageheader.c
function imageheader_destroy (line 46) | static void
function imageheader_refresh (line 95) | static void
function imageheader_entry_changed_cb (line 120) | static void
function gboolean (line 128) | static gboolean
function imageheader_build (line 159) | static void
function imageheader_class_init (line 264) | static void
function imageheader_init (line 279) | static void
function GtkType (line 289) | GtkType
function imageheader_ii_changed (line 314) | static void
function imageheader_link (line 323) | static void
function GtkWidget (line 332) | GtkWidget *
FILE: src/imageheader.h
type Imageheader (line 39) | typedef struct _Imageheader {
type ImageheaderClass (line 50) | typedef struct _ImageheaderClass {
FILE: src/imageinfo.c
function imageinfogroup_finalize (line 94) | static void
function imageinfogroup_child_add (line 104) | static void
function imageinfogroup_child_remove (line 122) | static void
function imageinfogroup_class_init (line 153) | static void
function imageinfogroup_init (line 167) | static void
function GType (line 178) | GType
function Imageinfogroup (line 203) | Imageinfogroup *
type stat (line 213) | struct stat
function Imageinfo (line 225) | static Imageinfo *
function imageinfo_print (line 259) | static void
function imageinfo_expr_add (line 346) | void
function GSList (line 382) | GSList *
function IMAGE (line 390) | IMAGE *
function imageinfo_undofragment_free (line 401) | static void
function imageinfo_undobuffer_free (line 410) | static void
function imageinfo_undo_free (line 421) | static void
function imageinfo_dispose_eval (line 433) | static void
function imageinfo_dispose (line 446) | static void
function imageinfo_finalize (line 469) | static void
function imageinfo_info (line 506) | static void
function imageinfo_real_area_changed (line 518) | static void
function imageinfo_real_area_painted (line 523) | static void
function imageinfo_real_undo_changed (line 532) | static void
function imageinfo_real_file_changed (line 537) | static void
function imageinfo_real_invalidate (line 542) | static void
function imageinfo_class_init (line 547) | static void
function imageinfo_init (line 612) | static void
function GType (line 641) | GType
function imageinfo_proxy_eval (line 666) | static int
function imageinfo_proxy_invalidate (line 679) | static int
function imageinfo_proxy_preclose (line 690) | static int
function imageinfo_proxy_add (line 705) | static void
function Imageinfo (line 746) | Imageinfo *
function imageinfo_set_underlying (line 784) | void
function Imageinfo (line 796) | Imageinfo *
type ImageinfoOpen (line 819) | typedef struct _ImageinfoOpen {
function Imageinfo (line 829) | static Imageinfo *
function Imageinfo (line 897) | Imageinfo *
function gboolean (line 946) | gboolean
function gint (line 953) | static gint
function imageinfo_attach_check (line 972) | static void
function Imageinfo (line 1000) | Imageinfo *
function IMAGE (line 1037) | static IMAGE *
function IMAGE (line 1066) | static IMAGE *
function IMAGE (line 1096) | IMAGE *
function gboolean (line 1121) | gboolean
function gboolean (line 1141) | gboolean
function gboolean (line 1162) | static gboolean
function imageinfo_check_paintable_cb (line 1182) | static void
function gboolean (line 1199) | gboolean
function Imageinfo (line 1244) | Imageinfo *
function Undofragment (line 1255) | static Undofragment *
function Undobuffer (line 1266) | static Undobuffer *
function IMAGE (line 1286) | static IMAGE *
function Undofragment (line 1311) | static Undofragment *
function imageinfo_undo_trim (line 1348) | static void
function imageinfo_undo_mark (line 1380) | void
function gboolean (line 1418) | static gboolean
function imageinfo_undobuffer_paste (line 1533) | static void
function gboolean (line 1542) | gboolean
function gboolean (line 1587) | gboolean
function imageinfo_undo_clear (line 1630) | void
function imageinfo_draw_point_cb (line 1637) | static int
function gboolean (line 1649) | gboolean
function gboolean (line 1695) | gboolean
function gboolean (line 1729) | gboolean
function gboolean (line 1765) | gboolean
function gboolean (line 1791) | gboolean
function gboolean (line 1814) | gboolean
function gboolean (line 1839) | gboolean
function gboolean (line 1874) | gboolean
function imageinfo_to_text (line 1912) | void
function imageinfo_from_text_band (line 1984) | static void
function gboolean (line 2052) | gboolean
function imageinfo_to_rgb (line 2111) | void
function imageinfo_from_rgb (line 2166) | void
type ColourEdit (line 2351) | typedef struct _ColourEdit {
function imageinfo_colour_done_cb (line 2360) | static void
function imageinfo_colour_buildedit (line 2380) | static void
function imageinfo_colour_edit (line 2398) | void
FILE: src/imageinfo.h
type Imageinfogroup (line 52) | typedef struct _Imageinfogroup {
type ImageinfogroupClass (line 63) | typedef struct _ImageinfogroupClass {
type Undofragment (line 88) | typedef struct _Undofragment {
type Undobuffer (line 97) | typedef struct _Undobuffer {
type Imageinfoproxy (line 107) | typedef struct _Imageinfoproxy {
type _Imageinfo (line 114) | struct _Imageinfo {
type ImageinfoClass (line 156) | typedef struct _ImageinfoClass {
FILE: src/imagemodel.c
function gboolean (line 64) | gboolean
function imagemodel_dispose (line 111) | static void
function imagemodel_changed (line 140) | static void
function imagemodel_class_init (line 175) | static void
function imagemodel_refresh_ink (line 199) | static void
function imagemodel_conv_changed_cb (line 233) | static void
function imagemodel_conv_imageinfo_changed_cb (line 242) | static void
function imagemodel_init (line 248) | static void
function GType (line 290) | GType
function imagemodel_iimage_destroy_cb (line 315) | static void
function imagemodel_iimage_changed_cb (line 323) | static void
function imagemodel_link (line 329) | static void
function Imagemodel (line 354) | Imagemodel *
function imagemodel_set_paintbox_cb (line 374) | static void
function gboolean (line 398) | gboolean
function imagemodel_set_rulers (line 432) | void
function imagemodel_set_paintbox (line 441) | void
function imagemodel_set_status (line 463) | void
function imagemodel_set_convert (line 472) | void
function gboolean (line 485) | gboolean
function gboolean (line 513) | gboolean
function imagemodel_paint_recalc (line 533) | void
FILE: src/imagemodel.h
type ImagemodelState (line 44) | typedef enum _ImagemodelState {
type _Imagemodel (line 60) | struct _Imagemodel {
type ImagemodelClass (line 112) | typedef struct _ImagemodelClass {
FILE: src/imagepresent.c
type ImagepresentKeymap (line 63) | typedef struct _ImagepresentKeymap {
function imagepresent_destroy (line 84) | static void
function imagepresent_size_request (line 112) | static void
function imagepresent_size_allocate (line 137) | static void
function gboolean (line 165) | static gboolean
function imagepresent_realize (line 196) | static void
function imagepresent_class_init (line 215) | static void
function imagepresent_hruler_rethink (line 241) | static void
function imagepresent_vruler_rethink (line 276) | static void
function imagepresent_zoom_in (line 313) | static void
function imagepresent_zoom_in_centre (line 324) | static void
function imagepresent_zoom_out (line 334) | static void
function gboolean (line 352) | static gboolean
function imagepresent_hadj_changed_cb (line 404) | static void
function imagepresent_vadj_changed_cb (line 425) | static void
function imagepresent_floating_new (line 446) | static void
function gint (line 471) | static gint
function gint (line 526) | static gint
type ImagepresentSnap (line 577) | typedef struct {
function gboolean (line 630) | static gboolean
function gboolean (line 648) | gboolean
function gboolean (line 665) | gboolean
function imagepresent_set_position (line 720) | void
function imagepresent_set_mag_pos (line 739) | void
function imagepresent_zoom_to (line 776) | void
function gboolean (line 797) | static gboolean
function imagepresent_paint_stop (line 923) | static void
function imagepresent_left_release (line 1043) | static void
function imagepresent_button_motion (line 1130) | static void
function gboolean (line 1215) | static gboolean
function gboolean (line 1327) | static gboolean
function imagepresent_realize_id_cb (line 1451) | static void
function imagepresent_rulers_mm_cb (line 1459) | static void
function imagepresent_rulers_offset_cb (line 1468) | static void
function imagepresent_ruler_hide_cb (line 1477) | static void
function imagepresent_init (line 1483) | static void
function GType (line 1621) | GType
function imagepresent_imagemodel_changed_cb (line 1648) | static void
function imagepresent_imagemodel_imageinfo_changed_cb (line 1663) | static void
function imagepresent_link (line 1673) | static void
function Imagepresent (line 1694) | Imagepresent *
function gboolean (line 1706) | static gboolean
function imagepresent_scroll_start (line 1716) | void
function imagepresent_scroll_stop (line 1727) | void
FILE: src/imagepresent.h
type _Imagepresent (line 46) | struct _Imagepresent {
type ImagepresentClass (line 102) | typedef struct _ImagepresentClass {
FILE: src/imageview.c
type ImageviewMagmenu (line 44) | typedef struct _ImageviewMagmenu {
function imageview_destroy (line 61) | static void
function imageview_class_init (line 82) | static void
function imageview_init (line 98) | static void
function GtkType (line 104) | GtkType
function imageview_refresh_title (line 127) | static void
function imageview_imagemodel_changed_cb (line 158) | static void
function iRegionType (line 214) | static iRegionType
function imageview_new_arrow2_action_cb (line 242) | static void
function imageview_new_arrow4_action_cb (line 288) | static void
function imageview_replace_action_cb (line 324) | static void
function imageview_save_action_cb (line 333) | static void
function imageview_recalc_action_cb (line 342) | static void
function imageview_header_action_cb (line 356) | static void
function imageview_zoom_in_action_cb (line 365) | static void
function imageview_zoom_out_action_cb (line 374) | static void
function imageview_zoom_100_action_cb (line 383) | static void
function imageview_zoom_fit_action_cb (line 390) | static void
function imageview_show_status_action_cb (line 396) | static void
function imageview_show_convert_action_cb (line 403) | static void
function imageview_show_paintbox_action_cb (line 410) | static void
function imageview_show_rulers_action_cb (line 417) | static void
function imageview_mode_action_cb (line 424) | static void
function imageview_mag_action_cb (line 434) | static void
function gint (line 665) | static gint
function gboolean (line 719) | static gboolean
function imageview_build (line 730) | static void
function imageview_popdown (line 900) | static void
function imageview_link (line 944) | static void
function Imageview (line 961) | Imageview *
function Imageview (line 985) | Imageview *
FILE: src/imageview.h
type Imageview (line 38) | typedef struct _Imageview {
type ImageviewClass (line 52) | typedef struct _ImageviewClass {
FILE: src/iobject.c
function iobject_dispose (line 94) | static void
function iobject_finalize (line 114) | static void
function iobject_real_destroy (line 134) | static void
function iobject_real_changed (line 139) | static void
function iobject_real_info (line 149) | static void
function iobject_class_init (line 160) | static void
function iobject_init (line 195) | static void
function GType (line 211) | GType
function iobject_set (line 261) | void
function iobject_sink (line 287) | void
function iobject_dump (line 298) | void
FILE: src/iobject.h
type _iObject (line 51) | struct _iObject {
type iObjectClass (line 71) | typedef struct _iObjectClass {
FILE: src/ip.h
type Watch (line 247) | typedef struct _Watch Watch;
type Toolitem (line 248) | typedef struct _Toolitem Toolitem;
type BuiltinInfo (line 249) | typedef struct _BuiltinInfo BuiltinInfo;
type Classmodel (line 250) | typedef struct _Classmodel Classmodel;
type Colour (line 251) | typedef struct _Colour Colour;
type Column (line 252) | typedef struct _Column Column;
type Columnview (line 253) | typedef struct _Columnview Columnview;
type Compile (line 254) | typedef struct _Compile Compile;
type Conversion (line 255) | typedef struct _Conversion Conversion;
type Conversionview (line 256) | typedef struct _Conversionview Conversionview;
type Expr (line 257) | typedef struct _Expr Expr;
type Filemodel (line 258) | typedef struct _Filemodel Filemodel;
type Heap (line 259) | typedef struct _Heap Heap;
type HeapBlock (line 260) | typedef struct _HeapBlock HeapBlock;
type Heapmodel (line 261) | typedef struct _Heapmodel Heapmodel;
type iArrow (line 262) | typedef struct _iArrow iArrow;
type iImage (line 263) | typedef struct _iImage iImage;
type Imagedisplay (line 264) | typedef struct _Imagedisplay Imagedisplay;
type Managed (line 265) | typedef struct _Managed Managed;
type Managedfile (line 266) | typedef struct _Managedfile Managedfile;
type Managedgvalue (line 267) | typedef struct _Managedgvalue Managedgvalue;
type Managedgobject (line 268) | typedef struct _Managedgobject Managedgobject;
type Managedstring (line 269) | typedef struct _Managedstring Managedstring;
type Imageinfo (line 270) | typedef struct _Imageinfo Imageinfo;
type Imagepresent (line 271) | typedef struct _Imagepresent Imagepresent;
type Imagemodel (line 272) | typedef struct _Imagemodel Imagemodel;
type iRegion (line 273) | typedef struct _iRegion iRegion;
type iRegiongroup (line 274) | typedef struct _iRegiongroup iRegiongroup;
type Link (line 275) | typedef struct _Link Link;
type LinkExpr (line 276) | typedef struct _LinkExpr LinkExpr;
type Model (line 277) | typedef struct _Model Model;
type iObject (line 278) | typedef struct _iObject iObject;
type iContainer (line 279) | typedef struct _iContainer iContainer;
type Paintboxview (line 280) | typedef struct _Paintboxview Paintboxview;
type ParseConst (line 281) | typedef struct _ParseConst ParseConst;
type ParseNode (line 282) | typedef struct _ParseNode ParseNode;
type Program (line 283) | typedef struct _Program Program;
type String (line 284) | typedef struct _String String;
type Number (line 285) | typedef struct _Number Number;
type Reduce (line 286) | typedef struct _Reduce Reduce;
type Regionview (line 287) | typedef struct _Regionview Regionview;
type Rhs (line 288) | typedef struct _Rhs Rhs;
type Rhsview (line 289) | typedef struct _Rhsview Rhsview;
type Row (line 290) | typedef struct _Row Row;
type Rowview (line 291) | typedef struct _Rowview Rowview;
type Statusview (line 292) | typedef struct _Statusview Statusview;
type Plotstatus (line 293) | typedef struct _Plotstatus Plotstatus;
type Plot (line 294) | typedef struct _Plot Plot;
type Plotwindow (line 295) | typedef struct _Plotwindow Plotwindow;
type Plotpresent (line 296) | typedef struct _Plotpresent Plotpresent;
type Plotmodel (line 297) | typedef struct _Plotmodel Plotmodel;
type Graphwindow (line 298) | typedef struct _Graphwindow Graphwindow;
type Subcolumn (line 299) | typedef struct _Subcolumn Subcolumn;
type Subcolumnview (line 300) | typedef struct _Subcolumnview Subcolumnview;
type Symbol (line 301) | typedef struct _Symbol Symbol;
type Tool (line 302) | typedef struct _Tool Tool;
type Toolkit (line 303) | typedef struct _Toolkit Toolkit;
type Toolkitgroup (line 304) | typedef struct _Toolkitgroup Toolkitgroup;
type Toolkitgroupview (line 305) | typedef struct _Toolkitgroupview Toolkitgroupview;
type Toolkitview (line 306) | typedef struct _Toolkitview Toolkitview;
type Toolview (line 307) | typedef struct _Toolview Toolview;
type Trace (line 308) | typedef struct _Trace Trace;
type Preview (line 309) | typedef struct _Preview Preview;
type Infobar (line 310) | typedef struct _Infobar Infobar;
type iError (line 311) | typedef struct _iError iError;
type Log (line 312) | typedef struct _Log Log;
type vObject (line 313) | typedef struct _vObject vObject;
type View (line 314) | typedef struct _View View;
type Workspace (line 315) | typedef struct _Workspace Workspace;
type Workspaceview (line 316) | typedef struct _Workspaceview Workspaceview;
type Workspaceroot (line 317) | typedef struct _Workspaceroot Workspaceroot;
type Workspacegroup (line 318) | typedef struct _Workspacegroup Workspacegroup;
type Workspacegroupview (line 319) | typedef struct _Workspacegroupview Workspacegroupview;
type Prefworkspaceview (line 320) | typedef struct _Prefworkspaceview Prefworkspaceview;
type Prefcolumnview (line 321) | typedef struct _Prefcolumnview Prefcolumnview;
type iText (line 322) | typedef struct _iText iText;
type Expression (line 323) | typedef struct _Expression Expression;
type Mainw (line 324) | typedef struct _Mainw Mainw;
type Toolviewitemgroup (line 325) | typedef struct _Toolviewitemgroup Toolviewitemgroup;
type Panechild (line 326) | typedef struct _Panechild Panechild;
type Toolkitbrowser (line 327) | typedef struct _Toolkitbrowser Toolkitbrowser;
type Workspacedefs (line 328) | typedef struct _Workspacedefs Workspacedefs;
FILE: src/iregion.c
function iregion_instance_destroy (line 38) | void
function iregion_instance_init (line 49) | void
function gboolean (line 65) | gboolean
function iregion_finalize (line 96) | static void
function iregion_done_cb (line 174) | static void
function View (line 204) | static View *
function iregion_edit (line 212) | void
function iregion_parent_add (line 254) | void
function xmlNode (line 267) | xmlNode *
function gboolean (line 299) | gboolean
function gboolean (line 384) | gboolean
function gboolean (line 405) | gboolean
function iregion_class_init (line 446) | static void
function iregion_init (line 487) | static void
function GType (line 495) | GType
FILE: src/iregion.h
type iRegionType (line 44) | typedef enum iRegionType {
type iRegionInstance (line 55) | typedef struct {
type _iRegion (line 68) | struct _iRegion {
type iRegionClass (line 76) | typedef struct _iRegionClass {
FILE: src/iregiongroup.c
function View (line 60) | static View *
function iregiongroup_class_init (line 66) | static void
function iregiongroup_init (line 84) | static void
function GType (line 92) | GType
function iRegiongroup (line 117) | iRegiongroup *
FILE: src/iregiongroup.h
type _iRegiongroup (line 44) | struct _iRegiongroup {
type iRegiongroupClass (line 49) | typedef struct _iRegiongroupClass {
FILE: src/iregiongroupview.c
function iRegiongroup (line 38) | static iRegiongroup *
function Classmodel (line 44) | static Classmodel *
function iregiongroupview_destroy (line 56) | static void
type iRegiongroupviewRefreshState (line 80) | typedef struct {
function Regionview (line 88) | static Regionview *
function iregiongroupview_refresh (line 151) | static void
function iregiongroupview_class_init (line 189) | static void
function iregiongroupview_init (line 207) | static void
function GtkType (line 215) | GtkType
function View (line 238) | View *
FILE: src/iregiongroupview.h
type iRegiongroupview (line 41) | typedef struct _iRegiongroupview {
type iRegiongroupviewClass (line 50) | typedef struct _iRegiongroupviewClass {
FILE: src/iregionview.c
function iregionview_class_init (line 38) | static void
function iregionview_init (line 50) | static void
function GtkType (line 58) | GtkType
function View (line 81) | View *
FILE: src/iregionview.h
type iRegionview (line 39) | typedef struct _iRegionview {
type iRegionviewClass (line 44) | typedef struct _iRegionviewClass {
FILE: src/istring.h
type _String (line 38) | struct _String {
type StringClass (line 46) | typedef struct _StringClass {
FILE: src/itext.c
function itext_finalize (line 38) | static void
function itext_info (line 62) | static void
function itext_add_char (line 138) | static void
function itext_add_complex (line 153) | static void
function gboolean (line 175) | static gboolean
function gboolean (line 301) | static gboolean
function gboolean (line 321) | static gboolean
function gboolean (line 461) | gboolean
function itext_value_ev (line 480) | void
function gboolean (line 489) | static gboolean
function gboolean (line 522) | gboolean
function itext_parent_add (line 714) | static void
function gboolean (line 738) | static gboolean
function View (line 759) | static View *
function xmlNode (line 765) | static xmlNode *
function itext_class_init (line 783) | static void
function itext_init (line 818) | static void
function GType (line 837) | GType
function iText (line 862) | iText *
function itext_set_edited (line 873) | void
function gboolean (line 893) | gboolean
FILE: src/itext.h
type _iText (line 42) | struct _iText {
type iTextClass (line 59) | typedef struct _iTextClass {
FILE: src/itextview.c
function itextview_refresh (line 38) | static void
function itextview_link (line 92) | static void
function itextview_reset (line 115) | static void
function itextview_class_init (line 157) | static void
function itextview_edit_cb (line 177) | void
function itextview_activate_cb (line 183) | void
function itextview_enter_cb (line 204) | static void
function itextview_leave_cb (line 214) | static void
function itextview_init (line 223) | static void
function GtkType (line 244) | GtkType
function View (line 267) | View *
FILE: src/itextview.h
type iTextview (line 38) | typedef struct _iTextview {
type iTextviewClass (line 46) | typedef struct _iTextviewClass {
FILE: src/iwindow.c
function iwindow_number (line 122) | int
function iWindow (line 131) | iWindow *
function GdkCursor (line 150) | static GdkCursor *
function iwindow_make_cursors (line 173) | static void
function GdkWindow (line 247) | static GdkWindow *
function hourglass_begin (line 334) | static void
function hourglass_update (line 340) | static void
function hourglass_end (line 354) | static void
function iWindowCursorContext (line 365) | iWindowCursorContext *
function iwindow_cursor_context_destroy (line 383) | void
function iwindow_cursor_context_set_cursor (line 393) | void
function iWindowSusp (line 408) | iWindowSusp *
function iwindow_susp_return (line 428) | void
function iwindow_susp_trigger (line 438) | void
function iwindow_susp_comp (line 448) | void
function iwindow_true_cb (line 461) | void
function iwindow_false_cb (line 467) | void
function iwindow_notify_null (line 475) | void iwindow_notify_null( void *client, iWindowResult result ) { }
function iwindow_final_death (line 479) | static void
function iwindow_notify_return (line 496) | void
function iwindow_notify_send (line 518) | void
function iwindow_finalize (line 534) | static void
function iwindow_destroy (line 557) | static void
function iwindow_popdown_notify (line 580) | static void
function gboolean (line 619) | static gboolean
function gboolean (line 642) | static gboolean
function iwindow_parent_unmap_cb (line 660) | static void
function iwindow_real_build (line 711) | static void
function iwindow_real_popdown (line 793) | static void
function iwindow_class_init (line 799) | static void
function iwindow_init (line 836) | static void
function GtkType (line 874) | GtkType
function GtkWidget (line 897) | GtkWidget *
function iwindow_set_title (line 910) | void
function iwindow_set_build (line 926) | void
function iwindow_set_popdown (line 936) | void
function iwindow_set_size_prefs (line 943) | void
function iwindow_set_work_window (line 951) | void
function iwindow_set_parent (line 958) | void
function iwindow_kill_action_cb (line 998) | void
function iwindow_build (line 1004) | void
function GtkWidget (line 1016) | GtkWidget *
function GtkWidget (line 1036) | GtkWidget *
function iwindow_alert (line 1050) | void
FILE: src/iwindow.h
type iWindow (line 47) | typedef struct _iWindow iWindow;
type iWindowShape (line 51) | typedef enum _iWindowShape {
type iWindowCursorContext (line 98) | typedef struct {
type iWindowResult (line 110) | typedef enum iwindow_result {
type iWindowSusp (line 133) | typedef struct {
type _iWindow (line 143) | struct _iWindow {
type iWindowClass (line 193) | typedef struct _iWindowClass {
FILE: src/link.c
function LinkExpr (line 61) | static LinkExpr *
function link_serial_new (line 94) | int
function Link (line 183) | static Link *
function Link (line 219) | static Link *
function Link (line 230) | static Link *
function LinkExpr (line 248) | static LinkExpr *
function symbol_ndirty (line 407) | int
function symbol_link_destroy (line 440) | void
function symbol_link_build (line 448) | void
FILE: src/link.h
type _LinkExpr (line 33) | struct _LinkExpr {
type _Link (line 43) | struct _Link {
FILE: src/log.c
function log_build (line 42) | static void
function log_class_init (line 94) | static void
function log_init (line 112) | static void
function GtkType (line 117) | GtkType
function log_clear_action_cb (line 140) | void
function log_text (line 149) | void
function log_textf (line 168) | void
FILE: src/log.h
type _Log (line 40) | struct _Log {
type LogClass (line 46) | typedef struct _LogClass {
FILE: src/main.c
function main_log_add (line 157) | static void
function gboolean (line 173) | static gboolean
function main_log_null (line 183) | static void
function main_error_exit (line 193) | static void
function main_print_main (line 223) | static void
function main_quit (line 263) | static void
function main_quit_test_cb (line 375) | static void
function main_quit_test (line 394) | void
function main_watchgroup_changed_cb (line 420) | static void
function gboolean (line 433) | static gboolean
function main_load_startup (line 567) | static void
function main_reload (line 631) | void
function main_file_for_stock (line 657) | static void
function main_register_icons (line 679) | static void
function main_x_init (line 778) | static void
function main_toobig_done (line 833) | static void
function main_check_temp (line 869) | static void
function main_mkdir (line 897) | static void
function gboolean (line 906) | static gboolean
function set_prefix (line 957) | static void
function main (line 990) | int
function breakargs (line 1588) | static int
function WinMain (line 1633) | int WINAPI
FILE: src/mainw.c
function mainw_startup (line 61) | void
function mainw_shutdown (line 73) | void
function mainw_recent_freeze (line 87) | void
function mainw_recent_thaw (line 93) | void
function mainw_recent_add (line 101) | void
function Mainw (line 120) | Mainw *
function mainw_finalize (line 132) | static void
function mainw_dispose (line 145) | static void
function gboolean (line 193) | static gboolean
function mainw_class_init (line 208) | static void
function mainw_progress_begin (line 222) | static void
function mainw_progress_update (line 229) | static void
function mainw_progress_end (line 241) | static void
function mainw_init (line 248) | static void
function GType (line 285) | GType
function mainw_cancel_cb (line 310) | static void
function mainw_find_disc (line 316) | void
function mainw_find_heap (line 332) | void
function Workspace (line 344) | Workspace *
function Workspace (line 356) | Workspace *
function mainw_free_update (line 371) | static void
function mainw_title_update (line 400) | static void
function mainw_status_update (line 442) | static void
function gboolean (line 458) | static gboolean
function mainw_refresh (line 562) | static void
function mainw_duplicate_action_cb (line 571) | static void
function mainw_save_action_cb (line 593) | static void
function mainw_save_as_action_cb (line 600) | static void
function gint (line 609) | static gint
function mainw_space_free_tooltip_generate (line 641) | static void
function mainw_free_changed_cb (line 682) | static void
function mainw_homepage_action_cb (line 691) | void
function mainw_about_action_cb (line 699) | void
function mainw_guide_action_cb (line 707) | void
function mainw_selected_duplicate_action_cb (line 713) | static void
function mainw_ungroup_action_cb (line 727) | static void
function mainw_group_action_cb (line 741) | void
function mainw_select_all_action_cb (line 752) | static void
function mainw_find_action_cb (line 761) | static void
function mainw_find_again_action_cb (line 769) | static void
function mainw_next_error_action_cb (line 777) | void
function mainw_force_calc_action_cb (line 801) | static void
function Workspacegroup (line 815) | Workspacegroup *
type MainwLoad (line 831) | typedef struct {
function mainw_open_done_cb (line 864) | static void
function mainw_open (line 926) | static void
function mainw_open_action_cb (line 945) | void
function mainw_open_examples (line 953) | static void
function mainw_open_examples_action_cb (line 981) | static void
function gboolean (line 987) | static gboolean
function mainw_recent_open_cb (line 1015) | static void
function mainw_recent_build (line 1031) | static void
function mainw_recent_clear_cb (line 1058) | static void
function mainw_recent_map_cb (line 1075) | static void
function mainw_workspace_merge_done_cb (line 1148) | static void
function mainw_workspace_merge (line 1169) | void
function mainw_workspace_merge_action_cb (line 1187) | void
function mainw_auto_recover_cb (line 1195) | static void
function mainw_recover_action_cb (line 1227) | static void
function mainw_column_new_action_cb (line 1265) | void
function mainw_column_new_cb (line 1276) | static void
function mainw_column_new_named_action_cb (line 1319) | static void
function mainw_program_new_action_cb (line 1349) | static void
function mainw_workspace_new_action_cb (line 1362) | static void
function mainw_workbook_new_action_cb (line 1370) | static void
function mainw_autorecalc_action_cb (line 1385) | static void
function mainw_lock_action_cb (line 1404) | static void
function mainw_toolbar_action_cb (line 1416) | static void
function mainw_statusbar_action_cb (line 1427) | static void
function mainw_toolkitbrowser_action_cb (line 1438) | static void
function mainw_tabdefs_action_cb (line 1451) | static void
function mainw_selected_remove_action_cb (line 1464) | static void
function mainw_revert_ok_cb (line 1473) | void
function mainw_revert_cb (line 1489) | void
function mainw_preferences_action_cb (line 1504) | static void
function mainw_graph_action_cb (line 1559) | static void
function mainw_mode_action_cb (line 1575) | static void
function mainw_watch_changed_cb (line 1855) | static void
function mainw_build (line 1866) | static void
function mainw_popdown (line 2024) | static void
function mainw_wsg_changed_cb (line 2042) | static void
function mainw_wsg_destroy_cb (line 2048) | static void
function mainw_link (line 2054) | static void
function Mainw (line 2092) | Mainw *
function mainw_cull (line 2115) | void
function gboolean (line 2131) | static gboolean
function mainw_layout (line 2142) | void
FILE: src/mainw.h
type _Mainw (line 43) | struct _Mainw {
type MainwClass (line 103) | typedef struct _MainwClass {
FILE: src/managed.c
function managed_check_all_destroyed (line 59) | void
function managed_link_heap (line 74) | void
function managed_unlink_heap (line 91) | static void
function managed_dispose (line 114) | static void
function managed_finalize (line 136) | static void
function managed_info (line 156) | static void
function managed_class_init (line 170) | static void
function managed_init (line 186) | static void
function GType (line 218) | GType
function managed_destroy_heap (line 246) | void
function managed_dup_nonheap (line 285) | void
function managed_sub_add (line 300) | void
function managed_sub_add_all (line 311) | void
function managed_clear_sub (line 322) | static void
function managed_clear (line 328) | void
function managed_mark (line 337) | void
function gboolean (line 353) | static gboolean
function gboolean (line 421) | gboolean
FILE: src/managed.h
type _Managed (line 53) | struct _Managed {
type ManagedClass (line 81) | typedef struct _ManagedClass {
FILE: src/managedfile.c
function managedfile_dispose (line 38) | static void
function managedfile_info (line 53) | static void
function managedfile_class_init (line 67) | static void
function managedfile_init (line 80) | static void
function GType (line 90) | GType
function Managedfile (line 115) | Managedfile *
function managedfile_getc (line 137) | int
FILE: src/managedfile.h
type _Managedfile (line 44) | struct _Managedfile {
type ManagedfileClass (line 50) | typedef struct _ManagedfileClass {
FILE: src/managedgobject.c
function managedgobject_dispose (line 38) | static void
function managedgobject_info (line 53) | static void
function managedgobject_class_init (line 66) | static void
function managedgobject_init (line 79) | static void
function GType (line 89) | GType
function Managedgobject (line 114) | Managedgobject *
FILE: src/managedgobject.h
type _Managedgobject (line 44) | struct _Managedgobject {
type ManagedgobjectClass (line 50) | typedef struct _ManagedgobjectClass {
FILE: src/managedgvalue.c
function managedgvalue_dispose (line 38) | static void
function managedgvalue_info (line 53) | static void
function managedgvalue_class_init (line 66) | static void
function managedgvalue_init (line 79) | static void
function GType (line 89) | GType
function managedgvalue_set_value (line 114) | void
function Managedgvalue (line 122) | Managedgvalue *
FILE: src/managedgvalue.h
type _Managedgvalue (line 44) | struct _Managedgvalue {
type ManagedgvalueClass (line 50) | typedef struct _ManagedgvalueClass {
FILE: src/managedstring.c
function managedstring_finalize (line 49) | static void
function managedstring_info (line 78) | static void
function managedstring_hash (line 92) | static unsigned int
function gboolean (line 99) | static gboolean
function managedstring_all_init (line 106) | static void
function managedstring_class_init (line 115) | static void
function managedstring_init (line 130) | static void
function GType (line 146) | GType
function Managedstring (line 170) | static Managedstring *
function Managedstring (line 197) | Managedstring *
function Managedstring (line 209) | Managedstring *
function gboolean (line 221) | gboolean
FILE: src/managedstring.h
type _Managedstring (line 44) | struct _Managedstring {
type ManagedstringClass (line 51) | typedef struct _ManagedstringClass {
FILE: src/matrix.c
function matrix_finalize (line 38) | static void
function gboolean (line 61) | gboolean
type MatrixEdit (line 95) | typedef struct _MatrixEdit {
function matrix_done_cb (line 108) | static void
function matrix_buildedit (line 139) | static void
function View (line 173) | static View *
function matrix_edit (line 181) | static void
function gboolean (line 208) | static gboolean
function gboolean (line 237) | static gboolean
function matrix_class_init (line 292) | static void
function matrix_init (line 328) | static void
function GtkType (line 346) | GtkType
function matrix_select (line 371) | void
function matrix_deselect (line 406) | void
function matrix_guess_display (line 427) | static int
function matrix_dmask_to_ip (line 455) | void
function gboolean (line 486) | gboolean
function DOUBLEMASK (line 517) | DOUBLEMASK *
function INTMASK (line 539) | INTMASK *
function gboolean (line 561) | gboolean
function DOUBLEMASK (line 579) | DOUBLEMASK *
function INTMASK (line 625) | INTMASK *
function DOUBLEMASK (line 642) | DOUBLEMASK *
function gboolean (line 662) | gboolean
FILE: src/matrix.h
type MatrixDisplayType (line 44) | typedef enum {
type Matrix (line 52) | typedef struct _Matrix {
type MatrixClass (line 72) | typedef struct _MatrixClass {
FILE: src/matrixview.c
function matrixview_destroy (line 60) | static void
function gboolean (line 81) | static gboolean
function matrixview_toggle_change_cb (line 199) | static void
function matrixview_toggle_build (line 234) | static void
function matrixview_slider_change_cb (line 286) | static void
function matrixview_slider_build (line 309) | static void
function gboolean (line 352) | static gboolean
function gboolean (line 360) | static gboolean
function matrixview_text_connect (line 368) | static void
function matrixview_text_build_scale_offset (line 386) | static void
function GtkListStore (line 412) | GtkListStore *
function matrixview_edited_cb (line 441) | static void
function matrixview_cell_data_cb (line 462) | static void
function matrixview_text_build (line 478) | static void
function matrixview_toggle_set_label (line 610) | static void
function matrixview_toggle_refresh (line 634) | static void
function matrixview_slider_refresh (line 654) | static void
function matrixview_text_set (line 674) | static void
function matrixview_text_refresh (line 688) | static void
function matrixview_refresh (line 718) | static void
function matrixview_class_init (line 887) | static void
function matrixview_init (line 908) | static void
function GtkType (line 933) | GtkType
function View (line 956) | View *
FILE: src/matrixview.h
type Matrixview (line 38) | typedef struct _Matrixview {
type MatrixviewClass (line 62) | typedef struct _MatrixviewClass {
FILE: src/model.c
function ModelRename (line 81) | static ModelRename *
function gboolean (line 98) | gboolean
function gboolean (line 125) | gboolean
function gboolean (line 133) | gboolean
function gboolean (line 151) | gboolean
function model_loadstate_destroy (line 158) | void
function model_loadstate_error (line 182) | static void
function model_loadstate_error_get (line 192) | static void
function ModelLoadState (line 204) | ModelLoadState *
function ModelLoadState (line 247) | ModelLoadState *
function model_loadstate_rewrite (line 304) | void
function View (line 345) | View *
function model_register_loadable (line 363) | void
function model_scrollto (line 370) | void
function model_layout (line 379) | void
function model_front (line 387) | void
function model_display (line 395) | void
function gboolean (line 463) | gboolean
function model_real_scrollto (line 535) | static void
function model_real_front (line 540) | static void
function model_real_display (line 545) | static void
function xmlNode (line 554) | static xmlNode *
function gboolean (line 604) | gboolean
function gboolean (line 619) | static gboolean
function model_real_empty (line 657) | static void
function model_class_init (line 664) | static void
function model_init (line 726) | static void
function GType (line 740) | GType
function model_base_init (line 765) | void
type ModelCheckDestroy (line 800) | typedef struct {
function model_check_destroy_sub (line 809) | static void
function model_check_destroy_destroy_cb (line 824) | static void
function model_check_destroy_finished (line 844) | static void
function model_check_destroy (line 853) | void
FILE: src/model.h
type ModelScrollPosition (line 34) | typedef enum {
type ModelRename (line 41) | typedef struct _ModelRename {
type ModelLoadState (line 48) | typedef struct _ModelLoadState {
type _Model (line 102) | struct _Model {
type ModelClass (line 116) | typedef struct _ModelClass {
FILE: src/nip2-cli.c
function print_last_error (line 50) | void
function main (line 68) | int
FILE: src/nipmarshal.c
function nip_VOID__OBJECT_INT (line 52) | void
function nip_VOID__DOUBLE_DOUBLE (line 89) | void
function nip_BOOLEAN__INT_INT (line 126) | void
FILE: src/number.c
function View (line 38) | static View *
function number_class_init (line 55) | static void
function number_init (line 78) | static void
function GType (line 86) | GType
FILE: src/number.h
type _Number (line 38) | struct _Number {
type NumberClass (line 46) | typedef struct _NumberClass {
FILE: src/numberview.c
function numberview_refresh (line 71) | static void
function numberview_class_init (line 91) | static void
function numberview_init (line 109) | static void
function GtkType (line 114) | GtkType
function View (line 137) | View *
FILE: src/numberview.h
type Numberview (line 38) | typedef struct _Numberview {
type NumberviewClass (line 43) | typedef struct _NumberviewClass {
FILE: src/option.c
function option_finalize (line 38) | static void
function View (line 55) | static View *
function option_class_init (line 75) | static void
function option_init (line 101) | static void
function GType (line 110) | GType
FILE: src/option.h
type Option (line 42) | typedef struct _Option {
type OptionClass (line 51) | typedef struct _OptionClass {
FILE: src/optionview.c
function GSList (line 40) | static GSList *
function gboolean (line 58) | static gboolean
function optionview_destroy (line 72) | static void
function optionview_link (line 89) | static void
function optionview_change_cb (line 103) | static void
function gboolean (line 120) | static gboolean
function optionview_refresh (line 129) | static void
function optionview_class_init (line 190) | static void
function optionview_init (line 211) | static void
function GtkType (line 230) | GtkType
function View (line 253) | View *
FILE: src/optionview.h
type Optionview (line 38) | typedef struct _Optionview {
type OptionviewClass (line 51) | typedef struct _OptionviewClass {
FILE: src/paintboxview.c
function paintboxview_destroy (line 42) | static void
function paintboxview_realize (line 64) | static void
function paintboxview_hide_cb (line 84) | static void
function paintboxview_class_init (line 90) | static void
function paintboxview_tool_toggled_cb (line 116) | static void
function paintboxview_scale_change_cb (line 134) | static void
function paintboxview_double_cb (line 145) | static void
function paintboxview_font_changed_cb (line 152) | static void
function paintboxview_undo_cb (line 166) | static void
function paintboxview_redo_cb (line 179) | static void
function paintboxview_clear_cb2 (line 192) | static void
function paintboxview_clear_cb (line 203) | static void
function paintboxview_text_changed_cb (line 217) | static void
function paintboxview_init (line 225) | static void
function GtkType (line 382) | GtkType
function paintboxview_ii_undo_changed_cb (line 406) | static void
function paintboxview_ii_destroy_cb (line 417) | static void
function paintboxview_changed_cb (line 427) | static void
function paintboxview_link (line 477) | static void
function Paintboxview (line 489) | Paintboxview *
FILE: src/paintboxview.h
type _Paintboxview (line 41) | struct _Paintboxview {
type PaintboxviewClass (line 62) | typedef struct _PaintboxviewClass {
FILE: src/pane.c
function pane_changed (line 59) | static void
function pane_closed_position (line 72) | static int
function pane_open_position (line 84) | static int
function pane_destroy (line 99) | static void
function pane_class_init (line 121) | static void
function pane_notify_position_cb (line 145) | static void
function pane_init (line 192) | static void
function GType (line 209) | GType
function pane_set_position (line 237) | void
function pane_set_user_position (line 258) | void
function pane_set_open (line 273) | void
function pane_set_state (line 291) | void
function pane_set_child (line 312) | void
function gboolean (line 330) | static gboolean
function pane_animate_closed (line 367) | void
function pane_animate_open (line 399) | void
function pane_link (line 444) | static void
function Pane (line 456) | Pane *
FILE: src/pane.h
type PaneHandedness (line 40) | typedef enum {
type Pane (line 45) | typedef struct _Pane {
type PaneClass (line 83) | typedef struct _PaneClass {
FILE: src/panechild.c
function panechild_finalize (line 38) | static void
function panechild_refresh (line 54) | static void
function panechild_class_init (line 68) | static void
function panechild_hide_cb (line 81) | static void
function panechild_init (line 87) | static void
function GtkType (line 121) | GtkType
function Panechild (line 146) | Panechild *
FILE: src/panechild.h
type _Panechild (line 40) | struct _Panechild {
type PanechildClass (line 49) | typedef struct _PanechildClass {
FILE: src/parser.h
type InputState (line 33) | typedef struct {
type ParseRhsSyntax (line 84) | typedef enum {
FILE: src/path.c
type Rewrite (line 66) | typedef struct _Rewrite {
function path_rewrite_free (line 74) | static void
function path_rewrite_free_all (line 84) | void
function Rewrite (line 94) | static Rewrite *
function gint (line 108) | static gint
function Rewrite (line 114) | static Rewrite *
function path_rewrite_add (line 133) | void
function path_rewrite (line 230) | void
function path_expand (line 272) | void
function path_compact (line 292) | void
function GSList (line 301) | GSList *
function path_free2 (line 337) | void
function path_add_component (line 346) | static int
type Search (line 386) | typedef struct _Search {
function path_search_free (line 410) | static void
function gboolean (line 419) | static gboolean
function path_init (line 596) | void
FILE: src/pathname.c
function pathname_dispose (line 38) | static void
function View (line 52) | static View *
function pathname_class_init (line 82) | static void
function pathname_init (line 111) | static void
function GType (line 122) | GType
FILE: src/pathname.h
type Pathname (line 38) | typedef struct _Pathname {
type PathnameClass (line 44) | typedef struct _PathnameClass {
FILE: src/pathnameview.c
function pathnameview_link (line 38) | static void
function pathnameview_refresh (line 50) | static void
function pathnameview_class_init (line 72) | static void
function pathnameview_edit_ok (line 90) | static void
function pathnameview_clicked_cb (line 111) | static void
function pathnameview_init (line 130) | static void
function GtkType (line 158) | GtkType
function View (line 181) | View *
FILE: src/pathnameview.h
type Pathnameview (line 39) | typedef struct _Pathnameview {
type PathnameviewClass (line 46) | typedef struct _PathnameviewClass {
FILE: src/plot.c
function plot_free_columns (line 38) | static void
function plot_finalize (line 53) | static void
function gboolean (line 132) | static gboolean
function View (line 264) | static View *
function plot_edit (line 272) | static void
function xmlNode (line 285) | static xmlNode *
function gboolean (line 304) | static gboolean
function gboolean (line 369) | static gboolean
function plot_reset (line 430) | static void
function gboolean (line 448) | static gboolean
function plot_class_init (line 468) | static void
function plot_init (line 508) | static void
function GtkType (line 534) | GtkType
function GogPlot (line 601) | GogPlot *
function plot_grid_add (line 681) | static void
function plot_set_title (line 703) | static void
function plot_style_main (line 726) | void
function plot_style_thumbnail (line 765) | void
function Imageinfo (line 794) | Imageinfo *
FILE: src/plot.h
type PlotFormat (line 42) | typedef enum {
type PlotStyle (line 49) | typedef enum {
type _Plot (line 61) | struct _Plot {
type PlotClass (line 97) | typedef struct _PlotClass {
FILE: src/plotmodel.c
function plotmodel_dispose (line 38) | static void
function plotmodel_finalize (line 61) | static void
function plotmodel_changed (line 73) | static void
function plotmodel_class_init (line 88) | static void
function plotmodel_init (line 108) | static void
function GType (line 123) | GType
function plotmodel_plot_destroy_cb (line 148) | static void
function plotmodel_plot_changed_cb (line 156) | static void
function plotmodel_link (line 162) | static void
function Plotmodel (line 177) | Plotmodel *
function plotmodel_set_mag (line 187) | void
function plotmodel_set_status (line 210) | void
FILE: src/plotmodel.h
type _Plotmodel (line 39) | struct _Plotmodel {
type PlotmodelClass (line 59) | typedef struct _PlotmodelClass {
FILE: src/plotpresent.c
function plotpresent_mouse_move (line 48) | static void
function plotpresent_destroy (line 55) | static void
function plotpresent_size_request (line 76) | static void
function plotpresent_size_allocate (line 85) | static void
function gboolean (line 96) | static gboolean
function plotpresent_class_init (line 155) | static void
function plotpresent_init (line 185) | static void
function GType (line 212) | GType
function plotpresent_build_plot (line 237) | static void
function plotpresent_changed_cb (line 256) | static void
function plotpresent_link (line 276) | static void
function Plotpresent (line 286) | Plotpresent *
FILE: src/plotpresent.h
type _Plotpresent (line 39) | struct _Plotpresent {
type PlotpresentClass (line 58) | typedef struct _PlotpresentClass {
FILE: src/plotstatus.c
function plotstatus_columns_destroy (line 42) | static void
function plotstatus_destroy (line 55) | static void
function plotstatus_hide_cb (line 76) | static void
function plotstatus_class_init (line 82) | static void
function plotstatus_init (line 104) | static void
function GtkType (line 146) | GtkType
function plotstatus_refresh (line 171) | static void
function plotstatus_changed_cb (line 229) | static void
function Plotstatus (line 235) | Plotstatus *
function plotstatus_series_update (line 249) | static void
function plotstatus_mouse (line 273) | void
FILE: src/plotstatus.h
type _Plotstatus (line 38) | struct _Plotstatus {
type PlotstatusClass (line 52) | typedef struct _PlotstatusClass {
FILE: src/plotview.c
function plotview_destroy (line 41) | static void
function plotview_refresh (line 60) | static void
function plotview_link (line 92) | static void
function plotview_class_init (line 103) | static void
function plotview_tooltip_generate (line 119) | static void
function plotview_doubleclick_one_cb (line 137) | static void
function plotview_doubleclick_two_cb (line 147) | static void
function plotview_init (line 156) | static void
function GtkType (line 198) | GtkType
function View (line 221) | View *
FILE: src/plotview.h
type Plotview (line 38) | typedef struct _Plotview {
type PlotviewClass (line 49) | typedef struct _PlotviewClass {
FILE: src/plotwindow.c
function plotwindow_destroy (line 38) | static void
function plotwindow_class_init (line 59) | static void
function plotwindow_init (line 75) | static void
function GtkType (line 85) | GtkType
function plotwindow_refresh_title (line 108) | static void
function plotwindow_changed_cb (line 135) | static void
function plotwindow_mouse_move_cb (line 150) | static void
function plotwindow_show_status_action_cb (line 157) | static void
function plotwindow_export_done_cb (line 165) | static void
function plotwindow_export_action_cb (line 217) | static void
function plotwindow_build (line 268) | static void
function plotwindow_popdown (line 350) | static void
function plotwindow_link (line 366) | static void
function Plotwindow (line 381) | Plotwindow *
FILE: src/plotwindow.h
type _Plotwindow (line 38) | struct _Plotwindow {
type PlotwindowClass (line 51) | typedef struct _PlotwindowClass {
FILE: src/popupbutton.c
function popupbutton_class_init (line 40) | static void
function popupbutton_init (line 46) | static void
function GType (line 52) | GType
function popupbutton_position_func (line 77) | static void
function popupbutton_over_arrow (line 104) | static void
function popupbutton_toggled_cb (line 116) | static void
function gboolean (line 131) | static gboolean
function Popupbutton (line 155) | Popupbutton *
function popupbutton_menu_unmap_cb (line 176) | static void
function popupbutton_set_menu (line 183) | void
FILE: src/popupbutton.h
type Popupbutton (line 41) | typedef struct _Popupbutton {
type PopupbuttonClass (line 47) | typedef struct _PopupbuttonClass {
FILE: src/predicate.c
function gboolean (line 36) | gboolean
function gboolean (line 62) | gboolean
function gboolean (line 79) | gboolean
function gboolean (line 87) | gboolean
function gboolean (line 100) | gboolean
function gboolean (line 111) | gboolean
function gboolean (line 125) | gboolean
function gboolean (line 137) | gboolean
function gboolean (line 148) | gboolean
function gboolean (line 157) | gboolean
function gboolean (line 166) | gboolean
function gboolean (line 174) | gboolean
function gboolean (line 186) | gboolean
FILE: src/prefcolumnview.c
function prefcolumnview_refresh (line 38) | static void
function prefcolumnview_child_add (line 57) | static void
function prefcolumnview_class_init (line 69) | static void
function prefcolumnview_init (line 87) | static void
function GtkType (line 98) | GtkType
function View (line 121) | View *
FILE: src/prefcolumnview.h
type _Prefcolumnview (line 40) | struct _Prefcolumnview {
type PrefcolumnviewClass (line 48) | typedef struct _PrefcolumnviewClass {
FILE: src/prefs.c
function prefs_destroy (line 38) | static void
function prefs_build (line 70) | static void
function prefs_class_init (line 120) | static void
function prefs_init (line 139) | static void
function GType (line 146) | GType
function prefs_workspace_destroy_cb (line 171) | static void
function prefs_link (line 180) | static void
function gint (line 191) | static gint
function Prefs (line 197) | Prefs *
function gboolean (line 225) | gboolean
FILE: src/prefs.h
type Prefs (line 38) | typedef struct _Prefs {
type PrefsClass (line 53) | typedef struct _PrefsClass {
FILE: src/prefworkspaceview.c
function prefworkspaceview_destroy (line 42) | static void
function prefworkspaceview_child_add (line 63) | static void
function gboolean (line 76) | static gboolean
function prefworkspaceview_class_init (line 89) | static void
function prefworkspaceview_init (line 103) | static void
function GtkType (line 109) | GtkType
function View (line 132) | View *
function prefworkspaceview_set_caption_filter (line 140) | void
FILE: src/prefworkspaceview.h
type _Prefworkspaceview (line 41) | struct _Prefworkspaceview {
type PrefworkspaceviewClass (line 50) | typedef struct _PrefworkspaceviewClass {
FILE: src/preview.c
function preview_destroy (line 42) | static void
function preview_class_init (line 58) | static void
function preview_init (line 70) | static void
function GtkType (line 86) | GtkType
function Preview (line 109) | Preview *
function preview_set_filename_idle (line 117) | static void
type UpdateProxy (line 156) | typedef struct _UpdateProxy {
function gboolean (line 161) | static gboolean
function preview_set_filename (line 180) | void
FILE: src/preview.h
type _Preview (line 39) | struct _Preview {
type PreviewClass (line 46) | typedef struct _PreviewClass {
FILE: src/program.c
function Model (line 52) | static Model *
function program_info (line 67) | static void
function gboolean (line 83) | gboolean
function program_refresh_trim (line 98) | static void
function program_refresh_update (line 114) | static void
function program_title (line 238) | static void
type ProgramRowLookupInfo (line 262) | typedef struct _ProgramRowLookupInfo {
function gboolean (line 270) | static gboolean
function gboolean (line 294) | static gboolean
function gboolean (line 310) | static gboolean
function program_refresh (line 398) | static void
function program_detach (line 411) | static void
function program_find_reset (line 428) | static void
function program_find_destroy_cb (line 437) | static void
function program_find_note (line 443) | static void
function gboolean (line 456) | static gboolean
function gboolean (line 543) | static gboolean
function program_destroy (line 555) | static void
function program_edit_dia_done_cb (line 590) | static void
function program_edit_dia (line 617) | static void
function program_edit_object_cb (line 643) | static void
function gboolean (line 652) | static gboolean
function program_save_object_cb (line 670) | static void
function program_saveas_object_cb (line 685) | static void
function program_remove_object_cb (line 700) | static void
function program_class_init (line 709) | static void
function program_kitgroup_changed (line 740) | static void
function program_kitgroup_destroy (line 750) | static void
function program_init (line 765) | static void
function GtkType (line 799) | GtkType
function program_kit_destroy (line 824) | static void
function gboolean (line 839) | static gboolean
function program_text_cursor_position (line 850) | static void
function program_text_changed (line 897) | static void
function program_set_text (line 906) | static void
function program_set_text_tool (line 932) | static void
function program_tool_destroy (line 975) | static void
function program_select_kit_sub (line 991) | static void
function program_select_kit (line 1012) | static void
function program_select_tool (line 1022) | static void
function gboolean (line 1061) | static gboolean
function program_tool_new_action_cb (line 1116) | static void
function program_toolkit_new_done_cb (line 1130) | static void
function program_toolkit_new_action_cb (line 1170) | static void
function gboolean (line 1190) | static gboolean
function program_separator_new_action_cb (line 1203) | static void
function program_column_item_new_done_cb (line 1217) | static void
function program_column_item_new_action_cb (line 1244) | static void
function program_program_new_action_cb (line 1268) | static void
function program_load_file_cb (line 1294) | static void
function program_open_action_cb (line 1312) | static void
function program_save_action_cb (line 1328) | static void
function program_save_as_action_cb (line 1337) | static void
function program_process_action_cb (line 1346) | static void
function program_reload_menus_cb (line 1353) | static void
function program_reload_action_cb (line 1365) | static void
function program_cut_action_cb (line 1377) | static void
function program_copy (line 1389) | static void
function program_copy_action_cb (line 1400) | static void
function program_paste_action_cb (line 1406) | static void
function program_delete_action_cb (line 1419) | static void
function program_select_all_action_cb (line 1429) | static void
function program_deselect_all_action_cb (line 1435) | static void
function program_remove_tool_action_cb (line 1447) | static void
function program_remove_toolkit_action_cb (line 1460) | static void
function program_find_done_cb (line 1470) | static void
function program_find_action_cb (line 1526) | static void
function program_find_again_action_cb (line 1554) | static void
function program_goto_done_cb (line 1574) | static void
function program_goto_action_cb (line 1614) | static void
function program_info_action_cb (line 1646) | static void
function program_trace_action_cb (line 1658) | static void
function program_errorreport_action_cb (line 1664) | static void
function program_tool_help_action_cb (line 1679) | static void
function program_defbrowser_action_cb (line 1718) | static void
function program_lpane_changed_cb (line 1926) | static void
function program_rpane_changed_cb (line 1931) | static void
function gboolean (line 1943) | gboolean
function program_select_row (line 1963) | static void
function program_row_collapsed_cb (line 1983) | static void
function program_selection_changed_cb (line 2006) | static void
function gboolean (line 2029) | static gboolean
function program_row_inserted_cb (line 2054) | static void
function program_row_deleted_cb (line 2110) | static void
function program_edit_map_cb (line 2148) | static void
function PangoTabArray (line 2191) | static PangoTabArray *
function GtkWidget (line 2207) | GtkWidget *
function program_build (line 2225) | static void
function program_popdown (line 2377) | static void
function program_link (line 2391) | static void
function Program (line 2416) | Program *
FILE: src/program.h
type _Program (line 38) | struct _Program {
type ProgramClass (line 103) | typedef struct _ProgramClass {
FILE: src/progress.c
function progress_begin (line 58) | void
function progress_update (line 82) | static void
function gboolean (line 142) | gboolean
function gboolean (line 172) | gboolean
function gboolean (line 192) | gboolean
function gboolean (line 207) | gboolean
function progress_end (line 217) | void
function progress_class_init (line 245) | static void
function progress_init (line 276) | static void
function GType (line 292) | GType
function Progress (line 317) | static Progress *
function Progress (line 325) | Progress *
FILE: src/progress.h
type Progress (line 46) | typedef struct _Progress {
type ProgressClass (line 74) | typedef struct _ProgressClass {
FILE: src/real.c
function real_class_init (line 38) | static void
function real_init (line 49) | static void
function GType (line 55) | GType
FILE: src/real.h
type Real (line 38) | typedef struct _Real {
type RealClass (line 45) | typedef struct _RealClass {
FILE: src/reduce.c
function reduce_throw (line 80) | void
function gboolean (line 90) | static gboolean
function reduce_error_typecheck (line 128) | void
function reduce_error_toobig (line 145) | static void
function reduce_get_list (line 155) | void
type ReduceMapDict (line 197) | typedef struct _ReduceMapDict {
function reduce_clone_list (line 270) | void
function reduce_get_string (line 310) | int
function reduce_get_lstring (line 351) | int
function gboolean (line 366) | gboolean
function reduce_get_real (line 379) | double
function reduce_get_class (line 396) | void
function Imageinfo (line 411) | Imageinfo *
function reduce_get_realvec (line 447) | int
function reduce_get_imagevec (line 479) | int
function reduce_get_real_size (line 508) | int
function reduce_get_matrix_size (line 545) | void
type GetMatrixInfo (line 568) | typedef struct {
function reduce_get_matrix (line 614) | int
function gboolean (line 636) | gboolean
function gboolean (line 648) | gboolean
function gboolean (line 693) | static gboolean
function gboolean (line 723) | gboolean
function gboolean (line 731) | gboolean
function gboolean (line 739) | gboolean
function gboolean (line 773) | gboolean
function gboolean (line 804) | gboolean
function gboolean (line 820) | gboolean
function gboolean (line 835) | gboolean
function gboolean (line 853) | gboolean
function reduce_list_length_max (line 872) | int
function reduce_list_length (line 918) | int
function reduce_list_index (line 926) | void
function argserror (line 983) | static void
function gboolean (line 1000) | static gboolean
function reduce_spine (line 1082) | void
function reduce_spine_strict (line 1942) | void
function reduce_destroy (line 1968) | void
function reduce_heap_max_fn (line 1979) | static int
function Reduce (line 1987) | Reduce *
function gboolean (line 2019) | gboolean
function reduce_register (line 2033) | void
function reduce_unregister (line 2044) | void
function gboolean (line 2055) | gboolean
function gboolean (line 2120) | gboolean
FILE: src/reduce.h
type _Reduce (line 38) | struct _Reduce {
FILE: src/regionview.c
function regionview_paint_rect (line 103) | void
function regionview_paint_rect_thick (line 113) | void
function regionview_paint_rect_3d (line 129) | static void
function regionview_paint_vtick (line 151) | static void
function regionview_paint_htick (line 159) | static void
function regionview_paint_border (line 169) | static void
function regionview_paint_area (line 223) | static void
function regionview_paint_label (line 235) | static void
function regionview_paint_crosshair (line 267) | static void
function regionview_paint_arrow (line 298) | static void
function regionview_paint_box (line 314) | static void
function regionview_queue_draw (line 428) | static void
function regionview_paint (line 497) | static void
function regionview_detach (line 564) | static void
function regionview_destroy (line 583) | static void
function regionview_label_geo (line 639) | static void
function regionview_refresh_label (line 657) | static void
function regionview_position_label (line 673) | static void
function Rect (line 771) | static Rect *
function regionview_update_from_model (line 792) | static void
function regionview_model_update (line 814) | static void
function regionview_refresh (line 849) | static void
function regionview_edit_cb (line 891) | static void
function regionview_clone_cb (line 897) | static void
function regionview_clear_edited_cb (line 920) | static void
function regionview_remove_yes (line 929) | static void
function regionview_remove_cb (line 941) | static void
function regionview_class_init (line 963) | static void
function regionview_init (line 996) | static void
function GtkType (line 1041) | GtkType
function gboolean (line 1082) | static gboolean
function gboolean (line 1111) | static gboolean
function regionview_expose (line 1191) | static void
function regionview_model_changed_cb (line 1214) | static void
function gboolean (line 1220) | static gboolean
function gboolean (line 1238) | static gboolean
function RegionviewResize (line 1252) | static RegionviewResize
function gint (line 1354) | static gint
function regionview_attach (line 1368) | void
function gint (line 1414) | static gint
function gint (line 1446) | static gint
function regionview_resize_area (line 1466) | static void
function regionview_set_paint_state (line 1662) | static void
function regionview_motion_grab (line 1673) | static void
function gint (line 1825) | static gint
function gint (line 1874) | static gint
function regionview_changed_cb (line 1965) | static void
function regionview_conv_destroy_cb (line 1978) | static void
function gboolean (line 1985) | static gboolean
function regionview_setup (line 2005) | static void
function Regionview (line 2054) | Regionview *
type RegionviewDisplay (line 2072) | typedef struct {
function regionview_set_type (line 2088) | void
FILE: src/regionview.h
type RegionviewState (line 42) | typedef enum {
type RegionviewType (line 50) | typedef enum {
type RegionviewResize (line 63) | typedef enum {
type _Regionview (line 78) | struct _Regionview {
type RegionviewClass (line 133) | typedef struct _RegionviewClass {
FILE: src/rhs.c
function rhs_child_add (line 41) | static void
function rhs_child_remove (line 62) | static void
function rhs_parent_add (line 77) | static void
function View (line 85) | static View *
function gboolean (line 91) | static gboolean
function xmlNode (line 113) | static xmlNode *
type RhsGraphic (line 132) | typedef struct {
function gboolean (line 164) | static gboolean
function rhs_set_vislevel (line 264) | void
function rhs_vislevel_up (line 324) | void
function rhs_vislevel_down (line 330) | void
function rhs_class_init (line 348) | static void
function rhs_init (line 378) | static void
function GType (line 395) | GType
function Rhs (line 420) | Rhs *
function gboolean (line 449) | gboolean
FILE: src/rhs.h
type RhsFlags (line 45) | typedef enum {
type _Rhs (line 51) | struct _Rhs {
type RhsClass (line 62) | typedef struct _RhsClass {
FILE: src/rhsview.c
function rhsview_reset (line 41) | static void
function rhsview_refresh (line 55) | static void
function rhsview_link (line 111) | static void
function rhsview_child_add (line 128) | static void
function rhsview_child_remove (line 153) | static void
function rhsview_class_init (line 168) | static void
function rhsview_init (line 189) | static void
function GtkType (line 209) | GtkType
function View (line 232) | View *
FILE: src/rhsview.h
type _Rhsview (line 39) | struct _Rhsview {
type RhsviewClass (line 52) | typedef struct _RhsviewClass {
FILE: src/row.c
function Row (line 92) | static Row *
function row_qualified_name_relative (line 102) | void
function row_qualified_name (line 125) | void
function row_error_set (line 255) | void
function row_error_clear (line 304) | void
function row_dispose (line 374) | static void
function row_info (line 477) | static void
function Rhs (line 536) | static Rhs *
function row_child_add (line 544) | static void
function Subcolumn (line 556) | static Subcolumn *
function Column (line 562) | static Column *
function Row (line 576) | static Row *
function Workspace (line 587) | Workspace *
function row_parent_add (line 598) | static void
function row_parent_remove (line 615) | static void
function View (line 632) | static View *
function row_scrollto (line 638) | static void
function gboolean (line 657) | static gboolean
function gboolean (line 718) | static gboolean
function xmlNode (line 738) | static xmlNode *
function gboolean (line 822) | static gboolean
function row_class_init (line 938) | static void
function row_init (line 976) | static void
function GType (line 1012) | GType
function row_link_symbol (line 1040) | void
function Row (line 1069) | Row *
function row_recomp_depth (line 1332) | static int
function row_recomp_sort_func (line 1343) | static int
function GSList (line 1422) | static GSList *
function row_recomp_sort (line 1457) | static void
function gboolean (line 1494) | static gboolean
function gboolean (line 1550) | static gboolean
function row_recomp_all (line 1607) | static void
function row_recomp (line 1649) | void
function row_select2 (line 1821) | static void
function row_select_modifier (line 1920) | void
function row_set_show (line 1931) | static void
function row_show_dependents (line 1958) | void
function row_hide_dependents (line 1979) | void
function row_set_status (line 2002) | void
function Row (line 2039) | static Row *
function Row (line 2078) | Row *
FILE: src/row.h
type RowShowState (line 44) | typedef enum {
type _Row (line 50) | struct _Row {
type RowClass (line 82) | typedef struct _RowClass {
FILE: src/rowview.c
function rowview_destroy (line 51) | static void
function rowview_attach (line 79) | static void
function rowview_update_widgets (line 96) | static void
function rowview_reset (line 185) | static void
function rowview_refresh (line 195) | static void
function rowview_single_cb (line 207) | static void
function gboolean (line 217) | static gboolean
function rowview_double_cb (line 231) | static void
function rowview_edit_cb (line 240) | static void
function gboolean (line 249) | static gboolean
function rowview_header_cb (line 263) | static void
function rowview_clone_cb (line 272) | static void
function rowview_ungroup_cb (line 299) | static void
function rowview_save_cb (line 313) | static void
function rowview_replace_cb (line 327) | static void
function rowview_recalc_cb (line 341) | static void
function rowview_clear_edited_cb (line 365) | static void
function rowview_remove_cb (line 377) | static void
function rowview_spin_up_cb (line 390) | static void
function rowview_spin_down_cb (line 401) | static void
function rowview_scrollto (line 414) | static void
function rowview_drag (line 429) | static void
function rowview_drag_data_get (line 454) | static void
function rowview_drag_data_received (line 468) | static void
function guint (line 489) | guint
function rowview_link (line 495) | static void
function rowview_child_add (line 526) | static void
function rowview_child_remove (line 539) | static void
function rowview_class_init (line 552) | static void
function rowview_enter_cb (line 602) | static void
function rowview_leave_cb (line 611) | static void
function gboolean (line 619) | static gboolean
function rowview_tooltip_generate (line 627) | static void
function rowview_init (line 636) | static void
function GtkType (line 682) | GtkType
function View (line 705) | View *
function rowview_get_position (line 715) | void
function rowview_set_visible (line 760) | void
function gboolean (line 769) | gboolean
FILE: src/rowview.h
type _Rowview (line 39) | struct _Rowview {
type RowviewClass (line 57) | typedef struct _RowviewClass {
FILE: src/secret.c
function secret_build (line 301) | void
FILE: src/slider.c
function View (line 38) | static View *
function slider_class_init (line 61) | static void
function slider_init (line 84) | static void
function GType (line 99) | GType
FILE: src/slider.h
type Slider (line 42) | typedef struct _Slider {
type SliderClass (line 48) | typedef struct _SliderClass {
FILE: src/sliderview.c
function sliderview_refresh (line 38) | static void
function sliderview_link (line 111) | static void
function sliderview_class_init (line 123) | static void
function sliderview_change_cb (line 144) | static void
function sliderview_init (line 161) | static void
function GtkType (line 195) | GtkType
function View (line 218) | View *
FILE: src/sliderview.h
type Sliderview (line 38) | typedef struct _Sliderview {
type SliderviewClass (line 47) | typedef struct _SliderviewClass {
FILE: src/spin.c
function spin_real_up_click (line 55) | static void
function spin_real_down_click (line 63) | static void
function spin_class_init (line 71) | static void
type SpinEvent (line 99) | typedef struct {
function allocation2rect (line 105) | static void
function spin_button_press_event_test (line 114) | static void
function gboolean (line 140) | static gboolean
function gboolean (line 166) | static gboolean
function gboolean (line 178) | static gboolean
function spin_init (line 190) | static void
function GtkType (line 220) | GtkType
function GtkWidget (line 243) | GtkWidget *
FILE: src/spin.h
type Spin (line 37) | typedef struct _Spin {
type SpinClass (line 46) | typedef struct _SpinClass {
FILE: src/statusview.c
function statusviewband_destroy (line 55) | static void
function statusview_destroy (line 63) | static void
function statusview_hide_cb (line 84) | static void
function statusview_class_init (line 91) | static void
function statusview_init (line 113) | static void
function GtkType (line 156) | GtkType
function statusview_changed_cb (line 182) | static void
function statusview_link (line 282) | static void
function Statusview (line 290) | Statusview *
function statusview_mouse_LABPACK (line 302) | static void
function statusview_mouse_RAD (line 338) | static void
function statusview_mouse (line 446) | void
FILE: src/statusview.h
type StatusviewBand (line 40) | typedef struct _StatusviewBand {
type _Statusview (line 46) | struct _Statusview {
type StatusviewClass (line 61) | typedef struct _StatusviewClass {
FILE: src/string.c
function string_finalize (line 38) | static void
function View (line 57) | static View *
function string_class_init (line 74) | static void
function string_init (line 97) | static void
function GType (line 106) | GType
FILE: src/stringview.c
function stringview_refresh (line 74) | static void
function stringview_class_init (line 100) | static void
function stringview_init (line 118) | static void
function GtkType (line 123) | GtkType
function View (line 146) | View *
FILE: src/stringview.h
type Stringview (line 38) | typedef struct _Stringview {
type StringviewClass (line 43) | typedef struct _StringviewClass {
FILE: src/subcolumn.c
function gboolean (line 38) | static gboolean
function gboolean (line 46) | static gboolean
function gboolean (line 64) | static gboolean
function gboolean (line 73) | static gboolean
function subcolumn_dispose (line 105) | static void
type ClassRefreshInfo (line 135) | typedef struct {
function subcolumn_class_new_heap_sub (line 165) | static void
function gboolean (line 221) | static gboolean
function subcolumn_child_add (line 384) | static void
function subcolumn_child_remove (line 407) | static void
function Column (line 423) | static Column *
function Subcolumn (line 433) | static Subcolumn *
function Column (line 451) | static Column *
function Subcolumn (line 464) | static Subcolumn *
function subcolumn_parent_add (line 479) | static void
function View (line 517) | static View *
function subcolumn_display (line 523) | static void
function gboolean (line 535) | static gboolean
function xmlNode (line 552) | static xmlNode *
function subcolumn_class_init (line 568) | static void
function subcolumn_init (line 601) | static void
function GType (line 623) | GType
function subcolumn_link (line 648) | static void
function Subcolumn (line 663) | Subcolumn *
function subcolumn_set_vislevel (line 674) | void
function gboolean (line 688) | gboolean
FILE: src/subcolumn.h
type gboolean (line 44) | typedef gboolean (*RowPred)( Row * );
type SubcolumnVisibility (line 48) | typedef struct {
type _Subcolumn (line 53) | struct _Subcolumn {
type SubcolumnClass (line 76) | typedef struct _SubcolumnClass {
FILE: src/subcolumnview.c
function subcolumnview_destroy (line 46) | static void
function subcolumnview_link (line 72) | static void
function subcolumnview_refresh (line 122) | static void
function subcolumnview_class_init (line 185) | static void
function subcolumnview_init (line 206) | static void
function GtkType (line 225) | GtkType
function View (line 248) | View *
FILE: src/subcolumnview.h
type _Subcolumnview (line 39) | struct _Subcolumnview {
type SubcolumnviewClass (line 55) | typedef struct _SubcolumnviewClass {
FILE: src/symbol.c
function Symbol (line 84) | Symbol *
function Symbol (line 107) | Symbol *
function Workspace (line 118) | Workspace *
function Tool (line 129) | Tool *
function Symbol (line 144) | Symbol *
function symbol_qualified_name (line 158) | void
function symbol_qualified_name_relative (line 174) | void
function symbol_name_scope_print (line 250) | void
function symbol_new_value (line 256) | void
function symbol_clear (line 274) | static void
function Symbol (line 310) | Symbol *
function gboolean (line 331) | static gboolean
function symbol_leaf_set_sanity (line 372) | void
function symbol_made (line 454) | void
function symbol_not_defined (line 496) | void
function symbol_dispose (line 529) | static void
function symbol_changed (line 601) | static void
function symbol_real_new_value (line 614) | static void
function symbol_class_init (line 619) | static void
function symbol_init (line 642) | static void
function GtkType (line 652) | GtkType
function Symbol (line 681) | Symbol *
function gboolean (line 714) | gboolean
function symbol_error_redefine (line 749) | void
function Symbol (line 775) | Symbol *
function Symbol (line 832) | Symbol *
function gboolean (line 859) | gboolean
function gboolean (line 878) | gboolean
function gboolean (line 895) | gboolean
function Symbol (line 908) | static Symbol *
function gboolean (line 920) | gboolean
function symbol_set_leaf (line 928) | static void
function symbol_state_change (line 964) | void
function gboolean (line 976) | static gboolean
function symbol_note_calc_name (line 1025) | static void
function gboolean (line 1128) | static gboolean
function gboolean (line 1173) | static gboolean
function symbol_recalculate_all_force (line 1224) | void
function symbol_recalculate_all (line 1263) | void
function gboolean (line 1277) | gboolean
FILE: src/symbol.h
type SymbolType (line 44) | typedef enum {
type _Symbol (line 57) | struct _Symbol {
type SymbolClass (line 121) | typedef struct _SymbolClass {
FILE: src/toggle.c
function View (line 38) | static View *
function toggle_class_init (line 55) | static void
function toggle_init (line 78) | static void
function GType (line 86) | GType
FILE: src/toggle.h
type Toggle (line 42) | typedef struct _Toggle {
type ToggleClass (line 50) | typedef struct _ToggleClass {
FILE: src/toggleview.c
function toggleview_change_cb (line 40) | static void
function toggleview_refresh (line 54) | static void
function toggleview_class_init (line 68) | static void
function toggleview_init (line 83) | static void
function GtkType (line 94) | GtkType
function View (line 117) | View *
FILE: src/toggleview.h
type Toggleview (line 38) | typedef struct _Toggleview {
type ToggleviewClass (line 46) | typedef struct _ToggleviewClass {
FILE: src/tool.c
function tool_error (line 45) | void
function tool_finalize (line 107) | static void
function tool_dispose (line 131) | static void
function View (line 173) | static View *
function gboolean (line 181) | static gboolean
function tool_info (line 230) | static void
function tool_parent_add (line 248) | static void
function tool_class_init (line 259) | static void
function tool_init (line 285) | static void
function GType (line 294) | GType
function tool_link (line 321) | static void
function Toolitem (line 364) | static Toolitem *
function toolitem_set_name (line 403) | static void
function toolitem_set_tooltip (line 456) | static void
function toolitem_set_pullright (line 474) | static void
function toolitem_set_action (line 494) | static void
function toolitem_set_path (line 531) | static void
function toolitem_set_user_path (line 546) | static void
function toolitem_set_help (line 569) | static void
function Toolitem (line 591) | static Toolitem *
function Toolitem (line 642) | static Toolitem *
function toolitem_print (line 703) | static void
function tool_toolitem_rebuild (line 728) | static void
function tool_new_value_cb (line 767) | static void
function tool_set_help (line 779) | static void
function Tool (line 828) | Tool *
function Tool (line 876) | Tool *
function Tool (line 895) | static Tool *
function Tool (line 904) | Tool *
function Toolitem (line 940) | static Toolitem *
function Toolitem (line 950) | static Toolitem *
function Toolitem (line 959) | static Toolitem *
function Toolitem (line 970) | Toolitem *
FILE: src/tool.h
type _Toolitem (line 32) | struct _Toolitem {
type Tooltype (line 92) | typedef enum {
type _Tool (line 100) | struct _Tool {
type ToolClass (line 120) | typedef struct _ToolClass {
FILE: src/toolkit.c
function Tool (line 38) | Tool *
function toolkit_changed (line 45) | static void
function toolkit_info (line 57) | static void
function View (line 67) | static View *
function gboolean (line 73) | static gboolean
function gboolean (line 85) | static gboolean
function toolkit_class_init (line 110) | static void
function toolkit_init (line 134) | static void
function GType (line 141) | GType
function toolkit_link (line 166) | static void
function Toolkit (line 180) | Toolkit *
function Toolkit (line 187) | Toolkit *
function Toolkit (line 209) | Toolkit *
function Toolkit (line 224) | Toolkit *
function Toolkit (line 246) | Toolkit *
function Toolkit (line 268) | Toolkit *
FILE: src/toolkit.h
type _Toolkit (line 45) | struct _Toolkit {
type ToolkitClass (line 56) | typedef struct _ToolkitClass {
FILE: src/toolkitbrowser.c
function toolkitbrowser_destroy (line 48) | static void
function toolkitbrowser_refresh (line 120) | static void
function toolkitbrowser_link (line 137) | static void
function toolkitbrowser_class_init (line 150) | static void
function toolkitbrowser_entry_changed_cb (line 164) | static void
function gboolean (line 172) | static gboolean
function gboolean (line 182) | static gboolean
function Toolitem (line 198) | static Toolitem *
function gboolean (line 217) | static gboolean
function toolkitbrowser_row_activated_cb (line 232) | static void
function toolkitbrowser_init (line 242) | static void
function GtkType (line 318) | GtkType
function Toolkitbrowser (line 341) | Toolkitbrowser *
function toolkitbrowser_get_width (line 351) | int
function toolkitbrowser_set_workspace (line 360) | void
FILE: src/toolkitbrowser.h
type _Toolkitbrowser (line 41) | struct _Toolkitbrowser {
type ToolkitbrowserClass (line 54) | typedef struct _ToolkitbrowserClass {
FILE: src/toolkitgroup.c
function Toolkit (line 38) | Toolkit *
function toolkitgroup_changed (line 45) | static void
function View (line 56) | static View *
function toolkitgroup_class_init (line 62) | static void
function toolkitgroup_init (line 80) | static void
function GType (line 85) | GType
function toolkitgroup_link (line 110) | static void
function Toolkitgroup (line 124) | Toolkitgroup *
function gint (line 138) | static gint
function toolkitgroup_sort (line 149) | void
FILE: src/toolkitgroup.h
type _Toolkitgroup (line 46) | struct _Toolkitgroup {
type ToolkitgroupClass (line 56) | typedef struct _ToolkitgroupClass {
FILE: src/toolkitgroupview.c
function toolkitgroupview_dispose (line 46) | static void
function toolkitgroupview_refresh (line 62) | static void
function toolkitgroupview_class_init (line 80) | static void
function toolkitgroupview_init (line 98) | static void
function GtkType (line 103) | GtkType
function View (line 126) | View *
function toolkitgroupview_set_mainw (line 134) | void
FILE: src/toolkitgroupview.h
type _Toolkitgroupview (line 41) | struct _Toolkitgroupview {
type ToolkitgroupviewClass (line 48) | typedef struct _ToolkitgroupviewClass {
FILE: src/toolkitview.c
function toolkitview_destroy (line 43) | static void
function toolkitview_finalize (line 65) | static void
function toolkitview_destroy_cb (line 77) | static void
function toolkitview_refresh (line 91) | static void
function toolkitview_link (line 144) | static void
function toolkitview_class_init (line 160) | static void
function toolkitview_init (line 183) | static void
function GtkType (line 191) | GtkType
function View (line 214) | View *
FILE: src/toolkitview.h
type _Toolkitview (line 39) | struct _Toolkitview {
type ToolkitviewClass (line 49) | typedef struct _ToolkitviewClass {
FILE: src/toolview.c
function Mainw (line 42) | static Mainw *
function Workspace (line 52) | static Workspace *
function Workspace (line 63) | static Workspace *
function toolview_destroy (line 75) | static void
function toolview_finalize (line 94) | static void
function toolview_activate_cb (line 104) | static void
function toolview_select_cb (line 131) | static void
function GtkWidget (line 143) | static GtkWidget *
function toolview_destroy_cb (line 217) | void
function toolview_refresh (line 227) | static void
function toolview_link (line 257) | static void
function toolview_class_init (line 273) | static void
function toolview_init (line 296) | static void
function GtkType (line 302) | GtkType
function View (line 325) | View *
FILE: src/toolview.h
type _Toolview (line 40) | struct _Toolview {
type ToolviewClass (line 48) | typedef struct _ToolviewClass {
FILE: src/trace.c
type TraceTypeMenu (line 57) | typedef struct _TraceTypeMenu {
function TraceFlags (line 71) | static TraceFlags
function trace_block (line 89) | void
function trace_unblock (line 95) | void
function trace_reset (line 103) | void
function trace_check (line 114) | void
function VipsBuf (line 120) | VipsBuf *
function trace_pop (line 141) | void
function VipsBuf (line 156) | VipsBuf *
function trace_get_mark (line 164) | int
function trace_pop_to (line 170) | void
function trace_global_rethink (line 189) | static void
function trace_destroy (line 197) | static void
function trace_view_action_cb (line 217) | static void
function trace_class_init (line 284) | static void
function trace_init (line 303) | static void
function GtkType (line 309) | GtkType
function trace_link (line 332) | static void
function Trace (line 345) | Trace *
function trace_text (line 364) | void
function trace_pelement (line 381) | void
function trace_node (line 390) | void
function trace_args (line 401) | void
function trace_binop (line 418) | void
function trace_uop (line 432) | void
function trace_result (line 442) | void
FILE: src/trace.h
type TraceFlags (line 40) | typedef enum {
type _Trace (line 47) | struct _Trace {
type TraceClass (line 53) | typedef struct _TraceClass {
FILE: src/tree.c
function tree_const_destroy (line 34) | void
function tree_const_copy (line 42) | void
function ParseNode (line 91) | static ParseNode *
function ParseNode (line 117) | ParseNode *
function ParseNode (line 132) | ParseNode *
function ParseNode (line 146) | ParseNode *
function ParseNode (line 161) | ParseNode *
function ParseNode (line 173) | ParseNode *
function ParseNode (line 216) | ParseNode *
function ParseNode (line 229) | ParseNode *
function ParseNode (line 241) | ParseNode *
function ParseNode (line 261) | ParseNode *
function ParseNode (line 287) | ParseNode *
function ParseNode (line 304) | ParseNode *
function ParseNode (line 316) | ParseNode *
function ParseNode (line 328) | ParseNode *
function ParseNode (line 340) | ParseNode *
function ParseNode (line 353) | ParseNode *
function ParseNode (line 365) | ParseNode *
function ParseNode (line 377) | ParseNode *
function ParseNode (line 440) | ParseNode *
FILE: src/tree.h
type NodeTypes (line 32) | typedef enum {
type BinOp (line 54) | typedef enum {
type UnOp (line 91) | typedef enum {
type ParseConstTypes (line 112) | typedef enum {
type _ParseConst (line 124) | struct _ParseConst {
type _ParseNode (line 136) | struct _ParseNode {
type ParseNode (line 201) | typedef ParseNode *(*tree_map_fn)( Compile *, ParseNode *, void *, void ...
FILE: src/tslider.c
function tslider_destroy (line 55) | static void
function tslider_value_to_slider (line 82) | static double
function tslider_slider_to_value (line 107) | static double
function tslider_real_changed (line 132) | static void
function tslider_class_init (line 184) | static void
function tslider_changed (line 235) | void
function tslider_activate (line 247) | static void
function tslider_slider_changed (line 259) | static void
function tslider_text_changed (line 272) | static void
function tslider_value_activate_cb (line 284) | static void
function tslider_value_changed_cb (line 306) | static void
function tslider_text_changed_cb (line 329) | static void
function tslider_conversion_id (line 341) | static double
function gboolean (line 347) | static gboolean
function tslider_init (line 363) | static void
function GtkType (line 419) | GtkType
function Tslider (line 442) | Tslider *
function tslider_set_conversions (line 450) | void
function tslider_log_value_to_slider (line 460) | double
function tslider_log_slider_to_value (line 476) | double
function tslider_set_ignore_scroll (line 492) | void
FILE: src/tslider.h
type Tslider (line 40) | typedef struct _Tslider {
type TsliderClass (line 75) | typedef struct _TsliderClass {
FILE: src/util.c
function error (line 61) | void
function error_block (line 89) | void
function error_unblock (line 95) | void
function error_set (line 105) | static void
function error_clear_nip (line 126) | void
function error_clear (line 139) | void
function error_top (line 148) | void
function error_sub (line 164) | void
function error_vips (line 176) | void
function error_vips_all (line 188) | void
function gboolean (line 200) | gboolean
function gboolean (line 223) | gboolean
function gboolean (line 234) | gboolean
function gboolean (line 243) | gboolean
function gboolean (line 268) | gboolean
function gboolean (line 281) | gboolean
function gboolean (line 300) | gboolean
function gboolean (line 314) | gboolean
function gboolean (line 328) | gboolean
function gboolean (line 341) | gboolean
function gboolean (line 354) | gboolean
function gboolean (line 370) | gboolean
function gboolean (line 395) | gboolean
function xmlNode (line 419) | xmlNode *
function Rect (line 435) | Rect *
function gboolean (line 461) | gboolean
function slist_free_all_cb (line 658) | static void
function slist_free_all (line 666) | void
function GSList (line 675) | GSList *
function Queue (line 706) | Queue *
function queue_add (line 739) | void
function gboolean (line 760) | gboolean
function queue_length (line 778) | int
function vips_buf_appendi (line 786) | void
function gboolean (line 812) | gboolean
function gboolean (line 831) | gboolean
function gboolean (line 845) | gboolean
function gboolean (line 859) | gboolean
function gboolean (line 877) | gboolean
function instr (line 1028) | static int
function change_suffix (line 1092) | void
function get_image_info (line 1285) | void
function gboolean (line 1326) | static gboolean
function gboolean (line 1335) | static gboolean
function expand_variables (line 1408) | void
function swap_chars (line 1433) | static void
function nativeize_path (line 1446) | void
function swap_string (line 1468) | static void
function canonicalize_path (line 1486) | void
function absoluteize_path (line 1535) | void
function calli_string (line 1630) | int
function calli_stringva (line 1640) | int
function calli_stringf (line 1651) | int
function calli_string_filename (line 1666) | int
function calli_string_filenameva (line 1679) | int
function calli_string_filenamef (line 1690) | int
function setenvf (line 1716) | void
function check (line 1729) | int
function gboolean (line 1739) | gboolean
function isdir_sub (line 1753) | int
function gboolean (line 1768) | gboolean
type stat (line 1786) | struct stat
function time_t (line 1799) | time_t
function gboolean (line 1814) | gboolean
function systemf (line 1831) | int
function gboolean (line 1845) | gboolean
function unlinkf (line 1862) | int
function gboolean (line 1878) | gboolean
function gboolean (line 1902) | gboolean
function ifile_close (line 1928) | void
function iOpenFile (line 1939) | static iOpenFile *
function iOpenFile (line 1963) | iOpenFile *
function iOpenFile (line 2001) | iOpenFile *
function iOpenFile (line 2021) | iOpenFile *
function gboolean (line 2056) | gboolean
function gboolean (line 2077) | gboolean
function ifile_getc (line 2149) | int
function off_t (line 2164) | off_t
function directory_size (line 2193) | double
function number_to_string (line 2340) | void
function find_space (line 2357) | double
function find_space (line 2374) | double
function find_space (line 2389) | double
function find_space (line 2413) | double
function gboolean (line 2422) | gboolean
function findmaxmin (line 2460) | int
function gboolean (line 2488) | gboolean
function increment_name (line 2514) | void
function increment_filename (line 2539) | void
function extract_first_line (line 2581) | int
function name_from_filename (line 2605) | void
function util_check_all_destroyed (line 2634) | void
function GSList (line 2667) | GSList *
function GSList (line 2701) | GSList *
function recent_free (line 2729) | void
function recent_save (line 2759) | void
function array_len (line 2826) | int
FILE: src/util.h
type gpointer (line 102) | typedef gpointer (*SListMapFn)( gpointer, gpointer );
type gpointer (line 103) | typedef gpointer (*SListMap2Fn)( gpointer, gpointer, gpointer );
type gpointer (line 104) | typedef gpointer (*SListMap3Fn)( gpointer, gpointer, gpointer, gpointer );
type gpointer (line 105) | typedef gpointer (*SListMap4Fn)( gpointer, gpointer, gpointer, gpointer,
type gpointer (line 107) | typedef gpointer (*SListMap5Fn)( gpointer, gpointer, gpointer, gpointer,
type gpointer (line 109) | typedef gpointer (*SListFoldFn)( gpointer, gpointer, gpointer );
type gpointer (line 110) | typedef gpointer (*SListFold2Fn)( gpointer, gpointer, gpointer, gpointer );
type Queue (line 138) | typedef struct _Queue {
type iOpenFile (line 257) | typedef struct _iOpenFile {
FILE: src/value.c
function value_finalize (line 38) | static void
function View (line 77) | static View *
function value_class_init (line 83) | static void
function value_init (line 102) | static void
function GType (line 108) | GType
FILE: src/value.h
type Value (line 42) | typedef struct _Value {
type ValueClass (line 50) | typedef struct _ValueClass {
FILE: src/valueview.c
function valueview_refresh (line 38) | static void
function valueview_link (line 55) | static void
function valueview_class_init (line 66) | static void
function gboolean (line 84) | static gboolean
function valueview_init (line 116) | static void
function GtkType (line 139) | GtkType
function View (line 162) | View *
FILE: src/valueview.h
type Valueview (line 39) | typedef struct _Valueview {
type ValueviewClass (line 46) | typedef struct _ValueviewClass {
FILE: src/vector.c
function vector_class_init (line 38) | static void
function vector_init (line 48) | static void
function GType (line 54) | GType
FILE: src/vector.h
type Vector (line 38) | typedef struct _Vector {
type VectorClass (line 43) | typedef struct _VectorClass {
FILE: src/view.c
function view_scannable_register (line 47) | void
function view_scannable_unregister (line 60) | void
function gboolean (line 69) | gboolean
function view_resettable_register (line 80) | void
function view_resettable_unregister (line 93) | void
function view_reset_all (line 102) | void
function gboolean (line 111) | static gboolean
function view_viewchild_changed (line 128) | static void
function ViewChild (line 157) | static ViewChild *
function gboolean (line 227) | gboolean
function view_link (line 244) | void
function view_child_add (line 252) | void
function view_child_remove (line 260) | void
function view_child_position (line 270) | void
function view_child_front (line 280) | void
function view_unlink (line 291) | void
function view_destroy (line 309) | static void
function view_finalize (line 344) | static void
function view_model_pos_changed (line 356) | static void
function view_model_scrollto (line 374) | static void
function view_model_layout (line 389) | static void
function view_model_reset (line 404) | static void
function view_model_front (line 419) | static void
function view_model_child_add (line 436) | static void
function view_model_child_remove (line 463) | static void
function view_model_child_detach (line 493) | static void
function view_model_child_attach (line 529) | static void
function view_real_link (line 560) | static void
function view_real_child_add (line 602) | static void
function view_real_child_remove (line 637) | static void
function view_real_child_position (line 662) | static void
function view_real_child_front (line 667) | static void
function view_real_reset (line 672) | static void
function view_class_init (line 700) | static void
function view_init (line 730) | static void
function GtkType (line 751) | GtkType
function view_save_as_cb (line 858) | void
function view_save_cb (line 870) | void
function view_close_cb (line 882) | void
function view_activate_cb (line 896) | void
function view_changed_cb (line 905) | void
function view_not_implemented_cb (line 913) | void
function GtkWidget (line 920) | GtkWidget *
function Columnview (line 929) | Columnview *
FILE: src/view.h
type ViewChild (line 43) | typedef struct {
type _View (line 50) | struct _View {
type ViewClass (line 72) | typedef struct _ViewClass {
FILE: src/vipsobject.c
type Vo (line 42) | typedef struct _Vo {
function vo_free (line 68) | static void
function Vo (line 77) | static Vo *
function vo_set_property (line 119) | static int
function gboolean (line 212) | static gboolean
function gboolean (line 224) | static gboolean
function vo_object_new (line 258) | void
function gboolean (line 377) | static gboolean
function vo_call (line 390) | void
FILE: src/vobject.c
function vobject_refresh_dequeue (line 49) | static void
function gboolean (line 66) | static gboolean
function gboolean (line 112) | static gboolean
function vobject_iobject_changed (line 173) | static void
function vobject_iobject_destroy (line 188) | static void
function vobject_link (line 201) | void
function vobject_destroy (line 216) | static void
function vobject_finalize (line 240) | static void
function vobject_real_refresh (line 250) | static void
function vobject_real_link (line 259) | static void
function vobject_class_init (line 270) | static void
function vobject_init (line 295) | static void
function GtkType (line 311) | GtkType
FILE: src/vobject.h
type _vObject (line 41) | struct _vObject {
type vObjectClass (line 53) | typedef struct _vObjectClass {
FILE: src/watch.c
function watchgroup_changed (line 47) | static void
function watchgroup_class_init (line 54) | static void
function watchgroup_init (line 69) | static void
function GType (line 79) | GType
function Watchgroup (line 104) | Watchgroup *
function Workspace (line 122) | static Workspace *
function watchgroup_save (line 142) | static void
function gboolean (line 165) | static gboolean
function watchgroup_dirty (line 175) | void
function watchgroup_flush (line 195) | void
function watch_finalize (line 210) | static void
function watch_dispose (line 229) | static void
function watch_changed (line 252) | static void
function watch_class_init (line 268) | static void
function watch_init (line 286) | static void
function GType (line 297) | GType
function watch_link (line 322) | static void
function watch_destroy_cb (line 330) | static void
function watch_changed_cb (line 345) | static void
function watch_attach (line 360) | static void
function Watch (line 386) | Watch *
function gboolean (line 393) | static gboolean
function watch_relink_all (line 428) | void
function watch_vset (line 434) | void
function watch_set (line 471) | void
function gboolean (line 483) | static gboolean
function watch_double_class_init (line 513) | static void
function watch_double_init (line 524) | static void
function GType (line 534) | GType
function Watch (line 559) | static Watch *
function watch_double_get (line 570) | double
function gboolean (line 592) | static gboolean
function watch_int_class_init (line 629) | static void
function watch_int_init (line 640) | static void
function GType (line 650) | GType
function Watch (line 675) | static Watch *
function watch_int_get (line 685) | int
function watch_path_finalize (line 708) | static void
function gboolean (line 729) | static gboolean
function watch_path_class_init (line 757) | static void
function watch_path_init (line 771) | static void
function GType (line 781) | GType
function Watch (line 806) | static Watch *
function GSList (line 817) | GSList *
function gboolean (line 839) | static gboolean
function watch_bool_class_init (line 869) | static void
function watch_bool_init (line 880) | static void
function GType (line 890) | GType
function Watch (line 915) | static Watch *
function gboolean (line 926) | gboolean
function watch_string_finalize (line 948) | static void
function gboolean (line 969) | static gboolean
function watch_string_class_init (line 996) | static void
function watch_string_init (line 1010) | static void
function GType (line 1020) | GType
function Watch (line 1045) | static Watch *
FILE: src/watch.h
type Watchgroup (line 45) | typedef struct _Watchgroup {
type WatchgroupClass (line 62) | typedef struct _WatchgroupClass {
type _Watch (line 94) | struct _Watch {
type WatchClass (line 104) | typedef struct _WatchClass {
type WatchInt (line 126) | typedef struct _WatchInt WatchInt;
type _WatchInt (line 140) | struct _WatchInt {
type WatchIntClass (line 146) | typedef struct _WatchIntClass {
type WatchDouble (line 157) | typedef struct _WatchDouble WatchDouble;
type _WatchDouble (line 172) | struct _WatchDouble {
type WatchDoubleClass (line 178) | typedef struct _WatchDoubleClass {
type WatchPath (line 189) | typedef struct _WatchPath WatchPath;
type _WatchPath (line 203) | struct _WatchPath {
type WatchPathClass (line 209) | typedef struct _WatchPathClass {
type WatchBool (line 217) | typedef struct _WatchBool WatchBool;
type _WatchBool (line 231) | struct _WatchBool {
type WatchBoolClass (line 237) | typedef struct _WatchBoolClass {
type WatchString (line 245) | typedef struct _WatchString WatchString;
type _WatchString (line 260) | struct _WatchString {
type WatchStringClass (line 266) | typedef struct _WatchStringClass {
FILE: src/workspace.c
function workspace_set_needs_layout (line 43) | void
function GSList (line 70) | GSList *
function Workspacegroup (line 76) | Workspacegroup *
function Workspaceroot (line 87) | Workspaceroot *
function workspace_set_modified (line 93) | void
function gboolean (line 147) | gboolean
function gboolean (line 180) | gboolean
function workspace_selected_num (line 188) | int
function gboolean (line 205) | gboolean
function Row (line 214) | Row *
function workspace_deselect_all (line 243) | void
type NamesInfo (line 254) | typedef struct {
function workspace_selected_names (line 295) | void
function workspace_column_names (line 308) | void
function workspace_select_all (line 323) | void
function Column (line 332) | Column *
function Column (line 350) | Column *
function Column (line 364) | Column *
function workspace_column_name_new (line 381) | void
function Column (line 389) | Column *
function workspace_column_select (line 400) | void
function Column (line 409) | Column *
function Column (line 434) | Column *
function Symbol (line 460) | static Symbol *
function Symbol (line 476) | Symbol *
function Symbol (line 534) | Symbol *
function gboolean (line 566) | gboolean
function Symbol (line 586) | Symbol *
function workspace_dispose (line 602) | static void
function workspace_finalize (line 627) | static void
function workspace_changed (line 650) | static void
function workspace_child_add (line 675) | static void
function workspace_child_remove (line 687) | static void
function workspace_current (line 697) | static void
function workspace_link (line 712) | static void
function WorkspaceMode (line 756) | static WorkspaceMode
function View (line 769) | static View *
function gboolean (line 775) | static gboolean
function xmlNode (line 832) | static xmlNode *
function workspace_empty (line 870) | static void
function workspace_build_compat (line 931) | static void
function workspace_have_compat (line 944) | int
function workspace_get_version (line 985) | void
function gboolean (line 992) | gboolean
function workspace_class_init (line 1042) | static void
function workspace_init (line 1077) | static void
function GType (line 1123) | GType
function Workspace (line 1148) | Workspace *
function Workspace (line 1176) | Workspace *
function Row (line 1199) | static Row *
function gboolean (line 1205) | gboolean
function workspace_number (line 1250) | int
function gboolean (line 1264) | gboolean
function gboolean (line 1334) | static gboolean
function workspace_selected_remove_yesno_cb (line 1364) | static void
function workspace_selected_remove_yesno (line 1378) | void
function gboolean (line 1399) | static gboolean
function gboolean (line 1465) | gboolean
function gboolean (line 1495) | gboolean
function Row (line 1518) | static Row *
function gboolean (line 1540) | gboolean
function workspace_set_status (line 1579) | void
function workspace_set_mode (line 1593) | void
function gboolean (line 1612) | gboolean
function gboolean (line 1632) | gboolean
function gint (line 1658) | static gint
function workspace_jump_column_cb (line 1672) | static void
function workspace_jump_update (line 1698) | void
function gboolean (line 1717) | gboolean
function gboolean (line 1729) | gboolean
function gboolean (line 1790) | gboolean
function gboolean (line 1811) | gboolean
function workspace_set_locked (line 1824) | void
function gboolean (line 1834) | gboolean
FILE: src/workspace.h
type WorkspaceMode (line 44) | typedef enum {
type _Workspace (line 52) | struct _Workspace {
type WorkspaceClass (line 117) | typedef struct _WorkspaceClass {
FILE: src/workspacedefs.c
function workspacedefs_text_changed (line 38) | static void
function workspacedefs_refresh (line 60) | static void
function workspacedefs_link (line 114) | static void
function workspacedefs_class_init (line 127) | static void
function gboolean (line 138) | static gboolean
function workspacedefs_load_file_cb (line 161) | static void
function workspacedefs_replace_cb (line 185) | static void
function workspacedefs_save_as_cb (line 203) | static void
function gboolean (line 213) | static gboolean
function workspacedefs_process_cb (line 236) | static void
function workspacedefs_init (line 252) | static void
function GtkType (line 309) | GtkType
function Workspacedefs (line 332) | Workspacedefs *
FILE: src/workspacedefs.h
type _Workspacedefs (line 41) | struct _Workspacedefs {
type WorkspacedefsClass (line 53) | typedef struct _WorkspacedefsClass {
FILE: src/workspacegroup.c
function workspacegroup_set_load_type (line 38) | void
function workspacegroup_set_save_type (line 45) | void
function Workspace (line 52) | Workspace *
function Workspace (line 63) | static Workspace *
function Workspace (line 85) | Workspace *
function gboolean (line 103) | gboolean
function workspacegroup_get_n_objects (line 125) | int
function workspacegroup_dispose (line 138) | static void
function View (line 157) | static View *
function xmlNode (line 179) | static xmlNode *
function workspacegroup_rename_workspace_node (line 211) | static void
function gboolean (line 234) | static gboolean
function gboolean (line 259) | static gboolean
function workspacegroup_rename_row_node (line 307) | static void
function workspacegroup_rename_column_node (line 333) | static void
function FOR_ALL_XML_END (line 476) | FOR_ALL_XML_END
function gboolean (line 553) | static gboolean
function workspacegroup_autosave_clean (line 585) | void
function gboolean (line 600) | static gboolean
function workspacegroup_checkmark (line 641) | static void
type AutoRecover (line 654) | typedef struct {
function workspacegroup_set_modified (line 712) | static void
function workspacegroup_class_init (line 722) | static void
function workspacegroup_init (line 752) | static void
function GType (line 757) | GType
function workspacegroup_link (line 782) | static void
function Workspacegroup (line 790) | Workspacegroup *
function Workspacegroup (line 812) | Workspacegroup *
function Workspacegroup (line 826) | Workspacegroup *
function Workspacegroup (line 844) | Workspacegroup *
function Workspacegroup (line 875) | Workspacegroup *
function gboolean (line 906) | gboolean
function gboolean (line 921) | gboolean
function gboolean (line 947) | gboolean
function gboolean (line 962) | gboolean
function gboolean (line 977) | gboolean
function gboolean (line 992) | gboolean
function Workspacegroup (line 1005) | Workspacegroup *
FILE: src/workspacegroup.h
type WorkspacegroupLoadType (line 47) | typedef enum {
type WorkspacegroupSaveType (line 55) | typedef enum {
type _Workspacegroup (line 64) | struct _Workspacegroup {
type WorkspacegroupClass (line 83) | typedef struct _WorkspacegroupClass {
FILE: src/workspacegroupview.c
function workspacegroupview_realize (line 38) | static void
function workspacegroupview_rename_sub (line 57) | static void
function workspacegroupview_rename_cb (line 83) | static void
function workspacegroupview_rename_cb2 (line 112) | static void
function workspacegroupview_child_add (line 119) | static void
function workspacegroupview_child_remove (line 172) | static void
function workspacegroupview_child_position (line 184) | static void
function workspacegroupview_child_front (line 196) | static void
function workspacegroupview_class_init (line 220) | static void
type nip2GtkNotebookPage (line 236) | typedef struct _nip2GtkNotebookPage {
function Workspaceview (line 246) | static Workspaceview *
function workspacegroupview_switch_page_cb (line 261) | static void
function workspacegroupview_page_added_cb (line 304) | static void
function GtkNotebook (line 315) | static GtkNotebook *
function workspacegroupview_page_reordered_cb (line 349) | static void
function workspacegroupview_tab_double_cb (line 380) | static void
function workspacegroupview_add_workspace_cb (line 403) | static void
function workspacegroupview_add_workspace_cb2 (line 413) | static void
function workspacegroupview_load_workspace_cb2 (line 420) | static void
function workspacegroupview_select_all_cb (line 429) | static void
function workspacegroupview_duplicate_cb (line 439) | static void
function workspacegroupview_merge_sub (line 451) | static void
function workspacegroupview_merge_cb (line 487) | static void
function workspacegroupview_save_as_sub (line 511) | static void
function workspacegroupview_save_as_cb (line 534) | static void
function workspacegroupview_delete_done_cb (line 557) | static void
function workspacegroupview_delete_cb (line 566) | static void
function workspacegroupview_init (line 577) | static void
function GtkType (line 648) | GtkType
function View (line 673) | View *
FILE: src/workspacegroupview.h
type _Workspacegroupview (line 41) | struct _Workspacegroupview {
type WorkspacegroupviewClass (line 49) | typedef struct _WorkspacegroupviewClass {
FILE: src/workspaceroot.c
function workspaceroot_dispose (line 38) | static void
function workspaceroot_child_add (line 57) | static void
function workspaceroot_child_remove (line 68) | static void
function workspaceroot_class_init (line 74) | static void
function workspaceroot_init (line 93) | static void
function GType (line 99) | GType
function workspaceroot_link (line 124) | static void
function Workspaceroot (line 139) | Workspaceroot *
function workspaceroot_name_new (line 159) | void
FILE: src/workspaceroot.h
type _Workspaceroot (line 47) | struct _Workspaceroot {
type WorkspacerootClass (line 53) | typedef struct _WorkspacerootClass {
FILE: src/workspaceview.c
function workspaceview_scroll_to (line 50) | static void
function workspaceview_displace (line 67) | static void
function workspaceview_scroll (line 77) | void
function workspaceview_scroll_update (line 109) | static void
function workspaceview_watch_changed_cb (line 139) | static void
function gboolean (line 165) | static gboolean
function workspaceview_realize_cb (line 203) | static void
function workspaceview_set_cursor (line 211) | void
type WorkspaceviewFindColumnview (line 222) | typedef struct _WorkspaceviewFindColumnview {
function Columnview (line 251) | static Columnview *
function gboolean (line 272) | static gboolean
function gboolean (line 289) | static gboolean
function workspaceview_scroll_adjustment_cb (line 366) | static void
function gboolean (line 374) | static gboolean
function workspaceview_scroll_stop (line 390) | static void
function workspaceview_scroll_start (line 398) | static void
function workspaceview_scroll_background (line 408) | void
function workspaceview_destroy (line 420) | static void
function workspaceview_realize (line 444) | static void
function workspaceview_drag_data_received (line 463) | static void
function workspaceview_child_size_cb (line 539) | static void
function workspaceview_pick_xy (line 597) | static void
function workspaceview_link (line 620) | static void
function workspaceview_child_add (line 638) | static void
function workspaceview_child_position (line 659) | static void
function workspaceview_child_front (line 671) | static void
function workspaceview_refresh (line 685) | static void
type WorkspaceLayout (line 736) | typedef struct _WorkspaceLayout {
function workspaceview_layout_sort_y (line 815) | static int
function workspaceview_layout_loop (line 868) | static void
function workspaceview_layout (line 911) | static void
function workspaceview_class_init (line 929) | static void
function gboolean (line 955) | static gboolean
function workspaceview_lpane_changed_cb (line 991) | static void
function workspaceview_rpane_changed_cb (line 1011) | static void
function gboolean (line 1031) | static gboolean
function workspaceview_column_new_action_cb2 (line 1045) | static void
function workspaceview_group_action_cb2 (line 1055) | static void
function workspaceview_next_error_action_cb2 (line 1064) | static void
function workspaceview_init (line 1078) | static void
function GtkType (line 1228) | GtkType
function View (line 1251) | View *
function workspaceview_set_label (line 1259) | void
FILE: src/workspaceview.h
type _Workspaceview (line 45) | struct _Workspaceview {
type WorkspaceviewClass (line 101) | typedef struct _WorkspaceviewClass {
Copy disabled (too large)
Download .json
Condensed preview — 772 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (11,416K chars).
[
{
"path": ".gitignore",
"chars": 485,
"preview": "INSTALL\ntest-driver\ntest/test-suite.log\ntest/test_all.sh.log\ntest/test_all.sh.trs\npo/nip2.pot\nnip2-*.tar.gz\n*.o\n.*.swp\nT"
},
{
"path": "AUTHORS",
"chars": 140,
"preview": "Authors of nip2\n\n\tJohn Cupitt \n\tJoe Padfield\n\tHans Breuer\n\tRich Lott\n\tLeo Davidson\n\nPlus helpful comments and suggestion"
},
{
"path": "COPYING",
"chars": 18092,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 2, June 1991\n\n Copyright (C) 1989, 1991 Fr"
},
{
"path": "ChangeLog",
"chars": 86828,
"preview": "started 8.9.2 22/11/23\n- fix a lockup with comment characters in REPL [MvGulik]\n\nstarted 8.9.1 15/2/23\n- fix build with "
},
{
"path": "Makefile.am",
"chars": 1283,
"preview": "SUBDIRS = \\\n\tsrc \\\n\ttest \\\n\tman \\\n\tshare \\\n\tpo \n\nEXTRA_DIST = \\\n\tautogen.sh \\\n\tdoc \\\n\tproj \\\n\tm4 \\\n\tscreenshot.png \\\n\tni"
},
{
"path": "NEWS",
"chars": 1,
"preview": "\n"
},
{
"path": "README.md",
"chars": 2089,
"preview": "# nip2 --- a user interface for libvips\n\nWe now have a first public test release of nip4, a rewrite of nip2 for the\ngtk4"
},
{
"path": "THANKS",
"chars": 170,
"preview": "nip THANKS file\n\nnip is a rewrite of ip, so see the THANKS file for that package. \n\nWe've had very helpful funding from "
},
{
"path": "TODO",
"chars": 31417,
"preview": "- add tests for new stuff\n\n- seeing occasional \"rewind image with active regions\" message\n\n- should parse_float / _int e"
},
{
"path": "autogen.sh",
"chars": 1316,
"preview": "#!/bin/sh\n\n# set -x\n\n# remove /everything/ ready to remake\nrm -f Makefile Makefile.in aclocal.m4 config.* configure depc"
},
{
"path": "configure.ac",
"chars": 11960,
"preview": "# Process this file with autoconf to produce a configure script.\n\nAC_INIT([nip2], [8.9.2], [vipsip@jiscmail.ac.uk])\n\n# f"
},
{
"path": "doc/README",
"chars": 480,
"preview": "nip documentation\n\nType \"make install\" to rebuild html/ and ps/ directories with formatted\ndocuimentation. You'll need l"
},
{
"path": "doc/doc-programmer/hierarchy.txt",
"chars": 1571,
"preview": "class hierarchy\n===============\n\nGObject \n|\n+-iObject\n |\n +-Heap\n +-Imagemodel\n +-Toolviewitemgroup\n +-iContainer\n "
},
{
"path": "doc/doc-programmer/imageview",
"chars": 382,
"preview": "imagemodel is the base model class ... imageview_new makes the imagemodel, then\nall the component widgets (imagepresent,"
},
{
"path": "doc/doc-programmer/makeindex.pl",
"chars": 143,
"preview": "#!/usr/bin/perl\n\n# my labels = `grep '<A NAME=\"nip_label_' $VIPSHOME/share/doc/nip/html/*.html`;\nmy lab = `grep bel html"
},
{
"path": "doc/doc-programmer/menu.txt",
"chars": 6227,
"preview": "nip menu organisation\n\nhere's how it's currently arranged, all ideas for new arrangements welcome\n\nyou can change the na"
},
{
"path": "doc/doc-programmer/regionview",
"chars": 475,
"preview": "how regionviews are built and maintained\n\n\n\niregion\t\t\t\tiregionview\n end of parent_add, make\n iregiongroup child\n\niregi"
},
{
"path": "doc/src/Example.def",
"chars": 245,
"preview": "/* Gamma im gam: correct\n */\n\nGamma A1 B7 \n =\terror \"arg 1 is not image\", not is_image A1;\n =\terror \"arg 2 is "
},
{
"path": "doc/src/html.cfg",
"chars": 449,
"preview": "% configuration file for output of nipguide as html\n\\Preamble{html} \n\\begin{document} \n\n% stop the mono font shrinkage w"
},
{
"path": "doc/src/infrared.tex",
"chars": 20528,
"preview": "\\chapter{Assembling infrared mosaics}\n\\mylabel{sec:ir}\n\nVIPS has a package of functions designed to help join many small"
},
{
"path": "doc/src/intro.tex",
"chars": 1095,
"preview": "\\chapter{Getting started}\n\n\\noindent\n\\nip{} is a user interface for the VIPS image processing library. It is\ndesigned to"
},
{
"path": "doc/src/menus.tex",
"chars": 21381,
"preview": "\\chapter{Image processing menus}\n\\mylabel{sec:menus}\n\n\\noindent\nThis chapter is runs quickly through the \\ct{Toolkits} m"
},
{
"path": "doc/src/mydefs.tex",
"chars": 2602,
"preview": "% My defs\n\n% Computer Text, Computer text=>, Computer Text Display\n\\newcommand{\\ct}[1]{\\textsf{\\smaller{}#1}}\n\\newcomman"
},
{
"path": "doc/src/nipguide.tex",
"chars": 1506,
"preview": "\\documentclass[a4paper,twocolumn,dvips]{book}\n\\usepackage[dvips=false,pdftex=false,vtex=false]{geometry}\n\\usepackage{rel"
},
{
"path": "doc/src/program.tex",
"chars": 50009,
"preview": "\\chapter{Programming}\n\\mylabel{sec:program}\n\n\\noindent\n\\nip{} includes a tiny lazy functional programming language. You "
},
{
"path": "doc/src/reference.tex",
"chars": 26973,
"preview": "\\chapter{Reference}\n\\mylabel{sec:reference}\n\n\\noindent\nThis chapter is supposed to be a user-interface reference.\n\\cref{"
},
{
"path": "doc/src/tutorial.tex",
"chars": 23381,
"preview": "\\chapter{Tutorial}\n\\mylabel{sec:tutorial}\n\nThis chapter runs very quickly through how to use \\nip{}'s user-interface. Se"
},
{
"path": "man/Makefile.am",
"chars": 15,
"preview": "SUBDIRS = man1\n"
},
{
"path": "man/man1/Makefile.am",
"chars": 44,
"preview": "man_MANS = nip2.1\n\nEXTRA_DIST = ${man_MANS}\n"
},
{
"path": "man/man1/nip2.1",
"chars": 3237,
"preview": ".TH NIP2 1 \"Oct 4 2004\"\n.SH NAME\nnip2 \\- image processing with the VIPS library\n\n.SH SYNOPSIS\n.B nip2 [filename1 ...]\n.b"
},
{
"path": "nip2.appdata.xml",
"chars": 1185,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- Copyright 2014 John Cupitt <jcupitt@gmail.com> -->\n<application>\n <id type=\""
},
{
"path": "nip2.desktop.in",
"chars": 283,
"preview": "[Desktop Entry]\nName=@PACKAGE@\nComment=Image manipulation program based on VIPS\nComment[it]=Programma per la manipolazio"
},
{
"path": "nip2.spec.in",
"chars": 4613,
"preview": "Name: @PACKAGE@\nVersion: @VERSION@\nRelease:\t1%{?dist}\nSummary:\tInteractive tool for working with large "
},
{
"path": "nip2.xml",
"chars": 436,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\">\n <mime"
},
{
"path": "po/ChangeLog",
"chars": 20,
"preview": "+ en_UK translation\n"
},
{
"path": "po/LINGUAS",
"chars": 0,
"preview": ""
},
{
"path": "po/POTFILES.in",
"chars": 2073,
"preview": "src/conversionview.c\nsrc/vector.c\nsrc/tslider.c\nsrc/fontnameview.c\nsrc/workspacegroup.c\nsrc/iobject.c\nsrc/plotview.c\nsrc"
},
{
"path": "po/POTFILES.skip",
"chars": 22,
"preview": "src/parse.c\nsrc/lex.c\n"
},
{
"path": "po/POTFILES2",
"chars": 4659,
"preview": "\t../src/action.c \\\n\t../src/action.h \\\n\t../src/boxes.c \\\n\t../src/boxes.h \\\n\t../src/browse.c \\\n\t../src/browse.h \\\n\t../src/"
},
{
"path": "po/en_GB.po",
"chars": 66299,
"preview": "# UK english translation ... just swap color for colour\n# Copyright (C) 2011\n# This file is distributed under the same l"
},
{
"path": "po/malkovich.po",
"chars": 78055,
"preview": "# test translation file\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: nip2 7.11.11\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creati"
},
{
"path": "proj/README",
"chars": 91,
"preview": "sample config and makefiles for building with the MSC toolchain\n\nexperts only, no support!\n"
},
{
"path": "proj/src/makefile.msc",
"chars": 3741,
"preview": "# autogenerated from automake.am with automake.py\r\nTOP = ..\\..\r\nPRJ_TOP = ..\r\nPACKAGE = nip\r\nPKG_VER = 7.8.6\r\n!INCLUDE $"
},
{
"path": "proj/src/nip.rc",
"chars": 20,
"preview": "nip\tICON\t\"nip.ico\"\r\n"
},
{
"path": "share/Makefile.am",
"chars": 16,
"preview": "SUBDIRS = nip2 \n"
},
{
"path": "share/nip2/Makefile.am",
"chars": 31,
"preview": "SUBDIRS = rc data start compat\n"
},
{
"path": "share/nip2/compat/7.10/Colour.def",
"chars": 15144,
"preview": "\nColour_new_item = class \n\tMenupullright (_ \"_New\") (_ \"make a patch of colour\") {\n\tWidget_colour_item = class \n\t\tMenuac"
},
{
"path": "share/nip2/compat/7.10/Filter.def",
"chars": 29808,
"preview": "Filter_conv_item = class\n\tMenupullright \"_Convolution\" \"various spatial convolution filters\" {\n\t/* Some useful masks.\n\t "
},
{
"path": "share/nip2/compat/7.10/Format.def",
"chars": 1196,
"preview": "Format_duplicate_item = class\n\tMenuaction \"_Duplicate\" \"take a copy of an object\" {\n\taction x = map_unary copy x;\n}\n\n#se"
},
{
"path": "share/nip2/compat/7.10/Histogram.def",
"chars": 2924,
"preview": "Hist_new_item = class\n\tMenuaction \"_New Histogram\" \"make a new histogram\" {\n\taction = class\n\t\t_result {\n\t\t_vislevel = 3;"
},
{
"path": "share/nip2/compat/7.10/Image.def",
"chars": 37585,
"preview": "Image_new_item = class \n\tMenuaction \"New _Image\" \"make a new image\" {\n\tformat_names = [\n\t\t\"8-bit unsigned int - UCHAR\", "
},
{
"path": "share/nip2/compat/7.10/Makefile.am",
"chars": 339,
"preview": "startdir = $(pkgdatadir)/compat/7.10\n\nstart_DATA = \\\n\tColour.def \\\n\t_convert.def \\\n\tFilter.def \\\n\tFormat.def \\\n\t_generat"
},
{
"path": "share/nip2/compat/7.10/Math.def",
"chars": 11408,
"preview": "Math_arithmetic_item = class \n\tMenupullright \"_Arithmetic\" \"basic arithmetic for objects\" {\n\tAdd_item = class\n\t\tMenuacti"
},
{
"path": "share/nip2/compat/7.10/Matrix.def",
"chars": 8970,
"preview": "\nMatrix_build_item = class \n\tMenupullright \"_New\" \"make a new matrix of some sort\" {\n\n\tPlain_item = class \n\t\tMenuaction "
},
{
"path": "share/nip2/compat/7.10/Tasks.def",
"chars": 23475,
"preview": "Tasks_capture_item = class\n\tMenupullright \"_Capture\" \n\t\t\"useful stuff for capturing and preprocessing images\" {\n\tVideo_i"
},
{
"path": "share/nip2/compat/7.10/Widgets.def",
"chars": 1131,
"preview": "Widget_slider_item = class \n\tMenuaction \"_Slider\" \"make a new slider widget\" {\n\ticon = \"nip-slider-16.png\";\n\taction = Sl"
},
{
"path": "share/nip2/compat/7.10/_convert.def",
"chars": 15122,
"preview": "\n/* Try to make a Matrix ... works for Vector/Image/Real, plus image/real\n */\nto_matrix x\n\t= to_matrix x.expr, is_Expres"
},
{
"path": "share/nip2/compat/7.10/_generate.def",
"chars": 2670,
"preview": "\n/* make an image of size x by y whose pixels are their coordinates.\n */\nmake_xy x y = im_make_xy (to_real x) (to_real y"
},
{
"path": "share/nip2/compat/7.10/_joe_extra.def",
"chars": 12929,
"preview": "////////////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////"
},
{
"path": "share/nip2/compat/7.10/_joe_utilities.def",
"chars": 20035,
"preview": "/* ******Functions included in start/_NG_utilities.def:******\n *\n * so_balance ref_meanmax im1 im2 mask blur gauss *\n "
},
{
"path": "share/nip2/compat/7.10/_list.def",
"chars": 7967,
"preview": "/* concat l: join a list of lists together\n *\n * concat [\"abc\",\"def\"] == \"abcdef\".\n * concat :: [[*]] -> [*]\n */\nconcat "
},
{
"path": "share/nip2/compat/7.10/_predicate.def",
"chars": 8703,
"preview": "\n/* is_colour_space str: is a string one of nip's colour space names\n */\nis_colour_space str = Image_type.colour_spaces."
},
{
"path": "share/nip2/compat/7.10/_stdenv.def",
"chars": 38651,
"preview": "/* Various operators as functions.\n */\n\nlogical_and a b = a && b;\nlogical_or a b = a || b;\nbitwise_and a b = a & b;\nbitw"
},
{
"path": "share/nip2/compat/7.10/_types.def",
"chars": 35818,
"preview": "\n/* Lots of little arg checks. Global for convenience.\n */\n\ncheck_any = [(const true), _ \"any\"];\ncheck_bool = [is_bool, "
},
{
"path": "share/nip2/compat/7.12/Colour.def",
"chars": 15096,
"preview": "\nColour_new_item = class \n\tMenupullright (_ \"_New\") (_ \"make a patch of colour\") {\n\tWidget_colour_item = class \n\t\tMenuac"
},
{
"path": "share/nip2/compat/7.12/Filter.def",
"chars": 36814,
"preview": "Filter_conv_item = class\n\tMenupullright \"_Convolution\" \"various spatial convolution filters\" {\n\t/* Some useful masks.\n\t "
},
{
"path": "share/nip2/compat/7.12/Format.def",
"chars": 3271,
"preview": "Format_duplicate_item = class\n\tMenuaction \"_Duplicate\" \"take a copy of an object\" {\n\taction x = map_unary copy x;\n}\n\n#se"
},
{
"path": "share/nip2/compat/7.12/Histogram.def",
"chars": 7733,
"preview": "Hist_new_item = class\n\tMenuaction \"_New Histogram\" \"make a new histogram\" {\n\taction = class\n\t\t_result {\n\t\t_vislevel = 3;"
},
{
"path": "share/nip2/compat/7.12/Image.def",
"chars": 42195,
"preview": "Image_new_item = class \n\tMenupullright \"_New\" \"make new things\" {\n\tImage_black_item = class \n\t\tMenuaction \"_Image\" \"make"
},
{
"path": "share/nip2/compat/7.12/Makefile.am",
"chars": 358,
"preview": "startdir = $(pkgdatadir)/compat/7.12\n\nstart_DATA = \\\n\tMath.def \\\n\tImage.def \\\n\tColour.def \\\n\tTasks.def \\\n\tFormat.def \\\n\t"
},
{
"path": "share/nip2/compat/7.12/Math.def",
"chars": 14189,
"preview": "Math_arithmetic_item = class \n\tMenupullright \"_Arithmetic\" \"basic arithmetic for objects\" {\n\tAdd_item = class\n\t\tMenuacti"
},
{
"path": "share/nip2/compat/7.12/Matrix.def",
"chars": 8633,
"preview": "\nMatrix_build_item = class \n\tMenupullright \"_New\" \"make a new matrix of some sort\" {\n\n\tPlain_item = class \n\t\tMenuaction "
},
{
"path": "share/nip2/compat/7.12/Preferences.ws",
"chars": 32642,
"preview": "<?xml version=\"1.0\"?>\n<root xmlns=\"http://www.vips.ecs.soton.ac.uk/nip/7.12.0\">\n <Workspace filename=\"/home/john/CVS_DE"
},
{
"path": "share/nip2/compat/7.12/Tasks.def",
"chars": 23136,
"preview": "Tasks_capture_item = class\n\tMenupullright \"_Capture\" \n\t\t\"useful stuff for capturing and preprocessing images\" {\n\tVideo_i"
},
{
"path": "share/nip2/compat/7.12/Widgets.def",
"chars": 1259,
"preview": "Widget_slider_item = class \n\tMenuaction \"_Scale\" \"make a new scale widget\" {\n\ticon = \"nip-slider-16.png\";\n\taction = Scal"
},
{
"path": "share/nip2/compat/7.12/_convert.def",
"chars": 17693,
"preview": "\n/* Try to make a Matrix ... works for Vector/Image/Real, plus image/real\n */\nto_matrix x\n\t= to_matrix x.expr, is_Expres"
},
{
"path": "share/nip2/compat/7.12/_generate.def",
"chars": 2656,
"preview": "\n/* make an image of size x by y whose pixels are their coordinates.\n */\nmake_xy x y = im_make_xy (to_real x) (to_real y"
},
{
"path": "share/nip2/compat/7.12/_joe_extra.def",
"chars": 13703,
"preview": "////////////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////"
},
{
"path": "share/nip2/compat/7.12/_joe_utilities.def",
"chars": 20009,
"preview": "/* ******Functions included in start/_NG_utilities.def:******\n *\n * so_balance ref_meanmax im1 im2 mask blur gauss *\n "
},
{
"path": "share/nip2/compat/7.12/_list.def",
"chars": 8979,
"preview": "/* concat l: join a list of lists together\n *\n * concat [\"abc\",\"def\"] == \"abcdef\".\n * concat :: [[*]] -> [*]\n */\nconcat "
},
{
"path": "share/nip2/compat/7.12/_predicate.def",
"chars": 11031,
"preview": "\n/* is_colour_space str: is a string one of nip's colour space names\n */\nis_colour_space str = Image_type.colour_spaces."
},
{
"path": "share/nip2/compat/7.12/_stdenv.def",
"chars": 47769,
"preview": "/* Various operators as functions.\n */\n\nlogical_and a b = a && b;\nlogical_or a b = a || b;\nbitwise_and a b = a & b;\nbitw"
},
{
"path": "share/nip2/compat/7.12/_types.def",
"chars": 39429,
"preview": "\n/* Lots of little arg checks. Global for convenience.\n */\n\ncheck_any = [(const true), _ \"any\"];\ncheck_bool = [is_bool, "
},
{
"path": "share/nip2/compat/7.14/Colour.def",
"chars": 15053,
"preview": "\nColour_new_item = class \n\tMenupullright (_ \"_New\") (_ \"make a patch of colour\") {\n\tWidget_colour_item = class \n\t\tMenuac"
},
{
"path": "share/nip2/compat/7.14/Filter.def",
"chars": 39026,
"preview": "Filter_conv_item = class\n\tMenupullright \"_Convolution\" \"various spatial convolution filters\" {\n\t/* Some useful masks.\n\t "
},
{
"path": "share/nip2/compat/7.14/Histogram.def",
"chars": 8018,
"preview": "Hist_new_item = class\n\tMenupullright \"_New\" \"new histogram\" {\n\tHist_item = class\n\t\tMenuaction \"Histogram\" \"make an ident"
},
{
"path": "share/nip2/compat/7.14/Image.def",
"chars": 42138,
"preview": "Image_new_item = class \n\tMenupullright \"_New\" \"make new things\" {\n\tImage_black_item = class \n\t\tMenuaction \"_Image\" \"make"
},
{
"path": "share/nip2/compat/7.14/Makefile.am",
"chars": 373,
"preview": "startdir = $(pkgdatadir)/compat/7.14\n\nstart_DATA = \\\n\tMath.def \\\n\tImage.def \\\n\tColour.def \\\n\tTasks.def \\\n\tObject.def \\\n\t"
},
{
"path": "share/nip2/compat/7.14/Math.def",
"chars": 12576,
"preview": "Math_arithmetic_item = class \n\tMenupullright \"_Arithmetic\" \"basic arithmetic for objects\" {\n\tAdd_item = class\n\t\tMenuacti"
},
{
"path": "share/nip2/compat/7.14/Matrix.def",
"chars": 8627,
"preview": "\nMatrix_build_item = class \n\tMenupullright \"_New\" \"make a new matrix of some sort\" {\n\n\tPlain_item = class \n\t\tMenuaction "
},
{
"path": "share/nip2/compat/7.14/Object.def",
"chars": 1168,
"preview": "Object_duplicate_item = class\n\tMenuaction \"_Duplicate\" \"take a copy of an object\" {\n\taction x = map_unary copy x;\n}\n\n#se"
},
{
"path": "share/nip2/compat/7.14/Preferences.ws",
"chars": 32668,
"preview": "<?xml version=\"1.0\"?>\n<root xmlns=\"http://www.vips.ecs.soton.ac.uk/nip/7.14.0\">\n <Workspace filename=\"Preferences.ws\" v"
},
{
"path": "share/nip2/compat/7.14/Tasks.def",
"chars": 25598,
"preview": "Tasks_capture_item = class\n\tMenupullright \"_Capture\" \n\t\t\"useful stuff for capturing and preprocessing images\" {\n\n\tCsv_im"
},
{
"path": "share/nip2/compat/7.14/Widgets.def",
"chars": 1259,
"preview": "Widget_slider_item = class \n\tMenuaction \"_Scale\" \"make a new scale widget\" {\n\ticon = \"nip-slider-16.png\";\n\taction = Scal"
},
{
"path": "share/nip2/compat/7.14/_Object.def",
"chars": 11500,
"preview": "/* Lots of little arg checks. Global for convenience.\n */\n\ncheck_any = [(const true), _ \"any\"];\ncheck_bool = [is_bool, _"
},
{
"path": "share/nip2/compat/7.14/_convert.def",
"chars": 18050,
"preview": "\n/* Try to make a Matrix ... works for Vector/Image/Real, plus image/real\n */\nto_matrix x\n\t= to_matrix x.expr, is_Expres"
},
{
"path": "share/nip2/compat/7.14/_generate.def",
"chars": 2656,
"preview": "\n/* make an image of size x by y whose pixels are their coordinates.\n */\nmake_xy x y = im_make_xy (to_real x) (to_real y"
},
{
"path": "share/nip2/compat/7.14/_joe_extra.def",
"chars": 13703,
"preview": "////////////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////"
},
{
"path": "share/nip2/compat/7.14/_joe_utilities.def",
"chars": 20009,
"preview": "/* ******Functions included in start/_NG_utilities.def:******\n *\n * so_balance ref_meanmax im1 im2 mask blur gauss *\n "
},
{
"path": "share/nip2/compat/7.14/_list.def",
"chars": 8966,
"preview": "/* any l: or all the elements of list l together\n *\n * any (map (equal 0) list) == true, if any element of list is zero."
},
{
"path": "share/nip2/compat/7.14/_predicate.def",
"chars": 11692,
"preview": "\n/* is_colour_space str: is a string one of nip's colour space names\n */\nis_colour_space str = Image_type.colour_spaces."
},
{
"path": "share/nip2/compat/7.14/_stdenv.def",
"chars": 50981,
"preview": "/* Various operators as functions.\n */\n\nlogical_and a b = a && b;\nlogical_or a b = a || b;\nbitwise_and a b = a & b;\nbitw"
},
{
"path": "share/nip2/compat/7.14/_types.def",
"chars": 28143,
"preview": "/* A list of things. Do automatic iteration of unary and binary operators on\n * us. \n *\tList [1, 2] + [2, 3] -> List [3,"
},
{
"path": "share/nip2/compat/7.16/Colour.def",
"chars": 15053,
"preview": "\nColour_new_item = class \n\tMenupullright (_ \"_New\") (_ \"make a patch of colour\") {\n\tWidget_colour_item = class \n\t\tMenuac"
},
{
"path": "share/nip2/compat/7.16/Filter.def",
"chars": 38946,
"preview": "Filter_conv_item = class\n\tMenupullright \"_Convolution\" \"various spatial convolution filters\" {\n\t/* Some useful masks.\n\t "
},
{
"path": "share/nip2/compat/7.16/Histogram.def",
"chars": 8018,
"preview": "Hist_new_item = class\n\tMenupullright \"_New\" \"new histogram\" {\n\tHist_item = class\n\t\tMenuaction \"Histogram\" \"make an ident"
},
{
"path": "share/nip2/compat/7.16/Image.def",
"chars": 44692,
"preview": "Image_new_item = class \n\tMenupullright \"_New\" \"make new things\" {\n\tImage_black_item = class \n\t\tMenuaction \"_Image\" \"make"
},
{
"path": "share/nip2/compat/7.16/Makefile.am",
"chars": 373,
"preview": "startdir = $(pkgdatadir)/compat/7.16\n\nstart_DATA = \\\n\tMath.def \\\n\tImage.def \\\n\tColour.def \\\n\tTasks.def \\\n\tObject.def \\\n\t"
},
{
"path": "share/nip2/compat/7.16/Math.def",
"chars": 12832,
"preview": "Math_arithmetic_item = class \n\tMenupullright \"_Arithmetic\" \"basic arithmetic for objects\" {\n\tAdd_item = class\n\t\tMenuacti"
},
{
"path": "share/nip2/compat/7.16/Matrix.def",
"chars": 8625,
"preview": "\nMatrix_build_item = class \n\tMenupullright \"_New\" \"make a new matrix of some sort\" {\n\n\tPlain_item = class \n\t\tMenuaction "
},
{
"path": "share/nip2/compat/7.16/Object.def",
"chars": 1168,
"preview": "Object_duplicate_item = class\n\tMenuaction \"_Duplicate\" \"take a copy of an object\" {\n\taction x = map_unary copy x;\n}\n\n#se"
},
{
"path": "share/nip2/compat/7.16/Preferences.ws",
"chars": 32199,
"preview": "<?xml version=\"1.0\"?>\n<root xmlns=\"http://www.vips.ecs.soton.ac.uk/nip/7.14.0\">\n <Workspace filename=\"Preferences.ws\" v"
},
{
"path": "share/nip2/compat/7.16/Tasks.def",
"chars": 25703,
"preview": "Tasks_capture_item = class\n\tMenupullright \"_Capture\" \n\t\t\"useful stuff for capturing and preprocessing images\" {\n\n\tCsv_im"
},
{
"path": "share/nip2/compat/7.16/Widgets.def",
"chars": 1259,
"preview": "Widget_slider_item = class \n\tMenuaction \"_Scale\" \"make a new scale widget\" {\n\ticon = \"nip-slider-16.png\";\n\taction = Scal"
},
{
"path": "share/nip2/compat/7.16/_Object.def",
"chars": 11275,
"preview": "/* Lots of little arg checks. Global for convenience.\n */\n\ncheck_any = [(const true), _ \"any\"];\ncheck_bool = [is_bool, _"
},
{
"path": "share/nip2/compat/7.16/_convert.def",
"chars": 18165,
"preview": "\n/* Try to make a Matrix ... works for Vector/Image/Real, plus image/real\n */\nto_matrix x\n\t= to_matrix x.expr, is_Expres"
},
{
"path": "share/nip2/compat/7.16/_generate.def",
"chars": 2656,
"preview": "\n/* make an image of size x by y whose pixels are their coordinates.\n */\nmake_xy x y = im_make_xy (to_real x) (to_real y"
},
{
"path": "share/nip2/compat/7.16/_joe_extra.def",
"chars": 13826,
"preview": "////////////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////"
},
{
"path": "share/nip2/compat/7.16/_joe_utilities.def",
"chars": 20009,
"preview": "/* ******Functions included in start/_NG_utilities.def:******\n *\n * so_balance ref_meanmax im1 im2 mask blur gauss *\n "
},
{
"path": "share/nip2/compat/7.16/_list.def",
"chars": 9170,
"preview": "/* any l: or all the elements of list l together\n *\n * any (map (equal 0) list) == true, if any element of list is zero."
},
{
"path": "share/nip2/compat/7.16/_predicate.def",
"chars": 11729,
"preview": "\n/* is_colour_space str: is a string one of nip's colour space names\n */\nis_colour_space str = Image_type.colour_spaces."
},
{
"path": "share/nip2/compat/7.16/_stdenv.def",
"chars": 52949,
"preview": "/* Various operators as functions.\n */\n\nlogical_and a b = a && b;\nlogical_or a b = a || b;\nbitwise_and a b = a & b;\nbitw"
},
{
"path": "share/nip2/compat/7.16/_types.def",
"chars": 28727,
"preview": "/* A list of things. Do automatic iteration of unary and binary operators on\n * us. \n *\tList [1, 2] + [2, 3] -> List [3,"
},
{
"path": "share/nip2/compat/7.24/Colour.def",
"chars": 15424,
"preview": "\nColour_new_item = class \n\tMenupullright (_ \"_New\") (_ \"make a patch of colour\") {\n\tWidget_colour_item = class \n\t\tMenuac"
},
{
"path": "share/nip2/compat/7.24/Filter.def",
"chars": 39541,
"preview": "Filter_conv_item = class\n\tMenupullright \"_Convolution\" \"various spatial convolution filters\" {\n\t/* Some useful masks.\n\t "
},
{
"path": "share/nip2/compat/7.24/Histogram.def",
"chars": 6485,
"preview": "Hist_new_item = class\n\tMenupullright \"_New\" \"new histogram\" {\n\tHist_item = class\n\t\tMenuaction \"Histogram\" \"make an ident"
},
{
"path": "share/nip2/compat/7.24/Image.def",
"chars": 46093,
"preview": "Image_new_item = class \n\tMenupullright \"_New\" \"make new things\" {\n\tImage_black_item = class \n\t\tMenuaction \"_Image\" \"make"
},
{
"path": "share/nip2/compat/7.24/Makefile.am",
"chars": 355,
"preview": "startdir = $(pkgdatadir)/compat/7.24\n\nstart_DATA = \\\n\tMath.def \\\n\tImage.def \\\n\tColour.def \\\n\tTasks.def \\\n\tObject.def \\\n\t"
},
{
"path": "share/nip2/compat/7.24/Math.def",
"chars": 13183,
"preview": "Math_arithmetic_item = class \n\tMenupullright \"_Arithmetic\" \"basic arithmetic for objects\" {\n\tAdd_item = class\n\t\tMenuacti"
},
{
"path": "share/nip2/compat/7.24/Matrix.def",
"chars": 8583,
"preview": "\nMatrix_build_item = class \n\tMenupullright \"_New\" \"make a new matrix of some sort\" {\n\n\tPlain_item = class \n\t\tMenuaction "
},
{
"path": "share/nip2/compat/7.24/Object.def",
"chars": 1168,
"preview": "Object_duplicate_item = class\n\tMenuaction \"_Duplicate\" \"take a copy of an object\" {\n\taction x = map_unary copy x;\n}\n\n#se"
},
{
"path": "share/nip2/compat/7.24/Tasks.def",
"chars": 26251,
"preview": "Tasks_capture_item = class\n\tMenupullright \"_Capture\" \n\t\t\"useful stuff for capturing and preprocessing images\" {\n\n\tCsv_im"
},
{
"path": "share/nip2/compat/7.24/Widgets.def",
"chars": 1259,
"preview": "Widget_slider_item = class \n\tMenuaction \"_Scale\" \"make a new scale widget\" {\n\ticon = \"nip-slider-16.png\";\n\taction = Scal"
},
{
"path": "share/nip2/compat/7.24/_Object.def",
"chars": 11269,
"preview": "/* Lots of little arg checks. Global for convenience.\n */\n\ncheck_any = [(const true), _ \"any\"];\ncheck_bool = [is_bool, _"
},
{
"path": "share/nip2/compat/7.24/_convert.def",
"chars": 18680,
"preview": "\n/* Try to make a Matrix ... works for Vector/Image/Real, plus image/real\n */\nto_matrix x\n\t= to_matrix x.expr, is_Expres"
},
{
"path": "share/nip2/compat/7.24/_generate.def",
"chars": 2503,
"preview": "\n/* make an image of size x by y whose pixels are their coordinates.\n */\nmake_xy x y = im_make_xy (to_real x) (to_real y"
},
{
"path": "share/nip2/compat/7.24/_joe_extra.def",
"chars": 11944,
"preview": "////////////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////"
},
{
"path": "share/nip2/compat/7.24/_joe_utilities.def",
"chars": 20839,
"preview": "/* ******Functions included in start/_NG_utilities.def:******\n *\n * so_balance ref_meanmax im1 im2 mask blur gauss *\n "
},
{
"path": "share/nip2/compat/7.24/_list.def",
"chars": 9512,
"preview": "/* any l: or all the elements of list l together\n *\n * any (map (equal 0) list) == true, if any element of list is zero."
},
{
"path": "share/nip2/compat/7.24/_predicate.def",
"chars": 11729,
"preview": "\n/* is_colour_space str: is a string one of nip's colour space names\n */\nis_colour_space str = Image_type.colour_spaces."
},
{
"path": "share/nip2/compat/7.24/_stdenv.def",
"chars": 57189,
"preview": "/* Various operators as functions.\n */\n\nlogical_and a b = a && b;\nlogical_or a b = a || b;\nbitwise_and a b = a & b;\nbitw"
},
{
"path": "share/nip2/compat/7.24/_types.def",
"chars": 29146,
"preview": "/* A list of things. Do automatic iteration of unary and binary operators on\n * us. \n *\tList [1, 2] + [2, 3] -> List [3,"
},
{
"path": "share/nip2/compat/7.26/Colour.def",
"chars": 15423,
"preview": "\nColour_new_item = class \n\tMenupullright (_ \"_New\") (_ \"make a patch of colour\") {\n\tWidget_colour_item = class \n\t\tMenuac"
},
{
"path": "share/nip2/compat/7.26/Filter.def",
"chars": 44689,
"preview": "Filter_conv_item = class\n\tMenupullright \"_Convolution\" \"various spatial convolution filters\" {\n\t/* Some useful masks.\n\t "
},
{
"path": "share/nip2/compat/7.26/Histogram.def",
"chars": 6624,
"preview": "Hist_new_item = class\n\tMenupullright \"_New\" \"new histogram\" {\n\tHist_item = class\n\t\tMenuaction \"Histogram\" \"make an ident"
},
{
"path": "share/nip2/compat/7.26/Image.def",
"chars": 48306,
"preview": "Image_new_item = class \n\tMenupullright \"_New\" \"make new things\" {\n\tImage_black_item = class \n\t\tMenuaction \"_Image\" \"make"
},
{
"path": "share/nip2/compat/7.26/Makefile.am",
"chars": 355,
"preview": "startdir = $(pkgdatadir)/compat/7.26\n\nstart_DATA = \\\n\tMath.def \\\n\tImage.def \\\n\tColour.def \\\n\tTasks.def \\\n\tObject.def \\\n\t"
},
{
"path": "share/nip2/compat/7.26/Math.def",
"chars": 13183,
"preview": "Math_arithmetic_item = class \n\tMenupullright \"_Arithmetic\" \"basic arithmetic for objects\" {\n\tAdd_item = class\n\t\tMenuacti"
},
{
"path": "share/nip2/compat/7.26/Matrix.def",
"chars": 10460,
"preview": "\nMatrix_build_item = class \n\tMenupullright \"_New\" \"make a new matrix of some sort\" {\n\n\tPlain_item = class \n\t\tMenuaction "
},
{
"path": "share/nip2/compat/7.26/Object.def",
"chars": 1168,
"preview": "Object_duplicate_item = class\n\tMenuaction \"_Duplicate\" \"take a copy of an object\" {\n\taction x = map_unary copy x;\n}\n\n#se"
},
{
"path": "share/nip2/compat/7.26/Tasks.def",
"chars": 26251,
"preview": "Tasks_capture_item = class\n\tMenupullright \"_Capture\" \n\t\t\"useful stuff for capturing and preprocessing images\" {\n\n\tCsv_im"
},
{
"path": "share/nip2/compat/7.26/Widgets.def",
"chars": 1259,
"preview": "Widget_slider_item = class \n\tMenuaction \"_Scale\" \"make a new scale widget\" {\n\ticon = \"nip-slider-16.png\";\n\taction = Scal"
},
{
"path": "share/nip2/compat/7.26/_Object.def",
"chars": 11269,
"preview": "/* Lots of little arg checks. Global for convenience.\n */\n\ncheck_any = [(const true), _ \"any\"];\ncheck_bool = [is_bool, _"
},
{
"path": "share/nip2/compat/7.26/_convert.def",
"chars": 17473,
"preview": "\n/* Try to make a Matrix ... works for Vector/Image/Real, plus image/real\n */\nto_matrix x\n\t= to_matrix x.expr, is_Expres"
},
{
"path": "share/nip2/compat/7.26/_generate.def",
"chars": 2503,
"preview": "\n/* make an image of size x by y whose pixels are their coordinates.\n */\nmake_xy x y = im_make_xy (to_real x) (to_real y"
},
{
"path": "share/nip2/compat/7.26/_joe_extra.def",
"chars": 12413,
"preview": "////////////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////"
},
{
"path": "share/nip2/compat/7.26/_joe_utilities.def",
"chars": 20837,
"preview": "/* ******Functions included in start/_NG_utilities.def:******\n *\n * so_balance ref_meanmax im1 im2 mask blur gauss *\n "
},
{
"path": "share/nip2/compat/7.26/_list.def",
"chars": 9512,
"preview": "/* any l: or all the elements of list l together\n *\n * any (map (equal 0) list) == true, if any element of list is zero."
},
{
"path": "share/nip2/compat/7.26/_predicate.def",
"chars": 11729,
"preview": "\n/* is_colour_space str: is a string one of nip's colour space names\n */\nis_colour_space str = Image_type.colour_spaces."
},
{
"path": "share/nip2/compat/7.26/_stdenv.def",
"chars": 59861,
"preview": "/* Various operators as functions.\n */\n\nlogical_and a b = a && b;\nlogical_or a b = a || b;\nbitwise_and a b = a & b;\nbitw"
},
{
"path": "share/nip2/compat/7.26/_types.def",
"chars": 28696,
"preview": "/* A list of things. Do automatic iteration of unary and binary operators on\n * us. \n *\tList [1, 2] + [2, 3] -> List [3,"
},
{
"path": "share/nip2/compat/7.28/Colour.def",
"chars": 15423,
"preview": "\nColour_new_item = class \n\tMenupullright (_ \"_New\") (_ \"make a patch of colour\") {\n\tWidget_colour_item = class \n\t\tMenuac"
},
{
"path": "share/nip2/compat/7.28/Filter.def",
"chars": 44376,
"preview": "Filter_conv_item = class\n\tMenupullright \"_Convolution\" \"various spatial convolution filters\" {\n\t/* Some useful masks.\n\t "
},
{
"path": "share/nip2/compat/7.28/Histogram.def",
"chars": 6624,
"preview": "Hist_new_item = class\n\tMenupullright \"_New\" \"new histogram\" {\n\tHist_item = class\n\t\tMenuaction \"Histogram\" \"make an ident"
},
{
"path": "share/nip2/compat/7.28/Image.def",
"chars": 49985,
"preview": "Image_new_item = class Menupullright \"_New\" \"make new things\" {\n\tImage_black_item = class Menuaction \"_Image\" \"make a ne"
},
{
"path": "share/nip2/compat/7.28/Makefile.am",
"chars": 355,
"preview": "startdir = $(pkgdatadir)/compat/7.28\n\nstart_DATA = \\\n\tMath.def \\\n\tImage.def \\\n\tColour.def \\\n\tTasks.def \\\n\tObject.def \\\n\t"
},
{
"path": "share/nip2/compat/7.28/Math.def",
"chars": 13183,
"preview": "Math_arithmetic_item = class \n\tMenupullright \"_Arithmetic\" \"basic arithmetic for objects\" {\n\tAdd_item = class\n\t\tMenuacti"
},
{
"path": "share/nip2/compat/7.28/Matrix.def",
"chars": 10460,
"preview": "\nMatrix_build_item = class \n\tMenupullright \"_New\" \"make a new matrix of some sort\" {\n\n\tPlain_item = class \n\t\tMenuaction "
},
{
"path": "share/nip2/compat/7.28/Object.def",
"chars": 1168,
"preview": "Object_duplicate_item = class\n\tMenuaction \"_Duplicate\" \"take a copy of an object\" {\n\taction x = map_unary copy x;\n}\n\n#se"
},
{
"path": "share/nip2/compat/7.28/Tasks.def",
"chars": 26251,
"preview": "Tasks_capture_item = class\n\tMenupullright \"_Capture\" \n\t\t\"useful stuff for capturing and preprocessing images\" {\n\n\tCsv_im"
},
{
"path": "share/nip2/compat/7.28/Widgets.def",
"chars": 1259,
"preview": "Widget_slider_item = class \n\tMenuaction \"_Scale\" \"make a new scale widget\" {\n\ticon = \"nip-slider-16.png\";\n\taction = Scal"
},
{
"path": "share/nip2/compat/7.28/_Object.def",
"chars": 11269,
"preview": "/* Lots of little arg checks. Global for convenience.\n */\n\ncheck_any = [(const true), _ \"any\"];\ncheck_bool = [is_bool, _"
},
{
"path": "share/nip2/compat/7.28/_convert.def",
"chars": 17504,
"preview": "\n/* Try to make a Matrix ... works for Vector/Image/Real, plus image/real\n */\nto_matrix x\n\t= to_matrix x.expr, is_Expres"
},
{
"path": "share/nip2/compat/7.28/_generate.def",
"chars": 2503,
"preview": "\n/* make an image of size x by y whose pixels are their coordinates.\n */\nmake_xy x y = im_make_xy (to_real x) (to_real y"
},
{
"path": "share/nip2/compat/7.28/_joe_extra.def",
"chars": 12727,
"preview": "////////////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////"
},
{
"path": "share/nip2/compat/7.28/_joe_utilities.def",
"chars": 20837,
"preview": "/* ******Functions included in start/_NG_utilities.def:******\n *\n * so_balance ref_meanmax im1 im2 mask blur gauss *\n "
},
{
"path": "share/nip2/compat/7.28/_list.def",
"chars": 9512,
"preview": "/* any l: or all the elements of list l together\n *\n * any (map (equal 0) list) == true, if any element of list is zero."
},
{
"path": "share/nip2/compat/7.28/_predicate.def",
"chars": 11729,
"preview": "\n/* is_colour_space str: is a string one of nip's colour space names\n */\nis_colour_space str = Image_type.colour_spaces."
},
{
"path": "share/nip2/compat/7.28/_stdenv.def",
"chars": 61365,
"preview": "/* Various operators as functions.\n */\n\nlogical_and a b = a && b;\nlogical_or a b = a || b;\nbitwise_and a b = a & b;\nbitw"
},
{
"path": "share/nip2/compat/7.28/_types.def",
"chars": 28371,
"preview": "/* A list of things. Do automatic iteration of unary and binary operators on\n * us. \n *\tList [1, 2] + [2, 3] -> List [3,"
},
{
"path": "share/nip2/compat/7.38/Colour.def",
"chars": 16274,
"preview": "\nColour_new_item = class \n\tMenupullright (_ \"_New\") (_ \"make a patch of colour\") {\n\tWidget_colour_item = class \n\t\tMenuac"
},
{
"path": "share/nip2/compat/7.38/Filter.def",
"chars": 44376,
"preview": "Filter_conv_item = class\n\tMenupullright \"_Convolution\" \"various spatial convolution filters\" {\n\t/* Some useful masks.\n\t "
},
{
"path": "share/nip2/compat/7.38/Histogram.def",
"chars": 6729,
"preview": "Hist_new_item = class\n\tMenupullright \"_New\" \"new histogram\" {\n\tHist_item = class\n\t\tMenuaction \"_Identity\" \"make an ident"
},
{
"path": "share/nip2/compat/7.38/Image.def",
"chars": 50609,
"preview": "Image_new_item = class Menupullright \"_New\" \"make new things\" {\n\tImage_black_item = class Menuaction \"_Image\" \"make a ne"
},
{
"path": "share/nip2/compat/7.38/Makefile.am",
"chars": 355,
"preview": "startdir = $(pkgdatadir)/compat/7.38\n\nstart_DATA = \\\n\tMath.def \\\n\tImage.def \\\n\tColour.def \\\n\tTasks.def \\\n\tObject.def \\\n\t"
},
{
"path": "share/nip2/compat/7.38/Math.def",
"chars": 13205,
"preview": "Math_arithmetic_item = class \n\tMenupullright \"_Arithmetic\" \"basic arithmetic for objects\" {\n\tAdd_item = class\n\t\tMenuacti"
},
{
"path": "share/nip2/compat/7.38/Matrix.def",
"chars": 11225,
"preview": "\nMatrix_build_item = class \n\tMenupullright \"_New\" \"make a new matrix of some sort\" {\n\n\tPlain_item = class \n\t\tMenuaction "
},
{
"path": "share/nip2/compat/7.38/Object.def",
"chars": 1157,
"preview": "Object_duplicate_item = class\n\tMenuaction \"_Duplicate\" \"take a copy of an object\" {\n\taction x = map_unary copy x;\n}\n\n#se"
},
{
"path": "share/nip2/compat/7.38/Tasks.def",
"chars": 26697,
"preview": "Tasks_capture_item = class\n\tMenupullright \"_Capture\" \n\t\t\"useful stuff for capturing and preprocessing images\" {\n\n\tCsv_im"
},
{
"path": "share/nip2/compat/7.38/Widgets.def",
"chars": 1259,
"preview": "Widget_slider_item = class \n\tMenuaction \"_Scale\" \"make a new scale widget\" {\n\ticon = \"nip-slider-16.png\";\n\taction = Scal"
},
{
"path": "share/nip2/compat/7.38/_Object.def",
"chars": 11269,
"preview": "/* Lots of little arg checks. Global for convenience.\n */\n\ncheck_any = [(const true), _ \"any\"];\ncheck_bool = [is_bool, _"
},
{
"path": "share/nip2/compat/7.38/_convert.def",
"chars": 17561,
"preview": "\n/* Try to make a Matrix ... works for Vector/Image/Real, plus image/real\n */\nto_matrix x\n\t= to_matrix x.expr, is_Expres"
},
{
"path": "share/nip2/compat/7.38/_generate.def",
"chars": 3949,
"preview": "\n/* make an image of size x by y whose pixels are their coordinates.\n */\nmake_xy x y = im_make_xy (to_real x) (to_real y"
},
{
"path": "share/nip2/compat/7.38/_joe_extra.def",
"chars": 12903,
"preview": "////////////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////"
},
{
"path": "share/nip2/compat/7.38/_joe_utilities.def",
"chars": 20837,
"preview": "/* ******Functions included in start/_NG_utilities.def:******\n *\n * so_balance ref_meanmax im1 im2 mask blur gauss *\n "
},
{
"path": "share/nip2/compat/7.38/_list.def",
"chars": 9795,
"preview": "/* any l: or all the elements of list l together\n *\n * any (map (equal 0) list) == true, if any element of list is zero."
},
{
"path": "share/nip2/compat/7.38/_predicate.def",
"chars": 13654,
"preview": "\n/* is_colour_space str: is a string one of nip's colour space names\n */\nis_colour_space str = Image_type.colour_spaces."
},
{
"path": "share/nip2/compat/7.38/_stdenv.def",
"chars": 65017,
"preview": "/* optional args to functions\n */\n\nget_option options defaults f\n\t= error (_ \"unknown parameter \" ++ f), hits == []\n\t= h"
},
{
"path": "share/nip2/compat/7.38/_types.def",
"chars": 28371,
"preview": "/* A list of things. Do automatic iteration of unary and binary operators on\n * us. \n *\tList [1, 2] + [2, 3] -> List [3,"
},
{
"path": "share/nip2/compat/7.40/Colour.def",
"chars": 16274,
"preview": "\nColour_new_item = class \n\tMenupullright (_ \"_New\") (_ \"make a patch of colour\") {\n\tWidget_colour_item = class \n\t\tMenuac"
}
]
// ... and 572 more files (download for full content)
About this extraction
This page contains the full source code of the libvips/nip2 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 772 files (9.8 MB), approximately 2.6M tokens, and a symbol index with 3314 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.