예제 #1
0
    def build_ui(self):
        self.icon = get_icon(PLUGIN_ICON)
        panel = wal.VPanel(self.panel)
        self.transform_keeper = wal.HToggleKeeper(panel, TRANSFORM_MODES,
                                                  TRANSFORM_MODE_ICONS,
                                                  TRANSFORM_MODE_NAMES,
                                                  self.on_mode_change)
        panel.pack(self.transform_keeper)
        panel.pack(wal.HLine(panel), fill=True, padding=3)

        self.transform_panel = wal.VPanel(panel)

        self.transforms = {}
        for item in TRANSFORM_MODES:
            transf = TRANSFORM_CLASSES[item](self.transform_panel, self.app,
                                             self.on_reset)
            transf.hide()
            self.transforms[item] = transf

        panel.pack(self.transform_panel, fill=True)

        hpanel = wal.HPanel(panel)
        self.oi = OrientationIndicator(hpanel, onchange=self.on_orient_change)
        hpanel.pack(self.oi)
        hpanel.pack((10, 10))
        hpanel.pack(OriginIndicator(hpanel, self.app))

        panel.pack(hpanel, padding_all=10)

        self.apply_copy_btn = wal.Button(panel,
                                         _('Apply to copy'),
                                         onclick=self.action_copy)
        panel.pack(self.apply_copy_btn, fill=True)

        self.apply_btn = wal.Button(panel, _('Apply'), onclick=self.action)
        panel.pack(self.apply_btn, padding=3, fill=True)

        panel.pack(wal.HLine(panel), fill=True)

        self.panel.pack(panel, fill=True, expand=True, padding_all=5)

        events.connect(events.DOC_CHANGED, self.update)
        events.connect(events.SELECTION_CHANGED, self.update)
        events.connect(events.DOC_MODIFIED, self.update)
        self.update()
예제 #2
0
파일: __init__.py 프로젝트: Scrik/sk1-wx
	def build_ui(self):
		self.icon = get_icon(PLUGIN_ICON)
		panel = wal.VPanel(self.panel)
		self.transform_keeper = wal.HToggleKeeper(panel, TRANSFORM_MODES,
							TRANSFORM_MODE_ICONS,
							TRANSFORM_MODE_NAMES, self.on_mode_change)
		panel.pack(self.transform_keeper)
		panel.pack(wal.HLine(panel), fill=True, padding=3)

		self.transform_panel = wal.VPanel(panel)

		self.transforms = {}
		for item in TRANSFORM_MODES:
			transf = TRANSFORM_CLASSES[item](self.transform_panel, self.app,
											self.on_reset)
			transf.hide()
			self.transforms[item] = transf

		panel.pack(self.transform_panel, fill=True)

		hpanel = wal.HPanel(panel)
		self.oi = OrientationIndicator(hpanel, onchange=self.on_orient_change)
		hpanel.pack(self.oi)
		hpanel.pack((10, 10))
		hpanel.pack(OriginIndicator(hpanel, self.app))

		panel.pack(hpanel, padding_all=10)

		self.apply_copy_btn = wal.Button(panel, _('Apply to copy'),
							onclick=self.action_copy)
		panel.pack(self.apply_copy_btn, fill=True)

		self.apply_btn = wal.Button(panel, _('Apply'), onclick=self.action)
		panel.pack(self.apply_btn, padding=3, fill=True)

		panel.pack(wal.HLine(panel), fill=True)

		self.panel.pack(panel, fill=True, expand=True, padding_all=5)

		events.connect(events.DOC_CHANGED, self.update)
		events.connect(events.SELECTION_CHANGED, self.update)
		events.connect(events.DOC_MODIFIED, self.update)
		self.update()
예제 #3
0
파일: __init__.py 프로젝트: Scrik/sk1-wx
class Transform_Plugin(RS_Plugin):

	pid = 'TransformPlugin'
	name = _('Transformations')
	active_transform = None
	transforms = {}

	def build_ui(self):
		self.icon = get_icon(PLUGIN_ICON)
		panel = wal.VPanel(self.panel)
		self.transform_keeper = wal.HToggleKeeper(panel, TRANSFORM_MODES,
							TRANSFORM_MODE_ICONS,
							TRANSFORM_MODE_NAMES, self.on_mode_change)
		panel.pack(self.transform_keeper)
		panel.pack(wal.HLine(panel), fill=True, padding=3)

		self.transform_panel = wal.VPanel(panel)

		self.transforms = {}
		for item in TRANSFORM_MODES:
			transf = TRANSFORM_CLASSES[item](self.transform_panel, self.app,
											self.on_reset)
			transf.hide()
			self.transforms[item] = transf

		panel.pack(self.transform_panel, fill=True)

		hpanel = wal.HPanel(panel)
		self.oi = OrientationIndicator(hpanel, onchange=self.on_orient_change)
		hpanel.pack(self.oi)
		hpanel.pack((10, 10))
		hpanel.pack(OriginIndicator(hpanel, self.app))

		panel.pack(hpanel, padding_all=10)

		self.apply_copy_btn = wal.Button(panel, _('Apply to copy'),
							onclick=self.action_copy)
		panel.pack(self.apply_copy_btn, fill=True)

		self.apply_btn = wal.Button(panel, _('Apply'), onclick=self.action)
		panel.pack(self.apply_btn, padding=3, fill=True)

		panel.pack(wal.HLine(panel), fill=True)

		self.panel.pack(panel, fill=True, expand=True, padding_all=5)

		events.connect(events.DOC_CHANGED, self.update)
		events.connect(events.SELECTION_CHANGED, self.update)
		events.connect(events.DOC_MODIFIED, self.update)
		self.update()

	def on_mode_change(self, mode):
		if self.active_transform:
			self.active_transform.hide()
			self.transform_panel.remove(self.active_transform)
		self.active_transform = self.transforms[mode]
		self.transform_panel.pack(self.active_transform, fill=True)
		self.active_transform.show()
		self.active_transform.set_orientation(self.oi.get_value())
		self.panel.layout()
		self.update()

	def on_orient_change(self, val):
		self.active_transform.set_orientation(val)

	def on_reset(self):
		self.oi.reset()

	def action_copy(self): self.action(True)

	def action(self, copy=False):
		doc = self.app.current_doc
		if doc and self.app.insp.is_selection():
			doc.api.transform_selected(self.active_transform.get_trafo(), copy)

	def update(self, *args):
		state = False
		if self.app.insp.is_selection(): state = True
		self.apply_btn.set_enable(state)
		self.apply_copy_btn.set_enable(state)
		self.oi.set_enable(state)
		if self.active_transform:
			self.active_transform.set_enable(state)

	def show_signal(self, mode=POSITION_MODE, *args):
		self.transform_keeper.set_mode(mode)
		self.on_mode_change(mode)
예제 #4
0
class Transform_Plugin(RS_Plugin):
    pid = 'TransformPlugin'
    name = _('Transformations')
    active_transform = None
    transforms = {}

    def build_ui(self):
        self.icon = get_icon(PLUGIN_ICON)
        panel = wal.VPanel(self.panel)
        self.transform_keeper = wal.HToggleKeeper(panel, TRANSFORM_MODES,
                                                  TRANSFORM_MODE_ICONS,
                                                  TRANSFORM_MODE_NAMES,
                                                  self.on_mode_change)
        panel.pack(self.transform_keeper)
        panel.pack(wal.HLine(panel), fill=True, padding=3)

        self.transform_panel = wal.VPanel(panel)

        self.transforms = {}
        for item in TRANSFORM_MODES:
            transf = TRANSFORM_CLASSES[item](self.transform_panel, self.app,
                                             self.on_reset)
            transf.hide()
            self.transforms[item] = transf

        panel.pack(self.transform_panel, fill=True)

        hpanel = wal.HPanel(panel)
        self.oi = OrientationIndicator(hpanel, onchange=self.on_orient_change)
        hpanel.pack(self.oi)
        hpanel.pack((10, 10))
        hpanel.pack(OriginIndicator(hpanel, self.app))

        panel.pack(hpanel, padding_all=10)

        self.apply_copy_btn = wal.Button(panel,
                                         _('Apply to copy'),
                                         onclick=self.action_copy)
        panel.pack(self.apply_copy_btn, fill=True)

        self.apply_btn = wal.Button(panel, _('Apply'), onclick=self.action)
        panel.pack(self.apply_btn, padding=3, fill=True)

        panel.pack(wal.HLine(panel), fill=True)

        self.panel.pack(panel, fill=True, expand=True, padding_all=5)

        events.connect(events.DOC_CHANGED, self.update)
        events.connect(events.SELECTION_CHANGED, self.update)
        events.connect(events.DOC_MODIFIED, self.update)
        self.update()

    def on_mode_change(self, mode):
        if self.active_transform:
            self.active_transform.hide()
            self.transform_panel.remove(self.active_transform)
        self.active_transform = self.transforms[mode]
        self.transform_panel.pack(self.active_transform, fill=True)
        self.active_transform.show()
        self.active_transform.set_orientation(self.oi.get_value())
        self.panel.layout()
        self.update()

    def on_orient_change(self, val):
        self.active_transform.set_orientation(val)

    def on_reset(self):
        self.oi.reset()

    def action_copy(self):
        self.action(True)

    def action(self, copy=False):
        doc = self.app.current_doc
        if doc and self.app.insp.is_selection():
            doc.api.transform_selected(self.active_transform.get_trafo(), copy)

    def update(self, *args):
        state = False
        if self.app.insp.is_selection(): state = True
        self.apply_btn.set_enable(state)
        self.apply_copy_btn.set_enable(state)
        self.oi.set_enable(state)
        if self.active_transform:
            self.active_transform.set_enable(state)

    def show_signal(self, mode=POSITION_MODE, *args):
        self.transform_keeper.set_mode(mode)
        self.on_mode_change(mode)