Queen BeeCon Widget

(Change Log)
m (Reverted edits by 185.219.83.166 (Talk) to last revision by sixwheeledbeast)
 
(51 intermediate revisions not shown)
Line 1: Line 1:
[[Category:Software]][[Category:Power users]][[Image:Qbw1.png|500px]]
[[Category:Software]][[Category:Power users]][[Image:Qbw1.png|500px]]
-
[[Image:Qbw.png|left|logo]]
+
[[Image:Queen-beecon.png‎|left|logo]]
-
<u>'''''Queen BeeCon Widget'''''</u>
+
[[Queen BeeCon Widget]]
-
('''''[http://talk.maemo.org/showthread.php?t=45388 See Talk Thread]''''') is a highly customizable and flexible '''widget-based multi-instance monitoring, alerting and interactive tool''' for Maemo 5 Fremantle and the N900. In 8 words ... '''''<u>A Super Powerful and Customizable Widget Generation Engine</u>'''''
+
([http://talk.maemo.org/showthread.php?t=45388 See Talk Thread]) is a highly customizable and flexible widget-based multi-instance monitoring, alerting and interactive tool for Maemo 5 (Fremantle) and the [[Nokia N900|N900]]. In 8 words ... '''''A Super Powerful and Customizable Widget Generation Engine'''''
The Widget is based on the execution of external Shell/OS Commands which can be either as simple as one-liner statements or as complex as articulated shell scripts, which, for example, fetch, parse and aggregate contents retreived from the system, other applications or the Internet.
The Widget is based on the execution of external Shell/OS Commands which can be either as simple as one-liner statements or as complex as articulated shell scripts, which, for example, fetch, parse and aggregate contents retreived from the system, other applications or the Internet.
Line 10: Line 10:
There are two basic Widget types, '''Beecons''' and '''Snippets''':
There are two basic Widget types, '''Beecons''' and '''Snippets''':
-
'''''Beecons''''' are small hexagonal cells whose background color or associated image/icon changes according to the executed Command Exit Status.
+
Beecons are small hexagonal cells whose background color or associated image/icon changes according to the executed Command Exit Status.
-
Beecons can handle '''virtually unlimited Command Exit Status''':
+
Beecons can handle virtually unlimited Command Exit Status:
-
:* '''<0''' Normally notifying '''system errors''' in esecuting the script/command
+
* <code><0</code> Normally notifying '''system errors''' in esecuting the script/command
-
:* '''0''' Returned when script/command '''successfully completes'''
+
* <code>0</code> Returned when script/command '''successfully completes'''
-
:* '''1''' Used to report a '''warning condition'''
+
* <code>1</code> Used to report a '''warning condition'''
-
:* '''2''' If script/command needs to notify some '''application error conditions'''
+
* <code>2</code> If script/command needs to notify some '''application error conditions'''
-
:* '''<=126''' Other exit status which can be handled for displaying '''user defined icons/images'''
+
* <code><=126</code> Other exit status which can be handled for displaying '''user defined icons/images'''
-
'''''Snippets''''' are normal text/graphic boxes with fixed background color and images which is not influenced by the executed Command Exit Status.
+
Snippets are normal text/graphic boxes with fixed background color and images which is not influenced by the executed Command Exit Status.
== Current Status in Maemo Repositories ==
== Current Status in Maemo Repositories ==
-
'''[http://maemo.org/packages/view/queen-beecon/ v1.2(20/9/2010) extras-devel / v1.2(20/9/2010) extras-testing / v1.2(30/9/2010) EXTRAs]'''
+
[http://maemo.org/packages/view/queen-beecon/ v1.3.3(18/1/2011) extras-devel / v1.3.3(02/09/2011) extras-testing / v1.3.3(07/10/2011) EXTRAs]
-
----
+
-
= Features List =
+
== Features List ==
-
* Widget can be <u>multi-instantiated</u>, <u>disabled</u> and <u>minimized</u> on desktop (click on minimized icon on desktop will wakeup and maximize instance)
+
* Widget can be '''multi-instantiated''', '''disabled''' and '''minimized''' on desktop (click on minimized icon on desktop will wakeup and maximize instance)
-
* Possibility to define <u>multiple commands</u> and <u>command labels</u> to be displayed inside the Widget
+
* Possibility to define multiple commands and command labels to be displayed inside the Widget
-
* <u>Different</u> types of Widget <u>layouts and behaviours</u> (currently Beecons and Snippets)
+
* Different types of Widget '''layouts''' and '''behaviours''' (currently Beecons and Snippets)
* Possibility to sense Phone Orientation and execute scripts accordingly
* Possibility to sense Phone Orientation and execute scripts accordingly
* Possibility to sense GPS/Location information/FIX from the phone and execute scripts accordingly
* Possibility to sense GPS/Location information/FIX from the phone and execute scripts accordingly
-
* Possibility to <u>hide</u> the background <u>Canvas</u> both for Beecons and Snippets   
+
* Possibility to hide the background Canvas both for Beecons and Snippets   
-
* Possibility to use <u>icons/images</u> instead of text both for Beecons/Snippets command <u>title</u> and <u>output</u> (with high <u>positioning</u>, <u>zooming/scaling 5%-200%-FitToWidget</u> versatility) ;)  
+
* Possibility to use icons or images instead of text, both for Beecons/Snippets command '''title''' and '''output'' (with highly versatile positioning, zooming/scaling 5%-200%-FitToWidget)
-
* Possibility to use <u>custom progress animations</u> for each instance of the widget (with up to 30 frames, configurable frame period in msec and high <u>positioning</u> versatility) ;)
+
* Possibility to use '''custom progress animations''' for each instance of the widget (with up to 30 frames, configurable frame period in msec and highly versatile positioning
-
* It is possible to <u>independently show or hide</u> both <u>snippet's images/texts</u> and <u>beecon images/texts</u>. This way you can have two images and two text placeholders on widget, for more flexibility in graphic layout
+
* It is possible to independently show or hide both snippet's images/texts and beecon images/texts. This way you can have two images and two text placeholders on widget, for more flexibility in graphic layout
-
* <u>Independent images/icons for Command Exit Statuses</u> can also been specified. Useful, for example, for displaying different icons according to percentages values returned by command.
+
* Independent images/icons for Command Exit Statuses can also been specified. Useful, for example, for displaying different icons according to percentages values returned by command.
-
* Widget can be clicked on 9 different <u>Hot Spots</u> with a 3x3 grid layout or at specific position with ability to farword the click position to the script
+
* Widget can be clicked on 9 different '''Hot Spots''' with a 3x3 grid layout or at specific position with ability to forward the click position to the script
-
* <u>Multi Click</u> support on widget
+
* '''Multi Click''' support on widget
-
* Nice <u>"button-press"-like visual feedback</u> using Gradient fill  
+
* Nice "button-press"-like visual feedback using Gradient fill  
-
* Widget relies also on private <u>general purpose directories "~/.queen_beecon_dir/"</u> & <u>"..../MyDocs/.images/queen_beecon_dir/"</u> as images/icons immediate storage. For easier population via USB of BLUETOOTH File Services.   
+
* Widget relies also on private general purpose directories "<code>~/.queen_beecon_dir/</code>" and "<code>..../MyDocs/.images/queen_beecon_dir/</code>" as images/icons immediate storage. For easier population via USB of BLUETOOTH File Services.   
-
* Widget texts can be formatted through <u>'''[http://maemo.org/api_refs/5.0/5.0-final/pango/PangoMarkupFormat.html Pango Markup Language''']</u>
+
* Widget texts can be formatted through [http://maemo.org/api_refs/5.0/5.0-final/pango/PangoMarkupFormat.html Pango Markup Language]
-
* Widget <u>Size</u> can be customized (Width: 10-800, Height: 10-420 with pixel precision) and position can be fine tuned (X,Y +/- 5pix); Tweaking '''/usr/share/hildon-desktop/transitions.ini''' may also help. (''snap_grid_size = 1 & snap_to_grid_while_move = 1'')
+
* Widget Size can be customized (Width: 10-800, Height: 10-420 with pixel precision) and position can be fine tuned (X,Y +/- 5pix); Tweaking "<code>/usr/share/hildon-desktop/transitions.ini</code>" may also help. (<code>snap_grid_size = 1 & snap_to_grid_while_move = 1</code>)
-
* <u>Background color for Beecons</u> can be customized for each 4 Command Exit Statuses (with graphical preview)
+
* Background color for Beecons can be customized for each 4 Command Exit Statuses (with graphical preview)
-
* <u>Background color for Snippets</u> can be customized (with graphical preview)
+
* Background color for Snippets can be customized (with graphical preview)
-
* <u>Font Color</u> of both command label and results can be configured (with graphical preview)
+
* Font Color of both command label and results can be configured (with graphical preview)
-
* <u>Position</u> and <u>Visibility</u> of both command label and results can be configured (Hidden, Top L, Top C, Top R, Center L, Center, Center R, Bottom L, Bottom C, Bottom R) Also <u>rotation</u> of labes can be changed (0, 90, 180, 270 degrees)
+
* Position and visibility of both command label and results can be configured (Hidden, Top L, Top C, Top R, Center L, Center, Center R, Bottom L, Bottom C, Bottom R) Also, rotation of lables can be changed (0, 90, 180, 270 degrees)
-
* <u>Font Face, Style and Size</u> of both command label and results can be configured with preview
+
* Font Face, Style and Size of both command label and results can be configured with preview
-
* <u>Text Justification</u> of both command label and results can be configured (Left, Center, Right, Fill)
+
* Text Justification of both command label and results can be configured (Left, Center, Right, Fill)
-
* <u>Text Wrapping</u> of results can be enabled
+
* Text Wrapping of results can be enabled
-
* Command execution can be triggered optionally on widget <u>startup</u>, by <u>manual pressing</u> on Widget, by <u>desktop switching</u>, by <u>periodic updates</u> (0=Manual, 30s, 1m, 5m, 30m, 1h, 6h, 12h, 1d, Custom Seconds Interval), by specific <u>DBUS Events</u> on System or Session Bus.which can be filtered through custom rules, by <u>orientation changes</u>, by <u>GPS</u>
+
* Command execution can be triggered optionally on widget startup, by manual pressing on Widget, by desktop switching, by periodic updates (0=Manual, 30 s, 1 m, 5 m, 30 m, 1 h, 6 h, 12 h, 1 d, Custom Seconds Interval), by specific DBUS Events on System or Session Bus.which can be filtered through custom rules, by orientation changes, by GPS
-
* Command execution can be <u>subject to network connection status</u> and <u>widget visibility</u> on current desktop
+
* Command execution can be subject to network connection status and widget visibility on current desktop
-
* Tool includes a powerful <u>Advanced Maintenance Dialog Box for command development and testing</u> (TestDrive mode to display raw output of predefined or user-defined commands)
+
* Tool includes a powerful Advanced Maintenance Dialog Box for command development and testing (TestDrive mode to display raw output of predefined or user-defined commands)
-
* A wide set of <u>Parameter Substitution Variables</u> can be passed to executed scripts; variables include: Instance ID, Pressed Hot Spot, Visibility of Widget, Execution Triggering Event, content of Output text, verbose DBUS messages, persistent information stored in widget specific parameter, Proxy related information
+
* A wide set of Parameter Substitution Variables can be passed to executed scripts; variables include: Instance ID, Pressed Hot Spot, Visibility of Widget, Execution Triggering Event, content of Output text, verbose DBUS messages, persistent information stored in widget specific parameter, Proxy related information
-
* Advanced Maintenance Dialog Box includes <u>extended functionalities</u> like: <u>instance export/import</u> w/ checksum, <u>command export/import</u> w/ checksum, <u>command update</u> with current Test Drive buffer, <u>clipboard operations</u>, export/import to/from files for instance data and commands.
+
* Advanced Maintenance Dialog Box includes extended functionalities like:
-
* A <u>set of basic Images/Icons for Snippets and Beecon Statuses is included</u> inside the distribution package and installed inside canonical hildon hicolor 48x48 directory
+
** instance export/import with checksum
-
* <u>Inter Process Communication</u> mechanism among QBW instances and with other Applications has been implemented through <u>DBUS</u> methods and signals handling
+
** command export/import with checksum
-
* It is integrated into the <u>N900</u> system <u>backup/restore</u> features according to standard specifications as better described in SDK [http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Generic_Platform_Components/Using_Backup_Application#Custom_back-up_locations Using Backup Application]
+
** command update with current Test Drive buffer
-
* Powerful <u>Application Logging Subsystem</u>
+
** clipboard operations
-
* For <u>Web and Proxy</u> related info and issues please have a look at [[#Parameter_Substitution_at_Command.2FScript_Runtime|HERE]] and [http://talk.maemo.org/showpost.php?p=544591&postcount=12 THIS] post.
+
** export/import to/from files for instance data and commands.
-
----
+
* A set of basic Images/Icons for Snippets and Beecon Statuses is included inside the distribution package and installed inside canonical hildon hicolor 48x48 directory
 +
* Inter Process Communication mechanism among QBW instances and with other Applications has been implemented through DBUS methods and signals handling
 +
* It is integrated into the N900 system backup/restore features according to standard specifications as better described in the  [[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application#Custom back-up locations|SDK documentation]]
 +
* Powerful Application Logging Subsystem
 +
* For Web and Proxy related information and issues please have a look at the [[#Parameter_Substitution_at_Command.2FScript_Runtime|parameter substitution documentation]] and [http://talk.maemo.org/showpost.php?p=544591&postcount=12 THIS] post.
-
= Donate =
+
== Donate ==
-
'''[https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QTSK26NUKNXFC Queen BeeCon Widget is free software, but if you feel like donating for supporting further developments or just to let me know that you like it, you can donate via Paypal]'''
+
[https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QTSK26NUKNXFC Queen BeeCon Widget is free software, but if you feel like donating for supporting further developments or just to let me know that you like it, you can donate via Paypal]
-
----
+
 
-
= Icons in Package =
+
== Icons in Package ==
-
{|
+
 
-
|-
+
[[Image:Snap039.png|600px]]
-
|[[Image:Queen-beecon.png]]
+
 
-
queen-beecon.png
+
[[Image:DTl8W.png|600px]]
-
|[[Image:Queen-beecon-resimg.png]]
+
-
queen-beecon-resimg.png
+
-
|[[Image:Queen-beecon-noimg.png]]
+
-
queen-beecon-noimg.png
+
-
|[[Image:Queen-beecon-zzz.png]]
+
-
queen-beecon-zzz.png
+
-
|-
+
-
|[[Image:Queen-beecon-syserr.png]]
+
-
queen-beecon-syserr.png
+
-
|[[Image:Queen-beecon-appok.png]]
+
-
queen-beecon-appok.png
+
-
|[[Image:Queen-beecon-appwrn.png]]
+
-
queen-beecon-appwrn.png
+
-
|[[Image:Queen-beecon-apperr.png]]
+
-
queen-beecon-apperr.png
+
-
|-
+
-
|[[Image:Queen-beecon-index.png.3.png]]
+
-
queen-beecon-index.png.3
+
-
|[[Image:Queen-beecon-index.png.4.png]]
+
-
queen-beecon-index.png.4
+
-
|[[Image:Queen-beecon-index.png.5.png]]
+
-
queen-beecon-index.png.5
+
-
|[[Image:Queen-beecon-index.png.6.png]]
+
-
queen-beecon-index.png.6
+
-
|-
+
-
|[[Image:Queen-beecon-index.png.7.png]]
+
-
queen-beecon-index.png.7
+
-
|[[Image:Queen-beecon-index.png.8.png]]
+
-
queen-beecon-index.png.8
+
-
|[[Image:Queen-beecon-index.png.9.png]]
+
-
queen-beecon-index.png.9
+
-
|[[Image:Queen-beecon-index.png.10.png]]
+
-
queen-beecon-index.png.10
+
-
|-
+
-
|[[Image:Queen-beecon-index.png.11.png]]
+
-
queen-beecon-index.png.11
+
-
|[[Image:Queen-beecon-index.png.12.png]]
+
-
queen-beecon-index.png.12
+
-
|[[Image:Queen-beecon-index.png.13.png]]
+
-
queen-beecon-index.png.13
+
-
|
+
-
|-
+
-
|[[Image:Queen-beecon-progress0.png]]
+
-
queen-beecon-progress0.png
+
-
|[[Image:Queen-beecon-progress1.png]]
+
-
queen-beecon-progress1.png
+
-
|[[Image:Queen-beecon-progress2.png]]
+
-
queen-beecon-progress2.png
+
-
|[[Image:Queen-beecon-progress3.png]]
+
-
queen-beecon-progress3.png
+
-
|}
+
-
----
+
-
= Settings and Tools =
+
== Settings and Tools ==
-
== Standard Settings and Configuration File ==
+
=== Standard Settings and Configuration File ===
Global and per-instance QBW parameters are stored in this file:
Global and per-instance QBW parameters are stored in this file:
-
  '''/home/user/.queen_beecon'''
+
  /home/user/.queen_beecon
-
=== Configuration Parameters, Types & Reference ===
+
==== Configuration Parameters, Types & Reference ====
These are the parameters and settings which can be changed for each QBW instance. They are stored independently, for each Instance, inside the configuration file.
These are the parameters and settings which can be changed for each QBW instance. They are stored independently, for each Instance, inside the configuration file.
-
Their reference is also useful for '''[[#Interaction_with_QBW_over_DBUS|Interaction with QBW over DBUS]]''' and in particular for parameters amendments/fetching methods:
+
Their reference is also useful for [[#Interaction with QBW over DBUS|Interaction with QBW over DBUS]] and in particular for parameters amendments/fetching methods:
 +
 
 +
=====Widget Type, Visibility, Status and Associated Command=====
-
====Widget Type, Visibility, Status and Associated Command====
 
[[Image:Snap193.jpg|350px]]
[[Image:Snap193.jpg|350px]]
-
{|class="wikitable" border="2"
+
 
 +
{|class="wikitable"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
|1||<code>0.0.1</code>||<code>'''widgetType'''</code>||<code>int32</code>||<code>0=Beecon<nowiki>|</nowiki>1=Snippet</code>||Specify the type of the instantiated widget
+
|1||<code>0.0.1</code>||<code>widgetType</code>||<code>int32</code>||<code>0=Beecon<nowiki>|</nowiki>1=Snippet</code>||Specify the type of the instantiated widget
|-
|-
-
|2||<code>0.1.7</code>||<code>'''widgetVisible'''</code>||<code>int32</code>||<code>0=Hidden<nowiki>|</nowiki>1=Visible</code>||Specify if widget components should be visible or not
+
|2||<code>0.1.7</code>||<code>widgetVisible</code>||<code>int32</code>||<code>0=Hidden<nowiki>|</nowiki>1=Visible</code>||Specify if widget components should be visible or not
|-
|-
-
|3||<code>0.1.4</code>||<code>'''operationalStatus'''</code>||<code>int32</code>||<code>0=Enabled<nowiki>|</nowiki>1=Disabled</code>||If disabled, the widget will not be subject to update policies and will be iconified on desktop, a subsequent tap on it will revert its status to Enabled
+
|3||<code>0.1.4</code>||<code>operationalStatus</code>||<code>int32</code>||<code>0=Enabled<nowiki>|</nowiki>1=Disabled</code>||If disabled, the widget will not be subject to update policies and will be iconified on desktop, a subsequent tap on it will revert its status to Enabled
|-
|-
-
|4||<code>0.0.1</code>||<code>'''instanceTitle'''</code>||<code>string</code>||-||Holds the title of the command/script to be executed. If this field is blank, it means that command is still present in the widget instance but not present any more in the list of possible commands. Can still be adited via "Edit Cmd" button and added again to the list.
+
|4||<code>0.0.1</code>||<code>instanceTitle</code>||<code>string</code>||-||Holds the title of the command/script to be executed. If this field is blank, it means that command is still present in the widget instance but not present any more in the list of possible commands. Can still be adited via "Edit Cmd" button and added again to the list.
|}
|}
====Widget Size & Position Tuning====
====Widget Size & Position Tuning====
-
[[Image:Snap195.jpg|350px]]
+
 
-
{|class="wikitable" border="2"
+
[[Image:Snap030.png|350px]]
 +
 
 +
{|class="wikitable"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
|1||<code>0.0.1</code>||<code>'''widWidth'''</code>||<code>double</code>||-||This is the Width of the widget
+
|1||<code>0.0.1</code>||<code>widWidth</code>||<code>double</code>||-||This is the Width of the widget
 +
|-
 +
|2||<code>0.0.1</code>||<code>widHeight</code>||<code>double</code>||-||This is the Height of the widget
 +
|-
 +
|3||<code>1.3</code>||<code>-</code>||<code>-</code>||-||This is the X coordinate of the widget, can be dynamically changed
|-
|-
-
|2||<code>0.0.1</code>||<code>'''widHeight'''</code>||<code>double</code>||-||This is the Height of the widget
+
|4||<code>1.3</code>||<code>-</code>||<code>-</code>||-||This is the Y coordinate of the widget, can be dynamically changed
|}
|}
-
====Status Background Colors & Images====
+
=====Status Background Colors & Images=====
-
[[Image:Snap199.jpg|350px]]
+
 
-
{|class="wikitable" border="2"
+
[[Image:Snap031.png|350px]]
 +
 
 +
{|class="wikitable"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
|1||<code>0.1.0</code>||<code>'''hideCanvas'''</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||If set to true, the geometric canvas of the widget will not be shown
+
|1||<code>0.1.0</code>||<code>hideCanvas</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||If set to true, the geometric canvas of the widget will not be shown
|-
|-
-
|2||<code>1.0.4</code>||<code>'''hideClickCanvas'''</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||If set to true, the geometric canvas of the widget will not be shown on click
+
|2||<code>1.0.4</code>||<code>hideClickCanvas</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||If set to true, the geometric canvas of the widget will not be shown on click
|-
|-
-
|3||<code>0.1.9.1</code>||<code>'''snippetExtBgRGB'''</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Background color of Snippets
+
|3||<code>0.1.9.1</code>||<code>snippetExtBgRGB</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Background color of Snippets
|-
|-
-
| ||<code>0.1.0</code>||<code>'''snippetBgRGB'''</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
+
| ||<code>0.1.0</code>||<code>snippetBgRGB</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
|}
|}
-
====Beecon Statuses: Images, Scale, Background Color====
+
=====Beecon Statuses: Images, Scale, Background Color=====
 +
 
[[Image:Snap201.jpg|350px]]
[[Image:Snap201.jpg|350px]]
-
{|class="wikitable" border="2"
+
 
 +
{|class="wikitable"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
|1||<code>0.1.0</code>||<code>'''beecon_lt0_ImgFilename'''</code>||<code>string</code>||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status less than zero
+
|1||<code>0.1.0</code>||<code>beecon_lt0_ImgFilename</code>||<code>string</code>||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status less than zero
|-
|-
-
|2||<code>0.1.4</code>||<code>'''beecon_lt0_ImgZoom'''</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
+
|2||<code>0.1.4</code>||<code>beecon_lt0_ImgZoom</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|-
-
|3||<code>0.1.9.1</code>||<code>'''beecon_lt0_ExtBgRGB'''</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status less than zero
+
|3||<code>0.1.9.1</code>||<code>beecon_lt0_ExtBgRGB</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status less than zero
|-
|-
-
|4||<code>0.1.0</code>||<code>'''beecon_eq0_ImgFilename'''</code>||<code>string</code>||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to zero
+
|4||<code>0.1.0</code>||<code>beecon_eq0_ImgFilename</code>||<code>string</code>||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to zero
|-
|-
-
|5||<code>0.1.4</code>||<code>'''beecon_eq0_ImgZoom'''</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
+
|5||<code>0.1.4</code>||<code>beecon_eq0_ImgZoom</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|-
-
|6||<code>0.1.9.1</code>||<code>'''beecon_eq0_ExtBgRGB'''</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to zero
+
|6||<code>0.1.9.1</code>||<code>beecon_eq0_ExtBgRGB</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to zero
|-
|-
-
|7||<code>0.1.0</code>||<code>'''beecon_eq1_ImgFilename'''</code>||<code>string</code>||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to 1
+
|7||<code>0.1.0</code>||<code>beecon_eq1_ImgFilename</code>||<code>string</code>||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to 1
|-
|-
-
|8||<code>0.1.4</code>||<code>'''beecon_eq1_ImgZoom'''</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
+
|8||<code>0.1.4</code>||<code>beecon_eq1_ImgZoom</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|-
-
|9||<code>0.1.9.1</code>||<code>'''beecon_eq1_ExtBgRGB'''</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to 1
+
|9||<code>0.1.9.1</code>||<code>beecon_eq1_ExtBgRGB</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to 1
|-
|-
-
|10||<code>0.1.0</code>||<code>'''beecon_ge2_ImgFilename'''</code>||<code>string</code>||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to 2
+
|10||<code>0.1.0</code>||<code>beecon_ge2_ImgFilename</code>||<code>string</code>||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to 2
|-
|-
-
|11||<code>0.1.4</code>||<code>'''beecon_ge2_ImgZoom'''</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
+
|11||<code>0.1.4</code>||<code>beecon_ge2_ImgZoom</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|-
-
|12||<code>0.1.9.1</code>||<code>'''beecon_ge2_ExtBgRGB'''</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to 2
+
|12||<code>0.1.9.1</code>||<code>beecon_ge2_ExtBgRGB</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to 2
|-
|-
-
|13||<code>0.1.0</code>||<code>'''beecon_idxge2_ImgFilename'''</code>||<code>string</code>||-||Applies to Beecons; it's the '''basename''' of the image to be displayed if script/command returns an Exit Status greater than or equal to 3; Final image filename will be built as '''<code><basename>.png.<exit code></code>''' (Ex.dice.png.3, dice.png.4 ...)
+
|13||<code>0.1.0</code>||<code>beecon_idxge2_ImgFilename</code>||<code>string</code>||-||Applies to Beecons; it's the basename of the image to be displayed if script/command returns an Exit Status greater than or equal to 3; Final image filename will be built as <code><basename>.png.<exit code></code> (Ex.dice.png.3, dice.png.4 ...)
|-
|-
-
|14||<code>0.1.4</code>||<code>'''beecon_idxge2_ImgZoom'''</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
+
|14||<code>0.1.4</code>||<code>beecon_idxge2_ImgZoom</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|-
-
|15||<code>0.1.9.1</code>||<code>'''beecon_idxge2_ExtBgRGB'''</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status is greater than or equal to 3
+
|15||<code>0.1.9.1</code>||<code>beecon_idxge2_ExtBgRGB</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status is greater than or equal to 3
|-
|-
-
| ||<code>0.1.0</code>||<code>'''beecon_lt0_BgRGB'''</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
+
| ||<code>0.1.0</code>||<code>beecon_lt0_BgRGB</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
|-
|-
-
| ||<code>0.1.0</code>||<code>'''beecon_eq0_BgRGB'''</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
+
| ||<code>0.1.0</code>||<code>beecon_eq0_BgRGB</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
|-
|-
-
| ||<code>0.1.0</code>||<code>'''beecon_eq1_BgRGB'''</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
+
| ||<code>0.1.0</code>||<code>beecon_eq1_BgRGB</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
|-
|-
-
| ||<code>0.1.0</code>||<code>'''beecon_ge2_BgRGB'''</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
+
| ||<code>0.1.0</code>||<code>beecon_ge2_BgRGB</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
|-
|-
-
| ||<code>0.1.0</code>||<code>'''beecon_idxge2_BgRGB'''</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
+
| ||<code>0.1.0</code>||<code>beecon_idxge2_BgRGB</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
|}
|}
-
====Command Title Settings====
+
=====Command Title Settings=====
 +
 
[[Image:Snap203.jpg|350px]]
[[Image:Snap203.jpg|350px]]
 +
{|class="wikitable" border="2"
{|class="wikitable" border="2"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
|1||<code>0.1.0</code>||<code>'''cmdImgFilename'''</code>||<code>string</code>||-||Applies both to Beecons and to Snippets; it's the filename of the image to be displayed as complementary to the Command Title label. Can be used to provide a customized image-based background to the widget.
+
|1||<code>0.1.0</code>||<code>cmdImgFilename</code>||<code>string</code>||-||Applies both to Beecons and to Snippets; it's the filename of the image to be displayed as complementary to the Command Title label. Can be used to provide a customized image-based background to the widget.
|-
|-
-
|2||<code>1.0.3</code>||<code>'''cmdImgAngle'''</code>||<code>uint32</code>||<code>0=0 Degrees</code><br/><code>1=90 Degrees</code><br/><code>2=180 Degrees</code><br/><code>3=270 Degrees</code>||It's the rotation of the Image associated to the Command Title (0, 90, 180, 270 degrees)
+
|2||<code>1.0.3</code>||<code>cmdImgAngle</code>||<code>uint32</code>||<code>0=0 Degrees</code><br/><code>1=90 Degrees</code><br/><code>2=180 Degrees</code><br/><code>3=270 Degrees</code>||It's the rotation of the Image associated to the Command Title (0, 90, 180, 270 degrees)
|-
|-
-
|3||<code>0.1.4</code>||<code>'''cmdImgZoom'''</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
+
|3||<code>0.1.4</code>||<code>cmdImgZoom</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|-
-
|4||<code>0.1.3</code>||<code>'''cmdImgVisibilityPosition'''</code>||<code>int32</code>||<code>0=Hidden<br/>1=Top Left<br/>2=Top Center<br/>3=Top Right<br/>4=Center Left<br/>5=Center<br/>6=Center Right<br/>7=Bottom Left<br/>8=Bottom Center<br/>9=Bottom Right</code>||Sets the Visibility and Position of the image associated to Command Title (Both for Snippets and for Beecons)
+
|4||<code>0.1.3</code>||<code>cmdImgVisibilityPosition</code>||<code>int32</code>||<code>0=Hidden<br/>1=Top Left<br/>2=Top Center<br/>3=Top Right<br/>4=Center Left<br/>5=Center<br/>6=Center Right<br/>7=Bottom Left<br/>8=Bottom Center<br/>9=Bottom Right</code>||Sets the Visibility and Position of the image associated to Command Title (Both for Snippets and for Beecons)
|-
|-
-
|5||<code>0.1.9</code>||<code>'''cmdExtFont'''</code>||<code>string</code>||<code>[<family>] [italic] [bold] [<size>]</code>||Font string specification for Command label (Ex. Nokia Sans Italic Bold 12)
+
|5||<code>0.1.9</code>||<code>cmdExtFont</code>||<code>string</code>||<code>[<family>] [italic] [bold] [<size>]</code>||Font string specification for Command label (Ex. Nokia Sans Italic Bold 12)
|-
|-
-
|6||<code>0.1.9.1</code>||<code>'''cmdExtFgRGB'''</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||It's the Foreground color to be used with Command Title label
+
|6||<code>0.1.9.1</code>||<code>cmdExtFgRGB</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||It's the Foreground color to be used with Command Title label
|-
|-
-
|7||<code>0.1.3</code>||<code>'''cmdVisibilityPosition'''</code>||<code>int32</code>||<code>0=Hidden<br/>1=Top Left<br/>2=Top Center<br/>3=Top Right<br/>4=Center Left<br/>5=Center<br/>6=Center Right<br/>7=Bottom Left<br/>8=Bottom Center<br/>9=Bottom Right</code>||Sets the Visibility and Position of the Command Title label
+
|7||<code>0.1.3</code>||<code>cmdVisibilityPosition</code>||<code>int32</code>||<code>0=Hidden<br/>1=Top Left<br/>2=Top Center<br/>3=Top Right<br/>4=Center Left<br/>5=Center<br/>6=Center Right<br/>7=Bottom Left<br/>8=Bottom Center<br/>9=Bottom Right</code>||Sets the Visibility and Position of the Command Title label
|-
|-
-
|8||<code>0.1.9.1</code>||<code>'''cmdTextAngle'''</code>||<code>uint32</code>||<code>0=0 Degrees</code><br/><code>1=90 Degrees</code><br/><code>2=180 Degrees</code><br/><code>3=270 Degrees</code>||It's the rotation of the Command Title Label (0, 90, 180, 270 degrees)
+
|8||<code>0.1.9.1</code>||<code>cmdTextAngle</code>||<code>uint32</code>||<code>0=0 Degrees</code><br/><code>1=90 Degrees</code><br/><code>2=180 Degrees</code><br/><code>3=270 Degrees</code>||It's the rotation of the Command Title Label (0, 90, 180, 270 degrees)
|-
|-
-
|9||<code>0.1.0</code>||<code>'''cmdJustify'''</code>||<code>int32</code>||<code>0=Left</code><br/><code>1=Right</code><br/><code>2=Center</code><br/><code>3=Fill</code>||It's the justification to be used with Command Title label
+
|9||<code>0.1.0</code>||<code>cmdJustify</code>||<code>int32</code>||<code>0=Left</code><br/><code>1=Right</code><br/><code>2=Center</code><br/><code>3=Fill</code>||It's the justification to be used with Command Title label
|-
|-
-
| ||<code>0.1.0</code>||<code>'''cmdFgRGB'''</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
+
| ||<code>0.1.0</code>||<code>cmdFgRGB</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
|-
|-
-
| ||<code>0.1.0</code>||<code>'''cmdFontName'''</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9
+
| ||<code>0.1.0</code>||<code>cmdFontName</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9
|-
|-
-
| ||<code>0.1.0</code>||<code>'''cmdFontSize'''</code>||<code>double</code>||-||Obsoleted as of release >=0.1.9
+
| ||<code>0.1.0</code>||<code>cmdFontSize</code>||<code>double</code>||-||Obsoleted as of release >=0.1.9
|}
|}
-
====Command Results Settings====
+
=====Command Results Settings=====
-
[[Image:Snap205.jpg|350px]]
+
 
 +
[[Image:Snap032.png|350px]]
 +
 
{|class="wikitable" border="2"
{|class="wikitable" border="2"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
|1||<code>0.1.0</code>||<code>'''resImgFilename'''</code>||<code>string</code>||-||Applies both to Snippets; it's the filename of the image to be displayed as complementary to the Command Results label.
+
|1||<code>0.1.0</code>||<code>resImgFilename</code>||<code>string</code>||-||Applies both to Snippets; it's the filename of the image to be displayed as complementary to the Command Results label.
|-
|-
-
|2||<code>1.0.3</code>||<code>'''resImgAngle'''</code>||<code>uint32</code>||<code>0=0 Degrees</code><br/><code>1=90 Degrees</code><br/><code>2=180 Degrees</code><br/><code>3=270 Degrees</code>||It's the rotation of the Image associated to the Command Results (0, 90, 180, 270 degrees)
+
|2||<code>1.0.3</code>||<code>resImgAngle</code>||<code>uint32</code>||<code>0=0 Degrees</code><br/><code>1=90 Degrees</code><br/><code>2=180 Degrees</code><br/><code>3=270 Degrees</code>||It's the rotation of the Image associated to the Command Results (0, 90, 180, 270 degrees)
|-
|-
-
|3||<code>0.1.4</code>||<code>'''resImgZoom'''</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
+
|3||<code>0.1.4</code>||<code>resImgZoom</code>||<code>int32</code>||<code>0=1:1</code><br/><code>1=Fit to widget dimensions</code><br/><code>2=5%</code><br/><code>3=10%</code><br/><code>4=15%</code><br/><code>... till 200%</code>||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|-
-
|4||<code>0.1.3</code>||<code>'''resImgVisibilityPosition'''</code>||<code>int32</code>||<code>0=Hidden<br/>1=Top Left<br/>2=Top Center<br/>3=Top Right<br/>4=Center Left<br/>5=Center<br/>6=Center Right<br/>7=Bottom Left<br/>8=Bottom Center<br/>9=Bottom Right</code>||Sets the Visibility and Position of the image associated to Command Results (For Snippets)
+
|4||<code>0.1.3</code>||<code>resImgVisibilityPosition</code>||<code>int32</code>||<code>0=Hidden<br/>1=Top Left<br/>2=Top Center<br/>3=Top Right<br/>4=Center Left<br/>5=Center<br/>6=Center Right<br/>7=Bottom Left<br/>8=Bottom Center<br/>9=Bottom Right</code>||Sets the Visibility and Position of the image associated to Command Results (For Snippets)
|-
|-
-
|5||<code>0.1.9</code>||<code>'''resExtFont'''</code>||<code>string</code>||<code>[<family>] [italic] [bold] [<size>]</code>||Font string specification for Results label (Ex. Nokia Sans Italic Bold 12)
+
|5||<code>0.1.9</code>||<code>resExtFont</code>||<code>string</code>||<code>[<family>] [italic] [bold] [<size>]</code>||Font string specification for Results label (Ex. Nokia Sans Italic Bold 12)
|-
|-
-
|6||<code>0.1.9.1</code>||<code>'''resExtFgRGB'''</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||It's the Foreground color to be used with Command Results label
+
|6||<code>0.1.9.1</code>||<code>resExtFgRGB</code>||<code>string</code>||<code>#<rrrr><gggg><bbbb></code>||It's the Foreground color to be used with Command Results label
|-
|-
-
|7||<code>0.1.3</code>||<code>'''resVisibilityPosition'''</code>||<code>int32</code>||<code>0=Hidden<br/>1=Top Left<br/>2=Top Center<br/>3=Top Right<br/>4=Center Left<br/>5=Center<br/>6=Center Right<br/>7=Bottom Left<br/>8=Bottom Center<br/>9=Bottom Right</code>||Sets the Visibility and Position of the Command Results label
+
|7||<code>0.1.3</code>||<code>resVisibilityPosition</code>||<code>int32</code>||<code>0=Hidden<br/>1=Top Left<br/>2=Top Center<br/>3=Top Right<br/>4=Center Left<br/>5=Center<br/>6=Center Right<br/>7=Bottom Left<br/>8=Bottom Center<br/>9=Bottom Right</code>||Sets the Visibility and Position of the Command Results label
|-
|-
-
|8||<code>0.1.9.1</code>||<code>'''resTextAngle'''</code>||<code>uint32</code>||<code>0=0 Degrees</code><br/><code>1=90 Degrees</code><br/><code>2=180 Degrees</code><br/><code>3=270 Degrees</code>||It's the rotation of the Command Results Label (0, 90, 180, 270 degrees)
+
|8||<code>0.1.9.1</code>||<code>resTextAngle</code>||<code>uint32</code>||<code>0=0 Degrees</code><br/><code>1=90 Degrees</code><br/><code>2=180 Degrees</code><br/><code>3=270 Degrees</code>||It's the rotation of the Command Results Label (0, 90, 180, 270 degrees)
|-
|-
-
|9||<code>0.1.0</code>||<code>'''resJustify'''</code>||<code>int32</code>||<code>0=Left</code><br/><code>1=Right</code><br/><code>2=Center</code><br/><code>3=Fill</code>||It's the justification to be used with Command Results label
+
|9||<code>0.1.0</code>||<code>resJustify</code>||<code>int32</code>||<code>0=Left</code><br/><code>1=Right</code><br/><code>2=Center</code><br/><code>3=Fill</code>||It's the justification to be used with Command Results label
|-
|-
-
| ||<code>0.1.0</code>||<code>'''resFgRGB'''</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
+
|10||<code>1.3</code>||<code>resWrapLongLines</code>||<code>boolean</code>||<code>false=disabled</code><br/><code>true=enabled</code>||Enables the text wrapping on long lines with Command Results label
|-
|-
-
| ||<code>0.1.0</code>||<code>'''resFontName'''</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
+
| ||<code>0.1.0</code>||<code>resFgRGB</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
|-
|-
-
| ||<code>0.1.0</code>||<code>'''resFontSize'''</code>||<code>double</code>||-||Obsoleted as of release >=0.1.9.1
+
| ||<code>0.1.0</code>||<code>resFontName</code>||<code>int32</code>||-||Obsoleted as of release >=0.1.9.1
 +
|-
 +
| ||<code>0.1.0</code>||<code>resFontSize</code>||<code>double</code>||-||Obsoleted as of release >=0.1.9.1
|}
|}
-
====Progress Animation====
+
=====Progress Animation=====
-
[[Image:Snap207.jpg|350px]]
+
 
-
{|class="wikitable" border="2"
+
[[Image:Snap033.png|350px]]
 +
 
 +
{|class="wikitable"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
|1||<code>0.1.9.8</code>||<code>'''progressAnimationFrames'''</code>||<code>uint32</code>||<code>[0-30]</code>||Holds the number of frames to display for the animation; 0 if animations should be hidden MAX 30
+
|1||<code>0.1.9.8</code>||<code>progressAnimationFrames</code>||<code>uint32</code>||<code>[0-30]</code>||Holds the number of frames to display for the animation; 0 if animations should be hidden MAX 30
|-
|-
-
|2||<code>0.1.9.8</code>||<code>'''progressAnimationTimer'''</code>||<code>uint32</code>||<code>[0-20]</code>||Holds the number of milliseconds/50 to wait before drawing next frame (<=4secs)
+
|2||<code>0.1.9.8</code>||<code>progressAnimationTimer</code>||<code>uint32</code>||<code>[0-20]</code>||Holds the number of milliseconds/50 to wait before drawing next frame (<=4secs)
|-
|-
-
|3||<code>0.1.9.8</code>||<code>'''progressAnimationPos'''</code>||<code>uint32</code>||<code>0=Top Left</code><br/><code>1=Top Center</code><br/><code>2=Top Right</code><br/><code>3=Center Left</code><br/><code>4=Center</code><br/><code>5=Center Right</code><br/><code>6=Bottom Left</code><br/><code>7=Bottom Center</code><br/><code>8=Bottom Right</code>||Holds the default position index of the animation in the widget
+
|3||<code>0.1.9.8</code>||<code>progressAnimationPos</code>||<code>uint32</code>||<code>0=Top Left</code><br/><code>1=Top Center</code><br/><code>2=Top Right</code><br/><code>3=Center Left</code><br/><code>4=Center</code><br/><code>5=Center Right</code><br/><code>6=Bottom Left</code><br/><code>7=Bottom Center</code><br/><code>8=Bottom Right</code><br/><code>9=Top Left & Hide Widget</code><br/><code>10=Top Center & Hide Widget</code><br/><code>11=Top Right & Hide Widget</code><br/><code>12=Center Left & Hide Widget</code><br/><code>13=Center & Hide Widget</code><br/><code>14=Center Right & Hide Widget</code><br/><code>15=Bottom Left & Hide Widget</code><br/><code>16=Bottom Center & Hide Widget</code><br/><code>17=Bottom Right & Hide Widget</code>||Holds the default position index of the animation in the widget and/or hide the widget itself during progress animation
|-
|-
-
|4||<code>1.0.4</code>||<code>'''progressAnimationAtClickXY'''</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||If checked, progress animation is displayed at X,Y position where widget is clicked.
+
|4||<code>1.0.4</code>||<code>progressAnimationAtClickXY</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||If checked, progress animation is displayed at X,Y position where widget is clicked.
|-
|-
-
|5||<code>0.1.9.8</code>||<code>'''progressAnimationBasename'''</code>||<code>string</code>||-||Holds the basename of the files to load as frames from the relevant directory. Final frame filename will be built as '''<code><basename><frame number>.png</code>'''
+
|5||<code>0.1.9.8</code>||<code>progressAnimationBasename</code>||<code>string</code>||-||Holds the basename of the files to load as frames from the relevant directory. Final frame filename will be built as <code><basename><frame number>.png</code>
|}
|}
-
====Update Policy====
+
=====Update Policy=====
-
[[Image:Snap208.jpg|350px]]
+
 
-
{|class="wikitable" border="2"
+
[[Image:Snap034.png|350px]]
 +
 
 +
{|class="wikitable"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
|1||<code>0.1.0</code>||<code>'''updOnStartup'''</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||Update policy which defines if widget must be updated on system Startup or on widget Wakeup
+
|1||<code>0.1.0</code>||<code>updOnStartup</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||Update policy which defines if widget must be updated on system Startup or on widget Wakeup
 +
|-
 +
|2||<code>0.0.1</code>||<code>updOnDesktop</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||Update policy which defines if widget must be updated when desktop, on which the widget resides, gets displayed either by being dragged or after resume from standby.
 +
|-
 +
|3||<code>0.1.9.9</code>||<code>updOnSight</code>||<code>uint32</code>||<code>true<nowiki>|</nowiki>false</code>||If set to <code>true</code>, widget content is only updated if on current desktop and visible (if screen locked no update will take place)
|-
|-
-
|2a||<code>0.0.1</code>||<code>'''updOnClick'''</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||Update policy which defines if widget must be updated when it is clicked
+
|4||<code>0.0.1</code>||<code>updOnClick</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||Update policy which defines if widget must be updated when it is clicked
|-
|-
-
|2b||<code>1.2.10</code>||<code>'''multiClick'''</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||Enable/Disable support for multi click on widget (quicker click response if disabled)
+
|5||<code>1.2.10</code>||<code>multiClick</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||Enable/Disable support for multi click on widget (quicker click response if disabled)
|-
|-
-
|3||<code>0.0.1</code>||<code>'''updOnDesktop'''</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||Update policy which defines if widget must be updated when desktop, on which the widget resides, gets displayed either by being dragged or after resume from standby.
+
|6||<code>1.3</code>||<code>updOnOrientation</code>||<code>boolean</code>||<code>true<nowiki>|</nowiki>false</code>||Enable/Disable support for Phone Orientation
|-
|-
-
|4||<code>0.0.1</code>||<code>'''delayIndex'''</code>||<code>uint32</code>||<code>0=Timer Disabled</code><br/><code>1=30 Secs</code><br/><code>2=1 Min</code><br/><code>3=5 Mins</code><br/><code>4=30 Mins</code><br/><code>5=1 Hour</code><br/><code>6=6 Hours</code><br/><code>7=12 Hours</code><br/><code>8=1 Day</code><br/><code>9=Custom (")</code>||Sets and index of values to use as intervals/periods for command/scripts executions
+
|7||<code>0.0.1</code>||<code>delayIndex</code>||<code>uint32</code>||<code>0=Timer Disabled</code><br/><code>1=30 Secs</code><br/><code>2=1 Min</code><br/><code>3=5 Mins</code><br/><code>4=30 Mins</code><br/><code>5=1 Hour</code><br/><code>6=6 Hours</code><br/><code>7=12 Hours</code><br/><code>8=1 Day</code><br/><code>9=Custom (")</code>||Sets and index of values to use as intervals/periods for command/scripts executions
|-
|-
-
|5||<code>0.1.9.2</code>||<code>'''customIntervalSecs'''</code>||<code>uint32</code>||<code><seconds></code>||Sets the number of seconds to use for Custom Update Intervals
+
|8||<code>0.1.9.2</code>||<code>customIntervalSecs</code>||<code>uint32</code>||<code><seconds></code>||Sets the number of seconds to use for Custom Update Intervals
|-
|-
-
|6||<code>0.0.1</code>||<code>'''updNeworkPolicy'''</code>||<code>uint32</code>||<code>0=Irrelevant</code><br/><code>1=When Connected</code><br/><code>2=When Disconnected</code><br/><code>3=PassThrough (>= v1.0.6)</code>||Update policy which defines if widget update must be Network dependent and what network condition must trigger the update
+
|9||<code>0.0.1</code>||<code>updNeworkPolicy</code>||<code>uint32</code>||<code>0=Irrelevant</code><br/><code>1=When Connected</code><br/><code>2=When Disconnected</code><br/><code>3=PassThrough (>= v1.0.6)</code>||Update policy which defines if widget update must be Network dependent and what network condition must trigger the update
|-
|-
-
|7||<code>0.1.9.9</code>||<code>'''updOnSight'''</code>||<code>uint32</code>||<code>true<nowiki>|</nowiki>false</code>||If set to '''<code>true</code>''' widget content is only updated if on current desktop and visible (if screen locked no update will take place)
+
|10||<code>1.3</code>||<code>GPSsettings</code>||<code>uint32</code>||<code>(GPSsettings >> 8) 0=GPS Disabled, 1=GPS Enabled</code><br/><br/><code>(GPSsettings >> 4 & 0xF) 0=USER_SELECTED, 1=CWP, 2=ACWP, 3=GNSS, 4=AGNSS</code><br/><br/><code>(GPSsettings & 0xF) 0=DEFAULT, 1=1sec, 2=2sec, 3=5sec, 4=10sec, 5=20sec, 6=30sec, 7=60sec, 8=120sec</code>||See [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Using Location API#LocationGPSDevice and LocationGPSDeviceFix|the location API reference]]
|}
|}
-
====DBUS Event Monitoring====
+
=====DBUS Event Monitoring=====
-
[[Image:Snap210.jpg|350px]]
+
 
-
{|class="wikitable" border="2"
+
[[Image:Snap035.png|350px]]
 +
 
 +
{|class="wikitable"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
|1||<code>0.1.9.4</code>||<code>'''updOnDBUS'''</code>||<code>uint32</code>||<code>0=Disabled<nowiki>|</nowiki>1=Enabled</code>||Enables DBUS Event Monitor and Update policy which defines if widget must be updated by any DBUS Event
+
|1||<code>0.1.9.4</code>||<code>updOnDBUS</code>||<code>uint32</code>||<code>0=Disabled<nowiki>|</nowiki>1=Enabled</code>||Enables DBUS Event Monitor and Update policy which defines if widget must be updated by any DBUS Event
|-
|-
-
|2||<code>0.1.9.4</code>||<code>'''updOnDBUSBus'''</code>||<code>uint32</code>||<code>0=SYSTEM<nowiki>|</nowiki>1=SESSION</code>||Sets which DBUS bus to monitor (System/Session)
+
|2||<code>0.1.9.4</code>||<code>updOnDBUSBus</code>||<code>uint32</code>||<code>0=SYSTEM<nowiki>|</nowiki>1=SESSION</code>||Sets which DBUS bus to monitor (System/Session)
|-
|-
-
|3||<code>0.1.9.4</code>||<code>'''updOnDBUSMatchRule'''</code>||<code>string</code>||'''[http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-routing See Specifications]'''||Specifies the rule to be matched in order for command/script to be executed (Ex.type='signal',path='/com/nokia/mce/signal',interface='com.nokia.mce.signal',member='tklock_mode_ind')
+
|3||<code>0.1.9.4</code>||<code>updOnDBUSMatchRule</code>||<code>string</code>||[http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-routing See Specifications]||Specifies the rule to be matched in order for command/script to be executed (Ex.type='signal',path='/com/nokia/mce/signal',interface='com.nokia.mce.signal',member='tklock_mode_ind')
|}
|}
-
====Remember Me Value====
+
=====Remember Me Value=====
[[Image:Snap094.jpg|350px]]
[[Image:Snap094.jpg|350px]]
-
{|class="wikitable" border="2"
+
 
 +
{|class="wikitable"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
|1||<code>0.1.9.6</code>||<code>'''rememberMe'''</code>||<code>string</code>||-||Holds status or persistency information across subsequent command executions.<br/>- Can be fetched/changed via DBUS method call '''<code>set/get_param_string string:"rememberMe" string:<remember_this_string></code>'''<br/>- Can be transferred to command/scrips execution via <code>'''$QBW_REMEMBER_ME'''</code> Parameter Substitution<br/>- '''As of release >=1.0.5''' Can be also be affected by executed command output. Just echo the following string (which will not be displayed) as output of your command <code>'''QBW_REMEMBER_ME(<content to be remembered>)'''</code> no angle brackets; escape "close round bracket" like this "\)" to store it as ")"<br/>See examples '''[http://talk.maemo.org/showthread.php?p=823123#post823123 HERE]'''
+
|1||<code>0.1.9.6</code>||<code>rememberMe</code>||<code>string</code>||-||Holds status or persistency information across subsequent command executions.<br/>- Can be fetched/changed via DBUS method call <code>set/get_param_string string:"rememberMe" string:<remember_this_string></code><br/>- Can be transferred to command/scrips execution via <code>$QBW_REMEMBER_ME</code> Parameter Substitution<br/>- As of release >=1.0.5 Can be also be affected by executed command output. Just echo the following string (which will not be displayed) as output of your command <code>QBW_REMEMBER_ME(<content to be remembered>)</code> no angle brackets; escape "close round bracket" like this "\)" to store it as ")"<br/>See examples [http://talk.maemo.org/showthread.php?p=823123#post823123 HERE]
|}
|}
-
====Not Present in Settings Dialog Box====
+
=====Not Present in Settings Dialog Box=====
-
{|class="wikitable" border="2"
+
 
 +
{|class="wikitable"
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|-
-
| ||<code>0.0.1</code>||<code>'''instanceCmd'''</code>||<code>string</code>||-||Holds the command/script to be executed
+
| ||<code>0.0.1</code>||<code>instanceCmd</code>||<code>string</code>||-||Holds the command/script to be executed
|}
|}
-
== Advanced Settings and Tools ==
+
=== Advanced Settings and Tools ===
Dialog can be reached via QBW Settings:
Dialog can be reached via QBW Settings:
Line 357: Line 338:
[[image:29q0575.png]]
[[image:29q0575.png]]
-
[[image:Qbwasathsl.jpg|350px]]
+
[[image:Snap037.png|350px]]
-
[[image:Qbwimpexp.jpg|350px]]
+
====Section A: (Command TestDrive)====
 +
# This button opens up the About dialog box
 +
# This selector allows to dynamically change the [[#Application Logging Subsystem|QBW Logging Subsystem Verbosity]]
 +
# This is the list of Stored Commands that you can Test Drive; upon entering the dialog box, [3] & [8] are initialized with current Instance command.
 +
# Use this button to Test Drive the command currently typed in [6]
 +
# This button will update current instance command with the content of [8] (use it when command is working and thoroughly tested)
 +
# Will copy to clipboard the command currently in [8]
 +
# Will paste the clipboard into [8]
 +
# Read-Write text field; this is the "command input buffer", it is used as extended Test Drive tool for troubleshooting commands with issues
 +
# Read-Only text field; will display the '''Exit Status & Raw Output''' of the command in [8] executed by pressing button [4]
-
;'''Section A: (Command TestDrive)'''
+
[[image:Snap038.png|350px]]
-
: '''V)''' This selector allows to dynamically change the '''[[#Application_Logging_Subsystem|QBW Logging Subsystem Verbosity]]'''
+
====Section B: (Commands/Beecons Import/Export processing)====
-
: '''1)''' This is the '''list of Stored Commands''' that you can Test Drive; upon entering the dialog box, [1] & [6] are initialized with current Instance command.
+
-
: '''2)''' Use this button to '''Test Drive''' the command currently typed in [6]
+
-
: '''3)''' This button will '''update''' current instance '''command''' with the content of [6] (use it when command is working and thoroughly tested)
+
-
: '''4)''' Will '''copy to clipboard''' the command currently in [6]
+
-
: '''5)''' Will p'''aste the clipboard''' into [6]
+
-
: '''6)''' Read-Write text field; this is the '''"command input buffer"''', it is used as extended Test Drive tool for troubleshooting commands with issues
+
-
: '''7)''' Read-Only text field; will display the '''Exit Status & Raw Output''' of the command in [6] executed by pressing button [2]
+
-
;'''Section B: (Commands/Beecons Import/Export processing)'''
+
# Button will export the command currently in [A8]. Result of the export will be stored into [9] text buffer
 +
# Button will import the command currently in [9].
 +
# Will paste the clipboard into [9]
 +
# Will copy to clipboard the [9] text buffer
 +
# Will read from a file into [9]
 +
# Will write to a file the [9] text buffer
 +
# Button will import the Beecon/Snippet Instance Data currently in []; useful for restoring Beecons of for importing Beecons created by others.
 +
# Button will export the Beecon/Snippet Instance Data for the current instance. Result of the export will be stored into [9] text buffer; useful for backup of Beecons of for exporting Beecons to others.
 +
# Read-Write text field; used for temporarily processing export/import of commands and Beecon/Snippet Instance Data
-
: '''8)''' Button will '''export''' the '''command''' currently in [6]. Result of the export will be stored into [14] text buffer
+
==== Parameter Substitution at Command/Script Runtime ====
-
: '''9)''' Button will '''import''' the '''command''' currently in [14].
+
-
: '''10)''' Will '''paste the clipboard''' into [14]
+
-
: '''11)''' Will '''copy to clipboard''' the [14] text buffer
+
-
: '''12)''' Will '''read from a file''' into [14]
+
-
: '''13)''' Will '''write to a file''' the [14] text buffer
+
-
: '''14)''' Button will '''import''' the '''Beecon/Snippet Instance Data''' currently in [14]; useful for restoring Beecons of for importing Beecons created by others.
+
-
: '''15)''' Button will '''export''' the '''Beecon/Snippet Instance Data''' for the current instance. Result of the export will be stored into [14] text buffer; useful for backup of Beecons of for exporting Beecons to others.
+
-
: '''16)''' Read-Write text field; used for temporarily processing '''export/import of commands and Beecon/Snippet Instance Data'''
+
-
 
+
-
=== Parameter Substitution at Command/Script Runtime ===
+
QBW can provide a set of specific parameters to the executing script/command. The script will have to identify the placeholders for this extra parameters as better specified in the following table:
QBW can provide a set of specific parameters to the executing script/command. The script will have to identify the placeholders for this extra parameters as better specified in the following table:
-
{|class="wikitable" border="2"
+
{|class="wikitable"
!Release!!Placeholder!!Substituted!!Description
!Release!!Placeholder!!Substituted!!Description
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_ID'''</code>||<code>'''<QBW Instance ID>'''</code>||Retreives the '''[[#QBW_Instance_ID|QBW Instance ID]]''' and substitutes it into the run script
+
|<code>0.1.9.1</code>||<code>$QBW_ID</code>||<code><QBW Instance ID></code>||Retreives the [[#QBW Instance ID|QBW Instance ID]] and substitutes it into the run script
|-
|-
-
|<code>0.1.9.6</code>||<code>'''$QBW_HOTSPOT_PRESS'''</code>||<code>'''<Hot Spot Press/Click Position Index>'''</code>||[[Image:QBW Hot Spot Press.gif|right]]Retreives the <code>'''POSITION INDEX'''</code> where the widget was pressed/clicked and substitutes it into the run script<br/><code>'''0 = Not Pressed (Other update policy)<br />1 = Top Left<br />2 = Top Center<br />3 = Top Right<br />4 = Center Left<br />5 = Center<br />6 = Center Right<br />7 = Bottom Left<br />8 = Bottom Center<br />9 = Bottom Right'''</code>
+
|<code>0.1.9.6</code>||<code>$QBW_HOTSPOT_PRESS</code>||<code><Hot Spot Press/Click Position Index></code>||[[Image:QBW Hot Spot Press.gif|right]]Retreives the <code>POSITION INDEX</code> where the widget was pressed/clicked and substitutes it into the run script<br/><code>0 = Not Pressed (Other update policy)<br />1 = Top Left<br />2 = Top Center<br />3 = Top Right<br />4 = Center Left<br />5 = Center<br />6 = Center Right<br />7 = Bottom Left<br />8 = Bottom Center<br />9 = Bottom Right</code>
|-
|-
-
|<code>1.0.3</code>||<code>'''$QBW_CLICKS_COUNT'''</code>||<code>'''<Number>'''</code>||Holds the number of times a QBW was pressed/clicked and substitutes it into the run script;  useful for handling single/double/triple... clicks and behave accordingly (Tested up to 12 ... :) )
+
|<code>1.0.3</code>||<code>$QBW_CLICKS_COUNT</code>||<code><Number></code>||Holds the number of times a QBW was pressed/clicked and substitutes it into the run script;  useful for handling single/double/triple... clicks and behave accordingly (Tested up to 12 ... :) )
|-
|-
-
|<s><code>1.0.4</code></s>||<s><code>'''$QBW_IS_FINGER_TAP'''</code></s>||<s><code>'''true<nowiki>|</nowiki>false</code>'''</s>||<s>Holds the type of click issued on the Touch Screen<br/>'''<code>true</code>'''=Touch Screen was tapped with a finger<br/>'''<code>false</code>'''=Touch Screen was clicked with stylus</s>
+
|<s><code>1.0.4</code></s>||<s><code>$QBW_IS_FINGER_TAP</code></s>||<s><code>true<nowiki>|</nowiki>false</code></s>||<s>Holds the type of click issued on the Touch Screen<br/><code>true</code>=Touch Screen was tapped with a finger<br/><code>false</code>=Touch Screen was clicked with stylus</s>
|-
|-
-
|<code>1.0.3</code>||<code>'''$QBW_CLICK_X'''</code><br/><code>'''$QBW_CLICK_Y'''</code>||<code>'''<X Coordinate>'''</code><br/><code>'''<Y Coordinate>'''</code>||Hold exact X and Y coordinates respectively where a QBW was pressed/clicked (Useful for handling different arbitrary/dynamic hotspots on widgets via launched shell scripts; virtually unlimited as handling is left to launched script/program)<br/>Ex.<br/>'''<code>x=$QBW_CLICK_X;<br/>y=$QBW_CLICK_Y;<br>if [ $x -ge 100 -a $x -le 200 -a $y -ge 100 -a $y -le 200 ];<br/>then echo "HOT SPOT HIT";<br/>else echo "HOT SPOT NOT HIT";<br/>fi;</code>'''<br/>''will echo "HOT SPOT HIT" if widget is clicked in rectangle delimited by p1(x=100,y=100) and p2(x=200,y=200) or "HOT SPOT NOT HIT" otherwise
+
|<code>1.0.3</code>||<code>$QBW_CLICK_X</code><br/><code>$QBW_CLICK_Y</code>||<code><X Coordinate></code><br/><code><Y Coordinate></code>||Hold exact X and Y coordinates respectively where a QBW was pressed/clicked (Useful for handling different arbitrary/dynamic hotspots on widgets via launched shell scripts; virtually unlimited as handling is left to launched script/program)<br/>Ex.<br/><code>x=$QBW_CLICK_X;<br/>y=$QBW_CLICK_Y;<br>if [ $x -ge 100 -a $x -le 200 -a $y -ge 100 -a $y -le 200 ];<br/>then echo "HOT SPOT HIT";<br/>else echo "HOT SPOT NOT HIT";<br/>fi;</code><br/>will echo "HOT SPOT HIT" if widget is clicked in rectangle delimited by p1(x=100,y=100) and p2(x=200,y=200) or "HOT SPOT NOT HIT" otherwise
|-
|-
-
|<code>1.0.53</code>||<code>'''$QBW_WIDTH'''</code>||<code>'''<Number>'''</code>||Holds the current '''Width''' of QBW widget; useful for dynamic recalculation of click hotspots
+
|<code>1.0.53</code>||<code>$QBW_WIDTH</code>||<code><Number></code>||Holds the current Width of QBW widget; useful for dynamic recalculation of click hotspots
|-
|-
-
|<code>1.0.53</code>||<code>'''$QBW_HEIGHT'''</code>||<code>'''<Number>'''</code>||Holds the current '''Height''' of QBW widget; useful for dynamic recalculation of click hotspots
+
|<code>1.0.53</code>||<code>$QBW_HEIGHT</code>||<code><Number></code>||Holds the current Height of QBW widget; useful for dynamic recalculation of click hotspots
|-
|-
-
|<code>1.3</code>||<code>'''$QBW_POSITION_X'''</code><br/><code>'''$QBW_POSITION_Y'''</code>||<code>'''<X Coordinate>'''</code><br/><code>'''<Y Coordinate>'''</code>||Hold the current '''X,Y Position''' of QBW widget
+
|<code>1.3</code>||<code>$QBW_POSITION_X</code><br/><code>$QBW_POSITION_Y</code>||<code><X Coordinate></code><br/><code><Y Coordinate></code>||Hold the current X,Y Position of QBW widget
|-
|-
-
|<code>1.3</code>||<code>'''$QBW_ORIENTATION_MODE'''</code>||<code>'''<mode>'''</code>||Holds the current '''Orientation Mode''' of QBW widget = '''<code>landscape</code>''', '''<code>portrait</code>''', '''<code>unknown</code>''', '''<code>landscape (inverted)</code>''', '''<code>portrait (inverted)</code>'''
+
|<code>1.3</code>||<code>$QBW_ORIENTATION_MODE</code>||<code><mode></code>||Holds the current Orientation Mode of QBW widget = <code>landscape</code>, <code>portrait</code>, <code>unknown</code>, <code>landscape (inverted)</code>, <code>portrait (inverted)</code>
|-
|-
-
|<code>1.3</code>||<code>'''$QBW_ORIENTATION_STAND'''</code>||<code>'''<stand>'''</code>||Holds the current '''Orientation Stand''' of QBW widget = '''<code>off_stand</code>''', '''<code>on_stand</code>'''
+
|<code>1.3</code>||<code>$QBW_ORIENTATION_STAND</code>||<code><stand></code>||Holds the current Orientation Stand of QBW widget = <code>off_stand</code>, <code>on_stand</code>
|-
|-
-
|<code>1.3</code>||<code>'''$QBW_ORIENTATION_FACE'''</code>||<code>'''<face>'''</code>||Holds the current '''Orientation Face''' of QBW widget = '''<code>face_up</code>''', '''<code>face_down</code>'''
+
|<code>1.3</code>||<code>$QBW_ORIENTATION_FACE</code>||<code><face></code>||Holds the current Orientation Face of QBW widget = <code>face_up</code>, <code>face_down</code>
|-
|-
-
|<code>1.3</code>||<code>'''$QBW_ORIENTATION_X'''</code>||<code>'''<X axis value>'''</code>||Holds the current '''Orientation X axis''' of QBW widget = '''<code>-1</code>'''<->'''<code>+1</code>'''
+
|<code>1.3</code>||<code>$QBW_ORIENTATION_X</code>||<code><X axis value></code>||Holds the current Orientation X axis of QBW widget = <code>-1</code><-><code>+1</code>
|-
|-
-
|<code>1.3</code>||<code>'''$QBW_ORIENTATION_Y'''</code>||<code>'''<Y axis value>'''</code>||Holds the current '''Orientation Y axis''' of QBW widget = '''<code>-1</code>'''<->'''<code>+1</code>'''
+
|<code>1.3</code>||<code>$QBW_ORIENTATION_Y</code>||<code><Y axis value></code>||Holds the current Orientation Y axis of QBW widget = <code>-1</code><-><code>+1</code>
|-
|-
-
|<code>1.3</code>||<code>'''$QBW_ORIENTATION_Z'''</code>||<code>'''<Z axis value>'''</code>||Holds the current '''Orientation Z axis''' of QBW widget = '''<code>-1</code>'''<->'''<code>+1</code>'''
+
|<code>1.3</code>||<code>$QBW_ORIENTATION_Z</code>||<code><Z axis value></code>||Holds the current Orientation Z axis of QBW widget = <code>-1</code><-><code>+1</code>
|-
|-
-
|<code>1.3</code>||<code>'''$QBW_LOCATION_FIX'''</code>||<code>'''<string>'''</code>||Holds the current '''GPS Position FIX''' in colon separated string form: <code>'''status : time : ept : latitude : longitude : eph : altitude : epv : track : epd : speed : eps : climb : epc : gsm_cell_info.mcc : wcdma_cell_info.mcc : satellites_in_view : satellites_in_use'''</code><br/>If information is not available then <code>'''nan'''</code> is shown.<br/>See '''[[Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Using_Location_API#LocationGPSDevice_and_LocationGPSDeviceFix|HERE]]''' for reference
+
|<code>1.3</code>||<code>$QBW_LOCATION_FIX</code>||<code><string></code>||Holds the current GPS Position FIX in colon separated string form: <code>status : time : ept : latitude : longitude : eph : altitude : epv : track : epd : speed : eps : climb : epc : gsm_cell_info.mcc : wcdma_cell_info.mcc : satellites_in_view : satellites_in_use</code><br/>If information is not available then <code>nan</code> is shown.<br/>See [[Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Using_Location_API#LocationGPSDevice_and_LocationGPSDeviceFix|HERE]] for reference.<br/>Ex. 1 : 1288031860 : 0 : 45,999999 : 9,999999 : 4026 : 157 : 20 : 210,490 : 359,990 : 0,11 : 4,43 : 0,00 : 0,03 : 0 : 0 : 10 : 5
|-
|-
-
|<code>0.1.9.9</code>||<code>'''$QBW_ON_SIGHT'''</code>||<code>'''true<nowiki>|</nowiki>false</code>'''||'''<code>true</code>'''=QBW Instance is "ON SIGHT", that is widget is on current desktop and display is not locked or on stand by.<br/>'''<code>false</code>'''=QBW Instance is not on current desktop and visible or display is off or on stand by
+
|<code>0.1.9.9</code>||<code>$QBW_ON_SIGHT</code>||<code>true<nowiki>|</nowiki>false</code>||<code>true</code>=QBW Instance is "ON SIGHT", that is widget is on current desktop and display is not locked or on stand by.<br/><code>false</code>=QBW Instance is not on current desktop and visible or display is off or on stand by
|-
|-
-
|<code>1.0.2</code>||<code>'''$QBW_IS_CONNECTED'''</code>||<code>'''true<nowiki>|</nowiki>false</code>'''||'''<code>true</code>'''=QBW Instance is connected to the network (either WLAN or GPRS)<br/>'''<code>false</code>'''=QBW Instance is not connected to the network (either WLAN or GPRS)
+
|<code>1.0.2</code>||<code>$QBW_IS_CONNECTED</code>||<code>true<nowiki>|</nowiki>false</code>||<code>true</code>=QBW Instance is connected to the network (either WLAN or GPRS)<br/><code>false</code>=QBW Instance is not connected to the network (either WLAN or GPRS)
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_TIMER_UPDATE</code>'''||Script is run due to a Timer event
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_TIMER_UPDATE</code>||Script is run due to a Timer event
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_STARTUP_UPDATE</code>'''||QBW instance is starting up and script run
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_STARTUP_UPDATE</code>||QBW instance is starting up and script run
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_SETTINGS_SAVE_RUN</code>'''||Save and Run is pressed in Settings Dialog Box and script run
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_SETTINGS_SAVE_RUN</code>||Save and Run is pressed in Settings Dialog Box and script run
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_TEST_DRIVE</code>'''||Script is run via Test Drive advanced dialog box
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_TEST_DRIVE</code>||Script is run via Test Drive advanced dialog box
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_WAKEUP_CLICK'''</code>||A disabled instance is waken up by a click on icon and script is run
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_WAKEUP_CLICK</code>||A disabled instance is waken up by a click on icon and script is run
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_CLICK'''</code>||An instance is clicked and script is run
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_CLICK</code>||An instance is clicked and script is run
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_DESKTOP_SWITCH'''</code>||The desktop, on which and instance is displayed, is switched/scrolled and script is run
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_DESKTOP_SWITCH</code>||The desktop, on which and instance is displayed, is switched/scrolled and script is run
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_CONNECTION_EVENT</code>'''||A connection event takes place and script is run
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_CONNECTION_EVENT</code>||A connection event takes place and script is run
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_DBUS_SET_PARAM_UPDATE</code>'''||A set_param DBUS method is called and "update content" (script run) is explicitly required
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_DBUS_SET_PARAM_UPDATE</code>||A set_param DBUS method is called and "update content" (script run) is explicitly required
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_DBUS_WAKEUP</code>'''||A wakeup DBUS method is called and script is run
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_DBUS_WAKEUP</code>||A wakeup DBUS method is called and script is run
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_DBUS_UPDATE_CONTENT</code>'''||"update content" DBUS method is called and script run is explicitly required
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_DBUS_UPDATE_CONTENT</code>||"update content" DBUS method is called and script run is explicitly required
|-
|-
-
|<code>0.1.9.1</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_DBUS_EXEC</code>'''||"exec" DBUS method is called and external script run is explicitly required
+
|<code>0.1.9.1</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_DBUS_EXEC</code>||"exec" DBUS method is called and external script run is explicitly required
|-
|-
-
|<code>0.1.9.4</code>||<code>'''$QBW_EXEC_REASON'''</code>||<code>'''QBW_DBUS_MONITOR</code>'''||Execution of script was triggered by DBUS Match Rules in DBUS Event Monitoring  
+
|<code>0.1.9.4</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_DBUS_MONITOR</code>||Execution of script was triggered by DBUS Match Rules in DBUS Event Monitoring
|-
|-
-
|<code>0.1.9.4</code>||<code>'''$QBW_DBUS_VERBOSE_OUTPUT'''</code>||'''<code>signal<nowiki>|</nowiki>method call<nowiki>|</nowiki>method return<nowiki>|</nowiki>error<nowiki>|</nowiki>unknown sender=<sender> -> dest=<destination> path=<path> interface=<interface> member=<member>\n</code><br/><code><type1> <param1>\n</code><br/><code><type2> <param2>\n</code><br/><code><typeX> <paramX></code>'''||Extended values returned by DBUS Monitor for Matched Rule. Example:<br/>'''<code>signal sender=:1.31 -> dest=(null destination) path=/com/example/app/Signal; interface=com.example.app.Signal; member=Test<br/>string "192.168.47.100"<br/>boolean true</code>'''
+
|<code>1.3</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_ORIENTATION_MONITOR</code>||Execution of script was triggered by phone Orientation Change if enabled in QBW instance configuration
|-
|-
-
|<code>1.0.6</code>||<code>'''$QBW_PREVIOUS_EXIT_STATUS'''</code>||'''<code><last executed command's Exit Code></code>'''||Exit status of the last previous executed command
+
|<code>1.3</code>||<code>$QBW_EXEC_REASON</code>||<code>QBW_LOCATION_MONITOR_FIX</code>||Execution of script was triggered by FIX change in GPS Location subsystem if enabled in QBW instance configuration
|-
|-
-
|<code>0.1.9.5</code>||<code>'''$QBW_CURRENT_RESULTS_TEXT'''</code>||'''<code><current content of results text></code>'''||Current content of results text even if label is hidden. Useful for holding and processing previous state conditions across command executions
+
|<code>0.1.9.4</code>||<code>$QBW_DBUS_VERBOSE_OUTPUT</code>||<code>signal<nowiki>|</nowiki>method call<nowiki>|</nowiki>method return<nowiki>|</nowiki>error<nowiki>|</nowiki>unknown sender=<sender> -> dest=<destination> path=<path> interface=<interface> member=<member>\n</code><br/><code><type1> <param1>\n</code><br/><code><type2> <param2>\n</code><br/><code><typeX> <paramX></code>||Extended values returned by DBUS Monitor for Matched Rule. Example:<br/><code>signal sender=:1.31 -> dest=(null destination) path=/com/example/app/Signal; interface=com.example.app.Signal; member=Test<br/>string "192.168.47.100"<br/>boolean true</code>
|-
|-
-
|<code>0.1.9.6</code>||<code>'''$QBW_HTTP_PROXY'''</code>||'''<code><host>:<port></code>'''||Returns the current '''HTTP Proxy''' as set into parameters for current active Internet Connection
+
|<code>1.0.6</code>||<code>$QBW_PREVIOUS_EXIT_STATUS</code>||<code><last executed command's Exit Code></code>||Exit status of the last previous executed command
|-
|-
-
|<code>0.1.9.6</code>||<code>'''$QBW_HTTPS_PROXY'''</code>||'''<code><host>:<port></code>'''||Returns the current '''HTTPS Proxy''' as set into parameters for current active Internet Connection
+
|<code>0.1.9.5</code>||<code>$QBW_CURRENT_RESULTS_TEXT</code>||<code><current content of results text></code>||Current content of results text even if label is hidden. Useful for holding and processing previous state conditions across command executions
|-
|-
-
|<code>0.1.9.6</code>||<code>'''$QBW_FTP_PROXY'''</code>||'''<code><host>:<port></code>'''||Returns the current '''FTP Proxy''' as set into parameters for current active Internet Connection
+
|<code>0.1.9.6</code>||<code>$QBW_HTTP_PROXY</code>||<code><host>:<port></code>||Returns the current HTTP Proxy as entered into parameters for current active Internet Connection
|-
|-
-
|<code>0.1.9.6</code>||<code>'''$QBW_SOCKS_PROXY'''</code>||'''<code><host>:<port></code>'''||Returns the current '''SOCKS Proxy''' as set into parameters for current active Internet Connection
+
|<code>0.1.9.6</code>||<code>$QBW_HTTPS_PROXY</code>||<code><host>:<port></code>||Returns the current HTTPS Proxy as set into parameters for current active Internet Connection
|-
|-
-
|<code>0.1.9.6</code>||<code>'''$QBW_RTSP_PROXY'''</code>||'''<code><host>:<port></code>'''||Returns the current '''RTSP Proxy''' as set into parameters for current active Internet Connection
+
|<code>0.1.9.6</code>||<code>$QBW_FTP_PROXY</code>||<code><host>:<port></code>||Returns the current FTP Proxy as set into parameters for current active Internet Connection
|-
|-
-
|<code>0.1.9.6</code>||<code>'''$QBW_IGNORE_HOSTS_PROXY'''</code>||'''<code><host1>;<host2>;<host...></code>'''||Returns the current list of host which do not require a proxy as set into parameters for current active Internet Connection
+
|<code>0.1.9.6</code>||<code>$QBW_SOCKS_PROXY</code>||<code><host>:<port></code>||Returns the current SOCKS Proxy as entered into parameters for current active Internet Connection
|-
|-
-
|<code>0.1.9.6</code>||<code>'''$QBW_AUTO_CONFIG_PROXY_URL'''</code>||'''<code><URL></code>'''||Returns the current Proxy configuration '''URL''' as set into parameters for current active Internet Connection
+
|<code>0.1.9.6</code>||<code>$QBW_RTSP_PROXY</code>||<code><host>:<port></code>||Returns the current RTSP Proxy as set into parameters for current active Internet Connection
|-
|-
-
|<code>0.1.9.6</code>||<code>'''$QBW_REMEMBER_ME'''</code>||'''<code><string></code>'''||Holds status or persistency information stored in configuration via Settings Dialog, DBUS method call or Command Output<br/>- Can be fetched/changed via DBUS method call '''<code>set/get_param_string string:"rememberMe" string:<remember_this_string></code>'''<br/>- Can be transferred to command/scrips execution via <code>'''$QBW_REMEMBER_ME'''</code> Parameter Substitution<br/>- '''As of release >=1.0.5''' Can be also affected by executed command output. Just echo the following string (which will not be displayed) as output of your command <code>'''QBW_REMEMBER_ME(<content to be remembered>)'''</code> no angle brackets; escape "close round bracket" like this "\)" to store it as ")"<br/>See examples '''[http://talk.maemo.org/showthread.php?p=823123#post823123 HERE]'''
+
|<code>0.1.9.6</code>||<code>$QBW_IGNORE_HOSTS_PROXY</code>||<code><host1>;<host2>;<host...></code>||Returns the current list of host which do not require a proxy as set into parameters for current active Internet Connection
 +
|-
 +
|<code>0.1.9.6</code>||<code>$QBW_AUTO_CONFIG_PROXY_URL</code>||<code><URL></code>||Returns the current Proxy configuration URL as set into parameters for current active Internet Connection
 +
|-
 +
|<code>0.1.9.6</code>||<code>$QBW_REMEMBER_ME</code>||<code><string></code>||Holds status or persistency information stored in configuration via Settings Dialog, DBUS method call or Command Output<br/>- Can be fetched/changed via DBUS method call <code>set/get_param_string string:"rememberMe" string:<remember_this_string></code><br/>- Can be transferred to command/scrips execution via <code>$QBW_REMEMBER_ME</code> Parameter Substitution<br/>- As of release >=1.0.5 Can be also affected by executed command output. Just echo the following string (which will not be displayed) as output of your command <code>QBW_REMEMBER_ME(<content to be remembered>)</code> no angle brackets; escape "close round bracket" like this "\)" to store it as ")"<br/>See examples [http://talk.maemo.org/showthread.php?p=823123#post823123 HERE]
|}
|}
-
== QBW Instance Timer Logic ==
+
=== QBW Instance Timer Logic ===
The Timer logic for each instance for actions to be run periodically is programmed as follows:
The Timer logic for each instance for actions to be run periodically is programmed as follows:
-
* The timer of each instance is reset&re-armed every time the widget is Startup (System Boot or QBW release upgrade)
+
* The timer of each instance is reset and re-armed every time the widget is Startup (System Boot or QBW release upgrade)
-
* The timer of each instance is reset&re-armed every time it is changed in the Settings dialog box and it is different from its previous value
+
* The timer of each instance is reset and re-armed every time it is changed in the Settings dialog box and it is different from its previous value
-
* If a widget is disabled, either by changing is "Status" in the Settings dialog box or via DBUS method <code>'''sleep'''</code>, its timer is disabled
+
* If a widget is disabled, either by changing is "Status" in the Settings dialog box or via DBUS method <code>sleep</code>, its timer is disabled
-
* If a widget is re-enabled, either by changing is "Status" in the Settings dialog box or via DBUS method <code>'''wakeup'''</code>, its timer is reset&re-armed
+
* If a widget is re-enabled, either by changing is "Status" in the Settings dialog box or via DBUS method <code>wakeup</code>, its timer is reset and re-armed
-
* If Settings Parameter <code>'''delayIndex'''</code> has been changed via DBUS set_param_uint32 method, the relevant timer must be '''explicitly reset&rearmed''' via DBUS methos <code>'''reset_rearm_timer'''</code>
+
* If Settings Parameter <code>delayIndex</code> has been changed via DBUS set_param_uint32 method, the relevant timer must be explicitly reset and rearmed via DBUS methos <code>reset_rearm_timer</code>
-
* The timer is reset&re-armed every time a new QBW instance is imported via Advanced dialog box and relevant parameter is set
+
* The timer is reset and re-armed every time a new QBW instance is imported via Advanced dialog box and relevant parameter is set
-
----
+
-
== System Backup/Restore Integration ==
+
=== System Backup/Restore Integration ===
-
As of release >=0.1.8 QBW is integrated into the N900 system backup/restore features according to standard specifications as better described in the SDK [http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Generic_Platform_Components/Using_Backup_Application#Custom_back-up_locations Using Backup Application]
+
As of release >=0.1.8 QBW is integrated into the N900 system backup/restore features according to standard specifications as better described in the SDK [[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application#Custom back-up locations|Using Backup Application]]
-
'''<code>/etc/osso-backup/applications/queen-beecon.conf</code>''' file is:
+
<code>/etc/osso-backup/applications/queen-beecon.conf</code> file is:
-
<backup-configuration>
+
<source lang="xml">
-
  <locations>
+
<backup-configuration>
-
    <location type="file"
+
<locations>
-
              category="settings">$HOME/.queen-beecon</location>
+
  <location type="file"
-
    <location type="dir"
+
            category="settings">$HOME/.queen-beecon</location>
-
              category="documents">$HOME/MyDocs/.images/queen_beecon_dir</location>
+
  <location type="dir"
-
    <location type="dir"
+
            category="documents">$HOME/MyDocs/.images/queen_beecon_dir</location>
-
              category="documents">$HOME/.queen_beecon_dir</location>
+
  <location type="dir"
-
  </locations>
+
            category="documents">$HOME/.queen_beecon_dir</location>
-
</backup-configuration>
+
</locations>
-
----
+
</backup-configuration>
 +
</source>
-
== Application Logging Subsystem ==
+
=== Application Logging Subsystem ===
As of release >=1.0.2, QBW employs a powerful Application Logging subsystem.
As of release >=1.0.2, QBW employs a powerful Application Logging subsystem.
Log file is:
Log file is:
-
  '''~/.queen_beecon_dir/queen-beecon.log'''
+
  ~/.queen_beecon_dir/queen_beecon.log
-
Logging is '''disabled''' by default.
+
Time in logfile is ISO 8601 encoded string, relative to the Coordinated Universal Time (UTC)
-
=== Enabling Logging ===
+
Logging is disabled by default.
 +
 
 +
==== Enabling Logging ====
Logging can be enabled in different ways:
Logging can be enabled in different ways:
-
* '''Dynamically via QBW DBUS method call'''
+
* Dynamically via QBW DBUS method call
-
  <code>run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw'''<idX>''' oh.no.more.qbw.logger_action string:'''<vX>'''</code>
+
  <code>run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.logger_action string:<vX></code>
-
: <code>'''<idX>'''</code> is the '''[[#QBW_Instance_ID|QBW Instance ID]]''' of and existing QBW instance (''<u>no matter which one as logging is global</u>'')
+
: <code><idX></code> is the [[#QBW Instance ID|QBW Instance ID]] of and existing QBW instance (no matter which one as logging is global)
-
: <code>'''<vX>'''</code> is the required verbosity (Allowed values are: '''v0 v1 v2 v3 v4''' from minimum verbosity to maximum)
+
: <code><vX></code> is the required verbosity (Allowed values are: <code>v0 v1 v2 v3 v4</code> from minimum verbosity to maximum)
: Example:
: Example:
-
  <code>'''run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<u>id0</u> oh.no.more.qbw.logger_action string:<u>v4</u>'''</code>
+
  run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.logger_action string:v4
-
: '''WARNING!''' Due to performance reasons, '''v0 v1 v2 v3''' logging verbosity is asynchronous, meaning that the log file will not be instantly updated as soon as a new information is logged.
+
: '''WARNING!''' Due to performance reasons, v0 v1 v2 v3 logging verbosity is asynchronous, meaning that the log file will not be instantly updated as soon as a new information is logged.
:If you specifically need an up to date log file condition, you need to specifically issue a:
:If you specifically need an up to date log file condition, you need to specifically issue a:
-
  <code>run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw'''<idX>''' oh.no.more.qbw.logger_action string:'''flush'''</code>
+
  <code>run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.logger_action string:flush</code>
-
:'''v4''' logging verbosity is synchronous by design and logs a lot of information thus causing system slow down side effects at time and '''~/.queen_beecon_dir/''' directory/file system filling quite quickly. Keep file system space monitored if you need this level of verbosity!
+
:<code>v4</code> logging verbosity is synchronous by design and logs a lot of information thus causing system slow down side effects at time and <code>~/.queen_beecon_dir/</code> directory/file system filling quite quickly. Keep file system space monitored if you need this level of verbosity!
-
* '''Statically via condition file presence'''
+
* Statically via condition file presence
: If you need to setup permanent verbosity to a specified level, also to monitor QBW startup, just go to directory:
: If you need to setup permanent verbosity to a specified level, also to monitor QBW startup, just go to directory:
-
  '''~/.queen_beecon_dir/'''
+
  ~/.queen_beecon_dir/
: and issue command:
: and issue command:
-
  <code>touch queen_beecon.log.'''<vX>'''</code>
+
  touch queen_beecon.log.<vX>
-
: where <code>'''<vX>'''</code> is the required verbosity (Allowed values are: '''v0 v1 v2 v3 v4''' from minimum verbosity to maximum)
+
: where <code><vX></code> is the required verbosity (Allowed values are: <code>v0 v1 v2 v3 v4</code> from minimum verbosity to maximum)
: Example:
: Example:
-
  <code>'''touch queen_beecon.log.<u>v4</u>'''</code>
+
  touch queen_beecon.log.v4
: Static Logging is activated every time the Phone/Widget is restarted
: Static Logging is activated every time the Phone/Widget is restarted
-
=== Changing Logging Verbosity ===
+
==== Changing Logging Verbosity ====
-
Logging verbosity can be dynamically changed by calling the following DBUS method call
+
 
-
  <code>run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw'''<idX>''' oh.no.more.qbw.logger_action string:'''<vX>'''</code>
+
Logging verbosity can be dynamically changed by calling the following DBUS method call:
-
: <code>'''<idX>'''</code> is the '''[[#QBW_Instance_ID|QBW Instance ID]]''' of and existing QBW instance (''<u>no matter which one as logging is global</u>'')
+
  run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.logger_action string:<vX>
-
: <code>'''<vX>'''</code> is the required verbosity (Allowed values are: <code>'''v0 v1 v2 v3 v4'''</code> from minimum verbosity to maximum)
+
: <code><idX></code> is the [[#QBW Instance ID|QBW Instance ID]] of an existing QBW instance (no matter which one as logging is global)
 +
: <code><vX></code> is the required verbosity (Allowed values are: <code>v0 v1 v2 v3 v4</code> from minimum verbosity to maximum)
 +
 
 +
==== Disabling Logging ====
-
=== Disabling Logging ===
 
Logging can be dynamically disabled by calling the following DBUS method call
Logging can be dynamically disabled by calling the following DBUS method call
-
  <code>run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw'''<idX>''' oh.no.more.qbw.logger_action string:'''disable'''</code>
+
  run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.logger_action string:disable
-
: <code>'''<idX>'''</code> is the '''[[#QBW_Instance_ID|QBW Instance ID]]''' of and existing QBW instance (''<u>no matter which one as logging is global</u>'')
+
: <code><idX></code> is the [[#QBW Instance ID|QBW Instance ID]] of an existing QBW instance (no matter which one as logging is global)
 +
 
 +
==== Resetting Log File ====
-
=== Resetting Log File ===
 
Log file can be dynamically reset to empty status by calling the following DBUS method call
Log file can be dynamically reset to empty status by calling the following DBUS method call
-
  <code>run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw'''<idX>''' oh.no.more.qbw.logger_action string:'''reset'''</code>
+
  run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.logger_action string:reset
-
: <code>'''<idX>'''</code> is the '''[[#QBW_Instance_ID|QBW Instance ID]]''' of and existing QBW instance (''<u>no matter which one as logging is global</u>'')
+
: <code><idX></code> is the [[#QBW Instance ID|QBW Instance ID]] of an existing QBW instance (no matter which one as logging is global)
-
----
+
== Interaction with QBW over DBUS ==
-
= Interaction with QBW over DBUS =
+
===Overview===
-
==Overview==
+
 
-
As of release '''''>= 0.1.7''''' a new Inter Process Communication mechanism among QBW instances and with other Applications has been implemented.
+
As of releases newer than 0.1.7, a new Inter Process Communication mechanism among QBW instances and with other Applications has been implemented.
Through the standard DBUS interface, both at the OS-shell and at different programming environments level, QBW instances can be controlled/accessed and mutual interaction can be guaranteed, thus allowing a set of extended functionalities like:
Through the standard DBUS interface, both at the OS-shell and at different programming environments level, QBW instances can be controlled/accessed and mutual interaction can be guaranteed, thus allowing a set of extended functionalities like:
Line 569: Line 559:
* Provide to non graphical programs and daemons a suitable interface for displaying information on precustomized beecons on screen (for example Dbus Scripts for displaying events on the system/session DBUS like cell IDs changes, available WLANs and the like)
* Provide to non graphical programs and daemons a suitable interface for displaying information on precustomized beecons on screen (for example Dbus Scripts for displaying events on the system/session DBUS like cell IDs changes, available WLANs and the like)
-
'''''<u>I encourage you to suggest possible enhancements or wishlists in this area and report them in the main [http://talk.maemo.org/showthread.php?t=45388 TALK thread]</u>'''''
+
I encourage you to suggest possible enhancements or wishlists in this area and [http://talk.maemo.org/showthread.php?t=45388 report them in the main TALK thread]
 +
 
 +
===QBW Instance ID===
-
==QBW Instance ID==
+
Queen Beecon Widget's Instance Id, needed for every reference in DBUS method calls, can be found at the very top of the Settings dialog box:
-
Queen Beecon Widget's '''''Instance Id''''', needed for every reference in DBUS method calls, can be found at the very top of the Settings dialog box:
+
[[Image:Snap017.png|300px]]
[[Image:Snap017.png|300px]]
-
==DBUS Specifications==
+
===DBUS Specifications===
 +
 
  QBW_DBUS_SERVICE ="oh.no.more.qbw"  [Name of D-Bus service]
  QBW_DBUS_SERVICE ="oh.no.more.qbw"  [Name of D-Bus service]
-
  QBW_DBUS_PATH    ="/oh/no/more/qbw'''<u><idX></u>'''" [Name of Object Path]
+
  QBW_DBUS_PATH    ="/oh/no/more/qbw<idX>" [Name of Object Path]
  QBW_DBUS_IFACE  ="oh.no.more.qbw"  [Name of D-Bus interface]
  QBW_DBUS_IFACE  ="oh.no.more.qbw"  [Name of D-Bus interface]
-
* '''<idX>''' is the '''[[#QBW_Instance_ID|QBW Instance ID]]'''
+
* <idX> is the [[#QBW_Instance_ID|QBW Instance ID]]
-
==DBUS Methods & Parameters==
+
===DBUS Methods & Parameters===
QBW implements the following list of methods to trigger specific actions:
QBW implements the following list of methods to trigger specific actions:
-
'''WARNING!!!''' Methods' Parameters are '''<u>case-sensitive</u>'''
+
WARNING!!! Methods' Parameters are case-sensitive
-
{|class="wikitable" border="2"
+
{|class="wikitable"
!Method!!Input Params!!Returns!!Description
!Method!!Input Params!!Returns!!Description
|-
|-
-
|'''<code>logger_action'''</code>||<code>string:'disable<nowiki> | </nowiki>v0<nowiki> | </nowiki>v1<nowiki> | </nowiki>v2<nowiki> | </nowiki>v3<nowiki> | </nowiki>v4<nowiki> | </nowiki>reset<nowiki> | </nowiki>flush'</code>||||Performs the following actions on the qbw logger subsystem:<br/><br/><code>'''disable'''</code> Disables logging<br/><br/><code>'''v0-4'''</code> Sets Logger Verbosity to specified depth level<br/><br/><code>'''reset'''</code> Resets the logfile <code>'''queen_beecon.log'''</code> in directory <code>'''/home/user/.queen_beecon_dir'''</code> to empty<br/><br/><code>'''flush'''</code> Flushes content of logfile <code>'''queen_beecon.log'''</code>
+
|<code>logger_action</code>||<code>string:'disable<nowiki> | </nowiki>v0<nowiki> | </nowiki>v1<nowiki> | </nowiki>v2<nowiki> | </nowiki>v3<nowiki> | </nowiki>v4<nowiki> | </nowiki>reset<nowiki> | </nowiki>flush'</code>||||Performs the following actions on the qbw logger subsystem:<br/><br/><code>disable</code> Disables logging<br/><br/><code>v0-4</code> Sets Logger Verbosity to specified depth level<br/><br/><code>reset</code> Resets the logfile <code>queen_beecon.log</code> in directory <code>/home/user/.queen_beecon_dir</code> to empty<br/><br/><code>flush</code> Flushes content of logfile <code>queen_beecon.log</code>
|-
|-
-
|'''<code>dbus_method_monitor</code>'''||<code>string:'on<nowiki> | </nowiki>off'</code>||||Toggle on-screen yellow notification message of incoming DBUS method requests for destination Instance (for debug purposes). Default=OFF
+
|<code>dbus_method_monitor</code>||<code>string:'on<nowiki> | </nowiki>off'</code>||||Toggle on-screen yellow notification message of incoming DBUS method requests for destination Instance (for debug purposes). Default=OFF
|-
|-
-
|'''<code>reset_rearm_timer'''</code>||||||Reset and rearm timer for periodically auto-updating QBW, needed to be explicitly called if parameter <code>'''delayIndex'''</code> has been changed via DBUS <code>'''set_param_uint32'''</code> method
+
|<code>reset_rearm_timer</code>||||||Reset and rearm timer for periodically auto-updating QBW, needed to be explicitly called if parameter <code>delayIndex</code> has been changed via DBUS <code>set_param_uint32</code> method
|-
|-
-
|'''<code>reset_rearm_connection'''</code>||||||Reset and rearm the network connection subsystem, needed to be explicitly called if parameter <code>'''updNeworkPolicy'''</code> has been changed via DBUS method
+
|<code>reset_rearm_connection</code>||||||Reset and rearm the network connection subsystem, needed to be explicitly called if parameter <code>updNeworkPolicy</code> has been changed via DBUS method
|-
|-
-
|'''<code>reset_rearm_location'''</code>||||||Reset and rearm the GPS location subsystem, needed to be explicitly called if parameter <code>'''GPSsettings'''</code> has been changed via DBUS method
+
|<code>reset_rearm_location</code>||||||Reset and rearm the GPS location subsystem, needed to be explicitly called if parameter <code>GPSsettings</code> has been changed via DBUS method
|-
|-
-
|'''<code>reset_rearm_orientation'''</code>||||||Reset and rearm the Phone Orientation subsystem, needed to be explicitly called if parameter <code>'''updOnOrientation'''</code> has been changed via DBUS method
+
|<code>reset_rearm_orientation</code>||||||Reset and rearm the Phone Orientation subsystem, needed to be explicitly called if parameter <code>updOnOrientation</code> has been changed via DBUS method
|-
|-
-
|'''<code>reset_rearm_dbus_monitor'''</code>||||||Reset and rearm the DBUS Monitor subsystem, needed to be explicitly called if parameters <code>'''updOnDBUS'''</code>, <code>'''updOnDBUSBus'''</code> and <code>'''updOnDBUSMatchRule'''</code> have been changed via DBUS method
+
|<code>reset_rearm_dbus_monitor</code>||||||Reset and rearm the DBUS Monitor subsystem, needed to be explicitly called if parameters <code>updOnDBUS</code>, <code>updOnDBUSBus</code> and <code>updOnDBUSMatchRule</code> have been changed via DBUS method
|-
|-
-
|'''<code>show'''</code>||||||Give show impulse to a QBW
+
|<code>show</code>||||||Give show impulse to a QBW
|-
|-
-
|'''<code>hide'''</code>||||||Give hide impulse to a QBW
+
|<code>hide</code>||||||Give hide impulse to a QBW
|-
|-
-
|'''<code>wakeup'''</code>||||||Give wake up impulse to a QBW and update content and layout
+
|<code>wakeup</code>||||||Give wake up impulse to a QBW and update content and layout
|-
|-
-
|'''<code>sleep'''</code>||||||Give sleep/disable/minimize impulse to a QBW
+
|<code>sleep</code>||||||Give sleep/disable/minimize impulse to a QBW
|-
|-
-
|'''<code>update_content'''</code>||||||Give impulse to a QBW for content update
+
|<code>update_content</code>||||||Give impulse to a QBW for content update
|-
|-
-
|'''<code>update_layout'''</code>||||||Give impulse to a QBW for layout update
+
|<code>update_layout</code>||||||Give impulse to a QBW for layout update
|-
|-
-
|'''<code>exec'''</code>||<code>string:'<command<nowiki>|</nowiki>script>'</code>||||Give other QBWs one-shot alternative scripts/commands to execute and update content accordingly
+
|<code>exec</code>||<code>string:'<command<nowiki>|</nowiki>script>'</code>||||Give other QBWs one-shot alternative scripts/commands to execute and update content accordingly
|-
|-
-
|'''<code>set_param_string'''</code>||<code>string:'<param name>'</code><br /><code>string:'<new value>'</code><br /><code>string:<nowiki>'' | </nowiki>'update_content'<nowiki> | </nowiki>'update_layout'</code>|||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type string
+
|<code>set_param_string</code>||<code>string:'<param name>'</code><br /><code>string:'<new value>'</code><br /><code>string:<nowiki>'' | </nowiki>'update_content'<nowiki> | </nowiki>'update_layout'</code>|||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type string
|-
|-
-
|'''<code>set_param_int32'''</code>||<code>string:'<param name>'</code><br /><code>int32:'<new value>'</code><br /><code>string:<nowiki>'' | </nowiki>'update_content'<nowiki> | </nowiki>'update_layout'</code>||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type int
+
|<code>set_param_int32</code>||<code>string:'<param name>'</code><br /><code>int32:'<new value>'</code><br /><code>string:<nowiki>'' | </nowiki>'update_content'<nowiki> | </nowiki>'update_layout'</code>||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type int
|-
|-
-
|'''<code>set_param_uint32'''</code>||<code>string:'<param name>'</code><br /><code>uint32:'<new value>'</code><br /><code>string:<nowiki>'' | </nowiki>'update_content'<nowiki> | </nowiki>'update_layout'</code>||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type uint
+
|<code>set_param_uint32</code>||<code>string:'<param name>'</code><br /><code>uint32:'<new value>'</code><br /><code>string:<nowiki>'' | </nowiki>'update_content'<nowiki> | </nowiki>'update_layout'</code>||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type uint
|-
|-
-
|'''<code>set_param_double'''</code>||<code>string:'<param name>'</code><br \><code>double:'<new value>'</code><br /><code>string:<nowiki>'' | </nowiki>'update_content'<nowiki> | </nowiki>'update_layout'</code>||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type double
+
|<code>set_param_double</code>||<code>string:'<param name>'</code><br \><code>double:'<new value>'</code><br /><code>string:<nowiki>'' | </nowiki>'update_content'<nowiki> | </nowiki>'update_layout'</code>||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type double
|-
|-
-
|'''<code>set_param_boolean'''</code>||<code>string:'<param name>'</code><br /><code>boolean:'<new value>'</code><br /><code>string:<nowiki>'' | </nowiki>'update_content'<nowiki> | </nowiki>'update_layout'</code>||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type boolean
+
|<code>set_param_boolean</code>||<code>string:'<param name>'</code><br /><code>boolean:'<new value>'</code><br /><code>string:<nowiki>'' | </nowiki>'update_content'<nowiki> | </nowiki>'update_layout'</code>||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type boolean
|-
|-
-
|'''<code>get_param'''</code>||<code>string:'<param name>'</code>||<code>string:'value'</code>||Get QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]]
+
|<code>get_param</code>||<code>string:'<param name>'</code>||<code>string:'value'</code>||Get QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]]
|-
|-
-
|'''<code>is_on_sight'''</code>||||<code>string:'value'</code>||Get current widget On Sight status<br/>'''<code>true</code>'''=QBW Instance is "ON SIGHT", that is widget is on current desktop and display is not locked or on stand by.<br/>'''<code>false</code>'''=QBW Instance is not on current desktop and visible or display is off or on stand by
+
|<code>is_on_sight</code>||||<code>string:'value'</code>||Get current widget On Sight status<br/>'''<code>true</code>'''=QBW Instance is "ON SIGHT", that is widget is on current desktop and display is not locked or on stand by.<br/><code>false</code>=QBW Instance is not on current desktop and visible or display is off or on stand by
|-
|-
-
|'''<code>get_current_results_text'''</code>||||<code>string:'value'</code>||Get current content of results text
+
|<code>get_current_results_text</code>||||<code>string:'value'</code>||Get current content of results text
|-
|-
-
|'''<code>set_position'''</code>||<code>int32:'<X-coord>'</code><br /><code>int32:'<Y-coord>'</code>||||Set QBW position on desktop
+
|<code>set_position</code>||<code>int32:'<X-coord>'</code><br /><code>int32:'<Y-coord>'</code>||||Set QBW position on desktop
|-
|-
-
|'''<code>get_position'''</code>||||<code>int32:'<X-coord>'</code><br /><code>int32:'<Y-coord>'</code>||Get QBW position on desktop
+
|<code>get_position</code>||||<code>int32:'<X-coord>'</code><br /><code>int32:'<Y-coord>'</code>||Get QBW position on desktop
|-
|-
-
|'''<code>get_exit_status'''</code>||||<code>int32:'<ExitStatus>'</code>||Retrieve other QBW's last executed commands exit status
+
|<code>get_exit_status</code>||||<code>int32:'<ExitStatus>'</code>||Retrieve other QBW's last executed commands exit status
|}
|}
-
==DBUS Signals & Parameters==
+
===DBUS Signals & Parameters===
 +
 
QBW issues the following list of signals to notify the "world" about predefined conditions and events. They will be emitted on the bus according to the following specifications:
QBW issues the following list of signals to notify the "world" about predefined conditions and events. They will be emitted on the bus according to the following specifications:
-
  PATH      ="/oh/no/more/qbw'''<u><idX></u>'''"
+
  PATH      ="/oh/no/more/qbw<idX>"
  INTERFACE  ="oh.no.more.qbw"
  INTERFACE  ="oh.no.more.qbw"
  MEMBER    ="<signal name>" [Signal column in below list]
  MEMBER    ="<signal name>" [Signal column in below list]
  PARAMETERS ="<parameter>" [Broadcast column in below list]
  PARAMETERS ="<parameter>" [Broadcast column in below list]
-
* '''<idX>''' is the '''[[#QBW_Instance_ID|QBW Instance ID]]'''
+
* <idX> is the [[#QBW_Instance_ID|QBW Instance ID]]
-
{|class="wikitable" border="2"
+
{|class="wikitable"
!Signal!!Broadcasts!!Description
!Signal!!Broadcasts!!Description
|-
|-
-
|'''<code>signal_content_update</code>'''||<code>int32:'<ExitStatus>'</code>||Issued when '''[[#QBW_Instance_ID|QBW Instance <idX>]]''' executes and returns an exit status
+
|<code>signal_content_update</code>||<code>int32:'<ExitStatus>'</code>||Issued when [[#QBW_Instance_ID|QBW Instance <idX>]] executes and returns an exit status
|}
|}
-
==Interacting with QBW from the Shell==
+
===Interacting with QBW from the Shell===
 +
 
This is the template to use for calling the QBW instance methods:
This is the template to use for calling the QBW instance methods:
-
* '''For methods which <u>DO</u> return values'''
+
* For methods which DO return values:
-
  run-standalone.sh dbus-send --session '''''--print-reply''''' --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw'''<u><idX></u>''' oh.no.more.qbw.'''<u><method></u>''' '''<u><type1></u>''':"'''<u><param1></u>'''" '''<u><type2></u>''':"'''<u><param2></u>'''" ... '''<u><typeN></u>''':"'''<u><paramN></u>'''"
+
  run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.<method> <type1>:"<param1>" <type2>:"<param2>" ... <typeN>:"<paramN>"
-
<s>'''WARNING!!!''' Hildon-home is quite sensitive to long running commands inside Queen Beecon Widget. If you believe that the dbus-send command is going to take much time (say >2/3 secs) it is better if you add the '''<code>--reply-timeout=<milliseconds></code>''' to the dbus-send list of parameters.</s> As of >=0.1.9.3 release, asynchronous execution of commands/scripts obsoletes previous statement.
+
<s>'''WARNING!!!''' Hildon-home is quite sensitive to long running commands inside Queen Beecon Widget. If you believe that the dbus-send command is going to take much time (say >2/3 secs) it is better if you add the <code>--reply-timeout=<milliseconds></code> to the dbus-send list of parameters.</s> As of >=0.1.9.3 release, asynchronous execution of commands/scripts obsoletes previous statement.
-
* '''For methods which <u>DO NOT</u> return values'''
+
* For methods which DO NOT return values:
-
  run-standalone.sh dbus-send --session --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw'''<u><idX></u>''' oh.no.more.qbw.'''<u><method></u>''' '''<u><type1></u>''':"'''<u><param1></u>'''" '''<u><type2></u>''':"'''<u><param2></u>'''" ... '''<u><typeN></u>''':"'''<u><paramN></u>'''"
+
  run-standalone.sh dbus-send --session --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.<method> <type1>:"<param1>" <type2>:"<param2>" ... <typeN>:"<paramN>"
Where:
Where:
-
* '''<idX>''' is the '''[[#QBW_Instance_ID|QBW Instance ID]]'''
+
* <code><idX></code> is the [[#QBW Instance ID|QBW Instance ID]]
-
* '''<method>''' is the '''[[#DBUS_Methods|Method]]''' to be called for the specific QBW Instance
+
* <code><method></code> is the [[#DBUS Methods|Method]] to be called for the specific QBW Instance
-
* '''<typeX>''' & '''<paramX>''' are the parameter '''type''' and '''value''' as per the specific '''[[#DBUS_Methods|Method Synopsis]]'''
+
* <code><typeX></code> and <code><paramX></code> are the parameter type and value as per the specific [[#DBUS Methods|Method Synopsis]]
For example:
For example:
Line 680: Line 674:
or
or
-
  run-standalone.sh dbus-send --session '''''--print-reply''''' --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.get_position
+
  run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.get_position
-
----
+
 
 +
== QBW DBUS Events Monitor and Interceptor ==
 +
 
 +
===Overview===
-
= QBW DBUS Events Monitor and Interceptor =
+
As of releases newer than 0.1.9.3 QBW is now able to monitor and intercept DBUS events (like signals, methods, errors) issued by the system or other applications. For example:
-
==Overview==
+
-
As of release '''''>= 0.1.9.4''''' QBW is now able to monitor and intercept DBUS events (like signals, methods, errors) issued by the system or other applications. For example:
+
* Keyboard lock/unlock
* Keyboard lock/unlock
* Slide open/close
* Slide open/close
Line 702: Line 697:
[[Image:Qbwdbusm.jpg||400px]]
[[Image:Qbwdbusm.jpg||400px]]
-
'''1)''' States if DBUS Monitoring is enabled or disabled for this QBW
+
# States if DBUS Monitoring is enabled or disabled for this QBW
 +
# Specify whether to monitor SYSTEM or SESSION BUS
 +
# Is the Match Rule as per [http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-routing this DBUS specifications]
-
'''2)''' Specify whether to monitor SYSTEM or SESSION BUS
+
I encourage you to suggest possible enhancements or wishlists in this area and report them in the main [http://talk.maemo.org/showthread.php?t=45388 TALK thread]
-
'''3)''' Is the Match Rule as per '''[http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-routing this DBUS specifications]'''
+
==== Example ====
-
'''''<u>I encourage you to suggest possible enhancements or wishlists in this area and report them in the main [http://talk.maemo.org/showthread.php?t=45388 TALK thread]</u>'''''
 
-
 
-
=== Example ===
 
We will monitor the SYSTEM BUS with the following Match Rule:
We will monitor the SYSTEM BUS with the following Match Rule:
  type='signal',interface='com.example.app.Signal'
  type='signal',interface='com.example.app.Signal'
Line 723: Line 717:
[[Image:qbwmonw.jpg||400px]]
[[Image:qbwmonw.jpg||400px]]
-
----
 
-
= Known Issues =
+
== Known Issues ==
TBD
TBD
-
----
 
-
= Bug Tracker/Reports =
+
== Bug Tracker/Reports ==
-
'''[https://garage.maemo.org/tracker/?atid=4848&group_id=1295&func=browse Tracker/Report See HERE]'''
+
-
----
+
-
= Feature Requests =
+
[https://garage.maemo.org/tracker/?atid=4848&group_id=1295&func=browse Tracker/Report See HERE]
-
'''[https://garage.maemo.org/tracker/?atid=4851&group_id=1295&func=browse Apply HERE]'''
+
-
----
+
-
= Now-Brewing =
+
== Feature Requests ==
-
'''''Nothing'''''
+
-
----
+
[https://garage.maemo.org/tracker/?atid=4851&group_id=1295&func=browse Apply HERE]
-
= Change Log =
+
== Now-Brewing ==
-
'''''queen-beecon (1.3)''''''
+
-
  * New: Ability to sense Phone Orientation and execute scripts accordingly + Relevant configuration parameters (updOnOrientation)
+
Nothing
-
  * New: Phone Orientation Parameter Variables substitution for using with scripts which hold $QBW_ORIENTATION_MODE, $QBW_ORIENTATION_STAND, $QBW_ORIENTATION_FACE, $QBW_ORIENTATION_X, $QBW_ORIENTATION_Y, $QBW_ORIENTATION_Z
+
-
  * New: Ability to sense GPS/Location information and execute scripts accordingly + Relevant configuration parameters (GPSsettings)
+
-
  * New: GPS/Location Parameter Variables substitution for using with scripts which hold $QBW_LOCATION_FIX current position FIX in string form
+
-
  * New: Added option to wrap text results and relevant configuration parameter resWrapLongLines
+
-
  * New: New about box in Advanced Settings dialog Box with Application Name, Description, Version, Buttons for "Visit website" "Report bug" "Donate", Copyright info
+
-
  * New: Added confirmation in Command Deletion Dialog Box
+
-
  * New: Added the possibility to completely hide widget and display only the animation when updating (useful for example to draw on-click/press FX frames and visual feedback to buttons)
+
-
  * New: Parameter Variables substitution for using with scripts which holds the current X position of QBW widget ($QBW_POSITION_X); useful for dynamic update/processing of widget according to its position on screen 
+
-
  * New: Parameter Variables substitution for using with scripts which holds the current Y position of QBW widget ($QBW_POSITION_Y); useful for dynamic update/processing of widget according to its position on screen 
+
-
  * New: Implementation of toggle for multi-click support (quicker click response if disabled); with relevant settings & configuration parameter "multiClick" 
+
-
  * New: Implementation of DBUS methods: reset_rearm_connection
+
-
  * New: Implementation of DBUS methods: reset_rearm_location
+
-
  * New: Implementation of DBUS methods: reset_rearm_orientation
+
-
  * New: Implementation of DBUS methods: reset_rearm_dbus_monitor
+
-
  * Changed: Complete QBW icons restyle!!!
+
-
  * Changed: Changed some settings sensitivity logic according to enablement of relevant function
+
-
  * Changed: Command Input Buffer in Advanced Settings Dialog Box now accepts linebreaks in the input for improved command readability
+
-
  * Changed: Progress Animation is now not shown if widget is set to invisible
+
-
  * Changed: @connection events now have their management subsystem and gets activated also for instances requiring it
+
-
  * Changed: Changed logger verbosity @connection event
+
-
  * Changed: Restyle in Update Policy Settings
+
-
  * Changed: UI Restyle in Advanced Settings and Tools Dialog Box 
+
-
  * Changed: UI Restyle in Widget Size Settings 
+
-
  * Changed: UI Restyle in Widget Positioning Settings 
+
-
  * Changed: More verbosity for Pango Markup Language inconsistencies notification (Now instance id and offending command title are displayed)
+
-
  * Changed: Optimization in wakeup/sleep logic (better error management and notifications)
+
-
  * Bugfixing: Instance parameters related to commands (instanceTitle, instanceCmd) where not poperly updated when edited both in Advanced Dialog Box and in Command Add/Edit/Delete dialog box; fixed
+
-
  * Bugfixing: Network connection/disconnection logic; fixed
+
-
  * Bugfixing: In Advanced Dialg Box, export of command not in list caused SEGFAULT; fixed
+
-
'''''queen-beecon (1.2)''''''
+
== Change Log ==
-
  * New: Release Candidate to Extras (1.0.53 -> 1.2)   
+
{{main|Queen BeeCon Widget/Changelog}}
-
  * Changed: Release Candidate to Extras (1.0.53 -> 1.2)
+
-
  * Bugfixing: Release Candidate to Extras (1.0.53 -> 1.2)
+
-
'''''queen-beecon (1.0.53)'''''
+
== TODO list ==
-
 
+
-
  * New: Parameter Variables substitution for using with scripts which holds the current width of QBW widget ($QBW_WIDTH); useful for dynamic recalculation of click hotspots
+
-
  * New: Parameter Variables substitution for using with scripts which holds the current height of QBW widget ($QBW_HEIGHT); useful for dynamic recalculation of click hotspots
+
-
  * New: Parameter Variables substitution for using with scripts which holds the exit status of the last previous executed command ($QBW_PREVIOUS_EXIT_STATUS)
+
-
  * New: Added new Network Connection Event condition (NETWORK__PASSTHROUGH) which will trigger the execution of command at every Network Related event. Management of the connection event status will be completely delegated to the command through $QBW_IS_CONNECTED and $QBW_EXEC_REASON=="QBW_CONNECTION_EVENT" Parameter Variables substitution. 
+
-
  * Changed: Optimized "cancel on exec in progress" logic 
+
-
  * Bugfixing: Some network connection status change issues; fixed
+
-
 
+
-
'''''queen-beecon (1.0.52)'''''
+
-
 
+
-
  * New: In Command and Instance import in Advanced Settings and Tools Dialog Box, command title is now checked for existence, if existent "+"s are appendend till name is unique 
+
-
  * New: In Add/Edit Command Dialog box, command title is now checked for existence, if existent, user is now asked for unique name 
+
-
  * Changed: - 
+
-
  * Bugfixing: Both in Settings and in Advanced Settings and Tools Dialog Box, Command Selection button was not correctly re-populated after operations on commands list (add/delete/import); fixed
+
-
 
+
-
'''''queen-beecon (1.0.51)'''''
+
-
 
+
-
  * New: Added Reset/Truncate Logfile action to Logger Verbosity Button in Advanced Settings and Tools Dialog Box
+
-
  * Changed: - 
+
-
  * Bugfixing: -
+
-
 
+
-
'''''queen-beecon (1.0.5)'''''
+
-
 
+
-
  * New: Possibility to directly modify the "rememberMe" parameter from the output of the executed command (without using the DBUS interface which is much slower) for using with scripts which need to hold/manipulate status or persistency information. Just echo the following string (which will not be displayed) as output of your command "QBW_REMEMBER_ME(<content to be remembered>)" no angle brackets; escape "close round bracket" like this "\)" to store it as ")"
+
-
  * Changed: Extended warning message in case of inconsistent Pango Markup Language output ("QBW Warning! Possible Pango Markup Language inconsistent/unterminated Tag!") 
+
-
  * Changed: Extended warning message in case of inconsistent/non-UTF-8 output in TestDrive output Buffer ("QBW Warning! Expected/Shown Command Output mismatch. Possible charset different from UTF-8!") 
+
-
  * Bugfixing: QBW re-enable on double-click logic bugged; fixed
+
-
 
+
-
'''''queen-beecon (1.0.4)'''''
+
-
 
+
-
  * New: Implemented the possibility to have the Progress Animation displayed at widget click X,Y coordinates; with relevant configuration parameter "progressAnimationAtClickXY" 
+
-
  * New: Implemented the possibility to hide the background Canvas on click both for Beecons and Snippets with relevant configuration parameter "hideClickCanvas" 
+
-
  * Changed: Some optimizations in QBW at startup, expecially for instances with execute @startup flag; should speed up widget appearance
+
-
  * Changed: Checks for obsolete instances in configuration file moved to Advanced Settings and Tools Dialog; check is performed upon entering.
+
-
  * Changed: Some optimizations in progress icon animation logic
+
-
  * Changed: Some optimization in multiple-clicks management
+
-
  * Bugfixing: Command output for Test Drive in Advanced Settings and Tools Dialog still buggy and not displaying complete output; fixed
+
-
  * Bugfixing: Logic for multiple clicks count was a bit bugged; fixed
+
-
  * Bugfixing: DBUS Signal emission at end of command execution was misplaced ; fixed
+
-
  * Bugfixing: Logging info incorrect for timeout seconds count function GetSeconds; fixed
+
-
 
+
-
'''''queen-beecon (1.0.3)'''''
+
-
 
+
-
  * New: Added button to change Logger Verbosity in Advanced Settings and Tools Dialog Box
+
-
  * New: Implementation of Command and Results image orientation angle (w/ relevant configuration parameters)
+
-
  * New: Added edit box in Settings Dialog for "rememberMe" value. Can now be initialized also from widget and not only via DBUS method 
+
-
  * New: Parameter Variables substitution for using with scripts which holds the number of times a QBW was pressed/clicked: $QBW_CLICKS_COUNT; useful for handling single/double/triple... clicks and behave accordingly (Tested up to 12 ... :) )
+
-
  * New: Parameter Variables substitution for using with scripts which hold X and Y coordinates where a QBW was pressed/clicked: $QBW_CLICK_X, $QBW_CLICK_Y; useful for handling different arbitrary/dynamic hotspots on widgets via launched shell scripts
+
-
  * Changed: Now QBW instances with status disabled/minimized (black small 60x60 inactive sleeping bee icon) are enable again on double-click and non on single-click
+
-
  * Bugfixing: TestDrive in Advanced Settings and Tools Dialog Box was not fetching the whole command output; fixed 
+
-
  * Bugfixing: Typos in "Edit Cmd" Dialog Box title; fixed 
+
-
  * Bugfixing: Not proper memory deallocation of some strings parameter in Settings Dialog; fixed   
+
-
 
+
-
'''''queen-beecon (1.0.2)'''''
+
-
 
+
-
  * Source Modules: Changed architecture of source module ... now split into single modules according to QBW subfunctions ... expect some sneaky regressions!!!
+
-
  * New: Application Logging Subsystem to log file, with different levels of verbosity (v0 v1 v2 v3 v4 from minimum verbosity to maximum) and possibility to enable/disable/reset logging and log file
+
-
  * New: Parameter Variables substitution for using with scripts which holds Network Connection status: $QBW_IS_CONNECTED (true=QBW Instance is connected to the network (either WLAN or GPRS) false=QBW Instance is NOT connected to the network (either WLAN or GPRS))
+
-
  * Changed: In Settings Dialog Box changed "Custom(")" to "Custom(Secs)" for custom timer label
+
-
  * Changed: In Advanced Settings and Tools Dialog Box it's now possible to scroll dialog both vertically and horizontally. So all buttons will be accessible even if you have big fonts
+
-
  * Changed: In Advanced Settings and Tools Dialog Box added more checks for Import Instance/Command Data (It should now be more restrictive on Import Data consistency/congruency)
+
-
  * Bugfixing: System Proxy fetching logic bugged; fixed
+
-
  * Bugfixing: reset_rearm_timer DBUS method call was not disabling timer when timer update was disabled; fixed
+
-
  * Bugfixing: set_param_uint32 DBUS method call had problems if values = 0; fixed
+
-
 
+
-
'''''queen-beecon (1.0.0.1)'''''
+
-
 
+
-
  * New: Nothing - Release Candidate to Extras (0.1.9.9 -> 1.0.0.1)   
+
-
  * Changed: Nothing - Release Candidate to Extras (0.1.9.9 -> 1.0.0.1)
+
-
  * Bugfixing: Nothing - Release Candidate to Extras (0.1.9.9 -> 1.0.0.1)
+
-
 
+
-
'''''queen-beecon (0.1.9.9)'''''
+
-
 
+
-
  * New: Added "On Sight" Update Policy (If flagged, content is not updated if widget is out of sight (on other desktop) or if display is locked or in stand-by) 
+
-
  * New: Parameter Variables substitution for using with scripts which holds "On Sight" or "Out Of Sight" status: $QBW_ON_SIGHT (true=QBW Instance is "ON SIGHT", that is widget is on current desktop and display is not locked or on stand by. false=QBW Instance is not on current desktop and visible or display is off or on stand by)
+
-
  * New: DBUS method "is_on_sight" which returns true (QBW Instance is "ON SIGHT", that is, widget is on current desktop and display is not locked or on stand by) or false (QBW Instance is not on current desktop and visible or display is off or on stand by)
+
-
  * Changed: Optimized usability of settings for Widget Width and Height
+
-
  * Changed: Optimized progress animation logic for visibility when instance not On Sight
+
-
  * Bugfixing: -
+
-
 
+
-
'''''queen-beecon (0.1.9.8)'''''
+
-
 
+
-
  * New: Implemented per-instance progress animation with customizable number of frames, timer, position and possibility to have it shown or hidden (Now every instance can have its own progress animation) + Settings for Hide/Show, frames #, timer, position and basename.
+
-
  * Changed: Extended error message text to all DBUS methods
+
-
  * Changed: Now when command or script do not return any output no more "No Output" text gets printed inside the widget
+
-
  * Bugfixing: Added error message if non existing parameter is supplied to all DBUS methods "set_param_*"
+
-
  * Bugfixing: Under certain conditions HotSpot Index was not properly reset in case update policies prevented execution of script from happening. Fixed.
+
-
 
+
-
'''''queen-beecon (0.1.9.7)'''''
+
-
 
+
-
  * New: -
+
-
  * Changed: Line width for widget contours FX when widget pressed set to 1px   
+
-
  * Bugfixing: Reentrancy issues for DBUS Monitor. Fixed
+
-
  * Bugfixing: "If you enter a long name for the title, the right part of the prefs gui isn't visible anymore and you can't scroll to the now hidden gadgets!". Fixed. Area is now scrollable also horizontally.
+
-
  * Bugfixing: Issues with positioning of small widgets with respect to bottom and right margins. Fixed.
+
-
 
+
-
'''''queen-beecon (0.1.9.6)'''''
+
-
 
+
-
  * New: REVOLUTION!!! :) Implementation of multiple (9 = grid 3x3) Hot Spots to click on the widget. Clicked Hot Spot Index Position can then be passed to the executed script via Parameter Variables Substitution $QBW_HOTSPOT_PRESS (0=Not Pressed or other update policy,1=Top Left,2=Top Center,3=Top Right,4=Center Left,5=Center,6=Center Right,7=Bottom Left,8=Bottom Center,9=Bottom Right)
+
-
  * New: Parameter Variables substitution for using with scripts which hold Proxy related information: $QBW_HTTP_PROXY, $QBW_HTTPS_PROXY, $QBW_FTP_PROXY, $QBW_SOCKS_PROXY, $QBW_RTSP_PROXY (In the format <host:port>)
+
-
  * New: Parameter Variables substitution for using with scripts which hold Proxy related information: $QBW_IGNORE_HOSTS_PROXY (In the format <host1;host2;host...>)
+
-
  * New: Parameter Variables substitution for using with scripts which hold proxy related information: $QBW_AUTO_CONFIG_PROXY_URL
+
-
  * New: Parameter Variables substitution for using with scripts which hold status or persistency information stored in configuration via DBUS method call set_param_string string:"rememberMe" string:<rememberthis> : $QBW_REMEMBER_ME. Useful, for example, for remembering values like counters across subsequent command executions.
+
-
  * Changed: Logic to purge configuration settings of non-existent QBW instances from configuration file. (Check/Purge performed at every entrance in Settings dialog)   
+
-
  * Bugfixing: Reentrancy problem with Settings dialog box. At times, in case of laggy interface, 2 or more instances of dialog were opening. Fixed.
+
-
  * Bugfixing: Incomplete unreferentiation of DBUS resources. Fixed.
+
-
  * Bugfixing: Incomplete unreferentiation of callback functions for async command execution and timers. Fixed.
+
-
  * Bugfixing: Incorrect logic for updating when widget desktop was active/on. It was updating also when active widget's desktop was swept off. Now updates content only if "Update on Desktop" is TRUE and Widget's Desktop is being swept on. Fixed.
+
-
 
+
-
'''''queen-beecon (0.1.9.5)'''''
+
-
 
+
-
  * New: Added supplementary progress images/icons (cycle is "queen-beecon-progress[0-3].png") searching logic in directory storage in this order 1) "~/Mydocs/.images/queen_beecon_dir" 2) "~/.queen_beecon_dir" 
+
-
  * New: Added button in Command Edit dialog to add instance only commands to the list of stored commands 
+
-
  * New: Implementation of following DBUS methods: get_current_results_text (Get current content of results text)
+
-
  * New: Parameter Variables substitution for using with scripts which holds the current content of results text ($QBW_CURRENT_RESULTS_TEXT=Current content of results text)
+
-
  * Changed: Default shape for Beecons is now rectangle. Hexagonal cell will be only shown when pressed 
+
-
  * Changed: Shadow/Light effects on widget surface, either when pressed or not, are now fixed in size (~4px) 
+
-
  * Changed: Changed some logic in simple Command Edit dialog box 
+
-
  * Changed: After instance imported, now advanced dialog box closes and reverts back to settings with all parameters reloaded
+
-
  * Changed: Changed Warning and Information notification in Advanced Settings to display hildon_banner* 
+
-
  * Changed: Changed DBUS connection acquisition for DBUS Monitor. 
+
-
  * Bugfixing: Refined and fixed logic for DBUS Monitor initialization and deinitialization 
+
-
  * Bugfixing: Changed and fixed logic for handling/displaying Exit Code if error spawning asynchronous command 
+
-
  * Bugfixing: New asynchronous execution logic was not releasing file handles. Fixed
+
-
 
+
-
'''''queen-beecon (0.1.9.4)'''''
+
-
  * New: Ability to execute scripts by intercepting specific DBUS broadcasted signals/methods issued by the system or other applications + Relevant configuration parameters (Ex.keyboard lock, slide open/close, ecc.) 
+
-
  * New: Parameter Variables substitution for using with scripts triggered by intercepted DBUS broadcasted signals/methods ($QBW_EXEC_REASON=QBW_DBUS_MONITOR, $QBW_DBUS_VERBOSE_OUTPUT=Verbose Output see WIKI)
+
-
  * Changed: Changed icons for displaying command execution in progress (shown when script in progress and hidden on execution completion)
+
-
  * Changed: Package installation now performs an automatic restart of hildon-home process 
+
-
  * Bugfixing: Memory reallocation bugs fixed in new async command execution logic 
+
-
 
+
-
'''''queen-beecon (0.1.9.3)'''''
+
-
  * New: Added icon for displaying command execution in progress (shown when script in progress and hidden on execution completion)
+
-
  * New: Implementation of Asynchronous Non Hildon-Home blocking command execution (Test Drive is still Synchronous for command timing evaluation purposes) 
+
-
  * Changed: - 
+
-
  * Bugfixing: Memory reallocation bugs fixed for all string values management in settigs dialog box 
+
-
 
+
-
'''''queen-beecon (0.1.9.2)'''''
+
-
  * New: Added custom timeout in seconds for periodic update, not just predefined list of values
+
-
  * Changed: Restyle in settings configuration for Update Policies, Fonts & Colors Buttons 
+
-
  * Bugfixing: 
+
-
 
+
-
'''''queen-beecon (0.1.9.1)'''''
+
-
  * New: Parameter Variables substitution usable by script (Ex. Own Instance ID, Reason for updating content)
+
-
  * New: Implementation of Command and Results text orientation angle (w/ relevant configuration parameters)
+
-
  * New: New extended color dialog for background and foreground colors (Old color selection deprecated; backward compatibility for instances exported from previous releases is guaranteed and settings upgraded as necessary)
+
-
  * Changed: Restyle in settings configuration for Beecon Command Exit Statuses area & Command Title/Results Settings area + changed color settings appearance 
+
-
  * Bugfixing: Disabled instance (icon) wasn't correctly drawn on startup; fixed
+
-
  * Bugfixing: Memory deallocation bug for >=3 Exit Status image file beecon_idxge2_ImgFilename; fixed
+
-
 
+
-
'''''queen-beecon (0.1.9)'''''
+
-
  * New: New extended font dialog for command and results labels (Old font selection deprecated; backward compatibility for instances exported from previous releases is guaranteed and settings upgraded as necessary)
+
-
  * Changed: Due to new font settings implementation, exported instances from this release onward will have their fonts reset to command="Nokia Sans bold italic 12" results="Nokia Sans bold 12" when imported in previous releases 
+
-
  * Bugfixing: Some fixing and cleanup in package install/uninstall
+
-
 
+
-
'''''queen-beecon (0.1.8-testonly-PR1.2)'''''
+
-
  * WARNING This release is for testing purposes only as PR1.2 upgrade brought some instabilities which need forensics!!!
+
-
  * New: Implementation of DBUS methods: reset_rearm_timer
+
-
  * New: QBW is now integrated into the N900 system backup/restore features according to standard specifications as better described in SDK "Using Backup Application" http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Generic_Platform_Components/Using_Backup_Application#Custom_back-up_locations 
+
-
  * Changed: Completely revised Timer logic and reset/re-arming for widget periodic auto-update
+
-
  * Changed: Visual feedback when Beecons pressed; now rectangle gets drawn as well as cell (better chance of noticing feedback for canvas-less Beecons)
+
-
  * Bugfixing: Fixed segmentation fault if dbus get_position method called and dbus_method_monitor turned on
+
-
 
+
-
'''''queen-beecon (0.1.7-PR1.1.1)'''''
+
-
  * NOTE: Special Build for PR1.1.1
+
-
  * New: Implementation of Widget Instance visibility toggle and configuration parameter (for showing or hiding the widget also via DBUS)
+
-
  * New: Implementation of following DBUS methods: dbus_method_monitor, show, hide, wakeup, sleep, update_content, update_layout, exec, set_param_string, set_param_int32, set_param_uint32, set_param_double, set_param_boolean, get_param string, set_position, get_position, get_exit_status
+
-
  * New: Implementation of following DBUS signals: sig_content_updated
+
-
  * Changed: Enhanced DBUS implementation for Widget2Widget & System2Widget Inter Process Communication
+
-
  * Changed: Changed default values for some Update Policies in new QBW instances (updOnStartup now defaults to FALSE; updOnDesktop now defaults to FALSE) to prevent bugged Beecons from freezing hildon-home even after restart
+
-
  * Respect: To querty12@talk.maemo.org Many, many, many, many, many thanks for supporting QBW IPC implementation
+
-
 
+
-
'''''queen-beecon (0.1.6)'''''
+
-
  * New: Simple DBUS implementation for Widget2Widget & System2Widget Inter Process Communication
+
-
  * New: Added Widget Instance ID in Settings Dialog Title
+
-
  * Changed: Compiled Vs. PR1.2
+
-
 
+
-
'''''queen-beecon (0.1.5)'''''
+
-
  * Changed: Thanks "qwerty12" disabled automatic capitalization for all text entry fields
+
-
 
+
-
'''''queen-beecon (0.1.4)'''''
+
-
  * New: Implementation of Widget Instance disabling and minimizing on desktop (click on minimized icon on desktop will wakeup and maximize instance)
+
-
  * New: Implementation of image/icon scaling function for all images used (Zoom In/Out from 5% to 200% or Fit to Widget Width/Height)
+
-
  * Bugfixing: In Advanced Maintenance Dialog Box several bugfixes for Import/Export commands and instances,
+
-
 
+
-
'''''queen-beecon (0.1.3)'''''
+
-
  * New: Added possibility to show or hide both snippet's image/text and beecon image/text. This way you can have two images and two text placeholders on widget, for more flexibility in graphic layout
+
-
  * New: Added supplementary images/icons directory storage "~/Mydocs/.images/queen_beecon_dir". If images/icons without path are not found here then they are searched in "~/.queen_beecon_dir". For easier population via USB of BLUETOOTH File Services.
+
-
  * New: Added functions in Advanced Maintenance Dialog Box: instance export/import w/ checksum, command export/import w/ checksum, command update with current Test Drive buffer, clipboard operations
+
-
  * New: Added some confirmation dialogs for critical operations and some notification messages
+
-
  * New: Added possibility to use different images/icons for Command Exit Statuses >=3 . Basically the Exit Status value will be appended to a fixed image filename and relevant image will be loaded (ex. "queen-beecon-status.png.3" ... 4 ... 5 ...)
+
-
  * New: Basic Images/Icons for Snippets and Beecon Statuses incorporated into .deb package and installed inside canonical hildon hicolor 48x48 directory
+
-
  * Bugfixing: Fixed size and positioning of controls in Advanced Maintenance Dialog Box
+
-
  * Bugfixing: Removed directory purge in "rmnobraco.sh" script
+
-
  * Bugfixing: Checked and removed some memory leaks and resources deallocation (were causing hildon-home desktop to crash on instance disposal)
+
-
  * Changed: Restyle and lots of optimization in Settings Dialog Box UI layout
+
-
  * Changed: Widget's fill gradients when background is enabled
+
-
  * Changed: Restyle in Advanced Maintenance Dialog Box interface, now more functional and user friendly
+
-
  * Changed: When opening Advanced Maintenance Dialog Box, command in current instance is automatically copied to the TestDrive command text box
+
-
  * Changed: Advanced Maintenance Dialog Box changed font to Monospace Bold for the three text views for inproved visibility
+
-
 
+
-
'''''queen-beecon (0.1.2)'''''
+
-
  * New: Implemented Pango Markup Language support for both Command Title and Output Results text ([http://maemo.org/api_refs/5.0/5.0-final/pango/PangoMarkupFormat.html Description HERE])
+
-
  * New: Basic implementation of Advanced Maintenance Dialog Box (For future use like export/import ...)
+
-
  * New: Advanced Maintenance Dialog Box: TestDrive mode (to display raw output of predefined or user-defined commands)
+
-
  * Changed: Had to change description in debian "control" file (Testers Karma-- me for this)
+
-
  * Changed: Changed logic in settings dialog box, now it doesn't redraw unless strictly necessary and just content and controls which need it. Also quicker transition to main settings when back from child dialog boxes.
+
-
 
+
-
'''''queen-beecon (0.1.1)'''''
+
-
  * Changed: Visual feedback for widget pressure is now also provided for Canvas-less beecons and snippets (button down canvas is displayed when pressed)
+
-
  * Changed: Changed default size for newly created instances (50px=>100px)
+
-
  * Changed: Housekeeping for dead/disposed instances is now run on each instance initialization and on class termination (should be more accurate now)
+
-
  * Bugfixing: Writing/Reading configuration file inconsistencies fixed
+
-
  * Bugfixing: Correction in images (status/results/title) hide/show logic. If images displayed and then commented out, they kept showing! - FIXED
+
-
 
+
-
'''''queen-beecon (0.1.0)'''''
+
-
  * WARNING! Architecture and readibility of code has been heavily revised for implementing the new functionalities...
+
-
  * WARNING! Please bear with possible regressions and report bugs to the Maintainer
+
-
  * New: Implemented the possibility to hide the background Canvas both for Beecons and Snippets
+
-
  * New: Implemented the possibility to use different icons/images for Beecon's status output instead of just specific background color (Ex. 0=green led, 1=yellow led, 2=red led) (with high positioning versatility)
+
-
  * New: Implemented the possibility to use icons/images instead of text both for Beecons/Snippets command title and output (with high positioning versatility)
+
-
  * New: Implemented creation and management of private general purpose directory "~/.queen_beecon_dir" for widget (images/icons/etc.)
+
-
  * New: Implemented "Update on widget Startup" option for every instance
+
-
  * New: Implemented basic management/deletion of dead/disposed instances configurations data from config file
+
-
  * New: Added button "Save & Run" settings dialog which saves settings and contextually triggers command execution
+
-
  * Changed: Widget Layout is now nicer with better gummy "button-press" like visual feedback using Gradient fill
+
-
  * Changed: Button Save in settings dialog does not trigger a command execution any more
+
-
  * Changed: Now command do not get updated after getting back from settings dialog (even after "save"); relevant event only drives updates (manual, timer, desktop, network)
+
-
 
+
-
'''''queen-beecon (0.0.3)'''''
+
-
  * Bugfixing for widget resize(dimensions) and positioning
+
-
  * Bugfixing for general network related behaviours and content update, even after settings change
+
-
  * Bugfixing for Command Edit and blank command selector after returning from command edit dialog
+
-
  * Changed Exit Code output for command from !?0000xxxx to !?xxxx
+
-
  * Changed Command Output is returned, if any, even if Exit Code less then 0
+
-
 
+
-
'''''queen-beecon (0.0.2)'''''
+
-
  * First Extras-devel release
+
-
 
+
-
'''''queen-beecon (0.0.1)'''''
+
-
  * Initial Basic Queen BeeCon Implementation
+
-
----
+
-
 
+
-
= TODO list =
+
*Bugfixing and Improving Stability
*Bugfixing and Improving Stability
*Instance Import/Export optimization and simplification
*Instance Import/Export optimization and simplification
-
----
 
-
= HOW-TOs & FAQs =
+
== HOW-TOs & FAQs ==
-
== Create a new Basic Instance of QBW ==
+
=== Create a new Basic Instance of QBW ===
-
After you have installed QBW package, these are the steps to '''create''' and start customizing a '''new Instance''' of the widget.
+
 
 +
After you have installed QBW package, these are the steps to create and start customizing a new Instance of the widget.
* Tap on an empty area of the Desktop and gear icon for configuration will pop up in the upper right area of the screen
* Tap on an empty area of the Desktop and gear icon for configuration will pop up in the upper right area of the screen
Line 1,047: Line 757:
* A new instance of the widget will be created with very basic default configuration
* A new instance of the widget will be created with very basic default configuration
:[[Image:Qbwinst4.png]]
:[[Image:Qbwinst4.png]]
-
* Now if you click on the Settings Wrench Icon you'll reach the '''Settins Dialog''' for customization
+
* Now if you click on the Settings Wrench Icon you'll reach the Settings Dialog for customization
-
----
+
 
 +
=== How and Where to store Icons and Images for your Beecons ===
-
== How and Where to store Icons and Images for your Beecons ==
+
If no PATH is specified in the Settings for Icons and Images, QBW will look in directories on the phone's internal memories in the following order:
-
'''If no PATH is specified in the Settings for Icons & Images''', QBW will look in directories on the phone's internal memories in the following '''order''':
+
-
* '''First''', the directory accessible via Bluetooth/PC Suite/OVI Suite or USB (Storage Mode).
+
* First, the directory accessible via Bluetooth/PC Suite/OVI Suite or USB (Storage Mode).
  /home/user/MyDocs/.images/queen_beecon_dir/
  /home/user/MyDocs/.images/queen_beecon_dir/
Line 1,067: Line 777:
  /usr/share/icons/hicolor/48x48/hildon/
  /usr/share/icons/hicolor/48x48/hildon/
-
If you want '''to replace a partial/complete set of QBW's [[#Icons_in_Package|Package Icons]]''' just create Icons/Images with same name in directories '''"First"''' or '''"Second"'''
+
If you want to replace a partial/complete set of QBW's [[#Icons in Package|Package Icons]] just create Icons/Images with same name in directories "First" or "Second"
-
If specified '''image''' is '''not found''', following icon will appear:
+
If the specified image is not found, the following icon will appear:
[[Image:Queen-beecon-noimg.png]]
[[Image:Queen-beecon-noimg.png]]
-
----
 
-
== Create an Exit Status driven Multi Images Beecon ==
+
=== Create an Exit Status driven Multi Images Beecon ===
-
'''[http://talk.maemo.org/showthread.php?p=576408#post576408 Naive Dice Roller]''' is a good place to start looking for such implementation.
+
-
----
+
-
== Scripts/Commands with long output ==
+
[http://talk.maemo.org/showthread.php?p=576408#post576408 Naive Dice Roller] is a good place to start looking for such implementation.
 +
 
 +
=== Scripts/Commands with long output ===
Some scripts/commands may create multiple lines which are too long to be displayed on a single line. The widget will not wrap these. In order to wrap them you can use the fold command:
Some scripts/commands may create multiple lines which are too long to be displayed on a single line. The widget will not wrap these. In order to wrap them you can use the fold command:
Line 1,085: Line 794:
The 80 in that instance is the maximum length of the line, which you can change. The -s option makes fold word wrap with spaces. More information is available from the [http://unixhelp.ed.ac.uk/CGI/man-cgi?fold fold man page].
The 80 in that instance is the maximum length of the line, which you can change. The -s option makes fold word wrap with spaces. More information is available from the [http://unixhelp.ed.ac.uk/CGI/man-cgi?fold fold man page].
-
----
 
-
== Backup all Widget Instances ==
+
=== Backup all Widget Instances ===
-
Apply '''[[#Export.2FSave.2FBackup_Procedure_for_Beecon_Instance_Data|Export/Save/Backup Procedure for Beecon Instance Data]]''' for every Widget Instance you want to Backup
+
Apply [[#Export.2FSave.2FBackup Procedure for Beecon Instance Data|Export/Save/Backup Procedure for Beecon Instance Data]] for every Widget Instance you want to Backup
Save content (Beecons' Images) of directories:
Save content (Beecons' Images) of directories:
  /home/user/.queen_beecon_dir
  /home/user/.queen_beecon_dir
  /home/user/MyDocs/.images/queen_beecon_dir/
  /home/user/MyDocs/.images/queen_beecon_dir/
-
----
 
-
== Restore all Widget Instances ==
+
=== Restore all Widget Instances ===
-
Apply '''[[#Import.2FLoad.2FRestore_Procedure_for_Beecon_Exported_Instance_Data|Import/Load/Restore Procedure for Beecon Exported Instance Data]]''' for every Widget Instance you want to Restore
+
Apply [[#Import.2FLoad.2FRestore Procedure for Beecon Exported Instance Data|Import/Load/Restore Procedure for Beecon Exported Instance Data]] for every Widget Instance you want to Restore
Restore content (Beecons' Images) of directories:
Restore content (Beecons' Images) of directories:
  /home/user/.queen_beecon_dir
  /home/user/.queen_beecon_dir
  /home/user/MyDocs/.images/queen_beecon_dir/
  /home/user/MyDocs/.images/queen_beecon_dir/
-
----
 
-
== Import/Load/Restore Procedure for Beecon Exported Instance Data ==
+
=== Import/Load/Restore Procedure for Beecon Exported Instance Data ===
-
'''[http://talk.maemo.org/showthread.php?p=572028#post572028 See HERE]'''
+
-
----
+
-
== Export/Save/Backup Procedure for Beecon Instance Data ==
+
[http://talk.maemo.org/showthread.php?p=572028#post572028 See HERE]
-
'''[http://talk.maemo.org/showthread.php?p=613152#post613152 See HERE]'''
+
-
----
+
-
== Copy Exported Instance Data from Browser to Phone's Clipboard ==
+
=== Export/Save/Backup Procedure for Beecon Instance Data ===
-
'''[http://talk.maemo.org/showthread.php?p=575685&post575685 See HERE]'''
+
-
----
+
-
== Reset QBW to Default Configuration/Commands ==
+
[http://talk.maemo.org/showthread.php?p=613152#post613152 See HERE]
-
* Open up [[terminal|X-Terminal]] (or SSH/Putty into N900) and issue the following command
+
 
 +
=== Copy Exported Instance Data from Browser to Phone's Clipboard ===
 +
 
 +
[http://talk.maemo.org/showthread.php?p=575685&post575685 See HERE]
 +
 
 +
=== Reset QBW to Default Configuration/Commands ===
 +
 
 +
Open up [[terminal|X Terminal]] (or SSH/Putty into N900) and issue the following command:
  sudo gainroot (only if you are not already root)
  sudo gainroot (only if you are not already root)
  rm /home/user/.queen_beecon
  rm /home/user/.queen_beecon
  killall hildon-home
  killall hildon-home
-
----
 
-
== Completely remove QBW from your N900 ==
+
=== Completely remove QBW from your N900 ===
-
* Open up [[terminal|X-Terminal]] (or SSH/Putty into N900) and issue the following command
+
 
-
  sudo gainroot ''(only if you are not already root)''
+
Open up [[terminal|X-Terminal]] (or SSH/Putty into N900) and issue the following command
 +
  sudo gainroot
 +
(only if you are not already root)
  dpkg -P queen-beecon
  dpkg -P queen-beecon
  rm /home/user/.queen_beecon
  rm /home/user/.queen_beecon
  rm -r /home/user/.queen_beecon_dir
  rm -r /home/user/.queen_beecon_dir
  rm -r /home/user/MyDocs/.images/queen_beecon_dir/
  rm -r /home/user/MyDocs/.images/queen_beecon_dir/
-
----
 
-
== Run every Desktop Application with different Icons/Sizes buttons ==
+
=== Run every Desktop Application with different Icons/Sizes buttons ===
 +
 
You can run every desktop application with a script like this and just change the image and size of the Beecon to one of your choice:
You can run every desktop application with a script like this and just change the image and size of the Beecon to one of your choice:
-
  dbus-send --type=method_call --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:"'''''<application name here>'''''"
+
  dbus-send --type=method_call --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:"<application name here>"
-
where '''''<application name here>''''' is application name that you can find in '''/usr/share/applications/hildon''' directory w/o trailing '''.desktop'''
+
where <code><application name here></code> is application name that you can find in <code>/usr/share/applications/hildon</code> directory without the trailing <code>.desktop</code>
Example for launching the image viewer:
Example for launching the image viewer:
Line 1,142: Line 850:
  /usr/bin/dbus-send --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:image-viewer
  /usr/bin/dbus-send --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:image-viewer
-
'''[http://talk.maemo.org/showthread.php?p=741381#post741381 See EXAMPLE Here]'''
+
[http://talk.maemo.org/showthread.php?p=741381#post741381 See EXAMPLE Here]
 +
 
 +
=== Run Application in xterm with different Icons/Sizes buttons ===
-
== Run Application in xterm with different Icons/Sizes buttons ==
 
You can run every application in xterm and customize a button on Desktop to launch it.
You can run every application in xterm and customize a button on Desktop to launch it.
-
'''[http://talk.maemo.org/showthread.php?p=741436&post=741436 See THIS post for a Tutorial]
+
[http://talk.maemo.org/showthread.php?p=741436&post=741436 See THIS post for a Tutorial]
-
----
+
-
== Create invisible clickable Hot Spots on your Desktop Background Image to launch Applications or perform Actions ==
+
-
'''[http://talk.maemo.org/showthread.php?p=786923#post786923 See Here]''' and follow-up posts.
+
-
== Relocate/Rotate a QBW widget on a Keyboard slide event ==
+
=== Create invisible clickable Hot Spots on your Desktop Background Image to launch Applications or perform Actions ===
-
'''[http://talk.maemo.org/showthread.php?p=82311#post82311 See Here]''' and follow-up posts.
+
[http://talk.maemo.org/showthread.php?p=786923#post786923 See Here] and follow-up posts.
-
----
+
-
== FAQs ==
+
=== Relocate/Rotate a QBW widget on a Keyboard slide event ===
-
===Could you make an easy way to install new beecons/scripts please?===
+
[http://talk.maemo.org/showthread.php?p=823118#post823118 See Here] and follow-up posts.
-
'''''... perhaps define a standard folder structure inside a compressed file, perhaps some install directions file inside to guide instalation, and use a custom extension; kinda like how Firefox does with XPIs, and add some GUI to install/uninstall them'''''
+
 
 +
=== FAQs ===
 +
 
 +
====Could you make an easy way to install new beecons/scripts please?====
 +
 
 +
... perhaps define a standard folder structure inside a compressed file, perhaps some install directions file inside to guide installation, and use a custom extension; kinda like how Firefox does with XPIs, and add some GUI to install/uninstall them
This is a good question and I still haven't figured out a good answer.
This is a good question and I still haven't figured out a good answer.
Line 1,174: Line 884:
I know there is no proper answer here...
I know there is no proper answer here...
-
----
 
-
= Easter Eggs =
+
== Easter Eggs ==
 +
 
 +
=== Magic Word for bypassing Export/Import Instance Data CheckSum protection ===
-
== Magic Word for bypassing Export/Import Instance Data CheckSum protection ==
 
[[Image:Qbwlsowk.jpg]]
[[Image:Qbwlsowk.jpg]]
-
'''Use the Source ... Luke! ;)''' or ask politely!!!
+
Use the Source ... Luke! ;) or ask politely!
-
----
+
 
 +
== Troubleshooting ==
-
= Troubleshooting =
+
=== Startup ===
-
== Startup ==
+
If you are having issues at widget startup because of improper "Update on Widget/System Startup" settings:
-
If you are having '''issues at widget startup''' because of '''improper "Update on Widget/System Startup"''' settings:
+
-
* Open up [[terminal|X-Terminal]] (or SSH/Putty into N900) and issue the following commands:
+
* Open up [[terminal|X Terminal]] (or SSH/Putty into N900) and issue the following commands:
-
  sudo gainroot ''(only if you are not already root)''
+
  sudo gainroot
 +
(only if you are not already root)
  vi /home/user/.queen_beecon
  vi /home/user/.queen_beecon
-
 
+
* find <code>updOnStartup=true</code> (all instances supposed to be culprits)
-
* find '''updOnStartup=true''' (all instances supposed to be culprits)
+
* Set it to false:
-
 
+
updOnStartup=false
-
* Set it to false ('''updOnStartup=false''')
+
-
 
+
* Save file
* Save file
-
 
* Immediately issue:
* Immediately issue:
  killall hildon-home
  killall hildon-home
-
 
* hildon-home will automatically restart and widgets won't run any more at startup
* hildon-home will automatically restart and widgets won't run any more at startup
-
More generally just open '''''/home/user/.queen_beecon''''' and change the Update Policies of your offending instance as per '''''[[#Update_Policy|THIS section's specifications]]'''''
+
More generally just open <code>/home/user/.queen_beecon</code> and change the Update Policies of your offending instance as per [[#Update Policy|THIS section's specifications]]
-
----
+
-
== Running ==
+
=== Running ===
-
=== QBW Warning! Possible Pango Markup Language inconsistent/unterminated Tag! ===
+
==== QBW Warning! Possible Pango Markup Language inconsistent/unterminated Tag! ====
-
If you are using <u>'''[http://maemo.org/api_refs/5.0/5.0-final/pango/PangoMarkupFormat.html Pango Markup Language''']</u> Tags as output from your scripts, make sure all Tags are correctly written/spelled and terminated. <u
+
 
-
>Make also sure that there is an explicit <newline> at the very end of your output.</u>
+
If you are using [http://maemo.org/api_refs/5.0/5.0-final/pango/PangoMarkupFormat.html Pango Markup Language] tags as output from your scripts, make sure all Tags are correctly written/spelled and terminated. Make also sure that there is an explicit newline at the very end of your output.
If you need to display the following special characters:
If you need to display the following special characters:
-
These '''NEED''' to be escaped:
+
These NEED to be escaped:
-
*The '''less-than character (<)''' starts element markup (the first character of a start-tag or an end-tag). ''Escape'': '''&amp;lt;'''
+
*The less-than character (<) starts element markup (the first character of a start-tag or an end-tag). Escape: <code>&amp;lt;</code>
 +
*The greater-than character (>) ends a start-tag or an end-tag. Escape: <code>&amp;gt;</code>
-
*The '''greater-than character (>)''' ends a start-tag or an end-tag. ''Escape'': '''&amp;gt;'''
+
These MIGHT NEED to be escaped:
-
These '''MIGHT NEED''' to be escaped:
+
*The ampersand character (&) starts entity markup (the first character of a character entity reference). Escape: <code>&amp;amp;</code>
 +
*The double-quote character (") can be symbolised with this character entity reference when you need to embed a double-quote inside a string which is already double-quoted. Escape: <code>&amp;quot;</code>
 +
*The apostrophe or single-quote character (') can be symbolised with this character entity reference when you need to embed a single-quote or apostrophe inside a string which is already single-quoted. Escape: <code>&amp;apos;</code>
-
*The '''ampersand character (&)''' starts entity markup (the first character of a character entity reference). ''Escape'': '''&amp;amp;'''
+
==== Beecon seems to hang when fetching data or accessing the Internet/Network ====
-
*The '''double-quote character (")''' can be symbolised with this character entity reference when you need to embed a double-quote inside a string which is already double-quoted. ''Escape'': '''&amp;quot;'''
+
Please have a look at the thread of [http://talk.maemo.org/showthread.php?p=544591#post544591 Timeout and Proxy related issues].
-
*The '''apostrophe or single-quote character (')''' can be symbolised with this character entity reference when you need to embed a single-quote or apostrophe inside a string which is already single-quoted. ''Escape'': '''&amp;apos;'''
+
You can also have a look at [[#Parameter Substitution at Command.2FScript Runtime|THIS section]] of the WIKI for proxy related information
-
----
+
-
=== Beecon seems to hang when fetching data or accessing the Internet/Network ===
+
=== Advanced Settings and Tools Dialog Box ===
-
Please have a look to '''[http://talk.maemo.org/showthread.php?p=544591#post544591 THIS]''' post for '''Timeout and Proxy related issues'''.
+
-
You can also have a look at '''[[#Parameter_Substitution_at_Command.2FScript_Runtime|THIS section]]''' of the WIKI for proxy related information
+
==== QBW Warning! Expected/Shown Command Output mismatch. Possible charset different from UTF-8! ====
-
----
+
-
 
+
-
== Advanced Settings and Tools Dialog Box ==
+
-
 
+
-
=== QBW Warning! Expected/Shown Command Output mismatch. Possible charset different from UTF-8! ===
+
If you press '''TestDrive''' for a command and the '''Exit Status and Command RAW Output Buffer''' still displays '''''"Exit Status & Command RAW Output will be displayed HERE"''''' then maybe your output contains a charset different from UTF-8.
If you press '''TestDrive''' for a command and the '''Exit Status and Command RAW Output Buffer''' still displays '''''"Exit Status & Command RAW Output will be displayed HERE"''''' then maybe your output contains a charset different from UTF-8.
Line 1,244: Line 946:
[[image:Snap091.jpg|250px]]
[[image:Snap091.jpg|250px]]
-
To have the Command Output properly displayed, try to append "'''| iconv --from-code=ISO-8859-1 --to-code=UTF-8'''".
+
To have the Command Output properly displayed, try to append "<code.| iconv --from-code=ISO-8859-1 --to-code=UTF-8</code>". For example:
-
Ex.
+
 
-
  <code>''' ... command1 | iconv --from-code=ISO-8859-1 --to-code=UTF-8'''</code>
+
  ... command1 | iconv --from-code=ISO-8859-1 --to-code=UTF-8
[[image:Snap090.jpg|250px]]
[[image:Snap090.jpg|250px]]
-
----
 
-
=== WARNING! Bad Checksum! Possibly corrupt Import Instance/Command Data! ===
+
==== WARNING! Bad Checksum! Possibly corrupt Import Instance/Command Data! ====
 +
 
Every exported QBW Instance/Command Data is protected by a checksum value which is stored in the header part of the export.
Every exported QBW Instance/Command Data is protected by a checksum value which is stored in the header part of the export.
Line 1,258: Line 960:
* To preserve integrity of what the author of the QBW created (and supposedly assumed "working")
* To preserve integrity of what the author of the QBW created (and supposedly assumed "working")
* To prevent unwanted changes to the data due to clipboard copy/paste operations
* To prevent unwanted changes to the data due to clipboard copy/paste operations
-
* To ease the QBW exported data import process, and avoid some extra effort in coding import/export routines, by using the <code>'''g_key_file_*'''</code> APIs
+
* To ease the QBW exported data import process, and avoid some extra effort in coding import/export routines, by using the <code>g_key_file_*</code> APIs
Exported data is not "pure" configuration text; it is "meta-text" with some extra '''escape characters''' (Newline, tab, carriage return, backslash, blank which are escaped as \n, \t, \r, \\, \s respectively)
Exported data is not "pure" configuration text; it is "meta-text" with some extra '''escape characters''' (Newline, tab, carriage return, backslash, blank which are escaped as \n, \t, \r, \\, \s respectively)
This is why directly changing the data inside the import/export buffer or in a text editor before importing is strictly discouraged (unless, of course, you know what you are doing and side effects)
This is why directly changing the data inside the import/export buffer or in a text editor before importing is strictly discouraged (unless, of course, you know what you are doing and side effects)
-
----
 
-
 
-
 
-
 
-
= Published Beecons, Scripts & Commands =
 
-
 
-
== Beecons ==
 
-
=== "2 States" ON/OFF Button ===
 
-
[[Image:213ly69.jpg|200px]] [[Image:Au81ut.jpg|200px]]
 
-
 
-
The [http://talk.maemo.org/showthread.php?p=823289#post823289 Beecon] will display a "2 States Button" which is "ON" on widget/system startup and toggles at every press.
 
-
 
-
=== Custom Battery Charge Status ===
 
-
The [http://talk.maemo.org/showthread.php?p=817934#post817934 Beecon] will display a custom battery status widget
 
-
 
-
=== (Study) MLBeecon Reloaded ===
 
-
[[Image:10hvs6s.jpg|200px]] [[Image:6yzfat.jpg|200px]] [[Image:4ih8y1.jpg|200px]]
 
-
 
-
The [http://talk.maemo.org/showthread.php?t=62289 Beecon] will display a multi-tabbed view of MLB Baseball News, Scoreboard and Standings
 
-
 
-
=== Clock Control Panel ===
 
-
[[Image:031730mod.jpg|200px]]
 
-
 
-
Thanks 2 '''[http://talk.maemo.org/member.php?u=33371 Dany-69]'''
 
-
 
-
The [http://talk.maemo.org/showthread.php?p=813385#post813385 Beecons] will increase or decrease the maximum frequency of the processor.
 
-
 
-
=== Overclock Control Panel I ===
 
-
[[Image:Occtrlpnl.jpg|200px]]
 
-
 
-
Thanks 2 '''[http://talk.maemo.org/member.php?u=37761 techie]'''
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=761215#post761215 Beecon]''' will provide following features:
 
-
 
-
* Widget to display temperature and also perform smart overclocking i.e set max cpu clock according to how hot/cool the device is (runs at specified intervals).
 
-
* A stock widget to revert to default kernel, disables smart overclocking.
 
-
* A widget to set max clock to 950, disables smart overclocking, useful as a power boost when I like want to watch a video without any stuttering, and can do without the temperature widget clocking it down in case it gets hot.
 
-
* A widget to display the current maximum cpu frequency.
 
-
* And yeah also, locking the device changes the limits to 250 500, unlocking enables the temperature widget so it clocks according to temperature again.
 
-
 
-
=== Switch MicroB browser User Agent strings ===
 
-
[[Image:345be2q.jpg|200px]]
 
-
 
-
Thanks 2 '''[http://talk.maemo.org/member.php?u=40874 sacal]'''
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=752252#post752252 Beecons]''' will switch between 3 or 4 MicroB browser User Agent strings
 
-
 
-
=== Bright Display when On Charge, Dim when On Battery ===
 
-
The '''[http://talk.maemo.org/showthread.php?p=746195#post746195 Beecons]''' with dbus monitoring will manage to bring backlight to max when connected to power supply, and dim it back when disconected
 
-
 
-
=== Poker Dice ===
 
-
[[Image:Snap191.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=745422#post745422 Beecon]''' will let you play a funny Poker Dice Game
 
-
 
-
=== On Desktop Dialer Widget ===
 
-
[[Image:Qbwdfing.gif|100px]] [[Image:Snap190.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?t=58049 Beecon]''' will let you dial phone numbers straight from you desktop
 
-
 
-
=== O'clocker CPU Frequency Monitor ===
 
-
[[Image:Qbwcpuf.gif|200px]] [[Image:Qbwfreq1.png|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=673080&postcount=4017 Beecon]''' will display different frequencies in graphic format based upon '''/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq''' file
 
-
 
-
=== Random images from Flickr's 'Most Interesting' pages ===
 
-
[[Image:Qbwrif0.jpg|200px]] [[Image:Qbwrif1.jpg|200px]] [[Image:Qbwrif2.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?t=53324 Beecon]''' will display random photos/images from http://m.flickr.com. Change update policies as per your taste.
 
-
 
-
=== N900 Overclocking (Thanks [http://talk.maemo.org/member.php?u=23878 Jakiman] and all contributors) ===
 
-
[[Image:Qbwn900oc.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=595582#post595582 Guide]''' will give you a thorough insight of the N900 overclocking methods with plenty of instructions and tutorials. QBW will provide a GUI Button for switching OC Frequencies
 
-
 
-
=== Random Images/Photos Slideshow (4x3 and 16x9 frames) ===
 
-
[[Image:Qbwrips1.jpg|200px]] [[Image:Qbwrips2.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=630492#post630492 Beecon]''' will display random photos/images from a specified directory. Both 4x3 and 16x9 aspect ratios white frames are provided. Change update policies as per your taste.
 
-
 
-
=== N900 Mini Monitor (Extras Admission Celebration Edition)!!! ===
 
-
[[Image:Qbwnmmeace.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=629644#post629644 Beecon]''' will show System Information relevant to Battery, CPU and Load, Uptime, Network/Internet, WIFI and File Systems.
 
-
 
-
=== Zodiac Personal Horoscope  (Italian + Bonus Read [http://talk.maemo.org/showthread.php?p=626316#post626316 Talk]) ===
 
-
[[Image:Qbwzph.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=626316#post626316 Beecon]''' will show your horoscope for the day. It will be personalized with the image/icon of the sign you specify.
 
-
 
-
=== Lunar Phases ===
 
-
[[Image:Qbwlf.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=625611#post625611 Beecon]''' will show the current phase of the moon.
 
-
 
-
=== Ebay Item Watcher ===
 
-
[[Image:Qbwebay.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=620123#post620123 Beecon]''' will watch an item that you specify and will provide a small Photo, Item Number, Current Bid or Buy It Now Price, Time Left for bidding, Bid Count, High Bidder and Quantity.
 
-
 
-
=== Internet Traffic Report Live Graphs ===
 
-
[[Image:Qbwitr1.jpg|200px]] [[Image:Qbwitr2.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=619178#post619178 Beecons]''' will fetch some Graphs from the [http://www.internettrafficreport.com Internet Traffic Report] website. The Internet Traffic Report monitors the flow of data around the world. It then displays a value between zero and 100. Higher values indicate faster and more reliable connections. See [http://www.internettrafficreport.com/faq.htm ITR FAQs] to learn more.
 
-
 
-
=== Today Schedules for TVRage.com Favourites TV Serials ===
 
-
[[Image:Qbwststvr.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=616496#post616496 Beecon]''' will also provide a small miniature if your most favourite Show is aired on the day.
 
-
 
-
=== N900 Hard Sleep Mode ===
 
-
[[Image:Qbwn900hsm.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=610074#post610074 Beecon]''' will put the N900 into Hard Sleep Mode. When pressed, it'll perform the following actions: Set WIFI OFF, Change phone network mode to GSM, Shutdown all network connections, Blank the screen, Lock device
 
-
 
-
=== European Soccer Leagues Live Results and Next Matches Beecon ===
 
-
[[Image:Qbwesllrnm.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=571270#post571270 Beecon]''' will also be able to highlight the match of your favourite Team and display a Green ball if it is winning, Yellow ball if match is tied, Red ball if team is losing, White ball if match is still not currently being played.
 
-
 
-
=== World Cup 2010 South Africa - Live Results, News and Next Matches ===
 
-
[[Image:Qbwwc2010sa.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=612646#post612646 Beecon]''' will also provide the most recent WC2010 news and will be able to highlight the match of your favourite Team and display, behind mascot, a Green ball if it is winning, Yellow ball if match is tied, Red ball if team is losing, White ball if match is still not currently being played.
 
-
 
-
=== Naive Dice Roller ===
 
-
[[Image:Qbwndr.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=576408#post576408 Beecon]''' will show a dice that you'll be able to roll by clicking on it.
 
-
 
-
=== World Day & Night Zones ===
 
-
[[Image:Qbwwdanz.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=576390#post576390 Beecon]''' will display a map of the '''world''' and current position of the '''Sun''', indicating which parts of the Earth are in '''day''' and which are in '''night'''.
 
-
 
-
=== European Accuweather Meteo ===
 
-
[[Image:Qbwamb.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=573590#post573590 Beecon]''' will display the meteo graphs provided by Accuweather.com for Western Europe
 
-
 
-
=== MRTG The Multi Router Traffic Grapher ===
 
-
[[Image:Qbwmrtg.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=573426#post573426 Beecon]''' will display the graphs provided by the uber-famous MRTG - The Multi Router Traffic Grapher
 
-
 
-
=== GMail: New Mail Notifier Beecon ===
 
-
[[Image:Qbwgmn.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=572068#post572068 Beecon]''' will display an empty mailbox icon or a yellow full mailbox icon and the number of new unread messages of the specified GMail account
 
-
 
-
=== Italian Ringroads (Tangenziali) Live Traffic Beecon ===
 
-
[[Image:Qbwmrltb.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=569345#post569345 Beecon]''' is configured to display Live Traffic graphic status of Milan Ringroads System. Other major cities in Italy are also available: ROME, TURIN, FLORENCE, NAPLES, BOLOGNA!
 
-
 
-
=== MLB Major League Baseball Matches of the Day (+tutorial/walkthrough) ===
 
-
[[Image:Qbwmlbmotd.jpg|200px]]
 
-
 
-
The '''[http://talk.maemo.org/showthread.php?p=563906#post563906 Beecon]''' will display near Real Time MLB Major League Baseball Matches results. The Widget is also capable of showing different icons/images/emoticons according to the result of a Favourite Team.
 
-
 
-
Thanks 2 '''[http://talk.maemo.org/member.php?u=39735 gkuenning]''' for [http://talk.maemo.org/showthread.php?p=670734&postcount=152 alternative script]
 
-
 
-
== Scripts & Commands ==
 
-
 
-
'''[[Desktop Command Execution Widget scripts]]''' <u>'''''Warning:'''''</u> This are scripts for Desktop Command Execution Widget; QBW has extended functionalities so it might be needed to tweak scripts or commands a little bit for both cosmetic and functional improvements.
 
-
----
 
-
 
-
== Useful References ==
 
-
'''[[DbusScripts]]''' is a daemon that can execute a command when various actions occurs on DBus
+
== Published Beecons, Scripts & Commands ==
-
'''[[Phone_control]]''' D-Bus commands can be run from terminal or as shell scripts. Useful for scheduling events with fcron, executing commands, , startup events, install scripts, etc.
+
{{main|Queen BeeCon Widget/BeeCons, scripts and commands}}
-
----
+

Latest revision as of 09:57, 11 October 2021

logo

Queen BeeCon Widget (See Talk Thread) is a highly customizable and flexible widget-based multi-instance monitoring, alerting and interactive tool for Maemo 5 (Fremantle) and the N900. In 8 words ... A Super Powerful and Customizable Widget Generation Engine

The Widget is based on the execution of external Shell/OS Commands which can be either as simple as one-liner statements or as complex as articulated shell scripts, which, for example, fetch, parse and aggregate contents retreived from the system, other applications or the Internet.

There are two basic Widget types, Beecons and Snippets:

Beecons are small hexagonal cells whose background color or associated image/icon changes according to the executed Command Exit Status.

Beecons can handle virtually unlimited Command Exit Status:

  • <0 Normally notifying system errors in esecuting the script/command
  • 0 Returned when script/command successfully completes
  • 1 Used to report a warning condition
  • 2 If script/command needs to notify some application error conditions
  • <=126 Other exit status which can be handled for displaying user defined icons/images

Snippets are normal text/graphic boxes with fixed background color and images which is not influenced by the executed Command Exit Status.

Contents

[edit] Current Status in Maemo Repositories

v1.3.3(18/1/2011) extras-devel / v1.3.3(02/09/2011) extras-testing / v1.3.3(07/10/2011) EXTRAs

[edit] Features List

  • Widget can be multi-instantiated, disabled and minimized on desktop (click on minimized icon on desktop will wakeup and maximize instance)
  • Possibility to define multiple commands and command labels to be displayed inside the Widget
  • Different types of Widget layouts and behaviours (currently Beecons and Snippets)
  • Possibility to sense Phone Orientation and execute scripts accordingly
  • Possibility to sense GPS/Location information/FIX from the phone and execute scripts accordingly
  • Possibility to hide the background Canvas both for Beecons and Snippets
  • Possibility to use icons or images instead of text, both for Beecons/Snippets command title' and output (with highly versatile positioning, zooming/scaling 5%-200%-FitToWidget)
  • Possibility to use custom progress animations for each instance of the widget (with up to 30 frames, configurable frame period in msec and highly versatile positioning
  • It is possible to independently show or hide both snippet's images/texts and beecon images/texts. This way you can have two images and two text placeholders on widget, for more flexibility in graphic layout
  • Independent images/icons for Command Exit Statuses can also been specified. Useful, for example, for displaying different icons according to percentages values returned by command.
  • Widget can be clicked on 9 different Hot Spots with a 3x3 grid layout or at specific position with ability to forward the click position to the script
  • Multi Click support on widget
  • Nice "button-press"-like visual feedback using Gradient fill
  • Widget relies also on private general purpose directories "~/.queen_beecon_dir/" and "..../MyDocs/.images/queen_beecon_dir/" as images/icons immediate storage. For easier population via USB of BLUETOOTH File Services.
  • Widget texts can be formatted through Pango Markup Language
  • Widget Size can be customized (Width: 10-800, Height: 10-420 with pixel precision) and position can be fine tuned (X,Y +/- 5pix); Tweaking "/usr/share/hildon-desktop/transitions.ini" may also help. (snap_grid_size = 1 & snap_to_grid_while_move = 1)
  • Background color for Beecons can be customized for each 4 Command Exit Statuses (with graphical preview)
  • Background color for Snippets can be customized (with graphical preview)
  • Font Color of both command label and results can be configured (with graphical preview)
  • Position and visibility of both command label and results can be configured (Hidden, Top L, Top C, Top R, Center L, Center, Center R, Bottom L, Bottom C, Bottom R) Also, rotation of lables can be changed (0, 90, 180, 270 degrees)
  • Font Face, Style and Size of both command label and results can be configured with preview
  • Text Justification of both command label and results can be configured (Left, Center, Right, Fill)
  • Text Wrapping of results can be enabled
  • Command execution can be triggered optionally on widget startup, by manual pressing on Widget, by desktop switching, by periodic updates (0=Manual, 30 s, 1 m, 5 m, 30 m, 1 h, 6 h, 12 h, 1 d, Custom Seconds Interval), by specific DBUS Events on System or Session Bus.which can be filtered through custom rules, by orientation changes, by GPS
  • Command execution can be subject to network connection status and widget visibility on current desktop
  • Tool includes a powerful Advanced Maintenance Dialog Box for command development and testing (TestDrive mode to display raw output of predefined or user-defined commands)
  • A wide set of Parameter Substitution Variables can be passed to executed scripts; variables include: Instance ID, Pressed Hot Spot, Visibility of Widget, Execution Triggering Event, content of Output text, verbose DBUS messages, persistent information stored in widget specific parameter, Proxy related information
  • Advanced Maintenance Dialog Box includes extended functionalities like:
    • instance export/import with checksum
    • command export/import with checksum
    • command update with current Test Drive buffer
    • clipboard operations
    • export/import to/from files for instance data and commands.
  • A set of basic Images/Icons for Snippets and Beecon Statuses is included inside the distribution package and installed inside canonical hildon hicolor 48x48 directory
  • Inter Process Communication mechanism among QBW instances and with other Applications has been implemented through DBUS methods and signals handling
  • It is integrated into the N900 system backup/restore features according to standard specifications as better described in the SDK documentation
  • Powerful Application Logging Subsystem
  • For Web and Proxy related information and issues please have a look at the parameter substitution documentation and THIS post.

[edit] Donate

Queen BeeCon Widget is free software, but if you feel like donating for supporting further developments or just to let me know that you like it, you can donate via Paypal

[edit] Icons in Package

[edit] Settings and Tools

[edit] Standard Settings and Configuration File

Global and per-instance QBW parameters are stored in this file:

/home/user/.queen_beecon

[edit] Configuration Parameters, Types & Reference

These are the parameters and settings which can be changed for each QBW instance. They are stored independently, for each Instance, inside the configuration file.

Their reference is also useful for Interaction with QBW over DBUS and in particular for parameters amendments/fetching methods:

[edit] Widget Type, Visibility, Status and Associated Command

Ref #ReleaseParameterTypePossible ValuesDescription
10.0.1widgetTypeint320=Beecon|1=SnippetSpecify the type of the instantiated widget
20.1.7widgetVisibleint320=Hidden|1=VisibleSpecify if widget components should be visible or not
30.1.4operationalStatusint320=Enabled|1=DisabledIf disabled, the widget will not be subject to update policies and will be iconified on desktop, a subsequent tap on it will revert its status to Enabled
40.0.1instanceTitlestring-Holds the title of the command/script to be executed. If this field is blank, it means that command is still present in the widget instance but not present any more in the list of possible commands. Can still be adited via "Edit Cmd" button and added again to the list.

[edit] Widget Size & Position Tuning

Ref #ReleaseParameterTypePossible ValuesDescription
10.0.1widWidthdouble-This is the Width of the widget
20.0.1widHeightdouble-This is the Height of the widget
31.3---This is the X coordinate of the widget, can be dynamically changed
41.3---This is the Y coordinate of the widget, can be dynamically changed
[edit] Status Background Colors & Images

Ref #ReleaseParameterTypePossible ValuesDescription
10.1.0hideCanvasbooleantrue|falseIf set to true, the geometric canvas of the widget will not be shown
21.0.4hideClickCanvasbooleantrue|falseIf set to true, the geometric canvas of the widget will not be shown on click
30.1.9.1snippetExtBgRGBstring#<rrrr><gggg><bbbb>Background color of Snippets
0.1.0snippetBgRGBint32-Obsoleted as of release >=0.1.9.1
[edit] Beecon Statuses: Images, Scale, Background Color

Ref #ReleaseParameterTypePossible ValuesDescription
10.1.0beecon_lt0_ImgFilenamestring-Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status less than zero
20.1.4beecon_lt0_ImgZoomint320=1:1
1=Fit to widget dimensions
2=5%
3=10%
4=15%
... till 200%
This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
30.1.9.1beecon_lt0_ExtBgRGBstring#<rrrr><gggg><bbbb>Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status less than zero
40.1.0beecon_eq0_ImgFilenamestring-Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to zero
50.1.4beecon_eq0_ImgZoomint320=1:1
1=Fit to widget dimensions
2=5%
3=10%
4=15%
... till 200%
This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
60.1.9.1beecon_eq0_ExtBgRGBstring#<rrrr><gggg><bbbb>Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to zero
70.1.0beecon_eq1_ImgFilenamestring-Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to 1
80.1.4beecon_eq1_ImgZoomint320=1:1
1=Fit to widget dimensions
2=5%
3=10%
4=15%
... till 200%
This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
90.1.9.1beecon_eq1_ExtBgRGBstring#<rrrr><gggg><bbbb>Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to 1
100.1.0beecon_ge2_ImgFilenamestring-Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to 2
110.1.4beecon_ge2_ImgZoomint320=1:1
1=Fit to widget dimensions
2=5%
3=10%
4=15%
... till 200%
This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
120.1.9.1beecon_ge2_ExtBgRGBstring#<rrrr><gggg><bbbb>Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to 2
130.1.0beecon_idxge2_ImgFilenamestring-Applies to Beecons; it's the basename of the image to be displayed if script/command returns an Exit Status greater than or equal to 3; Final image filename will be built as <basename>.png.<exit code> (Ex.dice.png.3, dice.png.4 ...)
140.1.4beecon_idxge2_ImgZoomint320=1:1
1=Fit to widget dimensions
2=5%
3=10%
4=15%
... till 200%
This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
150.1.9.1beecon_idxge2_ExtBgRGBstring#<rrrr><gggg><bbbb>Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status is greater than or equal to 3
0.1.0beecon_lt0_BgRGBint32-Obsoleted as of release >=0.1.9.1
0.1.0beecon_eq0_BgRGBint32-Obsoleted as of release >=0.1.9.1
0.1.0beecon_eq1_BgRGBint32-Obsoleted as of release >=0.1.9.1
0.1.0beecon_ge2_BgRGBint32-Obsoleted as of release >=0.1.9.1
0.1.0beecon_idxge2_BgRGBint32-Obsoleted as of release >=0.1.9.1
[edit] Command Title Settings

Ref #ReleaseParameterTypePossible ValuesDescription
10.1.0cmdImgFilenamestring-Applies both to Beecons and to Snippets; it's the filename of the image to be displayed as complementary to the Command Title label. Can be used to provide a customized image-based background to the widget.
21.0.3cmdImgAngleuint320=0 Degrees
1=90 Degrees
2=180 Degrees
3=270 Degrees
It's the rotation of the Image associated to the Command Title (0, 90, 180, 270 degrees)
30.1.4cmdImgZoomint320=1:1
1=Fit to widget dimensions
2=5%
3=10%
4=15%
... till 200%
This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
40.1.3cmdImgVisibilityPositionint320=Hidden
1=Top Left
2=Top Center
3=Top Right
4=Center Left
5=Center
6=Center Right
7=Bottom Left
8=Bottom Center
9=Bottom Right
Sets the Visibility and Position of the image associated to Command Title (Both for Snippets and for Beecons)
50.1.9cmdExtFontstring[<family>] [italic] [bold] [<size>]Font string specification for Command label (Ex. Nokia Sans Italic Bold 12)
60.1.9.1cmdExtFgRGBstring#<rrrr><gggg><bbbb>It's the Foreground color to be used with Command Title label
70.1.3cmdVisibilityPositionint320=Hidden
1=Top Left
2=Top Center
3=Top Right
4=Center Left
5=Center
6=Center Right
7=Bottom Left
8=Bottom Center
9=Bottom Right
Sets the Visibility and Position of the Command Title label
80.1.9.1cmdTextAngleuint320=0 Degrees
1=90 Degrees
2=180 Degrees
3=270 Degrees
It's the rotation of the Command Title Label (0, 90, 180, 270 degrees)
90.1.0cmdJustifyint320=Left
1=Right
2=Center
3=Fill
It's the justification to be used with Command Title label
0.1.0cmdFgRGBint32-Obsoleted as of release >=0.1.9.1
0.1.0cmdFontNameint32-Obsoleted as of release >=0.1.9
0.1.0cmdFontSizedouble-Obsoleted as of release >=0.1.9
[edit] Command Results Settings

Ref #ReleaseParameterTypePossible ValuesDescription
10.1.0resImgFilenamestring-Applies both to Snippets; it's the filename of the image to be displayed as complementary to the Command Results label.
21.0.3resImgAngleuint320=0 Degrees
1=90 Degrees
2=180 Degrees
3=270 Degrees
It's the rotation of the Image associated to the Command Results (0, 90, 180, 270 degrees)
30.1.4resImgZoomint320=1:1
1=Fit to widget dimensions
2=5%
3=10%
4=15%
... till 200%
This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
40.1.3resImgVisibilityPositionint320=Hidden
1=Top Left
2=Top Center
3=Top Right
4=Center Left
5=Center
6=Center Right
7=Bottom Left
8=Bottom Center
9=Bottom Right
Sets the Visibility and Position of the image associated to Command Results (For Snippets)
50.1.9resExtFontstring[<family>] [italic] [bold] [<size>]Font string specification for Results label (Ex. Nokia Sans Italic Bold 12)
60.1.9.1resExtFgRGBstring#<rrrr><gggg><bbbb>It's the Foreground color to be used with Command Results label
70.1.3resVisibilityPositionint320=Hidden
1=Top Left
2=Top Center
3=Top Right
4=Center Left
5=Center
6=Center Right
7=Bottom Left
8=Bottom Center
9=Bottom Right
Sets the Visibility and Position of the Command Results label
80.1.9.1resTextAngleuint320=0 Degrees
1=90 Degrees
2=180 Degrees
3=270 Degrees
It's the rotation of the Command Results Label (0, 90, 180, 270 degrees)
90.1.0resJustifyint320=Left
1=Right
2=Center
3=Fill
It's the justification to be used with Command Results label
101.3resWrapLongLinesbooleanfalse=disabled
true=enabled
Enables the text wrapping on long lines with Command Results label
0.1.0resFgRGBint32-Obsoleted as of release >=0.1.9.1
0.1.0resFontNameint32-Obsoleted as of release >=0.1.9.1
0.1.0resFontSizedouble-Obsoleted as of release >=0.1.9.1
[edit] Progress Animation

Ref #ReleaseParameterTypePossible ValuesDescription
10.1.9.8progressAnimationFramesuint32[0-30]Holds the number of frames to display for the animation; 0 if animations should be hidden MAX 30
20.1.9.8progressAnimationTimeruint32[0-20]Holds the number of milliseconds/50 to wait before drawing next frame (<=4secs)
30.1.9.8progressAnimationPosuint320=Top Left
1=Top Center
2=Top Right
3=Center Left
4=Center
5=Center Right
6=Bottom Left
7=Bottom Center
8=Bottom Right
9=Top Left & Hide Widget
10=Top Center & Hide Widget
11=Top Right & Hide Widget
12=Center Left & Hide Widget
13=Center & Hide Widget
14=Center Right & Hide Widget
15=Bottom Left & Hide Widget
16=Bottom Center & Hide Widget
17=Bottom Right & Hide Widget
Holds the default position index of the animation in the widget and/or hide the widget itself during progress animation
41.0.4progressAnimationAtClickXYbooleantrue|falseIf checked, progress animation is displayed at X,Y position where widget is clicked.
50.1.9.8progressAnimationBasenamestring-Holds the basename of the files to load as frames from the relevant directory. Final frame filename will be built as <basename><frame number>.png
[edit] Update Policy

Ref #ReleaseParameterTypePossible ValuesDescription
10.1.0updOnStartupbooleantrue|falseUpdate policy which defines if widget must be updated on system Startup or on widget Wakeup
20.0.1updOnDesktopbooleantrue|falseUpdate policy which defines if widget must be updated when desktop, on which the widget resides, gets displayed either by being dragged or after resume from standby.
30.1.9.9updOnSightuint32true|falseIf set to true, widget content is only updated if on current desktop and visible (if screen locked no update will take place)
40.0.1updOnClickbooleantrue|falseUpdate policy which defines if widget must be updated when it is clicked
51.2.10multiClickbooleantrue|falseEnable/Disable support for multi click on widget (quicker click response if disabled)
61.3updOnOrientationbooleantrue|falseEnable/Disable support for Phone Orientation
70.0.1delayIndexuint320=Timer Disabled
1=30 Secs
2=1 Min
3=5 Mins
4=30 Mins
5=1 Hour
6=6 Hours
7=12 Hours
8=1 Day
9=Custom (")
Sets and index of values to use as intervals/periods for command/scripts executions
80.1.9.2customIntervalSecsuint32<seconds>Sets the number of seconds to use for Custom Update Intervals
90.0.1updNeworkPolicyuint320=Irrelevant
1=When Connected
2=When Disconnected
3=PassThrough (>= v1.0.6)
Update policy which defines if widget update must be Network dependent and what network condition must trigger the update
101.3GPSsettingsuint32(GPSsettings >> 8) 0=GPS Disabled, 1=GPS Enabled

(GPSsettings >> 4 & 0xF) 0=USER_SELECTED, 1=CWP, 2=ACWP, 3=GNSS, 4=AGNSS

(GPSsettings & 0xF) 0=DEFAULT, 1=1sec, 2=2sec, 3=5sec, 4=10sec, 5=20sec, 6=30sec, 7=60sec, 8=120sec
See the location API reference
[edit] DBUS Event Monitoring

Ref #ReleaseParameterTypePossible ValuesDescription
10.1.9.4updOnDBUSuint320=Disabled|1=EnabledEnables DBUS Event Monitor and Update policy which defines if widget must be updated by any DBUS Event
20.1.9.4updOnDBUSBusuint320=SYSTEM|1=SESSIONSets which DBUS bus to monitor (System/Session)
30.1.9.4updOnDBUSMatchRulestringSee SpecificationsSpecifies the rule to be matched in order for command/script to be executed (Ex.type='signal',path='/com/nokia/mce/signal',interface='com.nokia.mce.signal',member='tklock_mode_ind')
[edit] Remember Me Value

Ref #ReleaseParameterTypePossible ValuesDescription
10.1.9.6rememberMestring-Holds status or persistency information across subsequent command executions.
- Can be fetched/changed via DBUS method call set/get_param_string string:"rememberMe" string:<remember_this_string>
- Can be transferred to command/scrips execution via $QBW_REMEMBER_ME Parameter Substitution
- As of release >=1.0.5 Can be also be affected by executed command output. Just echo the following string (which will not be displayed) as output of your command QBW_REMEMBER_ME(<content to be remembered>) no angle brackets; escape "close round bracket" like this "\)" to store it as ")"
See examples HERE
[edit] Not Present in Settings Dialog Box
Ref #ReleaseParameterTypePossible ValuesDescription
0.0.1instanceCmdstring-Holds the command/script to be executed

[edit] Advanced Settings and Tools

Dialog can be reached via QBW Settings:

image:169rlh2.png

image:29q0575.png

[edit] Section A: (Command TestDrive)

  1. This button opens up the About dialog box
  2. This selector allows to dynamically change the QBW Logging Subsystem Verbosity
  3. This is the list of Stored Commands that you can Test Drive; upon entering the dialog box, [3] & [8] are initialized with current Instance command.
  4. Use this button to Test Drive the command currently typed in [6]
  5. This button will update current instance command with the content of [8] (use it when command is working and thoroughly tested)
  6. Will copy to clipboard the command currently in [8]
  7. Will paste the clipboard into [8]
  8. Read-Write text field; this is the "command input buffer", it is used as extended Test Drive tool for troubleshooting commands with issues
  9. Read-Only text field; will display the Exit Status & Raw Output of the command in [8] executed by pressing button [4]

[edit] Section B: (Commands/Beecons Import/Export processing)

  1. Button will export the command currently in [A8]. Result of the export will be stored into [9] text buffer
  2. Button will import the command currently in [9].
  3. Will paste the clipboard into [9]
  4. Will copy to clipboard the [9] text buffer
  5. Will read from a file into [9]
  6. Will write to a file the [9] text buffer
  7. Button will import the Beecon/Snippet Instance Data currently in []; useful for restoring Beecons of for importing Beecons created by others.
  8. Button will export the Beecon/Snippet Instance Data for the current instance. Result of the export will be stored into [9] text buffer; useful for backup of Beecons of for exporting Beecons to others.
  9. Read-Write text field; used for temporarily processing export/import of commands and Beecon/Snippet Instance Data

[edit] Parameter Substitution at Command/Script Runtime

QBW can provide a set of specific parameters to the executing script/command. The script will have to identify the placeholders for this extra parameters as better specified in the following table:

ReleasePlaceholderSubstitutedDescription
0.1.9.1$QBW_ID<QBW Instance ID>Retreives the QBW Instance ID and substitutes it into the run script
0.1.9.6$QBW_HOTSPOT_PRESS<Hot Spot Press/Click Position Index>
Retreives the POSITION INDEX where the widget was pressed/clicked and substitutes it into the run script
0 = Not Pressed (Other update policy)
1 = Top Left
2 = Top Center
3 = Top Right
4 = Center Left
5 = Center
6 = Center Right
7 = Bottom Left
8 = Bottom Center
9 = Bottom Right
1.0.3$QBW_CLICKS_COUNT<Number>Holds the number of times a QBW was pressed/clicked and substitutes it into the run script; useful for handling single/double/triple... clicks and behave accordingly (Tested up to 12 ... :) )
1.0.4$QBW_IS_FINGER_TAPtrue|falseHolds the type of click issued on the Touch Screen
true=Touch Screen was tapped with a finger
false=Touch Screen was clicked with stylus
1.0.3$QBW_CLICK_X
$QBW_CLICK_Y
<X Coordinate>
<Y Coordinate>
Hold exact X and Y coordinates respectively where a QBW was pressed/clicked (Useful for handling different arbitrary/dynamic hotspots on widgets via launched shell scripts; virtually unlimited as handling is left to launched script/program)
Ex.
x=$QBW_CLICK_X;
y=$QBW_CLICK_Y;
if [ $x -ge 100 -a $x -le 200 -a $y -ge 100 -a $y -le 200 ];
then echo "HOT SPOT HIT";
else echo "HOT SPOT NOT HIT";
fi;

will echo "HOT SPOT HIT" if widget is clicked in rectangle delimited by p1(x=100,y=100) and p2(x=200,y=200) or "HOT SPOT NOT HIT" otherwise
1.0.53$QBW_WIDTH<Number>Holds the current Width of QBW widget; useful for dynamic recalculation of click hotspots
1.0.53$QBW_HEIGHT<Number>Holds the current Height of QBW widget; useful for dynamic recalculation of click hotspots
1.3$QBW_POSITION_X
$QBW_POSITION_Y
<X Coordinate>
<Y Coordinate>
Hold the current X,Y Position of QBW widget
1.3$QBW_ORIENTATION_MODE<mode>Holds the current Orientation Mode of QBW widget = landscape, portrait, unknown, landscape (inverted), portrait (inverted)
1.3$QBW_ORIENTATION_STAND<stand>Holds the current Orientation Stand of QBW widget = off_stand, on_stand
1.3$QBW_ORIENTATION_FACE<face>Holds the current Orientation Face of QBW widget = face_up, face_down
1.3$QBW_ORIENTATION_X<X axis value>Holds the current Orientation X axis of QBW widget = -1<->+1
1.3$QBW_ORIENTATION_Y<Y axis value>Holds the current Orientation Y axis of QBW widget = -1<->+1
1.3$QBW_ORIENTATION_Z<Z axis value>Holds the current Orientation Z axis of QBW widget = -1<->+1
1.3$QBW_LOCATION_FIX<string>Holds the current GPS Position FIX in colon separated string form: status : time : ept : latitude : longitude : eph : altitude : epv : track : epd : speed : eps : climb : epc : gsm_cell_info.mcc : wcdma_cell_info.mcc : satellites_in_view : satellites_in_use
If information is not available then nan is shown.
See HERE for reference.
Ex. 1 : 1288031860 : 0 : 45,999999 : 9,999999 : 4026 : 157 : 20 : 210,490 : 359,990 : 0,11 : 4,43 : 0,00 : 0,03 : 0 : 0 : 10 : 5
0.1.9.9$QBW_ON_SIGHTtrue|falsetrue=QBW Instance is "ON SIGHT", that is widget is on current desktop and display is not locked or on stand by.
false=QBW Instance is not on current desktop and visible or display is off or on stand by
1.0.2$QBW_IS_CONNECTEDtrue|falsetrue=QBW Instance is connected to the network (either WLAN or GPRS)
false=QBW Instance is not connected to the network (either WLAN or GPRS)
0.1.9.1$QBW_EXEC_REASONQBW_TIMER_UPDATEScript is run due to a Timer event
0.1.9.1$QBW_EXEC_REASONQBW_STARTUP_UPDATEQBW instance is starting up and script run
0.1.9.1$QBW_EXEC_REASONQBW_SETTINGS_SAVE_RUNSave and Run is pressed in Settings Dialog Box and script run
0.1.9.1$QBW_EXEC_REASONQBW_TEST_DRIVEScript is run via Test Drive advanced dialog box
0.1.9.1$QBW_EXEC_REASONQBW_WAKEUP_CLICKA disabled instance is waken up by a click on icon and script is run
0.1.9.1$QBW_EXEC_REASONQBW_CLICKAn instance is clicked and script is run
0.1.9.1$QBW_EXEC_REASONQBW_DESKTOP_SWITCHThe desktop, on which and instance is displayed, is switched/scrolled and script is run
0.1.9.1$QBW_EXEC_REASONQBW_CONNECTION_EVENTA connection event takes place and script is run
0.1.9.1$QBW_EXEC_REASONQBW_DBUS_SET_PARAM_UPDATEA set_param DBUS method is called and "update content" (script run) is explicitly required
0.1.9.1$QBW_EXEC_REASONQBW_DBUS_WAKEUPA wakeup DBUS method is called and script is run
0.1.9.1$QBW_EXEC_REASONQBW_DBUS_UPDATE_CONTENT"update content" DBUS method is called and script run is explicitly required
0.1.9.1$QBW_EXEC_REASONQBW_DBUS_EXEC"exec" DBUS method is called and external script run is explicitly required
0.1.9.4$QBW_EXEC_REASONQBW_DBUS_MONITORExecution of script was triggered by DBUS Match Rules in DBUS Event Monitoring
1.3$QBW_EXEC_REASONQBW_ORIENTATION_MONITORExecution of script was triggered by phone Orientation Change if enabled in QBW instance configuration
1.3$QBW_EXEC_REASONQBW_LOCATION_MONITOR_FIXExecution of script was triggered by FIX change in GPS Location subsystem if enabled in QBW instance configuration
0.1.9.4$QBW_DBUS_VERBOSE_OUTPUTsignal|method call|method return|error|unknown sender=<sender> -> dest=<destination> path=<path> interface=<interface> member=<member>\n
<type1> <param1>\n
<type2> <param2>\n
<typeX> <paramX>
Extended values returned by DBUS Monitor for Matched Rule. Example:
signal sender=:1.31 -> dest=(null destination) path=/com/example/app/Signal; interface=com.example.app.Signal; member=Test
string "192.168.47.100"
boolean true
1.0.6$QBW_PREVIOUS_EXIT_STATUS<last executed command's Exit Code>Exit status of the last previous executed command
0.1.9.5$QBW_CURRENT_RESULTS_TEXT<current content of results text>Current content of results text even if label is hidden. Useful for holding and processing previous state conditions across command executions
0.1.9.6$QBW_HTTP_PROXY<host>:<port>Returns the current HTTP Proxy as entered into parameters for current active Internet Connection
0.1.9.6$QBW_HTTPS_PROXY<host>:<port>Returns the current HTTPS Proxy as set into parameters for current active Internet Connection
0.1.9.6$QBW_FTP_PROXY<host>:<port>Returns the current FTP Proxy as set into parameters for current active Internet Connection
0.1.9.6$QBW_SOCKS_PROXY<host>:<port>Returns the current SOCKS Proxy as entered into parameters for current active Internet Connection
0.1.9.6$QBW_RTSP_PROXY<host>:<port>Returns the current RTSP Proxy as set into parameters for current active Internet Connection
0.1.9.6$QBW_IGNORE_HOSTS_PROXY<host1>;<host2>;<host...>Returns the current list of host which do not require a proxy as set into parameters for current active Internet Connection
0.1.9.6$QBW_AUTO_CONFIG_PROXY_URL<URL>Returns the current Proxy configuration URL as set into parameters for current active Internet Connection
0.1.9.6$QBW_REMEMBER_ME<string>Holds status or persistency information stored in configuration via Settings Dialog, DBUS method call or Command Output
- Can be fetched/changed via DBUS method call set/get_param_string string:"rememberMe" string:<remember_this_string>
- Can be transferred to command/scrips execution via $QBW_REMEMBER_ME Parameter Substitution
- As of release >=1.0.5 Can be also affected by executed command output. Just echo the following string (which will not be displayed) as output of your command QBW_REMEMBER_ME(<content to be remembered>) no angle brackets; escape "close round bracket" like this "\)" to store it as ")"
See examples HERE

[edit] QBW Instance Timer Logic

The Timer logic for each instance for actions to be run periodically is programmed as follows:

  • The timer of each instance is reset and re-armed every time the widget is Startup (System Boot or QBW release upgrade)
  • The timer of each instance is reset and re-armed every time it is changed in the Settings dialog box and it is different from its previous value
  • If a widget is disabled, either by changing is "Status" in the Settings dialog box or via DBUS method sleep, its timer is disabled
  • If a widget is re-enabled, either by changing is "Status" in the Settings dialog box or via DBUS method wakeup, its timer is reset and re-armed
  • If Settings Parameter delayIndex has been changed via DBUS set_param_uint32 method, the relevant timer must be explicitly reset and rearmed via DBUS methos reset_rearm_timer
  • The timer is reset and re-armed every time a new QBW instance is imported via Advanced dialog box and relevant parameter is set

[edit] System Backup/Restore Integration

As of release >=0.1.8 QBW is integrated into the N900 system backup/restore features according to standard specifications as better described in the SDK Using Backup Application

/etc/osso-backup/applications/queen-beecon.conf file is:

<backup-configuration>
 <locations>
   <location type="file"
             category="settings">$HOME/.queen-beecon</location>
   <location type="dir"
             category="documents">$HOME/MyDocs/.images/queen_beecon_dir</location>
   <location type="dir"
             category="documents">$HOME/.queen_beecon_dir</location>
 </locations>
</backup-configuration>

[edit] Application Logging Subsystem

As of release >=1.0.2, QBW employs a powerful Application Logging subsystem.

Log file is:

~/.queen_beecon_dir/queen_beecon.log

Time in logfile is ISO 8601 encoded string, relative to the Coordinated Universal Time (UTC)

Logging is disabled by default.

[edit] Enabling Logging

Logging can be enabled in different ways:

  • Dynamically via QBW DBUS method call
run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.logger_action string:<vX>
<idX> is the QBW Instance ID of and existing QBW instance (no matter which one as logging is global)
<vX> is the required verbosity (Allowed values are: v0 v1 v2 v3 v4 from minimum verbosity to maximum)
Example:
run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.logger_action string:v4
WARNING! Due to performance reasons, v0 v1 v2 v3 logging verbosity is asynchronous, meaning that the log file will not be instantly updated as soon as a new information is logged.
If you specifically need an up to date log file condition, you need to specifically issue a:
run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.logger_action string:flush
v4 logging verbosity is synchronous by design and logs a lot of information thus causing system slow down side effects at time and ~/.queen_beecon_dir/ directory/file system filling quite quickly. Keep file system space monitored if you need this level of verbosity!
  • Statically via condition file presence
If you need to setup permanent verbosity to a specified level, also to monitor QBW startup, just go to directory:
~/.queen_beecon_dir/
and issue command:
touch queen_beecon.log.<vX>
where <vX> is the required verbosity (Allowed values are: v0 v1 v2 v3 v4 from minimum verbosity to maximum)
Example:
touch queen_beecon.log.v4
Static Logging is activated every time the Phone/Widget is restarted

[edit] Changing Logging Verbosity

Logging verbosity can be dynamically changed by calling the following DBUS method call:

run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.logger_action string:<vX>
<idX> is the QBW Instance ID of an existing QBW instance (no matter which one as logging is global)
<vX> is the required verbosity (Allowed values are: v0 v1 v2 v3 v4 from minimum verbosity to maximum)

[edit] Disabling Logging

Logging can be dynamically disabled by calling the following DBUS method call

run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.logger_action string:disable
<idX> is the QBW Instance ID of an existing QBW instance (no matter which one as logging is global)

[edit] Resetting Log File

Log file can be dynamically reset to empty status by calling the following DBUS method call

run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.logger_action string:reset
<idX> is the QBW Instance ID of an existing QBW instance (no matter which one as logging is global)

[edit] Interaction with QBW over DBUS

[edit] Overview

As of releases newer than 0.1.7, a new Inter Process Communication mechanism among QBW instances and with other Applications has been implemented.

Through the standard DBUS interface, both at the OS-shell and at different programming environments level, QBW instances can be controlled/accessed and mutual interaction can be guaranteed, thus allowing a set of extended functionalities like:

  • Give impulse to other Beecons for content update
  • Give impulse to other Beecons for layout update
  • Give other Beecons one-shot alternative scripts to execute
  • Remotely change QBW settings
  • Retrieve other beecon's last executed commands exit status
  • Provide to non graphical programs and daemons a suitable interface for displaying information on precustomized beecons on screen (for example Dbus Scripts for displaying events on the system/session DBUS like cell IDs changes, available WLANs and the like)

I encourage you to suggest possible enhancements or wishlists in this area and report them in the main TALK thread

[edit] QBW Instance ID

Queen Beecon Widget's Instance Id, needed for every reference in DBUS method calls, can be found at the very top of the Settings dialog box:

[edit] DBUS Specifications

QBW_DBUS_SERVICE ="oh.no.more.qbw"  [Name of D-Bus service]
QBW_DBUS_PATH    ="/oh/no/more/qbw<idX>" [Name of Object Path]
QBW_DBUS_IFACE   ="oh.no.more.qbw"  [Name of D-Bus interface]

[edit] DBUS Methods & Parameters

QBW implements the following list of methods to trigger specific actions:

WARNING!!! Methods' Parameters are case-sensitive

MethodInput ParamsReturnsDescription
logger_actionstring:'disable | v0 | v1 | v2 | v3 | v4 | reset | flush'Performs the following actions on the qbw logger subsystem:

disable Disables logging

v0-4 Sets Logger Verbosity to specified depth level

reset Resets the logfile queen_beecon.log in directory /home/user/.queen_beecon_dir to empty

flush Flushes content of logfile queen_beecon.log
dbus_method_monitorstring:'on | off'Toggle on-screen yellow notification message of incoming DBUS method requests for destination Instance (for debug purposes). Default=OFF
reset_rearm_timerReset and rearm timer for periodically auto-updating QBW, needed to be explicitly called if parameter delayIndex has been changed via DBUS set_param_uint32 method
reset_rearm_connectionReset and rearm the network connection subsystem, needed to be explicitly called if parameter updNeworkPolicy has been changed via DBUS method
reset_rearm_locationReset and rearm the GPS location subsystem, needed to be explicitly called if parameter GPSsettings has been changed via DBUS method
reset_rearm_orientationReset and rearm the Phone Orientation subsystem, needed to be explicitly called if parameter updOnOrientation has been changed via DBUS method
reset_rearm_dbus_monitorReset and rearm the DBUS Monitor subsystem, needed to be explicitly called if parameters updOnDBUS, updOnDBUSBus and updOnDBUSMatchRule have been changed via DBUS method
showGive show impulse to a QBW
hideGive hide impulse to a QBW
wakeupGive wake up impulse to a QBW and update content and layout
sleepGive sleep/disable/minimize impulse to a QBW
update_contentGive impulse to a QBW for content update
update_layoutGive impulse to a QBW for layout update
execstring:'<command|script>'Give other QBWs one-shot alternative scripts/commands to execute and update content accordingly
set_param_stringstring:'<param name>'
string:'<new value>'
string:'' | 'update_content' | 'update_layout'
Change and store QBW settings parameter of type string
set_param_int32string:'<param name>'
int32:'<new value>'
string:'' | 'update_content' | 'update_layout'
Change and store QBW settings parameter of type int
set_param_uint32string:'<param name>'
uint32:'<new value>'
string:'' | 'update_content' | 'update_layout'
Change and store QBW settings parameter of type uint
set_param_doublestring:'<param name>'
double:'<new value>'
string:'' | 'update_content' | 'update_layout'
Change and store QBW settings parameter of type double
set_param_booleanstring:'<param name>'
boolean:'<new value>'
string:'' | 'update_content' | 'update_layout'
Change and store QBW settings parameter of type boolean
get_paramstring:'<param name>'string:'value'Get QBW settings parameter
is_on_sightstring:'value'Get current widget On Sight status
true=QBW Instance is "ON SIGHT", that is widget is on current desktop and display is not locked or on stand by.
false=QBW Instance is not on current desktop and visible or display is off or on stand by
get_current_results_textstring:'value'Get current content of results text
set_positionint32:'<X-coord>'
int32:'<Y-coord>'
Set QBW position on desktop
get_positionint32:'<X-coord>'
int32:'<Y-coord>'
Get QBW position on desktop
get_exit_statusint32:'<ExitStatus>'Retrieve other QBW's last executed commands exit status

[edit] DBUS Signals & Parameters

QBW issues the following list of signals to notify the "world" about predefined conditions and events. They will be emitted on the bus according to the following specifications:

PATH       ="/oh/no/more/qbw<idX>"
INTERFACE  ="oh.no.more.qbw"
MEMBER     ="<signal name>" [Signal column in below list]
PARAMETERS ="<parameter>" [Broadcast column in below list]
SignalBroadcastsDescription
signal_content_updateint32:'<ExitStatus>'Issued when QBW Instance <idX> executes and returns an exit status

[edit] Interacting with QBW from the Shell

This is the template to use for calling the QBW instance methods:

  • For methods which DO return values:
run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.<method> <type1>:"<param1>" <type2>:"<param2>" ... <typeN>:"<paramN>"

WARNING!!! Hildon-home is quite sensitive to long running commands inside Queen Beecon Widget. If you believe that the dbus-send command is going to take much time (say >2/3 secs) it is better if you add the --reply-timeout=<milliseconds> to the dbus-send list of parameters. As of >=0.1.9.3 release, asynchronous execution of commands/scripts obsoletes previous statement.

  • For methods which DO NOT return values:
run-standalone.sh dbus-send --session --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw<idX> oh.no.more.qbw.<method> <type1>:"<param1>" <type2>:"<param2>" ... <typeN>:"<paramN>"

Where:

  • <idX> is the QBW Instance ID
  • <method> is the Method to be called for the specific QBW Instance
  • <typeX> and <paramX> are the parameter type and value as per the specific Method Synopsis

For example:

run-standalone.sh dbus-send --session --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.set_param_string string:"cmdImgFilename" string:"new_image_filename.png" string:"update_layout"

or

run-standalone.sh dbus-send --session --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.dbus_method_monitor string:'on'

or

run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.get_position

[edit] QBW DBUS Events Monitor and Interceptor

[edit] Overview

As of releases newer than 0.1.9.3 QBW is now able to monitor and intercept DBUS events (like signals, methods, errors) issued by the system or other applications. For example:

  • Keyboard lock/unlock
  • Slide open/close
  • Bluetooth connections
  • GSM cells change
  • WIFI networks
  • Battery & Charging status
  • Changes in device orientation
  • Incoming Calls
  • Incoming SMS/IM

These events will then trigger the execution of a script which can be programmed to analyze and parse the intercepted event and perform actions accordingly.

The configuration is performed via the DBUS Event Monitoring section in Settings Dialog Box:

  1. States if DBUS Monitoring is enabled or disabled for this QBW
  2. Specify whether to monitor SYSTEM or SESSION BUS
  3. Is the Match Rule as per this DBUS specifications

I encourage you to suggest possible enhancements or wishlists in this area and report them in the main TALK thread

[edit] Example

We will monitor the SYSTEM BUS with the following Match Rule:

type='signal',interface='com.example.app.Signal'

The cmd/script which will be executed when the event is intercepted is the following:

echo "$QBW_ID $QBW_EXEC_REASON"; echo '$QBW_DBUS_VERBOSE_OUTPUT'; exit 2

This is a simulation of the following sample DBUS command:

run-standalone.sh dbus-send --system --type=signal /com/example/app/Signal com.example.app.Signal.Test string:'Oh' string:'No!!!' string:'More QBWs!!!' boolean:true uint32:10000

And here's the output:

[edit] Known Issues

TBD

[edit] Bug Tracker/Reports

Tracker/Report See HERE

[edit] Feature Requests

Apply HERE

[edit] Now-Brewing

Nothing

[edit] Change Log

Main article: Queen BeeCon Widget/Changelog


[edit] TODO list

  • Bugfixing and Improving Stability
  • Instance Import/Export optimization and simplification

[edit] HOW-TOs & FAQs

[edit] Create a new Basic Instance of QBW

After you have installed QBW package, these are the steps to create and start customizing a new Instance of the widget.

  • Tap on an empty area of the Desktop and gear icon for configuration will pop up in the upper right area of the screen
Image:Qbwinst1.png
  • Click on the "Add widget" button
Image:Qbwinst2.png
  • Scroll selector till you find "Queen Beecon Widget" and click on it
Image:Qbwinst3.png
  • A new instance of the widget will be created with very basic default configuration
Image:Qbwinst4.png
  • Now if you click on the Settings Wrench Icon you'll reach the Settings Dialog for customization

[edit] How and Where to store Icons and Images for your Beecons

If no PATH is specified in the Settings for Icons and Images, QBW will look in directories on the phone's internal memories in the following order:

  • First, the directory accessible via Bluetooth/PC Suite/OVI Suite or USB (Storage Mode).
/home/user/MyDocs/.images/queen_beecon_dir/
Image:Qbwwtsi.png
WARNING!!! When phone is connected via USB in Storage Mode this directory is not available to the Widget; so if you plan to use QBW when in Storage Mode use directory in "Second" point.
  • Second, the directory:
/home/user/.queen_beecon_dir
/usr/share/icons/hicolor/48x48/hildon/

If you want to replace a partial/complete set of QBW's Package Icons just create Icons/Images with same name in directories "First" or "Second"

If the specified image is not found, the following icon will appear:

Image:Queen-beecon-noimg.png

[edit] Create an Exit Status driven Multi Images Beecon

Naive Dice Roller is a good place to start looking for such implementation.

[edit] Scripts/Commands with long output

Some scripts/commands may create multiple lines which are too long to be displayed on a single line. The widget will not wrap these. In order to wrap them you can use the fold command:

command-that-produces-long-lines | fold -s -w 80

The 80 in that instance is the maximum length of the line, which you can change. The -s option makes fold word wrap with spaces. More information is available from the fold man page.

[edit] Backup all Widget Instances

Apply Export/Save/Backup Procedure for Beecon Instance Data for every Widget Instance you want to Backup

Save content (Beecons' Images) of directories:

/home/user/.queen_beecon_dir
/home/user/MyDocs/.images/queen_beecon_dir/

[edit] Restore all Widget Instances

Apply Import/Load/Restore Procedure for Beecon Exported Instance Data for every Widget Instance you want to Restore

Restore content (Beecons' Images) of directories:

/home/user/.queen_beecon_dir
/home/user/MyDocs/.images/queen_beecon_dir/

[edit] Import/Load/Restore Procedure for Beecon Exported Instance Data

See HERE

[edit] Export/Save/Backup Procedure for Beecon Instance Data

See HERE

[edit] Copy Exported Instance Data from Browser to Phone's Clipboard

See HERE

[edit] Reset QBW to Default Configuration/Commands

Open up X Terminal (or SSH/Putty into N900) and issue the following command:

sudo gainroot (only if you are not already root)
rm /home/user/.queen_beecon
killall hildon-home

[edit] Completely remove QBW from your N900

Open up X-Terminal (or SSH/Putty into N900) and issue the following command

sudo gainroot

(only if you are not already root)

dpkg -P queen-beecon
rm /home/user/.queen_beecon
rm -r /home/user/.queen_beecon_dir
rm -r /home/user/MyDocs/.images/queen_beecon_dir/

[edit] Run every Desktop Application with different Icons/Sizes buttons

You can run every desktop application with a script like this and just change the image and size of the Beecon to one of your choice:

dbus-send --type=method_call --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:"<application name here>"

where <application name here> is application name that you can find in /usr/share/applications/hildon directory without the trailing .desktop

Example for launching the image viewer:

/usr/bin/dbus-send --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:image-viewer

See EXAMPLE Here

[edit] Run Application in xterm with different Icons/Sizes buttons

You can run every application in xterm and customize a button on Desktop to launch it.

See THIS post for a Tutorial

[edit] Create invisible clickable Hot Spots on your Desktop Background Image to launch Applications or perform Actions

See Here and follow-up posts.

[edit] Relocate/Rotate a QBW widget on a Keyboard slide event

See Here and follow-up posts.

[edit] FAQs

[edit] Could you make an easy way to install new beecons/scripts please?

... perhaps define a standard folder structure inside a compressed file, perhaps some install directions file inside to guide installation, and use a custom extension; kinda like how Firefox does with XPIs, and add some GUI to install/uninstall them

This is a good question and I still haven't figured out a good answer.

Here are a few issues I mused about.

  1. QBW is not a standalone application; it is a Hildon-Desktop/Home plugin (a library) with plenty of constraints and with a certain fixed integration with the whole system. Messing with it it's a pain in the a**
  2. I tried to find a simple operational way to achieve what you are asking for, here, but to my knowledge and due to the nature of HD-HH I couldn't find any better, faster, simpler, cuter or leanier way.
  3. QBWs, which get shared by the community or myself, are just mockups or proof of concepts which are meant to be "abused", "mishandled" and further customized to match each one's expectations and visual/functional taste
  4. The complexity of some QBWs requires manual intervention to adapt to each and everyone's environment (Ex. the QBW Instance ID used for inter-widget communication varies on each machine). To my knowledge, the automation of this adaptation process is very time consuming and far from being error-proof. I preferred to focus my effort in the most interesting area of functionalities
  5. QBW is a very powerful tool and can do a lot of good and nasty things... so: the more you expose its behaviour and the more "open" the code and effects will be
  6. Maemo ain't for doubleclickers

I know there is no proper answer here...

[edit] Easter Eggs

[edit] Magic Word for bypassing Export/Import Instance Data CheckSum protection

Image:Qbwlsowk.jpg

Use the Source ... Luke! ;) or ask politely!

[edit] Troubleshooting

[edit] Startup

If you are having issues at widget startup because of improper "Update on Widget/System Startup" settings:

  • Open up X Terminal (or SSH/Putty into N900) and issue the following commands:
sudo gainroot

(only if you are not already root)

vi /home/user/.queen_beecon
  • find updOnStartup=true (all instances supposed to be culprits)
  • Set it to false:
updOnStartup=false
  • Save file
  • Immediately issue:
killall hildon-home
  • hildon-home will automatically restart and widgets won't run any more at startup

More generally just open /home/user/.queen_beecon and change the Update Policies of your offending instance as per THIS section's specifications

[edit] Running

[edit] QBW Warning! Possible Pango Markup Language inconsistent/unterminated Tag!

If you are using Pango Markup Language tags as output from your scripts, make sure all Tags are correctly written/spelled and terminated. Make also sure that there is an explicit newline at the very end of your output.

If you need to display the following special characters:

These NEED to be escaped:

  • The less-than character (<) starts element markup (the first character of a start-tag or an end-tag). Escape: &lt;
  • The greater-than character (>) ends a start-tag or an end-tag. Escape: &gt;

These MIGHT NEED to be escaped:

  • The ampersand character (&) starts entity markup (the first character of a character entity reference). Escape: &amp;
  • The double-quote character (") can be symbolised with this character entity reference when you need to embed a double-quote inside a string which is already double-quoted. Escape: &quot;
  • The apostrophe or single-quote character (') can be symbolised with this character entity reference when you need to embed a single-quote or apostrophe inside a string which is already single-quoted. Escape: &apos;

[edit] Beecon seems to hang when fetching data or accessing the Internet/Network

Please have a look at the thread of Timeout and Proxy related issues.

You can also have a look at THIS section of the WIKI for proxy related information

[edit] Advanced Settings and Tools Dialog Box

[edit] QBW Warning! Expected/Shown Command Output mismatch. Possible charset different from UTF-8!

If you press TestDrive for a command and the Exit Status and Command RAW Output Buffer still displays "Exit Status & Command RAW Output will be displayed HERE" then maybe your output contains a charset different from UTF-8.

To have the Command Output properly displayed, try to append "<code.| iconv --from-code=ISO-8859-1 --to-code=UTF-8</code>". For example:

... command1 | iconv --from-code=ISO-8859-1 --to-code=UTF-8

[edit] WARNING! Bad Checksum! Possibly corrupt Import Instance/Command Data!

Every exported QBW Instance/Command Data is protected by a checksum value which is stored in the header part of the export.

There are a few reason why I chose to do that:

  • To preserve integrity of what the author of the QBW created (and supposedly assumed "working")
  • To prevent unwanted changes to the data due to clipboard copy/paste operations
  • To ease the QBW exported data import process, and avoid some extra effort in coding import/export routines, by using the g_key_file_* APIs

Exported data is not "pure" configuration text; it is "meta-text" with some extra escape characters (Newline, tab, carriage return, backslash, blank which are escaped as \n, \t, \r, \\, \s respectively)

This is why directly changing the data inside the import/export buffer or in a text editor before importing is strictly discouraged (unless, of course, you know what you are doing and side effects)

[edit] Published Beecons, Scripts & Commands

Main article: Queen BeeCon Widget/BeeCons, scripts and commands