Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / Behavior / SelectionBorderGlyph.cs / 1 / SelectionBorderGlyph.cs
namespace System.Windows.Forms.Design.Behavior { using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Design; using System.Diagnostics; using System.Drawing; using System.Windows.Forms.Design; ////// /// The SelectionBorderGlyph draws one side (depending on type) of a SelectionBorder. /// internal class SelectionBorderGlyph : SelectionGlyphBase { ////// /// This constructor extends from the standard SelectionGlyphBase constructor. /// internal SelectionBorderGlyph(Rectangle controlBounds, SelectionRules rules, SelectionBorderGlyphType type, Behavior behavior) : base(behavior) { InitializeGlyph(controlBounds, rules, type); } ////// Helper function that initializes the Glyph based on bounds, type, and bordersize. /// private void InitializeGlyph(Rectangle controlBounds, SelectionRules selRules, SelectionBorderGlyphType type) { rules = SelectionRules.None; hitTestCursor = Cursors.Default; //this will return the rect representing the bounds of the glyph bounds = DesignerUtils.GetBoundsForSelectionType(controlBounds, type); hitBounds = bounds; // The hitbounds for the border is actually a bit bigger than the glyph bounds switch (type) { case SelectionBorderGlyphType.Top: if ((selRules & SelectionRules.TopSizeable) != 0) { hitTestCursor = Cursors.SizeNS; rules = SelectionRules.TopSizeable; } // We want to apply the SELECTIONBORDERHITAREA to the top and the bottom of the selection border glyph hitBounds.Y -= (DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE) / 2; hitBounds.Height += DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE; break; case SelectionBorderGlyphType.Bottom: if ((selRules & SelectionRules.BottomSizeable) != 0) { hitTestCursor = Cursors.SizeNS; rules = SelectionRules.BottomSizeable; } // We want to apply the SELECTIONBORDERHITAREA to the top and the bottom of the selection border glyph hitBounds.Y -= (DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE) / 2; hitBounds.Height += DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE; break; case SelectionBorderGlyphType.Left: if ((selRules & SelectionRules.LeftSizeable) != 0) { hitTestCursor = Cursors.SizeWE; rules = SelectionRules.LeftSizeable; } // We want to apply the SELECTIONBORDERHITAREA to the left and the right of the selection border glyph hitBounds.X -= (DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE) / 2; hitBounds.Width += DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE; break; case SelectionBorderGlyphType.Right: if ((selRules & SelectionRules.RightSizeable) != 0) { hitTestCursor = Cursors.SizeWE; rules = SelectionRules.RightSizeable; } // We want to apply the SELECTIONBORDERHITAREA to the left and the right of the selection border glyph hitBounds.X -= (DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE) / 2; hitBounds.Width += DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE; break; } } ////// /// Simple painting logic for selection Glyphs. /// public override void Paint(PaintEventArgs pe) { DesignerUtils.DrawSelectionBorder(pe.Graphics, bounds); } } } // 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
- PKCS1MaskGenerationMethod.cs
- XmlLoader.cs
- DataStreamFromComStream.cs
- TimestampInformation.cs
- XamlFxTrace.cs
- Switch.cs
- FixedNode.cs
- MobileCategoryAttribute.cs
- Hex.cs
- TypedRowHandler.cs
- ReadOnlyCollection.cs
- HandleRef.cs
- MetadataItemCollectionFactory.cs
- LongTypeConverter.cs
- RelationshipNavigation.cs
- XmlDocument.cs
- prompt.cs
- PageScaling.cs
- ContentPathSegment.cs
- LogEntry.cs
- ReadOnlyObservableCollection.cs
- DocumentSchemaValidator.cs
- DataGridrowEditEndingEventArgs.cs
- TableParagraph.cs
- ToolStripItemImageRenderEventArgs.cs
- Geometry.cs
- SignatureToken.cs
- SignatureHelper.cs
- EventLogInternal.cs
- SQLGuid.cs
- SynchronizationContext.cs
- SystemException.cs
- GeneralTransform3DGroup.cs
- Block.cs
- ClonableStack.cs
- ToolStripDropDownClosedEventArgs.cs
- TileBrush.cs
- CatalogPartCollection.cs
- DataSourceHelper.cs
- QuerySettings.cs
- ClientFormsIdentity.cs
- ColumnMapVisitor.cs
- CalendarDay.cs
- SID.cs
- CryptoHelper.cs
- BorderGapMaskConverter.cs
- ConfigurationErrorsException.cs
- SpecialFolderEnumConverter.cs
- XmlQueryStaticData.cs
- HashAlgorithm.cs
- XsltOutput.cs
- DrawingVisualDrawingContext.cs
- TimeIntervalCollection.cs
- PageClientProxyGenerator.cs
- BehaviorEditorPart.cs
- ServicePoint.cs
- DateBoldEvent.cs
- Rect3DValueSerializer.cs
- ListItemsPage.cs
- SystemFonts.cs
- StreamingContext.cs
- RemoteWebConfigurationHostServer.cs
- Effect.cs
- CacheMode.cs
- TransportContext.cs
- SafeMILHandleMemoryPressure.cs
- ImpersonationContext.cs
- SmiContextFactory.cs
- ColorMatrix.cs
- SafeNativeMethodsOther.cs
- DataGridState.cs
- StylusPointProperties.cs
- UpdateExpressionVisitor.cs
- GraphicsPath.cs
- AssemblySettingAttributes.cs
- loginstatus.cs
- BuilderInfo.cs
- SystemIPGlobalStatistics.cs
- FormsAuthenticationUser.cs
- InsufficientExecutionStackException.cs
- LinkDescriptor.cs
- IPGlobalProperties.cs
- regiisutil.cs
- IntranetCredentialPolicy.cs
- DES.cs
- Brush.cs
- TextContainerChangeEventArgs.cs
- Hashtable.cs
- UIElementPropertyUndoUnit.cs
- ElasticEase.cs
- WinCategoryAttribute.cs
- MappingSource.cs
- DocumentOutline.cs
- TrustManagerPromptUI.cs
- Overlapped.cs
- RegexWorker.cs
- Section.cs
- EntityContainerEmitter.cs
- XamlTemplateSerializer.cs
- PropertyPath.cs