示例#1
0
def builder(parent, index, klass=None):
    "factory function for EditToolBar objects"
    if klass is None:
        import window_dialog as wd
        klass = 'wxToolBar' if common.root.language.lower()=='xrc' else 'MyToolBar'
    
        # if e.g. on a frame, suggest the user to add the tool bar to this
        toplevel_widget = None
        if misc.focused_widget is not None and not misc.focused_widget.IS_ROOT:
            toplevel_widget = misc.focused_widget.toplevel_parent
            if not "toolbar" in toplevel_widget.properties: toplevel_widget = None
        if toplevel_widget is not None:
            dialog = wd.StandaloneOrChildDialog(klass, "Select toolbar type and class", toplevel_widget, "toolbar")
        else:
            dialog = wd.WindowDialog(klass, None, 'Select standalone toolbar class', True)
    
        klass = dialog.show()
        dialog.Destroy()
        if klass is None: return None
    else:
        # allow to call builder(frame, None, True)
        toplevel_widget = parent

    if index=="_toolbar" or klass is True:
        # add to frame
        editor = EditToolBar(toplevel_widget.name+"_toolbar", toplevel_widget)
        if toplevel_widget.widget: editor.create()
        return editor

    # a standalone toolbar
    name = dialog.get_next_name("toolbar")
    editor = EditTopLevelToolBar(name, parent, klass)
    editor.create()
    editor.widget.Show()
    return editor
示例#2
0
def builder(parent, sizer, pos):
    "factory function for EditToolBar objects"
    import window_dialog as wd
    klass = 'wxToolBar' if common.app_tree.app.language.lower(
    ) == 'xrc' else 'MyToolBar'

    # if e.g. on a frame, suggest the user to add the tool bar to this
    toplevel_widget = None
    if misc.focused_widget is not None and misc.focused_widget.node.parent:
        toplevel_widget = common.app_tree._find_toplevel(
            misc.focused_widget.node).widget
        if not "toolbar" in toplevel_widget.properties:
            toplevel_widget = None
    if toplevel_widget is not None:
        dialog = wd.StandaloneOrChildDialog(klass,
                                            "Select toolbar type and class",
                                            toplevel_widget, "toolbar")
    else:
        dialog = wd.WindowDialog(klass, None,
                                 'Select standalone toolbar class', True)

    klass = dialog.show()
    dialog.Destroy()
    if klass is None: return
    if klass is True:
        # add to toplevel widget
        toplevel_widget.properties["toolbar"].set(True, notify=True)
        return
    name = dialog.get_next_name("toolbar")
    with parent and parent.frozen() or misc.dummy_contextmanager():
        tb = EditToolBar(name, klass, parent)
        tb.node = Node(tb)
        common.app_tree.add(tb.node)
        if parent and parent.widget: tb.create()
示例#3
0
def builder(parent, pos):
    "factory function for EditMenuBar objects"
    import window_dialog as wd
    klass = 'wxMenuBar' if common.root.language.lower(
    ) == 'xrc' else 'MyMenuBar'

    # if e.g. on a frame, suggest the user to add the menu bar to this
    toplevel_widget = None
    if misc.focused_widget is not None and not misc.focused_widget.IS_ROOT:
        toplevel_widget = misc.focused_widget.toplevel_parent
        if not "menubar" in toplevel_widget.properties:
            toplevel_widget = None
    if toplevel_widget is not None:
        dialog = wd.StandaloneOrChildDialog(klass,
                                            "Select menubar type and class",
                                            toplevel_widget, "menubar")
    else:
        dialog = wd.WindowDialog(klass, None,
                                 'Select standalone menubar class', True)

    klass = dialog.show()
    dialog.Destroy()
    if klass is None: return None
    if klass is True:
        # add to toplevel widget
        toplevel_widget.properties["menubar"].set(True, notify=True)
        return toplevel_widget._menubar
    name = dialog.get_next_name("menubar")
    with (not parent.IS_ROOT
          and parent.frozen()) or misc.dummy_contextmanager():
        editor = EditMenuBar(name, klass, parent)
        editor.create()
        editor.widget.Show()
    return editor
示例#4
0
def builder(parent, index, klass=None):
    "factory function for EditMenuBar objects"
    # this one is a bit special as usually it's called with parent=application
    # if a frame w/o menubar is focused, it will ask the user whether he wants to add a menubar to that
    if klass is None:
        import window_dialog as wd
        klass = 'wxMenuBar' if common.root.language.lower(
        ) == 'xrc' else 'MyMenuBar'

        # if e.g. on a frame, suggest the user to add the menu bar to this
        toplevel_widget = None
        if misc.focused_widget is not None and not misc.focused_widget.IS_ROOT:
            toplevel_widget = misc.focused_widget.toplevel_parent
            if not "menubar" in toplevel_widget.properties:
                toplevel_widget = None
        if toplevel_widget is not None:
            dialog = wd.StandaloneOrChildDialog(
                klass, "Select menubar type and class", toplevel_widget,
                "menubar")
        else:
            dialog = wd.WindowDialog(klass, None,
                                     'Select standalone menubar class', True)

        klass = dialog.show()
        dialog.Destroy()
        if klass is None: return None
    else:
        # allow to call builder(frame, None, True)
        toplevel_widget = parent

    if index == "_menubar" or klass is True:
        # add to frame
        editor = EditMenuBar(toplevel_widget.name + "_menubar",
                             toplevel_widget)
        if toplevel_widget.widget: editor.create()
        return editor

    # a standalone menubar
    name = dialog.get_next_name("menubar")
    editor = EditTopLevelMenuBar(name, parent, klass)
    editor.create()
    editor.widget.Show()
    return editor