def on_mousedown(button, pos): if frame.mode is None or frame.mode.on_mousedown(button, pos): intron = frame.pick_intron(pos) if intron is None: set_mode( None ) return if isinstance(intron.controller, LayoutController): obj = intron.controller.obj if isinstance(obj, (mutable.List, mutable.String, mutable.Document)): head = intron.pick_offset(pos) set_mode( EditMode(frame, mutable.Selection(obj, head)) ) else: set_mode( EditMode(frame, mutable.normalize(obj)) )
argon = Argon(600, 800) #from mode import Mode, SelectionMode default = renderer.get_default_style(argon).inherit( color = whiteish, ) language = __import__('strike') EditMode = language.EditMode layouter = language.init(argon, default, theme) toolbar_height = argon.default_font.height*2 frame = Frame((0, 0, argon.width, argon.height-toolbar_height), document, layouter) frame.mode = EditMode(frame, mutable.normalize(document, False)) def set_mode(new_mode): if frame.mode is not None: frame.mode.free() frame.mode = new_mode box7 = argon.load.patch9('box7.png') frame.style.update( background_color = theme.background, caret_color = rgba(255, 255, 255, 255), selection_background = box7, selection_color_inner = rgba(0, 0, 255, 128), selection_color_outer = rgba(32, 32, 255, 128), selection_color_bad = rgba(255, 255, 0, 192), )