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 __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 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 dropdown_samples_Click(self, sender, e): if self.box_4_hidden.Visible: self.ClientSize = drawing.Size(self.ClientSize.Width, 440) self.box_4_hidden.Visible = False #self.dropdown_text.Visible = True self.dropdown_samples.Text = "▼" else: self.box_4_hidden.Visible = True #self.dropdown_text.Visible = False self.dropdown_samples.Text = "▲" #self.ClientSize = drawing.Size(max(self.ClientSize.Width, self.box_4_hidden.Width), self.ClientSize.Height + self.box_4_hidden.Height*2) self.ClientSize = drawing.Size(self.ClientSize.Width, 440 + 181)
def date_time_controls(is_enabled, picker_date_event_method, slider_date_event_method, picker_time_event_method, slider_time_event_method): current_date_time = System.DateTime.Now #date slider and pickers date = forms.DateTimePicker() date.Mode = forms.DateTimePickerMode.Date date.Value = current_date_time date.Size = drawing.Size(30, 20) date.ValueChanged += picker_date_event_method date.Enabled = is_enabled # date_label = forms.Label(Text='Day of year:') date_label.Size = drawing.Size(140, 15) date_slider = EtoUtil.create_slider( value=current_date_time.Now.DayOfYear, min=1, max=365, snap_to_tick=False, tick_frequency=31, change_event_method=slider_date_event_method, is_enabled=is_enabled) # Time slider and picker time = forms.DateTimePicker() time.Mode = forms.DateTimePickerMode.Time time.Value = System.DateTime(1, 1, 1, current_date_time.Hour, 0, 0) time.Size = drawing.Size(30, 20) time.ValueChanged += picker_time_event_method time.Enabled = is_enabled # time_label = forms.Label(Text='Hour of day:') time_label.Size = drawing.Size(140, 15) time_slider = EtoUtil.create_slider( value=current_date_time.Hour, min=0, max=23, snap_to_tick=True, tick_frequency=1, change_event_method=slider_time_event_method, is_enabled=is_enabled) layout = EtoUtil.create_layout_from_control_matrix( [[date_label], [date_slider, date], [time_label], [time_slider, time]]) return layout, date, date_slider, time, time_slider
def create_global_settings_table(self): # Select button select_center_label = forms.Label(Text='Sun path center point:') select_center_label.Size = drawing.Size(140, 10) select_center_button = EtoUtil.create_button( text='Pick point', click_event_method=self.on_center_button) sun_path_label = forms.Label(Text='Sun path scale:') self.m_sun_path_updown = EtoUtil.create_numeric_stepper(decimal_places = 2, increment = 0.1, value = 1, change_event_method =\ self.on_sun_path_scale_changed) sun_sphere_label = forms.Label(Text='Sun sphere scale:') self.m_sun_sphere_updown = EtoUtil.create_numeric_stepper(decimal_places = 2, increment = 0.1, value = 1, change_event_method =\ self.on_sun_sphere_scale_changed) layout = EtoUtil.create_layout_from_control_matrix( [[select_center_label, select_center_button], [sun_path_label, self.m_sun_path_updown], [sun_sphere_label, self.m_sun_sphere_updown]]) return layout
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 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 __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 initialize_form(self): self.Title = 'Sun Path' self.Padding = drawing.Padding(5) self.Resizable = False self.Maximizable = False self.Minimizable = False self.ShowInTaskbar = False self.MinimumSize = drawing.Size(210, 150)
def create_list_box(self, size = drawing.Size(200, 100), selected_event_method = None): # Create the listbox listbox = forms.ListBox() listbox.Size = size if selected_event_method : listbox.SelectedIndexChanged += selected_event_method return listbox
def CreateListBox(self): # Create labels listbox = forms.ListBox() listbox.Size = drawing.Size(100, 150) listbox.ItemTextBinding = forms.Binding.Delegate[Fruit, System.String](self.FruitDelegate) listbox.DataStore = self.m_collection listbox.SelectedIndex = 0 self.m_listbox = listbox return self.m_listbox
def initialize_form(self): self.Title = 'Sunlight Hours' self.Padding = drawing.Padding(5) self.Resizable = False self.Maximizable = False self.Minimizable = False self.ShowInTaskbar = False self.MinimumSize = drawing.Size(210, 150) self.UnLoad += self.on_unload
def grid(): self.grid = forms.GridView() self.grid.BackgroundColor = drawing.Colors.LightGrey self.grid.Size = drawing.Size(300,470) self.grid.GridLines = forms.GridLines.Both self.grid.AllowMultipleSelection = True self.grid.CellEdited += self.OnCellEdited self.grid.CellFormatting += self.OnCellFormatting #COLUMNS numberColumn = forms.GridColumn() numberColumn.HeaderText = "#" numberColumn.DataCell = forms.TextBoxCell(0) numberColumn.DataCell.TextAlignment = forms.TextAlignment.Right nameColumn = forms.GridColumn() nameColumn.HeaderText = "Floor\t" nameColumn.Editable = True nameColumn.DataCell = forms.TextBoxCell(1) funcColumn = forms.GridColumn() funcColumn.HeaderText = "Program\t\t" funcColumn.DataCell = forms.TextBoxCell(2) funcColumn.Editable = True funcColumn.DataCell.TextAlignment = forms.TextAlignment.Center ftfColumn = forms.GridColumn() ftfColumn.HeaderText = "FTF\t" ftfColumn.DataCell = forms.TextBoxCell(3) ftfColumn.Editable = True ftfColumn.DataCell.TextAlignment = forms.TextAlignment.Right levelColumn = forms.GridColumn() levelColumn.HeaderText = "Height\t" levelColumn.Editable = True levelColumn.DataCell = forms.TextBoxCell(4) levelColumn.DataCell.TextAlignment = forms.TextAlignment.Right areaColumn = forms.GridColumn() areaColumn.HeaderText = "GFA\t" areaColumn.Editable = True areaColumn.DataCell = forms.TextBoxCell(5) areaColumn.DataCell.TextAlignment = forms.TextAlignment.Right commentColumn = forms.GridColumn() commentColumn.HeaderText = "Comments\t\t" commentColumn.Editable = True commentColumn.DataCell = forms.TextBoxCell(6) commentColumn.DataCell.TextAlignment = forms.TextAlignment.Left self.grid.Columns.Add(numberColumn) self.grid.Columns.Add(nameColumn) self.grid.Columns.Add(funcColumn) self.grid.Columns.Add(ftfColumn) self.grid.Columns.Add(levelColumn) self.grid.Columns.Add(areaColumn) self.grid.Columns.Add(commentColumn)
def CreateItem(self, argb, text): item = forms.ImageListItem() item.Text = text size = drawing.Size(20, 14) * int(forms.Screen.PrimaryScreen.LogicalPixelSize) bitmap = drawing.Bitmap(size, drawing.PixelFormat.Format32bppRgb) with drawing.Graphics(bitmap) as g: g.Clear(drawing.Color.FromArgb(argb)) item.Image = bitmap return item
def __init__(self): self.Title = "Sample Eto Dialog" self.ClientSize = drawing.Size(200, 200) self.Padding = drawing.Padding(5) self.Resizable = False label = forms.Label() label.Text = "Hello Rhino.Python!" self.Content = label
def Initialize(self): self.Title = 'Sample Modeless Form' self.Padding = drawing.Padding(5) self.Resizable = True self.Maximizable = False self.Minimizable = False self.ShowInTaskbar = False self.MinimumSize = drawing.Size(200, 150) # FormClosed event handler self.Closed += self.OnFormClosed
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 CreateListBoxRow(self): # Create the listbox self.m_listbox = forms.ListBox() self.m_listbox.Size = drawing.Size(200, 100) self.m_listbox.SelectedIndexChanged += self.OnSelectedIndexChanged # Create the table row table_row = forms.TableRow() table_row.ScaleHeight = True table_row.Cells.Add(self.m_listbox) return table_row
def Initialize(self): #Setup the dialog self.Title = "Project Information" self.Size = drawing.Size(600,330) self.Padding = drawing.Padding(5, 5) self.lightgrey = drawing.Colors.LightGrey self.darkgrey = drawing.Colors.DarkGray self.InitVariables()
def CreateFormControls(self): # Create table layout layout = forms.TableLayout() layout.Padding = drawing.Padding(10) layout.Spacing = drawing.Size(5, 5) # Add controls to layout layout.Rows.Add(forms.Label(Text='Rhino Objects:')) layout.Rows.Add(self.CreateListBoxRow()) layout.Rows.Add(self.CreateButtonRow()) # Set the 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): self.Title = "Sample Eto PushPickButton Dialog" self.ClientSize = drawing.Size(200, 200) self.Padding = drawing.Padding(5) self.Resizable = False button = forms.Button() button.Text = "Click Me!" button.Click += self.OnPushPickButton self.Content = button
def __init__(self): # create a control text = forms.TextArea() text.Text = "Every Good Boy Deserves Fudge." # create a layout layout = forms.TableLayout() layout.Padding = drawing.Padding(10) layout.Spacing = drawing.Size(5, 5) layout.Rows.Add(text) # set the panel content self.Content = layout
def initialize(self): self.Title = 'Sunpath' self.Icon = drawing.Icon(r"asset/ladybug.ico") self.Padding = drawing.Padding(5) self.Resizable = True self.Maximizable = False self.Minimizable = False self.ShowInTaskbar = False self.MinimumSize = drawing.Size(200, 50) # FormClosed event handler self.Closed += self.OnFormClosed
def create_form_controls(self): # Create table layout layout = forms.TableLayout() layout.Padding = drawing.Padding(10) layout.Spacing = drawing.Size(20, 20) # Add controls to layout layout.Rows.Add(self.create_analysis_objects_group()) layout.Rows.Add(self.create_global_settings_table()) layout.Rows.Add(None) # Set the 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 create_global_settings_table(self): #project path and name project_path_label = forms.Label(Text = 'Project folder:') self.m_project_path_picker = EtoUtil.create_file_picker( title = "Select project folder") self.m_project_path_picker.FilePath = 'c:\ladybug' self.m_project_path_picker.FileAction = FileAction.SelectFolder self.m_project_path = "c:\ladybug" layout_a = EtoUtil.create_layout_from_control_matrix([ [project_path_label], [self.m_project_path_picker]], drawing.Padding(5, 30, 5, 0)) project_name_label = forms.Label(Text = 'Project name:') project_name_label.Size = drawing.Size(140, 14) self.m_project_name_text_box = forms.TextBox() self.m_project_name_text_box.Text = "Project1" self.m_save_file_check_box = forms.CheckBox() self.m_save_file_check_box.Text = "Write file only" self.m_run_analysis_button = EtoUtil.create_button( text = 'Run Analysis', size = drawing.Size(140, 24), click_event_method = self.on_click_run_analysis) layout_b = EtoUtil.create_layout_from_control_matrix([ [project_name_label, None], [self.m_project_name_text_box]], drawing.Padding(5, 0, 5, 5)) layout_c = EtoUtil.create_layout_from_control_matrix([ [self.m_run_analysis_button, self.m_save_file_check_box,]], drawing.Padding(5, 10, 5, 5)) return EtoUtil.create_layout_from_control_matrix([[layout_a], [layout_b], [layout_c]], drawing.Padding(0,5))
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 CreateButtonRow(self): # Select button select_button = forms.Button(Text='Select All') select_button.Click += self.OnSelectClick # Clear button clear_button = forms.Button(Text='Clear') clear_button.Click += self.OnClearClick # Create layout layout = forms.TableLayout(Spacing=drawing.Size(5, 5)) layout.Rows.Add(forms.TableRow(None, select_button, clear_button, None)) return layout