def __init__(self, parent, x, y, images_, name_=None, shell_=None, mode=EXECUTE_MODE, extra_methods={}): self.shell = shell_ self.locals = locals self.mode = mode self.parent = parent if not util.is_sequence(images_): self.images = [images_] else: self.images = images_ if not util.is_homogeneous_image_list(self.images): gui_util.message("All selected images are not of the same type.") self.image_name = name_ self._menu_ids = [] members = members_for_menu(self.images[0]) methods = methods_for_menu(self.images[0]) menu = self.create_menu( members, methods, self.images[0].data.pixel_type, self.images[0].pixel_type_name, extra_methods) self.did_something = 0 self.parent.PopupMenu(menu, wx.Point(x, y)) for i in self._menu_ids: self.parent.Disconnect(i) menu.Destroy()
def _create_controls(self, locals, parent): self.controls = [] # Controls if util.is_sequence(self.list[0]): notebook = wx.Notebook(parent, -1) for page in self.list: panel = wx.Panel(notebook, -1) gs = self._create_page(locals, panel, page[1:]) panel.SetSizer(gs) notebook.AddPage(panel, page[0]) return notebook else: return self._create_page(locals, parent, self.list)
def get_color(number): global color_number if isinstance(number, wx.Colour): return number if util.is_sequence(number): if len(number) == 3: return wx.Colour(*tuple(number)) else: number = None if type(number) != IntType: number = color_number color_number += 1 return colors[number & 0x7] # mod 8
def display_multi(list): """**display_multi** (ImageList *list*) Displays a list of images in a grid-like window. This function has no effect if the `Gamera GUI`__ is not running. .. __: gui.html""" # If it's not a list, we'll get errors, so make it one if not util.is_sequence(list): list = [list] if not len(list): raise ValueError("Given list is empty.") return has_gui.gui.ShowImages(list)
def get_color(number): global color_number if isinstance(number, wx.Colour): return number if util.is_sequence(number): if len(number) == 3: return wx.Colour(*tuple(number)) else: number = None if type(number) != int: number = color_number color_number += 1 return colors[number & 0x7] # mod 8
def build_menu(parent, menu_spec): global menu_item_id menu = wx.Menu() for name, func in menu_spec: if util.is_sequence(func): menu_item_id = wx.NewId() menu.AppendMenu(menu_item_id, name, build_menu(parent, func)) elif name == None: menu.AppendSeparator() else: menu_item_id = wx.NewId() menu.Append(menu_item_id, name) wx.EVT_MENU(parent, menu_item_id, func) return menu
def __init__(self, name=None, range=(-DEFAULT_MAX_ARG_NUMBER, DEFAULT_MAX_ARG_NUMBER), default=None): Arg.__init__(self, name) if not (util.is_sequence(range) and len(range) == 2 and type(range[0]) in (int, float) and type(range[1]) in (int, float)): raise TypeError("'range' must be a 2-tuple of numbers") self.rng = range if default is None: self.has_default = False self.default = 0 else: self.has_default = True self.default = default if not isinstance(self.default, CNoneDefault) and type(self.default) != int: raise TypeError("'default' must be an int")
def build_menu(parent, menu_spec): global menu_item_id menu = wx.Menu() for name, func in menu_spec: if util.is_sequence(func): menu_item_id = wx.NewId() compat_wx.extend_menu(menu, menu_item_id, name, build_menu(parent, func)) elif name == None: menu.AppendSeparator() else: menu_item_id = wx.NewId() menu.Append(menu_item_id, name) compat_wx.handle_event_1(parent, wx.EVT_MENU, func, menu_item_id) return menu
def __init__(self, pixel_types, name=None, list_of=False, default=None): Arg.__init__(self, name) if not util.is_sequence(pixel_types): pixel_types = (pixel_types,) if not util.is_homogenous_list(pixel_types, (int,)): raise TypeError("'pixel_types' must be a list of integers.") if not core is None: self.klass = core.ImageBase else: self.klass = None self.pixel_types = pixel_types self.list_of = bool(list_of) if default is None: self.has_default = False self.default = None else: self.has_default = True self.default = default if self.has_default and not isinstance(self.default, CNoneDefault): raise TypeError("'default' can only be NoneDefault")
def execute(self, stream, data): remember_vars = {} for var in self.vars: if var in data: remember_vars[var] = data[var] try: x = eval(self.expression, globals(), data) except Exception as e: self.parent.parser_exception(self.expression, e) for list in x: if util.is_sequence(list): if len(self.vars) == 1: data[self.vars[0]] = list elif len(self.vars) == len(list): for index, value in util.enumerate(list): data[self.vars[index]] = value else: self.parent.parser_exception( "Unable to unpack tuples in [[%s]]" % self.s) else: data[self.vars[0]] = list TemplateNode.execute(self, stream, data) for key, value in remember_vars.items(): data[key] = value
def __call__(self, center=0.5): if not util.is_sequence(center): return _segmentation.splitx(self, [center]) else: return _segmentation.splitx(self, center)
def __call__(self, angles): if not util.is_sequence(angles): return _projections.projection_skewed_rows(self, [angles])[0] else: return _projections.projection_skewed_rows(self, angles)