Exemplo n.º 1
0
		public InsertPosition(int iPosition, bool bBefore, IDesignTimeProvider target)
		{
			this.Position=iPosition;
			this.Before=bBefore;
			this.TargetProvider=target;
		}
Exemplo n.º 2
0
		internal void MouseDragDrop(int x, int y)
		{
			if(!m_DragInProgress)
				return;
            if (m_DesignerHost != null && m_DesignerHost.Capture)
                m_DesignerHost.Capture = false;
			BaseItem dragItem=m_DragItem;
			BaseItem container=this.GetItemContainer();
			bool changed=false;

			if(m_DesignTimeProvider!=null)
			{
				if(x==-1 && y==-1)
				{
					// Cancel state
					m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition, m_InsertBefore);
				}
				else
				{
					m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition, m_InsertBefore);
					if(dragItem!=null)
					{
                        m_InternalRemoveInProgress = true;
                        try
                        {
                            BaseItem objParent = dragItem.Parent;
                            if (objParent != null)
                            {
                                if (objParent == (BaseItem)m_DesignTimeProvider && m_InsertPosition > 0)
                                {
                                    if (objParent.SubItems.IndexOf(dragItem) < m_InsertPosition)
                                        m_InsertPosition--;
                                }
                                objParent.SubItems.Remove(dragItem);
                            }
                            m_DesignTimeProvider.InsertItemAt(dragItem, m_InsertPosition, m_InsertBefore);
                            m_DesignTimeProvider = null;
                            changed = true;
                            if (dragItem.Parent != null && dragItem.Parent != this.GetItemContainer())
                            {
                                IComponentChangeService cc = (IComponentChangeService)GetService(typeof(IComponentChangeService));
                                if (cc != null)
                                    cc.OnComponentChanged(dragItem.Parent, TypeDescriptor.GetProperties(typeof(BaseItem))["SubItems"], null, null);
                            }
                        }
                        finally
                        {
                            m_InternalRemoveInProgress = false;
                        }
					}
				}
			}
			else if(x!=-1 && y!=-1 && dragItem is ControlContainerItem && ((ControlContainerItem)dragItem).Control!=null)
			{
                BaseItem parent = container;
                if (dragItem.Parent != null)
                    dragItem.Parent.SubItems.Remove(dragItem);
                parent.SubItems.Add(dragItem);
                IComponentChangeService cc = (IComponentChangeService)GetService(typeof(IComponentChangeService));
                if (cc != null)
                    cc.OnComponentChanged(dragItem.Parent, TypeDescriptor.GetProperties(typeof(BaseItem))["SubItems"], null, null);
                changed = true;
			}

			m_DesignTimeProvider=null;
			DragInProgress=false;
			if(!m_SuspendInternalCursor)
				System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.Default;
			if(dragItem!=null)
				dragItem._IgnoreClick=true;
			container.InternalMouseUp(new MouseEventArgs(MouseButtons.Left,0,x,y,0));
			if(dragItem!=null)
				dragItem._IgnoreClick=false;

			m_DragItem=null;
			this.RecalcLayout();

			if(changed)
			{
				IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
				if(cc!=null)
				{
					cc.OnComponentChanged(this.Control,null,null,null);
				}
			}
		}
Exemplo n.º 3
0
		public InsertPosition()
		{
			Position=-1;
			Before=false;
			TargetProvider=null;
		}
Exemplo n.º 4
0
		protected virtual void MouseDragDrop(int x, int y, DragEventArgs dragArgs)
		{
			if(!m_DragInProgress && !m_ExternalDragInProgress)
				return;
			BaseItem dragItem=m_DragItem;
			if(m_ExternalDragInProgress)
				dragItem=dragArgs.Data.GetData(typeof(ButtonItem)) as BaseItem;

			if(dragItem!=null)
				dragItem.InternalMouseLeave();

			if(m_DesignTimeProvider!=null)
			{
				if(x==-1 && y==-1)
				{
					// Cancel state
					m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition, m_InsertBefore);
				}
				else
				{
					m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition, m_InsertBefore);
					if(dragItem!=null)
					{
						BaseItem objParent=dragItem.Parent;
						if(objParent!=null)
						{
							if(objParent==(BaseItem)m_DesignTimeProvider && m_InsertPosition>0)
							{
								if(objParent.SubItems.IndexOf(dragItem)<m_InsertPosition)
									m_InsertPosition--;
							}
							objParent.SubItems.Remove(dragItem);
							objParent.Refresh();
                            if (objParent.ContainerControl != this)
                                BarUtilities.InvokeRecalcLayout(objParent.ContainerControl as Control);
						}
						m_DesignTimeProvider.InsertItemAt(dragItem,m_InsertPosition,m_InsertBefore);
						m_DesignTimeProvider=null;
						((IOwner)this).InvokeUserCustomize(dragItem,new EventArgs());
					}
				}
			}
			m_DesignTimeProvider=null;
			DragInProgress=false;
			m_ExternalDragInProgress=false;
			if(!m_UseNativeDragDrop)
				Cursor.Current=Cursors.Default;
			this.Capture=false;
            if (dragItem != null)
            {
                dragItem._IgnoreClick = true;
                dragItem.DragStartPoint = Point.Empty;
            }
			m_BaseItemContainer.InternalMouseUp(new MouseEventArgs(MouseButtons.Left,0,x,y,0));
			if(dragItem!=null)
				dragItem._IgnoreClick=false;

			m_DragItem=null;

            if (UserCustomize != null)
                UserCustomize(this, new EventArgs());
		}
Exemplo n.º 5
0
		protected void MouseDragOver(int x, int y)
		{
			if(!m_DragInProgress)
				return;
			BaseItem dragItem=m_DragItem;
			BaseItem container=this.GetItemContainer();
			
			if(m_DesignTimeProvider!=null)
			{
				m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition,m_InsertBefore);
				m_DesignTimeProvider=null;
			}
            
            Point pScreen = this.Control.PointToScreen(new Point(x, y));

			Control control=this.GetItemContainerControl();
			

			InsertPosition pos=((IDesignTimeProvider)container).GetInsertPosition(pScreen, dragItem);
				
			if(pos!=null)
			{
				if(pos.TargetProvider==null)
				{
					// Cursor is over drag item
					if(!m_SuspendInternalCursor)
						System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.No;
				}
				else
				{
					pos.TargetProvider.DrawReversibleMarker(pos.Position,pos.Before);
					m_InsertPosition=pos.Position;
					m_InsertBefore=pos.Before;
					m_DesignTimeProvider=pos.TargetProvider;
					if(!m_SuspendInternalCursor)
						System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.Hand;
				}
			}
			else
			{
				if(!m_SuspendInternalCursor)
					System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.No;
			}
		}
Exemplo n.º 6
0
		public frmCustomize(DotNetBarManager ctrl)
		{
			//
			// Required for Windows Form Designer support
			//
			InitializeComponent();
			m_DotNetBar=ctrl;
			this.StartPosition=FormStartPosition.CenterScreen;
			m_ItemDrag=false;
			try
			{
				m_MoveCursor=new Cursor(typeof(DevComponents.DotNetBar.DotNetBarManager),"DRAGMOVE.CUR");
				m_CopyCursor=new Cursor(typeof(DevComponents.DotNetBar.DotNetBarManager),"DRAGCOPY.CUR");
				m_NACursor=new Cursor(typeof(DevComponents.DotNetBar.DotNetBarManager),"DRAGNONE.CUR");
			}
			catch(Exception)
			{
				m_MoveCursor=null;
				m_CopyCursor=null;
				m_NACursor=null;
			}

			m_DesignTimeProvider=null;
			m_DragCopy=false;
			m_EditItem=null;

			// Load localized strings...
			using(LocalizationManager lm=new LocalizationManager(m_DotNetBar))
			{
				this.cmdNew.Text=lm.GetLocalizedString(this.cmdNew.Text);
				this.tabPage1.Text=lm.GetLocalizedString(this.tabPage1.Text);
				this.cmdReset.Text=lm.GetLocalizedString(this.cmdReset.Text);
				this.cmdRename.Text=lm.GetLocalizedString(this.cmdRename.Text);
				this.cmdDelete.Text=lm.GetLocalizedString(this.cmdDelete.Text);
				this.label1.Text=lm.GetLocalizedString(this.label1.Text);
				this.tabPage2.Text=lm.GetLocalizedString(this.tabPage2.Text);
				this.label4.Text=lm.GetLocalizedString(this.label4.Text);
				this.label3.Text=lm.GetLocalizedString(this.label3.Text);
				this.label2.Text=lm.GetLocalizedString(this.label2.Text);
				this.tabPage3.Text=lm.GetLocalizedString(this.tabPage3.Text);
				this.cmdKeyboard.Text=lm.GetLocalizedString(this.cmdKeyboard.Text);
				this.cmdClose.Text=lm.GetLocalizedString(this.cmdClose.Text);
				this.label5.Text=lm.GetLocalizedString(this.label5.Text);
				this.chkShowFullMenus.Text=lm.GetLocalizedString(this.chkShowFullMenus.Text);
				this.chkFullAfterDelay.Text=lm.GetLocalizedString(this.chkFullAfterDelay.Text);
				this.label6.Text=lm.GetLocalizedString(this.label6.Text);
				this.button1.Text=lm.GetLocalizedString(this.button1.Text);
				this.chkShowScreenTips.Text=lm.GetLocalizedString(this.chkShowScreenTips.Text);
				this.chkTipsShowShortcuts.Text=lm.GetLocalizedString(this.chkTipsShowShortcuts.Text);
				this.label7.Text=lm.GetLocalizedString(this.label7.Text);
				this.comboItem1.Text=lm.GetLocalizedString(this.comboItem1.Text);
				this.comboItem2.Text=lm.GetLocalizedString(this.comboItem2.Text);
				this.comboItem3.Text=lm.GetLocalizedString(this.comboItem3.Text);
				this.comboItem4.Text=lm.GetLocalizedString(this.comboItem4.Text);
				this.comboItem5.Text=lm.GetLocalizedString(this.comboItem5.Text);
				this.comboItem6.Text=lm.GetLocalizedString(this.comboItem6.Text);
				this.Text=lm.GetLocalizedString(this.Text);
			}

			this.cmdReset.Visible=m_DotNetBar.ShowResetButton;

			//If we don't run on XP use Flat Style Buttons
			// W2K and gang
//			if(Environment.OSVersion.Version.Major==5 && Environment.OSVersion.Version.Minor<1 || Environment.OSVersion.Version.Major<5)
//			{
//				this.cmdReset.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
//                this.cmdRename.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
//                this.cmdDelete.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
//                this.cmdNew.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
//                this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
//				this.cmdKeyboard.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
//				this.cmdClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
//			}

			cmdKeyboard.Visible=false;
			this.KeyPreview=true;

			if(!BarFunctions.SupportsAnimation)
			{
				cboAnimations.Visible=false;
				this.label7.Visible=false;
			}

			lstCommands.Style=m_DotNetBar.Style;
			
		}
Exemplo n.º 7
0
		private void MouseDragOver(int x, int y, DragEventArgs dragArgs)
		{
			if(!m_DragInProgress && !m_ExternalDragInProgress)
				return;
			BaseItem dragItem=m_DragItem;
			
			if(m_ExternalDragInProgress && dragArgs!=null)
				dragItem=dragArgs.Data.GetData(typeof(ButtonItem)) as BaseItem;

			if(m_DesignTimeProvider!=null)
			{
				m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition,m_InsertBefore);
				m_DesignTimeProvider=null;
			}

			if(m_ExternalDragInProgress && dragItem==null)
				return;

			Point pScreen=this.PointToScreen(new Point(x,y));
            InsertPosition pos = ((IDesignTimeProvider)m_BaseItemContainer).GetInsertPosition(pScreen, dragItem);

			if(pos!=null)
			{
                if (pos.TargetProvider == null)
                {
                    // Cursor is over drag item
                    if (!m_UseNativeDragDrop)
                    {
                        if (m_NACursor != null)
                            Cursor.Current = m_NACursor;
                        else
                            Cursor.Current = Cursors.No;
                    }
                }
                else
                {
                    pos.TargetProvider.DrawReversibleMarker(pos.Position, pos.Before);
                    m_InsertPosition = pos.Position;
                    m_InsertBefore = pos.Before;
                    m_DesignTimeProvider = pos.TargetProvider;
                    if (!m_UseNativeDragDrop)
                    {
                        if (m_MoveCursor != null)
                            Cursor.Current = m_MoveCursor;
                        else
                            Cursor.Current = Cursors.Hand;
                    }
                    else if (dragArgs != null)
                        dragArgs.Effect = DragDropEffects.Move;
                }
			}
			else
			{
				if(!m_UseNativeDragDrop)
				{
					if(m_NACursor!=null)
						Cursor.Current=m_NACursor;
					else
						Cursor.Current=Cursors.No;
				}
				else if(dragArgs!=null)
					dragArgs.Effect=DragDropEffects.None;
            }
            OnMouseDragOverProcessed(x, y, dragArgs);
		}
Exemplo n.º 8
0
		private void MouseMoveDrag(Point pScreen)
		{
			if(m_ItemDrag)
			{
				if(m_DesignTimeProvider!=null)
				{
					m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition,m_InsertBefore);
					m_DesignTimeProvider=null;
				}
				foreach(DevComponents.DotNetBar.Bar bar in m_DotNetBar.Bars)
				{
					if(!bar.Visible || !bar.AcceptDropItems)
						continue;
					InsertPosition pos=((IDesignTimeProvider)bar.ItemsContainer).GetInsertPosition(pScreen, DragItem);
					
					if(pos!=null)
					{
						if(pos.TargetProvider==null)
						{
							// Cursor is over drag item
							if(m_NACursor!=null)
								System.Windows.Forms.Cursor.Current=m_NACursor;
							else
								System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.No;
							break;
						}
						pos.TargetProvider.DrawReversibleMarker(pos.Position,pos.Before);
						m_InsertPosition=pos.Position;
						m_InsertBefore=pos.Before;
						m_DesignTimeProvider=pos.TargetProvider;
						if(m_DragCopy)
						{
							if(m_CopyCursor!=null)
								System.Windows.Forms.Cursor.Current=m_CopyCursor;
							else
								System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.Hand;
						}
						else
						{
							if(m_MoveCursor!=null)
								System.Windows.Forms.Cursor.Current=m_MoveCursor;
							else
								System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.Hand;
						}
						break;
					}
					else
					{
						if(m_NACursor!=null)
							System.Windows.Forms.Cursor.Current=m_NACursor;
						else
							System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.No;
					}
				}
			}
		}
Exemplo n.º 9
0
		private void MouseUpDrag(Point pScreen)
		{
			if(m_ItemDrag)
			{
				DestroyTimer();
				this.DragItem.InternalMouseLeave();
				if(m_DesignTimeProvider!=null)
				{
					m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition, m_InsertBefore);
					BaseItem objParent=this.DragItem.Parent;
					if(objParent!=null)
					{
						if(objParent==(BaseItem)m_DesignTimeProvider && m_InsertPosition>0)
						{
							if(objParent.SubItems.IndexOf(this.DragItem)<m_InsertPosition)
								m_InsertPosition--;
						}
						else
						{
							Bar bar=objParent.ContainerControl as Bar;
							if(bar!=null && this.DragItem.OriginalBarName=="")
								this.DragItem.OriginalBarName=bar.Name;
							else if(bar!=null && bar.Name==this.DragItem.OriginalBarName)
								this.DragItem.OriginalBarName="";
						}

						if(this.DragItem.OriginalPosition<0)
						{
							if(objParent==(BaseItem)m_DesignTimeProvider)
							{
								if(objParent.SubItems.IndexOf(this.DragItem)!=m_InsertPosition)
									this.DragItem.OriginalPosition=objParent.SubItems.IndexOf(this.DragItem);
							}
                            else
								this.DragItem.OriginalPosition=objParent.SubItems.IndexOf(this.DragItem);
						}
						else if(objParent==(BaseItem)m_DesignTimeProvider && m_InsertPosition==this.DragItem.OriginalPosition)
							this.DragItem.OriginalPosition=-1;

						objParent.SubItems.Remove(this.DragItem);
						Control ctrl=objParent.ContainerControl as Control;
						if(ctrl is Bar)
							((Bar)ctrl).RecalcLayout();
						else if(ctrl is MenuPanel)
							((MenuPanel)ctrl).RecalcSize();
					}
					else
						this.DragItem.OriginalPosition=0;
					m_DesignTimeProvider.InsertItemAt(this.DragItem,m_InsertPosition,m_InsertBefore);
					m_DesignTimeProvider=null;
					((IOwner)m_DotNetBar).InvokeUserCustomize(this.DragItem,new EventArgs());
					((IOwner)m_DotNetBar).InvokeEndUserCustomize(this.DragItem,new EndUserCustomizeEventArgs(eEndUserCustomizeAction.ItemMoved));
				}
				else if(this.DragItem.Parent!=null)
				{
					// Remove item if item is out of bounds of the main form
					Point p=pScreen;
					if(m_DotNetBar.ParentForm!=null && !m_DotNetBar.ParentForm.Bounds.Contains(p))
					{
						BaseItem objParent=this.DragItem.Parent;
						//objParent.SubItems.Remove(this.DragItem);
                        this.DragItem.UserCustomized = true; // Instead of removing hide and mark as customized so if layout is saved this gets recorded.
                        this.DragItem.Visible = false;
						Control ctrl=objParent.ContainerControl as Control;
						if(ctrl is Bar)
							((Bar)ctrl).RecalcLayout();
						else if(ctrl is MenuPanel)
							((MenuPanel)ctrl).RecalcSize();
						((IOwner)m_DotNetBar).InvokeUserCustomize(this.DragItem,new EventArgs());
                        ((IOwner)m_DotNetBar).InvokeEndUserCustomize(this.DragItem, new EndUserCustomizeEventArgs(eEndUserCustomizeAction.ItemDeleted, ctrl));
					}
				}
				m_ItemDrag=false;
				System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.Default;
				this.Capture=false;
				IOwner owner=m_DotNetBar as IOwner;
				owner.SetFocusItem(null);
			}
		}
Exemplo n.º 10
0
		private void MouseDragOver(int x, int y, DragEventArgs dragArgs)
		{
			if(!m_DragInProgress && !m_ExternalDragInProgress)
				return;
			BaseItem dragItem=m_DragItem;
			
			if(m_ExternalDragInProgress && dragArgs!=null)
				dragItem=dragArgs.Data.GetData(typeof(ButtonItem)) as BaseItem;

			if(m_DesignTimeProvider!=null)
			{
				m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition,m_InsertBefore);
				m_DesignTimeProvider=null;
			}

			if(m_ExternalDragInProgress && dragItem==null)
				return;

			Point pScreen=this.PointToScreen(new Point(x,y));
			foreach(SideBarPanelItem panel in m_BaseItemContainer.SubItems)
			{
				if(!panel.Visible)
					continue;
				InsertPosition pos=((IDesignTimeProvider)panel).GetInsertPosition(pScreen, dragItem);
				
				if(pos!=null)
				{
					if(pos.TargetProvider==null)
					{
						// Cursor is over drag item
						if(!m_UseNativeDragDrop)
						{
							if(m_NACursor!=null)
								System.Windows.Forms.Cursor.Current=m_NACursor;
							else
								System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.No;
						}
						break;
					}
					pos.TargetProvider.DrawReversibleMarker(pos.Position,pos.Before);
					m_InsertPosition=pos.Position;
					m_InsertBefore=pos.Before;
					m_DesignTimeProvider=pos.TargetProvider;
					if(!m_UseNativeDragDrop)
					{
						if(m_MoveCursor!=null)
							System.Windows.Forms.Cursor.Current=m_MoveCursor;
						else
							System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.Hand;
					}
					else if(dragArgs!=null)
						dragArgs.Effect=DragDropEffects.Move;
					break;
				}
				else
				{
					if(!m_UseNativeDragDrop)
					{
						if(m_NACursor!=null)
							System.Windows.Forms.Cursor.Current=m_NACursor;
						else
							System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.No;
					}
					else if(dragArgs!=null)
						dragArgs.Effect=DragDropEffects.None;
				}
			}
		}
Exemplo n.º 11
0
        private void DesignTimeMouseUp(MouseEventArgs e)
        {
            ISite site = GetSite();
            if (site == null)
                return;
            IComponentChangeService cc = site.GetService(typeof(IComponentChangeService)) as IComponentChangeService;

            if (m_DesignTimeProvider != null)
            {
                m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition, m_InsertBefore);
                BaseItem objParent = m_DragItem.Parent;
                if (objParent != null)
                {
                    if (objParent == (BaseItem)m_DesignTimeProvider && m_InsertPosition > 0)
                    {
                        if (objParent.SubItems.IndexOf(m_DragItem) < m_InsertPosition)
                            m_InsertPosition--;
                    }
                    if (cc != null)
                        cc.OnComponentChanging(objParent, TypeDescriptor.GetProperties(objParent)["SubItems"]);

                    objParent.SubItems.Remove(m_DragItem);

                    if (cc != null)
                        cc.OnComponentChanged(objParent, TypeDescriptor.GetProperties(objParent)["SubItems"], null, null);

                    Control ctrl = objParent.ContainerControl as Control;
                    if (ctrl is Bar)
                        ((Bar)ctrl).RecalcLayout();
                    else if (ctrl is MenuPanel)
                        ((MenuPanel)ctrl).RecalcSize();
                }

                m_DesignTimeProvider.InsertItemAt(m_DragItem, m_InsertPosition, m_InsertBefore);

                m_DesignTimeProvider = null;

            }
            m_DragDropDesignTimeProvider = null;
            m_DragItem = null;
            m_DragDropInProgress = false;
            this.Capture = false;
        }
Exemplo n.º 12
0
        private void DesignTimeMouseMove(MouseEventArgs e)
        {
            if (m_DragDropInProgress)
            {
                try
                {
                    if (m_DesignTimeProvider != null)
                    {
                        m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition, m_InsertBefore);
                        m_DesignTimeProvider = null;
                    }

                    InsertPosition pos = m_DragDropDesignTimeProvider.GetInsertPosition(Control.MousePosition, m_DragItem);
                    if (pos != null)
                    {
                        if (pos.TargetProvider == null)
                        {
                            // Cursor is over drag item
                            System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.No;
                        }
                        else
                        {
                            pos.TargetProvider.DrawReversibleMarker(pos.Position, pos.Before);
                            m_InsertPosition = pos.Position;
                            m_InsertBefore = pos.Before;
                            m_DesignTimeProvider = pos.TargetProvider;
                            System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Hand;
                        }
                    }
                    else
                    {
                        System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.No;
                    }
                }
                catch
                {
                    m_DesignTimeProvider = null;
                }
            }
            else
            {
                if (m_Owner is IOwner)
                    m_DragItem = ((IOwner)m_Owner).GetFocusItem();
                if (m_DragItem != null)
                {
                    // Get top level design-time provider
                    BaseItem item = m_ParentItem;
                    while (item.Parent is IDesignTimeProvider)
                        item = item.Parent;
                    m_DragDropDesignTimeProvider = (IDesignTimeProvider)item;

                    m_DragDropInProgress = true;
                    this.Capture = true;
                }
            }
        }
Exemplo n.º 13
0
        private void DesignTimeMouseMove(MouseEventArgs e)
        {
            if (m_DragDropInProgress)
            {
                try
                {
                    if (m_DesignTimeProvider != null)
                    {
                        m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition, m_InsertBefore);
                        m_DesignTimeProvider = null;
                    }
                    InsertPosition pos = m_DragDropDesignTimeProvider.GetInsertPosition(Control.MousePosition, m_DragItem);
                    
                    if (pos != null)
                    {
                        if (pos.TargetProvider == null)
                        {
                            // Cursor is over drag item
                            System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.No;
                        }
                        else
                        {
                            pos.TargetProvider.DrawReversibleMarker(pos.Position, pos.Before);
                            m_InsertPosition = pos.Position;
                            m_InsertBefore = pos.Before;
                            m_DesignTimeProvider = pos.TargetProvider;
                            System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Hand;
                        }
                    }
                    else
                    {
                        System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.No;
                    }
                }
                catch
                {
                    m_DesignTimeProvider = null;
                }
            }
            else
            {
                // Get top level design-time provider
                BaseItem item = m_ParentItem;
                while (item.Parent is IDesignTimeProvider)
                    item = item.Parent;

                ISite site = GetSite();
                if (site != null && item.ContainerControl!=null)
                {
                    IDesignerHost dh = site.GetService(typeof(IDesignerHost)) as IDesignerHost;
                    if (dh != null)
                    {
                        Control c = item.ContainerControl as Control;
                        if (c is RibbonStrip && c.Site == null && c.Parent is RibbonControl)
                            c = c.Parent;
                        IBarItemDesigner designer = dh.GetDesigner(c) as IBarItemDesigner;
                        if (designer != null)
                        {
                            designer.StartExternalDrag(this.FocusedItem());
                            return;
                        }
                    }
                }
                
                m_DragDropDesignTimeProvider = (IDesignTimeProvider)item;
                m_DragItem = this.FocusedItem();
                m_DragDropInProgress = true;
                this.Capture = true;
            }
        }
Exemplo n.º 14
0
		private void MouseDragDrop(int x, int y, DragEventArgs dragArgs)
		{
			if(!m_DragInProgress && !m_ExternalDragInProgress)
				return;
			BaseItem dragItem=m_DragItem;
			if(m_ExternalDragInProgress)
				dragItem=dragArgs.Data.GetData(typeof(ButtonItem)) as BaseItem;

			if(dragItem!=null)
				dragItem.InternalMouseLeave();

			if(m_DesignTimeProvider!=null)
			{
				if(x==-1 && y==-1)
				{
					// Cancel state
					m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition, m_InsertBefore);
				}
				else
				{
					m_DesignTimeProvider.DrawReversibleMarker(m_InsertPosition, m_InsertBefore);
					if(dragItem!=null)
					{
						BaseItem objParent=dragItem.Parent;
						if(objParent!=null)
						{
							if(objParent==(BaseItem)m_DesignTimeProvider && m_InsertPosition>0)
							{
								if(objParent.SubItems.IndexOf(dragItem)<m_InsertPosition)
									m_InsertPosition--;
							}
							objParent.SubItems.Remove(dragItem);
							Control ctrl=objParent.ContainerControl as Control;
							objParent.Refresh();
						}
						m_DesignTimeProvider.InsertItemAt(dragItem,m_InsertPosition,m_InsertBefore);
						m_DesignTimeProvider=null;
						((IOwner)this).InvokeUserCustomize(dragItem,new EventArgs());
					}
				}
			}
			m_DesignTimeProvider=null;
			m_DragInProgress=false;
			m_ExternalDragInProgress=false;
			if(!m_UseNativeDragDrop)
				System.Windows.Forms.Cursor.Current=System.Windows.Forms.Cursors.Default;
			this.Capture=false;
			if(dragItem!=null)
				dragItem._IgnoreClick=true;
			m_ItemContainer.InternalMouseUp(new MouseEventArgs(MouseButtons.Left,0,x,y,0));
			if(dragItem!=null)
				dragItem._IgnoreClick=false;

			m_DragItem=null;
		}