03-09-2004, 10:47 PM -
Hey, all. Recent buyer of TrueLaunchBar and now am trying my hand at some plugin development.
Some questions:
1) What is the full list of supported formatting tags within the tooltip-like description? So far I've discovered <b> (bold), <i> (italics), <t> or \t (tab),
or
(line break), <hr> and <hr=100%> for a horizontal rule. Are there any others I don't know about?
2) Some plugins, like Network Monitor, display an icon within their description popup. Where is that icon set? How can I do something similar?
3) Where can I find a detailed description of what all of the BTNINFO_MASK_* mask values are for? Here is what I've determined so far:
BTNINFO_MASK_ACTIONS:
A request for what different actions should be available in the right-click context menu for the plugin. CTMS_PROPERTIES for a properties option, CTMS_RENAME for a rename option, CTMS_CHANGEICON for a change icon option and CTMS_HOVERRUN which allows user to have the plugin 'run' just by hovering the mouse.
BTNINFO_MASK_MODEFLAG:
A request for 'mode' status. What exactly are the BTN_FLAG_PLANE, BTN_FLAG_STOPDRAG and BTN_FLAG_COLAPCEONRUN different modes for? How are they used?
BTNINFO_MASK_SIZE:
BTNINFO_MASK_ACTUALSIZE:
I assume this is a size request.. so put the current size of your plugin button into btninf->szBtnSize. What is the difference between the two?
BTNINFO_MASK_ICON:
BTNINFO_MASK_SELECTEDICON:
Not sure. Example code just sets this to NULL. I've tried setting btninfo->hIcon it to a valid icon but cannot see where that icon is used. Also, what is difference between the two?
BTNINFO_MASK_DESCRIPTION:
A request for the current button description for display within the tooltip popup. How is this mask value different from the GetDescription() method? In the sample code, it seems to just duplicate the code between the two and only use the version in GetButtonInfo(). Is the GetDescription() method ever called instead of GetButtonInfo() ?
BTNINFO_MASK_TEXT:
It seems if you specify text into btninfo->strData and then select Appearance->TextLabel from the bar context menu, the text gets displayed along with your button.
4) What is InvokeCommand() used for? What are potential IDs that can occur?
5) What is Invoke() used for? I found the following comments in a .h file:
#define TBTN_INVOKE_GETTOOLTIPSCOUNT 1 // wParam ignored, (int*) lParam - tooltips count
#define TBTN_INVOKE_GETTOOLTIPRECT 2 // wParam - zero based tooltip index, (RECT*) lParam - rectangle of tooltip
#define TBTN_INVOKE_GETTOOLTIPTEXT 3 // wParam - zero based tooltip index, (char*) lParam - Text of tooltip (1024 max)
How exactly are these used? Does this somehow override the regular 'description' call?
6) What is SetLCID() ?
7) In StateChanged(), what are the possible values of 'state' ?
A lot of this would have been solved if the interface headers and .cpp files in the SDK were commented! Developing a plugin is very difficult when you have to guess at all the interfaces and how they might be used.
The examples provided did show some usage, but again without comments, so I could see it being used but didn't really understand what was happening.
Thanks! This is a really excellent program.. and I would love to see more third party plugin development get off the ground.
antidigerati
Some questions:
1) What is the full list of supported formatting tags within the tooltip-like description? So far I've discovered <b> (bold), <i> (italics), <t> or \t (tab),
or
(line break), <hr> and <hr=100%> for a horizontal rule. Are there any others I don't know about?
2) Some plugins, like Network Monitor, display an icon within their description popup. Where is that icon set? How can I do something similar?
3) Where can I find a detailed description of what all of the BTNINFO_MASK_* mask values are for? Here is what I've determined so far:
BTNINFO_MASK_ACTIONS:
A request for what different actions should be available in the right-click context menu for the plugin. CTMS_PROPERTIES for a properties option, CTMS_RENAME for a rename option, CTMS_CHANGEICON for a change icon option and CTMS_HOVERRUN which allows user to have the plugin 'run' just by hovering the mouse.
BTNINFO_MASK_MODEFLAG:
A request for 'mode' status. What exactly are the BTN_FLAG_PLANE, BTN_FLAG_STOPDRAG and BTN_FLAG_COLAPCEONRUN different modes for? How are they used?
BTNINFO_MASK_SIZE:
BTNINFO_MASK_ACTUALSIZE:
I assume this is a size request.. so put the current size of your plugin button into btninf->szBtnSize. What is the difference between the two?
BTNINFO_MASK_ICON:
BTNINFO_MASK_SELECTEDICON:
Not sure. Example code just sets this to NULL. I've tried setting btninfo->hIcon it to a valid icon but cannot see where that icon is used. Also, what is difference between the two?
BTNINFO_MASK_DESCRIPTION:
A request for the current button description for display within the tooltip popup. How is this mask value different from the GetDescription() method? In the sample code, it seems to just duplicate the code between the two and only use the version in GetButtonInfo(). Is the GetDescription() method ever called instead of GetButtonInfo() ?
BTNINFO_MASK_TEXT:
It seems if you specify text into btninfo->strData and then select Appearance->TextLabel from the bar context menu, the text gets displayed along with your button.
4) What is InvokeCommand() used for? What are potential IDs that can occur?
5) What is Invoke() used for? I found the following comments in a .h file:
#define TBTN_INVOKE_GETTOOLTIPSCOUNT 1 // wParam ignored, (int*) lParam - tooltips count
#define TBTN_INVOKE_GETTOOLTIPRECT 2 // wParam - zero based tooltip index, (RECT*) lParam - rectangle of tooltip
#define TBTN_INVOKE_GETTOOLTIPTEXT 3 // wParam - zero based tooltip index, (char*) lParam - Text of tooltip (1024 max)
How exactly are these used? Does this somehow override the regular 'description' call?
6) What is SetLCID() ?
7) In StateChanged(), what are the possible values of 'state' ?
A lot of this would have been solved if the interface headers and .cpp files in the SDK were commented! Developing a plugin is very difficult when you have to guess at all the interfaces and how they might be used.
The examples provided did show some usage, but again without comments, so I could see it being used but didn't really understand what was happening.
Thanks! This is a really excellent program.. and I would love to see more third party plugin development get off the ground.
antidigerati