Exemple #1
0
 public void SetGoodPlayerControl(IViewControl control)
 {
     goodPlayer = (UserControl)control;
     this.Controls.Add(goodPlayer);
     goodPlayer.Dock = DockStyle.Fill;
     goodPlayer.SendToBack();
 }
Exemple #2
0
        public void SetSettingsControl(IViewControl control)
        {
            Control c = (Control)control;

            settingsPage.Controls.Add(c);
            c.Dock = DockStyle.Fill;
        }
Exemple #3
0
        public void SetSourceListControl(IViewControl control)
        {
            Control c = (Control)control;

            sourcesPage.Controls.Add(c);
            c.Dock = DockStyle.Fill;
        }
        public void SetModifySourceControl(IViewControl control)
        {
            UserControl _editSource = (UserControl)control;

            this.Controls.Add(_editSource);
            _editSource.Dock = DockStyle.Fill;
            _editSource.BringToFront();
        }
Exemple #5
0
 public void SetPlayerControlControl(IViewControl control)
 {
     controlPlayer = (UserControl)control;
     this.Controls.Add(controlPlayer);
     controlPlayer.Anchor     = ((AnchorStyles)(((AnchorStyles.Bottom | AnchorStyles.Left) | AnchorStyles.Right)));
     controlPlayer.Visible    = false;
     controlPlayer.MouseMove += (sender, args) => Invoke(MouseMoved);
     controlPlayer.BringToFront();
 }
Exemple #6
0
        public void SetGridControl(IViewControl control)
        {
            Control c = (Control)control;

            this.Controls.Add(c);
            c.Dock = DockStyle.Fill;
            c.BringToFront();
            c.ContextMenuStrip = gridMenu;
            splitLabel.BringToFront();
        }
Exemple #7
0
 public override void AddLiveControl(IViewControl control)
 {
     if (control.PlatformSpecificObject is Control)
     {
         base.AddLiveControl(control);
     }
     else
     {
         this.silverlightImageHost.AddLiveControl(control);
     }
 }
Exemple #8
0
 public void SetBadPlayerControl(IViewControl control)
 {
     badPlayer = (UserControl)control;
     this.Controls.Add(badPlayer);
     badPlayer.Dock = DockStyle.Fill;
     badPlayer.SendToBack();
     if (goodPlayer != null)
     {
         goodPlayer.SendToBack();
     }
 }
Exemple #9
0
 public SkiaSharpRenderer(IViewControl viewControl, IWorkspace workspace)
 {
     ViewControl = viewControl;
     Workspace   = workspace;
     InitializeComponent();
     DashedLines = SKPathEffect.CreateDash(new[] { 4.0f, 4.0f }, 0.0f);
     // TODO: tune these
     Workspace.CommandExecuted                    += (o, args) => Invalidate();
     Workspace.CommandExecuting                   += (o, args) => Invalidate();
     Workspace.RubberBandGeneratorChanged         += (o, args) => Invalidate();
     Workspace.SelectedEntities.CollectionChanged += (o, args) => Invalidate();
     Workspace.SettingsService.SettingChanged     += (o, args) => Invalidate();
     Workspace.WorkspaceChanged                   += (o, args) => Invalidate();
 }
Exemple #10
0
        public void Initialize(IWorkspace workspace, IViewControl viewControl)
        {
            this.Workspace   = workspace;
            this.ViewControl = viewControl;

            viewModel.SelectedEntities = workspace.SelectedEntities;
            DataContext = viewModel;
            Workspace.WorkspaceChanged += Workspace_WorkspaceChanged;
            Workspace.SettingsService.SettingChanged     += Workspace_SettingChanged;
            Workspace.SelectedEntities.CollectionChanged += SelectedEntities_CollectionChanged;
            Workspace.RubberBandGeneratorChanged         += Workspace_RubberBandGeneratorChanged;

            this.Loaded += (_, __) =>
            {
                SetBackgroundColor();
                Workspace_WorkspaceChanged(Workspace, WorkspaceChangeEventArgs.Reset());
            };
        }
Exemple #11
0
        /// <summary>
        /// 创建一个mvc模块
        /// </summary>
        /// <param name="viewControl"></param>
        /// <param name="view"></param>
        static public MvcWarpper Create(string name, IViewControl viewControl, IView view)
        {
            ViewAutoSet(view);
            BindEvnet(viewControl, view);
            //
            viewControl.BindModel();
            view.BindData();
            //
            var bind = new MvcWarpper()
            {
                Name        = name,
                ViewControl = viewControl,
                View        = view
            };

            //
            return(bind);
        }
        public void View_Change(IViewControl viewable)
        {
            if (panel_view.Controls.Count > 0)
            {
                if (panel_view.Controls[0] is IViewControl)
                {
                    (panel_view.Controls[0] as IViewControl).View_OnUnLoad();
                }
            }

            UserControl view = viewable as UserControl;

            panel_view.Controls.Clear();
            view.Dock      = DockStyle.Fill;
            view.BackColor = Color.OldLace;
            panel_view.Controls.Add(view);

            viewable.View_OnLoad();
        }
Exemple #13
0
        /// <summary>
        /// 创建一个mvc模块
        /// </summary>
        /// <param name="viewControl"></param>
        /// <param name="view"></param>
        static public MvcWarpper Create(string name, IViewControl viewControl, IView view)
        {
            //1.自动设置节点
            ViewAutoSet(view);
            //2.绑定数据model
            viewControl.BindModel();
            view.BindModel();
            //3.自动绑定事件
            BindEvnet(viewControl, view);
            //
            var bind = new MvcWarpper()
            {
                Name        = name,
                ViewControl = viewControl,
                View        = view
            };

            //
            return(bind);
        }
Exemple #14
0
        /// <summary>
        /// VC进行数据绑定
        /// </summary>
        /// <param name="viewControl"></param>
        /// <param name="view"></param>
        static private void BindEvnet(IViewControl viewControl, IView view)
        {
            //开始反射所有的UI组件,自动注册Ctrl下面 OnEvent_+ 字段名
            var viewType    = view.GetType();
            var controlType = viewControl.GetType();
            var vfields     = viewType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);

            foreach (var f in vfields)
            {
                if (!f.FieldType.IsSubclassOf(typeof(UnityEngine.Object)))
                {
                    continue;
                }
                //所有ui组件
                if (f.FieldType == typeof(Button))//主动注册OnClick、
                {
                    //
                    var fClick = controlType.GetMethod(string.Format("OnClick_{0}", f.Name), BindingFlags.Instance | BindingFlags.NonPublic);
                    if (fClick != null)
                    {
                        var o = f.GetValue(view) as Button;
                        o.onClick.AddListener(() =>
                        {
                            fClick.Invoke(viewControl, new object[] {});
                        });
                    }
                    else
                    {
                        BDebug.Log(string.Format("ui事件未实现:{0} - {1}", viewType.FullName, f.Name), "yellow");
                    }
                }
                else if (f.FieldType == typeof(Scrollbar))//主动注册OnValueChange
                {
                    var o            = f.GetValue(view) as Scrollbar;
                    var fValueChange = controlType.GetMethod(string.Format("OnValueChange_{0}", f.Name), BindingFlags.Instance | BindingFlags.NonPublic);
                    if (fValueChange != null)
                    {
                        o.onValueChanged.AddListener((value) =>
                        {
                            fValueChange.Invoke(viewControl, new object[] { value });
                        });
                    }
                    else
                    {
                        BDebug.Log(string.Format("ui事件未实现:{0} - {1}", viewType.FullName, f.Name), "yellow");
                    }
                }
                else if (f.FieldType == typeof(Slider)) //自动注册OnValueChange
                {
                    var o            = f.GetValue(view) as Slider;
                    var fValueChange = controlType.GetMethod(string.Format("OnValueChange_{0}", f.Name), BindingFlags.Instance | BindingFlags.NonPublic);
                    if (fValueChange != null)
                    {
                        o.onValueChanged.AddListener((value) =>
                        {
                            fValueChange.Invoke(viewControl, new object[] { value });
                        });
                    }
                    else
                    {
                        BDebug.Log(string.Format("ui事件未实现:{0} - {1}", viewType.FullName, f.Name), "yellow");
                    }
                }
            }
        }
Exemple #15
0
 public abstract void RemoveLiveControl(IViewControl control);
Exemple #16
0
 public abstract void AddLiveControl(IViewControl control);
Exemple #17
0
 public AbstractCadRenderer CreateRenderer(IViewControl viewControl, IWorkspace workspace)
 {
     return(new XamlRenderer(viewControl, workspace));
 }
Exemple #18
0
 public XamlRenderer(IViewControl viewControl, IWorkspace workspace)
     : this()
 {
     Initialize(workspace, viewControl);
     ViewControl = viewControl;
 }
Exemple #19
0
 public virtual void RemoveLiveControl(IViewControl control)
 {
     this.liveControlLayer.Children.Remove((UIElement)control.PlatformSpecificObject);
 }
        private void Rebuild()
        {
            if (this.EditingProperty == null)
            {
                return;
            }
            this.EditingProperty.Recache();
            this.states.Clear();
            if (this.EditingProperty.ObjectSet.IsHomogenous && this.EditingProperty.ObjectSet.Count > 0)
            {
                BehaviorTargetedTriggerActionNode triggerActionNode = this.EditingProperty.SceneNodeObjectSet.Objects[0] as BehaviorTargetedTriggerActionNode;
                if (triggerActionNode == null || triggerActionNode.TargetObject == null && string.IsNullOrEmpty(triggerActionNode.TargetName))
                {
                    SceneNode editingContainer = this.viewModel.ActiveEditingContainer;
                    SceneNode hostNode         = VisualStateManagerSceneNode.GetHostNode(this.viewModel.ActiveEditingContainer);
                    if (hostNode != null)
                    {
                        foreach (VisualStateGroupSceneNode stateGroupSceneNode in (IEnumerable <VisualStateGroupSceneNode>)VisualStateManagerSceneNode.GetStateGroups(hostNode))
                        {
                            foreach (SceneNode sceneNode in (IEnumerable <VisualStateSceneNode>)stateGroupSceneNode.States)
                            {
                                this.states.Add(new StateInfo(sceneNode.Name, stateGroupSceneNode.Name));
                            }
                        }
                    }
                    ControlTemplateElement controlTemplateElement = this.viewModel.ActiveEditingContainer as ControlTemplateElement;
                    if (controlTemplateElement != null)
                    {
                        IType type = this.viewModel.ProjectContext.ResolveType(controlTemplateElement.ControlTemplateTargetTypeId);
                        foreach (DefaultStateRecord defaultStateRecord in ProjectAttributeHelper.GetDefaultStateRecords(type, (ITypeResolver)(this.viewModel.ProjectContext as ProjectContext)))
                        {
                            this.AddStateInfoIfNeeded(defaultStateRecord.StateName, defaultStateRecord.GroupName, type);
                        }
                    }
                }
                else if (triggerActionNode.TargetNode != null && triggerActionNode.TargetNode.IsViewObjectValid)
                {
                    IViewControl viewControl = triggerActionNode.TargetNode.ViewObject as IViewControl;
                    if (viewControl != null)
                    {
                        object stateManagerHost = viewControl.VisualStateManagerHost;
                        if (stateManagerHost != null)
                        {
                            foreach (object group in (IEnumerable)StatePickerEditor.GetVisualStateGroups(stateManagerHost, (ITypeResolver)triggerActionNode.ProjectContext))
                            {
                                string stateGroupName = this.GetStateGroupName(group);
                                foreach (object state in (IEnumerable)this.GetStates(group))
                                {
                                    this.states.Add(new StateInfo(this.GetStateName(state), stateGroupName));
                                }
                            }
                        }
                        IType type = triggerActionNode.TargetNode.ProjectContext.GetType(triggerActionNode.TargetNode.TargetType);
                        foreach (DefaultStateRecord defaultStateRecord in ProjectAttributeHelper.GetDefaultStateRecords(triggerActionNode.TargetNode.Type, (ITypeResolver)(this.viewModel.ProjectContext as ProjectContext)))
                        {
                            this.AddStateInfoIfNeeded(defaultStateRecord.StateName, defaultStateRecord.GroupName, type);
                        }
                    }
                }
            }
            this.states.RemoveAll((Predicate <StateInfo>)(stateInfo =>
            {
                if (!string.IsNullOrEmpty(stateInfo.GroupName) && !string.IsNullOrEmpty(stateInfo.StateName) && !stateInfo.GroupName.StartsWith(VisualStateManagerSceneNode.SketchFlowAnimationXamlDelimiter, StringComparison.Ordinal))
                {
                    return(stateInfo.StateName.StartsWith("_BlendEditTimeState-", StringComparison.Ordinal));
                }
                return(true);
            }));
            this.statesView = CollectionViewSource.GetDefaultView(this.states);
            PropertyGroupDescription groupDescription = new PropertyGroupDescription();

            groupDescription.PropertyName = "GroupName";
            this.statesView.GroupDescriptions.Clear();
            this.statesView.GroupDescriptions.Add((GroupDescription)groupDescription);
            this.OnPropertyChanged("CurrentState");
            this.OnPropertyChanged("States");
        }