Пример #1
0
        public override System.Windows.Style SelectStyle(object item, System.Windows.DependencyObject container)
        {
            if (item is ToolViewModel)
            {
                return(ToolStyle);
            }



            if (item is RakunFileViewModel)
            {
                LayoutDocumentItem test = container as LayoutDocumentItem;
                if (test != null)
                {
                    RakunViewerUserControl doc = new RakunViewerUserControl();
                    test.View.Content = doc;
                }
                (item as RakunFileViewModel).View = test.View.Content as RakunViewerUserControl;

                (item as RakunFileViewModel).AddModule(Workspace.This.RakunManager.startingNode);
                return(RakunStyle);
            }

            if (item is FileViewModel)
            {
                return(FileStyle);
            }

            return(base.SelectStyle(item, container));
        }
Пример #2
0
        private AbstractMenuItem FromMenuItem(MenuItem item, LayoutDocumentItem doc, Int32 priority)
        {
            Boolean hideDisabled = false;

            if (item != null)
            {
                ICommand cmd = null;
                if (doc != null)
                {
                    if (item.Header.ToString() == Xceed.Wpf.AvalonDock.Properties.Resources.Document_Close)
                    {
                        cmd = doc.CloseCommand;
                    }
                    if (item.Header.ToString() == Xceed.Wpf.AvalonDock.Properties.Resources.Document_CloseAllButThis)
                    {
                        cmd = doc.CloseAllButThisCommand;
                    }
                    if (item.Header.ToString() == Xceed.Wpf.AvalonDock.Properties.Resources.Document_Float)
                    {
                        cmd          = doc.FloatCommand;
                        hideDisabled = true;
                    }
                    if (item.Header.ToString() == Xceed.Wpf.AvalonDock.Properties.Resources.Document_DockAsDocument)
                    {
                        cmd          = doc.DockAsDocumentCommand;
                        hideDisabled = true;
                    }
                    if (item.Header.ToString() ==
                        Xceed.Wpf.AvalonDock.Properties.Resources.Document_NewHorizontalTabGroup)
                    {
                        cmd          = doc.NewHorizontalTabGroupCommand;
                        hideDisabled = true;
                    }
                    if (item.Header.ToString() == Xceed.Wpf.AvalonDock.Properties.Resources.Document_NewVerticalTabGroup)
                    {
                        cmd          = doc.NewVerticalTabGroupCommand;
                        hideDisabled = true;
                    }
                    if (item.Header.ToString() == Xceed.Wpf.AvalonDock.Properties.Resources.Document_MoveToNextTabGroup)
                    {
                        cmd          = doc.MoveToNextTabGroupCommand;
                        hideDisabled = true;
                    }
                    if (item.Header.ToString() ==
                        Xceed.Wpf.AvalonDock.Properties.Resources.Document_MoveToPreviousTabGroup)
                    {
                        cmd          = doc.MoveToPreviousTabGroupCommand;
                        hideDisabled = true;
                    }
                }

                MenuItemViewModel model = new MenuItemViewModel(
                    item.Header.ToString(), priority,
                    item.Icon != null ? (item.Icon as Image).Source : null,
                    cmd, null, false, hideDisabled);
                return(model);
            }
            return(null);
        }
        private void _docContextMenu_ContextMenuOpening(object sender, ContextMenuEventArgs e)
        {
            /* When you right click a document - move the focus to that document, so that commands on the context menu
             * which are based on the ActiveDocument work correctly. Example: Save.
             */
            LayoutDocumentItem doc = _docContextMenu.DataContext as LayoutDocumentItem;

            if (doc != null)
            {
                ContentViewModel model = doc.Model as ContentViewModel;
                if (model != null && model != dockManager.ActiveContent)
                {
                    dockManager.ActiveContent = model;
                }
            }
            e.Handled = false;
        }
Пример #4
0
        /// <summary>
        /// Open the styled document context menu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DocumentContextMenu_ContextMenuOpening(object sender, ContextMenuEventArgs e)
        {
            LayoutDocumentItem document = ((ContextMenu)sender).DataContext as LayoutDocumentItem;

            if (document != null)
            {
                DocumentViewModel model = document.Model as DocumentViewModel;

                if (model != null && model != MainWindow.GetInstance().GetDockingManager().ActiveContent)
                {
                    MainWindow.GetInstance().GetDockingManager().ActiveContent = model;
                }

                e.Handled = true;
                return;
            }

            e.Handled = false;
        }
        public object Convert(object[] values, Type targetType, object parameter,
                              System.Globalization.CultureInfo culture)
        {
            DefaultMenuItem    root = new MenuItemViewModel("$CROOT$", "$CROOT$", 1);
            LayoutDocumentItem doc  = values[0] as LayoutDocumentItem;
            int i = 1;
            IReadOnlyCollection <DefaultMenuItem> menus = values[1] as IReadOnlyCollection <DefaultMenuItem>;
            ContextMenu cm;

            if (doc != null)
            {
                try
                {
                    //TODO make it 2013
                    cm = Application.Current.FindResource("AvalonDock_ThemeVS2012_DocumentContextMenu") as ContextMenu;
                    if (cm != null)
                    {
                        foreach (MenuItem mi in cm.Items)
                        {
                            root.Add(FromMenuItem(mi, doc, i++));
                        }
                    }
                }
                catch
                {
                }

                if (menus != null)
                {
                    foreach (DefaultMenuItem abstractMenuItem in menus)
                    {
                        root.Add(abstractMenuItem);
                    }
                }
            }
            return(root.Children);
        }