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