1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
# ScrolledList examples.
from ocempgui.widgets import *
from ocempgui.widgets.components import TextListItem
from ocempgui.widgets.Constants import *
__count = 0
def _add_item (slist):
global __count
slist.items.append (TextListItem ("SrolledList element %d" % __count))
__count += 1
def _remove_item (slist, button2):
selection = slist.get_selected ()
for item in selection:
slist.items.remove (item)
button2.sensitive = False
def _update_button (slist, button):
button.sensitive = len (slist.get_selected ()) > 0
def create_scrolledlist_view ():
table = Table (2, 2)
table.spacing = 5
# Create a simple ScrolledList
vframe = VFrame ()
vframe.border = BORDER_NONE
window = ScrolledList (200, 200)
frame = HFrame ()
frame.border = BORDER_NONE
frame.spacing = 5
button1 = Button ("#Add item")
button1.connect_signal (SIG_CLICKED, _add_item, window)
button2 = Button ("#Remove item")
button2.connect_signal (SIG_CLICKED, _remove_item, window, button2)
button2.sensitive = False
window.connect_signal (SIG_SELECTCHANGED, _update_button, window, button2)
frame.add_child (button1, button2)
vframe.add_child (window, frame)
table.add_child (0, 0, vframe)
# Create a ScrolledList with always scrolling and single selection.
always = ScrolledList (200, 200)
always.scrolling = SCROLL_ALWAYS
always.selectionmode = SELECTION_SINGLE
for i in xrange (15):
item = None
if i % 2 == 0:
item = TextListItem ("Short item %d" % i)
else:
text = "Very, " +3 * "very, very," + "long item %d" % i
item = TextListItem (text)
always.items.append (item)
table.add_child (0, 1, always)
table.set_align (0, 1, ALIGN_TOP)
# Create a ScrolledList with different items.
never = ScrolledList (200, 200)
never.scrolling = SCROLL_NEVER
for i in xrange (10):
item = None
if i % 2 == 0:
item = TextListItem ("Default item")
item.editable = True
else:
item = TextListItem ("Item with a different style")
item.editable = True
item.get_style ()["fgcolor"][STATE_NORMAL] = (100, 200, 100)
item.style["font"]["size"] = 20
never.items.append (item)
table.add_child (1, 0, never)
# Create an insensitive ScrolledList.
insensitive = ScrolledList (200, 200)
insensitive.scrolling = SCROLL_ALWAYS
insensitive.sensitive = False
for i in xrange (15):
insensitive.items.append (TextListItem ("Insensitive item %d" % i))
insensitive.select (insensitive.items[3])
table.add_child (1, 1, insensitive)
return table
if __name__ == "__main__":
# Initialize the drawing window.
re = Renderer ()
re.create_screen (620, 500)
re.title = "ScrolledList examples"
re.color = (234, 228, 223)
table = create_scrolledlist_view ()
table.topleft = 5, 5
re.add_widget (table)
re.start ()
|