Speedbar autodoc: SPEEDBAR_Window tag

Have a question about our Software Developer Kit? Ask them here.
User avatar
tbreeden
Posts: 160
Joined: Sat Jun 18, 2011 12:57 am
Location: Charlottesville, VA, USA
Contact:

Re: Speedbar autodoc: SPEEDBAR_Window tag

Post by tbreeden »

Seeing as the topic you link to is reporting a general helphint problem where an inactive window doesn't produce help bubbles, I fail to see how these issues are linked.
They are linked for the case of a "floating" SpeedBar, ie a standalone window containing only a speedbar so the user can place the speedbar wherever on the screen that she wants.

It is reasonable use WA_ToolBar for that window, so that the focus can't get "stuck" inside it, but also reasonable to want popup hints for the buttons in the SpeedBar.

You wouldn't want just any inactive window to produce help bubbles, but if you are working with a standalone toolbar and multiple project windows, you'd like the help bubbles
from the SpeedBar if any one of the project windows was active.

I guess one solution is to make it easy for the user to change the SpeedBar from Images to Images+Text in the case that he has forgotten what one of the images means.

Tom
User avatar
salass00
AmigaOS Core Developer
AmigaOS Core Developer
Posts: 530
Joined: Sat Jun 18, 2011 3:12 pm
Location: Finland
Contact:

Re: Speedbar autodoc: SPEEDBAR_Window tag

Post by salass00 »

chris wrote:
trixie wrote:this type of help is actually deprecated and that the programmer should use help tips instead.
Ignoring the fact that HelpHints don't work properly with speedbars (see http://forum.hyperion-entertainment.biz ... =26&t=1515), unless that was fixed whilst I wasn't looking?
Deprecating or not deprecating SPEEDBAR_Window has no relevance on the issue you refer to. The only difference between the two types of help systems is how the text is displayed. Neither of them will allow help text to just magically work for unactivated windows as this is an intuition limit.
chris
Posts: 562
Joined: Sat Jun 18, 2011 11:05 am
Contact:

Re: Speedbar autodoc: SPEEDBAR_Window tag

Post by chris »

Rigo wrote:Seeing as the topic you link to is reporting a general helphint problem where an inactive window doesn't produce help bubbles, I fail to see how these issues are linked.
Yes, sorry, that link was a bit ambiguous as it wasn't the really the issue being discussed. Let me clarify:

HelpHints do not work with speedbar.gadget buttons, you can only specify a HelpHint for the entire gadget. This makes HelpHints entirely useless for speedbars, and whilst the "using the titlebar as a help text area" thing is awful, it does at least allow different help text per button.

Therefore, the SPEEDBAR_Window attribute should be updated so it displays help as HelpHints, rather than being deprecated.
User avatar
tbreeden
Posts: 160
Joined: Sat Jun 18, 2011 12:57 am
Location: Charlottesville, VA, USA
Contact:

Re: Speedbar autodoc: SPEEDBAR_Window tag

Post by tbreeden »

HelpHints do not work with speedbar.gadget buttons, you can only specify a HelpHint for the entire gadget. This makes HelpHints entirely useless for speedbars,...
Therefore, the SPEEDBAR_Window attribute should be updated so it displays help as HelpHints, rather than being deprecated.
Actually HelpHint do work for the speedbar.gadget button (at least without a HelpHint for the speedbar gadget itself) via the "SBNAHintInfo" tag. This will give individual buttons
their own bubble help popup.

The SPEEDBar_Window attribute can be deprecated.

The problem I think is only if the window in which the speedbar resides in is tagged with WA_ToolBox.

Code: Select all

define WA_ToolBox         /* (BOOL) if TRUE, the window can't be activated...

in which case the buttons work, but the help hints cannot appear.

It seems a good idea to use WA_ToolBox for a free floating speedbar window, since there is no reason to leave such a window active after the
button has been pressed. If you don't use WA_Toolbox, the button's code perhaps activate the appropriate window but sooner or later closing
something will leave the floating toolbox sitting there as the active one.

Earlier, the Gadget-Help approach attempted to solve the problem:
A multi-window application can use the WA_HelpGroup or
WA_HelpGroupWindow tags to indicate that all its windows
belong in a group. (The help group identifier should be
obtained with utility.library/GetUniqueID().) This makes
Intuition test gadget help in all windows of the group
when any one of them is the active one. Inactive windows
whose WA_HelpGroup matches the active window's receive
IDCMP_GADGETHELP messages when the mouse is over that
window or any of its help-aware gadgets.
So there may be a way to fit HelpHints into something the same.

Tom
User avatar
salass00
AmigaOS Core Developer
AmigaOS Core Developer
Posts: 530
Joined: Sat Jun 18, 2011 3:12 pm
Location: Finland
Contact:

Re: Speedbar autodoc: SPEEDBAR_Window tag

Post by salass00 »

chris wrote: HelpHints do not work with speedbar.gadget buttons, you can only specify a HelpHint for the entire gadget. This makes HelpHints entirely useless for speedbars, and whilst the "using the titlebar as a help text area" thing is awful, it does at least allow different help text per button.
You are wrong in this. Help hints do work for speedbar buttons. Just see DiskImageGUI f.e., which uses a speedbar with real help hints and none of that SPEEDBAR_Window nonsense.
chris
Posts: 562
Joined: Sat Jun 18, 2011 11:05 am
Contact:

Re: Speedbar autodoc: SPEEDBAR_Window tag

Post by chris »

tbreeden wrote:Actually HelpHint do work for the speedbar.gadget button (at least without a HelpHint for the speedbar gadget itself) via the "SBNAHintInfo" tag. This will give individual buttons
their own bubble help popup.
I stand corrected.
Earlier, the Gadget-Help approach attempted to solve the problem:
A multi-window application can use the WA_HelpGroup or
WA_HelpGroupWindow tags to indicate that all its windows
belong in a group. (The help group identifier should be
obtained with utility.library/GetUniqueID().) This makes
Intuition test gadget help in all windows of the group
when any one of them is the active one. Inactive windows
whose WA_HelpGroup matches the active window's receive
IDCMP_GADGETHELP messages when the mouse is over that
window or any of its help-aware gadgets.
So there may be a way to fit HelpHints into something the same.
That's just for HELP keypresses, and the way this is implemented in window.class is even more broken than the using-the-titlebar-as-a-help-area thing.

As I wrote in the thread I linked to earlier:
The way Commodore implemented GadgetHelp is that it is supposed to send IDCMP_GADGETHELP when the user presses the HELP key. The application can then open some help file (normally an AmigaGuide) relating to the exact gadget the pointer is over.

The way it works in window.class, is that if WINDOW_GadgetHelp is enabled, the application receives a barrage of WMHI_GADGETHELP messages whether HELP is pressed or not.
I think it's fine in Intuition, but the window.class equivalent is entirely useless, and neither have anything to do with HelpHints.
User avatar
Rigo
AmigaOS Core Developer
AmigaOS Core Developer
Posts: 360
Joined: Mon Jan 17, 2011 9:42 pm

Re: Speedbar autodoc: SPEEDBAR_Window tag

Post by Rigo »

To try and get this back on topic:

I am not familiar enough with the way intuition handles WA_Toolbox windows. I assume that it ignores any attempt to activate the window, but it does pass the attempt through to the IDCMP port to handle the input event (like clicking on a button).

How this can be changed, I have no idea, but I foresee various problems with any approach to try and get the help bubbles to work with WA_Toolbox windows. Firstly, it would result in help bubbles being displayed even when the window is inactive, which may not be what the user wants. Intuition can distinguish between a normal inactive window and a toolbox window, but the result would apply for all toolbox windows. It would also have to check if the mouse pointer is over a window that is even on the same screen, as windows on "behind" screens would normally be inactive, and hence exempt.

I really don't see a usable solution to this, but I do fear that help bubbles displayed in toolbox windows may be more of a pain than anything else.

Simon
User avatar
nbache
Beta Tester
Beta Tester
Posts: 1714
Joined: Mon Dec 20, 2010 7:25 pm
Location: Copenhagen, Denmark
Contact:

Re: Speedbar autodoc: SPEEDBAR_Window tag

Post by nbache »

Rigo wrote:How this can be changed, I have no idea, but I foresee various problems with any approach to try and get the help bubbles to work with WA_Toolbox windows. Firstly, it would result in help bubbles being displayed even when the window is inactive, which may not be what the user wants. Intuition can distinguish between a normal inactive window and a toolbox window, but the result would apply for all toolbox windows. It would also have to check if the mouse pointer is over a window that is even on the same screen, as windows on "behind" screens would normally be inactive, and hence exempt.
You could also have a toolbox window partly or fully obscured by another window on the same screen; it would also look strange if the help bubbles were shown for buttons you cannot see.

Best regards,

Niels
User avatar
Rigo
AmigaOS Core Developer
AmigaOS Core Developer
Posts: 360
Joined: Mon Jan 17, 2011 9:42 pm

Re: Speedbar autodoc: SPEEDBAR_Window tag

Post by Rigo »

Yes, absolutely, and in which case a check if the window layer for the portion over the mouse pointer is actually at the front would need to be done.

None of this is impossible, but I'm just wondering what impact it would have on the system each time a hint event is triggered.

My guess is noticeable, at least.

Simon
User avatar
trixie
Posts: 409
Joined: Thu Jun 30, 2011 2:54 pm
Location: Czech Republic

Re: Speedbar autodoc: SPEEDBAR_Window tag

Post by trixie »

salass00 wrote:Help hints do work for speedbar buttons.
Sure thing! I've been using them in WordNet for years.
none of that SPEEDBAR_Window nonsense.
Exactly.
The Rear Window blog

AmigaOne X5000 @ 2GHz / 4GB RAM / Radeon RX 560 / ESI Juli@ / AmigaOS 4.1 Final Edition
SAM440ep-flex @ 667MHz / 1GB RAM / Radeon 9250 / AmigaOS 4.1 Final Edition
Post Reply