web counter

Booguie : a WYSIWYG GUI editor for BeOS

Booguie (Basic OO GUI Editor, pronounced Boogie -- yeah I know, but don't laugh: I could have named it GUINESS !) is a simple, easy to use and setup WYSIWYG Editor for the KISS (which stand for, err, simple) layout library;

This GUI sketcher does NOT allow to place widgets in "free hand" mode (pixel precise -- bleh), it aims at having consistent, good-looking GUIs.

Overview

Implementation Philosophy

The KissLib is a layer over the interface Kit that suppresses all those pesky pixels coordinates (one should never specify any coordinates when creating a GUI) and adds dynamic layout, font-sensitiveness, language localization and more.

Booguie comes on top of that so that you don't even have to type KissLib code (and yet the KissLib is the smallest API overhead that I know of, but one is never productive enough when writing code for The OS :).

Underlying API Philosophy

Read an overview of the kisslib for this.

Known bugs:

ToDo:

Woogie: (for WUJI, "It Just Works"..)

This is an example project, very very raw at the moment (not even a decent proof of concept) but I plan to turn it into a fully functionnal app created with Booguie. (why not, a sequel to Gossip -- if you have network skills and are interested in making a real newsreader with this as a foundation [closed source] then contact me).

Should be compilable, runnable, so that you can experiment with Booguie and see the result immediatly..

License and Download

I myself hate reading that kind of stuff so I've added a bit of rephrasing (lower case) to the License terms itself (upper case) :

YOU MAY USE BOOGIE and the KISSLIB TO CREATE AND RELEASE A BeOS APPLICATION TO THE PUBLIC EXCLUSIVELY IN ONE OF THE TWO FOLLOWING CASES, PROVIDED YOU MEET THE ASSOCIATED REQUIREMENTS:

1) FOR A FREEWARE APP, PROVIDED YOU

YOU THEN HAVE NO FEE TO PAY ME.

Yeah I know the Nag requester stuff is annoying, but it might make you consider switching to shareware BeOS needs more paying top quality software then plenty of half-assed freewares after-all.. Otherwise imagine the following scenario : apps Little and Megamax are icon editors. Little costs $0, while Megamax is priced $20; but the latter one is more powerful and, additionaly, has a better UI because of its layout library. If it wasn't for the terms above, the author of Little would exercise unfair competition against Megamax as he wouldn't pay a cent for the same development tool library whereas Megamax's author, already struggling to convince people to buy his stuff instead of going the free route, would also have to pay me (see below) every time he manages to.

Maybe I could add a clause "unless there exist no competing app under BeOS", but this would be difficult to enforce.. Or maybe "unless anyone claims to be your competitor, in which case you have to use the nag requester".. Or better: "unless there's a shipping application whose author claims to be competing with you and is a paying user of the KissLib (bound to terms of use #2 below). Suggestions please.

Also, it's of course better if you drop me a line BEFORE releasing your app. I may give you support, hints ..etc

2) FOR ANY PAYING SOFTWARE, INCLUDING BUT NOT LIMITED TO : SHAREWARE, COMMERCIAL. YOU THEN HAVE TO PAY A SALES-BASED FEE (negociate that directly with me as I have made no decision as of yet WRT the amount..)

USUAL DISCLAIMER: I (THE LIB'S AUTHOR) AM NOT LIABLE FOR ANY DAMAGE THIS SOFTWARE MAY CAUSE TO YOUR COMPUTER AND DATA, DIRECTLY OR INDIRECTLY.

The usual disclaimer : don't sue me if this melts your brain, crashes your PC, makes you loose years worth of precious data ..etc ..etc, as you read it there first that it could happen and that I don't want to hear about it. Real Users make frequent backup of their data anyway. Nuff said.


Download

Booguie SDK v0.8.0 for BeOS R5 (size not know as of writing this, less than 200KB)

Want more blurbs ?

Well I have more to say, too. Here goes:

The Interface Kit is an amazingly elegant low-level GUI API, but leaves much to be desired as a high-level one, beign in need of a layer on top of it.

The (humble) recipe is as follows: apply the BeOS philosophy to GUI building: simple (no complexe layer added with API to learn), clean (nice API) and lightweight (have a look at the file sizes).

Out there

There are excellent layout libraries out there, even from people since then hired by Be, some are even open source.. Why not more acceptance from BeDevs ?

Just in case it's a matter of simplicity, I thought I'd release a couple of tools I use.

If the "don't wanna learn another API" issue is real, well here's a lib that requires very little extra learning (KissLib mainly consists of class KissBox, the others are less important) or extremly little (if you use the visual editor Booguie, in hteory no extra learning beyond the Interface Kit is required).

Booguie is a "point'n'click" front-end to the KissLib, which in turn is a simple wrapper around the Interface Kit (IK) : the IK widgets like BButton ..etc are not suclassed (except BOptionPupUp which is buggy and a couple others) and you use them exactly as usual.

Who for ?

Seasoned Interface Kit developers will increase their productivity as well as benefit from all the provided services (font sensitivity, localisation, dynamic layout ..etc)

Beginner BeDevs will find this an enjoyable devtool compared to the bare IKit API which, although very elegant, is a bit intimidating when you start exploring it, with all those pesky BRect()s to set and things.

Safety considerations

I.e., is it safe to switch to using the KissLib/Booguie pair, what if develoment halts ?

Right, you're more tied to your choice than with a system that generates plain Interface Kit code indeed. However the project saving format is well known / easy to reverse engineer (mostly the BView::Archive() and friends) and, regarding the generated C++ code, the idea is that the GUI code overhead is so low that you won't have "wasted" more time than it takes to rewrite it (keep in mind we're talking about rewriting the generated .cpp file here since the code you write in the "fine-tuning here" section wouldn't change, being vanilla Interface Kit code). => no risk ! (but some fun nonetheless).


The whole archive (this documentation, the binaries ..etc) are (c) copyright 2000 Cedric Degea (degea@kagi.com).