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
- SplineKeyFrames.cs
- SubclassTypeValidator.cs
- TableColumn.cs
- ByteStream.cs
- OutputScope.cs
- DesignerDataSchemaClass.cs
- ManifestResourceInfo.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- RightsManagementPermission.cs
- SecurityCredentialsManager.cs
- AuthenticationService.cs
- Process.cs
- DesignerTransactionCloseEvent.cs
- PathSegmentCollection.cs
- ExtenderProvidedPropertyAttribute.cs
- WebPartDescription.cs
- DragDeltaEventArgs.cs
- LazyLoadBehavior.cs
- PrimitiveDataContract.cs
- ChildTable.cs
- ChameleonKey.cs
- RegexParser.cs
- ListBoxItemAutomationPeer.cs
- BatchParser.cs
- ConfigurationProperty.cs
- DiscoveryClientDocuments.cs
- SID.cs
- Style.cs
- CodeTypeDelegate.cs
- ProcessHostMapPath.cs
- ColumnBinding.cs
- CallbackValidator.cs
- ThreadSafeList.cs
- ErrorProvider.cs
- EndOfStreamException.cs
- CodeIndexerExpression.cs
- TranslateTransform.cs
- XmlSignificantWhitespace.cs
- WorkflowRequestContext.cs
- XsltConvert.cs
- AdRotatorDesigner.cs
- MatrixTransform3D.cs
- ReachFixedDocumentSerializer.cs
- CodeEventReferenceExpression.cs
- DesignerWithHeader.cs
- MutexSecurity.cs
- RuleSetBrowserDialog.cs
- EditorPartCollection.cs
- storepermission.cs
- TagMapCollection.cs
- DataGridViewAdvancedBorderStyle.cs
- InstanceContext.cs
- FormsAuthenticationModule.cs
- PaperSize.cs
- IsolatedStorage.cs
- StagingAreaInputItem.cs
- sortedlist.cs
- HijriCalendar.cs
- SqlPersonalizationProvider.cs
- ClientClassGenerator.cs
- BinaryHeap.cs
- ContentAlignmentEditor.cs
- OperandQuery.cs
- TimeoutValidationAttribute.cs
- SafeLocalMemHandle.cs
- ControlBuilderAttribute.cs
- DbTypeMap.cs
- HttpContextServiceHost.cs
- GridSplitter.cs
- ToolStripItemCollection.cs
- precedingquery.cs
- ThreadPool.cs
- RightsManagementEncryptedStream.cs
- MultiPropertyDescriptorGridEntry.cs
- InkCanvas.cs
- TableCellAutomationPeer.cs
- AutomationPeer.cs
- NumberFormatInfo.cs
- ConfigXmlSignificantWhitespace.cs
- WindowsListViewItem.cs
- SafeProcessHandle.cs
- EncryptedData.cs
- XmlSchemaAnnotated.cs
- dbdatarecord.cs
- AsyncCompletedEventArgs.cs
- WebZone.cs
- WebPartConnectionsCloseVerb.cs
- MediaContext.cs
- DocumentGridPage.cs
- WebPartEditorApplyVerb.cs
- RightsManagementManager.cs
- CellNormalizer.cs
- ScriptingJsonSerializationSection.cs
- TextBoxLine.cs
- FontFaceLayoutInfo.cs
- SamlAttributeStatement.cs
- WpfPayload.cs
- TraceSection.cs
- WebScriptMetadataMessageEncoderFactory.cs
- FormDocumentDesigner.cs