The openSuSE 11.0 package of BLT seems to be totally untested, as it refuses
to work together with tcl-8.5.2 given in openSuSE 11.0. I get
$ wish
% load /usr/lib/libBLT.so
version conflict for package "Tcl": have 8.5.2, need exactly 8.5
%
This is really a big bummer. I tried to locate the source that error message
inside the source package, but no luck. Anybody here who has insight into
BLT and know where I can disable that test.
Kind regards
Jan
Can you describe what in BLT you need ?
A recent thread seems to indicate the thing is dying, and good ideas
inside it are being reborn separately, with a different status
depending on the specific part.
-Alex
In general, BLT does not work with Tcl versions above 8.4. So you are
out of luck with Tcl 8.5 right now. There is work underway to make BLT
run with newest Tcl versions but this will take some time to finish.
Torsten
After upgrading my development computer to openSUSE 11.0, I found out that I
can't test a certain, still developed application of mine which make use of
BLT on my machine any longer. I solved the problem more or less now just
for my small use case.
Due to my experience with Tix and BLT, I generally abhor binary,
multi-purpose extensions for a while now. Especially BLT had (has?) a lot
of bugs which lead to segfaults, e.g. when giving invalid data to BLT
functions. Workarounds were very hard to find, as the segfualt only showed
up in some situations.
Kind regards
Jan
What about using one of the new tabbed widgets, and making it a child
of a scrollbar-enslaved clipping frame ?
Wouldn't it look the same ? (no tested, just an abstract idea)
-Alex
No, the scrolling with BLT tabset is that way you can click with middle
mouse button on a tab and drag all tabs in a single tier up and down (or
right an left).
I cannot use another scrollbar for that application. It's a cashregister
frontend with on a 15" 1024x768 pixel monitor with touchscreen. A scrollbar
alongside to the tabs has to be at least ~40 pixels wide to work with
finger touch. It would eat up too much of valueable screen space.
Kind regards
Jan
I thought this was a touchscreen. How does the user click a middle
mouse button on a touchscreen?
>
> I cannot use another scrollbar for that application. It's a cashregister
> frontend with on a 15" 1024x768 pixel monitor with touchscreen. A scrollbar
> alongside to the tabs has to be at least ~40 pixels wide to work with
> finger touch. It would eat up too much of valueable screen space.
>
> Kind regards
>
> Jan
Instead of using a notebook, just use a series of buttons. Each button
could simply raise the proper frame. Then you can add whatever
bindings you want with just a little bit of effort. From a usability
point of view notebooks with more than a single row of tabs is
generally frowned upon anyway, so perhaps this is an opportunity to
improve your usability.
bind $w <ButtonPress-1> "+$w scan mark %x %y"
bind $w <Button1-Motion> "$w scan dragto %x %y"
does the trick. I use an additional patch to BLT to lower the hardcoded
(bummer!) dragging magnification from 10 to 1.
>
> Instead of using a notebook, just use a series of buttons. Each button
> could simply raise the proper frame. Then you can add whatever
> bindings you want with just a little bit of effort. From a usability
> point of view notebooks with more than a single row of tabs is
> generally frowned upon anyway, so perhaps this is an opportunity to
> improve your usability.
>
The usability has already proven good with an increasing number of people.
I think, a notebook with with one tier of vertical tabs on the right side is
both very easy to use and to understand. I don't think that any more
buttons will make the UI better. There are far too much on the notebook
panes already...
In the long run, I think I'll have to develop a simple notebook for the
application myself.
Kind regards
Jan
> I think, a notebook with with one tier of vertical tabs on the right side is
> both very easy to use and to understand. I don't think that any more
> buttons will make the UI better. There are far too much on the notebook
> panes already...
Perhaps you misunderstood. I'm not advocating more buttons in addition
to the notebook, I'm suggesting you use buttons *instead* of a
noteobook. That is, the user will click a button rather than a tab. It
can look nearly identical (or completely identical depending on how
much effort you put in to it) but will use stacked frames and a row or
column of buttons rather than a notebook widget.
>
> In the long run, I think I'll have to develop a simple notebook for the
> application myself.
That's what I was suggesting. instead of N tabs in a notebook, have N
frames and N buttons, where each button performs the function of the
tab, and each frame performs the function of the interior of each page
in the notebook. If all of the frames are gridded in the same cell, a
button click merely needs to raise the appropriate frame above the
others.
Instead of buttons you could also use a single canvas and draw the
"tabs" yourself either using canvas primitives or by aligning bitmaps
that you've drawn by hand.
I Know Bwidget handles too many tabs by dynamically adding Left/right
scroll arrows (its a canvas with tabs drawn on).
After a few minutes (really) of playing around (scrolling when there
are not tabs left in the direction generates an error) I now have
dynamic scrolling with the mousewheel (as per FireFox) I think you
could easily adapt this to use your touch drag !
I use
NoteBook::_xview $Gui(NoteBook) $step
where Gui(NoteBook) is the widget ID and step is -1/1
By the way if you use buttonPress-1 to drag your tabs how does the
user select a tab ??
Martyn
> By the way if you use buttonPress-1 to drag your tabs how does the
> user select a tab ??
>
bind $w <ButtonPress-1> "+$w scan mark %x %y"
bind $w <Button1-Motion> "$w scan dragto %x %y"
"scan mark" just sets the anchor point for dragging. The script is added,
pressing the button still selects the tab. This is not too disturbing, as
the user wants to switch to another tab anyway. Dragging is bound to button
motion, not pressing.
Kind regards
Jan
post a bug on blt/tcl with opensuse.
I'le do a check on a Suse 11 box later in the day.
( my daughter hasn't shown a leg yet. )
uwe
>
>
from bltInit.c:
if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, EXACT) == NULL) {
return TCL_ERROR;
}
TCL_VERSION is 8.5
since when is the patchlevel part of the basic version?
uwe