protected override void OnShowSmartTagVerbs(Point smartTagPoint)
        {
            if (this.itemPalette == null)
            {
                this.itemPalette = new ItemPalette();
                this.itemPalette.Closed += new EventHandler(OnPaletteClosed);
                this.itemPalette.SelectionChanged += new SelectionChangeEventHandler<SelectionChangeEventArgs>(OnSmartAction);
            }

            //we need to update the font every time the menu is shown
            this.itemPalette.SetFont(WorkflowTheme.CurrentTheme.AmbientTheme.Font);

            this.itemPalette.Items.Clear();

            foreach (ActivityDesignerVerb smartVerb in SmartTagVerbs)
            {
                Image image = smartVerb.Properties[DesignerUserDataKeys.Image] as Image;
                ItemInfo smartVerbItem = new ItemInfo(smartVerb.Id, image, smartVerb.Text);
                smartVerbItem.UserData[DesignerUserDataKeys.DesignerVerb] = smartVerb;
                this.itemPalette.Items.Add(smartVerbItem);
            }

            Point location = PointToScreen(smartTagPoint);
            this.itemPalette.Show(location);
        }
        public Rectangle GetItemBounds(ItemInfo itemInfo)
        {
            int itemIndex = this.items.IndexOf(itemInfo);
            if (itemIndex < 0 || itemIndex < this.scrollPosition || itemIndex >= this.scrollPosition + MaxVisibleItems)
                return Rectangle.Empty;

            Rectangle itemRectangle = Rectangle.Empty;
            itemIndex = itemIndex - this.scrollPosition;

            if (this.orientation == Orientation.Horizontal)
            {
                itemRectangle.X = bounds.Left + (itemIndex * this.itemSize.Width) + ((itemIndex + 1) * this.margin.Width);
                itemRectangle.Y = bounds.Top + this.margin.Height;
            }
            else
            {
                itemRectangle.X = bounds.Left + this.margin.Width;
                itemRectangle.Y = bounds.Top + (itemIndex * this.itemSize.Height) + ((itemIndex + 1) * this.margin.Height);
            }

            itemRectangle.Size = this.itemSize;
            return itemRectangle;
        }
 public SelectionChangeEventArgs(ItemInfo previousItem, ItemInfo currentItem)
 {
     this.previousItem = previousItem;
     this.currentItem = currentItem;
 }
        private Rectangle GetTabTextRectangle(ItemInfo tabItemInfo)
        {
            int index = this.tabItemList.IndexOf(tabItemInfo);
            if (index < 0)
                throw new ArgumentException(DR.GetString(DR.ButtonInformationMissing));

            Rectangle textRectangle = Rectangle.Empty;
            if (tabItemInfo.Text != null && this.drawItems.Length == this.tabItemList.Count)
            {
                textRectangle = this.drawItems[index].TabItemRectangle;
                textRectangle.Inflate(-TabMargin, -TabMargin);

                Rectangle imageRectangle = GetTabImageRectangle(tabItemInfo);
                if (!imageRectangle.IsEmpty)
                {
                    if (this.orientation == Orientation.Horizontal)
                    {
                        textRectangle.X += imageRectangle.Width + TabMargin;
                        textRectangle.Width -= (imageRectangle.Width + TabMargin);
                    }
                    else
                    {
                        textRectangle.Y += imageRectangle.Height + TabMargin;
                        textRectangle.Height -= (imageRectangle.Height + TabMargin);
                    }
                }

                if (textRectangle.Width <= 0 || textRectangle.Height <= 0)
                    textRectangle = Rectangle.Empty;
            }

            return textRectangle;
        }
        public Rectangle GetItemBounds(ItemInfo itemInfo)
        {
            int itemIndex = this.items.IndexOf(itemInfo);
            if (itemIndex < 0)
                return Rectangle.Empty;

            if (itemIndex < this.scrollMarker || itemIndex >= this.scrollMarker + VisibleItemCount)
                return Rectangle.Empty;

            Rectangle stripRectangle = StripRectangle;
            Rectangle itemRectangle = Rectangle.Empty;

            Size itemMargin = ItemMargin;
            Size itemSize = ItemSize;

            itemIndex = itemIndex - this.scrollMarker;
            itemRectangle.X = stripRectangle.Left + (itemIndex * itemSize.Width) + ((itemIndex + 1) * itemMargin.Width);
            itemRectangle.Y = stripRectangle.Top + itemMargin.Height;
            itemRectangle.Size = itemSize;
            return itemRectangle;
        }
        private Rectangle GetTabItemRectangle(ItemInfo tabItemInfo)
        {
            int index = this.tabItemList.IndexOf(tabItemInfo);
            if (index < 0)
                throw new ArgumentException(DR.GetString(DR.ButtonInformationMissing));

            if (this.drawItems.Length == this.tabItemList.Count)
                return this.drawItems[index].TabItemRectangle;
            else
                return Rectangle.Empty;
        }
        private Rectangle GetTabImageRectangle(ItemInfo tabItemInfo)
        {
            int index = this.tabItemList.IndexOf(tabItemInfo);
            if (index < 0)
                throw new ArgumentException(DR.GetString(DR.ButtonInformationMissing));

            Rectangle imageRectangle = Rectangle.Empty;
            if (tabItemInfo.Image != null && this.drawItems.Length == this.tabItemList.Count)
            {
                imageRectangle = this.drawItems[index].TabItemRectangle;
                imageRectangle.Inflate(-TabMargin, -TabMargin);
                imageRectangle.Size = new Size(this.reqTabItemSize - 2 * TabMargin, this.reqTabItemSize - 2 * TabMargin);
            }

            return imageRectangle;
        }
 internal StripItemConfigErrorGlyph(ActivityPreviewDesigner parentDesigner, ItemInfo item)
 {
     this.parentDesigner = parentDesigner;
     this.item = item;
     Debug.Assert(item.UserData[DesignerUserDataKeys.Activity] is Activity);
 }
 public TabSelectionChangeEventArgs(ItemInfo previousItem, ItemInfo currentItem, Rectangle selectedTabBounds)
     : base(previousItem, currentItem)
 {
     this.selectedTabBounds = selectedTabBounds;
 }
 internal StripItemCommentGlyph(ActivityPreviewDesigner parentDesigner, ItemInfo item)
 {
     this.parentDesigner = parentDesigner;
     this.item = item;
 }
        protected override void OnContainedActivitiesChanged(ActivityCollectionChangeEventArgs listChangeArgs)
        {
            if (ActiveDesigner == this)
            {
                if (listChangeArgs.Action == ActivityCollectionChangeAction.Add && listChangeArgs.AddedItems.Count > 0 && !Helpers.IsAlternateFlowActivity(listChangeArgs.AddedItems[0]))
                {
                    ItemInfo itemToAdd = new ItemInfo(listChangeArgs.AddedItems[0].GetHashCode());
                    itemToAdd.UserData[DesignerUserDataKeys.Activity] = listChangeArgs.AddedItems[0];
                    if (listChangeArgs.Index < this.previewStrip.Items.Count)
                        this.previewStrip.Items.Insert(listChangeArgs.Index, itemToAdd);
                    else
                        this.previewStrip.Items.Add(itemToAdd);
                }
                else if (listChangeArgs.Action == ActivityCollectionChangeAction.Remove && listChangeArgs.RemovedItems.Count > 0)
                {
                    int index = this.previewStrip.Items.IndexOf(new ItemInfo(listChangeArgs.RemovedItems[0].GetHashCode()));
                    if (index >= 0)
                        this.previewStrip.Items.RemoveAt(index);
                }
            }

            base.OnContainedActivitiesChanged(listChangeArgs);
        }
        protected override void Initialize(Activity activity)
        {
            base.Initialize(activity);

            ShowPreview = true;

            CompositeActivity compositeActivity = Activity as CompositeActivity;
            if (compositeActivity != null)
            {
                foreach (Activity containedActivity in compositeActivity.Activities)
                {
                    if (!Helpers.IsAlternateFlowActivity(containedActivity))
                    {
                        ItemInfo stripItem = new ItemInfo(containedActivity.GetHashCode());
                        stripItem.UserData[DesignerUserDataKeys.Activity] = containedActivity;
                        this.previewStrip.Items.Add(stripItem);
                    }
                }
            }

            //Start listening to selection change event
            ISelectionService selectionService = GetService(typeof(ISelectionService)) as ISelectionService;
            if (selectionService != null)
                selectionService.SelectionChanged += new EventHandler(OnSelectionChanged);
        }
Exemplo n.º 13
0
 internal StripItemConfigErrorGlyph(ActivityPreviewDesigner parentDesigner, ItemInfo item)
 {
     this.parentDesigner = parentDesigner;
     this.item           = item;
     Debug.Assert(item.UserData[DesignerUserDataKeys.Activity] is Activity);
 }
Exemplo n.º 14
0
 internal StripItemCommentGlyph(ActivityPreviewDesigner parentDesigner, ItemInfo item)
 {
     this.parentDesigner = parentDesigner;
     this.item           = item;
 }