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
- DecimalConverter.cs
- BindingSource.cs
- SafeCoTaskMem.cs
- InternalConfigEventArgs.cs
- SR.cs
- FileClassifier.cs
- DelegatingTypeDescriptionProvider.cs
- QueueProcessor.cs
- PropertyTabChangedEvent.cs
- Converter.cs
- PrintPreviewGraphics.cs
- PrintEvent.cs
- ServiceOperation.cs
- RelatedImageListAttribute.cs
- EntityException.cs
- SetterBaseCollection.cs
- DesignTableCollection.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- FunctionMappingTranslator.cs
- SqlXmlStorage.cs
- BitVector32.cs
- ArglessEventHandlerProxy.cs
- DesignColumnCollection.cs
- ClassHandlersStore.cs
- OracleSqlParser.cs
- MembershipAdapter.cs
- AppDomainFactory.cs
- XPathExpr.cs
- _StreamFramer.cs
- XsltArgumentList.cs
- ConsumerConnectionPointCollection.cs
- QilSortKey.cs
- ContextMenuStrip.cs
- OdbcConnectionStringbuilder.cs
- Baml6Assembly.cs
- PeerName.cs
- Nullable.cs
- StringStorage.cs
- Point3DCollection.cs
- ArraySortHelper.cs
- CustomAttributeFormatException.cs
- XmlSchemaAnnotation.cs
- OutputScope.cs
- Table.cs
- ToolStripControlHost.cs
- TextParagraphCache.cs
- IgnoreSectionHandler.cs
- AppSettingsExpressionBuilder.cs
- UTF8Encoding.cs
- ButtonStandardAdapter.cs
- WhitespaceRuleLookup.cs
- SamlAction.cs
- Attachment.cs
- shaperfactory.cs
- AsyncWaitHandle.cs
- ExtenderProvidedPropertyAttribute.cs
- TriggerBase.cs
- NetTcpSectionData.cs
- PropertyMapper.cs
- InputReport.cs
- FileDialogPermission.cs
- ObjectDataSourceView.cs
- RequestQueue.cs
- TraceContextEventArgs.cs
- AppModelKnownContentFactory.cs
- DbDeleteCommandTree.cs
- ListViewDeleteEventArgs.cs
- TypeLibraryHelper.cs
- TailCallAnalyzer.cs
- DragEvent.cs
- DataSvcMapFile.cs
- DataServiceRequest.cs
- ExtentJoinTreeNode.cs
- RadioButtonStandardAdapter.cs
- NativeRecognizer.cs
- StorageAssociationTypeMapping.cs
- HandlerWithFactory.cs
- DocumentGridContextMenu.cs
- BamlLocalizer.cs
- PointKeyFrameCollection.cs
- QuaternionAnimationUsingKeyFrames.cs
- Constants.cs
- CodeSnippetExpression.cs
- selecteditemcollection.cs
- DataGridTableCollection.cs
- ContractReference.cs
- User.cs
- PolicyStatement.cs
- Parser.cs
- SimplePropertyEntry.cs
- DetailsViewRowCollection.cs
- PeerNodeAddress.cs
- DesignerAutoFormat.cs
- BatchStream.cs
- CultureSpecificStringDictionary.cs
- SchemaDeclBase.cs
- EnvelopedPkcs7.cs
- CqlParserHelpers.cs
- WebEvents.cs
- ExpandCollapseProviderWrapper.cs