def add_number_new_contact(self,emission, source, param): print "add new number called" #number = emission.part_text_get('number-text') #me = 'mirko' new_edje = gui.edje_gui(self.main,'dialpad_numbers',self.edje_file) #new_edje.edj.part_text_set('num_field-text',number) new_edje.edj.signal_emit('new_contact_mode','*') new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del) new_edje.edj.signal_callback_add("back", "*", new_edje.delete) new_edje.edj.signal_callback_add("add_digit", "*", self.add_digit) new_edje.edj.signal_callback_add("next-button", "*", self.add_name_new_contact,first_window=new_edje) new_edje.edj.layer_set(4) new_edje.edj.show()
def edit_number(self,emission, source, param, number, contact, details_window,first_window): print "edit number called" #number = emission.part_text_get('number-text') #last_window = emission number_type = param new_edje = gui.edje_gui(self.main,'dialpad_numbers',self.edje_file) new_edje.edj.part_text_set('num_field-text',number) new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del) new_edje.edj.signal_callback_add("back", "*", new_edje.delete) new_edje.edj.signal_callback_add("add_digit", "*", self.add_digit) new_edje.edj.signal_callback_add("save-button", "*", self.save_contact_number, 'number' , number_type, contact, details_window) new_edje.edj.signal_callback_add("save_successful", "*", first_window.delete) new_edje.edj.layer_set(4) new_edje.edj.show()
def add_name_new_contact(self,emission, source, param,first_window=None): print "add new name called" #print name number = emission.part_text_get('num_field-text') new_edje = gui.edje_gui(self.main,'edit-name',self.edje_file) name_field = gui.entry('Name',False) new_edje.text_field = name_field.entry box = gui.edje_box(self,'V',1) box.box.append(name_field.entry, gui.etk.VBox.START, gui.etk.VBox.NONE,0) new_edje.add(box.scrolled_view,box,"name-box") #new_edje.edj.part_text_set('num_field-text',number) new_edje.edj.signal_callback_add("close_w_textfield", "*", new_edje.close_extra_child) new_edje.edj.signal_callback_add("save_contact", "*", self.save_new_contact,name_object=new_edje,number=number,first_window=first_window) #new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del) new_edje.edj.layer_set(4) new_edje.edj.show()
def show_details(self, emission, source, param, message, canvas_obj): print "show details called" time = message.timestamp text = str(message.text).encode('utf8') print text new_edje = gui.edje_gui(self.main,'message_details',self.edje_file) new_edje.edj.part_text_set('name-text',str(message.peer).encode('utf8')) new_edje.edj.part_text_set('name-info',str(time)) new_edje.edj.part_text_set('number-text',str(message.peer.value).encode('utf8')) new_edje.edj.part_text_set('message-text',text) new_edje.edj.signal_callback_add("reply", "*", self.reply, message, new_edje) new_edje.edj.signal_callback_add("forward", "*", self.forward, message, new_edje) new_edje.edj.signal_callback_add("close_details", "*", self.close) new_edje.edj.signal_callback_add("delete_message", "*", self.delete_message, message, new_edje,emission, canvas_obj) new_edje.edj.signal_callback_add("top-bar", "*", self.top_bar) message.read() new_edje.edj.layer_set(3) new_edje.edj.show()
def edit_number_type(self, emission, source, param, contact, details_window, graphic_objects): print "edit number type called" print str(graphic_objects) number = emission.part_text_get('number-text') new_edje = gui.edje_gui(self.main, 'edit-number-type', self.edje_file) new_edje.edj.signal_callback_add("top_bar", "*", self.top_bar) #new_edje.edj.part_text_set('num_field-text',number) new_edje.edj.signal_callback_add("num_type_clicked", "*", self.edit_number, number, contact, details_window, new_edje, graphic_objects) new_edje.edj.signal_callback_add("back", "*", new_edje.delete) #new_edje.edj.signal_callback_add("add_digit", "*", self.add_digit) new_edje.edj.layer_set(4) new_edje.edj.show()
def run(self, parent=None, text=""): if isinstance(text, str): text = tichy.Text(text) #self.window = parent #print dir(parent.etk_obj) #self.window.etk_obj.hide() ##create main evas #self.main = gui.main_edje() self.main = parent ##set title self.main.etk_obj.title_set('Paroli Dialer') ##set edje_file self.edje_file = os.path.join(os.path.dirname(__file__), 'paroli-dialer.edj') ##connect to tichy's contacts service self.contact_service = Service('Contacts') ##get contacts list self.phone_book = self.contact_service.contacts ##create list for edje objects self.contact_objects_list = None ##create main window self.edje_obj = gui.edje_gui(self.main, 'tele', self.edje_file) self.edje_obj.edj.layer_set(2) self.edje_obj.edj.name_set('main_dialer_window') self.edje_obj.edj.show() self.edje_obj.edj.signal_callback_add("func_btn", "*", self.func_btn) self.edje_obj.edj.signal_callback_add("top_bar", "*", self.top_bar) self.edje_obj.edj.signal_callback_add("add_digit", "*", self.add_digit) self.edje_obj.edj.signal_callback_add("num_field_pressed", "*", self.num_field) ##wait until main object emits back signal yield tichy.Wait(self.main, 'back') ##remove all children -- edje elements for i in self.main.children: i.remove() self.main.etk_obj.hide() # Don't forget to close the window
def edit_name(self,emission, source, param, contact, first_window): print "edit name called" name = emission.part_text_get('name-text') new_edje = gui.edje_gui(self.main,'edit-name',self.edje_file) name_field = gui.entry(name,False) new_edje.text_field = name_field.entry box = gui.edje_box(self,'V',1) box.box.append(name_field.entry, gui.etk.VBox.START, gui.etk.VBox.NONE,0) new_edje.add(box.scrolled_view,box,"name-box") new_edje.edj.signal_emit('new_contact_mode','*') #new_edje.edj.part_text_set('num_field-text',number) new_edje.edj.signal_callback_add("next_step", "*", self.edit_name_info, contact, first_window,new_edje) new_edje.edj.signal_callback_add("close_w_textfield", "*", new_edje.close_extra_child) #new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del) new_edje.edj.layer_set(4) new_edje.edj.show()
def show_details(self, emission, source, param, contact, graphic_objects): print "show details called" self.main.etk_obj.x_window_virtual_keyboard_state_set(ecore.x.ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF) #number = emission.part_text_get('label-number') #name = emission.part_text_get('label') number = str(contact.tel) name = str(contact.name) info = str(contact.note) if hasattr(contact, 'note') else "" # The sim contact don't have a note new_edje = gui.edje_gui(self.main,'contacts_details',self.edje_file) new_edje.edj.part_text_set('number-text',number) new_edje.edj.part_text_set('name-text',name) new_edje.edj.signal_callback_add("call_contact", "*", self.call_contact) new_edje.edj.signal_callback_add("close_details", "*", self._close) new_edje.edj.signal_callback_add("edit_number", "*", self.edit_number_type, contact,new_edje, graphic_objects) new_edje.edj.signal_callback_add("edit_name", "*", self.edit_name, contact, new_edje, graphic_objects) new_edje.edj.signal_callback_add("delete_contact", "*", self.delete_contact, contact, new_edje,emission, graphic_objects) new_edje.edj.layer_set(3) new_edje.edj.show()
def edit_name(self,emission, source, param, contact, first_window, graphic_objects): print "edit name called" name = emission.part_text_get('name-text') new_edje = gui.edje_gui(self.main,'edit-name',self.edje_file) name_field = gui.entry(name,False) new_edje.text_field = name_field.entry box = gui.edje_box(self,'V',1) name_field.entry.focus() box.box.append(name_field.entry, gui.etk.VBox.START, gui.etk.VBox.NONE,0) new_edje.add(box.scrolled_view,box,"name-box") new_edje.edj.signal_emit('new_contact_mode','*') #new_edje.edj.part_text_set('num_field-text',number) new_edje.edj.signal_callback_add("next_step", "*", self.edit_name_info, contact, first_window,new_edje, graphic_objects) new_edje.edj.signal_callback_add("save_successful", "*", new_edje.close_extra_child) new_edje.edj.signal_callback_add("save_successful", "*", self.close_keyboard) #new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del) self.main.etk_obj.x_window_virtual_keyboard_state_set(ecore.x.ECORE_X_VIRTUAL_KEYBOARD_STATE_ON) new_edje.edj.layer_set(4) new_edje.edj.show()
def edit_name_info(self,emission, source, param, contact, first_window, last_window): print "edit info called" #name = emission.part_text_get('name-text') new_edje = gui.edje_gui(self.main,'edit-name',self.edje_file) info_field = gui.entry('info',False) new_edje.text_field = info_field.entry box = gui.edje_box(self,'V',1) box.box.append(info_field.entry, gui.etk.VBox.START, gui.etk.VBox.NONE,0) new_edje.add(box.scrolled_view,box,"name-box") #new_edje.edj.part_text_set('num_field-text',number) new_edje.edj.part_text_set('name-text','info') info = new_edje.text_field name = last_window.text_field #print name.text_get() new_edje.edj.signal_callback_add("save_contact", "*", self.save_contact_number, 'name' , new_edje.text_field, contact, first_window, name) new_edje.edj.signal_callback_add("close_w_textfield", "*", last_window.close_extra_child) new_edje.edj.signal_callback_add("save_successful", "*", new_edje.close_extra_child) #new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del) new_edje.edj.layer_set(4) new_edje.edj.show()
def create_message(self, emission, source, param, original_message=None, text=''): #print dir(emission) print "create message called" ##load main gui new_edje = gui.edje_gui(self.main,'dialpad_numbers',self.edje_file) ##set dialpad value to '' to not have NoneType problems new_edje.edj.part_text_set('num_field-text','') ## show main gui new_edje.edj.layer_set(3) new_edje.edj.show() ##add num-pad actions ##delete digit new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del) ##add digit new_edje.edj.signal_callback_add("add_digit", "*", self.add_digit) ##add window actions ##close window new_edje.edj.signal_callback_add("close_details", "*", self.close) ##add contact from phonebook new_edje.edj.signal_callback_add("num_field_pressed", "*", self.load_phone_book) ##go to next step new_edje.edj.signal_callback_add("next-button", "*", self.create_message_2, new_edje,'num_field-text',text, original_message) new_edje.edj.signal_callback_add("top_bar", "*", self.top_bar)
def run(self, parent, number, name=None): """show the Caller window :Parameters: parent : `tichy.gui.Widget` The parent window number : str | `tichy.Text` | Call object If the number is a string, we consider it to the number to call, otherwise we consider it to be a Call object that is already active. """ # We open a new window for a call #logger.info("Caller run") print "caller run" print "in caller: ", name self.gsm_service = tichy.Service('GSM') #print parent #print dir(parent) main = parent #main = parent #main.etk_obj.visibility_set(1) #main = parent main.etk_obj.title_set('Paroli Call') self.edje_file = os.path.join(os.path.dirname(__file__), 'paroli-dialer.edj') self.edje_obj = gui.edje_gui(main, 'tele', self.edje_file) self.edje_obj.edj.signal_callback_add("func_btn", "*", self.func_btn) self.edje_obj.edj.signal_callback_add("add_digit", "*", self.add_digit) self.edje_obj.edj.signal_callback_add("*", "*", self.gui_signals) #self.edje_obj.edj.signal_callback_add("num_field_pressed", "*", self.num_field_pressed) #self.window = gui.Window(parent) #frame = self.view(self.window, title='Dialer') #vbox = gui.Box(frame, axis=1) #text = tichy.Text("Initialization") #text.view(vbox) try: # The case when we have an incoming call # XXX: we should use an other way to check for a call object ! if not isinstance(number, (basestring, tichy.Text)): call = number #print dir(call) self.edje_obj.edj.signal_emit('to_incoming_state', "*") #self.edje_obj.edj.part_text_set('active-call',call.__id) self.edje_obj.edj.part_text_set('num_field-text', str(call.number)) self.edje_obj.edj.layer_set(2) self.edje_obj.edj.show() def make_active(emission, source, param): call.activate() print "making active" self.edje_obj.edj.signal_callback_add("activate_call", "*", make_active) else: # If not it means we want to initiate the call first if name: self.edje_obj.edj.part_text_set('num_field-text', str(name)) else: self.edje_obj.edj.part_text_set('num_field-text', str(number)) self.edje_obj.edj.signal_emit('to_dialing_state', "*") self.edje_obj.edj.layer_set(2) self.edje_obj.edj.show() #try: call = self.gsm_service.create_call(number) call.initiate() #except Exception,e : #print e def call_release_pre(emission, source, param): try: call.release() except Exception, e: print "exception here in pre state" call.emit('released') self.edje_obj.edj.signal_callback_add("release_call", "*", call_release_pre) i, args = yield tichy.WaitFirst(tichy.Wait(call, 'activated'), tichy.Wait(call, 'released')) if i == 0: #activated print "call activated" self.edje_obj.edj.signal_emit('to_active_state', "*") self.edje_obj.edj.part_text_set('num_field-text', str(call.number)) #print 'should be an active call here: ', self.gsm_service.gsm_call.ListCalls().__contains__('active') def call_release(emission, source, param): print "call releasing" try: call.release() except Exception, e: print e print "exception here" call.emit('released') #self.edje_obj.edj.signal_emit('notfound',"*") #yield tichy.Wait(call, 'released') self.edje_obj.edj.signal_callback_add("release_call", "*", call_release) yield tichy.WaitFirst(tichy.Wait(call, 'released'))
def run(self, parent, text = ""): if isinstance(text, str): text = tichy.Text(text) ##create main edje object, the evas object used to generate edje objects self.main = parent ##set the title of the window self.main.etk_obj.title_set('Paroli Msgs') ##direct connection to framework -- ONLY for TESTING #bus = dbus.SystemBus(mainloop=tichy.mainloop.dbus_loop) #self.gsm = bus.get_object('org.freesmartphone.ogsmd','/org/freesmartphone/GSM/Device') #self.gsm_service = tichy.Service('GSM') self.msgs_service = tichy.Service('Messages') inbox = self.msgs_service.inbox outbox = self.msgs_service.outbox all_list = inbox + outbox def comp(m1, m2): return cmp(m2.timestamp, m1.timestamp) all_list.sort(comp) #for e in all_list: #print e messages = all_list ##connect to tichy's contacts service self.contact_service = Service('Contacts') ##get contacts list self.phone_book = self.contact_service.contacts ## list used for messages TODO : Rename self.contact_objects_list = None ##set edje file to be used ##TODO: make one edje file per plugin self.edje_file = os.path.join(os.path.dirname(__file__),'paroli-msgs.edj') ##create application main window self.edje_obj = gui.edje_gui(self.main,'messages',self.edje_file) ##create scrollable box for contacts list contacts_box = gui.edje_box(self,'V',1) ##create list and populate box #print dir(self.phone_book) self.contact_objects_list = gui.contact_list(messages,contacts_box,self.main.etk_obj.evas,self.edje_file,'message_item',self,'msgs') ##add populated box to main window self.edje_obj.add(contacts_box.scrolled_view,contacts_box,"message-items") self.edje_obj.edj.signal_callback_add("create_message", "*", self.create_message) #self.edje_obj.edj.signal_callback_add("add_contact", "*", self.add_number_new_contact) self.edje_obj.edj.signal_callback_add("top_bar", "*", self.top_bar) self.edje_obj.edj.layer_set(2) self.edje_obj.edj.show() try: contacts_box.box.show() except Exception,e: print e
def run(self, parent=None, text=""): if isinstance(text, str): text = tichy.Text(text) #print dir(parent.etk_obj) #parent.etk_obj.title_set('parent') #parent.etk_obj.hide_all() self.main = parent self.main.etk_obj.title_set('Paroli I/O') self.history_items = [] self.edje_file = os.path.join(os.path.dirname(__file__), 'paroli-i-o.edj') #dir(main.etk_obj) #print dir(main) #self.window = gui.Window(parent, modal=True) #self.window.etk_obj.theme_file_set('../tichy/gui_p/edje/paroli-in-tichy.edj') #print self.window.etk_obj.theme_file_get() #self.window.etk_obj.theme_group_set('tele') #print self.window.etk_obj.theme_group_get() #self.window.etk_obj.title_set('paroli dialer') #self.window.etk_obj.show_all() #print dir(self.window.etk_obj) #self.window.show() #self.window.etk_obj.propagate_color_set(0) #print self.window.etk_obj.children_get() self.gsm_service = tichy.Service('GSM') #print dir(gsm_service.logs) #print "printing of dir done" #print str(gsm_service.logs) #for i in gsm_service.logs: #print dir(i) print "logs done" #self.history = [('Ali', '099872394'),('bachus', '098953214'),('julius', '059321894'),('zacharias', '04326953214'),('zuberio', '09922153214'),('oliver', '03322153214'),('Paula', '0225623614')] self.history = self.gsm_service.logs self.history_scroller = [ 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'i' ] #,'i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i' self.edje_obj = gui.edje_gui(self.main, 'i-o', self.edje_file) self.edje_obj.edj.layer_set(2) self.edje_obj.edj.show() self.edje_obj.edj.signal_callback_add("edit_btn_clicked", "*", self.edit_mode) self.edje_obj.edj.signal_callback_add("top-bar", "*", self.top_bar) history_box = gui.edje_box(self, 'V', 1) self.lists = gui.lists() try: #self.lists.generate_list(self,self.main.etk_obj.evas,self.history_scroller,history_edje,self.edje_obj,'history_item') self.history_objects_list = gui.contact_list( self.history, history_box, self.main.etk_obj.evas, self.edje_file, 'history_item', self, kind='history') except Exception, e: print e