示例#1
0
    def __init__(self, error="Unknown", title="Error", width=800, height=400):
        self.Title = title
        self.Padding = drawing.Padding(0)
        self.Resizable = False

        # tab_items = forms.StackLayoutItem(self.TabControl, True)
        layout = forms.StackLayout()
        layout.Spacing = 5
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch

        self.m_textarea = forms.TextArea()
        self.m_textarea.Size = drawing.Size(400, 400)
        self.m_textarea.Text = error
        self.m_textarea.ReadOnly = True
        layout.Items.Add(self.m_textarea)

        sub_layout = forms.DynamicLayout()
        sub_layout.Spacing = drawing.Size(5, 0)
        sub_layout.AddRow(None, self.cancel)
        layout.Items.Add(forms.StackLayoutItem(sub_layout))

        self.Content = layout
        self.Padding = drawing.Padding(12)
        self.Resizable = True
        # self.ClientSize = drawing.Size(width, height)

        self.ShowModal(Rhino.UI.RhinoEtoApp.MainWindow)
示例#2
0
    def setup(self, sceneNode):
        self.Title = "Attributes"
        self.sceneNode = sceneNode

        control = forms.TabControl()
        control.TabPosition = forms.DockPosition.Top

        tab = Tree_Tab.from_sceneNode(sceneNode, 'Edges')
        control.Pages.Add(tab)

        self.TabControl = control

        tab_items = forms.StackLayoutItem(self.TabControl, True)
        layout = forms.StackLayout()
        layout.Spacing = 5
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch
        layout.Items.Add(tab_items)

        sub_layout = forms.DynamicLayout()
        sub_layout.Spacing = drawing.Size(5, 0)
        # sub_layout.AddRow(None, self.ok, self.cancel, self.apply)
        sub_layout.AddRow(None, self.cancel)
        layout.Items.Add(forms.StackLayoutItem(sub_layout))

        self.Content = layout
        self.Padding = drawing.Padding(12)
        self.Resizable = True
        self.ClientSize = drawing.Size(400, 600)
示例#3
0
    def __init__(self, names, values):
        self.names = names
        self.values = values

        self.table = table = forms.GridView()
        table.ShowHeader = True
        table.DataStore = [[name, value] for name, value in zip(self.names, self.values)]

        c1 = forms.GridColumn()
        c1.HeaderText = 'Name'
        c1.Editable = False
        c1.DataCell = forms.TextBoxCell(0)
        table.Columns.Add(c1)

        c2 = forms.GridColumn()
        c2.HeaderText = 'Value'
        c2.Editable = True
        c2.DataCell = forms.TextBoxCell(1)
        table.Columns.Add(c2)

        tab_items = forms.StackLayoutItem(table, True)
        layout = forms.StackLayout()
        layout.Items.Add(tab_items)
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch
        sub_layout = forms.DynamicLayout()
        sub_layout.AddRow(None, self.ok, self.cancel)
        layout.Items.Add(forms.StackLayoutItem(sub_layout))

        self.Title = 'RBE: update a list of properties'
        self.Padding = drawing.Padding(12)
        self.Resizable = True
        self.Content = layout
        self.ClientSize = drawing.Size(400, 600)
示例#4
0
 def Create(self):
     # create default tabs
     self.TabControl = self.DefaultTabs()
     # create stack layout item for tabs
     tab_items = forms.StackLayoutItem(self.TabControl, True)
     # create layout for buttons
     button_layout = forms.StackLayout()
     button_layout.Orientation = forms.Orientation.Horizontal
     button_layout.Items.Add(None)
     button_layout.Items.Add(self.AddTab())
     button_layout.Items.Add(self.RemoveTab())
     button_layout.Items.Add(self.SelectTab())
     button_layout.Items.Add(None)
     # create stack layout for content
     layout = forms.StackLayout()
     layout.Spacing = 5
     layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch
     # add the stuff above to this layout
     layout.Items.Add(button_layout)
     layout.Items.Add(tab_items)
     return layout
示例#5
0
    def setup(self, all_settings):

        self.Title = "Settings"
        self.TabControl = self.tabs_from_settings(all_settings)
        tab_items = forms.StackLayoutItem(self.TabControl, True)
        layout = forms.StackLayout()
        layout.Spacing = 5
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch
        layout.Items.Add(tab_items)

        sub_layout = forms.DynamicLayout()
        sub_layout.Spacing = drawing.Size(5, 0)
        sub_layout.AddRow(None, self.ok, self.cancel, self.apply)
        layout.Items.Add(forms.StackLayoutItem(sub_layout))

        self.Content = layout
        self.Padding = drawing.Padding(12)
        self.Resizable = True
示例#6
0
    def setup(self, sceneNode):
        self.Title = "Property - " + sceneNode.name
        self.sceneNode = sceneNode

        control = forms.TabControl()
        control.TabPosition = forms.DockPosition.Top

        tab = Settings_Tab.from_settings("Settings", sceneNode.settings)
        control.Pages.Add(tab)

        tab = Tree_Tab.from_sceneNode(sceneNode, 'vertices')
        control.Pages.Add(tab)

        tab = Tree_Tab.from_sceneNode(sceneNode, 'edges')
        control.Pages.Add(tab)

        if hasattr(sceneNode, 'guid_face'):
            if len(sceneNode.guid_face.keys()) > 0:
                tab = Tree_Tab.from_sceneNode(sceneNode, 'faces')
                control.Pages.Add(tab)

        self.TabControl = control

        tab_items = forms.StackLayoutItem(self.TabControl, True)
        layout = forms.StackLayout()
        layout.Spacing = 5
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch
        layout.Items.Add(tab_items)

        sub_layout = forms.DynamicLayout()
        sub_layout.Spacing = drawing.Size(5, 0)
        sub_layout.AddRow(None, self.ok, self.cancel, self.apply)
        layout.Items.Add(forms.StackLayoutItem(sub_layout))

        self.Content = layout
        self.Padding = drawing.Padding(12)
        self.Resizable = True
        self.ClientSize = drawing.Size(400, 600)
示例#7
0
    def from_settings(cls, object_name, settings):
        tab = cls()
        tab.Text = object_name
        layout = forms.StackLayout()
        layout.Spacing = 2
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch
        tab.Content = layout

        # link to original setting and keep a temporary new settings holder
        tab.settings = settings
        tab.new_settings = settings.copy()

        # create sections
        sections = {}
        for key in settings:
            split = key.split('.')
            prefix = split[0]
            postfix = '.'.join(split[1:])

            if prefix[0] == "_":
                continue

            if prefix not in sections:
                sections[prefix] = {}
            sections[prefix][postfix] = (key, settings[key])

        for prefix in sections:

            groupbox = forms.GroupBox(Text=prefix)
            groupbox.Padding = drawing.Padding(5)
            grouplayout = forms.DynamicLayout()
            grouplayout.Spacing = drawing.Size(3, 3)

            postfixies = list(sections[prefix].keys())
            postfixies.sort()
            for postfix in postfixies:
                key, value = sections[prefix][postfix]

                if type(value) == bool:
                    control = forms.CheckBox()
                    control.Checked = value
                    control.CheckedChanged += tab.EditEvent(key)
                elif (type(value) == list or type(value) == tuple) and len(value) == 3:
                    control = forms.ColorPicker()
                    control.Value = drawing.Color.FromArgb(*value)
                    control.ValueChanged += tab.EditEvent(key)
                elif type(value) == float or type(value) == int:
                    control = forms.NumericUpDown()
                    if type(value) == float:
                        digits = len(str(value).split('.')[-1])
                        control.DecimalPlaces = (digits + 1)
                        control.Increment = 0.1 ** (digits + 1)
                    control.Value = value
                    control.ValueChanged += tab.EditEvent(key)
                else:
                    control = forms.TextBox()
                    control.Text = str(value)
                    control.TextChanged += tab.EditEvent(key)

                label = forms.Label(Text=postfix)
                if postfix != '':
                    grouplayout.AddRow(label, None, control)
                else:
                    grouplayout.AddRow(control)

            groupbox.Content = grouplayout
            layout.Items.Add(groupbox)

        return tab