示例#1
0
def builder(parent, sizer, pos):
    "factory function for EditFrame objects"
    import window_dialog
    base_classes = ['wxFrame', 'wxMDIChildFrame']
    klass = 'wxFrame' if common.app_tree.app.language.lower(
    ) == 'xrc' else 'MyFrame'

    dialog = window_dialog.WindowDialog(klass, base_classes,
                                        'Select frame class', True)
    res = dialog.show()
    dialog.Destroy()
    if res is None: return None
    klass, base = res
    name = dialog.get_next_name("frame")

    if base == "wxFrame":
        base_class = EditFrame
    else:
        base_class = EditMDIChildFrame
    frame = base_class(name, parent, wx.NewId(), name, klass=klass)
    node = Node(frame)
    frame.node = node
    common.app_tree.add(node)
    frame.create()
    frame.widget.Show()

    # add a default vertical sizer to the frame
    import edit_sizers
    edit_sizers._builder(frame, None, 0)
    # now select the frame's node in the tree
    common.app_tree.select_item(node)

    if wx.Platform == '__WXMSW__':
        #frame.widget.CenterOnScreen()
        frame.widget.Raise()
示例#2
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
示例#3
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()
示例#4
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
示例#5
0
def builder(parent, pos, klass=None, base=None, name=None):
    "factory function for EditFrame objects"
    global last_choices
    if klass is None or base is None:
        import window_dialog
        base_classes = ['wxFrame', 'wxMDIChildFrame']
        klass = 'wxFrame' if common.root.language.lower(
        ) == 'xrc' else 'MyFrame'

        dialog = window_dialog.WindowDialog(klass, base_classes,
                                            'Select frame class', True,
                                            options, last_choices)
        res = dialog.show()
        dialog.Destroy()
        if res is None: return None
        klass, base = res
        last_choices[:] = dialog.get_options()  # remember for next time
        if config.debugging and last_choices[1]: XXX  # provoke an error
        name = dialog.get_next_name("frame")
        interactive = True
    else:
        interactive = False  # last_choices not to be obeyed

    if base == "wxFrame":
        base_class = EditFrame
    else:
        base_class = EditMDIChildFrame
    editor = base_class(name,
                        parent,
                        name,
                        "wxDEFAULT_FRAME_STYLE",
                        klass=klass)
    editor.properties['size'].set((400, 300), activate=True)
    editor.create()
    editor.widget.Show()
    editor.design.update_label()

    if interactive and last_choices[0]:
        # add a default panel and vertical sizer to the frame
        import edit_sizers, widgets.panel.panel
        panel_editor = widgets.panel.panel.builder(editor, 0)
        edit_sizers._builder(panel_editor, 0)
    else:
        # just add a slot
        Slot(editor, 0)

    import clipboard
    editor.drop_target = clipboard.DropTarget(editor)
    editor.widget.SetDropTarget(editor.drop_target)

    if wx.Platform == '__WXMSW__':
        #editor.widget.CenterOnScreen()
        editor.widget.Raise()

    return editor
示例#6
0
def builder(parent, pos):
    "factory function for EditDialog objects"
    import window_dialog
    base_classes = ['wxDialog', 'wxPanel']
    klass = 'wxDialog' if common.root.language.lower() == 'xrc' else 'MyDialog'

    dialog = window_dialog.WindowDialog(klass, base_classes,
                                        'Select widget type', True)
    res = dialog.show()
    dialog.Destroy()
    if res is None: return
    klass, base = res
    name = 'dialog' if base == "wxDialog" else "panel"
    name = dialog.get_next_name(name)

    if base == "wxDialog":
        is_panel = False
        editor = EditDialog(name,
                            parent,
                            name,
                            "wxDEFAULT_DIALOG_STYLE",
                            klass=klass)
    else:
        is_panel = True
        import panel
        editor = panel.EditTopLevelPanel(name, parent, klass=klass)

    editor.create()
    if base == "wxDialog":
        editor.widget.Show()
    else:
        editor.widget.GetParent().Show(
        )  # the panel is created as child of a Frame
    editor.design.update_label()
    if wx.Platform == '__WXMSW__':
        if not is_panel:
            w = editor.widget
        else:
            w = editor.widget.GetParent()
        w.CenterOnScreen()
        w.Raise()

    import clipboard
    editor.drop_target = clipboard.DropTarget(editor)
    editor.widget.SetDropTarget(editor.drop_target)

    # add a default vertical sizer
    import edit_sizers
    edit_sizers._builder(editor, 0)

    return editor
示例#7
0
def builder(parent, sizer, pos):
    "factory function for EditToolBar objects"
    import window_dialog
    klass = 'wxToolBar' if common.app_tree.app.language.lower()=='xrc' else 'MyToolBar'
    dialog = window_dialog.WindowDialog(klass, None, 'Select toolbar class', True)
    klass = dialog.show()
    dialog.Destroy()
    if klass is None: return
    name = dialog.get_next_name("toolbar")

    tb = EditToolBar(name, klass, parent)
    tb.node = Node(tb)
    common.app_tree.add(tb.node)
    if parent.widget: tb.create()
示例#8
0
def builder(parent, sizer, pos, number=[0]):
    "factory function for EditMenuBar objects"
    klass = 'wxMenuBar' if common.app_tree.app.language.lower()=='xrc' else 'MyMenuBar'
    import window_dialog
    dialog = window_dialog.WindowDialog(klass, None, 'Select menubar class', True)
    klass = dialog.show()
    dialog.Destroy()
    if klass is None: return
    name = dialog.get_next_name("menubar")
    mb = EditMenuBar(name, klass, parent)
    mb.node = Node(mb)
    common.app_tree.add(mb.node)
    mb.create()
    mb.widget.Show()
示例#9
0
def builder(parent, sizer, pos, klass=None, base=None, name=None):
    "factory function for EditFrame objects"
    if klass is None or base is None:
        import window_dialog
        base_classes = ['wxFrame', 'wxMDIChildFrame']
        klass = 'wxFrame' if common.app_tree.app.language.lower(
        ) == 'xrc' else 'MyFrame'

        dialog = window_dialog.WindowDialog(klass, base_classes,
                                            'Select frame class', True)
        res = dialog.show()
        dialog.Destroy()
        if res is None: return None
        klass, base = res
        name = dialog.get_next_name("frame")

    if base == "wxFrame":
        base_class = EditFrame
    else:
        base_class = EditMDIChildFrame
    frame = base_class(name,
                       parent,
                       wx.NewId(),
                       name,
                       "wxDEFAULT_FRAME_STYLE",
                       klass=klass)
    frame.properties['size'].set((400, 300), activate=True)
    node = Node(frame)
    frame.node = node
    common.app_tree.add(node)
    frame.create()
    frame.widget.Show()
    frame.design.update_label()

    # add a default vertical sizer to the frame
    import edit_sizers
    edit_sizers._builder(frame, None, 0)
    # now select the frame's node in the tree
    common.app_tree.select_item(node)

    import clipboard
    frame.drop_target = clipboard.DropTarget(frame)
    frame.widget.SetDropTarget(frame.drop_target)

    if wx.Platform == '__WXMSW__':
        #frame.widget.CenterOnScreen()
        frame.widget.Raise()
示例#10
0
文件: dialog.py 项目: swt2c/wxGlade
def builder(parent, sizer, pos, number=[0]):
    "factory function for EditDialog objects"
    import window_dialog
    base_classes = ['wxDialog', 'wxPanel']
    klass = 'wxDialog' if common.app_tree.app.language.lower(
    ) == 'xrc' else 'MyDialog'

    dialog = window_dialog.WindowDialog(klass, base_classes,
                                        'Select widget type', True)
    res = dialog.show()
    dialog.Destroy()
    if res is None: return
    klass, base = res
    name = 'dialog' if base == "wxDialog" else "panel"
    name = dialog.get_next_name(name)

    if base == "wxDialog":
        is_panel = False
        dialog = EditDialog(name,
                            parent,
                            wx.NewId(),
                            name,
                            "wxDEFAULT_DIALOG_STYLE",
                            klass=klass)
    else:
        is_panel = True
        import panel
        dialog = panel.EditTopLevelPanel(name, parent, wx.NewId(), klass=klass)
    node = Node(dialog)
    dialog.node = node
    dialog.create()
    if base == "wxDialog":
        dialog.widget.Show()
    else:
        dialog.widget.GetParent().Show(
        )  # the panel is created as child of a Frame
    common.app_tree.add(node)
    dialog.design.update_label()
    if wx.Platform == '__WXMSW__':
        if not is_panel:
            w = dialog.widget
        else:
            w = dialog.widget.GetParent()
        w.CenterOnScreen()
        w.Raise()
示例#11
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