public MenuAdapter(ContextMenu menu, WebActionNode model, ActionDispatcher actionDispatcher) : base(menu) { _menu = menu; if (model is WebDropDownButtonAction) { //TODO (CR May 2010): there's probably a more generic way to do this WebDropDownButtonAction a = model as WebDropDownButtonAction; foreach (WebActionNode node in a.DropDownActions) { MenuItem menuItem = BuildMenuItem(node, actionDispatcher); if (menuItem != null) { _menu.Items.Add(menuItem); } } } else { foreach (WebActionNode node in model.Children) { MenuItem menuItem = BuildMenuItem(node, actionDispatcher); if (menuItem != null) { _menu.Items.Add(menuItem); } } } }
public DropDownButton(ActionDispatcher dispatcher, WebDropDownButtonAction action, WebIconSize iconSize) { InitializeComponent(); _iconSize = iconSize; _actionDispatcher = dispatcher; _actionItem = action; dispatcher.Register(_actionItem.Identifier, this); SetIcon(); ToolTipService.SetToolTip(StackPanelVerticalComponent, _actionItem.ToolTip); ButtonComponent.Click += OnClick; DropButtonComponent.Height = ButtonComponent.Height; DropButtonComponent.Click += OnDropClick; _dropMenu = MenuBuilder.BuildContextMenu(action, _actionDispatcher); StackPanelVerticalComponent.MouseEnter += ButtonComponent_MouseEnter; StackPanelVerticalComponent.MouseLeave += ButtonComponent_MouseLeave; Visibility = _actionItem.DesiredVisiblility; ButtonComponent.IsEnabled = _actionItem.Enabled; DropButtonComponent.IsEnabled = _actionItem.Enabled; IndicateChecked(_actionItem.IsCheckAction && _actionItem.Checked); OverlayCheckedIndicator.Opacity = _actionItem.IconSet.HasOverlay ? 1 : 0; }