static protected Anchor CreateStandardControlDOMElement( Control control, Root root, string displayMode, ControlProperties properties, bool menu, bool arrow) { // We cast the properties to FlyoutAnchor properties because it has the superset // of all the possible properties that we will want to use. JSObject tempProps = JSObject.From <ControlProperties>(properties); FlyoutAnchorProperties props = tempProps.To <FlyoutAnchorProperties>(); return(CreateStandardControlDOMElementCore( control, root, displayMode, props.Id, props.Image32by32, props.Image32by32Class, props.Image32by32Top, props.Image32by32Left, props.Image16by16, props.Image16by16Class, props.Image16by16Top, props.Image16by16Left, props.LabelText, props.LabelCss, props.Alt, props.Description, props.ToolTipTitle, menu, arrow)); }
private void EnsurePopup() { if (!CUIUtility.IsNullOrUndefined(_popupLayout)) { return; } if (string.IsNullOrEmpty(PopupLayoutTitle)) { throw new ArgumentNullException("No PopupLayoutTitle has been set."); } // Create the Components and Controls needed for the Group Popup _popupLayout = Ribbon.CreateGroupPopupLayout(this.Id + "-Popup", this); _popupMenu = Ribbon.CreateMenu(this.Id + "-popupMenu", null, null, null); _popupMenuSection = Ribbon.CreateMenuSection(this.Id + "-popupMenuSection", null, null, false, null, null); JSObject tempObj = new JSObject(); FlyoutAnchorProperties props = tempObj.To <FlyoutAnchorProperties>(); props.LabelText = Title; RibbonProperties ribbonProperties = Ribbon.RibbonProperties; if (!string.IsNullOrEmpty(Properties.Image32by32Popup)) { props.Image32by32 = Properties.Image32by32Popup; props.Image32by32Class = Properties.Image32by32PopupClass; props.Image32by32Top = Properties.Image32by32PopupTop; props.Image32by32Left = Properties.Image32by32PopupLeft; } else { props.Image32by32 = ribbonProperties.Image32by32GroupPopupDefault; props.Image32by32Class = ribbonProperties.Image32by32GroupPopupDefaultClass; props.Image32by32Left = ribbonProperties.Image32by32GroupPopupDefaultLeft; props.Image32by32Top = ribbonProperties.Image32by32GroupPopupDefaultTop; } props.Command = this.Command; _popupAnchor = new FlyoutAnchor(Ribbon, this.Id + "-PopupAnchor", props, _popupMenu); _popupAnchor.IsGroupPopup = true; // Set the enabled state of the anchor to the enabled state of the Group initially _popupAnchor.Enabled = Enabled; _popup = Ribbon.CreateGroupPopup(this.Id + "-popupMenuItem", this); // Compose the hierarchy needed for the Group Popup _popupLayout.AddChild(_popupAnchor.CreateComponentForDisplayMode("Large")); _popupMenu.AddChild(_popupMenuSection); _popupMenuSection.AddChild(_popup); _popup.LayoutTitle = PopupLayoutTitle; AddChild(_popupLayout); }
private FlyoutAnchor BuildFlyoutAnchor(object data, BuildContext bc) { FlyoutAnchorProperties properties = DataNodeWrapper.GetNodeAttributes(data).To <FlyoutAnchorProperties>(); JSObject[] children = DataNodeWrapper.GetNodeChildren(data); Menu menu = null; MenuLauncherControlProperties launcherProperties = DataNodeWrapper.GetNodeAttributes(data).To <MenuLauncherControlProperties>(); if (!Utility.IsTrue(launcherProperties.PopulateDynamically)) { menu = BuildMenu(children[0], bc, true); } FlyoutAnchor fsfa = new FlyoutAnchor(Root, properties.Id, properties, menu); return(fsfa); }