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
Esempio n. 2
0
    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
Esempio n. 3
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
Esempio n. 5
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
Esempio n. 6
0
    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 = ['','','','','','','','']   
Esempio n. 7
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