Code:
/ FX-1434 / FX-1434 / 1.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
- EpmAttributeNameBuilder.cs
- BufferedGraphics.cs
- StateDesigner.TransitionInfo.cs
- Dictionary.cs
- TreeBuilder.cs
- precedingsibling.cs
- List.cs
- ComplexBindingPropertiesAttribute.cs
- ToolTipAutomationPeer.cs
- XmlLanguage.cs
- GradientBrush.cs
- SubMenuStyle.cs
- CompiledQuery.cs
- RSAOAEPKeyExchangeFormatter.cs
- BasicExpressionVisitor.cs
- _StreamFramer.cs
- DataPagerCommandEventArgs.cs
- DirectoryInfo.cs
- ListSourceHelper.cs
- TextAnchor.cs
- EndOfStreamException.cs
- IgnoreFlushAndCloseStream.cs
- ConcatQueryOperator.cs
- WSSecureConversation.cs
- PlainXmlSerializer.cs
- ReadOnlyDictionary.cs
- ConfigXmlWhitespace.cs
- WebBrowserNavigatingEventHandler.cs
- WebRequestModuleElement.cs
- ClientCultureInfo.cs
- TemplateNameScope.cs
- FieldBuilder.cs
- ZipIORawDataFileBlock.cs
- RequestQueue.cs
- Constraint.cs
- Trace.cs
- HtmlInputPassword.cs
- XamlTemplateSerializer.cs
- InternalPermissions.cs
- MemberDescriptor.cs
- AccessDataSourceView.cs
- HttpModuleAction.cs
- SecurityElement.cs
- InvariantComparer.cs
- MinimizableAttributeTypeConverter.cs
- PropertyInformationCollection.cs
- DefaultBinder.cs
- ScrollChrome.cs
- BamlLocalizableResourceKey.cs
- ObjectDataSourceSelectingEventArgs.cs
- LinearKeyFrames.cs
- GiveFeedbackEvent.cs
- HostProtectionPermission.cs
- DtdParser.cs
- HostSecurityManager.cs
- DataColumnMapping.cs
- HwndProxyElementProvider.cs
- ChannelEndpointElement.cs
- MetadataProperty.cs
- DictionaryItemsCollection.cs
- Visitors.cs
- ParameterElementCollection.cs
- serverconfig.cs
- Token.cs
- PageSetupDialog.cs
- KeyToListMap.cs
- DependencyPropertyKind.cs
- CorePropertiesFilter.cs
- DrawingCollection.cs
- ProxyHwnd.cs
- ReadonlyMessageFilter.cs
- LinqDataSource.cs
- SelectionRangeConverter.cs
- IdnElement.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- ClientTargetSection.cs
- TextWriterTraceListener.cs
- WebPartZone.cs
- EntityDataSourceDataSelectionPanel.cs
- LocationReferenceEnvironment.cs
- OdbcEnvironmentHandle.cs
- ConcurrencyBehavior.cs
- AutomationAttributeInfo.cs
- ImageKeyConverter.cs
- HttpConfigurationSystem.cs
- OuterGlowBitmapEffect.cs
- Brush.cs
- HttpApplication.cs
- If.cs
- DoubleLinkList.cs
- DataGridTextBox.cs
- StringSorter.cs
- Selection.cs
- TdsValueSetter.cs
- DrawListViewColumnHeaderEventArgs.cs
- CompilerTypeWithParams.cs
- SchemaManager.cs
- GridToolTip.cs
- DataSourceCacheDurationConverter.cs
- _UncName.cs