Tuesday, May 23, 2017

Gnocl Gtk3+ implantation begun!

Yesterday I made the spot decision to make the move from building Gnocl against the Gtk2+ libraries to Gtk3+. At the end of the day I got the bulk of the gnocl::window module running. This doesn't mean that the conversion process will be an easy journey, it won't. The current build of Gnocl has evolved over the years and contains many legacy calls to widgets, functions, structures and macros not longer supported in Gtk3+. The immediate effect is that much of the 'glitzy' stuff working on pixmaps no longer work. Its all a question of time!

This doesn't mean that the Gtk2+ distribution will be forgotten, it still forms the backbone of the project and will be supported till most the the conversion work has been done.

One of the greatest challenges is the lack of suitable documentation. For Gtk2+ there was always Krause's excellent book, but now the emphasis would appear to be upon creating chunks of builder xml code and embedding these as strings into C-sourcecode.

It would appear though, that there's always more than one way to skin a cat, and, getting the initial 'application' running was not, shall we say, according to the manual. Actually, by working around the rules, it became simpler!

It'll be some time before a first workable, package is released, so until then, wish me luck and straightforward coding!

Tuesday, May 16, 2017

Creating previews with the File Chooser Dialog


I'm currently doing something of a spring-clean of the source code and noticed that the image and filechoose dialog options really didn't work too well together in order to create previews. So, the modifications to the current nightly build will allow scaling and constraints on image dimensions without the need for lengthy, and potentially cycle consuming Tcl scripting.

Here's a code snippet...

set pv(1) [gnocl::image ]

set fname [gnocl::fileChooserDialog \
    -previewWidget $pv(1) \

    -onFileSelectionChanged { $pv(1) configure -image %/%f -constrainWidth 200 }]

Tuesday, May 09, 2017

April Update

Its a  little later than anticipated,  but here's news of changes to the gnocl package options implented during April. As always, get the latest sources from SourceForge.


2017-04:
    gnocl::entry
        o progress now works more efficiently, i.e.
            wid progress 0.75    ;# set progress bar fraction to 0.75
            wid progress        ;# increment an barlength as an ongoing progress
            In the second example, the options -range and -progressSteps must be set.
                gnocl::entry -name ent -value ABCDEF -progressSteps $d -range $max
                gnocl::vBox -name container
                container add [ent]
                gnocl::window -child [container]
                gnocl::update
                for {set i 0} {$i<=$max} {incr i} {
                    # do something...
                    ent progress
                }
    gnocl::text
        o search command can now accurately set multiple tags. Unknown tags with result in a Gtk Warning.
    Reducing number of internal Gtk warnings written to stdout. Largely arising from invalid cast in setting widget pointers in shared command functions.