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
- DataGridColumnHeadersPresenterAutomationPeer.cs
- TextMarkerSource.cs
- ShaderRenderModeValidation.cs
- EncryptedKey.cs
- SafeNativeMethods.cs
- DateTimePickerDesigner.cs
- HandlerWithFactory.cs
- ObjectConverter.cs
- X509Utils.cs
- WsatServiceCertificate.cs
- VisualStyleInformation.cs
- Configuration.cs
- SyncOperationState.cs
- CompModHelpers.cs
- HeaderedItemsControl.cs
- CommandID.cs
- WebHttpDispatchOperationSelector.cs
- CompiledWorkflowDefinitionContext.cs
- CompiledQueryCacheKey.cs
- DrawTreeNodeEventArgs.cs
- LocatorPart.cs
- XmlReflectionMember.cs
- ToolStripArrowRenderEventArgs.cs
- Parallel.cs
- HitTestParameters.cs
- GeometryCombineModeValidation.cs
- TypeDependencyAttribute.cs
- PrimitiveSchema.cs
- GlobalDataBindingHandler.cs
- PropertyNames.cs
- EditingCoordinator.cs
- PartialCachingControl.cs
- HostingEnvironmentException.cs
- ShutDownListener.cs
- DataViewListener.cs
- TaskResultSetter.cs
- StaticTextPointer.cs
- ModuleBuilderData.cs
- OleDbCommandBuilder.cs
- TreeBuilder.cs
- PrintPreviewControl.cs
- AlignmentXValidation.cs
- SqlGenerator.cs
- CompilerInfo.cs
- CodeDefaultValueExpression.cs
- StickyNoteAnnotations.cs
- UnauthorizedWebPart.cs
- WorkflowApplicationCompletedEventArgs.cs
- HMACMD5.cs
- DataGridViewTextBoxEditingControl.cs
- DataGridViewColumnDesigner.cs
- MatrixAnimationBase.cs
- XmlSchemaComplexContentRestriction.cs
- TriggerCollection.cs
- XmlReaderSettings.cs
- PropertyPathConverter.cs
- DefaultWorkflowTransactionService.cs
- CustomErrorsSection.cs
- UndoEngine.cs
- ScriptManager.cs
- FamilyMap.cs
- SafeNativeMethods.cs
- AdRotatorDesigner.cs
- PageSetupDialog.cs
- XmlNamespaceMapping.cs
- FileDetails.cs
- SevenBitStream.cs
- Utility.cs
- MetadataProperty.cs
- DataGridViewComboBoxEditingControl.cs
- DocumentPaginator.cs
- SurrogateEncoder.cs
- MenuEventArgs.cs
- ObjectSelectorEditor.cs
- ProviderConnectionPoint.cs
- MobileRedirect.cs
- CaseInsensitiveOrdinalStringComparer.cs
- IdleTimeoutMonitor.cs
- FormsAuthenticationCredentials.cs
- DataGridPagerStyle.cs
- ClientSettings.cs
- PageContentAsyncResult.cs
- RuleProcessor.cs
- CriticalFinalizerObject.cs
- BaseCodeDomTreeGenerator.cs
- CompilationUtil.cs
- PartitionedDataSource.cs
- DesignerProperties.cs
- ApplicationId.cs
- SynchronizedDispatch.cs
- EventTrigger.cs
- DrawingAttributes.cs
- CanExecuteRoutedEventArgs.cs
- SafePipeHandle.cs
- ServiceSecurityAuditElement.cs
- SemaphoreSecurity.cs
- EntityProviderFactory.cs
- HtmlShimManager.cs
- SamlDelegatingWriter.cs
- Operators.cs