------------------------------------------ SLgtk: S-Lang bindings to the GIMP Toolkit Change Log mnoble@space.mit.edu ------------------------------------------ Version 0.7.6: . imdisplay 0.5.0: - "anim[=delay]" option: for animating sequence of 2D images; optional value specifies frame refresh delay, in milliseconds (default: 500 = 0.5 sec) - "anim" option also animates 3D volumes as series of 2D slices - List_Type[N] and Array_Type[N] are now accepted, interpreted as 1D sequence of of 2D frames & automatically animated - animations may be saved in GIF format - pressing any button while the mouse is positioned over an image will show the color value for that pixel, in RGB or RGBA format - 'save=[/type]' option: animations or stills may be saved automatically to files, without drawing GUI first - accept "horiz[ontal]" and "vert[ical]" options as shorthand for "panes=horiz[ontal]" and "panes=vert[ical]" - options may now be specified as qualifiers, too - specifying -v option on O/S command line now gives verbose loading messages, like slsh & ISIS . VWhere 1.3.10: - more flexible for use of namespace-qualified variables, as well as references to struct field names & local variable - bugfix for log plotting, reported by Dave Huenemoerder . bundled new S-Lang GIF module, for better animation support . configuration/build: - cleaner, with most output redirected to config.out - updated config.guess, config.sub to latest versions - various build patches and suggestions from John Davis and Jorg Sommer, for compile warnings, Makefiles, and autoconf . wdisplay: displayed widget now reusable after toplevel win is destroyed . mouse button/motion events now have x_root & y_root coordinate fields . gdk_pixbuf_get_pixels() returns UChar_Type[M,N] instead of opaque type . configure: -32/-64 options may now be used to mandate 32/64 bit compile . wrapped GdkPixbufSimpleAnim (simple animations), GtkPlug & GtkSocket . examples/socket.sl to exercise GtkSocket/GtkPlug (see src/slgtk-demo) . wrapped GtkUIManager (and used in socket example) . wrapped GtkAction & GtkActionGroup (and used in socket example) . Reflect SLIRP 1.9.7 typing scheme: e.g. opaques have _Type suffix . establish Gtk 2.18 support (compat. problem reported by A. Shuvaev) . routines with a GError** in their signature (to pass error state back to caller) are now wrapped with a SLIRP annotation to elide the GErrror from the signature; instead, a S-Lang error will be throw containing GError instance as the "object" field of the thrown exception. Routines impacted by this are the gdk_pixbuf_new_* gtk_ui_manager_add_* sets of functions, among others. Version 0.7.5: code-named "Shuvaev" . patches to wmhints and textview examples (submitted by Alexey Shuvaev) . fix GtkLayout bug, apparent in cube demo (reported Alexey Shuvaev) . _gtk_plot() and gtk_oplot() now allow canvas size to be customized with width= & height= qualifiers (in pixel units) . rgbselect 0.9.4: use new qualifiers to make its default size smaller Version 0.7.4: . Renamed PACKAGES macro in Makefiles, to avoid conflicts with FreeBSD build env (reported/fixd by Alexey Shuvaev) . Established compatibility w/ Gtk 2.14.7, which introduced several functions with same names as wrappers SLgtk has provided for years i.e. gtk_widget_get_window(), gtk_adjustment_get_upper() etc; SLgtk now provides these only for Gtk < 2.14 (reported by Alexey Shuvaev) . Imdisplay 0.3.6: - Ensure that saved files reflect size/orientation/etc of final rendered image, not that of source image(s). . Added OO-like connect()/disconnect()/block()/unblock() methods to GtkPlotDescriptor, for more elegant signal management . VWhere 1.3.10: - Upgrade SLang prompt field from a simple text entry widget to the full gprompt terminal widget (described below). - Region filters now support exclusion: pressing the 'e' key while creating a region (or after selecting one) marks it with a slash so as to exclude the points it contains Version 0.7.3: . Two Makefile patches for Debian compliance (Rafael Laboissiere, at, Debian) . Fix an incorrect attempt at dereferencing in gtkplot.sl . Modified array/function dereferencing in gtkplot.sl, for compatibility with SLang 2.1.x. . Stop leaving items on stack in contributed rgbwidget.sl . Search for .dylib shared libs when establishing S-Lang install location on Darwin, and .dll.a libs on Cygwin. . Detailed usage info may be viewed for imdisplay by passing "help" option to the functional form or command line wrapper. Version 0.7.2: . VWhere 1.3.9: - When a vector is passed with the & operator VWhere will reflect the proper variable name in the Axis Expression window, instead of assigning the less-meaningful "arrayN". . imdisplay 0.3.4: - new "panes" option added, to support display of multiple images using either horizontal or vertical tiling - multiple animations may now be displayed, and even commingled alongside static images - fill rule may now be specified in an option string, and now defaults to "scale" instead of "none" - imdisplay_defaults() function added, for option persistence - 1D images which can be reshaped to NxN are now accepted . changed S-Lang semantics of C Gdk function void gdk_window_get_frame_extents(GdkWindow, &GdkRectangle) to GdkRectantle gdk_window_get_frame_extents(GdkWindow) . more sophisticated placement/reparenting strategies for win chaining . rgbwidget version 0.3.0, which adds POW scaling and version info Version 0.7.0: . VWhere 1.3.8: . elminate potential crash after Cancel-ing plot window . added log scaling for axes . cleaner & more accurate axis titles & tick labels . tooltip help for Quit button in control window . Mininum S-Lang version is 2.0.5 (1.x series no longer supported) . Updated WITH_LIBRARY & related autoconf macros . Added new functions to simplify log/lin scaling in plots: _gtk_plot_set_scale, _gtk_plot_xlin, _gtk_plot_ylin, _gtk_plot_xlog, _gtk_plot_ylog Each expects 1 plot descriptor arg & operates upon the current plot. . GtkPlot widget updates: . gtkplotps.c driver (avoid segv w/ superscripts) . gtkplot.c: provided alternative PGPLOT-like tick marks calculator . gtkplotdata.c: do not SEGV when ticks->values is NULL . Cairo suport: . conditional activation of PDF, PS, & SVG surface support . conditionalized Cairo wrappings . cairo example may now be optionally saved to PDF file . Bundle SLIRP 1.9.3 Version 0.5.18: . VWhere 1.3.5: . use new event state field to detect keyboard SHIFT modifier in S-Lang prompt, yielding more natural mouse1/2/3 behavior. . New _gtk_window_chain() utility, which allows one window to follow another around onscreen when moved (see slgtk-demo chained example) . imdisplay 0.3.1: . support image size/flip/flop customizations at invocation . image and controls now displayed in separate, chained windows . Updated documentation, including content for slsh/isis "help" . New gprompt widget: a Gtk-based S-Lang prompt, providing a lightweight terminal-like capability; uses a GtkEntry widget for prompt input, a GtkTextView widget for scrolled output, and key event callbacks for simple arrow command history navigation. . Support Gtk 2.10.9: minor tweaks to SLIRP interface files & configure scripts, and new binaries for several platforms. . New examples: window.sl, tabs.sl, gprompt_example.sl: which may be used independently of slgtk-demo (but are not S-Lang1 compatible) chained.sl: window chaining (see above), w/ customizable gravity . gtk_text_buffer_get_iter_at_mark() now returns iter on stack. . Support GtkExpander widget . Motion, button press, and key press events now contain 'state' field. . Support key release events . Bundle TESS 0.3, so under S-Lang 2 regression tests may be run without needing separate download. Version 0.5.17: 1. VWhere 1.3.4: . Assign a name to eval() namespace if it's unnamed, to help mininize mangling of struct field names (e.g. time --> __time) . Discontinue propagating existing vectors to new namespaces & warn that only experts should attempting changing namespaces 2. First release bundled with SLIRP 1.9 release series (1.9.1 required) 3. Use of SLIRP bundled with SLgtk is now optional; the --with-slirp configure switch may be used to specify an alternative 4. slgtk-demo warns when widgets are not NULLed by gtk_widget_destroy() 5. Version information changes: . _slgtk_version, _slgtk_version_string renamed to _gtk_module_version and _gtk_module_version_string . Eliminated redundant _slgtk_[major|minor|micro]_version variables 6. Altered how binary distribution configure script ascertains the slang version from slsh (for S-Lang 2.0.7 compatibility). Version 0.5.16: 1. Gtk 2.8 compatibility, with nominal Cairo rendering support 2. New Cairo rendering example at examples/cairo.sl 3. Bulletproof builds and tests against SLSH environment variables 4. Simplify src/Makefile generation by using SLIRP -I switch to specify include dirs, instead of prefixing full path to each file 5. Added new smoketest target to tests/Makefile. It does not require TESS, a connection to X11, or xvfb-run, so it's well suited for use in unattended scenarios (cron jobs, automated builds, etc) 6. Made it easier for end-users to spot build errors, while not compromising my desire for clean build output in the common case 7. VWhere 1.3.3 enhancements: . new plots may now be overplotted onto existing plot pane . added nominal tests for Nan/Inf values within plot data . improved documentation 8. Top level test target no longer exercises SLIRP by default Version 0.5.15: 1. Image plot now checks that 24 bit display is available 2. VWhere 1.3.2 enhancements: - newer pref settings in .vwhererc are encapsulated w/in version tests - runtime variable aliases created by vwhere() are now guaranteed unique, so as to avoid overwriting any existing symbols 3. Install rule for contrib/gdk-pixbuf FITS module now uses @sysconfdir@ 4. Debian packaging (motivated or contributed by R. Laboissiere @ Debian) - Gtk 2.6.10 build compatibility - Makefile tweaks for relocatability - Much more up-to-date config.sub and config.guess scripts - The bundled version of SLIRP is no longer installed by default when installing SLgtk proper - Install imdisplay.1 man page Version 0.5.14: 1. Major enhancements to imdisplay() function: - to accept multiple inputs (files, pixbufs, or image arrays), which will be drawn stacked on top of one another, respecting transparency (suggested by John Davis) - support scaling, tiling, and saving to multiple output formats - also wrapped w/in imdisplay slsh script, so that it can be used easily from the O/S command line 2. Demo these new features within new slgtk-demo "imagedisplay" example 3. Added transparency drawing example to slgtk-demo 4. Added wireframe cube drawing example to slgtk-demo 5. FITS GdkPixbuf module now supports output, too 6. Reflect latest enhancments in SLIRP 1.7.x release series 7. Reflect SLang2 module installation policy (using v2/modules), in both source and binary SLgtk distributions 8. Wrapped GdkVisual, GdkScreen, and GdkDisplay objects, meaning that most of the gdk_visual_*, gdk_screen_*, and gdk_display families of functions are now wrapped (and accessor functions exist for the public GdkVisual object fields) 9. Wrapped gtk_idle_add_priority() function 10. Wrapped gdk_pixbuf_animation_new_from_file(), and made its GError ref parameter optional 11. The GError ref parameter is now optional for gdk_pixbuf_new_from_file() 12. gdk_query_depths now takes zero args and returns the depths array on the stack, rather than taking taking 2 reference arguments 13. Introduced _image_save_dialog(), to simplify user-level coding of the saving of GdkPixbuf-based images (to GdkPixbuf output formats) 14. Introduced _error_dialog(), to simplify user coding of error popups 15. Allow NULL to be passed for: - second (pixmap) argument of gdk_window_set_back_pixmap() - first (pixbuf) argument of gdk_pixbuf_get_from_drawable() - second and third args (pixmap,bitmap) of gtk_image_get_pixmap() - first and third args of gdk_pixbuf_get_from_drawable() 16. VWhere 1.3.0 changes: - added interactive prompt, for executing arbitrary S-Lang expressions - added mechanism for altering namespace in which they're executed - preferences: . simplfied navigation of current/future plot settings . save more prefs values to ~/.vwhererc . apply/save buttons give visual cues as to when they may be used . prefs may now be launched up by pressing MOUSE3 while over canvas - more graceful support for zero-length data - internal reorganization to reflect SLang2 provide/require/namespaces 17. xvfb-run now described in documentation proper, not just in CHANGELOG 18. Added _input_dialog() function (popup to gather small amount of input) Version 0.5.13 (02/09/2005): 1. Portability tweak for static binary builds with old Solaris cc. 2. rgbselect() enhancements: . generalized to allow 3 histograms (e.g., of the pixel intensitities of 3 images) to specify the R, G, and B selections . replaced internal "status" field with "dirty", so that now 1 is returned to indicate "dirty" (color selection changed), while 0 is returned to indicate "clean" (no changes) instead of -1 3. Added user_data field to GtkPlotDescriptor struct, which supports attaching arbitrary information/data/etc to plots. 4. Enhancements to contributed rgbwidget display tool: . limit initial size of display window to 512x512, and center logical image within physical display . correct apparently old problem of swapping blue/green scalings 5. Reactivate GtkCurve and GtkGammaCurve wrappings for experimental use 6. Add more info and extra precautionary measures to the documentation and scripts for the standalone binary distribution Version 0.5.12 (01/09/2005): 1. Turn off strict aliasing for newer GCC compilers 2. Bundle S-Lang 2 stkcheck.sl within SLgtk/examples 3. Fabricate new Gtk version variable, _gtk_version, as the value 10000*GTK_MAJOR_VERSION + 100*GTK_MINOR_VERSION + GTK_MICRO_VERSION 4. Added wrapper for g_signal_connect_after() 5. VWhere 1.2.5 changes: . Gtk2.4 compatibility: swallow return value from GtkNotebook funcs which as of 2.4 return an int ; generalize scheme for changing the current notebook tab/page after new plots are created . use | to separate X,Y axis labels on plot tabs, instead of / . vectors generated from arithmetic expressions are now reflected in dropdown menus for use in generating additional plots Version 0.5.11 (12/19/04): 1. Vwhere 1.2.4 enhancements: . use current plot zoom/shift as defaults when creating new plots . minor preferences tweaks 2. Contributed RGB widget now zeros its pixbuf prior to drawing, which eliminates UMRs (reported by Kenny Glotfelty, kjg@cfa.harvard.edu) 3. Bundle latest SLIRP version (1.5.0) 4. Migrate automated regression tests to use standalone TESS module 5. Initial support for S-Lang 2 6. Show the S-Lang version number within the slgtk-demo main window Version 0.5.10 (6/23/04): 1. Plot display now scrolls when new plots are added that won't fit within existing window, instead of indefinitely enlarging (and changing the aspect ratio of existing plots) 2. Updates for packaging/installing new releases of binary distribution. Version 0.5.9 (06/21/04): 1. Bugfix: filter results were not being combined from multiple plots Version 0.5.8 (06/16/04): 1. Added orientation and paper size options to print dialog 2. Support passing multiple callback args to callback funcs registered via gtk_idle_add(), _quit_add(), _timeout_add(), and _container_foreach() 3. SLgtk GtkPlot widget wrapper enhancements: . if line color is specified to _gtk_[o]plot() then that color will be used for the symbol as well . generic plots now connected with straight line, unless npoints(plot) is very large; in this case connecting symbols adds litte, so for performance and memory conservation line drawing is turned off . added _gtk_plot_set_vlpsize() to customize the (v)ery (l)arge (p)lot size cutoff value (default: 500k points) . added _gtk_plot_print() convenience function to simplify plot printing, optionally using the print dialog (see docs) . now possible to generate plots without X display, via bundled Debian xvfb-run script (modified to run on multiple platforms) . experimental _gtk_plot_image() function: plot descriptor can now be generated directly from image pixel array, which supports, eg, overlaying scatterplots directly onto FITS/RGB images (see demo) 4. New slgtk-demo example: plot overlaid onto image, with printing 5. GtkPlot widget enhancements (not yet fed back to GtkExtra@SourceForge): . avoid symbol drawing loop when symbol=NONE or (symbol=DOT and symbol_color = line_color), which can double or triple rendering performance for common plots 6. Minor tweaks to improve autoload()-ability and multiple evalfile()s 7. GtkExtra package now separately loadable via require("gtkextra"); 8. Bundle latest SLIRP version (1.0.5, see SLIRP CHANGELOG for details) Version 0.5.7 (04/30/04): 1. Configuration ehancements: . gracefully handle tests for newer FreeType2 distributions . default prefix to /usr, r/t /usr/local, if slang found there instead 2. Added generic _print_dialog() function, which can be called to perform guilet-specific printing functions 3. Vwhere 1.2.1 enhancements: . use new _print_dialog() for hardcopy output, complete with zoom . deprecate use of GtkPlot widget spline connector/line style; it is only cosmetic sugar, the unacceptable price for which was occasional Nan and Inf values during spline generation . plot points are no longer connected (by line of any style) by default . use thinner lines and smaller ticks when drawing plot bounding box 4. slgtk-demo script no longer changes $PWD, so that files generated during its execution can be found in the expected location 5. GtkPlot widget enhancements (not yet fed back to GtkExtra@SourceForge): . moved 3 lines of gtkplotdata.c code, effecting ~2X speedup in plot rendering and >50% reduction in postscript output file size . WYSIWYG: PS driver now uses larger pen size for dots, so hardcopy will bear a closer resemblance to screen for plots with symbol=dot . simplified axis tick labels by removing needless digits, decimal pts, and exponents (eg: 0x10e9 --> 0, 5.0 --> 5, 1x10e31 --> 10e31) . added new api funcs to support defaulting selected plot parameters (only axis and tick widths and lengths for now), which simplfies top-level code by eliminating redundancy . new default positions of left and bottom axis titles [ (x+0.03, y) and (x, y+0.01), respectively], to prevent former from being clipped, and make latter easier to read, on hardcopy output 6. Bundle latest SLIRP version (1.0.2, see SLIRP CHANGELOG for details) Version 0.5.6 (04/02/04): 1. VWhere 1.2.0 enhancements: . introduced nomenclature of "background" and "foreground," which respectively describe the points filtered/selected by the region filters applied to a given dataset . support drawing connector line between bgkd points . support aligning bg connector/line with fg, and in same line style . new line style toolbox button, to simplify linestyle configuration . display current zoom factor of each plot pane . numerous enhancements to preferences window: - use new PrefSelector widget described below - symbol shape, style, and size are now configurable - reorganized prefs win by subdividing into 3 tabbed subwindows 2. Abstracted vwhere prefs into a flexible/powerful PrefSelector widget, accessible from public SLgtk api [_pref_new(), _pref_new_from_func(), etc] 3. Added gtk_object_type_name() wrapper for GTK_OBJECT_TYPE_NAME() C macro 4. Added _menu_new() convenience function (see docs) 5. Simple wrapping for gtk_menu_popup(), minus support for parent menu and position func parameters (per Gtk docs, typically these are unused) 6. New SLGTK_STOCK_LINESEG stock icon, which is accessible through gtk_image_new_from_stock() et al 7. _gtk_[o]plot() now support optional line color/style (see docs) 8. Caller may now specify an optional signal name to toolbox_add_button(), to override default (that toolbox buttons act only upon "clicked" signal) 9. Preliminary support for g_list_* family of functions (doubly-linked list) 10. Support plot erasing, via _gtk_plot_remove() 11. Wrapped GtkExtra postscript driver, to support printing of plots. 12. Minor doc improvements. Version 0.5.5 (03/12/04): 1. VWhere 1.1.1 enhancements: . global prefs persist for all invocations w/in a single process . incorporates zoom factor while panning, yielding finer/coarser scrolling when zoomed in/out . added zoom-to-fit, which zooms in on rubberband selection . change cursor : - to a watch (e.g. when doing potentially lengthy redraws) - to a crosshair (during zoom-to-fit by rubberband box) 2. Configuration/build enhancements: . script now aborts if Gtk 2.2 or later cannot be found . removed --with-gtksrc and --with-glibsrc options . lower end-user entry barrier by supporting release of binary distributions with module containing Gtk et al statically linked in (see new --with-gtk-static option) . no longer build static library and slgtksh by default for non-devel builds (they're mainly for debugging, and this saves ~50% build time) . code now compiled with much stricter flags during test builds 3. Remove typo from src/slgtk.c (davis@space.mit.edu) 4. Generalize utility scripts in ./test, for use elsewhere 5. Added top-level test: target 6. GSList* and GdkPixbufFormat* now supported as opaque types 7. Nominal suport for g_slist_* family of functions (singly-linked list) 8. New _gdk_pixbuf_get_formats() SLgtk func, like gdk_pixbuf_get_formats() Gdk func, except it returns an String_Type array of format names 9. Bundle SLIRP v1.0.1, which is now available standalone. SLIRP enhancements will now be listed only within the SLIRP CHANGELOG. 10. Added new convenience functions for setting axis labels: _gtk_plot_set_xlabel() _gtk_plot_set_xlabel() _gtk_plot_set_labels() 11. Axis label backgrounds are now transparent (i.e. match canvas color) 12. Added gdkpixbuf.h to SLIRP gdk.lst, for gdk_pixbuf_render_* funcs 13. RGB image display widget (packages/rgbwidget.sl): . now based upon GtkLayout, instead of GtkDrawingArea, so that other widgets may be superimposed . generalized constructor, to accept EITHER distinct arrays for each r,g,b band (original coding) OR a single array (which, after normalization, will be used for each r,g,b band) Version 0.5.4 (01/09/04): 1. SLIRP 0.9.9 enhancements: a) functions which return arrays of indeterminate size (like int*) are longer rejected, but rather will have their return values mapped to opaque pointers b) demonstrate this in slirp/examples/triv sample code c) added sample slirprc for MySQL to ./examples d) moved slgtk_debug_pause() util func from SLgtk internals to SLIRP proper [renamed to slirp_debug_pause()], for use in all modules e) ditto for _toggle_error_handler() utility func f) improved and reorganized documentation 2. Roughly 20 new functions added to SLgtk module as a result of 1(a) Version 0.5.3 (12/24/03): 1. VWhere 1.1.0 enhancements: - data may fabricated on the fly with arbitrary S-Lang expressions - may now specify any number of arrays, instead of just 2, when not inputting a structure - plots may now be deleted (just point and click!) 2. SLIRP 0.9.8 enhancements: - support import() of >1 SLIRP-generated module into single app - support nested resource files, and sharing of type definitions, with new slirp_include_rc(filename) function 3. Install src/slirprc-gtk.sl to /share/slsh/local-packages, for use in other SLIRP-generated packages which wish to build against SLgtk. 4. Added gtk_widget_show(item) calls to menus examples, to show benefit of menus knowing the size of their largest item (dburke@cfa.harvard.edu). 5. Progress bar example enhancements: - use timeout to increment progress indicator, instead of button press - use no file-global variables (slightly better coding style) - call gtk_widget_show() on menu items, for reasons similar to above 6. Added wrappers for GTK_WIDGET_SENSITIVE and GTK_WIDGET_CAN_FOCUS macros. 7. Percolate time field in GDK button events up to S-Lang layer. 8. Built and tested on Mac OS/X 10.3.1, against Gtk 2.0.6 and 2.2.1. 9. Added Makefile protection to avoid problems from false rebuilds on LANs with NFS drives hosted from machines with mismatched system clocks. Version v0.5.2 (12/10/03): 1. Removed constraint from embedded gdk_colormap_alloc_color() calls that allocated colors be 'writable', to more gracefully support smaller color systems (as writable colors cannot be shared). Version v0.5.1: 1. SLIRP 0.9.7 enhancements: - extended type ancestry support: an opaque type may now have a hierarchy of ancestors, instead of just one. 2. Use new SLIRP ancestry support to encode knowledge of most the Gtk class hierarchy within SLgtk. Among other things, it is now possible to: - use g_signal routines on any GObject instance, not just GtkWidget - ditto for g_object set/get q/data routines on any GObject instance - catch many more type mismatch problems at the S-Lang layer, instead of allowing them to cascade down into the C layer of Gtk proper 3. Wrapped gtk_container_foreach() 4. Created gtk_widget_get_allocation() to return (GtkWidget*)->allocation field. Added a use case to examples/drawarea.sl sample code. 5. Added nominal support for: - GtkItemFactory object - g_quark_* family of functions. - g_param_spec_* family of functions - GtkTextChildAnchor object - GtkCellRender object (and children) - GtkListStore object (and sample code at examples/liststore.sl) - GtkTreeView widget using a GtkListStore model 6. Wrap fundamental G_TYPE_* macros (gtype.h) as S-Lang ulong constants. 7. Wrap G_TYPE_PARAM_* macros (gparamspec.h) as S-Lang ulong constants. 8. Attempting to create a text tag from an unbalanced name/value property list now signals error, instead of creating the tag with zero properties. 9. gtk_text_buffer_get_iter_* routines now return the GtkTextIter result on the stack, instead of using a reference parameter (as in C api). This is the more natural S-Lang usage, and requires less code than in C. 10. VWhere 1.0.6 enhancements: - improved zooming and panning - added preference to customize default plot line/connector style 11. Simplified build process and improved performance. Version 0.3.15: 1. Carved out and generalized portions of vwhere(), to produce two new plotting functions: _gtk_plot() and _gtk_oplot() (see docs for details). 2. Added vwhere() option which, when applying filters incrementally, toggles whether filtered/excluded points will be drawn on subsequent plots. Omitting excluded points can vastly speed up drawing of filtered plots. 3. Use new functions in development of an RGB color selector, which is used to demo the histogram module and also exists as at examples/rgbselect.sl. 4. Vwhere plot windows may now be enlarged (but not yet shrunk). 5. Map GtkAllocation to a structure type, instead of GtkOpaque, which allows better support for "size_allocate" signals: now an actual GtkAllocation struct (an alias for GdkRectangle) will be passed during signal closure. 6. Do not strip module at install time for development builds. 7. Fix to GtkPlot widget, to ensure at least 1 tick is drawn for log axes. 8. Configure events now reflect the x, y, width, and height fields. 9. Accept NULL for second arg of gtk_plot_refresh(plot,rectangle) 10. Expose events in S-Lang scope now reflect the area GdkRectangle field. 11. More graceful handling of non-recoverable S-Lang errors occuring prior to entering the main loop. 12. Create soft links to install location for local MIT development builds. 13. Three contributions from John E. Davis (davis@space.mit.edu): . New gdk_pixbuf_save() function . New gdk_pixbuf_from_data() function . An SLgtk image viewer widget (packages/rgbwidget.sl) 14. Configuration enhancements (see configure --help for details): - migrated --with-slangdir option to --with-slang as used by SLang GSL module, to improve consistency - ensure dynamic lib for importable module can include debug info - simplified by removing most of the M4 code from Gtk configure, in favor of using pkg-config directly, optionally controlled by new --with-pkgconfig option. 15. Renamed src/testslgtk to slgtk-demo, to better reflect its purpose. 16. Introduced new ./test directory, to house automated regression tests. 17. Introduce slgtk_debug_pause() for setting debug breakpoints after the the module has been loaded. See documentation for details. 18. Added Greek text to examples/labels.sl sample code. 19. Added several global GdkColor instantiations to gtk.sl: gdk_red, gdk_green, gdk_blue, gdk_black, gdk_grey (see docs for more details). 20. Added #ifdefs to installable SLgtk packages, to account for possibility that provide()/require() may not be available in parent application. 21. Deprecated _get_range() function. 22. Added gtk_widget_toplevel() as wrapper for GTK_WIDGET_TOPLEVEL() macro. 23. Added wrapper for gtk_quit_add(). 24. Added _gtk_window_destroy_with(window,parent), as a one-step way to set a windows transient parent AND have it be destroyed with that parent. 25. Corrected several problems in the GtkExtra GtkPlotCanvas widget, with gtk_plot_canvas_set_size() and log axis ticks. See src/gtkextra/README for details (not yet backported to GtkExtra CVS at SourceForge). Version 0.3.8 (9/17/2003): 1. SLIRP 0.9.6 changes: - added ignored_macros[] assoc array, which serves same purpose for #define macros as ignored_functions[] does for functions (see docs) - generalized opaque.c: moved remaining pop_*_or_null funcs from SLgtk proper to SLIRP, for accessibility within any module - renamed opaque.[c|h} to slirptypes.[c|h] to reflect generalization - better support for C comments embedded w/in function prototypes 2. Register GdkGC and GdkDrawable as unique types (src/slirprc.sl), to promote type-safe usage at the S-Lang layer. More to come ... 3. Added 3 histogram connectors to vwhere() plot preferences. 4. Documented the checkgtk, slgtksh, testslgtk, and importify utilities. Version v0.3.7 (9/11/2003): 1. Use -n slsh option for builds, to avoid side effects from $HOME/.slshrc. 2. SLIRP 0.9.5 changes: - Ensure that the bizarre obfuscation performed by f2c of suffixing two underscores to FORTRAN routine names containing one or more underscores is excised by SLIRP from the S-Lang scoped func name. - Prepend $PWD to S-Lang load path at startup, to ensure that even a vanilla slsh has a chance of finding a local $PWD/slirprc file. 3. vwhere 1.0.3 changes: - Incremental filtering, which dramatically increases the utility of vwhere for visual data inspection. By default region filters from currently visualized plots will be used to mark included/excluded points on newly created plots (suggested by Dave Huenemoerder, dph@space.mit.edu). - Expanded preferences dialog, to provide support for . combining filter indices from multiple plots via either intersection or union (see docs/help for more). . setting foreground/background colors for included/excluded points - be more memory conservative when combining vwhere() region filters 4. Created packages/Makefile for installing .sl files, r/t src/Makefile. 5. Added a bit of compulsiveness to the top-level Makefile, to maximize consistency from release to release (vis-a-vis build summaries, etc) 6. Added palette to color selector example. 7. Added gtk_color_selection_[set|get]_color functions to ignore list, as per the Gtk 2.x docs they have been deprecated. 8. Added gdk_color_selection_get_current_color() to ignore list, in favor of manual coding which rtns GdkColor struct on stack [like gdk_color_parse()] 9. Added powerful color selection via _color_button_new() func (see docs). Version v0.3.6 (8/16/2003): 1. SLIRP 0.9.3 changes (preparations for existing as standalone package): - added configure script to SLIRP subdirectory of SLgtk - a wee bit more documentation - created SLIRP web page at http://space.mit.edu/~mnoble/slirp, and added link to "SLIRP-ing FORTRAN into S-Lang" talk 2. SLgtk configure script now invokes SLIRP configure 3. Minor file reorganization(s). Version 0.3.5 (8/4/2003): 1. SLIRP 0.9.2 changes: - initial support for generating modules from FORTRAN 77 source (see slirp/doc for more details) - exit with non-zero status if there is _any_ error whilst generating code for _any_ (of the potentially multiple) input files, which gives make a better chance at identifying code generation failures - streamlined code emission for multiple input files: when both a module name (-m option) AND multiple input files are specified, generated code/constants/functable entries/etc will be emitted to only one file (prefixed with the module name), rather than one file per input file name (prefixed with the input file name stem) - More stringent tests of #define macros for intrinsic const emission - Consolidated most state control variables into SlirpController struct 2. Silence compile warnings seen in io-fits.c w/ very old SparcWorks compiler. Version v0.3.4 (issued 07/11/2003; repackaged 7/14/2003): 1. Win32 portability. See doc/win32.notes for details. 2. During module importation, emit message upon Gtk initialization failure. 3. Stricter SLIRP code emission, towards compilation under stricter C++ rules. 4. Added sample SLIRP resource file for generating OpenGL (Mesa) module (slirp/examples/slirprc.opengl) 5. More accurate installation of FITS pixbuf loader, through the use of "pkg-config --variable=gtk_binary_version" 6. Various minor improvements to utility scripts and SLIRP. Version v0.3.3 (07/3/2003): 1. When reusing a key with g_object_set_data() there's no need to free the data previously registered ... the underlying GObject code will do it. 2. Ensure persistence of tooltips in examples code. Version v0.3.2 (07/1/2003): 1. For symmetry with other shapes, vwhere() now permits creation of polygons with some vertices beyond the plot axes. 2. Minor usability enhancements to importify script. 3. The GdkPixbuf loader for FITS images may now be built directly from the SLgtk tree, instead of being copied into the gdk-pixbuf subdir of the Gtk2 distribution. Use 'make pixbuf_loader' to build it, and see contrib/gdk-pixbuf/README for more details. 4. Draw/refresh polygon segments only after expose event received (vwhere), which eliminates spurious cruft (leftover 1st segment) on slow X servers. 5. Added guaranteed 16, 32, and 64-bit size type mapping funcs to SLIRP. 6. More documentation. 7. Added admin/cvs_changed packaging utility, used to restore "cvs edit" tags when they've been clobbered by an apparent bug in CVS checkout. Version v0.3.1 (06/20/2003): 1. Added S-Lang byte compiler utility script at admin/slbytec 2. Code generator enhancements: - to avoid conflict with existing tool (also a code generator!), renamed from sip to slirp (pronounced "slurp") - simplified/unified the type system - use byte-compiled scripts for faster builds - added support for multiple opaque types in bindings - added support for installing finalizer and memory cleanup funcs on a per-type basis - extended the examples/triv sample application - 2 new command line options: -genopaques, -const_strings All told these make the generator almost mature enough for a 1.0 release, so the version was jumped from 0.2 way up to 0.9. 3. This simplifies code at the S-Lang layer, since the user should be mostly freed from explicit memory management concerns (i.e., there s/b little need to explicitly call ref/unref/destroy functions in S-Lang code) 4. Deprecated GtkGammaCurve GtkInputDialog widgets: per the Gtk docs, both are too specialized (and are slated to be moved elsewhere). 5. Ensure event.button values are always propagated correctly (slgdk.c) 6. A good bit more SLIRP and SLgtk documentation. 7. Eliminate several large .defs files from distro (they were unused). 8. Minor refinements to the ./examples code. 9. Rigorously valgrind-ed the codebase: testslgtk --auto shows zero leaks. 10. Switched from GNU license to MIT license. 11. Discontinue using UPPER_CASE_NAMES() (in favor of lower) for funcs which map to #define macros, because functions REALLY_OUGHT_NOT_SHOUT() at you! Version v0.3.0 (05/30/2003): 0. Adopt defacto convention for release versioning: odd minor ver implies a development/testing release; even minor ver implies a stable release. 1. Subsumed selected portions of GtkExtra package, created by Adrian E. Feiguin , into src/gtkextra. 2. Added ./packages directory, to house package-ready SLgtk scripts. See README therein for more details. 3. Removed contrib/pgfilt directory, morphing its previous content into ./packages/vwhere.sl ("visual" where command). For more details see ./doc/slgtkfun.txt and ./examples/viswhere.sl. 4. Support GtkFunction-based callbacks, to enable gtk_timeout_add() and gtk_idle_add. More will come over time (like gtk_quit_add). 5. More enhancements to the examples code: - use new GtkFunction callbacks to support new --auto switch, which supports running the entire suite in automated fashion. Try it! - any test may now be launched directly from commandline as argv[1] - demonstrate more of Pangos incredible capabilities by subsuming more of the 'labels' example from Gtk/tests/testgtk.c into labels.sl - added timeout.sl to mirror similar test in testgtk.c 6. Improved GdkEvent support: SLgtk events are no longer GtkOpaque instances, but rather S-Lang structs proper. Every event will reflect the three core GdkEventAny fields (type, window, send_event). Additionally, motion notify and button events contain x,y coord fields, while keypress events also contain a keyval field. 7. Support NULL args for gtk_image_new_from_pixmap, gtk_label_new, gtk_tooltips_set_tip, and a few more gtk_radio_button constructors. 8. Subsumed slsh version 0.6 (from S-Lang v1.4.9, which is now required) 9. gdk_color_parse() now takes only 1 parameter (the color name) and returns the instantiated GdkColor struct on the stack rather than through a variable reference (see doc/usernotes for more details). 10. Moved gtk_main_quit() from automatically generated codebase to manually coded version in src/slgtk.c, to provide the nice feature of clearing the top of the stack when called from a connected signal handler. 11. Added SLGTK_STOCK_RECTANGLE, SLGTK_STOCK_ELLIPSE, and SLGTK_STOCK_POLYGON as stock icons retrievable through gtk_image_new_from_stock() et al. 12. Added examples/toolbox.sl (which references these new stock icons). 13. Added several non-Gtk-specific funcs (see doc/usernotes for details): _is_callable(), _is_numeric(), _get_range(), _inside_ellipse(), _inside_rectangle, _inside_polygon() 14. Eliminated gtk_object_[get|set]_user_data() and gtk_window_set_policy() functions, as per the Gtk docs they have been deprecated. 15. Purified a couple of minor leaks. 16. Conform to version convention established in S-Lang modules memo. In the process, prefixed gtk_* version variables with underscore for consistency. Existing SLgtk apps which use these will need to change. 17. Scrawled yet more notes into doc/usernotes, and began writing formal documentation in doc/tm. Check new web page at http://space.mit.edu/~mnoble/slgtk for latest documentation. 18. Employ new provide/require functionality (added to slsh v0.6) for vwhere and toolbox packages in ./packages. 19. Generate wrappers for 6 gdk_pixmap_* functions. 20. Discontinue wrapping ~25 deprecated gtkstyle.h funcs (gtk_draw_*, etc). 21. Various GNU configuration enhancements: - new options: --with-moduledir, --with-packagedir, --with-docdir, and --with-slangdir. Issue ./configure --help for details. - Strip unused cruft from admin/aclocal.m4. 22. Ensure validity of non-NULL GValues prior to trying to pop callback return values into them, as a defensive measure. Version v0.1.5 (03/28/2003): 1. More SIP enhancements: . More graceful handling when args given to glue funcs are correct in number but incorrect in type . Support passing of NULL values for structure-typed arguments of functions listed in accepts_null_args array. 2. Added type mapping for GtkPlotCanvasChild* (to GtkOpaque), which enabled support for numerous additional GtkExtra functions, including gtk_plot_canvas_put_ellipse(), _put_line(), _put_rectangle(), ... 3. Added more comments about error handling to doc/usernotes. 4. Add sample GtkLayout and GtkDrawArea code (see layout.sl and drawarea.sl w/in ./examples, the latter of which evinces a polygonal interior point detection algorithm). Together these pave the way for defining/using arbitrary region markers on top of plot canvases. 5. The manually-coded gtk_widget_get_window() function now returns the 'bin_window' field for GtkLayout widgets, instead of 'window' (as is done for all other widgets). Per the Gtk docs 'bin_window' is the field that should be drawn to in GtkLayout widgets. 6. Created gdk_rectangle_new(x,y,width,height), which doesn't exist within the Gtk/Gdk api, to instantiate GdkRectangle structs in S-Lang scope. This is preferable to creating a GdkRectangle S-Lang typedef and using @GdkRectangle syntax for such, as the latter would require additional stmts to initialize each field of the rectangle struct. 7. Added gtkstyle.h to list of Gtk headers from which code is generated, adding 50+ style-related functions to the module. 8. Added wrappers for GTK_WIDGET_IS_SENSITIVE and GTK_WIDGET_STATE macros. 9. Sweep through examples code, - simplify/generalize loading - support reloading S-Lang scripts while GUI driver is running. - deprecate some functions, finally migrate others to Gtk2, etc 10. SLang_push_opaque will now push a NULL when it is given a NULL, instead of hiding it within an essentially useless GtkOpaque instance (gtk.c). 11. Added admin/buildtest.sl, to test/verify automated remote builds. 12. Improved configurability by setting explicit path to 'ar' and 'gcc', which helps run cron jobs with minimal $PATH. 13. Added gdkregion.h to list of headers from which code is generated, adding numerous GdkRegion funcs (including several manually coded) to module. 14. Created gdk_region_arrays(abscissae,ordinates,fillrule) function (which does not exist in Gtk/Gdk api). Like gdk_region_polygon() counterpart (which as yet is unsupported in SLgtk), this func instantiates a GdkRegion, but from integer arrays rather than GdkPoint struct arrays. Version v0.1.4 (03/17/2003): 1. Restored configure script default --prefix to /usr/local 2. Added support for GtkProgressBar widget, with simple ./examples code, but its utility is hampered by the absence of gtk_timeout_* support. 3. Added GtkEntry example (widget has been supported for months). 4. Generate field accessor funcs for "public" GtkAdjustment fields for which the widget provides no corresponding methods (broken!). 5. Added support for GtkEditable class and related functions. 6. Discontinue support for GtkCombo, since it relies upon deprecated GtkList. 7. Support pushing marshalled gpointer instances as GtkOpaque types. This enables, among other things, correct GtkNotebook _page callbacks. Version v0.1.3 (03/15/2003): 1. Significant SIP (code generator) improvements: . Added actual documentation in ./sip/doc, and a complete working example to ./sip/examples/triv. Documentation is also online at http://space.mit.edu/%7Emnoble/sip/doc . Automatically generate code for "Usage:" statements, which will be emitted when intrinsic funcs receive the incorrect # of args . Bundled another sample siprc file in ./sip/examples (a working siprc is already given at ./src/siprc.gtk) . -funcprefix option renamed to -fprefix, and made non-mandatory . Default to always explicitly pop arguments from the stack (see docs) . Added new -nopop switch, to enable user to turn off this default . Ignore extern keyword while scanning for function prototypes . Unified treatment of #defines and enumerated types, and thus renamed -enums switch to -consts . Unified generation of func table entries and wrappers, combining both into a single pass of the .h . Now emits code to named files by default ; added -m option to customize names of emitted files, and -stdout to emit to stdout SIP will need to be renamed in the near future, as it turns out there is another code generator in existence with the same name! 2. Used new SIP feature to generate Usage: statements for all of auto generated SLgtk intrinsic funcs. Also added usage statements for some manually coded functions which explicitly pop their arguments (more work is needed here). 3. More useful tags : generate prior to generating SLgtk code, which helps if SIP fails for one reason or another. Better searching for Gtk src. 4. Added gtk_separator_menu_item funcs. 5. Added src/checkgtk script, which allows the developer to quickly identify whether or not a given Gtk/Glib/etc function has been wrapped in SLgtk. 6. Top-level Makefile now checks if build is proceeding with GNU make, and if not emits a message encouraging it use. Though SLgtk should build with many/most non-GNU versions of make, exhaustively testing/supporting such, especially for weak or antiquated implementations, is neither an SLgtk design goal nor a good way to spend one's time. Version v0.1.2 (03/06/2003): 1. Upgrade bundled slsh.c to v0.5-0 (from S-Lang 1.4.8, but does not require) 2. Strengthened the Gtk-to-S-Lang callback mechanism (slg_closure_marshal), to be more cautious about handling errors, and more informative when they occur. Among other benefits, this should make it easier to notice when an S-Lang callback has corrupted/misused the stack. 3. Push G_TYPE_BOXED GValue instances onto S-Lang stack as GtkOpaque types. This lets e.g. GdkEvents be passed to S-Lang callbacks, but still does not permit the callback to inspect individual GdkEvent fields. 4. More GtkExtra support (optionally compiled): - wrappers for GTK_PLOT_CANVAS_*_FLAGS macros and enumerated values - initial support for GtkPlotSurface 5. Support passing GdkColor args as struct types proper, instead of opaque. 6. Added gdk_color_copy() and gdk_color_free() to ignore list. See new content in doc/usernotes for more details on (5) and (6) 7. More steps towards making the code generator an independent package: - Formally named S.I.P, short for (S)Lang (I)nterface (P)ackage, as sort of a play on S.W.I.G [the (S)implified (W)rapper and (I)nterface (G)enerator] - renamed ./generator directory to ./sip, and clarified it's role as a repository of module-independent CG stuff by moving several files from ./generator (e.g. the .defs files) to other dirs - support reading $HOME/.siprc or $SIPRC to customize CG per module - gutted much of scandefs.sl, and moved what remains to ./src, since it is specific to the SLgtk module - renamed _typemaps.sl to siptypes.sl, hdr2glue.sl to sip, and utils.sl to siputils.sl 8. Added ~170 new functions and ~50 new intrinsic constants to the module, many of which directly result from the generalizations in (7). 9. Minor updates to ./examples code: - add textview example of creating named tag with no properties, and point out that NULL is not used to terminate name/value property list during tag creation - corrected misleading uses of gtk_main_quit() and gtk_false(), noticed during debugging with Doug Burke (dburke@cfa.harvard.edu) 10. Ported to Tru64 Unix v5.1, using GCC 3.2.1; along the way fixed a portability problem in the Gtk-specific extensions for SIP. Version v0.1.1 (02/05/2003): 1. More improvements to the CG: - hdr2glue.sl now emits typemap entries to local-typemaps.sl when generating enum constants, which simplifies bindings to other pkgs - more general stripping of C comments in get_next_line() - miscellaneous extensions, uncovered for GtkExtra bindings generation 2. Use pkg-config to check for gtkextra-2 on system; if found, generate additional GtkPlot, etc build rules for CG 3. Added admin/gtkextra-get, to simplify GtkExtra retrieval from SourceForge 4. Arrays passed from S-Lang scope to Gtk will now be coerced to the type required by the underlying C call, if possible. 5. gdk_color_parse() wrapper now allocates color, too (see doc/usernotes) 6. Activate built-in S-lang min, max, sum, etc funcs (in array_extra module) 7. Robustify: terminate Gtk main loop (and bring down toplevel windows) when unrecoverable S-Lang error is signalled, which prevents app from hanging in an unusable state. 8. Added doc/README.deps, which aims at simplifying the building of SLgtk and, especially, its dependencies, by, uhh, describing what to do! 9. Support builds on MAC OS/X 10.2 (only X11, not Aqua). 10. Added admin/dlcompat-get, to simplify retrieval of important MAC OS/X util 11. Updated aclocal.m4 and configure.in with new content from S-Lang and Gtk 12. Incorporated use of versioning for installed libraries/modules. 13. Added --enable-warnings and --enable-ccdebug configure options. 14. Other src/Makefile enhancements: - build both shared and static (ELF) code, with respective flags - Go most of the way towards supporting multiple binary architecture builds from single source tree, by using $(ARCH) if defined (see /bin/arch, or 'man arch'). Will be completed in next release. Version v0.1.0 (01/17/2003): 0. Introduce dependency upon S-Lang version 1.4.7 or greater (see item 11). The SLgtk configure script will fail if it detects earlier versions. 1. Added admin/gtk-configure script, which simplifies building against latest GTK distributions (and dependencies) that are built/installed into non-standard locations (e.g. for evaluation). 2. configure script now echoes version/location of SLang to be used 3. Generated build rules in src/Makefile now delete target on failure 4. Improved accuracy of results reported by admin/codegsummary. 5. Added gdk-pixbuf library extension, which enables the creation of GdkPixbuf* and GdkPixbufLoader* directly from FITS image files. It is now possible to embed a FITS image directly within, for example, a GtkTextBuffer or GtkImage. See ./contrib/gdk-pixbuf for details. 6. Experiment: install slgtksh to $prefix/bin during 'make install' 7. Added uninstall Makefile target. 8. Made examples/main.sl idempotent; it may now be loaded [e.g. with evalfile()] an arbitrary number of times per application session. 9. Added src/testslgtk script, as a convenience for running examples/tests. 10. Added support for many, but not all, gdk_color_* routines. 11. Use new SLang_push_cstruct routines to create true S-Lang structures for GdkColor, GdkCursor, GdkRectangle, and GEnumValue types. Fields w/in instances of these structures may now be accessed directly in S-Lang scope (previously the structs were opaque). The push_cstruct routine was also used to correct 7(a) in the v0.0.7 change list. 12. Added gtk_type_class() and gtk_identifier_get_type() wrappers. 13. As a result of (11) and (12), the cursors demo is now activated in the ./examples demo (see new cursors.sl). 14. Added gdkenumtypes.h to generator/gdk.lst, to generate wrappers for gdk_cursor_type_get_type() and similar functions, which are the bases for C #defines like GDK_TYPE_CURSOR_TYPE and so forth. 15. Reactivated pixmap and notebook ./examples demos (migrated them to Gtk2.x) 16. Several improvements to the code generator: - hdr2glue.sl now treats files as streams of lines AND tokens, instead of only as a series of lines; this flexibility enables it to generate enums directly from .h files, instead of relying on their presence in a .defs file. This should enable the CG to be used more productively w/ other pkgs that do not employ .defs files for bindings generation. - Now ignores 'const' qualifier when mapping types, which eliminates redundant typemap entries and increases flexibility. 17. Added stubs for a GUI-based plot filtering mechanism, in contrib/pgfilt. 18. Introduced support for numerous pango_* functions (look at the files src/generated/pango*.ftable and pango*.glue after building) Version 0.0.7 (12/23/2002): 1. Added a very simple README to the ./examples directory, and more content to several files within the ./docs directory. 2. Resurrected the summary: Makefile target. 3. Added gdk_image_new_bitmap() to ignore.sl, as per the Gtk 2.x docs it is severely broken and thus deprecated. 4. Added initial GdkCursor support (including missing GdkCursorType enum values to gdk-types.defs file that was subsumed from PyGtk). More work needed (e.g. GdkEvents) before cursors example code can be unstubbed. 5. Updated PLATFORMS to indicate build/testing on Debian 3.x prelease (kernel 2.4.20, gcc 2.95.4) and Redhat 8.0 (gcc 3.2) 6. Deprecated gdkfont.h in generator/gdk.lst; GdkFont deprecated in Gtk2.x 7. GError structs may now be assigned to S-Lang reference variables. The implementation is suboptimal in that it a) doesn't use the new C struct support in SLang v1.4.7, and b) uses the quasi-public _SLang_pop_struct() function (bad practice, but there is currently no other way to assign popped structures to references). I intentionally avoided using the new SLang_push_cstruct/SLang_pop_cstruct() funcs w/in the GError struct support code for this release, since I didn't want to force users to migrate to S-Lang v1.4.7 just to use SLgtk v0.0.7. The next SLgtk release will require migrating to a new S-Lang version, though. 8. Used (7) to provide support for gdk_pixbuf_new_from_file() function. 9. Enhanced textview/textbuffer support: - stubbed in src/pango.c subsystem (not activated yet) - generate constants for #defines in pango-font.h and pango-types.h - added support for many (but not all) funcs which return GtkTextIter - added gtk_text_buffer_create_tag (see doc/usernotes for details) It should now be possible to include a incorporate a bit of graphics and markup w/in textview/textbuffer. See examples/textview.sl. 10. Split print.sl out from generator/utils.sl, so that it could be used within examples code, too. 11. Increased range of types that may be popped off stack into a GValue. Many aggregates are still unsupported, but most fundamental types are. 12. Now emit warning during push/pop attempts on unsupported GValues ONLY when debugging is turned on (when S-Lang variable _slgtk_debug > 0). Version v0.0.5: 1. Restructured directory tree, by introducing ./generator and ./src subdirectories and shuffling the relevant files around. 2. import("gtk") now signals an error when gtk fails to initialize. 3. Renamed slgtk.c to module.c, and partitioned its content into more logical units (glib.c, gtk.c, etc) 4. Revamped Makefile driver of code generator: instead of looping w/in the Makefile on the contents of file list(s), the file list(s) are used at configure time to generate explicit targets in the Makefile. This permits much finer control over generated module rebuilds. 5. Added support for most of GtkTextView, GtkTextBuffer, and related widgets, and a sample usage in examples/textview.sl. 6. Changed name of SLgtk opaque type from slGtkOpaque to GtkOpaque. 7. Introduced src/gdk.c, and moved manually-coded gdk_ funcs from gtk.c. 8. Enhanced configure script to look for Gtk headers/libs in more places. Version v0.0.4: 1. Better memory management, especially regarding cleanup of SLang_MMT_Type* instances associated with slGtkOpaque types. 2. Added initial support for GdkDrawable. 3. Took baby steps towards generalizing the code generator, for potential use in automating the creation of S-Lang bindings for other libraries. 4. Renamed the ./test directory to ./examples 5. Reactivated the examples/gamma.sl code (which exercises GtkGammaCurve) 6. Added gdk/gdk.h to widgets.lst, to generate glue for generic Gdk funcs. 7. Removed slgtk_*_version variables from configure.in (which was kind-of silly), in favor of defining them directly within config.h.in. 8. Auto-generate VERSION file from config.h.in contents, instead of keeping it as a separate file with duplicate content. Version v0.0.3: 1. Added (HACK!) putenv("GTK_IM_MODULE=/dev/null") to slgtk.c, to avoid problems until gtk.immodule is better supported 2. Removed gtk_entry_get_text() from ignore list. Version v0.0.2: 1. Support GtkEntry widget 2. Added sgtk_major_version, sgtk_minor_version, sgtk_micro_version intrinsic variables, for inspection in S-Lang scope. Version v0.0.1: 1. Added install target to Makefile 2. Added mkinsdir.sh and install.sh to admin directory 3. Added glue for most of the Drag-n-Drop calls