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
- CopyAttributesAction.cs
- HwndSubclass.cs
- MergeFilterQuery.cs
- DesignerHost.cs
- WindowsListViewItemStartMenu.cs
- ArgumentNullException.cs
- WriteFileContext.cs
- ConversionHelper.cs
- DbDataAdapter.cs
- ConfigurationStrings.cs
- IdentifierService.cs
- SecurityHeaderLayout.cs
- EntityTemplateUserControl.cs
- DataControlFieldHeaderCell.cs
- ContentDesigner.cs
- EntitySet.cs
- ImageFormatConverter.cs
- PublishLicense.cs
- BinaryFormatter.cs
- KeyToListMap.cs
- SettingsBindableAttribute.cs
- RequestNavigateEventArgs.cs
- NonVisualControlAttribute.cs
- XPathAncestorQuery.cs
- SplitContainer.cs
- ValueExpressions.cs
- Int16AnimationUsingKeyFrames.cs
- EventMappingSettingsCollection.cs
- SchemeSettingElementCollection.cs
- AnnotationResourceCollection.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- FaultBookmark.cs
- FileSystemWatcher.cs
- IResourceProvider.cs
- CheckBoxFlatAdapter.cs
- EntityUtil.cs
- MarshalByValueComponent.cs
- DataServiceRequestOfT.cs
- WorkflowElementDialog.cs
- HashCoreRequest.cs
- WebAdminConfigurationHelper.cs
- AsyncResult.cs
- HtmlShimManager.cs
- Menu.cs
- JoinElimination.cs
- OutputWindow.cs
- ObjectQueryExecutionPlan.cs
- JpegBitmapDecoder.cs
- VisualTarget.cs
- DefaultValueConverter.cs
- TraceContextRecord.cs
- ActivationArguments.cs
- SamlConditions.cs
- EntityDataSourceDesigner.cs
- BasicCellRelation.cs
- TCEAdapterGenerator.cs
- BackgroundFormatInfo.cs
- DbUpdateCommandTree.cs
- ByteAnimationUsingKeyFrames.cs
- SystemIPInterfaceProperties.cs
- PasswordTextNavigator.cs
- UpdateCommand.cs
- OletxEnlistment.cs
- RegexCompiler.cs
- DLinqColumnProvider.cs
- sitestring.cs
- ReadOnlyDictionary.cs
- DataControlLinkButton.cs
- _CacheStreams.cs
- SaveFileDialog.cs
- WebPartMenu.cs
- CheckBox.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- isolationinterop.cs
- IdentifierCreationService.cs
- XmlDataImplementation.cs
- NotifyParentPropertyAttribute.cs
- List.cs
- XmlTextEncoder.cs
- ListBox.cs
- configsystem.cs
- _AuthenticationState.cs
- Stroke2.cs
- XAMLParseException.cs
- _ConnectOverlappedAsyncResult.cs
- Processor.cs
- ContentPosition.cs
- Span.cs
- LinqDataSourceUpdateEventArgs.cs
- StoreItemCollection.Loader.cs
- ObjectContext.cs
- bindurihelper.cs
- WebAdminConfigurationHelper.cs
- HtmlLiteralTextAdapter.cs
- MethodCallTranslator.cs
- AsyncOperationManager.cs
- FileSystemInfo.cs
- ClientEventManager.cs
- SqlParameter.cs
- BufferedGraphicsManager.cs