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 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, 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 create_vertices_table(cls, sceneNode, keys): datastructure = sceneNode.datastructure table = cls(sceneNode=sceneNode, table_type='vertices') table.add_column('Name') table.add_column('Value', Editable=True) attributes = list(datastructure.default_vertex_attributes.keys()) attributes = table.sort_attributes(attributes) treecollection = forms.TreeGridItemCollection() key = keys[0] for attr in attributes: if attr[0] != '_' and attr != 'constraints': if datastructure.attributes['name'] == 'form' and attr == 'z': pass else: values = [ str(attr), datastructure.vertex_attribute(key, attr) ] vertex_item = forms.TreeGridItem(Values=tuple(values)) treecollection.Add(vertex_item) table.DataStore = treecollection table.Activated += table.SelectEvent(sceneNode, keys) table.ColumnHeaderClick += table.HeaderClickEvent() table.CellEdited += table.EditEvent(sceneNode, keys) return table
def create_edges_table(cls, sceneNode): datastructure = sceneNode.datastructure table = cls(sceneNode=sceneNode, table_type='edges') table.add_column('key') attributes = list(datastructure.default_edge_attributes.keys()) attributes = table.sort_attributes(attributes) for attr in attributes: editable = attr[0] != '_' checkbox = type( datastructure.default_edge_attributes[attr]) == bool if not editable: attr = attr[1:] table.add_column(attr, Editable=editable, checkbox=checkbox) treecollection = forms.TreeGridItemCollection() for key, edge in enumerate(datastructure.edges()): values = [str(edge)] for attr in attributes: values.append(datastructure.edge_attribute(edge, attr)) edge_item = forms.TreeGridItem(Values=tuple(values)) treecollection.Add(edge_item) for key in edge: vertex_item = forms.TreeGridItem(Values=(str(key), )) edge_item.Children.Add(vertex_item) table.DataStore = treecollection table.Activated += table.SelectEvent(sceneNode, 'guid_edge', 'guid_vertex') table.ColumnHeaderClick += table.HeaderClickEvent() table.CellEdited += table.EditEvent() return table
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, 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 create_force_table(cls, sceneNode): datastructure = sceneNode.diagram table = cls(sceneNode=sceneNode, table_type='edges') table.add_column('key') attributes = list(datastructure.default_edge_attributes.keys()) attributes = table.sort_attributes(attributes) print(attributes) for attr in attributes: checkbox = type( datastructure.default_edge_attributes[attr]) == bool print(attr) attr = attr.replace("_", "-") table.add_column(attr, Editable=False, checkbox=checkbox) treecollection = forms.TreeGridItemCollection() for key, edge in enumerate(datastructure.edges()): values = [str(edge)] for attr in attributes: values.append(datastructure.edge_attribute(edge, attr)) edge_item = forms.TreeGridItem(Values=tuple(values)) treecollection.Add(edge_item) # for key in edge: # vertex_item = forms.TreeGridItem(Values=(str(key),)) # edge_item.Children.Add(vertex_item) table.DataStore = treecollection table.Activated += table.SelectEvent(sceneNode, 'guid_edge') table.ColumnHeaderClick += table.HeaderClickEvent() table.CellEdited += table.EditEvent() return table
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 menuBar(): mnuFile = forms.ButtonMenuItem(Text = "File") mnuNew = forms.ButtonMenuItem(Text = "New") mnuNew.Click += self.OnNewFileClick mnuSave = forms.ButtonMenuItem(Text = "Save") mnuSave.Click += self.OnFileSaveClick mnuSaveAs = forms.ButtonMenuItem(Text = "Save As...") mnuSaveAs.Click += self.OnFileSaveAsClick mnuOpen = forms.ButtonMenuItem(Text = "Import from 3dm") #mnuOpen.Enabled = False mnuOpen.Click += self.OnFileOpenClick mnuClose = forms.ButtonMenuItem(Text = "Close") mnuClose.Click += self.OnFileCloseClick mnuEdit = forms.ButtonMenuItem(Text = "Edit") mnuCopy = forms.ButtonMenuItem(Text = "Copy") mnuCopy.Click += self.copyToClipboard mnuEdit.Items.Add(mnuCopy) mnuFile.Items.Add(mnuNew) mnuFile.Items.Add(mnuOpen) #mnuFile.Items.Add(mnuSave) #mnuFile.Items.Add(mnuSaveAs) #mnuFile.Items.Add(mnuClose) mnuBar = forms.MenuBar(mnuFile, mnuEdit) #self.Menu.Spacing = drawing.Size(2,2) #mnuBar.Padding = 5 self.Menu = mnuBar
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 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 add_column(self, HeaderText=None, Editable=False, checkbox=False): column = forms.GridColumn() if self.ShowHeader: column.HeaderText = HeaderText column.Editable = Editable if not checkbox: column.DataCell = forms.TextBoxCell(self.Columns.Count) else: column.DataCell = forms.CheckBoxCell(self.Columns.Count) column.Sortable = True self.Columns.Add(column)
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 __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 create_form_controls(self): """Create all of the controls used by the form.""" # 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='Location:')) layout.Rows.Add(self.create_list_box()) layout.Rows.Add(self.create_button_row()) # Set the content self.Content = layout
def create_button_row(self): """ Creates the table row that contains the button controls. Called by create_form_controls. """ # Select button select_button = forms.Button(Text='Open EPW') select_button.Click += self.on_load_epw # Create layout layout = forms.TableLayout(Spacing=drawing.Size(5, 5)) layout.Rows.Add(forms.TableRow(None, select_button, None)) return layout
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 buttons(): #BUTTONS self.btnApply = forms.Button() self.btnApply.Text = "OK" self.btnApply.Click += self.OnFileSaveClick self.btnCancel = forms.Button() self.btnCancel.Text = "Cancel" self.btnCancel.Click += self.OnCancelPressed self.DefaultButton = self.btnApply self.AbortButton = self.btnCancel
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
def create_file_picker(title = 'file picker', filter = None, file_path_changed_event_method = None): file_picker = forms.FilePicker() file_picker.Title = title if filter: file_picker.Filters.Add(forms.FileFilter(filter, ('.'+filter))) if file_path_changed_event_method: file_picker.FilePathChanged += file_path_changed_event_method return file_picker
def create_multidata_colum(index, type): #custom cell create event def create_multidata_custom_cell_event(eventArgs): try: row_values = eventArgs.Item control = None if type == 'DropDown': control = forms.DropDown() elif type == 'ListBox': control = forms.ListBox() else: return #drop down delegates def multidata_get_item_delegate(multidata_item): return multidata_item.item def multidata_get_selected_index_delegate(): return row_values.GetItemDataAt(index).SelectedIndex def multidata_set_selected_index_delegate(sel_index): row_values.GetItemDataAt(index).SelectedIndex = sel_index #for test log: #name = row_values.GetItemDataAt(0) #num = row_values.GetItemDataAt(index).SelectedIndex #item = row_values.GetItemDataAt(index).GetItemValueAt(num) #print name + " multidata is now set to " + item control.ItemTextBinding = \ forms.DirectBinding.Delegate[MultiDataItem, System.String]\ (multidata_get_item_delegate) delegate = forms.DirectBinding.Delegate[System.Int32]( multidata_get_selected_index_delegate, multidata_set_selected_index_delegate) control.SelectedIndexBinding.Bind(delegate) control.DataStore = row_values.GetItemDataAt(index) #control.BackgroundColor = drawing.Color(0,0,1) #control.ShowBorder = False #control.SelectedIndexChanged += self.OnSelectedIndexChanged print "creating..." except Exception as e: print e return control #create drop down custom cell and drop down column cell = forms.CustomCell() cell.CreateCell = create_multidata_custom_cell_event column = forms.GridColumn(DataCell = cell) return column
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 create_list_box(self): """ Create the table row that contains the listbox. Called by create_form_controls """ # Create the listbox self.m_listbox = forms.ListBox() self.m_listbox.Size = drawing.Size(200, 100) # Create the table row table_row = forms.TableRow() table_row.ScaleHeight = True table_row.Cells.Add(self.m_listbox) return table_row
def create_layout_from_control_matrix(control_matrix, padding=drawing.Padding(5, 5), scale_height = False, spacing = drawing.Size(5, 5)): layout = forms.TableLayout(Spacing = spacing) layout.Padding = padding for control_row in control_matrix: cells = [forms.TableCell(elem) for elem in control_row] row = forms.TableRow(cells) row.ScaleHeight = scale_height layout.Rows.Add(row) return layout
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 DefaultTabs(self): # creates a tab control control = self.CreateTabControl() # create and add a tab page 1 tab1 = forms.TabPage() tab1.Text = "Tab 1" tab1.Content = self.TabOne() control.Pages.Add(tab1) # create and add a tab page 2 tab2 = forms.TabPage() tab2.Text = "Tab 2" tab2.Content = self.TabTwo() control.Pages.Add(tab2) # return return control
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 AddObject(self, obj): item = forms.ListItem() item.Text = obj.ShortDescription(False) if obj.Name: item.Text += " - " + obj.Name item.Tag = obj.Id self.m_listbox.Items.Add(item)
def __init__(self, image, title='Image', width=None, height=None): super(ImageForm, self).__init__(title, width, height) self._image = None self.image = image view = forms.ImageView() view.Image = self.image self.Content = view