Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Design / Glyphs / SelectionGlyph.cs / 1305376 / SelectionGlyph.cs
namespace System.Workflow.ComponentModel.Design { using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; #region Glyphs #region Class SelectionGlyph public abstract class SelectionGlyph : DesignerGlyph { public override Rectangle GetBounds(ActivityDesigner designer, bool activated) { if (designer == null) throw new ArgumentNullException("designer"); Rectangle rectangle = designer.Bounds; rectangle.Inflate(WorkflowTheme.CurrentTheme.AmbientTheme.SelectionSize.Width / 2, WorkflowTheme.CurrentTheme.AmbientTheme.SelectionSize.Height / 2); return rectangle; } protected override void OnPaint(Graphics graphics, bool activated, AmbientTheme ambientTheme, ActivityDesigner designer) { ActivityDesignerPaint.DrawSelection(graphics, GetBounds(designer, activated), IsPrimarySelection, WorkflowTheme.CurrentTheme.AmbientTheme.SelectionSize, GetGrabHandles(designer)); } public override int Priority { get { return DesignerGlyph.SelectionPriority; } } public abstract bool IsPrimarySelection { get;} public virtual Rectangle[] GetGrabHandles(ActivityDesigner designer) { Size selectionSize = WorkflowTheme.CurrentTheme.AmbientTheme.SelectionSize; Size grabHandleSize = new Size(selectionSize.Width, selectionSize.Height); Rectangle selectionRect = GetBounds(designer, false); selectionRect.Inflate(selectionSize.Width, selectionSize.Height); //we need grab handles only in case this activity is an immediate child of a free-form activity //otherwise, no grab handles ActivityDesigner parentDesigner = designer.ParentDesigner; Rectangle[] grabHandles = null; if (parentDesigner != null && parentDesigner is FreeformActivityDesigner) { grabHandles = new Rectangle[8]; grabHandles[0] = new Rectangle(selectionRect.Location, grabHandleSize); grabHandles[1] = new Rectangle(new Point(selectionRect.Left + (selectionRect.Width - grabHandleSize.Width) / 2, selectionRect.Top), grabHandleSize); grabHandles[2] = new Rectangle(selectionRect.Right - grabHandleSize.Width, selectionRect.Top, grabHandleSize.Width, grabHandleSize.Height); grabHandles[3] = new Rectangle(new Point(selectionRect.Right - grabHandleSize.Width, selectionRect.Top + (selectionRect.Height - grabHandleSize.Height) / 2), grabHandleSize); grabHandles[4] = new Rectangle(selectionRect.Right - grabHandleSize.Width, selectionRect.Bottom - grabHandleSize.Height, grabHandleSize.Width, grabHandleSize.Height); grabHandles[5] = new Rectangle(new Point(selectionRect.Left + (selectionRect.Width - grabHandleSize.Width) / 2, selectionRect.Bottom - grabHandleSize.Height), grabHandleSize); grabHandles[6] = new Rectangle(selectionRect.Left, selectionRect.Bottom - grabHandleSize.Height, grabHandleSize.Width, grabHandleSize.Height); grabHandles[7] = new Rectangle(new Point(selectionRect.Left, selectionRect.Top + (selectionRect.Height - grabHandleSize.Height) / 2), grabHandleSize); return grabHandles; } else { grabHandles = new Rectangle[1]; grabHandles[0] = new Rectangle(selectionRect.Location, grabHandleSize); } return grabHandles; } } #endregion #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Workflow.ComponentModel.Design { using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; #region Glyphs #region Class SelectionGlyph public abstract class SelectionGlyph : DesignerGlyph { public override Rectangle GetBounds(ActivityDesigner designer, bool activated) { if (designer == null) throw new ArgumentNullException("designer"); Rectangle rectangle = designer.Bounds; rectangle.Inflate(WorkflowTheme.CurrentTheme.AmbientTheme.SelectionSize.Width / 2, WorkflowTheme.CurrentTheme.AmbientTheme.SelectionSize.Height / 2); return rectangle; } protected override void OnPaint(Graphics graphics, bool activated, AmbientTheme ambientTheme, ActivityDesigner designer) { ActivityDesignerPaint.DrawSelection(graphics, GetBounds(designer, activated), IsPrimarySelection, WorkflowTheme.CurrentTheme.AmbientTheme.SelectionSize, GetGrabHandles(designer)); } public override int Priority { get { return DesignerGlyph.SelectionPriority; } } public abstract bool IsPrimarySelection { get;} public virtual Rectangle[] GetGrabHandles(ActivityDesigner designer) { Size selectionSize = WorkflowTheme.CurrentTheme.AmbientTheme.SelectionSize; Size grabHandleSize = new Size(selectionSize.Width, selectionSize.Height); Rectangle selectionRect = GetBounds(designer, false); selectionRect.Inflate(selectionSize.Width, selectionSize.Height); //we need grab handles only in case this activity is an immediate child of a free-form activity //otherwise, no grab handles ActivityDesigner parentDesigner = designer.ParentDesigner; Rectangle[] grabHandles = null; if (parentDesigner != null && parentDesigner is FreeformActivityDesigner) { grabHandles = new Rectangle[8]; grabHandles[0] = new Rectangle(selectionRect.Location, grabHandleSize); grabHandles[1] = new Rectangle(new Point(selectionRect.Left + (selectionRect.Width - grabHandleSize.Width) / 2, selectionRect.Top), grabHandleSize); grabHandles[2] = new Rectangle(selectionRect.Right - grabHandleSize.Width, selectionRect.Top, grabHandleSize.Width, grabHandleSize.Height); grabHandles[3] = new Rectangle(new Point(selectionRect.Right - grabHandleSize.Width, selectionRect.Top + (selectionRect.Height - grabHandleSize.Height) / 2), grabHandleSize); grabHandles[4] = new Rectangle(selectionRect.Right - grabHandleSize.Width, selectionRect.Bottom - grabHandleSize.Height, grabHandleSize.Width, grabHandleSize.Height); grabHandles[5] = new Rectangle(new Point(selectionRect.Left + (selectionRect.Width - grabHandleSize.Width) / 2, selectionRect.Bottom - grabHandleSize.Height), grabHandleSize); grabHandles[6] = new Rectangle(selectionRect.Left, selectionRect.Bottom - grabHandleSize.Height, grabHandleSize.Width, grabHandleSize.Height); grabHandles[7] = new Rectangle(new Point(selectionRect.Left, selectionRect.Top + (selectionRect.Height - grabHandleSize.Height) / 2), grabHandleSize); return grabHandles; } else { grabHandles = new Rectangle[1]; grabHandles[0] = new Rectangle(selectionRect.Location, grabHandleSize); } return grabHandles; } } #endregion #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SecurityChannelFactory.cs
- EpmSyndicationContentSerializer.cs
- SessionStateModule.cs
- XmlDictionaryString.cs
- ConfigXmlComment.cs
- FormsAuthenticationUserCollection.cs
- ResourceCodeDomSerializer.cs
- TopClause.cs
- ISO2022Encoding.cs
- ResourceReferenceExpressionConverter.cs
- LinkTarget.cs
- Helper.cs
- sqlinternaltransaction.cs
- FileLogRecordHeader.cs
- DecimalAnimationBase.cs
- Point4DValueSerializer.cs
- ProfileGroupSettingsCollection.cs
- ObjectContext.cs
- PropertyPathWorker.cs
- FixedHyperLink.cs
- ArrayList.cs
- ComponentChangedEvent.cs
- BitmapCache.cs
- ParseHttpDate.cs
- DbConnectionHelper.cs
- InvalidEnumArgumentException.cs
- ExceptionUtil.cs
- SqlMultiplexer.cs
- ContentPlaceHolder.cs
- IEnumerable.cs
- ContractUtils.cs
- XXXInfos.cs
- OleDbTransaction.cs
- WeakHashtable.cs
- ThreadStaticAttribute.cs
- MulticastOption.cs
- SafePEFileHandle.cs
- EntityKey.cs
- PreProcessor.cs
- ToolZone.cs
- X509UI.cs
- ValidationError.cs
- DataTableTypeConverter.cs
- WebPartExportVerb.cs
- EntityDataSourceView.cs
- TransformGroup.cs
- StorageInfo.cs
- MiniMapControl.xaml.cs
- UnsafeNativeMethods.cs
- UrlAuthorizationModule.cs
- Sql8ConformanceChecker.cs
- SoapSchemaImporter.cs
- HyperLinkStyle.cs
- MetabaseReader.cs
- ListViewDeleteEventArgs.cs
- XmlSchemaAnnotated.cs
- Native.cs
- CssTextWriter.cs
- Control.cs
- TextDocumentView.cs
- InputBinder.cs
- ListViewTableCell.cs
- PolicyStatement.cs
- CssTextWriter.cs
- _FixedSizeReader.cs
- ScriptReferenceBase.cs
- ExceptionHelpers.cs
- ContentIterators.cs
- ScriptDescriptor.cs
- NominalTypeEliminator.cs
- LineGeometry.cs
- DataControlCommands.cs
- WebZone.cs
- _NestedSingleAsyncResult.cs
- XmlILIndex.cs
- VisualTreeUtils.cs
- RtfToXamlReader.cs
- FontFamily.cs
- TCPListener.cs
- PerformanceCounterPermission.cs
- FrameworkElementFactory.cs
- InlineObject.cs
- Site.cs
- Popup.cs
- NodeLabelEditEvent.cs
- DataKeyCollection.cs
- EventProviderWriter.cs
- ConfigurationSectionCollection.cs
- SmtpCommands.cs
- SqlError.cs
- GroupedContextMenuStrip.cs
- CopyNamespacesAction.cs
- SettingsProperty.cs
- HotSpotCollection.cs
- DtrList.cs
- DrawingGroup.cs
- _TLSstream.cs
- PagesChangedEventArgs.cs
- ConfigurationLocationCollection.cs
- SerializationInfo.cs