コード例 #1
0
    def __init__(self, context):
        super(FrameDefinitionEditor, self).__init__(context,
                                                    QtGui.QGroupBox('Animation'))

        self.anchor = None

        # set up layout
        self.outer_layout = QtGui.QHBoxLayout()
        self.layout = QtGui.QGridLayout()
        self.frame_name_field = QtGui.QLineEdit()
        self.frame_name_label = QtGui.QLabel('Frame Name')
        self.frame_list_view = QtGui.QListWidget()
        self.add_frame_button = QtGui.QPushButton('Add Frame')
        self.remove_frame_button = QtGui.QPushButton('Remove Frame')
        self.frame_buttons_layout = QtGui.QVBoxLayout()
        self.graphic_viewer = FrameViewer()
        self.frame_form_layout = QtGui.QGridLayout()
        self.frame_x_label = QtGui.QLabel('X')
        self.frame_x_field = QtGui.QLineEdit()
        self.frame_y_label = QtGui.QLabel('Y')
        self.frame_y_field = QtGui.QLineEdit()
        self.frame_width_label = QtGui.QLabel('Width')
        self.frame_width_field = QtGui.QLineEdit()
        self.frame_height_label = QtGui.QLabel('Height')
        self.frame_height_field = QtGui.QLineEdit()
        self.frame_repeat_label = QtGui.QLabel('Repeat')
        self.frame_repeat_field = QtGui.QLineEdit()

        # events
        EVENT_MAPPING.register_handler('selected_animation', self.set_animation)
        EVENT_MAPPING.register_handler('updated_frame_crop', self.update_fields)

        # setup layout
        self.outer_layout.addLayout(self.layout)
        self.outer_layout.addWidget(self.graphic_viewer)
        self.frame_form_layout.addWidget(self.frame_name_label,0,0)
        self.frame_form_layout.addWidget(self.frame_name_field,0,1)
        self.frame_form_layout.addWidget(self.frame_x_label,1,0)
        self.frame_form_layout.addWidget(self.frame_x_field,1,1)
        self.frame_form_layout.addWidget(self.frame_y_label,2,0)
        self.frame_form_layout.addWidget(self.frame_y_field,2,1)
        self.frame_form_layout.addWidget(self.frame_width_label,1,2)
        self.frame_form_layout.addWidget(self.frame_width_field,1,3)
        self.frame_form_layout.addWidget(self.frame_height_label,2,2)
        self.frame_form_layout.addWidget(self.frame_height_field,2,3)
        self.frame_form_layout.addWidget(self.frame_repeat_label,3,0)
        self.frame_form_layout.addWidget(self.frame_repeat_field,3,1,1,2)
        self.layout.addLayout(self.frame_form_layout,0,0)
        self.layout.addWidget(self.frame_list_view,1,0)
        self.frame_buttons_layout.addWidget(self.add_frame_button)
        self.frame_buttons_layout.addWidget(self.remove_frame_button)
        self.layout.addLayout(self.frame_buttons_layout,1,1)

        self.group.setLayout(self.outer_layout)

        # wire up gui event handlers
        self.add_frame_button.clicked.connect(self.add_frame)
        self.remove_frame_button.clicked.connect(self.remove_frame)
        self.frame_list_view.currentItemChanged.connect(self.select_frame)
コード例 #2
0
    def __init__(self, context):
        super(ExecutionDefinitionEditor,
              self).__init__(context, QtGui.QGroupBox('Execution'))
        # gui elements
        self.layout = QtGui.QGridLayout()
        self.exec_name_label = QtGui.QLabel('Execution Name')
        self.exec_name_field = QtGui.QLineEdit()
        self.binding_list_label = QtGui.QLabel('Select Binding')
        self.binding_list_view = QtGui.QListWidget()
        self.binding_layout = QtGui.QVBoxLayout()
        self.move_list_label = QtGui.QLabel('Select Moves')
        self.move_list_view = QtGui.QListWidget()
        self.move_layout = QtGui.QVBoxLayout()
        self.add_move_button = QtGui.QPushButton('Add Move')
        self.remove_move_button = QtGui.QPushButton('Remove Move')
        self.move_button_layout = QtGui.QVBoxLayout()
        self.selected_move_list_view = QtGui.QListWidget()
        self.exec_list_view = QtGui.QListWidget()
        self.add_exec_button = QtGui.QPushButton('Add Execution')
        self.remove_exec_button = QtGui.QPushButton('Remove Execution')
        self.exec_button_layout = QtGui.QVBoxLayout()

        # set up layout
        self.layout.addWidget(self.exec_name_label, 0, 0)
        self.layout.addWidget(self.exec_name_field, 0, 1)
        self.binding_layout.addWidget(self.binding_list_label)
        self.binding_layout.addWidget(self.binding_list_view)
        self.layout.addLayout(self.binding_layout, 1, 0)
        self.move_layout.addWidget(self.move_list_label)
        self.move_layout.addWidget(self.move_list_view)
        self.layout.addWidget(self.move_list_view, 1, 1)
        self.move_button_layout.addWidget(self.add_move_button)
        self.move_button_layout.addWidget(self.remove_move_button)
        self.layout.addLayout(self.move_button_layout, 1, 2)
        self.layout.addWidget(self.selected_move_list_view, 1, 3)
        self.layout.addWidget(self.exec_list_view, 2, 0)
        self.exec_button_layout.addWidget(self.add_exec_button)
        self.exec_button_layout.addWidget(self.remove_exec_button)
        self.layout.addLayout(self.exec_button_layout, 2, 1)

        self.group.setLayout(self.layout)

        # internal events
        EVENT_MAPPING.register_handler('selected_entity', self.set_entity)
        EVENT_MAPPING.register_handler('added_binding', self.added_binding)
        EVENT_MAPPING.register_handler('removed_binding', self.removed_binding)
        EVENT_MAPPING.register_handler('added_move', self.added_move)
        EVENT_MAPPING.register_handler('removed_move', self.removed_move)

        # wire up events
        self.add_move_button.clicked.connect(self.add_move)
        self.remove_move_button.clicked.connect(self.remove_move)
        self.add_exec_button.clicked.connect(self.add_exec)
        self.remove_exec_button.clicked.connect(self.remove_exec)
        self.exec_list_view.currentItemChanged.connect(self.select_exec)
コード例 #3
0
    def __init__(self, context):
        super(ExecutionDefinitionEditor, self).__init__(context, QtGui.QGroupBox("Execution"))
        # gui elements
        self.layout = QtGui.QGridLayout()
        self.exec_name_label = QtGui.QLabel("Execution Name")
        self.exec_name_field = QtGui.QLineEdit()
        self.binding_list_label = QtGui.QLabel("Select Binding")
        self.binding_list_view = QtGui.QListWidget()
        self.binding_layout = QtGui.QVBoxLayout()
        self.move_list_label = QtGui.QLabel("Select Moves")
        self.move_list_view = QtGui.QListWidget()
        self.move_layout = QtGui.QVBoxLayout()
        self.add_move_button = QtGui.QPushButton("Add Move")
        self.remove_move_button = QtGui.QPushButton("Remove Move")
        self.move_button_layout = QtGui.QVBoxLayout()
        self.selected_move_list_view = QtGui.QListWidget()
        self.exec_list_view = QtGui.QListWidget()
        self.add_exec_button = QtGui.QPushButton("Add Execution")
        self.remove_exec_button = QtGui.QPushButton("Remove Execution")
        self.exec_button_layout = QtGui.QVBoxLayout()

        # set up layout
        self.layout.addWidget(self.exec_name_label, 0, 0)
        self.layout.addWidget(self.exec_name_field, 0, 1)
        self.binding_layout.addWidget(self.binding_list_label)
        self.binding_layout.addWidget(self.binding_list_view)
        self.layout.addLayout(self.binding_layout, 1, 0)
        self.move_layout.addWidget(self.move_list_label)
        self.move_layout.addWidget(self.move_list_view)
        self.layout.addWidget(self.move_list_view, 1, 1)
        self.move_button_layout.addWidget(self.add_move_button)
        self.move_button_layout.addWidget(self.remove_move_button)
        self.layout.addLayout(self.move_button_layout, 1, 2)
        self.layout.addWidget(self.selected_move_list_view, 1, 3)
        self.layout.addWidget(self.exec_list_view, 2, 0)
        self.exec_button_layout.addWidget(self.add_exec_button)
        self.exec_button_layout.addWidget(self.remove_exec_button)
        self.layout.addLayout(self.exec_button_layout, 2, 1)

        self.group.setLayout(self.layout)

        # internal events
        EVENT_MAPPING.register_handler("selected_entity", self.set_entity)
        EVENT_MAPPING.register_handler("added_binding", self.added_binding)
        EVENT_MAPPING.register_handler("removed_binding", self.removed_binding)
        EVENT_MAPPING.register_handler("added_move", self.added_move)
        EVENT_MAPPING.register_handler("removed_move", self.removed_move)

        # wire up events
        self.add_move_button.clicked.connect(self.add_move)
        self.remove_move_button.clicked.connect(self.remove_move)
        self.add_exec_button.clicked.connect(self.add_exec)
        self.remove_exec_button.clicked.connect(self.remove_exec)
        self.exec_list_view.currentItemChanged.connect(self.select_exec)
コード例 #4
0
    def __init__(self, context, group=None):
        super(Editor, self).__init__()
        self.context = context
        self.layout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight)
        self.group = group if group is not None else QtGui.QGroupBox('Editor')
        self.layout.addWidget(self.group)
        self.setLayout(self.layout)
        self.hide()

        # internal events
        EVENT_MAPPING.register_handler('set_context', self.set_context)
コード例 #5
0
    def __init__(self, context):
        super(GraphicDefinitionEditor, self).__init__(context, QtGui.QGroupBox('Graphics'))
        # setup gui stuff
        self.layout = QtGui.QGridLayout()
        self.view_buttons_layout = QtGui.QVBoxLayout()
        self.add_graphic_button = QtGui.QPushButton('Add Graphic')
        self.remove_graphic_button = QtGui.QPushButton('Remove Graphic')
        self.update_graphic_button = QtGui.QPushButton('Update Graphic')
        self.graphic_name_field = QtGui.QLineEdit()
        self.graphic_name_label = QtGui.QLabel('Graphic Name')
        self.graphic_file_viewer = QtGui.QLabel()
        self.graphic_list_view = QtGui.QListWidget()
        self.graphic_buttons_layout = QtGui.QVBoxLayout()
        self.asset_list_view = QtGui.QListWidget()
        self.asset_list_label = QtGui.QLabel('Choose Asset')
        self.asset_list_layout = QtGui.QVBoxLayout()
        self.anchor_label = QtGui.QLabel('Choose Anchor Body')
        self.anchor_list_view = QtGui.QListWidget()
        self.anchor_layout = QtGui.QVBoxLayout()

        # setup layout
        self.asset_list_layout.addWidget(self.asset_list_label)
        self.asset_list_layout.addWidget(self.asset_list_view)
        self.layout.addLayout(self.asset_list_layout,0,0)
        self.layout.addWidget(self.graphic_name_label,0,1)
        self.layout.addWidget(self.graphic_name_field,0,2)
        self.anchor_layout.addWidget(self.anchor_label)
        self.anchor_layout.addWidget(self.anchor_list_view)
        self.layout.addLayout(self.anchor_layout,1,0)
        self.layout.addWidget(self.graphic_list_view,2,0)
        self.graphic_buttons_layout.addWidget(self.add_graphic_button)
        self.graphic_buttons_layout.addWidget(self.update_graphic_button)
        self.graphic_buttons_layout.addWidget(self.remove_graphic_button)
        self.layout.addLayout(self.graphic_buttons_layout,2,1)

        self.group.setLayout(self.layout)

        # wire up event handlers
        self.add_graphic_button.clicked.connect(self.add_graphic)
        self.update_graphic_button.clicked.connect(self.update_graphic)
        self.remove_graphic_button.clicked.connect(self.remove_graphic)
        self.graphic_list_view.currentItemChanged.connect(self.select_graphic)

        # events
        EVENT_MAPPING.register_handler('selected_entity', self.set_graphics)
        EVENT_MAPPING.register_handler('asset_added', self.add_asset)
        EVENT_MAPPING.register_handler('asset_removed', self.remove_asset)
        EVENT_MAPPING.register_handler('added_component', self.add_component)
        EVENT_MAPPING.register_handler('removed_component', self.remove_component)
コード例 #6
0
    def __init__(self, context):
        super(AnimationDefinitionEditor,
              self).__init__(context, QtGui.QGroupBox('Animation'))
        self.outer_layout = QtGui.QHBoxLayout()
        self.layout = QtGui.QGridLayout()
        self.animation_name_field = QtGui.QLineEdit()
        self.animation_name_label = QtGui.QLabel('Animation Name')
        self.animation_list_view = QtGui.QListWidget()
        self.add_animation_button = QtGui.QPushButton('Add Animation')
        self.remove_animation_button = QtGui.QPushButton('Remove Animation')
        self.animation_buttons_layout = QtGui.QVBoxLayout()
        self.graphic_viewer = QtGui.QGraphicsView()
        self.current_graphic = None
        self.graphic_item = None

        # frame properties
        self.graphic_viewer.setScene(QtGui.QGraphicsScene())
        self.dragging = False

        # events
        EVENT_MAPPING.register_handler('selected_graphic', self.set_animations)

        # setup layout
        self.outer_layout.addLayout(self.layout)
        self.outer_layout.addWidget(self.graphic_viewer)
        self.layout.addWidget(self.animation_name_label, 0, 0)
        self.layout.addWidget(self.animation_name_field, 0, 1)
        self.layout.addWidget(self.animation_list_view, 1, 0)
        self.animation_buttons_layout.addWidget(self.add_animation_button)
        self.animation_buttons_layout.addWidget(self.remove_animation_button)
        self.layout.addLayout(self.animation_buttons_layout, 1, 1)

        self.group.setLayout(self.outer_layout)

        # wire up gui event handlers
        self.add_animation_button.clicked.connect(self.add_animation)
        self.remove_animation_button.clicked.connect(self.remove_animation)
        self.animation_list_view.currentItemChanged.connect(
            self.select_animation)
コード例 #7
0
    def __init__(self, context):
        super(AnimationDefinitionEditor, self).__init__(context,
                                                        QtGui.QGroupBox('Animation'))
        self.outer_layout = QtGui.QHBoxLayout()
        self.layout = QtGui.QGridLayout()
        self.animation_name_field = QtGui.QLineEdit()
        self.animation_name_label = QtGui.QLabel('Animation Name')
        self.animation_list_view = QtGui.QListWidget()
        self.add_animation_button = QtGui.QPushButton('Add Animation')
        self.remove_animation_button = QtGui.QPushButton('Remove Animation')
        self.animation_buttons_layout = QtGui.QVBoxLayout()
        self.graphic_viewer = QtGui.QGraphicsView()
        self.current_graphic = None
        self.graphic_item = None

        # frame properties
        self.graphic_viewer.setScene(QtGui.QGraphicsScene())
        self.dragging = False

        # events
        EVENT_MAPPING.register_handler('selected_graphic', self.set_animations)

        # setup layout
        self.outer_layout.addLayout(self.layout)
        self.outer_layout.addWidget(self.graphic_viewer)
        self.layout.addWidget(self.animation_name_label,0,0)
        self.layout.addWidget(self.animation_name_field,0,1)
        self.layout.addWidget(self.animation_list_view,1,0)
        self.animation_buttons_layout.addWidget(self.add_animation_button)
        self.animation_buttons_layout.addWidget(self.remove_animation_button)
        self.layout.addLayout(self.animation_buttons_layout,1,1)

        self.group.setLayout(self.outer_layout)

        # wire up gui event handlers
        self.add_animation_button.clicked.connect(self.add_animation)
        self.remove_animation_button.clicked.connect(self.remove_animation)
        self.animation_list_view.currentItemChanged.connect(self.select_animation)
コード例 #8
0
    def __init__(self, context):
        super(VectorDefinitionEditor, self).__init__(context, QtGui.QGroupBox('Vectors'))
        # setup gui stuff
        self.layout = QtGui.QGridLayout()
        self.vector_name_label = QtGui.QLabel('Vector Name')
        self.vector_name_field = QtGui.QLineEdit()
        self.x_label = QtGui.QLabel('X')
        self.x_field = QtGui.QLineEdit()
        self.y_label = QtGui.QLabel('Y')
        self.y_field = QtGui.QLineEdit()
        self.vector_list_view = QtGui.QListWidget()
        self.add_vector_button = QtGui.QPushButton('Add Vector')
        self.remove_vector_button = QtGui.QPushButton('Remove Vector')
        self.button_layout = QtGui.QVBoxLayout()

        # set up layout
        self.layout.addWidget(self.vector_name_label,0,0)
        self.layout.addWidget(self.vector_name_field,0,1)
        self.layout.addWidget(self.x_label,1,0)
        self.layout.addWidget(self.x_field,1,1)
        self.layout.addWidget(self.y_label,2,0)
        self.layout.addWidget(self.y_field,2,1)
        self.layout.addWidget(self.vector_list_view,3,0)
        self.button_layout.addWidget(self.add_vector_button)
        self.button_layout.addWidget(self.remove_vector_button)
        self.layout.addLayout(self.button_layout,3,1)

        self.group.setLayout(self.layout)

        # internal events
        EVENT_MAPPING.register_handler('selected_entity', self.set_entity)

        # wire up events
        self.add_vector_button.clicked.connect(self.add_vector)
        self.remove_vector_button.clicked.connect(self.remove_vector)
        self.vector_list_view.currentItemChanged.connect(self.select_vector)
コード例 #9
0
    def __init__(self, context):
        super(PhysicsDefinitionEditor,
              self).__init__(context, QtGui.QGroupBox('Physics'))
        self.entity = None
        # set up gui
        self.layout = QtGui.QGridLayout()
        self.name_label = QtGui.QLabel('Physics Object Name')
        self.name_field = QtGui.QLineEdit()
        self.anchor_label = QtGui.QLabel('Choose Anchor')
        self.anchor_list_view = QtGui.QListWidget()
        self.anchor_layout = QtGui.QVBoxLayout()
        self.w_label = QtGui.QLabel('Width')
        self.w_field = QtGui.QLineEdit()
        self.h_label = QtGui.QLabel('Height')
        self.h_field = QtGui.QLineEdit()
        self.physics_list_view = QtGui.QListWidget()
        self.add_physics_button = QtGui.QPushButton('Add Physics Object')
        self.remove_physics_button = QtGui.QPushButton('Remove Physics Object')
        self.button_layout = QtGui.QVBoxLayout()

        # set up layout
        self.layout.addWidget(self.name_label, 0, 0)
        self.layout.addWidget(self.name_field, 0, 1)
        self.anchor_layout.addWidget(self.anchor_label)
        self.anchor_layout.addWidget(self.anchor_list_view)
        self.layout.addLayout(self.anchor_layout, 1, 0)
        self.layout.addWidget(self.w_label, 2, 0)
        self.layout.addWidget(self.w_field, 2, 1)
        self.layout.addWidget(self.h_label, 3, 0)
        self.layout.addWidget(self.h_field, 3, 1)
        self.layout.addWidget(self.physics_list_view, 4, 0)
        self.button_layout.addWidget(self.add_physics_button)
        self.button_layout.addWidget(self.remove_physics_button)
        self.layout.addLayout(self.button_layout, 4, 1)

        self.group.setLayout(self.layout)

        # internal events
        EVENT_MAPPING.register_handler('selected_entity', self.set_entity)
        EVENT_MAPPING.register_handler('added_component', self.add_anchor)
        EVENT_MAPPING.register_handler('removed_component', self.remove_anchor)

        # wire up events
        self.add_physics_button.clicked.connect(self.add_physics)
        self.remove_physics_button.clicked.connect(self.remove_physics)
コード例 #10
0
    def __init__(self, context):
        super(PhysicsDefinitionEditor, self).__init__(context, QtGui.QGroupBox('Physics'))
        self.entity = None
        # set up gui
        self.layout = QtGui.QGridLayout()
        self.name_label = QtGui.QLabel('Physics Object Name')
        self.name_field = QtGui.QLineEdit()
        self.anchor_label = QtGui.QLabel('Choose Anchor')
        self.anchor_list_view = QtGui.QListWidget()
        self.anchor_layout = QtGui.QVBoxLayout()
        self.w_label = QtGui.QLabel('Width')
        self.w_field = QtGui.QLineEdit()
        self.h_label = QtGui.QLabel('Height')
        self.h_field = QtGui.QLineEdit()
        self.physics_list_view = QtGui.QListWidget()
        self.add_physics_button = QtGui.QPushButton('Add Physics Object')
        self.remove_physics_button = QtGui.QPushButton('Remove Physics Object')
        self.button_layout = QtGui.QVBoxLayout()

        # set up layout
        self.layout.addWidget(self.name_label,0,0)
        self.layout.addWidget(self.name_field,0,1)
        self.anchor_layout.addWidget(self.anchor_label)
        self.anchor_layout.addWidget(self.anchor_list_view)
        self.layout.addLayout(self.anchor_layout,1,0)
        self.layout.addWidget(self.w_label,2,0)
        self.layout.addWidget(self.w_field,2,1)
        self.layout.addWidget(self.h_label,3,0)
        self.layout.addWidget(self.h_field,3,1)
        self.layout.addWidget(self.physics_list_view,4,0)
        self.button_layout.addWidget(self.add_physics_button)
        self.button_layout.addWidget(self.remove_physics_button)
        self.layout.addLayout(self.button_layout,4,1)

        self.group.setLayout(self.layout)

        # internal events
        EVENT_MAPPING.register_handler('selected_entity', self.set_entity)
        EVENT_MAPPING.register_handler('added_component', self.add_anchor)
        EVENT_MAPPING.register_handler('removed_component', self.remove_anchor)

        # wire up events
        self.add_physics_button.clicked.connect(self.add_physics)
        self.remove_physics_button.clicked.connect(self.remove_physics)
コード例 #11
0
    def __init__(self, context):
        super(BodyDefinitionEditor, self).__init__(context,
                                                   QtGui.QGroupBox('Body'))
        # gui elements
        self.layout = QtGui.QGridLayout()
        self.body_name_label = QtGui.QLabel('Body Name')
        self.body_name_field = QtGui.QLineEdit()
        self.position_label = QtGui.QLabel('Position')
        self.position_list_view = QtGui.QListWidget()
        self.position_layout = QtGui.QVBoxLayout()
        self.body_list_view = QtGui.QListWidget()
        self.add_body_button = QtGui.QPushButton('Add Body')
        self.update_body_button = QtGui.QPushButton('Update Body')
        self.remove_body_button = QtGui.QPushButton('Remove Body')
        self.button_layout = QtGui.QVBoxLayout()

        # setup layout
        self.layout.addWidget(self.body_name_label,0,0)
        self.layout.addWidget(self.body_name_field,0,1)
        self.position_layout.addWidget(self.position_label)
        self.position_layout.addWidget(self.position_list_view)
        self.layout.addLayout(self.position_layout,1,0)
        self.layout.addWidget(self.body_list_view,2,0)
        self.button_layout.addWidget(self.add_body_button)
        self.button_layout.addWidget(self.update_body_button)
        self.button_layout.addWidget(self.remove_body_button)
        self.layout.addLayout(self.button_layout,2,1)

        self.group.setLayout(self.layout)

        # internal events
        EVENT_MAPPING.register_handler('selected_entity', self.set_entity)
        EVENT_MAPPING.register_handler('vector_added', self.add_vector)
        EVENT_MAPPING.register_handler('vector_removed', self.remove_vector)

        # wire up events
        self.add_body_button.clicked.connect(self.add_body)
        self.update_body_button.clicked.connect(self.update_body)
        self.remove_body_button.clicked.connect(self.remove_body)
        self.body_list_view.currentItemChanged.connect(self.select_body)
コード例 #12
0
    def __init__(self, context):
        super(DebugDefinitionEditor, self).__init__(context, QtGui.QGroupBox('Debug'))
        # setup gui stuff
        self.layout = QtGui.QGridLayout()
        self.debug_name_label = QtGui.QLabel('Debug Name')
        self.debug_name_field = QtGui.QLineEdit()
        self.name_layout = QtGui.QVBoxLayout()
        self.component_tree_view = QtGui.QTreeWidget()
        self.component_tree_label = QtGui.QLabel('Choose Component or Property')
        self.component_layout = QtGui.QVBoxLayout()
        self.vector_list_view = QtGui.QListWidget()
        self.vector_list_label = QtGui.QLabel('Choose Position')
        self.vector_layout = QtGui.QVBoxLayout()
        self.color_list_view = QtGui.QListWidget()
        self.color_list_label = QtGui.QLabel('Choose Color')
        self.color_layout = QtGui.QVBoxLayout()
        self.debug_list_view = QtGui.QListWidget()
        self.add_debug_button = QtGui.QPushButton('Add Debug')
        self.edit_debug_button = QtGui.QPushButton('Edit Debug')
        self.remove_debug_button = QtGui.QPushButton('Remove Debug')
        self.button_layout = QtGui.QVBoxLayout()

        # setup layout
        self.name_layout.addWidget(self.debug_name_label)
        self.name_layout.addWidget(self.debug_name_field)
        self.layout.addLayout(self.name_layout,0,0)
        self.component_layout.addWidget(self.component_tree_label)
        self.component_layout.addWidget(self.component_tree_view)
        self.layout.addLayout(self.component_layout,1,0)
        self.vector_layout.addWidget(self.vector_list_label)
        self.vector_layout.addWidget(self.vector_list_view)
        self.layout.addLayout(self.vector_layout,1,1)
        self.color_layout.addWidget(self.color_list_label)
        self.color_layout.addWidget(self.color_list_view)
        self.layout.addLayout(self.color_layout,1,2)
        self.layout.addWidget(self.debug_list_view,2,0)
        self.button_layout.addWidget(self.add_debug_button)
        self.button_layout.addWidget(self.edit_debug_button)
        self.button_layout.addWidget(self.remove_debug_button)
        self.layout.addLayout(self.button_layout,2,1)

        self.group.setLayout(self.layout)

        # internal events
        EVENT_MAPPING.register_handler('selected_entity', self.set_entity)
        EVENT_MAPPING.register_handler('added_component', self.add_component)
        EVENT_MAPPING.register_handler('removed_component', self.remove_component)

        # wire up events
        self.add_debug_button.clicked.connect(self.add_debug)
        self.edit_debug_button.clicked.connect(self.edit_debug)
        self.remove_debug_button.clicked.connect(self.remove_debug)
        self.debug_list_view.currentItemChanged.connect(self.select_debug)

        # populate color list
        white = WidgetItemComponent('White', Component(common.WHITE, 'White'))
        red = WidgetItemComponent('Red', Component(common.RED, 'Red'))
        green = WidgetItemComponent('Green', Component(common.GREEN, 'Green'))
        blue = WidgetItemComponent('Blue', Component(common.BLUE, 'Blue'))
        yellow = WidgetItemComponent('Yellow', Component(common.YELLOW, 'Yellow'))
        black = WidgetItemComponent('Black', Component(common.BLACK, 'Black'))
        purple = WidgetItemComponent('Purple', Component(common.PURPLE, 'Purple'))
        self.color_list_view.addItem(white)
        self.color_list_view.addItem(red)
        self.color_list_view.addItem(green)
        self.color_list_view.addItem(blue)
        self.color_list_view.addItem(yellow)
        self.color_list_view.addItem(black)
        self.color_list_view.addItem(purple)
コード例 #13
0
    def __init__(self, context):
        super(FrameDefinitionEditor,
              self).__init__(context, QtGui.QGroupBox('Animation'))

        self.anchor = None

        # set up layout
        self.outer_layout = QtGui.QHBoxLayout()
        self.layout = QtGui.QGridLayout()
        self.frame_name_field = QtGui.QLineEdit()
        self.frame_name_label = QtGui.QLabel('Frame Name')
        self.frame_list_view = QtGui.QListWidget()
        self.add_frame_button = QtGui.QPushButton('Add Frame')
        self.remove_frame_button = QtGui.QPushButton('Remove Frame')
        self.frame_buttons_layout = QtGui.QVBoxLayout()
        self.graphic_viewer = FrameViewer()
        self.frame_form_layout = QtGui.QGridLayout()
        self.frame_x_label = QtGui.QLabel('X')
        self.frame_x_field = QtGui.QLineEdit()
        self.frame_y_label = QtGui.QLabel('Y')
        self.frame_y_field = QtGui.QLineEdit()
        self.frame_width_label = QtGui.QLabel('Width')
        self.frame_width_field = QtGui.QLineEdit()
        self.frame_height_label = QtGui.QLabel('Height')
        self.frame_height_field = QtGui.QLineEdit()
        self.frame_repeat_label = QtGui.QLabel('Repeat')
        self.frame_repeat_field = QtGui.QLineEdit()

        # events
        EVENT_MAPPING.register_handler('selected_animation',
                                       self.set_animation)
        EVENT_MAPPING.register_handler('updated_frame_crop',
                                       self.update_fields)

        # setup layout
        self.outer_layout.addLayout(self.layout)
        self.outer_layout.addWidget(self.graphic_viewer)
        self.frame_form_layout.addWidget(self.frame_name_label, 0, 0)
        self.frame_form_layout.addWidget(self.frame_name_field, 0, 1)
        self.frame_form_layout.addWidget(self.frame_x_label, 1, 0)
        self.frame_form_layout.addWidget(self.frame_x_field, 1, 1)
        self.frame_form_layout.addWidget(self.frame_y_label, 2, 0)
        self.frame_form_layout.addWidget(self.frame_y_field, 2, 1)
        self.frame_form_layout.addWidget(self.frame_width_label, 1, 2)
        self.frame_form_layout.addWidget(self.frame_width_field, 1, 3)
        self.frame_form_layout.addWidget(self.frame_height_label, 2, 2)
        self.frame_form_layout.addWidget(self.frame_height_field, 2, 3)
        self.frame_form_layout.addWidget(self.frame_repeat_label, 3, 0)
        self.frame_form_layout.addWidget(self.frame_repeat_field, 3, 1, 1, 2)
        self.layout.addLayout(self.frame_form_layout, 0, 0)
        self.layout.addWidget(self.frame_list_view, 1, 0)
        self.frame_buttons_layout.addWidget(self.add_frame_button)
        self.frame_buttons_layout.addWidget(self.remove_frame_button)
        self.layout.addLayout(self.frame_buttons_layout, 1, 1)

        self.group.setLayout(self.outer_layout)

        # wire up gui event handlers
        self.add_frame_button.clicked.connect(self.add_frame)
        self.remove_frame_button.clicked.connect(self.remove_frame)
        self.frame_list_view.currentItemChanged.connect(self.select_frame)
コード例 #14
0
    def __init__(self, context):
        super(HitboxDefinitionEditor, self).__init__(context,
                                                     QtGui.QGroupBox('Hitbox'))
        self.selected_frame = None
        self.anchor = None

        # setup layout
        self.outer_layout = QtGui.QHBoxLayout()
        self.layout = QtGui.QGridLayout()
        self.box_name_label = QtGui.QLabel('Hitbox Name')
        self.box_name_field = QtGui.QLineEdit()
        self.box_hitactive_label = QtGui.QLabel('Hit Active')
        self.box_hitactive_check = QtGui.QCheckBox()
        self.box_hurtactive_label = QtGui.QLabel('Hurt Active')
        self.box_hurtactive_check = QtGui.QCheckBox()
        self.box_blockactive_label = QtGui.QLabel('Block Active')
        self.box_blockactive_check = QtGui.QCheckBox()
        self.box_solid_label = QtGui.QLabel('Solid')
        self.box_solid_check = QtGui.QCheckBox()
        self.box_x_label = QtGui.QLabel('X')
        self.box_x_field = QtGui.QLineEdit()
        self.box_y_label = QtGui.QLabel('Y')
        self.box_y_field = QtGui.QLineEdit()
        self.box_width_label = QtGui.QLabel('Width')
        self.box_width_field = QtGui.QLineEdit()
        self.box_height_label = QtGui.QLabel('Height')
        self.box_height_field = QtGui.QLineEdit()
        self.box_layout = QtGui.QGridLayout()
        self.box_list_view = QtGui.QListWidget()
        self.add_box_button = QtGui.QPushButton('Add Hitbox')
        self.remove_box_button = QtGui.QPushButton('Remove Hitbox')
        self.box_buttons_layout = QtGui.QVBoxLayout()

        # used to encapsulate the state of checkboxes
        # this simplifies notifying the graphic_viewer of how to
        # color the hitbox
        self.check_context = {
            'hitactive': self.box_hitactive_check.checkState(),
            'hurtactive': self.box_hurtactive_check.checkState(),
            'blockactive': self.box_blockactive_check.checkState(),
            'solid': self.box_solid_check.checkState()
        }
        self.graphic_viewer = HitboxViewer(self.check_context)

        # internal events
        EVENT_MAPPING.register_handler('selected_frame', self.set_frame)
        EVENT_MAPPING.register_handler('updated_box', self.update_fields)
        EVENT_MAPPING.register_handler('selected_graphic', self.set_anchor)

        #set up layout
        self.outer_layout.addLayout(self.layout)
        self.layout.addWidget(self.box_name_label,0,0)
        self.layout.addWidget(self.box_name_field,0,1)
        self.box_layout.addWidget(self.box_hitactive_label,0,0)
        self.box_layout.addWidget(self.box_hitactive_check,0,1)
        self.box_layout.addWidget(self.box_hurtactive_label,0,2)
        self.box_layout.addWidget(self.box_hurtactive_check,0,3)
        self.box_layout.addWidget(self.box_blockactive_label,1,0)
        self.box_layout.addWidget(self.box_blockactive_check,1,1)
        self.box_layout.addWidget(self.box_solid_label,1,2)
        self.box_layout.addWidget(self.box_solid_check,1,3)
        self.box_layout.addWidget(self.box_x_label,2,0)
        self.box_layout.addWidget(self.box_x_field,2,1)
        self.box_layout.addWidget(self.box_width_label,2,2)
        self.box_layout.addWidget(self.box_width_field,2,3)
        self.box_layout.addWidget(self.box_y_label,3,0)
        self.box_layout.addWidget(self.box_y_field,3,1)
        self.box_layout.addWidget(self.box_height_label,3,2)
        self.box_layout.addWidget(self.box_height_field,3,3)
        self.layout.addLayout(self.box_layout,1,0)
        self.layout.addWidget(self.box_list_view,2,0)
        self.box_buttons_layout.addWidget(self.add_box_button)
        self.box_buttons_layout.addWidget(self.remove_box_button)
        self.layout.addLayout(self.box_buttons_layout,2,1)
        self.outer_layout.addWidget(self.graphic_viewer)

        self.group.setLayout(self.outer_layout)

        # wire up gui event handlers
        self.add_box_button.clicked.connect(self.add_box)
        self.remove_box_button.clicked.connect(self.remove_box)
        self.box_list_view.currentItemChanged.connect(self.select_box)
        self.box_hitactive_check.stateChanged.connect(self.set_hitactive)
        self.box_hurtactive_check.stateChanged.connect(self.set_hurtactive)
        self.box_blockactive_check.stateChanged.connect(self.set_blockactive)
        self.box_solid_check.stateChanged.connect(self.set_solid)
コード例 #15
0
    def __init__(self, context):
        super(BindingDefinitionEditor, self).__init__(context,
                                                      QtGui.QGroupBox('Binding'))
        self.current_binding = None
        self.layout = QtGui.QGridLayout()
        self.binding_name_label = QtGui.QLabel('Binding Name')
        self.binding_name_field = QtGui.QLineEdit()
        self.inp_list_view = QtGui.QListWidget()
        self.selected_inp_list_view = QtGui.QListWidget()
        self.inp_layout = QtGui.QHBoxLayout()
        self.inp_button_layout = QtGui.QVBoxLayout()
        self.key_label = QtGui.QLabel('Choose Default Key')
        self.key_list_view = QtGui.QListWidget()
        self.key_layout = QtGui.QVBoxLayout()
        self.mirror_label = QtGui.QLabel('Choose Mirror Input')
        self.mirror_list_view = QtGui.QListWidget()
        self.mirror_layout = QtGui.QVBoxLayout()
        self.binding_list_view = QtGui.QListWidget()
        self.add_inp_button = QtGui.QPushButton('Add Input')
        self.remove_inp_button = QtGui.QPushButton('Remove Input')
        self.add_binding_button = QtGui.QPushButton('Add Binding')
        self.remove_binding_button = QtGui.QPushButton('Remove Binding')
        self.edit_binding_button = QtGui.QPushButton('Edit Binding')
        self.button_layout = QtGui.QVBoxLayout()

        # set up layout
        self.layout.addWidget(self.binding_name_label,0,0)
        self.layout.addWidget(self.binding_name_field,0,1)
        self.inp_layout.addWidget(self.inp_list_view)
        self.key_layout.addWidget(self.key_label)
        self.key_layout.addWidget(self.key_list_view)
        self.inp_layout.addLayout(self.key_layout)
        self.mirror_layout.addWidget(self.mirror_label)
        self.mirror_layout.addWidget(self.mirror_list_view)
        self.inp_layout.addLayout(self.mirror_layout)
        self.inp_button_layout.addWidget(self.add_inp_button)
        self.inp_button_layout.addWidget(self.remove_inp_button)
        self.inp_layout.addLayout(self.inp_button_layout)
        self.inp_layout.addWidget(self.selected_inp_list_view)
        self.layout.addLayout(self.inp_layout,1,0,1,2)
        self.layout.addWidget(self.binding_list_view,2,0)
        self.button_layout.addWidget(self.add_binding_button)
        self.button_layout.addWidget(self.remove_binding_button)
        self.button_layout.addWidget(self.edit_binding_button)
        self.layout.addLayout(self.button_layout,2,1)

        self.group.setLayout(self.layout)

        # miscellaneous
        for key in KEYS:
            key_comp = KeyComponent(pygame.__dict__[key])
            key_wrapper = Component(key_comp, key)
            widget_item = WidgetItemComponent(key, key_wrapper)
            self.key_list_view.addItem(widget_item)

        # internal events
        EVENT_MAPPING.register_handler('selected_entity', self.set_bindings)
        EVENT_MAPPING.register_handler('added_input', self.new_input)
        EVENT_MAPPING.register_handler('removed_input', self.removed_input)

        # wire up events
        self.add_inp_button.clicked.connect(self.add_input)
        self.remove_inp_button.clicked.connect(self.remove_input)
        self.add_binding_button.clicked.connect(self.add_binding)
        self.remove_binding_button.clicked.connect(self.remove_binding)
        self.edit_binding_button.clicked.connect(self.edit_binding)
        self.binding_list_view.currentItemChanged.connect(self.select_binding)
コード例 #16
0
    def __init__(self, context):
        super(MovementDefinitionEditor, self).__init__(context,
                                                       QtGui.QGroupBox('Movement'))
        # gui elements
        self.layout = QtGui.QGridLayout()
        self.move_name_label = QtGui.QLabel('Movement Name')
        self.move_name_field = QtGui.QLineEdit()
        self.velocity_type_group = QtGui.QButtonGroup()
        self.velocity_standard_type = QtGui.QRadioButton('Standard')
        self.velocity_pulse_type = QtGui.QRadioButton('Pulse')
        self.velocity_group = QtGui.QGroupBox('Velocity')
        self.velocity_list_view = QtGui.QListWidget()
        self.velocity_layout = QtGui.QGridLayout()
        self.body_label = QtGui.QLabel('Choose Body')
        self.body_tree_view = QtGui.QTreeWidget()
        self.body_layout = QtGui.QVBoxLayout()
        self.parent_label = QtGui.QLabel('Choose Parent')
        self.parent_list_view = QtGui.QListWidget()
        self.parent_layout = QtGui.QVBoxLayout()
        self.movement_list_view = QtGui.QListWidget()
        self.add_movement_button = QtGui.QPushButton('Add Movement')
        self.update_movement_button = QtGui.QPushButton('Update Movement')
        self.remove_movement_button = QtGui.QPushButton('Remove Movement')
        self.movement_button_layout = QtGui.QVBoxLayout()

        # set up layout
        self.velocity_type_group.addButton(self.velocity_standard_type)
        self.velocity_type_group.addButton(self.velocity_pulse_type)
        self.layout.addWidget(self.move_name_label,0,0)
        self.layout.addWidget(self.move_name_field,0,1)
        self.velocity_layout.addWidget(self.velocity_standard_type,0,0)
        self.velocity_layout.addWidget(self.velocity_pulse_type,0,1)
        self.velocity_layout.addWidget(self.velocity_list_view,1,0)
        self.layout.addWidget(self.velocity_group,1,0)
        self.body_layout.addWidget(self.body_label)
        self.body_layout.addWidget(self.body_tree_view)
        self.layout.addLayout(self.body_layout,1,1)
        self.parent_layout.addWidget(self.parent_label)
        self.parent_layout.addWidget(self.parent_list_view)
        self.layout.addLayout(self.parent_layout,1,2)
        self.layout.addWidget(self.movement_list_view,2,0)
        self.movement_button_layout.addWidget(self.add_movement_button)
        self.movement_button_layout.addWidget(self.update_movement_button)
        self.movement_button_layout.addWidget(self.remove_movement_button)
        self.layout.addLayout(self.movement_button_layout,2,1)

        self.velocity_group.setLayout(self.velocity_layout)
        self.group.setLayout(self.layout)

        # internal events
        EVENT_MAPPING.register_handler('selected_entity', self.set_entity)
        EVENT_MAPPING.register_handler('added_component', self.add_component)
        EVENT_MAPPING.register_handler('removed_component', self.remove_component)
        EVENT_MAPPING.register_handler('vector_added', self.add_vector)
        EVENT_MAPPING.register_handler('vector_removed', self.remove_vector)

        # wire up events
        self.add_movement_button.clicked.connect(self.add_movement)
        self.update_movement_button.clicked.connect(self.update_movement)
        self.remove_movement_button.clicked.connect(self.remove_movement)
        self.movement_list_view.currentItemChanged.connect(self.select_movement)
コード例 #17
0
    def __init__(self, context):
        super(MoveDefinitionEditor, self).__init__(context,
                                                   QtGui.QGroupBox('Move'))
        self.selected_animation = None

        # gui elements
        self.layout = QtGui.QGridLayout()
        self.move_name_label = QtGui.QLabel('Move Name')
        self.move_name_field = QtGui.QLineEdit()
        self.ani_picker_label = QtGui.QLabel('Choose Animation')
        self.ani_list_view = QtGui.QListWidget()
        self.ani_picker_layout = QtGui.QVBoxLayout()
        self.inp_picker_label = QtGui.QLabel('Choose Inputs')
        self.inp_list_view = QtGui.QListWidget()
        self.selected_inp_list_view = QtGui.QListWidget()
        self.inp_layout = QtGui.QHBoxLayout()
        self.inp_select_layout = QtGui.QVBoxLayout()
        self.add_inps_button = QtGui.QPushButton('Add Inputs')
        self.remove_inps_button = QtGui.QPushButton('Remove Inputs')
        self.inps_button_layout = QtGui.QVBoxLayout()
        self.move_list_view = QtGui.QListWidget()
        self.add_move_button = QtGui.QPushButton('Add Move')
        self.remove_move_button = QtGui.QPushButton('Remove Move')
        self.move_button_layout = QtGui.QVBoxLayout()

        # misc
        self.inp_list_view.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)

        # set up layout
        self.layout.addWidget(self.move_name_label,0,0)
        self.layout.addWidget(self.move_name_field,0,1)
        self.ani_picker_layout.addWidget(self.ani_picker_label)
        self.ani_picker_layout.addWidget(self.ani_list_view)
        self.layout.addLayout(self.ani_picker_layout,1,0)
        self.inp_select_layout.addWidget(self.inp_picker_label)
        self.inp_select_layout.addWidget(self.inp_list_view)
        self.inp_layout.addLayout(self.inp_select_layout)
        self.inps_button_layout.addWidget(self.add_inps_button)
        self.inps_button_layout.addWidget(self.remove_inps_button)
        self.inp_layout.addLayout(self.inps_button_layout)
        self.inp_layout.addWidget(self.selected_inp_list_view)
        self.layout.addLayout(self.inp_layout,1,1)
        self.layout.addWidget(self.move_list_view,2,0)
        self.move_button_layout.addWidget(self.add_move_button)
        self.move_button_layout.addWidget(self.remove_move_button)
        self.layout.addLayout(self.move_button_layout,2,1)

        self.group.setLayout(self.layout)

        # internal events
        EVENT_MAPPING.register_handler('added_input', self.new_input)
        EVENT_MAPPING.register_handler('removed_input', self.removed_input)
        EVENT_MAPPING.register_handler('selected_entity', self.set_animations)
        EVENT_MAPPING.register_handler('added_animation', self.add_animation)
        EVENT_MAPPING.register_handler('removed_animation', self.remove_animation)

        # wire up events
        self.ani_list_view.currentItemChanged.connect(self.select_animation)
        self.add_inps_button.clicked.connect(self.add_inputs)
        self.remove_inps_button.clicked.connect(self.remove_inputs)
        self.add_move_button.clicked.connect(self.add_move)
        self.remove_move_button.clicked.connect(self.remove_move)
        self.move_list_view.currentItemChanged.connect(self.select_move)
コード例 #18
0
    def __init__(self, context):
        super(BindingDefinitionEditor,
              self).__init__(context, QtGui.QGroupBox('Binding'))
        self.current_binding = None
        self.layout = QtGui.QGridLayout()
        self.binding_name_label = QtGui.QLabel('Binding Name')
        self.binding_name_field = QtGui.QLineEdit()
        self.inp_list_view = QtGui.QListWidget()
        self.selected_inp_list_view = QtGui.QListWidget()
        self.inp_layout = QtGui.QHBoxLayout()
        self.inp_button_layout = QtGui.QVBoxLayout()
        self.key_label = QtGui.QLabel('Choose Default Key')
        self.key_list_view = QtGui.QListWidget()
        self.key_layout = QtGui.QVBoxLayout()
        self.mirror_label = QtGui.QLabel('Choose Mirror Input')
        self.mirror_list_view = QtGui.QListWidget()
        self.mirror_layout = QtGui.QVBoxLayout()
        self.binding_list_view = QtGui.QListWidget()
        self.add_inp_button = QtGui.QPushButton('Add Input')
        self.remove_inp_button = QtGui.QPushButton('Remove Input')
        self.add_binding_button = QtGui.QPushButton('Add Binding')
        self.remove_binding_button = QtGui.QPushButton('Remove Binding')
        self.edit_binding_button = QtGui.QPushButton('Edit Binding')
        self.button_layout = QtGui.QVBoxLayout()

        # set up layout
        self.layout.addWidget(self.binding_name_label, 0, 0)
        self.layout.addWidget(self.binding_name_field, 0, 1)
        self.inp_layout.addWidget(self.inp_list_view)
        self.key_layout.addWidget(self.key_label)
        self.key_layout.addWidget(self.key_list_view)
        self.inp_layout.addLayout(self.key_layout)
        self.mirror_layout.addWidget(self.mirror_label)
        self.mirror_layout.addWidget(self.mirror_list_view)
        self.inp_layout.addLayout(self.mirror_layout)
        self.inp_button_layout.addWidget(self.add_inp_button)
        self.inp_button_layout.addWidget(self.remove_inp_button)
        self.inp_layout.addLayout(self.inp_button_layout)
        self.inp_layout.addWidget(self.selected_inp_list_view)
        self.layout.addLayout(self.inp_layout, 1, 0, 1, 2)
        self.layout.addWidget(self.binding_list_view, 2, 0)
        self.button_layout.addWidget(self.add_binding_button)
        self.button_layout.addWidget(self.remove_binding_button)
        self.button_layout.addWidget(self.edit_binding_button)
        self.layout.addLayout(self.button_layout, 2, 1)

        self.group.setLayout(self.layout)

        # miscellaneous
        for key in KEYS:
            key_comp = KeyComponent(pygame.__dict__[key])
            key_wrapper = Component(key_comp, key)
            widget_item = WidgetItemComponent(key, key_wrapper)
            self.key_list_view.addItem(widget_item)

        # internal events
        EVENT_MAPPING.register_handler('selected_entity', self.set_bindings)
        EVENT_MAPPING.register_handler('added_input', self.new_input)
        EVENT_MAPPING.register_handler('removed_input', self.removed_input)

        # wire up events
        self.add_inp_button.clicked.connect(self.add_input)
        self.remove_inp_button.clicked.connect(self.remove_input)
        self.add_binding_button.clicked.connect(self.add_binding)
        self.remove_binding_button.clicked.connect(self.remove_binding)
        self.edit_binding_button.clicked.connect(self.edit_binding)
        self.binding_list_view.currentItemChanged.connect(self.select_binding)
コード例 #19
0
    def __init__(self, context):
        super(HitboxDefinitionEditor, self).__init__(context,
                                                     QtGui.QGroupBox('Hitbox'))
        self.selected_frame = None
        self.anchor = None

        # setup layout
        self.outer_layout = QtGui.QHBoxLayout()
        self.layout = QtGui.QGridLayout()
        self.box_name_label = QtGui.QLabel('Hitbox Name')
        self.box_name_field = QtGui.QLineEdit()
        self.box_hitactive_label = QtGui.QLabel('Hit Active')
        self.box_hitactive_check = QtGui.QCheckBox()
        self.box_hurtactive_label = QtGui.QLabel('Hurt Active')
        self.box_hurtactive_check = QtGui.QCheckBox()
        self.box_blockactive_label = QtGui.QLabel('Block Active')
        self.box_blockactive_check = QtGui.QCheckBox()
        self.box_solid_label = QtGui.QLabel('Solid')
        self.box_solid_check = QtGui.QCheckBox()
        self.box_x_label = QtGui.QLabel('X')
        self.box_x_field = QtGui.QLineEdit()
        self.box_y_label = QtGui.QLabel('Y')
        self.box_y_field = QtGui.QLineEdit()
        self.box_width_label = QtGui.QLabel('Width')
        self.box_width_field = QtGui.QLineEdit()
        self.box_height_label = QtGui.QLabel('Height')
        self.box_height_field = QtGui.QLineEdit()
        self.box_layout = QtGui.QGridLayout()
        self.box_list_view = QtGui.QListWidget()
        self.add_box_button = QtGui.QPushButton('Add Hitbox')
        self.remove_box_button = QtGui.QPushButton('Remove Hitbox')
        self.box_buttons_layout = QtGui.QVBoxLayout()

        # used to encapsulate the state of checkboxes
        # this simplifies notifying the graphic_viewer of how to
        # color the hitbox
        self.check_context = {
            'hitactive': self.box_hitactive_check.checkState(),
            'hurtactive': self.box_hurtactive_check.checkState(),
            'blockactive': self.box_blockactive_check.checkState(),
            'solid': self.box_solid_check.checkState()
        }
        self.graphic_viewer = HitboxViewer(self.check_context)

        # internal events
        EVENT_MAPPING.register_handler('selected_frame', self.set_frame)
        EVENT_MAPPING.register_handler('updated_box', self.update_fields)
        EVENT_MAPPING.register_handler('selected_graphic', self.set_anchor)

        #set up layout
        self.outer_layout.addLayout(self.layout)
        self.layout.addWidget(self.box_name_label, 0, 0)
        self.layout.addWidget(self.box_name_field, 0, 1)
        self.box_layout.addWidget(self.box_hitactive_label, 0, 0)
        self.box_layout.addWidget(self.box_hitactive_check, 0, 1)
        self.box_layout.addWidget(self.box_hurtactive_label, 0, 2)
        self.box_layout.addWidget(self.box_hurtactive_check, 0, 3)
        self.box_layout.addWidget(self.box_blockactive_label, 1, 0)
        self.box_layout.addWidget(self.box_blockactive_check, 1, 1)
        self.box_layout.addWidget(self.box_solid_label, 1, 2)
        self.box_layout.addWidget(self.box_solid_check, 1, 3)
        self.box_layout.addWidget(self.box_x_label, 2, 0)
        self.box_layout.addWidget(self.box_x_field, 2, 1)
        self.box_layout.addWidget(self.box_width_label, 2, 2)
        self.box_layout.addWidget(self.box_width_field, 2, 3)
        self.box_layout.addWidget(self.box_y_label, 3, 0)
        self.box_layout.addWidget(self.box_y_field, 3, 1)
        self.box_layout.addWidget(self.box_height_label, 3, 2)
        self.box_layout.addWidget(self.box_height_field, 3, 3)
        self.layout.addLayout(self.box_layout, 1, 0)
        self.layout.addWidget(self.box_list_view, 2, 0)
        self.box_buttons_layout.addWidget(self.add_box_button)
        self.box_buttons_layout.addWidget(self.remove_box_button)
        self.layout.addLayout(self.box_buttons_layout, 2, 1)
        self.outer_layout.addWidget(self.graphic_viewer)

        self.group.setLayout(self.outer_layout)

        # wire up gui event handlers
        self.add_box_button.clicked.connect(self.add_box)
        self.remove_box_button.clicked.connect(self.remove_box)
        self.box_list_view.currentItemChanged.connect(self.select_box)
        self.box_hitactive_check.stateChanged.connect(self.set_hitactive)
        self.box_hurtactive_check.stateChanged.connect(self.set_hurtactive)
        self.box_blockactive_check.stateChanged.connect(self.set_blockactive)
        self.box_solid_check.stateChanged.connect(self.set_solid)
コード例 #20
0
    def __init__(self, context):
        super(StateDefinitionEditor, self).__init__(context,
                                                    QtGui.QGroupBox('State'))
        # gui elements
        self.layout = QtGui.QGridLayout()
        self.state_name_label = QtGui.QLabel('State Name')
        self.state_name_field = QtGui.QLineEdit()
        self.activation_label = QtGui.QLabel('Activation Events')
        self.activation_list_view = QtGui.QListWidget()
        self.activation_layout = QtGui.QVBoxLayout()
        self.deactivation_label = QtGui.QLabel('Deactivation Events')
        self.deactivation_list_view = QtGui.QListWidget()
        self.deactivation_layout = QtGui.QVBoxLayout()
        self.activation_component_label = QtGui.QLabel('Activation Component')
        self.activation_component_tree_view = QtGui.QTreeWidget()
        self.activation_component_layout = QtGui.QVBoxLayout()
        self.rule_list_label = QtGui.QLabel('Rules')
        self.rule_list_view = QtGui.QListWidget()
        self.rule_list_layout = QtGui.QVBoxLayout()
        self.rule_value_label = QtGui.QLabel('Rule Value')
        self.rule_value_field = QtGui.QLineEdit()
        self.rule_value_component_label = QtGui.QLabel('Or Pick a Component Value')
        self.rule_value_component_tree_view = QtGui.QTreeWidget()
        self.rule_value_layout = QtGui.QVBoxLayout()
        self.selected_rule_list_view = QtGui.QListWidget()
        self.add_rule_button = QtGui.QPushButton('Add Rule and Value')
        self.remove_rule_button = QtGui.QPushButton('Remove Rule and Value')
        self.rule_button_layout = QtGui.QVBoxLayout()
        self.state_list_view = QtGui.QListWidget()
        self.add_state_button = QtGui.QPushButton('Add State')
        self.remove_state_button = QtGui.QPushButton('Remove State')
        self.state_button_layout = QtGui.QVBoxLayout()

        # set up layout
        self.layout.addWidget(self.state_name_label,0,0)
        self.layout.addWidget(self.state_name_field,0,1)
        self.activation_layout.addWidget(self.activation_label)
        self.activation_layout.addWidget(self.activation_list_view)
        self.layout.addLayout(self.activation_layout,1,0)
        self.deactivation_layout.addWidget(self.deactivation_label)
        self.deactivation_layout.addWidget(self.deactivation_list_view)
        self.layout.addLayout(self.deactivation_layout,1,1)
        self.activation_component_layout.addWidget(self.activation_component_label)
        self.activation_component_layout.addWidget(self.activation_component_tree_view)
        self.layout.addLayout(self.activation_component_layout,1,2,1,2)
        self.rule_list_layout.addWidget(self.rule_list_label)
        self.rule_list_layout.addWidget(self.rule_list_view)
        self.layout.addLayout(self.rule_list_layout,2,0)
        self.rule_value_layout.addWidget(self.rule_value_label)
        self.rule_value_layout.addWidget(self.rule_value_field)
        self.rule_value_layout.addWidget(self.rule_value_component_label)
        self.rule_value_layout.addWidget(self.rule_value_component_tree_view)
        self.layout.addLayout(self.rule_value_layout,2,1)
        self.rule_button_layout.addWidget(self.add_rule_button)
        self.rule_button_layout.addWidget(self.remove_rule_button)
        self.layout.addLayout(self.rule_button_layout,2,2)
        self.layout.addWidget(self.selected_rule_list_view,2,3)
        self.layout.addWidget(self.state_list_view,3,0)
        self.state_button_layout.addWidget(self.add_state_button)
        self.state_button_layout.addWidget(self.remove_state_button)
        self.layout.addLayout(self.state_button_layout,3,1,1,1)

        self.group.setLayout(self.layout)

        # populate event lists
        for name in (x for x in dir(events) if not x.startswith('_')):
            value = events.__dict__[name]
            activation_component = Component(value, name)
            deactivation_component = Component(value, name)
            a_widget_component = WidgetItemComponent(name, activation_component)
            d_widget_component = WidgetItemComponent(name, deactivation_component)
            self.activation_list_view.addItem(a_widget_component)
            self.deactivation_list_view.addItem(d_widget_component)

        # internal events
        EVENT_MAPPING.register_handler('selected_entity', self.set_entity)
        EVENT_MAPPING.register_handler('added_component', self.add_component)
        EVENT_MAPPING.register_handler('removed_component', self.remove_component)
        EVENT_MAPPING.register_handler('added_rule', self.rule_added)
        EVENT_MAPPING.register_handler('removed_rule', self.rule_removed)

        # wire up events
        self.add_rule_button.clicked.connect(self.add_rule)
        self.remove_rule_button.clicked.connect(self.remove_rule)
        self.add_state_button.clicked.connect(self.add_state)
        self.remove_state_button.clicked.connect(self.remove_state)
        self.state_list_view.currentItemChanged.connect(self.select_state)
        self.selected_rule_list_view.currentItemChanged.connect(self.select_rule)