Skip to content

Commit

Permalink
Work on the hsb example
Browse files Browse the repository at this point in the history
  • Loading branch information
natcl committed Mar 25, 2013
1 parent fd3aa06 commit 4544557
Showing 1 changed file with 40 additions and 17 deletions.
57 changes: 40 additions & 17 deletions examples/tk_gui_hsb.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,43 @@

root = Tk()

def hue_command(x):
print x

lights = b.get_light_objects('id')
light_selection = []


def curry(fn, *cargs, **ckwargs):
def call_fn(*fargs, **fkwargs):
d = ckwargs.copy()
d.update(fkwargs)
return fn(*(cargs + fargs), **d)
return call_fn

def hue_command(x):
if len(light_selection) > 0:
b.set_light(light_selection, 'hue', int(x))
def sat_command(x):
if len(light_selection) > 0:
b.set_light(light_selection, 'sat', int(x))
def bri_command(x):
if len(light_selection) > 0:
b.set_light(light_selection, 'bri', int(x))

def select_button_command(light, button_state):
global light_selection
if button_state.get():
light_selection.append(light)
else:
light_selection.remove(light)
print light_selection

slider_frame = Frame(root)
slider_frame.pack()
slider_frame.pack(pady = 10)

channels_frame = Frame(root)
channels_frame.pack()

label_frame = Frame(channels_frame)
label_frame.pack(side=LEFT)

label_name = Label(label_frame)
label_name.config(text = 'Name')
label_name.pack()
label_frame.pack(side=LEFT, padx = 10)

label_state = Label(label_frame)
label_state.config(text = 'State')
Expand All @@ -41,30 +61,33 @@ def hue_command(x):
label_select.config(text = 'Select')
label_select.pack()

label_name = Label(label_frame)
label_name.config(text = 'Name')
label_name.pack()

hue_slider = Scale(slider_frame, from_ = 65535, to = 0, command = hue_command)
sat_slider = Scale(slider_frame, from_ = 254, to = 0, command = hue_command)
bri_slider = Scale(slider_frame, from_ = 254, to = 0, command = hue_command)
sat_slider = Scale(slider_frame, from_ = 254, to = 0, command = sat_command)
bri_slider = Scale(slider_frame, from_ = 254, to = 0, command = bri_command)
hue_slider.pack(side=LEFT)
sat_slider.pack(side=LEFT)
bri_slider.pack(side=LEFT)


for light_id in lights:
channel_frame = Frame(channels_frame)
channel_frame.pack(side = LEFT)
channel_frame.pack(side = LEFT, padx = 10)

button_var = BooleanVar()
button_var.set(b.get_light(light_id, 'on'))
button_command = lambda button_var=button_var, light_id=light_id: b.set_light(light_id, 'on', button_var.get())
button = Checkbutton(channel_frame, variable = button_var, command = button_command)
button.pack()

button2_var = BooleanVar()
button2_var.set(b.get_light(light_id, 'on'))
button2_command = lambda button2_var=button2_var, light_id=light_id: b.set_light(light_id, 'on', button2_var.get())
button2 = Checkbutton(channel_frame, variable = button2_var, command = button2_command)
button2.pack()
select_button_var = BooleanVar()
#select_button_var.set(b.get_light(light_id, 'on'))
select_button_callback = curry(select_button_command, light_id, select_button_var)
select_button = Checkbutton(channel_frame, variable = select_button_var, command = select_button_callback)
select_button.pack()

label = Label(channel_frame)
label.config(text = b.get_light(light_id,'name'))
Expand Down

0 comments on commit 4544557

Please sign in to comment.