private void AddCategoryControl(BlogPostCategoryListItem categoryListItem, PositionManager positionManager) { ICategorySelectorControl catSelector = CategorySelectorControlFactory.Instance.GetControl(categoryListItem.Category, (_categoryContext.SelectionMode == CategoryContext.SelectionModes.MultiSelect)); catSelector.SelectedChanged += new EventHandler(catSelector_SelectedChanged); catSelector.Control.Scale(new SizeF(scale.X, scale.Y)); positionManager.PositionControl(catSelector.Control, categoryListItem.IndentLevel); categoryContainerControl.Controls.Add(catSelector.Control); _categoryControls.Add(catSelector.Control); }
private void RefreshParentCombo() { object selectedItem = cbParent.SelectedItem; cbParent.Items.Clear(); cbParent.Items.Add(new ParentCategoryComboItemNone(cbParent)); BlogPostCategoryListItem[] categoryListItems = BlogPostCategoryListItem.BuildList(ctx.BlogCategories, true); foreach (BlogPostCategoryListItem categoryListItem in categoryListItems) { cbParent.Items.Add(new ParentCategoryComboItem(cbParent, categoryListItem.Category, categoryListItem.IndentLevel)); } if (selectedItem != null && cbParent.Items.Contains(selectedItem)) { cbParent.SelectedItem = selectedItem; } else { cbParent.SelectedIndex = 0; } }
private void LayoutControls(CategoryContext categoryContext, bool sizeForm, bool performRtlLayoutFixup) { ClearForm(); SuspendLayout(); // calculate how much room there is above me on the parent form int parentControlY = _parentControl.PointToScreen(_parentControl.Location).Y; Form parentForm = _parentControl.FindForm(); int parentFormY = parentForm.PointToScreen(parentForm.ClientRectangle.Location).Y; int maxHeight = parentControlY - parentFormY - ScaleY(_topMargin) - ScaleY(_bottomMargin); // enforce additional constraint (or not, let freedom reign!) //maxHeight = Math.Min(maxHeight, 400) ; using (PositionManager positionManager = new PositionManager(ScaleX(X_MARGIN), ScaleY(Y_MARGIN + 2), ScaleY(4), ScaleX(MinDropDownWidth), categoryContainerControl.Width, maxHeight, scale)) { // add 'none' if we're single selecting categories if (categoryContext.SelectionMode != CategoryContext.SelectionModes.MultiSelect) { AddCategoryControl(new BlogPostCategoryListItem(new BlogPostCategoryNone(), 0), positionManager); } // add the other categories BlogPostCategoryListItem[] categoryListItems = BlogPostCategoryListItem.BuildList(categoryContext.Categories, true); foreach (BlogPostCategoryListItem categoryListItem in categoryListItems) { AddCategoryControl(categoryListItem, positionManager); } if (sizeForm) { PositionAndSizeForm(positionManager); } } if (performRtlLayoutFixup) { BidiHelper.RtlLayoutFixup(categoryContainerControl); } ResumeLayout(); }
private void RefreshParentCombo() { // populate "parent" combo object selectedItem = comboBoxParent.SelectedItem; comboBoxParent.Items.Clear(); comboBoxParent.Items.Add(new ParentCategoryComboItemNone(comboBoxParent)); BlogPostCategoryListItem[] categoryListItems = BlogPostCategoryListItem.BuildList(_categoryContext.BlogCategories, true); foreach (BlogPostCategoryListItem categoryListItem in categoryListItems) { comboBoxParent.Items.Add(new ParentCategoryComboItem(comboBoxParent, categoryListItem.Category, categoryListItem.IndentLevel)); } UpdateParentComboForeColor(); if (selectedItem != null && comboBoxParent.Items.Contains(selectedItem)) { comboBoxParent.SelectedItem = selectedItem; } else { comboBoxParent.SelectedIndex = 0; } }
private void AddCategoryControl(BlogPostCategoryListItem categoryListItem, PositionManager positionManager) { ICategorySelectorControl catSelector = CategorySelectorControlFactory.Instance.GetControl(categoryListItem.Category, (_categoryContext.SelectionMode == CategoryContext.SelectionModes.MultiSelect)); catSelector.SelectedChanged += new EventHandler(catSelector_SelectedChanged); catSelector.Control.Scale(new SizeF(scale.X, scale.Y)); positionManager.PositionControl(catSelector.Control, categoryListItem.IndentLevel); categoryContainerControl.Controls.Add(catSelector.Control); _categoryControls.Add(catSelector.Control); }