Esempio n. 1
0
 def create_item(self,
                 component,
                 coords=(),
                 item=None,
                 canvas=None,
                 silently=False,
                 **kwargs):
     canvas = canvas or self.canvas
     if item is None:
         opts = dict(**component.defaults)
         opts.update(kwargs)
         item = component(canvas, *coords, **opts)
         # generate a unique id
         item.name = self.generator.generate(component, self._ids)
     canvas._cv_items.append(item)
     item._prev_index = canvas._cv_items.index(item)
     node = canvas._cv_tree.add_as_node(item=item)
     item.bind("<ButtonRelease-1>", lambda e: self._handle_select(item, e),
               True)
     item.bind("<ButtonRelease-1>", lambda e: self._handle_end(item, e),
               True)
     item.bind("<Motion>", lambda e: self._handle_move(item, e), True)
     MenuUtils.bind_context(item, self._show_item_menu(item))
     MenuUtils.bind_all_context(node, self._show_item_menu(item))
     if not silently:
         self.studio.new_action(
             Action(lambda _: self.remove_items([item], silently=True),
                    lambda _: self.restore_items([item])))
     return item
Esempio n. 2
0
 def setup_widget(self):
     self.level = 0
     self.layout = None
     self.recent_layout_info = None
     self._properties = get_properties(self)
     self.set_name(self.id)
     self.node = None
     self.__on_context = None
     self.last_menu_position = (0, 0)
     MenuUtils.bind_context(self, self.__handle_context_menu, add='+')