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
- LinqDataSourceUpdateEventArgs.cs
- BasicExpressionVisitor.cs
- TextTrailingCharacterEllipsis.cs
- DictionaryChange.cs
- IIS7UserPrincipal.cs
- LocationInfo.cs
- PropertyKey.cs
- OdbcConnectionPoolProviderInfo.cs
- Internal.cs
- ValueProviderWrapper.cs
- RadioButtonFlatAdapter.cs
- DateTimeFormat.cs
- ToolStripInSituService.cs
- RecognizerBase.cs
- UriTemplateLiteralQueryValue.cs
- FormsAuthenticationConfiguration.cs
- WindowsFormsSynchronizationContext.cs
- FlowDocumentPageViewerAutomationPeer.cs
- Aggregates.cs
- ClientSettingsProvider.cs
- XPathNavigatorException.cs
- XsltArgumentList.cs
- TimeEnumHelper.cs
- Bezier.cs
- TabControl.cs
- WhiteSpaceTrimStringConverter.cs
- ConfigurationLocationCollection.cs
- ConditionedDesigner.cs
- SwitchExpression.cs
- CheckBox.cs
- XPathNodeInfoAtom.cs
- OdbcParameterCollection.cs
- XmlElementCollection.cs
- CollectionContainer.cs
- XmlSchemaValidator.cs
- CollectionBuilder.cs
- EntityDataSourceState.cs
- Error.cs
- ISAPIRuntime.cs
- XmlAutoDetectWriter.cs
- TypeUsageBuilder.cs
- RuntimeEnvironment.cs
- SecurityPolicySection.cs
- EntityCommandExecutionException.cs
- ObjectComplexPropertyMapping.cs
- AutoGeneratedField.cs
- QuaternionAnimation.cs
- DefaultDiscoveryServiceExtension.cs
- NavigateEvent.cs
- AuthenticationException.cs
- AndMessageFilter.cs
- XmlElementAttributes.cs
- MailBnfHelper.cs
- ProcessThreadDesigner.cs
- XsdDataContractExporter.cs
- SQLResource.cs
- DomainUpDown.cs
- UriWriter.cs
- ModifyActivitiesPropertyDescriptor.cs
- CodeNamespaceImport.cs
- RightsManagementLicense.cs
- EventQueueState.cs
- ColorMap.cs
- ContactManager.cs
- ObjectPersistData.cs
- MetadataImporter.cs
- MessagePartDescriptionCollection.cs
- PDBReader.cs
- CommandField.cs
- XmlIterators.cs
- Int16AnimationBase.cs
- XmlWrappingReader.cs
- StringTraceRecord.cs
- PropertyIDSet.cs
- BinaryMessageEncoder.cs
- HTMLTextWriter.cs
- DataGridItemEventArgs.cs
- CursorInteropHelper.cs
- ValueUtilsSmi.cs
- PackageFilter.cs
- VectorAnimationUsingKeyFrames.cs
- TextElement.cs
- InstallerTypeAttribute.cs
- Oid.cs
- TextureBrush.cs
- ButtonBase.cs
- serverconfig.cs
- DefaultEventAttribute.cs
- RuntimeConfig.cs
- WSSecureConversationFeb2005.cs
- PackageRelationshipCollection.cs
- Lock.cs
- DbConnectionInternal.cs
- XmlUtilWriter.cs
- followingsibling.cs
- EntityCommand.cs
- CommandEventArgs.cs
- BooleanAnimationBase.cs
- TimeSpanValidator.cs
- CapabilitiesUse.cs