def CreateLayout(self): #Main Layout layoutFolder = forms.DynamicLayout() layoutFolder.Spacing = drawing.Size(2,2) layoutFolder.AddRow(None, self.lblProj, self.drpDwnProj) layoutFolder.AddRow(None, self.lblVersion, self.drpDwnVersion) layoutFolder.AddRow(None, self.lblProjName, self.tBoxProjName) layoutFolder.AddRow(None, self.lblProjNum, self.tBoxProjNum) layoutFolder.AddRow(None, self.lblClientName, self.tBoxClientName) layoutFolder.AddRow(None, self.lblProjCity, self.tBoxProjCity) layoutFolder.AddRow(None, self.lblProjState, self.drpDwnProjState) layoutFolder.AddRow(None, self.lblProjCountry, self.drpDwnProjCountry) layoutFolder.AddRow(None) #Bottom row layoutButtons = forms.DynamicLayout() layoutButtons.AddRow(None) layoutButtons.AddRow(None, self.btnTest, self.btnCancel, self.btnApply, self.btnSave, self.btnSaveAs) #Final Layout layout = forms.DynamicLayout() layout.AddSeparateRow(layoutFolder) layout.AddSeparateRow(layoutButtons) #Add the layout to the dialog self.Content = layout
def CreateLayouts(self): layoutButtons = forms.DynamicLayout() #layoutButtons.AddRow(self.tboxFileName) #layoutButtons.AddRow(self.comboBuildingNum) layoutButtons.AddRow(self.grid) layoutButtons.AddSeparateRow(None, self.btnCancel, self.btnApply) layoutButtons.Spacing = drawing.Size(1,1) layout = forms.DynamicLayout() #layout.AddSeparateRow(layoutFolder) layout.AddSeparateRow(layoutButtons) #5 - add the layout to the dialog self.Content = layout
def __init__(self, image_path): self.Title = 'Render Blender' self.Padding = drawing.Padding(5) self.Resizable = True self.image = None if os.path.exists(image_path): self.img = System.Drawing.Image.FromFile(image_path) else: return None self.image = forms.ImageView() self.image.Image = Rhino.UI.EtoExtensions.ToEto(self.img) self.image.Size = drawing.Size(self.img.Width / 2, self.img.Height / 2) self.DefaultButton = forms.Button(Text='Save') self.DefaultButton.Click += self.OnOKButtonClick self.AbortButton = forms.Button(Text='Cancel') self.AbortButton.Click += self.OnCloseButtonClick layout = forms.DynamicLayout() layout.Spacing = drawing.Size(5, 5) layout.AddRow(self.image) layout.AddSeparateRow(None, self.DefaultButton, self.AbortButton) self.Content = layout
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)
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)
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)
def CreateButtons(self): # Create the default button self.DefaultButton = forms.Button(Text='OK') self.DefaultButton.Click += self.OnOkButtonClick # Create the abort button self.AbortButton = forms.Button(Text='Cancel') self.AbortButton.Click += self.OnCancelButtonClick # Create button layout button_layout = forms.DynamicLayout() button_layout.Spacing = drawing.Size(5, 5) button_layout.AddRow(None, self.DefaultButton, self.AbortButton, None) return button_layout
def __init__(self): # create a control label = forms.Label() label.Text = "Text Label" # create a layout layout = forms.DynamicLayout() layout.DefaultSpacing = drawing.Size(5, 5) layout.Padding = drawing.Padding(10) # add the control to the layout layout.Add(label) # set the panel content self.Content = layout
def CreateCheckBoxes(self): # Create checkboxes self.DeleteInput = forms.CheckBox(Text='Delete input', Checked=self.Args.DeleteInput, ThreeState=False) self.PreserveTangents = forms.CheckBox( Text='Preserve tangent end directions', Checked=self.Args.PreserveTangents, ThreeState=False) # Create table layout layout = forms.DynamicLayout() layout.Spacing = drawing.Size(5, 5) layout.AddRow(self.DeleteInput) layout.AddRow(self.PreserveTangents) return layout
def __init__(self, args): self.Args = args # Initialize dialog box self.Title = 'Rebuild' self.Padding = drawing.Padding(5) # Create layout layout = forms.DynamicLayout() layout.Padding = drawing.Padding(5) layout.Spacing = drawing.Size(5, 5) layout.AddRow(self.CreateSteppers()) layout.AddRow(None) # spacer layout.AddRow(self.CreateCheckBoxes()) layout.AddRow(None) # spacer layout.AddRow(self.CreateButtons()) # Set the dialog content self.Content = layout
def __init__(self, colors): self.Title = "Sample Color Dropdown Dialog" self.ClientSize = drawing.Size(400, 200) self.Padding = drawing.Padding(5) self.Resizable = False self.m_dropdown = SampleEtoColorDropDown(colors) self.m_dropdown.SelectedIndex = 0 layout = forms.DynamicLayout() layout.Padding = drawing.Padding(10) layout.Spacing = drawing.Size(5, 5) layout.AddRow("Color:", self.m_dropdown, None) layout.Add(None, None, True) self.Content = layout
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
def CreateSteppers(self): # Create labels label0 = forms.Label(Text='Point count:') label1 = forms.Label(Text='Degree:') label2 = forms.Label(Text='({})'.format(self.Args.PointCount)) label3 = forms.Label(Text='({})'.format(self.Args.Degree)) # Create numeric steppers self.PointCount = forms.NumericStepper(Value=self.Args.PointCount, MinValue=2, MaxValue=32767) self.Degree = forms.NumericStepper(Value=self.Args.Degree, MinValue=1, MaxValue=11) # Create table layout layout = forms.DynamicLayout() layout.Spacing = drawing.Size(5, 5) layout.AddRow(label0, label2, self.PointCount) layout.AddRow(label1, label3, self.Degree) return layout
def __init__(self, url=None, width=800, height=400): self.Title = 'RhinoVault2' self.Padding = drawing.Padding(0) self.Resizable = False self.m_webview = forms.WebView() self.m_webview.Size = drawing.Size(width, height) if not url: url = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'src', 'index.html') self.m_webview.Url = System.Uri(url) self.m_webview.BrowserContextMenuEnabled = True layout = forms.DynamicLayout() layout.Spacing = drawing.Size(5, 5) layout.BeginVertical() layout.AddRow(self.m_webview) layout.EndVertical() self.Content = layout
def __init__(self, collection): self.m_collection = collection # Initialize dialog box properties self.Title = 'Sample Eto ListBox' self.Padding = drawing.Padding(5) self.Resizable = True # Create a label control label = forms.Label() label.Text = 'Select a fruit:' # Create dynamic layout control layout = forms.DynamicLayout() layout.Padding = drawing.Padding(5) layout.Spacing = drawing.Size(5, 5) # Add controls to layout layout.AddRow(label) layout.AddRow(self.CreateListBox()) layout.AddRow(None) # spacer layout.AddRow(self.CreateButtons()) # Set the dialog content self.Content = layout
def __init__(self): # Initialize dialog box self.Title = 'Rhino Viewport in an Eto Control' self.Padding = drawing.Padding(5) self.Resizable = True # Create viewport controls viewport0 = Rhino.UI.Controls.ViewportControl( Size=drawing.Size(400, 200)) viewport1 = Rhino.UI.Controls.ViewportControl( Size=drawing.Size(400, 200)) # Create layout layout = forms.DynamicLayout() layout.Padding = drawing.Padding(5) layout.Spacing = drawing.Size(5, 5) layout.AddRow(viewport0) layout.AddRow(viewport1) layout.AddRow(None) layout.AddRow(self.CloseButton()) # Set the dialog content self.Content = layout
def __init__(self): # Initialize dialog box self.Title = 'Dynamis' self.Padding = drawing.Padding(5) self.Resizable = False self.m_image_view = forms.ImageView() self.m_image_view.Size = drawing.Size(400, 225) self.m_image_view.Image = drawing.Bitmap("D:\AnimazioneBot\Vect.PNG") # Create layout self.m_button = forms.Button(Text='Esporta') self.m_button.Click += self.LanciaBotton self.m_textbox = forms.TextBox() self.m_label = forms.Label(Text='Indica il nome del progetto:') self.m_textbox.Text = "untitled" self.m_foronumero = forms.TextBox() self.m_forolabel = forms.Label(Text='Indica la dimensione del foro') self.m_foronumero.Text = "10" layout = forms.DynamicLayout() layout.Padding = drawing.Padding(5) layout.Spacing = drawing.Size(5, 5) layout.BeginVertical() layout.AddSeparateRow(None, self.m_image_view, None) layout.EndVertical() layout.AddRow(None) layout.BeginVertical() layout.AddRow(None, self.m_label, None, self.m_textbox, None) layout.EndVertical() layout.AddRow(None) layout.BeginVertical() layout.AddRow(None, self.m_forolabel, None, self.m_foronumero, None) layout.EndVertical() layout.AddRow(None) layout.BeginVertical() layout.AddRow(None, self.m_button, None, self.CloseButton(), None) layout.EndVertical() # Set the dialog content self.Content = layout
def __init__(self, text, title=None): self.text = text self.textbox = textbox = forms.TextArea() textbox.ReadOnly = True textbox.Append(text) layout = forms.DynamicLayout() layout.AddRow(textbox) layout.Add(None) layout.BeginVertical() layout.BeginHorizontal() layout.AddRow(None, self.ok, self.cancel) layout.EndHorizontal() layout.EndVertical() self.Title = title self.Padding = drawing.Padding(12) self.Resizable = False self.Content = layout self.ClientSize = drawing.Size(400, 600)
def __init__(self, settings): # super(SettingsForm, self).__init__() self._settings = None self._names = None self._values = None self.settings = settings self.table = table = forms.GridView() table.ShowHeader = True table.DataStore = [[name, value] for name, value in zip(self.names, self.values)] table.Height = 300 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) layout = forms.DynamicLayout() layout.AddRow(table) layout.Add(None) layout.BeginVertical() layout.BeginHorizontal() layout.AddRow(None, self.ok, self.cancel) layout.EndHorizontal() layout.EndVertical() self.Title = 'RBE: update settings' self.Padding = drawing.Padding(12) self.Resizable = False self.Content = layout self.ClientSize = drawing.Size(400, 600)
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)
def __init__(self): self.Title = "Insert Many Floors" #self.Size = drawing.Size(100,100) self.Padding = drawing.Padding(5) self.ApplyBoo = False self.NumFloors = 3 self.numericButton = forms.NumericUpDown() self.numericButton.DecimalPlaces = 0 self.numericButton.MinValue = 2.0 self.numericButton.Value = self.NumFloors self.DefaultButton = forms.Button(Text = 'OK') self.DefaultButton.Click += self.OnOKButtonClick self.AbortButton = forms.Button(Text = 'Cancel') self.AbortButton.Click += self.OnCancelButtonClick layout = forms.DynamicLayout() layout.AddRow(self.numericButton, None) layout.AddSeparateRow(None, self.DefaultButton, self.AbortButton) self.Content = layout
def __init__(self, osStandards): self.toggleButton = forms.ToggleButton self.textField = forms.TextBox self.objfilter = sum([16,8,32,1073741824]) self.obj = rs.GetObject("Select Object to Apply Zone Data to:", filter=self.objfilter, preselect=True) self.osStandards = osStandards['space_types']['90.1-2007']['ClimateZone 1-8'] self.bldg = '' self.zone = '' self.Standards = [] self.Title = "Zone Load Data" self.Padding = drawing.Padding(10) self.Resizeable = False self.fieldsDict = { 'bldgProgram': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")], 'zoneProgram': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")], 'equipmentLoadPerArea': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")], 'infilRatePerArea_Facade': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")], 'lightingDensityPerArea':[ forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")], 'numOfPeoplePerArea': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")], 'ventilationPerArea': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")], 'ventilationPerPerson': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")], 'recirculatedAirPerArea': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")], 'isConditioned': [forms.ToggleButton(Text = 'Yes'), forms.CheckBox(Text = "Lock")], 'maxRoofAngle': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")], } self.GetExistingValues() self.bldg_dropdownlist = forms.DropDown() self.bldg_dropdownlist.DataStore = self.osStandards self.bldg_dropdownlist.DropDownClosed += self.Bldg_DD_Close self.zone_dropdownlist = forms.DropDown() self.zone_dropdownlist.DropDownClosed += self.Zone_DD_Close self.ApplyStandardsButton = forms.Button(Text = "Apply") self.ApplyStandardsButton.Click += self.OnApplyButtonClick self.DefaultButton = forms.Button(Text = "OK") self.DefaultButton.Click += self.OnOKButtonClick self.AbortButton = forms.Button(Text = "Cancel") self.AbortButton.Click += self.OnCloseButtonClick # Add Toggle Events for k,v in self.fieldsDict.items(): if isinstance(v[0], self.toggleButton): v[0].Click += self.ToggleClick #Create Layout layout = forms.DynamicLayout() layout.Spacing = drawing.Size(5,5) # Add Drop Down list layout.AddRow(self.bldg_dropdownlist, self.zone_dropdownlist) # Add Apply Standards layout.AddRow(self.ApplyStandardsButton) self.ApplyStandardsButton.Enabled = False # Add Fields for k,v in self.fieldsDict.items(): self.m_label = forms.Label(Text = str(k)) layout.AddRow(self.m_label, v[0], v[1]) layout.AddRow(None) #Add Ok Close buttons layout.AddRow(self.DefaultButton, self.AbortButton) #Apply Layout to Form self.Content = layout
def __init__(self): # Initialize dialog box self.Title = 'Render Settings' self.Padding = drawing.Padding(5) self.Resizable = False settings = self.readSettings() dirname = os.path.dirname script_path = dirname(os.path.realpath(__file__)) + "\\" self.HDRIs = ["Colour"] for r, d, f in os.walk(script_path + "HDRI\\"): for file in f: if '.hdr' in file: self.HDRIs.append(file) self.render_engine = forms.ComboBox() self.render_engine.DataStore = ["CYCLES", "EEVEE"] self.render_engine.SelectedIndex = 0 self.render_scale = forms.NumericUpDown() self.render_samples = forms.NumericStepper() self.camera_exposure = forms.NumericUpDown() self.camera_exposure.DecimalPlaces = 3 self.camera_exposure.Increment = 0.1 self.camera_exposure.MinValue = -10.000 self.camera_exposure.MaxValue = 10.000 self.camera_transparent = forms.CheckBox() self.world_HDRI = forms.ComboBox() self.world_HDRI.DataStore = self.HDRIs self.world_HDRIRotation = forms.NumericStepper() self.world_HDRIRotation.DecimalPlaces = 2 self.world_HDRIBlur = forms.NumericStepper() self.world_HDRIBlur.DecimalPlaces = 2 self.world_HDRIBlur.MinValue = 0.000 self.world_HDRIBlur.MaxValue = 1.000 self.world_HDRIBlur.Width = 50 self.world_HDRIPower = forms.NumericStepper() self.world_HDRIPower.DecimalPlaces = 2 self.world_HDRIPower.MinValue = 0.000 self.world_HDRIPower.Width = 50 self.render_bouncesTotal = forms.NumericStepper() self.render_bouncesDiffuse = forms.NumericStepper() self.render_bouncesGlossy = forms.NumericStepper() self.render_bouncesTransparency = forms.NumericStepper() self.render_bouncesTransmission = forms.NumericStepper() self.render_bouncesVolume = forms.NumericStepper() self.render_clampingDirect = forms.NumericUpDown() self.render_clampingDirect.DecimalPlaces = 2 self.render_clampingDirect.Increment = 0.01 self.render_clampingDirect.MinValue = 0.00 self.render_clampingIndirect = forms.NumericUpDown() self.render_clampingIndirect.DecimalPlaces = 2 self.render_clampingIndirect.MinValue = 0.00 self.render_Denoising = forms.CheckBox() self.open = forms.CheckBox() self.save = forms.CheckBox() self.render = forms.CheckBox() self.showRender = forms.CheckBox() if settings: self.render_engine.SelectedIndex = self.render_engine.DataStore.index( settings["settings"]["render_engine"]) self.render_scale.Value = float( settings["settings"]["render_scale"]) self.render_samples.Value = int( settings["settings"]["render_samples"]) self.camera_exposure.Value = float( settings["camera"]["camera_exposure"]) self.camera_transparent.Checked = bool( settings["camera"]["camera_transparent"]) self.world_HDRI.SelectedIndex = self.world_HDRI.DataStore.index( settings["world"]["world_HDRI"]) self.world_HDRIRotation.Value = float( settings["world"]["world_HDRIRotation"]) self.world_HDRIBlur.Value = float( settings["world"]["world_HDRIBlur"]) self.world_HDRIPower.Value = float( settings["world"]["world_HDRIPower"]) self.render_bouncesTotal.Value = int( settings["settings"]["render_bouncesTotal"]) self.render_bouncesDiffuse.Value = int( settings["settings"]["render_bouncesDiffuse"]) self.render_bouncesGlossy.Value = int( settings["settings"]["render_bouncesGlossy"]) self.render_bouncesTransparency.Value = int( settings["settings"]["render_bouncesTransparency"]) self.render_bouncesTransmission.Value = int( settings["settings"]["render_bouncesTransmission"]) self.render_bouncesVolume.Value = int( settings["settings"]["render_bouncesVolume"]) self.render_clampingDirect.Value = float( settings["settings"]["render_clampingDirect"]) self.render_clampingIndirect.Value = float( settings["settings"]["render_clampingIndirect"]) self.render_Denoising.Checked = bool( settings["settings"]["render_Denoising"]) self.open.Checked = bool(settings["settings"]["open"]) self.save.Checked = bool(settings["settings"]["save"]) self.render.Checked = bool(settings["settings"]["render"]) self.showRender.Checked = bool(settings["settings"]["showRender"]) loc = settings["settings"]["render_settingWindowPosition"] loc = loc.split(",") self.Location = drawing.Point(int(loc[0]), int(loc[1])) self.DefaultButton = forms.Button(Text='OK') self.DefaultButton.Click += self.OnOKButtonClick self.AbortButton = forms.Button(Text='Cancel') self.AbortButton.Click += self.OnCloseButtonClick layout = forms.DynamicLayout() layout.Spacing = drawing.Size(0, 1) """Box 1: Render""" box_1 = forms.GroupBox() box_1.Padding = drawing.Padding(1) box_1_layout = forms.DynamicLayout() box_1_layout.Spacing = drawing.Size(3, 3) box_1.Content = box_1_layout box_1_layout.AddRow("render_engine", self.render_engine) box_1_layout.AddRow("render_scale", self.render_scale) box_1_layout.AddRow("samples", self.render_samples) """Box 2: Camera""" box_2 = forms.GroupBox(Text='Camera') box_2.Padding = drawing.Padding(1) box_2_layout = forms.DynamicLayout() box_2_layout.Spacing = drawing.Size(3, 3) box_2.Content = box_2_layout box_2_layout.AddRow("Exposure", self.camera_exposure) box_2_layout.AddRow("Transparent", self.camera_transparent) """Box 3: World""" box_3 = forms.GroupBox(Text='World') box_3.Padding = drawing.Padding(1) box_3_layout = forms.DynamicLayout() box_3_layout.Spacing = drawing.Size(3, 3) box_3.Content = box_3_layout box_3_layout.BeginVertical() box_3_layout.AddRow("HDRI", self.world_HDRI) box_3_layout.AddRow("HDRI Rotation", self.world_HDRIRotation) box_3_layout.EndVertical() box_3_layout.AddSeparateRow("Blur", self.world_HDRIBlur, None, "Power", self.world_HDRIPower) """Box 4: Samples""" box_4 = forms.GroupBox(Text='Sampling') box_4.Padding = drawing.Padding(1) box_4_layout = forms.DynamicLayout() box_4_layout.Spacing = drawing.Size(3, 3) box_4.Content = box_4_layout self.box_4_hidden = forms.DynamicLayout(Visible=False) self.box_4_hidden.Spacing = drawing.Size(3, 3) self.box_4_hidden.AddRow("bouncesTotal", self.render_bouncesTotal) self.box_4_hidden.AddRow("bouncesDiffuse", self.render_bouncesDiffuse) self.box_4_hidden.AddRow("bouncesGlossy", self.render_bouncesGlossy) self.box_4_hidden.AddRow("bouncesTransparency", self.render_bouncesTransparency) self.box_4_hidden.AddRow("bouncesTransmission", self.render_bouncesTransmission) self.box_4_hidden.AddRow("bouncesVolume", self.render_bouncesVolume) self.box_4_hidden.AddRow("clampingDirect", self.render_clampingDirect) self.box_4_hidden.AddRow("clampingIndirect", self.render_clampingIndirect) self.dropdown_text = forms.Label(Text="Show Sampling Properties") self.dropdown_samples = forms.Button(Size=drawing.Size(16, 16)) self.dropdown_samples.Text = "▼" self.dropdown_samples.Font = drawing.Font("Arial", 5) self.dropdown_samples.Click += self.dropdown_samples_Click box_4_layout.AddSeparateRow(None, self.dropdown_text, None, self.dropdown_samples, None) box_4_layout.AddRow(self.box_4_hidden) """Box 5: Output""" box_5 = forms.GroupBox(Text='Output') box_5.Padding = drawing.Padding(1) box_5_layout = forms.DynamicLayout() box_5_layout.Spacing = drawing.Size(3, 3) box_5.Content = box_5_layout box_5_layout.AddRow(self.save, "Save File", self.open, "Open File") box_5_layout.AddRow(self.render_Denoising, "Denoising") box_5_layout.AddRow(self.render, "Render") box_5_layout.AddRow(self.showRender, "Show Render") #Add the group boxes to the main interface layout.AddRow(box_1) layout.AddRow(box_2) layout.AddRow(box_3) layout.AddRow(box_4) layout.AddRow(box_5) layout.AddSeparateRow(self.DefaultButton, None, self.AbortButton) self.Content = layout
def __init__(self): # Initialize dialog box self.Title = 'LandArchTools: Stair Generator' self.Padding = drawing.Padding(10) self.Resizable = False self.Closing += self.OnFormClosed ################################################################################ # Create controls for the dialog # Stair gen label self.stairGenLabel = forms.Label(Text='STAIR GENERATOR') # Gen Handrail label self.genStairLabel = forms.Label(Text='Generate Stair?:') # Gen Handrail control self.genStairBool = forms.CheckBox() self.genStairBool.Checked = False self.genStairBool.CheckedChanged += self.stairGen # Number of Steps Label self.numStepsLabel = forms.Label(Text='Number of steps:') # Number of Steps control self.numStepsC = forms.NumericStepper() self.numStepsC.DecimalPlaces = 0 self.numStepsC.Increment = 1 self.numStepsC.MaxValue = 100 self.numStepsC.MinValue = 2 self.numStepsC.Value = 3 self.numStepsC.ValueChanged += self.stairGen self.numStepsC.ValueChanged += self.handrailGen # Tread label self.treadLabel = forms.Label(Text='Tread (mm):') # Tread length control self.treadC = forms.NumericStepper() self.treadC.DecimalPlaces = 0 self.treadC.Increment = 1 self.treadC.MaxValue = 1000 self.treadC.MinValue = 1 self.treadC.Value = 300 self.treadC.ValueChanged += self.stairGen self.treadC.ValueChanged += self.handrailGen # Riser Label self.riserLabel = forms.Label(Text='Riser (mm):') # Tread length control self.riserC = forms.NumericStepper() self.riserC.DecimalPlaces = 0 self.riserC.Increment = 1 self.riserC.MaxValue = 1000 self.riserC.MinValue = 1 self.riserC.Value = 150 self.riserC.ValueChanged += self.stairGen self.riserC.ValueChanged += self.handrailGen # Flip label self.flipLabel = forms.Label(Text='Flip direction of stairs:') # Flip control self.flipC = forms.CheckBox() self.flipC.CheckedChanged += self.stairGen self.flipC.CheckedChanged += self.handrailGen ########################################### # Handrail Gen Label self.handrailGenLabel = forms.Label(Text='HANDRAIL GENERATOR') # self.handrailGenLabel.VerticalAlignment.Center # Gen Handrail label self.genHandrailLabel = forms.Label(Text='Generate Handrail?:') # Gen Handrail control self.genHandrailBool = forms.CheckBox() self.genHandrailBool.Checked = False self.genHandrailBool.CheckedChanged += self.handrailGen # Handrail Type Label self.handrailTypeLabel = forms.Label(Text='Handrail type:') # Handrail Type Dropdown self.handrailTypeC = forms.DropDown() self.handrailTypeC.DataStore = [ '180 No Return', '180 Full Return', 'Ground Triangular Return', 'Ground Return', 'Wall Return'] self.handrailTypeC.SelectedIndex = 0 self.handrailTypeC.SelectedIndexChanged += self.handrailGen # Handrail Height Label self.handrailHeightLabel = forms.Label( Text='Handrail height (mm):') # Handrail Height control self.handrailHeightC = forms.NumericStepper() self.handrailHeightC.DecimalPlaces = 0 self.handrailHeightC.Increment = 1 self.handrailHeightC.MaxValue = 5000 self.handrailHeightC.MinValue = 100 self.handrailHeightC.Value = 900 self.handrailHeightC.ValueChanged += self.handrailGen # Handrail offset label self.handrailOffsetLabel = forms.Label( Text='Handrail offset from edges (mm):') # Handrail offset control self.handrailOffsetC = forms.NumericStepper() self.handrailOffsetC.DecimalPlaces = 0 self.handrailOffsetC.Increment = 1 self.handrailOffsetC.MaxValue = 5000 self.handrailOffsetC.MinValue = 50 self.handrailOffsetC.Value = 150 self.handrailOffsetC.ValueChanged += self.handrailGen # Handrail extension Label self.handrailExtensionLabel = forms.Label( Text='Handrail extension (mm):') # Handrail extension Control self.handrailExtensionC = forms.NumericStepper() self.handrailExtensionC.DecimalPlaces = 0 self.handrailExtensionC.Increment = 1 self.handrailExtensionC.MaxValue = 5000 self.handrailExtensionC.MinValue = 300 self.handrailExtensionC.Value = 300 self.handrailExtensionC.ValueChanged += self.handrailGen # Handrail Diameter Label self.handrailDiameterLabel = forms.Label( Text='Handrail diameter (mm):') # Handrail Diameter control self.handrailDiameterC = forms.NumericStepper() self.handrailDiameterC.DecimalPlaces = 0 self.handrailDiameterC.Increment = 1 self.handrailDiameterC.MaxValue = 50 self.handrailDiameterC.MinValue = 30 self.handrailDiameterC.Value = 30 self.handrailDiameterC.ValueChanged += self.handrailGen # Create the default button self.DefaultButton = forms.Button(Text='OK') self.DefaultButton.Click += self.OnOKButtonClick # Create the abort button self.AbortButton = forms.Button(Text='Cancel') self.AbortButton.Click += self.OnCloseButtonClick ################################################################################ # Create a table layout and add all the controls layout = forms.DynamicLayout() layout.Spacing = drawing.Size(5, 5) layout.AddRow(None) layout.AddRow(self.stairGenLabel) layout.AddRow(None) layout.AddRow(None) layout.AddRow(self.genStairLabel, self.genStairBool) layout.AddRow(self.numStepsLabel, self.numStepsC) layout.AddRow(self.treadLabel, self.treadC) layout.AddRow(self.riserLabel, self.riserC) layout.AddRow(self.flipLabel, self.flipC) layout.AddRow(None) layout.AddRow(None) layout.AddRow(None) layout.AddRow(None) layout.AddRow(self.handrailGenLabel) layout.AddRow(None) layout.AddRow(None) layout.AddRow(self.genHandrailLabel, self.genHandrailBool) layout.AddRow(self.handrailTypeLabel, self.handrailTypeC) layout.AddRow(self.handrailHeightLabel, self.handrailHeightC) layout.AddRow(self.handrailOffsetLabel, self.handrailOffsetC) layout.AddRow(self.handrailExtensionLabel, self.handrailExtensionC) layout.AddRow(self.handrailDiameterLabel, self.handrailDiameterC) layout.AddRow(self.DefaultButton, self.AbortButton) # Set the dialog content self.Content = layout
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