def __init__(self): 'Initial method to generate the "Messenger" menu' # =============Messenger tab creation=============== # (1) TABLE: Widget container ## --9 x 8 table creation self.table = gtk.Table(9, 8, True) self.table.show() # (2) LABEL: Window title titulo = Label('Messenger', 'Neuropol 31', orange, 0.5, 0.5, gtk.JUSTIFY_CENTER) self.table.attach(titulo, 6, 8, 0, 2) # (3) FRAMES & IMAGES: General menu images GralIconsON = [] ## --'Necessities and Desires' option url = 'Images\\Necessity&Desire\\SNecessities_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[0], 2, 3, 0, 2) ## --'Mobility' option url = 'Images\\Mobility\\SMobility_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[1], 3, 4, 0, 2) ## --'Environmental Control' option url = 'Images\\EnvControl\\SHomeControl_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[2], 4, 5, 0, 2) ## --'Messenger' option url = 'Images\\Messenger\\LChat_on.png' msg_event, msg_image = Event_Image(url, ground) msg_event.set_border_width(10) GralIconsON.append(msg_image) self.table.attach(msg_event, 5, 6, 0, 2) # (4) IMAGES: Icons for cue indication CueSignals = [] # -- cue: Left MI performance url = 'Images\\User_Tutorial\\left.png' image = Image(url) CueSignals.append(image) # -- cue: Right MI performance url = 'Images\\User_Tutorial\\right.png' image = Image(url) CueSignals.append(image) # -- cue: Idle MI performance url = 'Images\\User_Tutorial\\idle.png' image = Image(url) CueSignals.append(image) # (5) TEXT ENTRY ## -- text entry entry = gtk.Entry(False) entry.modify_font(pango.FontDescription(small_font)) entry.show() self.table.attach(entry, 1, 8, 2, 3) ## -- text- image url = 'Images\\Messenger\\Text_off.png' writeOFF = Image(url) self.table.attach(writeOFF, 0, 1, 2, 3) # (6) BUTTONS: Messenger main menu mainmenu_labels, mainmenu_buttons = [], [] labels = ['a b c d e', 'f g h i j', 'k l m n o',\ 'p q r s t', 'uv wx yz', 'Options', 'Emotions', 'E X I T'] for index in range(8): button, label = Button_Label(labels[index], lblue, lblue, medium_font) label.set_ellipsize(pango.ELLIPSIZE_MIDDLE) self.table.attach(button, index, index+1, 3, 4) mainmenu_labels.append(label) mainmenu_buttons.append(button) # (7) BUTTONS: Messenger sub - menu submenu_buttons, submenu_labels = [], [] for x in range(8): subutton, sublabel = Button_Label('', lblue, 'white', medium_font) sublabel.set_ellipsize(pango.ELLIPSIZE_MIDDLE) self.table.attach(subutton, x, x+1, 4, 5) submenu_buttons.append(subutton) submenu_labels.append(sublabel) # (8) TEXT DISPLAY frame_win, textview, textbuffer, tagB, tagG = Window_TextView(medium_font, blue) self.table.attach(frame_win, 0, 8, 5, 8) # (9) FRAME & LABEL: Available options ## --frame creation frame, label = Frame_Label('AVAILABLE OPTIONS', ground, lblue, small_font, 0, 0.5, gtk.JUSTIFY_CENTER) self.table.attach(frame, 0, 8, 8, 9) ## --menu of options options_menu = [] for index in range(8): option = Label('', medium_font, 'black', 0.5, 0.5, gtk.JUSTIFY_CENTER) self.table.attach(option, index, index+1, 8, 9) options_menu.append(option) # (10) IMAGES: general menu images GralIconsOFF = [] GralIconsOFF.append(Image('Images\\Necessity&Desire\\SNecessities_off.png')) GralIconsOFF.append(Image('Images\\Mobility\\SMobility_off.png')) GralIconsOFF.append(Image('Images\\EnvControl\\SHomeControl_off.png')) GralIconsOFF.append(Image('Images\\Messenger\\LChat_off.png')) writeON = Image('Images\\Messenger\\Text_on.png') self.msg_MI = Image('Images\\Messenger\\LChat_MI.png') #(11) IMAGES: emotion submenu SelectedEmotion = [] SelectedEmotion.append(Image('Images\\Messenger\\joy_selection.png')) SelectedEmotion.append(Image('Images\\Messenger\\sadness_selection.png')) SelectedEmotion.append(Image('Images\\Messenger\\trust_selection.png')) SelectedEmotion.append(Image('Images\\Messenger\\disgust_selection.png')) SelectedEmotion.append(Image('Images\\Messenger\\fear_selection.png')) SelectedEmotion.append(Image('Images\\Messenger\\anger_selection.png')) SelectedEmotion.append(Image('Images\\Messenger\\surprise_selection.png')) SelectedEmotion.append(Image('Images\\Messenger\\anticipation_selection.png')) #(12) Widgets assignation to enable them in the following # methods ## -- ButtonS self.mainmenu_buttons = mainmenu_buttons self.submenu_buttons = submenu_buttons ## -- ImageS self.msg_image = msg_image self.writeOFF = writeOFF self.writeON = writeON self.GralIconsOFF = GralIconsOFF self.GralIconsON = GralIconsON self.SelectedEmotion = SelectedEmotion ## -- FrameS self.msg_event = msg_event self.frame_win = frame_win ## -- LabelS self.CueSignals = CueSignals self.titulo = titulo self.mainmenu_labels = mainmenu_labels self.submenu_labels = submenu_labels self.options_menu = options_menu ## -- TextEntrY self.entry = entry ## -- TextDiplaY self.textview = textview self.textbuffer = textbuffer self.tagB, self.tagG = tagB, tagG ## -- Variable Declaration self.CUE = None # Messages variables self.text, self.OPTIONS, self.num_space = '', ['','','','','','','',''], 0
def __init__(self): 'Initial method to generate the "Environment Control" menu' # ======== Environment Control tab creation========= # (1) TABLE: Widget container ## --9 x 8 table creation self.table = gtk.Table(9, 8, True) self.table.show() # (2) LABEL: Window title titulo = Label('Environment\nControl', 'Neuropol 31', orange, 0.5, 0.5, gtk.JUSTIFY_CENTER) self.table.attach(titulo, 6, 8, 0, 2) # (3) FRAMES & IMAGES: General menu images GralIconsON = [] ## --'Necessities and Desires' option url = 'Images\\Necessity&Desire\\SNecessities_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[0], 2, 3, 0, 2) ## --'Mobility' option url = 'Images\\Mobility\\SMobility_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[1], 3, 4, 0, 2) ## --'Environmental Control' option url = 'Images\\EnvControl\\LHomeControl_on.png' EC_event, EC_image = Event_Image(url, ground) EC_event.set_border_width(10) GralIconsON.append(EC_image) self.table.attach(EC_event, 4, 5, 0, 2) ## --'Messenger' option url = 'Images\\Messenger\\SChat_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[3], 5, 6, 0, 2) # (4) IMAGES: Icons for cue indication CueSignals = [] # -- cue: Left MI performance url = 'Images\\User_Tutorial\\left.png' image = Image(url) CueSignals.append(image) # -- cue: Right MI performance url = 'Images\\User_Tutorial\\right.png' image = Image(url) CueSignals.append(image) # -- cue: Idle MI performance url = 'Images\\User_Tutorial\\idle.png' image = Image(url) CueSignals.append(image) # (5) LABELS: Icon labels for main menu mainmenu_labels, x, y = [], 1, 4 # --- exit label = Label('Exit', medium_font, lblue, 0.1, 0.8, gtk.JUSTIFY_LEFT) self.table.attach(label, 0, 2, 2, 4) mainmenu_labels.append(label) # --- switch room label = Label('Switch\nRoom', medium_font, lblue, 0.5, 0.8, gtk.JUSTIFY_CENTER) self.table.attach(label, 0, 3, 2, 4) mainmenu_labels.append(label) # --- rooms # room label self.table.attach(Image('Images\\EnvControl\\border.png'), 2, 6, 2, 3) Current_Room = Label(ROOMS[0], 'Neuropol 20', "#644080", 0.5, 0.5, gtk.JUSTIFY_CENTER) self.table.attach(Current_Room, 6, 8, 2, 3) # internal items Rooms = [ 'Blinds ||\nCurtains', 'Doors', 'Heating', 'Light', 'Stereo ||\nTelevision', 'Windows' ] for room in Rooms[:-1]: label = Label(room, medium_font, lblue, 0.5, 0.8, gtk.JUSTIFY_CENTER) self.table.attach(label, x, y, 2, 4) mainmenu_labels.append(label) x += 1 y += 1 # last item label = Label(Rooms[-1], medium_font, lblue, 0.9, 0.8, gtk.JUSTIFY_RIGHT) self.table.attach(label, 6, 8, 2, 4) mainmenu_labels.append(label) # (6) EVENTS & IMAGES: main menu images mainmenu_events, mainmenu_imagesOFF, x, y = [], [], 0, 1 URLs = ['Images\\EnvControl\\Exit_off.png',\ 'Images\\EnvControl\\Switch_off.png',\ 'Images\\EnvControl\\Curtains_off.png',\ 'Images\\EnvControl\\Door_off.png',\ 'Images\\EnvControl\\Heating_off.png',\ 'Images\\EnvControl\\Light_off.png',\ 'Images\\EnvControl\\Television_off.png',\ 'Images\\EnvControl\\Windows_off.png'] for url in URLs: eventbox, image = Event_Image(url, ground) self.table.attach(eventbox, x, y, 4, 6) mainmenu_events.append(eventbox) mainmenu_imagesOFF.append(image) x += 1 y += 1 # (7) BUTTONS: list of EC Tasks submenu_labels, submenu_buttons = [], [] for x in range(0, 8): button, label = Button_Label('', lblue, 'white', medium_font) label.set_ellipsize(pango.ELLIPSIZE_MIDDLE) self.table.attach(button, x, x + 1, 6, 8) submenu_labels.append(label) submenu_buttons.append(button) # (8) IMAGES: general menu images for OFF state GralIconsOFF = [] GralIconsOFF.append( Image('Images\\Necessity&Desire\\SNecessities_off.png')) GralIconsOFF.append(Image('Images\\Mobility\\SMobility_off.png')) GralIconsOFF.append(Image('Images\\EnvControl\\LHomeControl_off.png')) GralIconsOFF.append(Image('Images\\Messenger\\SChat_off.png')) # (9) IMAGES: main menu images for ON state mainmenu_imagesON = [] mainmenu_imagesON.append(Image('Images\\EnvControl\\Exit_on.png')) mainmenu_imagesON.append(Image('Images\\EnvControl\\Switch_on.png')) mainmenu_imagesON.append(Image('Images\\EnvControl\\Curtains_on.png')) mainmenu_imagesON.append(Image('Images\\EnvControl\\Door_on.png')) mainmenu_imagesON.append(Image('Images\\EnvControl\\Heating_on.png')) mainmenu_imagesON.append(Image('Images\\EnvControl\\Light_on.png')) mainmenu_imagesON.append( Image('Images\\EnvControl\\Television_on.png')) mainmenu_imagesON.append(Image('Images\\EnvControl\\Windows_on.png')) # (10) IMAGE: general menu image for MI state self.EC_MI = Image('Images\\EnvControl\\LHomeControl_MI.png') #(11) FRAME & LABELS: history of the selected tasks frame, label = Frame_Label('HISTORY - Recently Selected Tasks', ground, lblue, small_font, 0, 0.5, gtk.JUSTIFY_CENTER) self.table.attach(frame, 0, 8, 8, 9) History_Labels = [] History_Labels.append( Label('', small_font, 'black', 0.1, 0.9, gtk.JUSTIFY_LEFT)) self.table.attach(History_Labels[0], 0, 1, 8, 9) for index in range(1, 8): History_Labels.append( Label('', small_font, lblue, 0.1, 0.9, gtk.JUSTIFY_LEFT)) self.table.attach(History_Labels[index], index, index + 1, 8, 9) # (12) Widgets assignation to enable them in the following # methods # -- ButtonS self.submenu_buttons = submenu_buttons # -- ImageS self.GralIconsON = GralIconsON self.GralIconsOFF = GralIconsOFF self.mainmenu_imagesOFF = mainmenu_imagesOFF self.mainmenu_imagesON = mainmenu_imagesON # -- Events self.mainmenu_events = mainmenu_events # -- FrameS self.EC_event = EC_event # -- LabelS self.CueSignals = CueSignals self.Current_Room = Current_Room self.titulo = titulo self.mainmenu_labels = mainmenu_labels self.submenu_labels = submenu_labels self.History_Labels = History_Labels # -- Variable Declaration self.History, self.CUE = ['', '', '', '', '', '', '', ''], None
def __init__(self): 'Initial method to generate the "Mobility" menu' # =============Mobility tab creation=============== # (1) TABLE: Widget container ## --9 x 8 table creation self.table = gtk.Table(9, 8, True) self.table.show() # (2) LABEL: Window title titulo = Label('Mobility', 'Neuropol 31', orange, 0.5, 0.5, gtk.JUSTIFY_CENTER) self.table.attach(titulo, 6, 8, 0, 2) # (3) FRAMES & IMAGES: General menu images GralIconsON = [] ## --'Necessities and Desires' option url = 'Images\\Necessity&Desire\\SNecessities_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[0], 2, 3, 0, 2) ## --'Mobility' option url = 'Images\\Mobility\\LMobility_on.png' mob_event, mob_image = Event_Image(url, ground) mob_event.set_border_width(10) GralIconsON.append(mob_image) self.table.attach(mob_event, 3, 4, 0, 2) ## --'Environmental Control' option url = 'Images\\EnvControl\\SHomeControl_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[2], 4, 5, 0, 2) ## --'Messenger' option url = 'Images\\Messenger\\SChat_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[3], 5, 6, 0, 2) # (4) IMAGES: Icons for cue indication CueSignals = [] # -- cue: Left MI performance url = 'Images\\User_Tutorial\\left.png' image = Image(url) CueSignals.append(image) # -- cue: Right MI performance url = 'Images\\User_Tutorial\\right.png' image = Image(url) CueSignals.append(image) # -- cue: Idle MI performance url = 'Images\\User_Tutorial\\idle.png' image = Image(url) CueSignals.append(image) # (5) EVENTS & IMAGES: Room Selection mainmenu_icons, mainmenu_imagesOFF = [], [] # --- exit eventbox, image = Event_Image('Images\\Mobility\\Exit_off.png', ground) eventbox.set_size_request(95, 95) self.table.attach(eventbox, 0, 1, 3, 5) mainmenu_icons.append(eventbox) mainmenu_imagesOFF.append(image) # --- caregiver's room eventbox, image = Event_Image('Images\\Mobility\\BedRoom2_off.png', ground) eventbox.set_size_request(250, 95) self.table.attach(eventbox, 1, 3, 3, 5) mainmenu_icons.append(eventbox) mainmenu_imagesOFF.append(image) # --- bathroom eventbox, image = Event_Image('Images\\Mobility\\BathRoom_off.png', ground) eventbox.set_size_request(250, 95) self.table.attach(eventbox, 3, 5, 3, 5) mainmenu_icons.append(eventbox) mainmenu_imagesOFF.append(image) # ---my bedroom eventbox, image = Event_Image('Images\\Mobility\\BedRoom1_off.png', ground) eventbox.set_size_request(250, 95) self.table.attach(eventbox, 5, 7, 3, 5) mainmenu_icons.append(eventbox) mainmenu_imagesOFF.append(image) # --- exit eventbox, image = Event_Image('Images\\Mobility\\Exit_off.png', ground) eventbox.set_size_request(95, 95) self.table.attach(eventbox, 7, 8, 3, 5) mainmenu_icons.append(eventbox) mainmenu_imagesOFF.append(image) # --- living room eventbox, image = Event_Image('Images\\Mobility\\LivingRoom_off.png', ground) eventbox.set_size_request(250, 95) self.table.attach(eventbox, 1, 3, 5, 7) mainmenu_icons.append(eventbox) mainmenu_imagesOFF.append(image) # --- entrance eventbox, image = Event_Image('Images\\Mobility\\Entrance_off.png', ground) eventbox.set_size_request(250, 95) self.table.attach(eventbox, 3, 5, 5, 7) mainmenu_icons.append(eventbox) mainmenu_imagesOFF.append(image) # --- kitchen eventbox, image = Event_Image('Images\\Mobility\\Kitchen_off.png', ground) eventbox.set_size_request(250, 95) self.table.attach(eventbox, 5, 7, 5, 7) mainmenu_icons.append(eventbox) mainmenu_imagesOFF.append(image) # (6) LABELS: Icon labels for main menu mainmenu_labels = [] # --- exit label = Label('Exit', medium_font, lblue, 0.5, 0.8, gtk.JUSTIFY_CENTER) label.set_size_request(95, 20) self.table.attach(label, 0, 1, 2, 3) mainmenu_labels.append(label) # --- caregiver's room label = Label('Carer-Room', medium_font, lblue, 0.5, 0.8, gtk.JUSTIFY_CENTER) label.set_size_request(250, 20) self.table.attach(label, 1, 3, 2, 3) mainmenu_labels.append(label) # --- bathroom label = Label('Bathroom', medium_font, lblue, 0.5, 0.8, gtk.JUSTIFY_CENTER) label.set_size_request(250, 20) self.table.attach(label, 3, 5, 2, 3) mainmenu_labels.append(label) # ---my bedroom label = Label('My Bedroom', medium_font, lblue, 0.5, 0.8, gtk.JUSTIFY_CENTER) label.set_size_request(250, 20) mainmenu_labels.append(label) self.table.attach(label, 5, 7, 2, 3) # --- exit label = Label('Exit', medium_font, lblue, 0.5, 0.8, gtk.JUSTIFY_CENTER) eventbox.set_size_request(95, 20) mainmenu_labels.append(label) self.table.attach(label, 7, 8, 2, 3) # --- living room label = Label('Living-Room', medium_font, lblue, 0.5, 0.2, gtk.JUSTIFY_CENTER) label.set_size_request(250, 20) mainmenu_labels.append(label) self.table.attach(label, 1, 3, 7, 8) # --- entrance label = Label('Entrance', medium_font, lblue, 0.5, 0.2, gtk.JUSTIFY_CENTER) label.set_size_request(250, 20) mainmenu_labels.append(label) self.table.attach(label, 3, 5, 7, 8) # --- kitchen label = Label('Kitchen', medium_font, lblue, 0.5, 0.2, gtk.JUSTIFY_CENTER) label.set_size_request(250, 20) mainmenu_labels.append(label) self.table.attach(label, 5, 7, 7, 8) # (7) IMAGES: general menu images for OFF state GralIconsOFF = [] GralIconsOFF.append( Image('Images\\Necessity&Desire\\SNecessities_off.png')) GralIconsOFF.append(Image('Images\\Mobility\\LMobility_off.png')) GralIconsOFF.append(Image('Images\\EnvControl\\SHomeControl_off.png')) GralIconsOFF.append(Image('Images\\Messenger\\SChat_off.png')) # (8) IMAGES: main menu images for ON state mainmenu_imagesON = [] mainmenu_imagesON.append(Image('Images\\Mobility\\Exit_on.png')) mainmenu_imagesON.append(Image('Images\\Mobility\\BedRoom2_on.png')) mainmenu_imagesON.append(Image('Images\\Mobility\\BathRoom_on.png')) mainmenu_imagesON.append(Image('Images\\Mobility\\BedRoom1_on.png')) mainmenu_imagesON.append(Image('Images\\Mobility\\Exit_on.png')) mainmenu_imagesON.append(Image('Images\\Mobility\\LivingRoom_on.png')) mainmenu_imagesON.append(Image('Images\\Mobility\\Entrance_on.png')) mainmenu_imagesON.append(Image('Images\\Mobility\\Kitchen_on.png')) mainmenu_selection = [] mainmenu_selection.append(Image('Images\\Mobility\\Exit.png')) mainmenu_selection.append(Image('Images\\Mobility\\BedRoom2.png')) mainmenu_selection.append(Image('Images\\Mobility\\BathRoom.png')) mainmenu_selection.append(Image('Images\\Mobility\\BedRoom1.png')) mainmenu_selection.append(Image('Images\\Mobility\\Exit.png')) mainmenu_selection.append(Image('Images\\Mobility\\LivingRoom.png')) mainmenu_selection.append(Image('Images\\Mobility\\Entrance.png')) mainmenu_selection.append(Image('Images\\Mobility\\Kitchen.png')) # (9) IMAGE: general menu image for MI state self.mob_MI = Image('Images\\Mobility\\LMobility_MI.png') # (10) FRAME & LABELS: history of the selected tasks frame, label = Frame_Label('HISTORY - Recently Selected Places', ground, lblue, small_font, 0, 0.5, gtk.JUSTIFY_CENTER) self.table.attach(frame, 0, 8, 8, 9) History_Labels = [] History_Labels.append( Label('', small_font, 'black', 0.1, 0.6, gtk.JUSTIFY_LEFT)) self.table.attach(History_Labels[0], 0, 1, 8, 9) for index in range(1, 8): History_Labels.append( Label('', small_font, lblue, 0.1, 0.6, gtk.JUSTIFY_LEFT)) self.table.attach(History_Labels[index], index, index + 1, 8, 9) #(11) Widgets assignation to enable them in following # methods ## -- ContainerS self.mainmenu_icons = mainmenu_icons self.mob_event = mob_event ## -- ImageS self.CueSignals = CueSignals self.GralIconsON = GralIconsON self.GralIconsOFF = GralIconsOFF self.mainmenu_imagesON = mainmenu_imagesON self.mainmenu_imagesOFF = mainmenu_imagesOFF self.mainmenu_selection = mainmenu_selection ## -- LabelS self.mainmenu_labels = mainmenu_labels self.titulo = titulo self.History_Labels = History_Labels ## -- Variable Declaration self.History, self.CUE = ['', '', '', '', '', '', '', ''], None
def __init__(self): 'Initial method to generate the "User-Tutorial" menu' # ============User-Tutorial tab creation============== # (1) TABLE: Widget container ## --9 x 8 table creation self.table = gtk.Table(9, 8, False) self.table.show() # (2) LABEL: Window title titulo = Label('Menu 1', 'Neuropol 33', orange, 0.5, 0.5, gtk.JUSTIFY_CENTER) titulo.hide() self.table.attach(titulo, 6, 8, 0, 2) # (3) IMAGES: Icons for cue indication (Tutorial_MI mode) CueSignals = [[],[]] # -- cue: MI preparation url = 'Images\\User_Tutorial\\cue_warning.png' image = Image(url) CueSignals[0].append(image) # -- cue: Left MI performance url = 'Images\\User_Tutorial\\cue_left.png' image = Image(url) CueSignals[0].append(image) # -- cue: Right MI performance url = 'Images\\User_Tutorial\\cue_right.png' image = Image(url) CueSignals[0].append(image) # -- cue: Idle MI performance url = 'Images\\User_Tutorial\\cue_idle.png' image = Image(url) CueSignals[0].append(image) # (4) IMAGES: Icons for cue indication (Tutorial_CMD mode) # -- cue: Left MI performance url = 'Images\\User_Tutorial\\left.png' image = Image(url) CueSignals[1].append(image) # -- cue: Right MI performance url = 'Images\\User_Tutorial\\right.png' image = Image(url) CueSignals[1].append(image) # -- cue: Idle MI performance url = 'Images\\User_Tutorial\\idle.png' image = Image(url) CueSignals[1].append(image) # (5) IMAGES: General menu images MiniIconsON, GralEvents = [], [] for index in range(2,6): url = 'Images\\User_Tutorial\\minimenu_on.png' event, image = Event_Image(url, ground) event.hide() MiniIconsON.append(image) GralEvents.append(event) self.table.attach(event, index, index+1, 0, 2) # (6) LABELS: main menu labels mainmenu_labels, x, y = [], 0, 1 Mnum = 'TAB 1'.split()[-1] for item in MainMenu: if item.lower() != 'exit': rename= item.split(' ') rename= [rename[0], '\n', Mnum, '.', rename[-1]] item = ''.join(rename) label = Label(item, medium_font, lblue, 0.5, 0.9, gtk.JUSTIFY_CENTER) label.set_ellipsize(pango.ELLIPSIZE_MIDDLE) label.hide() mainmenu_labels.append(label) self.table.attach(label, x, y, 2, 4) x += 1 y += 1 # (7) IMAGES: main menu images mainmenu_events, mainmenu_imagesOFF = [], [] for index in range(7): url = 'Images\\User_Tutorial\\option_off.png' event, image = Event_Image(url, ground) event.hide() mainmenu_events.append(event) mainmenu_imagesOFF.append(image) self.table.attach(event, index, index+1, 4, 6) url = 'Images\\User_Tutorial\\Exit_off.png' event, image = Event_Image(url, ground) event.hide() mainmenu_events.append(event) mainmenu_imagesOFF.append(image) self.table.attach(event, 7, 8, 4, 6) # (8) BUTTONS: list of tasks submenu_labels, submenu_buttons= [], [] for x in range(0,8): button, label = Button_Label('', lblue, 'white', medium_font) label.set_ellipsize(pango.ELLIPSIZE_MIDDLE) button.hide() self.table.attach(button, x, x+1, 6, 8) submenu_labels.append(label) submenu_buttons.append(button) # (9) IMAGES: menu images for OFF or ON states MiniIconsOFF, GralIconsON, GralIconsOFF, mainmenu_imagesON, submenu_imagesON = [], [], [], [], [] for index in range(4): MiniIconsOFF.append(Image('Images\\User_Tutorial\\minimenu_off.png')) GralIconsON.append(Image('Images\\User_Tutorial\\menu_on.png')) GralIconsOFF.append(Image('Images\\User_Tutorial\\menu_off.png')) for index in range(7): mainmenu_imagesON.append(Image('Images\\User_Tutorial\\option_on.png')) mainmenu_imagesON.append(Image('Images\\User_Tutorial\\Exit_on.png')) for index in range(8): submenu_imagesON.append(Image('Images\\User_Tutorial\\task_on.png')) # (10) FRAME & LABELS: history of the selected tasks self.History_Frame, label = Frame_Label('HISTORY - Recently Selected Tasks', ground, lblue, small_font, 0, 0.5, gtk.JUSTIFY_CENTER) self.History_Frame.hide() self.table.attach(self.History_Frame, 0, 8, 8, 9) History_Labels = [] History_Labels.append(Label('', small_font, 'black', 0.1, 0.7, gtk.JUSTIFY_LEFT)) self.table.attach(History_Labels[0], 0, 1, 8, 9) for index in range(1,8): History_Labels.append(Label('', small_font, lblue, 0.1, 0.7, gtk.JUSTIFY_LEFT)) self.table.attach(History_Labels[index], index, index+1, 8, 9) for widget in History_Labels: widget.hide() #(11)Widgets assignation to enable them in the following # methods # -- ImageS self.CueSignals = CueSignals self.MiniIconsON = MiniIconsON self.MiniIconsOFF = MiniIconsOFF self.GralIconsON = GralIconsON self.GralIconsOFF = GralIconsOFF self.mainmenu_imagesOFF = mainmenu_imagesOFF self.mainmenu_imagesON = mainmenu_imagesON # -- Events self.GralEvents = GralEvents self.mainmenu_events = mainmenu_events # -- Labels self.mainmenu_labels= mainmenu_labels self.submenu_labels = submenu_labels self.History_Labels = History_Labels self.titulo = titulo # -- ButtonS self.submenu_buttons = submenu_buttons # -- Variable Declaration self.History = ['','','','','','','','']
class UT_menu(): 'Class to control the "User-Tutorial" tab' #.............Method 1: Initialization Process.......... def __init__(self): 'Initial method to generate the "User-Tutorial" menu' # ============User-Tutorial tab creation============== # (1) TABLE: Widget container ## --9 x 8 table creation self.table = gtk.Table(9, 8, False) self.table.show() # (2) LABEL: Window title titulo = Label('Menu 1', 'Neuropol 33', orange, 0.5, 0.5, gtk.JUSTIFY_CENTER) titulo.hide() self.table.attach(titulo, 6, 8, 0, 2) # (3) IMAGES: Icons for cue indication (Tutorial_MI mode) CueSignals = [[],[]] # -- cue: MI preparation url = 'Images\\User_Tutorial\\cue_warning.png' image = Image(url) CueSignals[0].append(image) # -- cue: Left MI performance url = 'Images\\User_Tutorial\\cue_left.png' image = Image(url) CueSignals[0].append(image) # -- cue: Right MI performance url = 'Images\\User_Tutorial\\cue_right.png' image = Image(url) CueSignals[0].append(image) # -- cue: Idle MI performance url = 'Images\\User_Tutorial\\cue_idle.png' image = Image(url) CueSignals[0].append(image) # (4) IMAGES: Icons for cue indication (Tutorial_CMD mode) # -- cue: Left MI performance url = 'Images\\User_Tutorial\\left.png' image = Image(url) CueSignals[1].append(image) # -- cue: Right MI performance url = 'Images\\User_Tutorial\\right.png' image = Image(url) CueSignals[1].append(image) # -- cue: Idle MI performance url = 'Images\\User_Tutorial\\idle.png' image = Image(url) CueSignals[1].append(image) # (5) IMAGES: General menu images MiniIconsON, GralEvents = [], [] for index in range(2,6): url = 'Images\\User_Tutorial\\minimenu_on.png' event, image = Event_Image(url, ground) event.hide() MiniIconsON.append(image) GralEvents.append(event) self.table.attach(event, index, index+1, 0, 2) # (6) LABELS: main menu labels mainmenu_labels, x, y = [], 0, 1 Mnum = 'TAB 1'.split()[-1] for item in MainMenu: if item.lower() != 'exit': rename= item.split(' ') rename= [rename[0], '\n', Mnum, '.', rename[-1]] item = ''.join(rename) label = Label(item, medium_font, lblue, 0.5, 0.9, gtk.JUSTIFY_CENTER) label.set_ellipsize(pango.ELLIPSIZE_MIDDLE) label.hide() mainmenu_labels.append(label) self.table.attach(label, x, y, 2, 4) x += 1 y += 1 # (7) IMAGES: main menu images mainmenu_events, mainmenu_imagesOFF = [], [] for index in range(7): url = 'Images\\User_Tutorial\\option_off.png' event, image = Event_Image(url, ground) event.hide() mainmenu_events.append(event) mainmenu_imagesOFF.append(image) self.table.attach(event, index, index+1, 4, 6) url = 'Images\\User_Tutorial\\Exit_off.png' event, image = Event_Image(url, ground) event.hide() mainmenu_events.append(event) mainmenu_imagesOFF.append(image) self.table.attach(event, 7, 8, 4, 6) # (8) BUTTONS: list of tasks submenu_labels, submenu_buttons= [], [] for x in range(0,8): button, label = Button_Label('', lblue, 'white', medium_font) label.set_ellipsize(pango.ELLIPSIZE_MIDDLE) button.hide() self.table.attach(button, x, x+1, 6, 8) submenu_labels.append(label) submenu_buttons.append(button) # (9) IMAGES: menu images for OFF or ON states MiniIconsOFF, GralIconsON, GralIconsOFF, mainmenu_imagesON, submenu_imagesON = [], [], [], [], [] for index in range(4): MiniIconsOFF.append(Image('Images\\User_Tutorial\\minimenu_off.png')) GralIconsON.append(Image('Images\\User_Tutorial\\menu_on.png')) GralIconsOFF.append(Image('Images\\User_Tutorial\\menu_off.png')) for index in range(7): mainmenu_imagesON.append(Image('Images\\User_Tutorial\\option_on.png')) mainmenu_imagesON.append(Image('Images\\User_Tutorial\\Exit_on.png')) for index in range(8): submenu_imagesON.append(Image('Images\\User_Tutorial\\task_on.png')) # (10) FRAME & LABELS: history of the selected tasks self.History_Frame, label = Frame_Label('HISTORY - Recently Selected Tasks', ground, lblue, small_font, 0, 0.5, gtk.JUSTIFY_CENTER) self.History_Frame.hide() self.table.attach(self.History_Frame, 0, 8, 8, 9) History_Labels = [] History_Labels.append(Label('', small_font, 'black', 0.1, 0.7, gtk.JUSTIFY_LEFT)) self.table.attach(History_Labels[0], 0, 1, 8, 9) for index in range(1,8): History_Labels.append(Label('', small_font, lblue, 0.1, 0.7, gtk.JUSTIFY_LEFT)) self.table.attach(History_Labels[index], index, index+1, 8, 9) for widget in History_Labels: widget.hide() #(11)Widgets assignation to enable them in the following # methods # -- ImageS self.CueSignals = CueSignals self.MiniIconsON = MiniIconsON self.MiniIconsOFF = MiniIconsOFF self.GralIconsON = GralIconsON self.GralIconsOFF = GralIconsOFF self.mainmenu_imagesOFF = mainmenu_imagesOFF self.mainmenu_imagesON = mainmenu_imagesON # -- Events self.GralEvents = GralEvents self.mainmenu_events = mainmenu_events # -- Labels self.mainmenu_labels= mainmenu_labels self.submenu_labels = submenu_labels self.History_Labels = History_Labels self.titulo = titulo # -- ButtonS self.submenu_buttons = submenu_buttons # -- Variable Declaration self.History = ['','','','','','','',''] #..........Method 2: Returning widgets container........ def UT_container(self): 'User_Tutorial table for being appended to the notebook' return self.table #.. Method 3: System Preconfiguration - CMD Tutorial ... def UT_CMDSysConfig(self): 'Configuration of the Command-Tutorial System: \ 1) Widget Visibility & 2) Variable Declaration' # (1) Control variable declaration self.gralmenu_indexes = range(4) self.current_menu = self.gralmenu_indexes.pop(0) self.gralmenu_indexes.append(self.current_menu) self.Titles = ['TAB 1','TAB 2','TAB 3','TAB 4'] # --- Current selected button and available message self.current_icons = range(8) self.current_subuttons = range(8) # (2) Table Re-Size self.table.set_homogeneous(True) # (3) Reset Procedure # --- titulo set self.titulo.set_text(self.Titles[0]) self.titulo.modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(orange)) # --- image changes children = self.GralEvents[self.current_menu].get_children() self.GralEvents[self.current_menu].remove(children[0]) self.GralEvents[self.current_menu].add(self.GralIconsON[self.current_menu]) for index in range(1, len(self.GralEvents)): children = self.GralEvents[index].get_children() self.GralEvents[index].remove(children[0]) self.GralEvents[index].add(self.MiniIconsON[index]) # --- mainmenu-label/image/event modifications Mnum = self.Titles[0].split(' ')[-1] for index in range(len(self.mainmenu_events)): # labels label = MainMenu[index] if label.lower() != 'exit': label = label.split(' ') label = [label[0], '\n', Mnum, '.', label[-1]] label = ''.join(label) self.mainmenu_labels[index].set_text(label) self.mainmenu_labels[index].modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(lblue)) self.mainmenu_labels[index].modify_font(pango.FontDescription(medium_font)) # images children = self.mainmenu_events[index].get_children() self.mainmenu_events[index].remove(children[0]) self.mainmenu_events[index].add(self.mainmenu_imagesOFF[index]) # events STYLE = self.mainmenu_events[index].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.mainmenu_events[index].get_colormap().alloc_color(ground) self.mainmenu_events[index].set_style(STYLE) # --- Sub-menu buttons background desactivation # labels self.submenu_labels[index].set_text('') self.submenu_labels[index].modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse('white')) self.submenu_labels[index].modify_font(pango.FontDescription(medium_font)) # events STYLE = self.submenu_buttons[index].get_style().copy() STYLE.bg[gtk.STATE_NORMAL] = self.submenu_buttons[index].get_colormap().alloc_color(lblue) self.submenu_buttons[index].set_style(STYLE) # --- history of the selected tasks for widget in self.History_Labels: widget.set_text('') self.History = ['','','','','','','',''] # (4) Widget Visibility self.titulo.show() for widget in self.GralEvents: widget.show() for widget in self.mainmenu_labels: widget.show() for widget in self.mainmenu_events: widget.show() for widget in self.submenu_buttons: widget.show() for widget in self.History_Labels: widget.show() self.History_Frame.show() return False #...... Method 4: Warning Sign for the Tutorial_MI ..... def UT_WarningMI(self): 'Warning for the MI of the User_Tutorial' # (1) Image attachment self.table.attach(self.CueSignals[0][0],2, 6, 2, 6) #.....Method 5: Warning Sign for the COMMAND Stage...... def UT_WarningCMD(self, submenu): 'Warning for the COMMAND part of the User_Tutorial' # (1) Automatic Selection Initialization if submenu: self.Auto_Control() # (2) Event Background Modification # --- Execution on General Menu if not(submenu): STYLE = self.GralEvents[self.current_menu].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.GralEvents[self.current_menu].get_colormap().alloc_color(light_orange) self.GralEvents[self.current_menu].set_style(STYLE) # --- Execution on Main Menu else: self.mainmenu_labels[self.selected_icon].modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(light_orange)) STYLE = self.mainmenu_events[self.selected_icon].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.mainmenu_events[self.selected_icon].get_colormap().alloc_color(light_orange) self.mainmenu_events[self.selected_icon].set_style(STYLE) return #....Method 6: Cue Delivery for the MI Stage...... def UT_CueMI(self, target): 'Cue Delivery for the MI part of the User_Tutorial' # (1) Image Removal self.table.remove(self.CueSignals[0][0]) # (2) Selecting the appropriate cue if target == 'left': self.table.attach(self.CueSignals[0][1],2, 6, 2, 6) elif target == 'right': self.table.attach(self.CueSignals[0][2],2, 6, 2, 6) elif target == 'idle': self.table.attach(self.CueSignals[0][3],2, 6, 2, 6) #....Method 7: Cue Delivery for the COMMAND Stage...... def UT_CueCMD(self, submenu, target): 'Cue Delivery for the COMMAND part of the User_Tutorial' # (1) Selection of the appropiate Cue if target == 'left': self.table.attach(self.CueSignals[1][0],0, 2, 0, 2) elif target == 'right': self.table.attach(self.CueSignals[1][1],0, 2, 0, 2) elif target == 'idle': self.table.attach(self.CueSignals[1][2],0, 2, 0, 2) # (2) Event Background Modification # --- Execution on General Menu if not(submenu): STYLE = self.GralEvents[self.current_menu].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.GralEvents[self.current_menu].get_colormap().alloc_color(orange) self.GralEvents[self.current_menu].set_style(STYLE) # --- Execution on Main Menu else: self.mainmenu_labels[self.selected_icon].modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(orange)) STYLE = self.mainmenu_events[self.selected_icon].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.mainmenu_events[self.selected_icon].get_colormap().alloc_color(orange) self.mainmenu_events[self.selected_icon].set_style(STYLE) return #...........Method 8: Right MI for COMMAND PART......... def UT_NextIcon(self): 'Navigation through the Gral Menu' # (1) Previous icon change STYLE = self.GralEvents[self.current_menu].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.GralEvents[self.current_menu].get_colormap().alloc_color(ground) self.GralEvents[self.current_menu].set_style(STYLE) self.GralEvents[self.current_menu].remove(self.GralIconsON[self.current_menu]) self.GralEvents[self.current_menu].add(self.MiniIconsON[self.current_menu]) # (2) Gral menu control update self.current_menu = self.gralmenu_indexes.pop(0) self.gralmenu_indexes.append(self.current_menu) # (3) Previous icon change self.GralEvents[self.current_menu].remove(self.MiniIconsON[self.current_menu]) self.GralEvents[self.current_menu].add(self.GralIconsON[self.current_menu]) # (4) Title & MainMenu Modifications self.Titles.append(self.Titles.pop(0)) self.titulo.set_text(self.Titles[0]) Mnum = self.Titles[0].split(' ')[-1] for index in range(len(self.mainmenu_events)): label = MainMenu[index] if label.lower() != 'exit': label = MainMenu[index].split(' ') label = [label[0], '\n', Mnum, '.', label[-1]] label = ''.join(label) self.mainmenu_labels[index].set_text(label) #.........Method 9: UT-menu activation - COMMAND........ def UT_Activation(self): '"navigation" and "select" commands switched to UT-menu' # =======main menu variables initialization========= self.selected_subutton = 0 # (1) GUI~VE control command self.GUI_VE = [] # ===============UT-menu modifications============== # (1) General menu icons modification to indicate INACCESSIBLE navigation # --- title colour deselection self.titulo.modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(lblue)) # --- image and background changes self.GralEvents[self.current_menu].remove(self.GralIconsON[self.current_menu]) self.GralEvents[self.current_menu].add(self.GralIconsOFF[self.current_menu]) STYLE = self.GralEvents[self.current_menu].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.GralEvents[self.current_menu].get_colormap().alloc_color(ground) self.GralEvents[self.current_menu].set_style(STYLE) for index in self.gralmenu_indexes[:-1]: children = self.GralEvents[index].get_children() self.GralEvents[index].remove(children[0]) self.GralEvents[index].add(self.MiniIconsOFF[index]) # (2) Main Menu Activation # --- label modifications for item in self.mainmenu_labels: item.modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse('black')) # --- image changes for index in range(len(self.mainmenu_events)): self.mainmenu_events[index].remove(self.mainmenu_imagesOFF[index]) self.mainmenu_events[index].add(self.mainmenu_imagesON[index]) # (3) Sub-menu buttons Activation for item in self.submenu_buttons: STYLE = item.get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= item.get_colormap().alloc_color(blue) item.set_style(STYLE) # (4) Control of Cal menu HOME = self.UT_Control() return HOME #...... Method 10: UT-menu RE-activation - COMMAND...... def UT_Reactivation(self): 'Main Menu Reactivation' # (1) Resetting the submenu labels for item in self.submenu_labels: item.modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse('white')) # (2) Control of N & D menu HOME = self.UT_Control() return HOME #....... Method 11: UT-menu deactivation - COMMAND...... def UT_Deactivation(self): '"navigation" and "select" commands switched to general menu' # (1) General menu icons modification to indicate ACCESIBLE navigation # --- title colour deselection self.titulo.modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(orange)) # --- image changes self.GralEvents[self.current_menu].remove(self.GralIconsOFF[self.current_menu]) self.GralEvents[self.current_menu].add(self.GralIconsON[self.current_menu]) for index in self.gralmenu_indexes[:-1]: children = self.GralEvents[index].get_children() self.GralEvents[index].remove(children[0]) self.GralEvents[index].add(self.MiniIconsON[index]) # (2) Main menu Deactivation # --- label modifications for item in self.mainmenu_labels: item.modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(lblue)) self.mainmenu_labels[self.current_icons[0]].modify_font(pango.FontDescription(medium_font)) # --- image changes for index in range(len(self.mainmenu_events)): self.mainmenu_events[index].remove(self.mainmenu_imagesON[index]) self.mainmenu_events[index].add(self.mainmenu_imagesOFF[index]) # --- event background deselection STYLE = self.mainmenu_events[0].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.mainmenu_events[0].get_colormap().alloc_color(ground) self.mainmenu_events[0].set_style(STYLE) STYLE = self.mainmenu_events[7].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.mainmenu_events[7].get_colormap().alloc_color(ground) self.mainmenu_events[7].set_style(STYLE) # (3) Sub-menu buttons background desactivation for item in self.submenu_buttons: STYLE = item.get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= item.get_colormap().alloc_color(lblue) item.set_style(STYLE) #..........Method 12: UT-menu control - COMMAND......... def UT_Control(self): 'Control of the User_Tutorial menu' # (1) Updating the current selected button self.selected_icon = self.current_icons.pop(0) self.current_icons.append(self.selected_icon) # (2) Subutton labels modification ## -- current sub-labels self.submenu_labels[self.selected_subutton].modify_font(pango.FontDescription(medium_font)) for index in range(8): self.submenu_labels[index].set_label(SubMenu[self.selected_icon][index]) ## -- next sublabel pre-deselection self.submenu_labels[self.current_subuttons[0]].modify_font(pango.FontDescription(medium_font)) # (3) Selection and deselection in main menu ## -- last icon label deselection self.mainmenu_labels[self.current_icons[6]].modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse('black')) self.mainmenu_labels[self.current_icons[6]].modify_font(pango.FontDescription(medium_font)) ## -- current icon label selection self.mainmenu_labels[self.selected_icon].modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(blue)) self.mainmenu_labels[self.selected_icon].modify_font(pango.FontDescription(medium_font)) ## -- last event_box background deselection STYLE = self.mainmenu_events[self.current_icons[6]].get_style().copy() STYLE.bg[gtk.STATE_NORMAL] = \ self.mainmenu_events[self.current_icons[6]].get_colormap().alloc_color(ground) self.mainmenu_events[self.current_icons[6]].set_style(STYLE) ## -- current event_box background selection STYLE = self.mainmenu_events[self.selected_icon].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.mainmenu_events[self.selected_icon].get_colormap().alloc_color(blue) self.mainmenu_events[self.selected_icon].set_style(STYLE) ## -- SubMenu-Text update Mnum = self.Titles[0].split(' ')[-1] for index in range(len(self.mainmenu_events)): if self.mainmenu_labels[self.selected_icon].get_text().lower() == 'exit': break label = SubMenu[self.selected_icon][index].split(' ') label = [label[0], '\n', Mnum, '.', label[-1]] self.submenu_labels[index].set_text(''.join(label)) ## -- different icons from 'Home' if self.selected_icon != 7: ## a.- commands belong to main menu return False else: ## b.- commands could belong to general menu return True #............ Method 13: UT-menu Blank - MI ............ def UT_BlankMI(self, target): 'Rest and Random Intertrial Gap for Tutorial_MI' # (1) Image Removal if target == 'left': self.table.remove(self.CueSignals[0][1]) elif target == 'right': self.table.remove(self.CueSignals[0][2]) elif target == 'idle': self.table.remove(self.CueSignals[0][3]) # (2) Return FALSE to avoid calling the idle_function again return False #............ Method 14: UT-menu Blank - CMD ........... def UT_BlankCMD(self, target): 'Rest and Random Intertrial Gap for Tutorial_CMD' # (1) Image Removal if target == 'left': self.table.remove(self.CueSignals[1][0]) elif target == 'right': self.table.remove(self.CueSignals[1][1]) elif target == 'idle': self.table.remove(self.CueSignals[1][2]) # (2) Return FALSE to avoid calling the idle_function again return False #.......... Method 15: UT-menu No Control - CMD ........ def UT_NoControl(self, submenu): 'No Identified Motor Imaginary Movement' # (1) Execution on General Menu if not(submenu): STYLE = self.GralEvents[self.current_menu].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.GralEvents[self.current_menu].get_colormap().alloc_color(ground) self.GralEvents[self.current_menu].set_style(STYLE) # (2) Execution on Main Menu else: ## -- mainmenu labels self.mainmenu_labels[self.current_icons[0]].modify_font(pango.FontDescription(medium_font)) self.mainmenu_labels[self.selected_icon].modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(blue)) STYLE = self.mainmenu_events[self.selected_icon].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.mainmenu_events[self.selected_icon].get_colormap().alloc_color(blue) self.mainmenu_events[self.selected_icon].set_style(STYLE) ## -- submenu label self.submenu_labels[self.selected_subutton].modify_font(pango.FontDescription(medium_font)) return #........... Method 16: UT-Menu writer - CMD ........... def UT_Writing(self): 'GUI~VE control command writer' self.GUI_VE = [] # (1) Number of the current tab self.GUI_VE.append(0) # (2) Number of the current icon self.GUI_VE.append(self.selected_icon) # (3) Number of the current subutton self.GUI_VE.append(self.selected_subutton) # (4) Main Menu Update ## -- current label self.mainmenu_labels[self.selected_icon].modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(blue)) self.mainmenu_labels[self.selected_icon].modify_font(pango.FontDescription(medium_font)) STYLE = self.mainmenu_events[self.selected_icon].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= self.mainmenu_events[self.selected_icon].get_colormap().alloc_color(blue) self.mainmenu_events[self.selected_icon].set_style(STYLE) ## -- next label pre-deselection self.mainmenu_labels[self.current_icons[0]].modify_font(pango.FontDescription(medium_font)) # (5) Selecting a task self.submenu_labels[self.selected_subutton].modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse(blue)) self.submenu_labels[self.selected_subutton].modify_font(pango.FontDescription(medium_font)) STYLE = self.submenu_buttons[self.selected_subutton].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]= \ self.submenu_buttons[self.selected_subutton].get_colormap().alloc_color('white') self.submenu_buttons[self.selected_subutton].set_style(STYLE) # (6) Updating the History of the selected tasks label = self.submenu_labels[self.selected_subutton].get_text() self.History.pop() self.History.insert(0, label) for index in range(len(self.History)): self.History_Labels[index].set_text(self.History[index]) return self.GUI_VE #.......Method 16: Automatic Control of the Submenu..... def Auto_Control(self): 'Auto-Selection of the subuttons menu' # (1) Button selection in main~menu self.mainmenu_labels[self.current_icons[0]].modify_font(pango.FontDescription(font)) self.mainmenu_labels[self.current_icons[-1]].modify_font(pango.FontDescription(medium_font)) if self.mainmenu_labels[self.selected_icon].get_text() != 'EXIT': for i in range(8): # (2) Updating the current selected subutton self.selected_subutton = self.current_subuttons.pop(0) self.current_subuttons.append(self.selected_subutton) # (3) Button deselection in sub~menu STYLE = self.submenu_buttons[self.current_subuttons[6]].get_style().copy() STYLE.bg[gtk.STATE_NORMAL]=self.submenu_buttons[self.current_subuttons[6]].get_colormap().alloc_color(blue) self.submenu_buttons[self.current_subuttons[6]].set_style(STYLE) ## -- sublabel deselection self.submenu_labels[self.current_subuttons[6]].modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse('white')) self.submenu_labels[self.current_subuttons[6]].modify_font(pango.FontDescription(medium_font)) ## -- current subutton font selection self.submenu_labels[self.selected_subutton].modify_font(pango.FontDescription(font)) if self.submenu_labels[self.selected_subutton].get_text() != '': break
def __init__(self): 'Initial method to generate the "Necessities & Desires" menu' # =======Necessities & Desires tab creation========= # (1) TABLE: Widget container ## --9 x 8 table creation self.table = gtk.Table(9, 8, True) self.table.show() # (2) LABEL: Window title titulo = Label('Necessities\n & Desires', 'Neuropol 31', orange, 0.5, 0.5, gtk.JUSTIFY_CENTER) self.table.attach(titulo, 6, 8, 0, 2) # (3) FRAMES & IMAGES: General menu images GralIconsON = [] ## --'Necessities and Desires' option url = 'Images\\Necessity&Desire\\LNecessities_on.png' nd_event, nd_image = Event_Image(url, ground) nd_event.set_border_width(10) GralIconsON.append(nd_image) self.table.attach(nd_event, 2, 3, 0, 2) ## --'Mobility' option url = 'Images\\Mobility\\SMobility_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[1], 3, 4, 0, 2) ## --'Environmental Control' option url = 'Images\\EnvControl\\SHomeControl_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[2], 4, 5, 0, 2) ## --'Messenger' option url = 'Images\\Messenger\\SChat_on.png' GralIconsON.append(Image(url)) self.table.attach(GralIconsON[3], 5, 6, 0, 2) # (4) IMAGES: Icons for cue indication CueSignals = [] # -- cue: Left MI performance url = 'Images\\User_Tutorial\\left.png' image = Image(url) CueSignals.append(image) # -- cue: Right MI performance url = 'Images\\User_Tutorial\\right.png' image = Image(url) CueSignals.append(image) # -- cue: Idle MI performance url = 'Images\\User_Tutorial\\idle.png' image = Image(url) CueSignals.append(image) # (5) LABELS: Icon labels for main menu # -- variable declaration mainmenu_labels, x, y = [], 0, 3 Main_Menu = ['Exit','Cleanness','Personal\nCare','Toilet\nSupport',\ 'Exit','Dressing\nfor...','Food\nProvision','Body\nPostures'] # -- first item label = Label(Main_Menu[0], medium_font, lblue, 0.1, 0.8, gtk.JUSTIFY_LEFT) self.table.attach(label, 0, 2, 2, 4) mainmenu_labels.append(label) # -- internal items for menu in Main_Menu[1:-1]: label = Label(menu, medium_font, lblue, 0.5, 0.8, gtk.JUSTIFY_CENTER) self.table.attach(label, x, y, 2, 4) mainmenu_labels.append(label) x += 1 y += 1 # -- last item label = Label(Main_Menu[-1], medium_font, lblue, 0.9, 0.8, gtk.JUSTIFY_RIGHT) self.table.attach(label, 6, 8, 2, 4) mainmenu_labels.append(label) # (6) EVENTS & IMAGES: main menu images mainmenu_events, mainmenu_imagesOFF, x, y = [], [], 0, 1 URLs = ['Images\\Necessity&Desire\\Exit_off.png',\ 'Images\\Necessity&Desire\\Cleanness_off.png',\ 'Images\\Necessity&Desire\\PersonalCare_off.png',\ 'Images\\Necessity&Desire\\ToiletHelp_off.png',\ 'Images\\Necessity&Desire\\Exit_off.png',\ 'Images\\Necessity&Desire\\Dressing_off.png',\ 'Images\\Necessity&Desire\\FoodProvision_off.png',\ 'Images\\Necessity&Desire\\BodyPostures_off.png'] for url in URLs: eventbox, image = Event_Image(url, ground) self.table.attach(eventbox, x, y, 4, 6) mainmenu_events.append(eventbox) mainmenu_imagesOFF.append(image) x += 1 y += 1 # (7) BUTTONS: list of necessities and desires submenu_labels, submenu_buttons= [], [] for x in range(0,8): button, label = Button_Label('', lblue, 'white', medium_font) label.set_ellipsize(pango.ELLIPSIZE_MIDDLE) self.table.attach(button, x, x+1, 6, 8) submenu_labels.append(label) submenu_buttons.append(button) # (8) IMAGES: general menu images for OFF state GralIconsOFF = [] GralIconsOFF.append(Image('Images\\Necessity&Desire\\LNecessities_off.png')) GralIconsOFF.append(Image('Images\\Mobility\\SMobility_off.png')) GralIconsOFF.append(Image('Images\\EnvControl\\SHomeControl_off.png')) GralIconsOFF.append(Image('Images\\Messenger\\SChat_off.png')) # (9) IMAGES: main menu images for ON state mainmenu_imagesON = [] mainmenu_imagesON.append(Image('Images\\Necessity&Desire\\Exit_on.png')) mainmenu_imagesON.append(Image('Images\\Necessity&Desire\\Cleanness_on.png')) mainmenu_imagesON.append(Image('Images\\Necessity&Desire\\PersonalCare_on.png')) mainmenu_imagesON.append(Image('Images\\Necessity&Desire\\ToiletHelp_on.png')) mainmenu_imagesON.append(Image('Images\\Necessity&Desire\\Exit_on.png')) mainmenu_imagesON.append(Image('Images\\Necessity&Desire\\Dressing_on.png')) mainmenu_imagesON.append(Image('Images\\Necessity&Desire\\FoodProvision_on.png')) mainmenu_imagesON.append(Image('Images\\Necessity&Desire\\BodyPostures_on.png')) # (10) FRAME & LABELS: history of the selected tasks frame, label = Frame_Label(' HISTORY - Recently Selected Tasks ', ground, lblue, small_font, 0, 0.5, gtk.JUSTIFY_CENTER) self.table.attach(frame, 0, 8, 8, 9) History_Labels = [] History_Labels.append(Label('', small_font, 'black', 0.1, 0.9, gtk.JUSTIFY_LEFT)) self.table.attach(History_Labels[0], 0, 1, 8, 9) for index in range(1,8): History_Labels.append(Label('', small_font, lblue, 0.1, 0.9, gtk.JUSTIFY_LEFT)) self.table.attach(History_Labels[index], index, index+1, 8, 9) #(11) Widgets assignation to enable them in the following # methods # -- ButtonS self.submenu_buttons = submenu_buttons # -- ImageS self.CueSignals = CueSignals self.GralIconsON = GralIconsON self.GralIconsOFF = GralIconsOFF self.mainmenu_imagesOFF = mainmenu_imagesOFF self.mainmenu_imagesON = mainmenu_imagesON # -- Events self.mainmenu_events = mainmenu_events # -- FrameS self.nd_event = nd_event # -- LabelS self.titulo = titulo self.mainmenu_labels = mainmenu_labels self.submenu_labels = submenu_labels self.History_Labels = History_Labels # -- Variable Declaration self.History, self.CUE = ['','','','','','','',''], None