#!/usr/bin/env python
from functools import partial
from ecore import timer_add
import elementary, edje
from sys import argv

elementary.init()

win = elementary.Window('lol', 0)

def destroy(*args, **kargs):
  elementary.exit()   

win.destroy = destroy

win.title_set('edje test')

win.show()

bg = elementary.Background(win)

win.resize_object_add(bg)

bg.show()

list = elementary.List(win)

list.size_hint_weight_set(1.0, 1.0)
list.size_hint_align_set(-1.0, -1.0)

selected=-1
layouts = {}
#layouts2 = {}

def del_obj(obj, *args, **kargs):
  obj.delete()
  labox.show()
  return False

def add_label(text, *args, **kargs):
  if len(argv)<2 or argv[1]!='-s':
    label = elementary.Label(win)
    label.label_set(text)
    label.show()
    labox.pack_end(label)
    timer_add(3, partial(del_obj, label))


def select_item(i, *args, **kargs):
  global selected
  add_label('item '+str(i)+' selected')
  layouts[i].edje_get().signal_emit('hide',"rightbox")
  selected=i

def handler(i, obj, event, name, *args, **kargs):
#  print name+': '+event
#  if event=='mouse,clicked,1':
#  print str(i) + ' ' + name
  if i==selected:
    add_label(name + ' button from row ' + str(i) + ' clicked')

for i in range(0, 20):
  layout = elementary.Layout(win)
  layout.file_set('test.edj', "rightbox")
  layout.edje_get().signal_callback_add('mouse,clicked,1', '*', partial(handler, i))
  layout.edje_get().signal_emit('hide',"rightbox")
  layouts[i] = layout
#  print dir(layout.edje_get())
  layout2 = elementary.Layout(win)
  layout2.file_set('test.edj', "photolist")
#  layouts2[i] = layout2
  photo = elementary.Photo(win)
  if divmod(i,3)[1]==1:
    photo.file_set('/usr/share/pixmaps/shr-settings.png')
  if divmod(i,3)[1]==2:
    photo.file_set('/usr/share/pixmaps/shr-settings/icon_phone.png')
  photo.show()
  photo.scale_set(0.5)
  layout2.content_set('base', photo)
  list.item_append('lalala', layout2, layout, partial(select_item, i))

list.go()
list.show()

box = elementary.Box(win)
box.show()
box.pack_start(list)

labox = elementary.Box(win)
labox.show()
box.pack_end(labox)

win.resize_object_add(box)

elementary.run()
elementary.shutdown()
