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 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
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