Esempio n. 1
0
   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()
Esempio n. 2
0
   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()
Esempio n. 3
0
 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)
Esempio n. 4
0
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
Esempio n. 5
0
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)
Esempio n. 6
0
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
Esempio n. 7
0
 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)
Esempio n. 8
0
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)
Esempio n. 9
0
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
Esempio n. 10
0
File: args.py Progetto: DDMAL/Gamera
 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")
Esempio n. 11
0
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
Esempio n. 12
0
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
Esempio n. 13
0
 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")
Esempio n. 14
0
 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")
Esempio n. 15
0
 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
Esempio n. 16
0
 def __call__(self, center=0.5):
    if not util.is_sequence(center):
       return _segmentation.splitx(self, [center])
    else:
       return _segmentation.splitx(self, center)
Esempio n. 17
0
 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)
Esempio n. 18
0
 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)