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
- CharAnimationBase.cs
- WebContext.cs
- WpfXamlType.cs
- ServiceDesigner.xaml.cs
- WindowsImpersonationContext.cs
- ClientScriptItemCollection.cs
- SlotInfo.cs
- BuildResult.cs
- VectorAnimationBase.cs
- Internal.cs
- AnimationClockResource.cs
- TracingConnection.cs
- Int16KeyFrameCollection.cs
- RecognizerBase.cs
- DataColumnMapping.cs
- SamlEvidence.cs
- HandlerBase.cs
- CurrentChangingEventManager.cs
- SelectedGridItemChangedEvent.cs
- TreeWalker.cs
- AssociationEndMember.cs
- DispatcherEventArgs.cs
- IndentTextWriter.cs
- WSFederationHttpBindingElement.cs
- WindowInteractionStateTracker.cs
- ReturnEventArgs.cs
- RoutedEvent.cs
- PipelineModuleStepContainer.cs
- InternalConfigHost.cs
- SoapHelper.cs
- CopyAction.cs
- SmiEventSink.cs
- ITextView.cs
- LoginName.cs
- Button.cs
- DbDataAdapter.cs
- KeyManager.cs
- XmlTypeAttribute.cs
- QueryGenerator.cs
- xmlsaver.cs
- XmlILIndex.cs
- ClientSideQueueItem.cs
- ReadOnlyDataSource.cs
- Rules.cs
- XmlHierarchicalEnumerable.cs
- Marshal.cs
- CoTaskMemHandle.cs
- BinaryReader.cs
- SimpleRecyclingCache.cs
- CounterCreationDataCollection.cs
- ExtractedStateEntry.cs
- BitHelper.cs
- DataTableReader.cs
- TextTreeTextElementNode.cs
- LocalizableAttribute.cs
- RoamingStoreFile.cs
- EncodingFallbackAwareXmlTextWriter.cs
- GeometryGroup.cs
- BitmapEffectvisualstate.cs
- InlinedAggregationOperator.cs
- HorizontalAlignConverter.cs
- XPathNodeInfoAtom.cs
- DoubleIndependentAnimationStorage.cs
- HierarchicalDataBoundControlAdapter.cs
- AdRotator.cs
- MenuCommand.cs
- TreeNode.cs
- MemberAssignmentAnalysis.cs
- Buffer.cs
- ParsedAttributeCollection.cs
- Stack.cs
- SqlCommandBuilder.cs
- HtmlImage.cs
- XmlTextAttribute.cs
- IsolatedStoragePermission.cs
- Menu.cs
- EventPrivateKey.cs
- TraceContextEventArgs.cs
- FragmentNavigationEventArgs.cs
- OdbcTransaction.cs
- ComboBox.cs
- InputManager.cs
- DataPagerFieldCommandEventArgs.cs
- RegisteredScript.cs
- MethodBuilderInstantiation.cs
- FunctionMappingTranslator.cs
- TileBrush.cs
- SqlBooleanMismatchVisitor.cs
- AutoScrollHelper.cs
- HandlerBase.cs
- Rights.cs
- TypographyProperties.cs
- TransformConverter.cs
- ListViewCommandEventArgs.cs
- StickyNoteAnnotations.cs
- EdmType.cs
- CurrencyWrapper.cs
- LabelAutomationPeer.cs
- SecurityContext.cs
- UInt32.cs