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
- SimpleHandlerFactory.cs
- BrowserPolicyValidator.cs
- WebConfigurationHostFileChange.cs
- ValidationRule.cs
- CipherData.cs
- Registry.cs
- RelatedCurrencyManager.cs
- MemberCollection.cs
- TimeZone.cs
- LinkedList.cs
- PropertyConverter.cs
- IndexerNameAttribute.cs
- SqlDataSourceCache.cs
- GridViewAutomationPeer.cs
- TlsnegoTokenProvider.cs
- SubpageParagraph.cs
- ImageSource.cs
- CategoryValueConverter.cs
- bindurihelper.cs
- XmlTextAttribute.cs
- RowCache.cs
- DataMemberFieldEditor.cs
- EditableRegion.cs
- NTAccount.cs
- DataSysAttribute.cs
- HtmlForm.cs
- RadialGradientBrush.cs
- KnownAssembliesSet.cs
- WebPartHelpVerb.cs
- SqlUserDefinedTypeAttribute.cs
- GeneralTransform3DGroup.cs
- WebPartExportVerb.cs
- LOSFormatter.cs
- XmlnsCompatibleWithAttribute.cs
- ToolStripSystemRenderer.cs
- ImageListUtils.cs
- X509Extension.cs
- QilPatternVisitor.cs
- TextBox.cs
- DataGridViewTopLeftHeaderCell.cs
- BindingBase.cs
- InkPresenter.cs
- StylusButtonCollection.cs
- CngAlgorithmGroup.cs
- ExpressionLink.cs
- RefreshPropertiesAttribute.cs
- AsyncStreamReader.cs
- PlanCompiler.cs
- SHA256Managed.cs
- ServiceThrottlingElement.cs
- VirtualDirectoryMappingCollection.cs
- DispatcherProcessingDisabled.cs
- SimpleBitVector32.cs
- IgnoreSection.cs
- ApplicationServicesHostFactory.cs
- SafeSecurityHelper.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- SQLByteStorage.cs
- ChtmlTextBoxAdapter.cs
- ContextInformation.cs
- RijndaelManagedTransform.cs
- ColumnTypeConverter.cs
- ObjectQueryProvider.cs
- DbConnectionClosed.cs
- SequentialActivityDesigner.cs
- ShapeTypeface.cs
- SettingsPropertyNotFoundException.cs
- MetadataException.cs
- ProgressBar.cs
- EventlogProvider.cs
- ListViewPagedDataSource.cs
- BamlBinaryReader.cs
- OdbcCommandBuilder.cs
- SafeEventHandle.cs
- WindowsSysHeader.cs
- Pen.cs
- DynamicValidatorEventArgs.cs
- StateWorkerRequest.cs
- SessionStateItemCollection.cs
- XmlSchemaAppInfo.cs
- Schema.cs
- StrokeCollectionConverter.cs
- Messages.cs
- XPathNodeHelper.cs
- IsolatedStorageFileStream.cs
- UnsafeCollabNativeMethods.cs
- Sorting.cs
- SortedList.cs
- TypeDependencyAttribute.cs
- Cursor.cs
- ReaderWriterLock.cs
- FacetDescription.cs
- StrongNameMembershipCondition.cs
- EntityDataSourceColumn.cs
- DBParameter.cs
- FastEncoderWindow.cs
- MultiTrigger.cs
- AsynchronousChannelMergeEnumerator.cs
- ApplicationDirectoryMembershipCondition.cs
- XmlTextReaderImpl.cs