コード例 #1
0
ファイル: edgeeditor.py プロジェクト: molock/Space-Train
    def __init__(self, ed):
        super(EdgeEditor, self).__init__(ed)
        self.closest_edge = None
        self.point_1 = None
        self.point_2 = None

        self.edge_pallet = glydget.Window("Edge Tools", [
            glydget.Button('Select edge (e)', self.new_edge),
            glydget.Button('New point (p)', self.editor.point_ed.new_point),
            glydget.Button('New edge', self.new_edge),
            glydget.Button('Delete point', self.editor.point_ed.delete_point),
            glydget.Button('Delete edge', self.delete_edge),
        ])
        self.edge_pallet.show()
        self.edge_pallet.move(
            gamestate.main_window.width - 2 - self.edge_pallet.width,
            gamestate.main_window.height - 22)
        gamestate.main_window.push_handlers(self.edge_pallet)

        self.edge_a_field = glydget.Entry(
            '', on_change=self.update_item_from_inspector)
        self.edge_b_field = glydget.Entry(
            '', on_change=self.update_item_from_inspector)
        self.edge_anim_field = glydget.Entry(
            '', on_change=self.update_item_from_inspector)
        self.inspector = glydget.Window("Edge Inspector", [
            glydget.HBox([glydget.Label('a'), self.edge_a_field], True),
            glydget.HBox([glydget.Label('b'), self.edge_b_field], True),
            glydget.HBox([glydget.Label('Animation'), self.edge_anim_field],
                         True),
            glydget.Button('Subdivide', self.subdivide_edge),
            glydget.Button('Make counterpart', self.make_counterpart),
        ])
        self.inspector.move(2, gamestate.main_window.height - 2)
コード例 #2
0
ファイル: pointeditor.py プロジェクト: molock/Space-Train
    def __init__(self, ed):
        super(PointEditor, self).__init__(ed)

        self.point_identifier_field = glydget.Entry(
            '', on_change=self.update_item_from_inspector)
        self.point_x_field = glydget.Entry(
            '', on_change=self.update_item_from_inspector)
        self.point_y_field = glydget.Entry(
            '', on_change=self.update_item_from_inspector)
        self.inspector = glydget.Window("Point Inspector", [
            glydget.HBox(
                [glydget.Label('Identifier'), self.point_identifier_field],
                True),
            glydget.HBox([glydget.Label('x'), self.point_x_field], True),
            glydget.HBox([glydget.Label('y'), self.point_y_field], True),
            glydget.Button('New edge out (o)', self.new_edge_from_point),
        ])
        self.inspector.move(2, gamestate.main_window.height - 2)

        self.placing_point = False
コード例 #3
0
ファイル: cameraeditor.py プロジェクト: molock/Space-Train
 def __init__(self, ed):
     super(CameraEditor, self).__init__(ed)
     
     self.camera_pallet = glydget.Window("Camera Tools", [
         glydget.Button('New camera point', self.new_camera_point),
         glydget.Button('Delete camera point', self.delete_camera_point),
     ])
     self.camera_pallet.show()
     self.camera_pallet.move(gamestate.main_window.width - 2 - self.camera_pallet.width, 
                             gamestate.main_window.height - 162)
     gamestate.main_window.push_handlers(self.camera_pallet)
     
     self.cpoint_identifier_field = glydget.Entry('', on_change=self.update_item_from_inspector)
     self.cpoint_x_field = glydget.Entry('', on_change=self.update_item_from_inspector)
     self.cpoint_y_field = glydget.Entry('', on_change=self.update_item_from_inspector)
     self.inspector = glydget.Window("Camera Point Inspector", [
         glydget.HBox([glydget.Label('Identifier'), self.cpoint_identifier_field], True),
         glydget.HBox([glydget.Label('x'), self.cpoint_x_field], True),
         glydget.HBox([glydget.Label('y'), self.cpoint_y_field], True),
     ])
     self.inspector.move(2, gamestate.main_window.height-2)
コード例 #4
0
 def __init__(self, ed):
     super(ActorEditor, self).__init__(ed)
     
     self.actor_list = [
         glydget.Button(actor_name, self.actor_button_action) \
         for actor_name in os.listdir(os.path.join(settings.resources_path, 'actors'))
         if actor_name != '.DS_Store'
     ]
     self.list_pos = 0
     
     self.actor_pallet = glydget.Window("Make Actor", [
         glydget.Button('< prev', self.prev_page),
         glydget.Button('next >', self.next_page),
     ])
     
     self.actor_pallet.show()
     self.actor_pallet.move(gamestate.main_window.width - 2 - self.actor_pallet.width*1.5, 
                            gamestate.main_window.height - 242)
     gamestate.main_window.push_handlers(self.actor_pallet)
     
     self.id_field = glydget.Entry('', on_change=self.update_item_from_inspector)
     self.state_field = glydget.Entry('', on_change=self.update_item_from_inspector)
     self.scale_field = glydget.Entry('', on_change=self.update_item_from_inspector)
     self.x_field = glydget.Entry('', on_change=self.update_item_from_inspector)
     self.y_field = glydget.Entry('', on_change=self.update_item_from_inspector)
     self.wp_field = glydget.Entry('', on_change=self.update_item_from_inspector)
     self.inspector = glydget.Window("Actor Inspector", [
         glydget.HBox([glydget.Label('Identifier'), self.id_field], True),
         glydget.HBox([glydget.Label('Start state'), self.state_field], True),
         glydget.HBox([glydget.Label('Scale'), self.scale_field], True),
         glydget.HBox([glydget.Label('x'), self.x_field], True),
         glydget.HBox([glydget.Label('y'), self.y_field], True),
         glydget.HBox([glydget.Label('Walkpath point'), self.wp_field], True),
         glydget.Button('Delete', self.delete_selected_actor)
     ])
     self.inspector.move(2, gamestate.main_window.height-2)
     
     self.add_children_from_current_page()
コード例 #5
0
ファイル: gui.py プロジェクト: vluttine/3d-printer-robot
robot_gui = glydget.Group('Robot control', [
    glydget.Button('JACO: HOME', sendHome),
    glydget.Button('JACO: DRAW XY AXES', sendDemo),
    glydget.Button('JACO: DRAW SQUARE', sendDemo2),
    glydget.Button('JACO: EXIT', sendQuit)
])

coordinate_gui = glydget.Group('Robot origin coordinates [m]', [
    variable('dx'),
    variable('dy'),
    variable('dz'),
    glydget.Button('Send coordinates', sendXYZ)
])

sampling_rate = glydget.Entry('0.001')

sampling_rate_setting = glydget.HBox([
    glydget.Label('sampling rate'),
    sampling_rate,
])

send_to_robot = glydget.BoolEntry()

send_setting = glydget.HBox([
    glydget.Label('send to robot'),
    send_to_robot,
])

routeplanner_gui = glydget.Group('Routeplanner settings', [
    sampling_rate_setting,
コード例 #6
0
ファイル: menu.py プロジェクト: obspy/branches
    def _getIndex(self):
        """
        Builds the folders.
        """
        self.networks = self.env.networks
        folders = []
        # Get networks.
        networks = self.networks.keys()
        networks.sort()
        network_list = []

        def all_channels(button):
            """
            Selects all certain channels in a network.
            """
            channel = button.text[-3:] + '.D'
            network = button.parent.parent.parent.title.text.split()[-1]
            self.win.utils.add_plot(network, '*', channel)

        def on_toggle(button):
            """
            Inline Function for creating plots.
            """
            channel = button.parent.children[0].text
            station = button.parent.parent.parent.title.text.split()[-1]
            network =\
            button.parent.parent.parent.parent.parent.title.text.split()[-1]
            # Split station if necessary.
            temp = station.split('.')
            if len(temp) > 1:
                station = temp[0]
                location = temp[1]
            else:
                location = ''
            if channel == 'EH*':
                for sub_channel in button.parent.parent.children:
                    chan = sub_channel.children[0].text
                    if chan == 'EHE' or chan == 'EHN' or chan == 'EHZ':
                        self.win.utils.add_plot(network, station, location,
                                                chan)
            else:
                self.win.utils.add_plot(network, station, location, channel)

        def delete_all(button):
            """
            Deletes the plots.
            XXX: Needs to be better and safer.
            """
            for waveform in self.win.waveforms:
                waveform._delete()
                del waveform
            self.win.waveforms = []
            for item in self.win.object_list:
                if type(item) == WaveformPlot:
                    del item
            self.win.status_bar.setText('0 Traces')

        # Loop over networks.
        for network in networks:
            stations = self.networks[network].keys()
            stations.sort()
            station_list = []
            # Add Buttons to quickly select all similar channels.
            all_channels = glydget.HBox([\
                            glydget.Button('*.EHE', all_channels),
                            glydget.Button('*.EHN', all_channels),
                            glydget.Button('*.EHZ', all_channels)],
                            homogeneous = False)
            station_list.append(all_channels)
            # Loop over all stations.
            for station in stations:
                locations = self.networks[network][station].keys()
                locations.sort()
                channels_list = []
                for location in locations:
                    # Button to select all EH* stations.
                    all_stations = glydget.ToggleButton(
                        'EH*', False, on_toggle)
                    channels_list.append(
                        glydget.HBox([all_stations], homogeneous=False))
                    channels = self.networks[network][station][location]
                    channels.sort()
                    for channel in channels[0]:
                        button = glydget.ToggleButton(channel, False,
                                                      on_toggle)
                        button.style = theme.database
                        channels_list.append(
                            glydget.HBox([button], homogeneous=False))
                    if location:
                        station_name = '%s.%s' % (station, location)
                    else:
                        station_name = station
                    box = glydget.Folder(station_name,
                          glydget.VBox(channels_list, homogeneous = False), active\
                                        = False)
                    box.title.style.font_size = 8
                    box.style = theme.database
                    station_list.append(box)
            network_box = glydget.Folder(network,
                                         glydget.VBox(station_list,
                                                      homogeneous=False),
                                         active=False)
            network_box.style = theme.database
            network_list.append(network_box)
        # Menu to select the times.
        self.starttime = glydget.Entry(str(self.win.starttime))
        self.endtime = glydget.Entry(str(self.win.endtime))
        self.starttime.style = theme.database
        self.endtime.style = theme.database
        time_button = glydget.Button('OK', self.change_times)
        time_button.style = theme.database
        time_label = glydget.Label('Select Timeframe:')
        time_label.style = theme.database
        times = glydget.VBox(
            [time_label, self.starttime, self.endtime, time_button],
            homogeneous=False)
        # Add buttons to change the scale.
        self.normalScaleButton = glydget.ToggleButton('normal', False,
                                                      self.change_scale)
        self.logScaleButton = glydget.ToggleButton('log', False,
                                                   self.change_scale)
        # Read the scaling of the axis and toggle the correct Button.
        if self.win.log_scale:
            self.normalScaleButton._active = False
            self.normalScaleButton._update_state()
            self.logScaleButton._active = True
            self.logScaleButton._update_state()
        else:
            self.normalScaleButton._active = True
            self.normalScaleButton._update_state()
            self.logScaleButton._active = False
            self.logScaleButton._update_state()
        # Change the styling of the buttons.
        self.normalScaleButton.style = theme.database
        self.logScaleButton.style = theme.database
        scaleButtons = glydget.HBox([
            glydget.Label('Scale:'), self.normalScaleButton,
            self.logScaleButton
        ],
                                    homogeneous=False)
        scaleButtons.style = theme.database
        deleteButton = glydget.Button('Delete all', delete_all)
        deleteButton.style = theme.database
        # Button and input field to change the detail.
        detail_label = glydget.Label('Detail:')
        detail_box = glydget.Entry(str(self.win.detail))
        detail_button = glydget.Button('OK', self.change_detail)
        detail_label.style = theme.database
        detail_box.style = theme.database
        detail_button.style = theme.database
        detailBox = glydget.HBox([detail_label, detail_box, detail_button],
                                 homogeneous=False)
        seperator1 = \
                glydget.Label('----------------------------------------------')
        seperator1.style = theme.database
        seperator2 = \
                glydget.Label('----------------------------------------------')
        seperator2.style = theme.database
        options = glydget.Label('Options:')
        seperator2.style = theme.database
        items = [times, seperator1, deleteButton]
        items.extend(network_list)
        items.extend([seperator2, options, scaleButtons])
        items.append(detailBox)
        # Button to enter the options menu.
        optionsButton = glydget.Button('Options', self.openOptionsMenu)
        optionsButton.style = theme.database
        items.append(optionsButton)
        self.menu = glydget.VBox(items, homogeneous=False)
        self.menu.style = theme.database
        # Fixed width and variable height.
        self.menu.resize(self.win.geometry.menu_width, 1)