def nd_Control(self, targets):
     'Control of the N & D 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 sublabel
     self.submenu_labels[self.selected_subutton].modify_font(pango.FontDescription(medium_font))  
     ## -- next sublabel pre-deselection
     self.submenu_labels[self.current_subuttons[0]].modify_font(pango.FontDescription(medium_font))               
     ## a.- Cue-Driven Systems
     if targets[-1] == self.selected_icon:
         for index in range(8): 
             ## -- original label
             label = MainMenu[self.selected_icon][index]
             ## -- underline~process for Cue-Driven systems
             if any([target==index for target in targets[:-1]]):
                 # label creation
                 labels = label.split('\n')
                 for i in range(len(labels)): labels[i] = labels[i].replace('','_')[:-1]
                 label = '\n'.join(labels)                
                 # re-design of the subutton
                 self.table.remove(self.submenu_buttons[index])
                 Button, Label = Button_Label(label, blue, 'white', medium_font)
                 Label.set_ellipsize(pango.ELLIPSIZE_MIDDLE)
                 self.table.attach(Button, index, index+1, 6, 8)
                 # button & label re-assignment
                 self.submenu_buttons[index], self.submenu_labels[index] = Button, Label                    
             ## -- submenu-labelling
             else:
                 self.submenu_labels[index].set_label(label)          
     ## b.- Systems different to Cue-Driven systems
     else:       
         for index in range(8): self.submenu_labels[index].set_label(MainMenu[self.selected_icon][index])                   
     # (3) Selection and deselection in main menu
     ## -- 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 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))
     ## -- 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)    
    ## -- different icons from 'Home'
     if (self.selected_icon != 0) and (self.selected_icon != 4):
         ## a.- commands belong to main menu
         return False
     else: 
         ## b.- commands could belong to general menu
         return True
    def HCI_InstON(self, m, i, idx, codes):
        """Appending the Instructions to follow the Next Target in 
           "Target-Driven System" according to the current Tab"""

        ## -- Variable Declaration
        message = Label("", "Elephant 17", "orange", 0, 0.5, gtk.JUSTIFY_LEFT)
        self.container.attach(message, 1, 2, 0, 2)
        ## -- Label Update
        if all([codes[0] == "230", idx == 0]):
            message.set_text(m.replace(" Done", "come"))
        elif all([codes[0] == "230", idx == 1]):
            message.set_text(m.replace("Next", "First"))
        else:
            message.set_text(m)
        ## -- image widget
        cartoon = Image(i)
        cartoon.set_alignment(xalign=0.9, yalign=0.5)
        self.container.attach(cartoon, 0, 1, 0, 2)
        ## -- reset variables
        self.message = message
        self.cartoon = cartoon
        self.ready = True
        return False
    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 "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 EC_Control(self, targets):
        'Control of the EC 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~label
        self.submenu_labels[self.selected_subutton].modify_font(
            pango.FontDescription(medium_font))
        ## -- next sublabel pre-deselection
        self.submenu_labels[self.current_subuttons[0]].modify_font(
            pango.FontDescription(medium_font))
        if self.selected_icon < 2:
            ## a.- Cue-Driven Systems
            if targets[-1] == self.selected_icon:
                for index in range(8):
                    ## -- original label
                    label = MainMenu[self.selected_icon][index]
                    ## -- underline~process for Cue-Driven systems
                    if any([target == index for target in targets[:-1]]):
                        # label creation
                        labels = label.split('\n')
                        for i in range(len(labels)):
                            labels[i] = labels[i].replace('', '_')[:-1]
                        label = '\n'.join(labels)
                        # re-design of the subutton
                        self.table.remove(self.submenu_buttons[index])
                        Button, Label = Button_Label(label, blue, 'white',
                                                     medium_font)
                        Label.set_ellipsize(pango.ELLIPSIZE_MIDDLE)
                        self.table.attach(Button, index, index + 1, 6, 8)
                        # button & label re-assignment
                        self.submenu_buttons[index], self.submenu_labels[
                            index] = Button, Label
                    ## -- submenu-labelling
                    else:
                        self.submenu_labels[index].set_label(label)
            ## b.- Systems different to Cue-Driven systems
            else:
                for index in range(8):
                    self.submenu_labels[index].set_label(
                        MainMenu[self.selected_icon][index])
        else:
            room = self.Current_Room.get_text()
            self.room_index = ROOMS.index(room)
            ## a.- Cue-Driven Systems
            if targets[-1] == self.selected_icon:
                for index in range(8):
                    ## -- original label
                    label = MainMenu[self.selected_icon][
                        self.room_index][index]
                    ## -- underline~process for Cue-Driven systems
                    if any([target == index for target in targets[:-1]]):
                        # label creation
                        labels = label.split('\n')
                        for i in range(len(labels)):
                            labels[i] = labels[i].replace('', '_')[:-1]
                        label = '\n'.join(labels)
                        # re-design of the subutton
                        self.table.remove(self.submenu_buttons[index])
                        Button, Label = Button_Label(label, blue, 'white',
                                                     medium_font)
                        Label.set_ellipsize(pango.ELLIPSIZE_MIDDLE)
                        self.table.attach(Button, index, index + 1, 6, 8)
                        # button & label re-assignment
                        self.submenu_buttons[index], self.submenu_labels[
                            index] = Button, Label
                    ## -- submenu-labelling
                    else:
                        self.submenu_labels[index].set_label(label)
            ## b.- Systems different to Cue-Driven systems
            else:
                for index in range(8):
                    self.submenu_labels[index].set_label(
                        MainMenu[self.selected_icon][self.room_index][index])
        # (3) Selection and deselection in main menu
        ## -- 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 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))
        ## -- 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)
        ## -- different icons from 'Home'
        if self.selected_icon != 0:
            ## a.- commands belong to main menu
            return False
        else:
            ## b.- commands could belong to general menu
            return True
    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
Beispiel #7
0
    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 = ['','','','','','','','']   
Beispiel #9
0
    def __init__(self):
        'Initial method to generate the Essex HCI'

        # ==================thread creation=================
        threading.Thread.__init__(self)
        
        # ================interface creation================        
        # (1) WINDOW 
        ## -- window creation
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        ## --window configuration
        self.window.set_title("ESSEX Virtual Environment: Human-Computer Interface")
        background = gtk.gdk.color_parse(ground)
        self.window.modify_bg(gtk.STATE_NORMAL, background)
        self.window.set_border_width(7)
        self.window.set_resizable(True)
        self.window.resize(1275, 770)
        self.window.move(-1, -2)
        ## -- window events connection
        self.window.connect('destroy', self.destroy)
        
        # (2) TABLE: General widget container
        table = gtk.Table(3, 4, False)
        table.show()
        self.window.add(table)
        
        # (3) NOTEBOOK: General widget container
        ## -- notebook creation
        general_menu = gtk.Notebook()
        ## -- notebook configuration
        general_menu.set_show_border(True)
        general_menu.set_show_tabs(True)     
        general_menu.set_size_request(1260, 705)   
        style = general_menu.get_style().copy()
        style.bg[gtk.STATE_NORMAL] = general_menu.get_colormap().alloc_color(tab_bg)
        general_menu.set_style(style)
        ## -- 'necessities & desires' tab insertion
        nd_label = Label('Necessities&Desires ', small_font, orange, 0.5, 0.5, gtk.JUSTIFY_CENTER)
        necessities = nd_menu()
        nd_table = necessities.nd_container()
        general_menu.append_page(nd_table, nd_label)        
        ## -- 'mobility' tab insertion
        mob_label = Label('Mobility ', small_font, orange, 0.5, 0.5, gtk.JUSTIFY_CENTER)
        mobility = mob_menu()
        mob_table = mobility.mob_container()
        general_menu.append_page(mob_table, mob_label)        
        ## -- 'environment control' (EC) tab insertion
        EC_label = Label('EnvironmentControl ', small_font, orange, 0.5, 0.5, gtk.JUSTIFY_CENTER)
        EC = EC_menu()
        EC_table = EC.EC_container()
        general_menu.append_page(EC_table, EC_label)        
        ## -- 'messenger' tab insertion
        msg_label = Label('Messenger ', small_font, orange, 0.5, 0.5, gtk.JUSTIFY_CENTER)
        messenger = msg_menu()
        msg_table = messenger.msg_container()
        general_menu.append_page(msg_table, msg_label)
        ## -- 'user-training' tab insertion
        ut_label = Label('User-Training ', small_font, orange, 0.5, 0.5, gtk.JUSTIFY_CENTER)
        tutorial = UT_menu()
        ut_table = tutorial.UT_container()
        general_menu.append_page(ut_table, ut_label)
        ## -- notebook insertion to table
        table.attach(general_menu, 0, 4, 0, 1)
        general_menu.show()
        self.window.show()
        
        # (4) Copyright
        label = Label(' University of Essex ~ BCI Group', small_font, lblue, 0, 1, gtk.JUSTIFY_LEFT)
        table.attach(label, 0, 1, 1, 2)
        label = Label(' Luz Ma. Alonso Valerdi & Francisco Sepulveda', small_font, lblue, 0, 0.5, gtk.JUSTIFY_LEFT)
        table.attach(label, 0, 1, 2, 3)  
        border = Image('Images\\Border.png')
        border.set_alignment(xalign = 0.3, yalign = 0.75)
        table.attach(border, 1, 3, 1, 3) 
        logo = Image('Images\\logo.jpg')
        logo.set_alignment(xalign = 0.95, yalign = 1)
        table.attach(logo, 3, 4, 1, 3)
        general_menu.set_current_page(-1)             
                
        # (5) Attribute assignation to enable them in following
        #     methods
        ## -- main window
        self.general_menu = general_menu
        ## -- each instance corresponding to each tab        
        self.necessities = necessities
        self.mobility = mobility
        self.EC = EC
        self.messenger = messenger
        self.tutorial = tutorial
        ## -- each widget container (table) corresponding to each tab
        self.TabTables = (nd_table, mob_table, EC_table, msg_table)
        self.quit = False
Beispiel #10
0
    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