Author: titmuss
Date: Sat Aug  9 13:12:09 2008
New Revision: 2829

URL: http://svn.slimdevices.com?rev=2829&root=Jive&view=rev
Log:
 [EMAIL PROTECTED] (orig r2826):  bklaas | 2008-08-08 22:18:22 +0100
 Bug: 6542, 9017
 Description: Add support for picking up a request to render a slider in 
SlimBrowse items from SC
 Support for sliders in HomeMenu items will come a bit later
 
 [EMAIL PROTECTED] (orig r2827):  bklaas | 2008-08-09 20:12:47 +0100
 Bug: 6542
 Description: add support for sliderIcons param sent from SC, either "none", 
"volume", or defaults to -/+ icons on either end of the slider.

Modified:
    7.2/trunk/   (props changed)
    
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua

Propchange: 7.2/trunk/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Sat Aug  9 13:12:09 2008
@@ -1,6 +1,6 @@
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.0/trunk:2502
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.1/branches/discovery-refactor:2596
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.1/trunk:2813
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.1/trunk:2827
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:2013
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/SN:1083
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/scrolling:1378

Modified: 
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua?rev=2829&root=Jive&r1=2828&r2=2829&view=diff
==============================================================================
--- 
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
 (original)
+++ 
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
 Sat Aug  9 13:12:09 2008
@@ -650,6 +650,76 @@
        _updatingPlayerPopup = popup
 end
 
+-- _renderSlider
+-- special case when SlimBrowse item is configured for a slider widget
+local function _renderSlider(step, item)
+
+       if not step and step.window then
+               return
+       end
+       _assert(item)
+       _assert(item.min)
+       _assert(item.max)
+       _assert(item.actions['do'])
+
+       if not item.adjust then
+               item.adjust = 0
+       end
+
+       local sliderInitial
+       if not item.initial then
+               sliderInitial = item.min + item.adjust
+       else
+               sliderInitial = item.initial + item.adjust
+       end
+
+       local sliderMin = tonumber(item.min) + tonumber(item.adjust)
+       local sliderMax = tonumber(item.max) + tonumber(item.adjust)
+
+       local slider = Slider("slider", sliderMin, sliderMax, sliderInitial,
+                function(slider, value, done)
+                       local jsonAction = item.actions['do']
+                       local valtag = _safeDeref(item, 'actions', 'do', 
'params', 'valtag')
+                       if valtag then
+                               item.actions['do'].params[valtag] = value - 
item.adjust
+                       end
+                       _performJSONAction(jsonAction, nil, nil, nil, nil)
+
+                        if done then
+                                window:playSound("WINDOWSHOW")
+                                window:hide(Window.transitionPushLeft)
+                        end
+                end)
+       local help, text
+       if item.text then
+               text = Textarea("textarea", item.text)
+               step.window:addWidget(text)
+       end
+       if item.help then
+               help = Textarea("help", item.help)
+               step.window:addWidget(help)
+       end
+
+       if item.sliderIcons == 'none' then
+               step.window:addWidget(slider)
+       elseif item.sliderIcons == 'volume' then
+               step.window:addWidget(Group("sliderGroup", {
+                       Icon("volumeMin"),
+                       slider,
+                       Icon("volumeMax")
+               }))
+       else
+               step.window:addWidget(Group("sliderGroup", {
+                       Icon("sliderMin"),
+                       slider,
+                       Icon("sliderMax")
+               }))
+       end
+
+
+
+end
+
 -- _bigArtworkPopup
 -- special case sink that pops up big artwork
 local function _bigArtworkPopup(chunk, err)
@@ -828,6 +898,12 @@
                        end
                        local textArea = Textarea("textarea", 
data.window.textArea)
                        step.window:addWidget(textArea)
+               elseif step.menu and data and data.count and data.count == 1 
and data.item_loop and data.item_loop[1].slider then
+                       -- no menus here, thankyouverymuch
+                       if step.menu then
+                               step.window:removeWidget(step.menu)
+                       end
+                       _renderSlider(step, data.item_loop[1])
                -- avoid infinite request loop on count == 0
                elseif step.menu and data and data.count and data.count == 0 
then
                        -- this will render a blank menu, which is typically 
undesirable 

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins

Reply via email to