def __set__(self, obj, color): if isinstance(color, tuple): color = fifechan.Color(*color) else: # Force a copy to get value semantics color = fifechan.Color(color.r, color.g, color.b, color.a) self._getSetter(obj)(color)
def _setColor(self, color): if isinstance(color, tuple): self._color = fifechan.Color(*color) else: # Force a copy to get value semantics self._color = fifechan.Color(color.r, color.g, color.b, color.a) if self.pie is not None: self.pie().update()
def removeSegment(self, start, stop, color): tmp_color = color if isinstance(color, tuple): tmp_color = fifechan.Color(*color) for s in self._segments: if s.start_angle == start and s.stop_angle == stop and s.color == tmp_color: self._segments.remove(s) self.update() break
def getToolbarAreaAt(self, x, y, mark=False): if self.dockareamarker is None: self.dockareamarker = pychan.widgets.Container() self.dockareamarker.base_color = fifechan.Color(200, 0, 0, 100) if mark is False: self.dockareamarker.hide() # Mouse wasn't over any dockwidgets. See if it is near any edge of the screen instead if x <= self._toolbarareas["left"].getAbsolutePos()[0] + 10: if mark: self.dockareamarker.position = self._toolbarareas[ "left"].getAbsolutePos() self.dockareamarker.size = (10, self._toolbarareas["left"].height) self.dockareamarker.show() return DOCKAREA["left"] elif x >= self._toolbarareas["right"].getAbsolutePos()[0] - 10: if mark: self.dockareamarker.position = self._toolbarareas[ "right"].getAbsolutePos() self.dockareamarker.size = (10, self._toolbarareas["right"].height) self.dockareamarker.x -= 10 self.dockareamarker.show() return DOCKAREA["right"] elif y <= self._toolbarareas["top"].getAbsolutePos()[1] + 10: if mark: self.dockareamarker.position = self._toolbarareas[ "top"].getAbsolutePos() self.dockareamarker.size = (self._toolbarareas["top"].width, 10) self.dockareamarker.show() return DOCKAREA["top"] elif y >= self._toolbarareas["bottom"].getAbsolutePos()[1] - 10: if mark: self.dockareamarker.position = self._toolbarareas[ "bottom"].getAbsolutePos() self.dockareamarker.y -= 10 self.dockareamarker.size = (self._toolbarareas["bottom"].width, 10) self.dockareamarker.show() return DOCKAREA["bottom"] if mark is True: self.dockareamarker.hide() return None
from fife import fife, fifechan from fife.extensions import pychan from fife.extensions.pychan.tools import callbackWithArguments as cbwa from fife.extensions.fife_timer import Timer import scripts.test as test """ For use with the styling example """ STYLES = { 'new default': { 'default': { 'border_size': 2, 'margins': (0, 0), 'base_color': fifechan.Color(128, 128, 128), 'foreground_color': fifechan.Color(255, 255, 255), 'background_color': fifechan.Color(55, 55, 55), 'font': 'samanata_small' }, 'Button': { 'border_size': 2, 'margins': (20, 5), 'min_size': (100, 20), 'font': 'samanata_small' }, 'CheckBox': { 'border_size': 0, 'background_color': fifechan.Color(0, 0, 0, 0), }, 'RadioButton': {
def __get__(self, obj, objtype=None): color = self._getGetter(obj)() return fifechan.Color(color.r, color.g, color.b, color.a)
def getDockAreaAt(self, x, y, mark=False): """ returns the dock area at the given cursor coordinates (if possible) also used for highlighting the dock area (this method is used on drag mouse events of a B{Panel} widget) @type x: int @param x: cursor x coordinates @type y: int @param y: cursor y coordinates @type mark: bool @param mark: flag to wether show the dock area marker (red area indicator) or not @rtype side: str @return side: dockarea id (e.g. 'right', 'left' ...) """ side = None if self.dockareamarker is None: self.dockareamarker = pychan.widgets.Container() self.dockareamarker.base_color = fifechan.Color(200, 0, 0, 100) if mark is False: self.dockareamarker.hide() for key in DOCKAREA: side = DOCKAREA[key] dockarea = self._dockareas[side] #absX, absY = dockarea.getAbsolutePos() #if absX <= x and absY <= y \ # and absX+dockarea.width >= x and absX+dockarea.height >= y: # return side placeIn, placeBefore, placeAfter = dockarea.getDockLocation(x, y) if placeIn or placeBefore or placeAfter: if mark is True: if placeIn: self.dockareamarker.position = placeIn.getAbsolutePos() self.dockareamarker.size = placeIn.size elif placeBefore: self.dockareamarker.position = placeBefore.getAbsolutePos( ) if side == "left" or side == "right": self.dockareamarker.size = (placeBefore.width, 10) else: self.dockareamarker.size = (10, placeBefore.height) elif placeAfter: self.dockareamarker.position = placeAfter.getAbsolutePos( ) if side == "left" or side == "right": self.dockareamarker.size = (placeAfter.width, 10) self.dockareamarker.y += placeAfter.height - 10 else: self.dockareamarker.size = (10, placeAfter.height) self.dockareamarker.x += placeAfter.width - 10 self.dockareamarker.show() return side # reset side, next attempt to find a new home side = None # Mouse wasn't over any dockwidgets. See if it is near any edge of the screen instead if x <= self._dockareas["left"].getAbsolutePos()[0] + 10: if mark: self.dockareamarker.position = self._dockareas[ "left"].getAbsolutePos() self.dockareamarker.size = (10, self._dockareas["left"].height) self.dockareamarker.show() side = DOCKAREA["left"] return side elif x >= self._dockareas["right"].getAbsolutePos()[0] - 10: if mark: self.dockareamarker.position = self._dockareas[ "right"].getAbsolutePos() self.dockareamarker.size = (10, self._dockareas["right"].height) self.dockareamarker.x -= 10 self.dockareamarker.show() side = DOCKAREA["right"] return side elif y <= self._dockareas["top"].getAbsolutePos()[1] + 10: if mark: self.dockareamarker.position = self._dockareas[ "top"].getAbsolutePos() self.dockareamarker.size = (self._dockareas["top"].width, 10) self.dockareamarker.show() side = DOCKAREA["top"] return side elif y >= self._dockareas["bottom"].getAbsolutePos()[1] - 10: if mark: self.dockareamarker.position = self._dockareas[ "bottom"].getAbsolutePos() self.dockareamarker.y -= 10 self.dockareamarker.size = (self._dockareas["bottom"].width, 10) self.dockareamarker.show() side = DOCKAREA["bottom"] return side if mark is True: self.dockareamarker.hide() return side
from scripts.gui.action import Action from scripts.gui.panel import Panel from scripts.events import postMapShown from scripts.events import onObjectSelected from scripts.events import onObjectsImported # settings for gui _POSITION = (30, 200) _SIZE = (200, 500) _MAX_PREVIEW_SIZE = (120, 120) _MODE_TEXT = 0 _MODE_IMAGE = 1 _MODES = [_MODE_TEXT, _MODE_IMAGE] _COLOR_STEP = fifechan.Color(10, 10, 10) _MAX_PREVIEW_WRAPPER_SIZE = (140, 140) _DEFAULT_BASE_COLOR = internal.DEFAULT_STYLE['default']['base_color'] _DEFAULT_SELECTION_COLOR = internal.DEFAULT_STYLE['default']['selection_color'] # plugin default settings _PLUGIN_SETTINGS = { 'module': "ObjectSelectorSettings", 'items': { 'dockarea': 'right', 'docked': True, }, }
def _getColor(self): return fifechan.Color(self._color.r, self._color.g, self._color.b, self._color.a)