Saturday, October 01, 2016

Recent changes to the development sources


The last time the recent changes were posted was sometime during March this year.  So, to put matters right, here's a list of the recent changes. Mostly enhancements plus one or two bug fixes.


2016-09:
    gnocl::tree & gnocl::list
        o added -textColor and -textColour
    gnocl::text
        o new command, wordCount, return size of buffer in words.
        o new command, magnify. Increase/decrease basefont height by specified amount in pixels (e.g. 1 or -1), or "reset", to set to default.
    gnocl::box, gnocl::vBox, gnocl::hBox
        o new command, getPos. Returns postilion of child widget packed into box, or -1 if not found.
    gnocl::entry
        o improved error checking to the -innerBorder option, a list of 4 integers must be supplied.
    gnocl::statusBar
        o low priority command 'remove' renamed to 'subtract', this allows the 'remove' keyword to be used for removal of widgets embedded in a statusbar with the add command.
    gnocl::dialog, gnocl::fileChooserDialog
        o added -transient option
    gnocl::button
        o fixed (?) intermittent segmentation crash occurring during widget destruction.

2016-08:
    gnocl::text
        o modified -tabs options, set to spaces rather than pixels, based upon current -basefont. Apply after widget realized.
    gnocl::statusBar
        o added -onPush, -onPop; unpack, messageArea
    gnocl::progressBar
        o added -ellipsize, -baseFont, -ySpacing, -xSpacing,
        o added -steps to offer automation of the bar growth,
          prefined number of stages and advance progress with command "step".
        o added command "reset", same as using -fraction 0.0

2016-07:
    gnocl::dialog
        o new option -justification.
    gnocl::tree / gnocl::list
        o added %d substitution string to -onSelectionChanged callback.
        o module function insertRow renamed to appendRow
        o cget -titles now works
    gnocl::expander
        o added options -labelWidget, -useMarkup, -labelFill

2016-05:
    makefile
        o repaired some broken compilation dependencies.

2016-04:
    gnocl::pango
        o added subcommand escape and options -all, -basic, -extended and -offtags.
    Added %d substitution string to the -onExpose option.
    New widget, gnocl::frame. Labelled container for a single object.
    Added "centre" to the list of alignment options.
    gnocl::menuItem
        o the -text option will now accept markup strings.
    gnocl::comboEntry
        o new command getEntry, convert existing combo entry widget to a gnocl::entry object. Returns entry widget-id.
        o added option, -entryWidget. Replaces current combo widget with a new entry item.        
    gnocl::box
        o added subcommands: commands, options and commands   
    gnocl::labelEntry
        o fixed problem with setting the -useMarkup and -align options
    gnocl::assistant
        o option -linear default set at 1
    gnocl::aboutDialog
        o added -licences and -wrapLicence synonyms.
    gnocl::splashScreen
        o bug fix, -backgroundImage now works without causing a fatal crash. 
    gnocl::text
        o added -textColor (textColour), set text default colour.
        o new subcommands, addChild and moveChild. Place widget in text at specified position, opts: -mark, -position and -coords.
          When creating widgets such as gnocl::list, use -widthRequest option to set child width.

GnoclSpellCheck

The earlier version of the GnoclSpellCheck module as developed on my ancient 32-bit workstation running OpenSuse 11.2 (yes, I said that it was ancient). The problem arising from using legacy equipment is that when packages like Gnocl are developed, not only can various elements cease to work (i.e GtkSpell 2 does not run at all on a Gnome 3 desktop or under Ubuntu Mate) but later libraries such as GtkSpell 3 are complete re-writes and can, as I've found, have their own bugs! A new Gnome speller, gspell is under development but this requires the bleeding edge Gtk3 libraries which, apart from being incompatible with the Gtk+2 libraries against which Gnocl is built, these latest versions are not currently part of the stable releases. So, I thought, build my own. So, I did. Rather than using the C-api for either Ispell, Aspell or Hunspell, I've just used a simple data pipe. These three packages give varying suggestions for misspelt words so, the eventual front end will enable the user to pick which engine they want to use.

Here's a screen shot of the development program.  All the key elements are present: check as you type, errors are marked up, popup menus contain alternatives.  Just a little tweaking needed (if possible) to offset the error underline as the window manager doesn't seem to adequately refresh to layout to remove artefacts.


















Currently working on a GUI for the full checker based upon the LibreOffice model.