def gengrid_clicked(obj): global item_count item_count = 25 # window win = elementary.Window("gengrid", elementary.ELM_WIN_BASIC) win.title_set("Gengrid") win.autodel_set(True) if obj is None: win.callback_delete_request_add(lambda o: elementary.exit()) # background bg = elementary.Background(win) win.resize_object_add(bg) bg.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) bg.show() # main table tb = elementary.Table(win) win.resize_object_add(tb) tb.homogeneous_set(0) tb.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) tb.show() # gengrid itc = elementary.GengridItemClass(item_style="default", text_get_func=gg_text_get, content_get_func=gg_content_get, state_get_func=gg_state_get, del_func=gg_del) gg = elementary.Gengrid(win) gg.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) gg.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) gg.horizontal_set(False) gg.bounce_set(False, True) gg.item_size_set(80, 80) gg.align_set(0.5, 0.0) tb.pack(gg, 0, 0, 6, 1) gg.callback_selected_add(gg_sel) gg.callback_unselected_add(gg_unsel) gg.callback_clicked_double_add(gg_clicked_double) gg.show() # add the first items for i in range(item_count): gg.item_append(itc, i, None) # multi select def multi_select_changed(bt, gg): gg.multi_select_set(bt.state) print((gg.multi_select_get())) bt = elementary.Check(win) bt.text = "MultiSelect" bt.state = gg.multi_select_get() bt.callback_changed_add(multi_select_changed, gg) tb.pack(bt, 0, 1, 1, 1) bt.show() # horizontal def horizontal_changed(bt, gg): gg.horizontal_set(bt.state) bt = elementary.Check(win) bt.text_set("Horizontal") bt.callback_changed_add(horizontal_changed, gg) tb.pack(bt, 1, 1, 1, 1) bt.show() # bounce h def bounce_h_changed(bt, gg): (h_bounce, v_bounce) = gg.bounce_get() gg.bounce_set(bt.state, v_bounce) print((gg.bounce_get())) bt = elementary.Check(win) bt.text_set("BounceH") (h_bounce, v_bounce) = gg.bounce_get() bt.state = h_bounce bt.callback_changed_add(bounce_h_changed, gg) tb.pack(bt, 4, 1, 1, 1) bt.show() # bounce v def bounce_v_changed(bt, gg): (h_bounce, v_bounce) = gg.bounce_get() gg.bounce_set(h_bounce, bt.state) print((gg.bounce_get())) bt = elementary.Check(win) bt.text_set("BounceV") (h_bounce, v_bounce) = gg.bounce_get() bt.state = v_bounce bt.callback_changed_add(bounce_v_changed, gg) tb.pack(bt, 5, 1, 1, 1) bt.show() # item size def item_size_w_changed(sl, gg): (w, h) = gg.item_size_get() gg.item_size_set(sl.value, h) print((gg.item_size_get())) def item_size_h_changed(sl, gg): (w, h) = gg.item_size_get() gg.item_size_set(w, sl.value) print((gg.item_size_get())) sl = elementary.Slider(win) sl.text_set("ItemSizeW") sl.min_max_set(0, 500) sl.indicator_format_set("%.0f") sl.unit_format_set("%.0f") sl.span_size_set(100) (w, h) = gg.item_size_get() sl.value = w sl.callback_changed_add(item_size_w_changed, gg) tb.pack(sl, 0, 2, 2, 1) sl.show() sl = elementary.Slider(win) sl.text_set("ItemSizeH") sl.min_max_set(0, 500) sl.indicator_format_set("%.0f") sl.unit_format_set("%.0f") sl.span_size_set(100) (w, h) = gg.item_size_get() sl.value = h sl.callback_changed_add(item_size_h_changed, gg) tb.pack(sl, 0, 3, 2, 1) sl.show() # align def alignx_changed(sl, gg): (ax, ay) = gg.align_get() gg.align_set(sl.value, ay) print((gg.align_get())) def aligny_changed(sl, gg): (ax, ay) = gg.align_get() gg.align_set(ax, sl.value) print((gg.align_get())) sl = elementary.Slider(win) sl.text_set("AlignX") sl.min_max_set(0.0, 1.0) sl.indicator_format_set("%.2f") sl.unit_format_set("%.2f") sl.span_size_set(100) (ax, ay) = gg.align_get() sl.value = ax sl.callback_changed_add(alignx_changed, gg) tb.pack(sl, 0, 4, 2, 1) sl.show() sl = elementary.Slider(win) sl.text_set("AlignY") sl.min_max_set(0.0, 1.0) sl.indicator_format_set("%.2f") sl.unit_format_set("%.2f") sl.span_size_set(100) (ax, ay) = gg.align_get() sl.value = ax sl.callback_changed_add(aligny_changed, gg) tb.pack(sl, 0, 5, 2, 1) sl.show() # select first def select_first_clicked(bt, gg): ggi = gg.first_item ggi.selected = not ggi.selected bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Select first") bt.callback_clicked_add(select_first_clicked, gg) tb.pack(bt, 2, 2, 1, 1) bt.show() # select last def select_last_clicked(bt, gg): ggi = gg.last_item ggi.selected = not ggi.selected bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Select last") bt.callback_clicked_add(select_last_clicked, gg) tb.pack(bt, 3, 2, 1, 1) bt.show() # selection del def seldel_clicked(bt, gg): for ggi in gg.selected_items_get(): ggi.delete() bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Sel del") bt.callback_clicked_add(seldel_clicked, gg) tb.pack(bt, 4, 2, 1, 1) bt.show() # clear def clear_clicked(bt, gg): global item_count item_count = 0 gg.clear() bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Clear") bt.callback_clicked_add(clear_clicked, gg) tb.pack(bt, 5, 2, 1, 1) bt.show() # show first/last def show_clicked(bt, gg, first): ggi = gg.first_item if first else gg.last_item ggi.show() bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Show first") bt.callback_clicked_add(show_clicked, gg, True) tb.pack(bt, 2, 3, 1, 1) bt.show() bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Show last") bt.callback_clicked_add(show_clicked, gg, False) tb.pack(bt, 3, 3, 1, 1) bt.show() # bring-in first/last def bring_in_clicked(bt, gg, first): ggi = gg.first_item if first else gg.last_item ggi.bring_in() bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("BringIn first") bt.callback_clicked_add(bring_in_clicked, gg, True) tb.pack(bt, 4, 3, 1, 1) bt.show() bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("BringIn last") bt.callback_clicked_add(bring_in_clicked, gg, False) tb.pack(bt, 5, 3, 1, 1) bt.show() # append def append_clicked(bt, gg, n): global item_count while n: item_count += 1 gg.item_append(itc, item_count, None) n -= 1 bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Append 1") bt.callback_clicked_add(append_clicked, gg, 1) tb.pack(bt, 2, 4, 1, 1) bt.show() bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Append 100") bt.callback_clicked_add(append_clicked, gg, 100) tb.pack(bt, 3, 4, 1, 1) bt.show() bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Append 1000") bt.callback_clicked_add(append_clicked, gg, 1000) tb.pack(bt, 4, 4, 1, 1) bt.show() bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Append 10000 :)") bt.callback_clicked_add(append_clicked, gg, 10000) tb.pack(bt, 5, 4, 1, 1) bt.show() # prepend def prepend_clicked(bt, gg): global item_count item_count += 1 gg.item_prepend(itc, item_count) bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Prepend") bt.callback_clicked_add(prepend_clicked, gg) tb.pack(bt, 2, 5, 1, 1) bt.show() # insert_before def ins_before_clicked(bt, gg): global item_count item_count += 1 before = gg.selected_item_get() if before: gg.item_insert_before(itc, item_count, before) else: print("nothing selected") bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Ins before") bt.callback_clicked_add(ins_before_clicked, gg) tb.pack(bt, 3, 5, 1, 1) bt.show() # insert_after def ins_after_clicked(bt, gg): global item_count item_count += 1 after = gg.selected_item_get() if after: gg.item_insert_after(itc, item_count, after) else: print("nothing selected") bt = elementary.Button(win) bt.size_hint_align_set(evas.EVAS_HINT_FILL, 0) bt.text_set("Ins after") bt.callback_clicked_add(ins_after_clicked, gg) tb.pack(bt, 4, 5, 1, 1) bt.show() win.resize(480, 800) win.show()
def build_gui (self): def destroy (obj, *args, **kargs): self.sensorTimer.delete() self.SaveConfig (self.configfile) elementary.exit () gui_items = dict () # Start elementary elementary.init () # Create main window gui_items['mainwin'] = elementary.Window ("Wax-Chooser", elementary.ELM_WIN_BASIC) gui_items['mainwin'].title_set ("Wax-Chooser") gui_items['mainwin'].callback_destroy_add (destroy) # Create background bg = elementary.Background (gui_items['mainwin']) bg.size_hint_weight_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) bg.size_hint_min_set (200,300) gui_items['mainwin'].resize_object_add (bg) bg.show () # Create main box (vertical by default) gui_items['mainbox'] = elementary.Box (gui_items['mainwin']) gui_items['mainbox'].size_hint_weight_set (evas.EVAS_HINT_EXPAND, 1.0) gui_items['mainbox'].size_hint_align_set (-1.0, evas.EVAS_HINT_FILL) gui_items['mainwin'].resize_object_add (gui_items['mainbox']) gui_items['mainbox'].show () # Create title label gui_items['title'] = elementary.Label (gui_items['mainwin']) gui_items['title'].text_set ("Current Conditions") gui_items['mainbox'].pack_start (gui_items['title']) gui_items['title'].size_hint_weight_set (1.0, evas.EVAS_HINT_FILL) gui_items['title'].size_hint_align_set (0.5, -1.0) gui_items['title'].show () # Create scroller to hold condition descripion items self.sc2 = elementary.Scroller(gui_items['mainwin']) self.sc2.bounce_set(0, 0) self.sc2.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 1.0) self.sc2.size_hint_align_set(-1.0, evas.EVAS_HINT_FILL) gui_items['mainbox'].pack_end(self.sc2) self.sc2.show() gui_items['mainwin'].resize_object_add (self.sc2) # Create condtion description box (vertical by default) box2 = elementary.Box (gui_items['mainwin']) box2.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 1.0) box2.size_hint_align_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) self.sc2.content_set (box2) box2.show () gui_items['rows'] = [] # Create four boxes: temperature, humidity, snow type, and buttons, set as horizonal tbox = elementary.Box (gui_items['mainwin']) #tbox.horizontal_set (1) #box1.homogenous_set (1) tbox.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) tbox.size_hint_align_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) box2.pack_end (tbox) tbox.show () # Create temperature widget label tl = elementary.Label (gui_items['mainwin']) tl.text_set ('Temperature') tbox.pack_start( tl ) tl.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) tl.size_hint_align_set (0.4, 0.5) tl.show () # Create temperature slider gui_items['temperatureSlider'] = elementary.Slider (gui_items['mainwin']) gui_items['temperatureSlider'].size_hint_weight_set (1, 0) gui_items['temperatureSlider'].size_hint_align_set (-1, 0) if self.usingCelsius: gui_items['temperatureSlider'].min_max_set (-30.0, 10.0) gui_items['temperatureSlider'].value = 0 else: gui_items['temperatureSlider'].min_max_set (-15.0, 45.0) gui_items['temperatureSlider'].value = 32 gui_items['temperatureSlider'].unit_format_set( '%1.1f degrees' ) tbox.pack_end (gui_items['temperatureSlider']) gui_items['temperatureSlider'].show () tsbox = elementary.Box (gui_items['mainwin']) tsbox.horizontal_set (1) tsbox.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) tsbox.size_hint_align_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) box2.pack_end (tsbox) tsbox.show () # Create Use Sensor button gui_items['sensorButton'] = elementary.Button (gui_items['mainwin']) gui_items['sensorButton']._callback_add ('clicked', self.setTemperatureFromSensor) ic = elementary.Icon(gui_items['sensorButton']) ic.file_set(os.path.join(IMAGE_DIR, "thermometer.png")) gui_items['sensorButton'].icon_set( ic) gui_items['sensorButton'].text_set( "Searching for sensor" ) gui_items['sensorButton'].size_hint_weight_set (evas.EVAS_HINT_EXPAND, 1.0) gui_items['sensorButton'].size_hint_align_set (evas.EVAS_HINT_FILL, 1.0) tsbox.pack_end (gui_items['sensorButton']) if self.usingSensor: gui_items['sensorButton'].show () ######## Humidity ############ hbox = elementary.Box (gui_items['mainwin']) #box1.homogenous_set (1) hbox.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) hbox.size_hint_align_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) box2.pack_end (hbox) hbox.show () gui_items['mainwin'].resize_object_add (hbox) #create humidity widget label hl = elementary.Label (gui_items['mainwin']) hl.text_set ('Humidity') hl.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 1.0) hl.size_hint_align_set (0.45, 0.5) hbox.pack_start (hl) hl.show () hbox2 = elementary.Box (gui_items['mainwin']) hbox2.horizontal_set (1) #box1.homogenous_set (1) hbox2.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) hbox2.size_hint_align_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) hbox.pack_end (hbox2) gui_items['mainwin'].resize_object_add (hbox2) hbox2.show () #Create humidity toolbar rhtoolbar = elementary.Toolbar(gui_items['mainwin']) rhtoolbar.menu_parent_set(gui_items['mainwin']) rhtoolbar.homogenous_set(0) rhtoolbar.icon_size_set( 64 ) # print str( rhtoolbar.icon_size ) rhtoolbar.icon_size = ( 96 ) # print str( rhtoolbar.icon_size ) rhtoolbar.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) rhtoolbar.size_hint_align_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) rhtoolbar.item_append(os.path.join(IMAGE_DIR, 'medrh.png'), "Normal", self.setHumidity,humidity=NORMAL_HUMIDITY) rhtoolbar.item_append(os.path.join(IMAGE_DIR, 'highrh.png'), "High", self.setHumidity,humidity=HIGH_HUMIDITY) rhtoolbar.first_item_get().selected_set(True) hbox2.pack_end( rhtoolbar ) rhtoolbar.show() ######## Snow Condition ############ sbox = elementary.Box (gui_items['mainwin']) #box1.homogenous_set (1) sbox.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) sbox.size_hint_align_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) box2.pack_end (sbox) sbox.show () #create snow cond widget label sl = elementary.Label (gui_items['mainwin']) sl.text_set ('Snow Condition') sl.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) sl.size_hint_align_set (0.45, 0.5) sbox.pack_start (sl) sl.show () sbox2 = elementary.Box (gui_items['mainwin']) sbox2.horizontal_set (1) #box1.homogenous_set (1) sbox2.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) sbox2.size_hint_align_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) sbox.pack_end (sbox2) sbox2.show () #Create Snow condition toolbar sctoolbar = elementary.Toolbar(gui_items['mainwin']) sctoolbar.menu_parent_set(gui_items['mainwin']) sctoolbar.homogenous_set(0) sctoolbar.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) sctoolbar.size_hint_align_set (evas.EVAS_HINT_FILL, 1.0) sctoolbar.item_append(os.path.join(IMAGE_DIR, 'newsnow.png'), "New", self.setSnowCond,snowcond=NEW_SNOW) sctoolbar.item_append(os.path.join(IMAGE_DIR, 'transformedsnow.png'), "Transformed", self.setSnowCond,snowcond=OLD_SNOW) sctoolbar.item_append(os.path.join(IMAGE_DIR, 'corn.png'), "Corn", self.setSnowCond,snowcond=CORN_SNOW) sctoolbar.item_append(os.path.join(IMAGE_DIR, 'ice.png'), "Ice", self.setSnowCond,snowcond=ICY_SNOW) sctoolbar.first_item_get().selected_set(True) sbox2.pack_end( sctoolbar ) sctoolbar.show() # Create bottom button row (prev, next city & refresh) box3 = elementary.Box (gui_items['mainwin']) box3.horizontal_set (1) box3.homogenous_set (1) box3.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) box3.size_hint_align_set (evas.EVAS_HINT_FILL, 1.0) gui_items['mainbox'].pack_end (box3) box3.show () # Find Wax button bt = elementary.Button (gui_items['mainwin']) bt.text_set ('Find Wax') bt._callback_add ('clicked', self.find_wax) bt.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 1.0) bt.size_hint_align_set (evas.EVAS_HINT_FILL, 1.0) # Add a prev icon to the button box3.pack_end (bt) bt.show () # Settings button bt = elementary.Button (gui_items['mainwin']) bt.text_set ('Settings') bt._callback_add ('clicked', self.settingsDialog) bt.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 1.0) bt.size_hint_align_set (evas.EVAS_HINT_FILL, 1.0) # Add a next icon to the button box3.pack_end (bt) bt.show () ##### # Create wax display box (vertical by default) gui_items['waxbox'] = elementary.Box (gui_items['mainwin']) gui_items['waxbox'].size_hint_weight_set (evas.EVAS_HINT_FILL, 1.0) gui_items['waxbox'].size_hint_align_set (evas.EVAS_HINT_FILL, -1.0) gui_items['waxLabel'] = elementary.Label(gui_items['mainwin']) gui_items['waxLabel'].text_set("Wax") gui_items['waxbox'].pack_start(gui_items['waxLabel']) gui_items['waxLabel'].show() # Create box to hold the wax picture sc = elementary.Scroller(gui_items['waxbox']) sc.bounce_set(0, 0) sc.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.5) sc.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) ib = elementary.Box(gui_items['mainwin']) ib.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.5) ib.size_hint_align_set(evas.EVAS_HINT_FILL, 0.5) gui_items['waxicon'] = elementary.Icon(gui_items['mainwin']) gui_items['waxicon'].size_hint_weight_set(1.0, 0.5) gui_items['waxicon'].scale_set(0.2, 0.2) gui_items['waxicon'].size_hint_align_set(0.5, 0.0) ib.pack_end(gui_items['waxicon']) gui_items['mainwin'].resize_object_add (ib) gui_items['waxicon'].show() gui_items['waxtext'] = elementary.Entry( gui_items['mainwin'] ) gui_items['waxtext'].size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) gui_items['waxtext'].size_hint_align_set(-1.0, 0.0) gui_items['waxtext'].scale_set(1) ib.pack_end(gui_items['waxtext']) gui_items['waxtext'].show() sc.content_set(ib) gui_items['waxbox'].pack_end(sc) gui_items['mainwin'].resize_object_add (sc) ib.show() sc.show() # Create bottom button row (warmer back colder) box3 = elementary.Box (gui_items['mainwin']) box3.horizontal_set (1) box3.homogenous_set (1) box3.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) box3.size_hint_align_set (evas.EVAS_HINT_FILL, 1.0) gui_items['waxbox'].pack_end (box3) box3.show () gui_items['mainwin'].resize_object_add (box3) # Create the warmer button bt = elementary.Button (gui_items['mainwin']) bt.text_set ('Warmer') bt._callback_add ('clicked', self.warmerWax) bt.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) bt.size_hint_align_set (evas.EVAS_HINT_FILL, 0.0) box3.pack_end (bt) bt.show () # Create the back button bt = elementary.Button (gui_items['mainwin']) bt.text_set ('Back') bt._callback_add ('clicked', self.closeWax) bt.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) bt.size_hint_align_set (evas.EVAS_HINT_FILL, 0.0) box3.pack_end (bt) bt.show () # Create the Colder button bt = elementary.Button (gui_items['mainwin']) bt.text_set ('Colder') bt._callback_add ('clicked', self.colderWax) bt.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) bt.size_hint_align_set (evas.EVAS_HINT_FILL, 0.0) box3.pack_end (bt) bt.show () gui_items['mainwin'].resize_object_add (gui_items['waxbox']) gui_items['waxbox'].hide () ##### # Create about box (vertical by default) gui_items['aboutbox'] = elementary.Box (gui_items['mainwin']) gui_items['aboutbox'].size_hint_weight_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) gui_items['aboutbox'].size_hint_align_set (-1.0, -1.0) al = elementary.Label(gui_items['mainwin']) al.size_hint_weight_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) al.size_hint_align_set (0.5, -1.0) al.text_set("About waxChooser") gui_items['aboutbox'].pack_start(al) al.show() sc2 = elementary.Scroller(gui_items['mainwin']) sc2.bounce_set(0, 0) sc2.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 1.0) sc2.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) gui_items['aboutbox'].pack_end(sc2) gui_items['mainwin'].resize_object_add (sc2) sc2.show() ib = elementary.Box(gui_items['aboutbox']) ic = elementary.Icon(gui_items['aboutbox']) ic.size_hint_weight_set(evas.EVAS_HINT_FILL,1.0) ic.scale_set(0, 0) ic.size_hint_align_set(0.5, 0.5) gui_items['mainwin'].resize_object_add(ic) ic.file_set(os.path.join(IMAGE_DIR, "author.png")) ib.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) ib.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) ib.pack_end(ic) sc2.content_set(ib) ic.show() gui_items['mainwin'].resize_object_add (ic) # Create text box with 'about' info at = elementary.Entry( gui_items['mainbox'] ) at.size_hint_weight_set(1.0, 0.0) at.size_hint_align_set(evas.EVAS_HINT_FILL, 0.0) at.scale_set(1) info = self.infoadd("waxChooser " + APP_VERSION) info += self.infoadd("Copyright (c) 2011 Benjamin Deering") info += self.infoadd("<*****@*****.**>" ) at.text_set( info ) gui_items['aboutbox'].pack_end(at) at.show() # Create bottom button row (back, about) box3 = elementary.Box (gui_items['mainwin']) box3.horizontal_set (1) box3.homogenous_set (1) box3.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) box3.size_hint_align_set (-1.0, 0.0) gui_items['aboutbox'].pack_end (box3) box3.show () # Create the back button bt = elementary.Button (gui_items['mainwin']) bt.text_set ('Back') bt._callback_add ('clicked', self.hideAbout) bt.size_hint_weight_set (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_FILL) bt.size_hint_align_set (evas.EVAS_HINT_FILL, -1.0) box3.pack_end (bt) bt.show () gui_items['mainwin'].resize_object_add (gui_items['aboutbox']) ##### # Create settings box (vertical by default) gui_items['settingsbox'] = elementary.Box (gui_items['mainwin']) gui_items['settingsbox'].size_hint_weight_set (evas.EVAS_HINT_EXPAND, 1.0) gui_items['settingsbox'].size_hint_align_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) settingsLabel = elementary.Label(gui_items['mainwin']) settingsLabel.text_set('Settings') settingsLabel.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) settingsLabel.size_hint_align_set (0.5, -1.0) gui_items['settingsbox'].pack_start( settingsLabel) settingsLabel.show() # Create scroller to hold settings toggles items sc2 = elementary.Scroller(gui_items['mainwin']) sc2.bounce_set(0, 0) sc2.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 1.0) sc2.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) gui_items['settingsbox'].pack_end(sc2) gui_items['mainwin'].resize_object_add (sc2) sc2.show() tb = elementary.Box(gui_items['settingsbox']) ut = elementary.Check (gui_items['mainwin']) ut.text_set('Units') ut.style_set("toggle") ut.text_part_set( 'off', 'Fahrenheit' ) ut.text_part_set( 'on', 'Celsius' ) ut.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) ut.size_hint_align_set (evas.EVAS_HINT_FILL, 0.0) tb.pack_end( ut ) ut.state_set(self.usingCelsius) ut._callback_add('changed',self.setUnits) ut.show() for brand in self.brands: ut = elementary.Check (gui_items['mainwin']) ut.style_set("toggle") ut.text_set(brand) ut.text_part_set( 'on', 'enabled' ) ut.text_part_set( 'off', 'disabled' ) ut.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) ut.size_hint_align_set (evas.EVAS_HINT_FILL, 0.0) ut.state_set(eval(self.enabledBrands[brand])) tb.pack_end( ut ) ut._callback_add('changed',self.enableBrands,brand=brand) ut.show() ut = elementary.Check (gui_items['mainwin']) ut.text_set('Use MLX90614') ut.style_set("toggle") ut.text_part_set( 'on', 'Yes' ) ut.text_part_set( 'off', 'No' ) ut.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) ut.size_hint_align_set (evas.EVAS_HINT_FILL, 0.0) tb.pack_end( ut ) ut.state_set(self.usingSensor) ut._callback_add('changed',self.setSensor) ut.show() tb.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) tb.size_hint_align_set (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) tb.show() #gui_items['settingsbox'].pack_end( tb ) sc2.content_set(tb) # Create bottom button row (back, about) box3 = elementary.Box (gui_items['mainwin']) box3.horizontal_set (1) box3.homogenous_set (1) box3.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) box3.size_hint_align_set (evas.EVAS_HINT_FILL, 0.0) gui_items['settingsbox'].pack_end (box3) box3.show () # Create the back button bt = elementary.Button (gui_items['mainwin']) bt.text_set ('Back') bt._callback_add ('clicked', self.closeSettings) bt.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) bt.size_hint_align_set (evas.EVAS_HINT_FILL, 0.0) box3.pack_end (bt) bt.show () # Create the about button bt = elementary.Button (gui_items['mainwin']) bt.text_set ('About') bt._callback_add ('clicked', self.showAbout) bt.size_hint_weight_set (evas.EVAS_HINT_EXPAND, 0.0) bt.size_hint_align_set (evas.EVAS_HINT_FILL, 0.0) box3.pack_end (bt) bt.show () #self.widgets['settingsbox'].pack_start(settingsTitle) gui_items['mainwin'].resize_object_add (gui_items['settingsbox']) gui_items['settingsbox'].hide () return gui_items
def label_clicked(obj): win = elementary.Window("label", elementary.ELM_WIN_BASIC) win.title = "Label test" win.autodel = True if obj is None: win.callback_delete_request_add(lambda o: elementary.exit()) bg = elementary.Background(win) win.resize_object_add(bg) bg.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) bg.show() vbox = elementary.Box(win) vbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) vbox.size_hint_align = (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) win.resize_object_add(vbox) vbox.show() lb = elementary.Label(win) lb.text = "<b>This is a small label</b>" lb.size_hint_align = (0.0, 0.5) vbox.pack_end(lb) lb.show() lb = elementary.Label(win) lb.text = "This is a larger label with newlines<br/>" \ "to make it bigger, bit it won't expand or wrap<br/>" \ "just be a block of text that can't change its<br/>" \ "formatting as it's fixed based on text<br/>" lb.size_hint_align = (0.0, 0.5) vbox.pack_end(lb) lb.show() lb = elementary.Label(win) lb.line_wrap_set(elementary.ELM_WRAP_CHAR) lb.text = "<b>This is more text designed to line-wrap here as " \ "This object is resized horizontally. As it is " \ "resized vertically though, nothing should change. " \ "The amount of space allocated vertically should " \ "change as horizontal size changes.</b>" lb.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0) lb.size_hint_align = (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) vbox.pack_end(lb) lb.show() lb = elementary.Label(win) lb.text = "This small label set to wrap" lb.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0) lb.size_hint_align = (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) vbox.pack_end(lb) lb.show() sp = elementary.Separator(win) sp.horizontal = True vbox.pack_end(sp) sp.show() gd = elementary.Grid(win) gd.size = (100, 100) gd.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) gd.size_hint_align = (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) vbox.pack_end(gd) gd.show() lb = elementary.Label(win) lb.text = "Test Label Ellipsis:" lb.size_hint_align = (0.0, 0.5) gd.pack(lb, 5, 5, 90, 15) lb.show() rect = evas.Rectangle(win.evas) rect.color = (255, 125, 125, 255) gd.pack(rect, 5, 15, 90, 15) rect.show() lb = elementary.Label(win) lb.text = "This is a label set to ellipsis. " \ "If set ellipsis to true and the text doesn't fit " \ "in the label an ellipsis(\"...\") will be shown " \ "at the end of the widget." lb.ellipsis = True lb.size_hint_align = (0.0, 0.5) gd.pack(lb, 5, 15, 90, 15) lb.show() lb = elementary.Label(win) lb.text = "Test Label Slide:" lb.size_hint_align = (0.0, 0.5) gd.pack(lb, 5, 40, 90, 15) lb.show() rect = evas.Rectangle(win.evas) rect.color = (255, 125, 125, 255) gd.pack(rect, 5, 50, 90, 15) rect.show() lb = elementary.Label(win) lb.text = "This is a label set to slide. " \ "If set slide to true the text of the label " \ "will slide/scroll through the length of label." \ "This only works with the themes \"slide_short\", " \ "\"slide_long\" and \"slide_bounce\"." lb.slide = True lb.style = ("slide_short") lb.size_hint_align = (0.0, 0.5) gd.pack(lb, 5, 50, 90, 15) lb.show() rd = elementary.Radio(win) rd.state_value = 1 rd.text = "slide_short" gd.pack(rd, 5, 65, 30, 15) rd.callback_changed_add(cb_slide_radio, lb) rd.show() rdg = rd rd = elementary.Radio(win) rd.group_add(rdg) rd.state_value = 2 rd.text = "slide_long" gd.pack(rd, 35, 65, 30, 15) rd.callback_changed_add(cb_slide_radio, lb) rd.show() rd = elementary.Radio(win) rd.group_add(rdg) rd.state_value = 3 rd.text = "slide_bounce" gd.pack(rd, 65, 65, 30, 15) rd.callback_changed_add(cb_slide_radio, lb) rd.show() sl = elementary.Slider(win) sl.text = "Slide Duration" sl.unit_format = "%1.1f units" sl.min_max = (1, 20) sl.value = 10 sl.size_hint_align = (evas.EVAS_HINT_FILL, 0.5) sl.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0) sl.callback_changed_add(cb_slider_duration, lb) gd.pack(sl, 5, 80, 90, 15) sl.show() win.resize(280, 400) win.show()
def map_clicked(obj): win = elementary.Window("map", elementary.ELM_WIN_BASIC) win.title = "Map test" win.autodel = True if obj is None: win.callback_delete_request_add(lambda o: elementary.exit()) bg = elementary.Background(win) win.resize_object_add(bg) bg.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) bg.show() vbox = elementary.Box(win) vbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) vbox.size_hint_align = (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) win.resize_object_add(vbox) vbox.show() Map = elementary.Map(win) Map.zoom = 2 Map.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) Map.size_hint_align = (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) # Map.callback_clicked_add(cb_map_clicked) vbox.pack_end(Map) Map.show() # view hbox = elementary.Box(win) hbox.horizontal = True hbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0) hbox.size_hint_align = (evas.EVAS_HINT_FILL, 0.0) vbox.pack_end(hbox) hbox.show() bt = elementary.Button(win) bt.text = "Zoom +" bt.callback_clicked_add(cb_btn_zoom, Map, 1) hbox.pack_end(bt) bt.show() bt = elementary.Button(win) bt.text = "Zoom -" bt.callback_clicked_add(cb_btn_zoom, Map, -1) hbox.pack_end(bt) bt.show() sl = elementary.Slider(win) sl.text = "Rotation:" sl.min_max = (0, 360) sl.value = 0 sl.indicator_format = "%3.0f" sl.callback_changed_add(cb_slider_rot, Map) hbox.pack_end(sl) sl.show() ho = elementary.Hoversel(win) ho.hover_parent_set(win) type = elementary.ELM_MAP_SOURCE_TYPE_TILE ho.text_set("Tiles: %s" % (Map.source_get(type))) for src in Map.sources_get(type): ho.item_add(src) ho.callback_selected_add(cb_hovsel_selected, Map, type) hbox.pack_end(ho) ho.show() # show / bring in hbox = elementary.Box(win) hbox.horizontal = True hbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0) hbox.size_hint_align = (evas.EVAS_HINT_FILL, 0.0) vbox.pack_end(hbox) hbox.show() bt = elementary.Button(win) bt.text = "Show Sydney" bt.callback_clicked_add(cb_btn_show, Map, 151.175274, -33.859126) hbox.pack_end(bt) bt.show() bt = elementary.Button(win) bt.text = "Show Paris" bt.callback_clicked_add(cb_btn_show, Map, 2.342913, 48.853701) hbox.pack_end(bt) bt.show() bt = elementary.Button(win) bt.text = "BringIn Sydney" bt.callback_clicked_add(cb_btn_bringin, Map, 151.175274, -33.859126) hbox.pack_end(bt) bt.show() bt = elementary.Button(win) bt.text = "BringIn Paris" bt.callback_clicked_add(cb_btn_bringin, Map, 2.342913, 48.853701) hbox.pack_end(bt) bt.show() hbox = elementary.Box(win) hbox.horizontal = True hbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0) hbox.size_hint_align = (evas.EVAS_HINT_FILL, 0.0) vbox.pack_end(hbox) hbox.show() # options ck = elementary.Check(win) ck.text = "wheel_disabled" ck.callback_changed_add(lambda bt: Map.wheel_disabled_set(bt.state)) hbox.pack_end(ck) ck.show() ck = elementary.Check(win) ck.text = "paused" ck.callback_changed_add(lambda bt: Map.paused_set(bt.state)) hbox.pack_end(ck) ck.show() print_map_info(Map) win.resize(600, 600) win.show()
def evas3d_clicked(obj, item=None): win = elementary.Window("evas3d", elementary.ELM_WIN_BASIC) win.title_set("Evas 3d test") win.autodel_set(True) if obj is None: win.callback_delete_request_add(lambda o: elementary.exit()) bg = elementary.Background(win) win.resize_object_add(bg) bg.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) bg.show() cube = Cube(win, 240, 240, 240) vbox = elementary.Box(win) vbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) win.resize_object_add(vbox) vbox.show() sl = elementary.Slider(win) sl.text = "Rot X" sl.unit_format = "%1.0f units" sl.span_size = 360 sl.min_max = (0, 360) sl.size_hint_align = (evas.EVAS_HINT_FILL, 0.5) sl.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) vbox.pack_end(sl) sl.callback_changed_add(ch_rot_x, cube) sl.show() sl = elementary.Slider(win) sl.text = "Rot Y" sl.unit_format = "%1.0f units" sl.span_size = 360 sl.min_max = (0, 360) sl.size_hint_align = (evas.EVAS_HINT_FILL, 0.5) sl.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) vbox.pack_end(sl) sl.callback_changed_add(ch_rot_y, cube) sl.show() sl = elementary.Slider(win) sl.text = "Rot Z" sl.unit_format = "%1.0f units" sl.span_size = 360 sl.min_max = (0, 360) sl.size_hint_align = (evas.EVAS_HINT_FILL, 0.5) sl.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) vbox.pack_end(sl) sl.callback_changed_add(ch_rot_z, cube) sl.show() sl = elementary.Slider(win) sl.text = "CX Off" sl.unit_format = "%1.0f units" sl.span_size = 360 sl.min_max = (-320, 320) sl.value = cube.cxo sl.size_hint_align = (evas.EVAS_HINT_FILL, 0.5) sl.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) vbox.pack_end(sl) sl.callback_changed_add(ch_cx, cube) sl.show() sl = elementary.Slider(win) sl.text = "CY Off" sl.unit_format = "%1.0f units" sl.span_size = 360 sl.min_max = (-320, 320) sl.value = cube.cyo sl.size_hint_align = (evas.EVAS_HINT_FILL, 0.5) sl.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) vbox.pack_end(sl) sl.callback_changed_add(ch_cy, cube) sl.show() sl = elementary.Slider(win) sl.text = "Foc" sl.unit_format = "%1.0f units" sl.span_size = 360 sl.min_max = (1, 2000) sl.value = cube.focv sl.size_hint_align = (evas.EVAS_HINT_FILL, 0.5) sl.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) vbox.pack_end(sl) sl.callback_changed_add(ch_foc, cube) sl.show() sl = elementary.Slider(win) sl.text = "Z0" sl.unit_format = "%1.0f units" sl.span_size = 360 sl.min_max = (-2000, 2000) sl.value = cube.z0v sl.size_hint_align = (evas.EVAS_HINT_FILL, 0.5) sl.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) vbox.pack_end(sl) sl.callback_changed_add(ch_z0, cube) sl.show() win.resize(480, 480) cube.update() win.show()
def window_states_clicked(obj): win = elementary.Window("window-states", elementary.ELM_WIN_BASIC) win.title = "Window States test" win.autodel = True win.callback_moved_add(cb_win_moved) if obj is None: win.callback_delete_request_add(lambda o: elementary.exit()) bg = elementary.Background(win) win.resize_object_add(bg) bg.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) bg.show() vbox = elementary.Box(win) vbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) win.resize_object_add(vbox) vbox.show() hbox = elementary.Box(win) hbox.horizontal = True hbox.size_hint_align = (evas.EVAS_HINT_FILL, 0.0) hbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0) vbox.pack_end(hbox) hbox.show() for state in [True, False]: bt = elementary.Button(win) bt.text = "Alpha " + ("On" if state else "Off") bt.size_hint_align = (evas.EVAS_HINT_FILL, 0.0) bt.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0) bt.callback_clicked_add(cb_alpha, win, bg, state) hbox.pack_end(bt) bt.show() sl = elementary.Slider(win) sl.text = "Visual test" sl.indicator_format = "%3.0f" sl.min_max = (50, 150) sl.value = 50 sl.inverted = True sl.size_hint_align = (0.5, evas.EVAS_HINT_FILL) sl.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) vbox.pack_end(sl) sl.show() ck = elementary.Check(win) ck.text = "Resize on rotate" ck.size_hint_align = (0.0, 0.0) vbox.pack_end(ck) ck.show() hbox = elementary.Box(win) hbox.horizontal = True hbox.size_hint_align = (evas.EVAS_HINT_FILL, 0.0) hbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0) vbox.pack_end(hbox) hbox.show() for rot in [0, 90, 180, 270]: bt = elementary.Button(win) bt.text = "Rot " + str(rot) bt.size_hint_align = (evas.EVAS_HINT_FILL, 0.0) bt.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0) bt.callback_clicked_add(cb_rot, win, ck, rot) hbox.pack_end(bt) bt.show() win.resize(280, 400) win.show()