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
- XsltInput.cs
- SystemResourceKey.cs
- PolicyValidationException.cs
- ReceiveSecurityHeader.cs
- WorkflowCreationContext.cs
- Transaction.cs
- Content.cs
- ExpressionBindingsDialog.cs
- Variable.cs
- WebUtil.cs
- ApplyTemplatesAction.cs
- MessageSecurityOverMsmq.cs
- FormViewRow.cs
- BindingsSection.cs
- InfoCardProofToken.cs
- LogEntryHeaderv1Deserializer.cs
- FilteredDataSetHelper.cs
- Transform.cs
- ChtmlTextWriter.cs
- FixedSOMLineCollection.cs
- ComponentResourceKeyConverter.cs
- TableCell.cs
- HttpSessionStateBase.cs
- Visual3D.cs
- ColorMap.cs
- EditingCommands.cs
- LineBreakRecord.cs
- MediaEntryAttribute.cs
- DataGridTable.cs
- TextEditor.cs
- Point4D.cs
- SqlGatherConsumedAliases.cs
- BitmapMetadata.cs
- DependencyPropertyKey.cs
- ObfuscationAttribute.cs
- CompositeActivityValidator.cs
- WebConfigurationManager.cs
- MailWriter.cs
- Typeface.cs
- ClientEventManager.cs
- XmlILAnnotation.cs
- MessageQueueInstaller.cs
- HtmlInputReset.cs
- BitmapEffectOutputConnector.cs
- FontFamilyConverter.cs
- SecurityTokenSerializer.cs
- StyleXamlParser.cs
- XmlSerializationReader.cs
- RegexReplacement.cs
- SelectionRangeConverter.cs
- DetailsViewRowCollection.cs
- Font.cs
- BamlWriter.cs
- BitmapEffectGeneralTransform.cs
- ModelItemCollection.cs
- WorkflowOwnershipException.cs
- TouchPoint.cs
- WebPartCancelEventArgs.cs
- TdsValueSetter.cs
- UnrecognizedPolicyAssertionElement.cs
- PrivilegeNotHeldException.cs
- Attributes.cs
- RuntimeArgumentHandle.cs
- AssemblyFilter.cs
- VScrollBar.cs
- Activation.cs
- CollectionViewGroupRoot.cs
- FontFaceLayoutInfo.cs
- AnimationLayer.cs
- BoundsDrawingContextWalker.cs
- Fx.cs
- ReversePositionQuery.cs
- AudioLevelUpdatedEventArgs.cs
- DurationConverter.cs
- DatePicker.cs
- TextContainerChangedEventArgs.cs
- FileDialog_Vista.cs
- DateTimePickerDesigner.cs
- CellCreator.cs
- ParallelLoopState.cs
- ProcessHostFactoryHelper.cs
- FormViewInsertEventArgs.cs
- AutomationElement.cs
- MonthChangedEventArgs.cs
- unsafenativemethodstextservices.cs
- ClientSettingsStore.cs
- QilInvokeLateBound.cs
- TableLayoutPanel.cs
- DrawToolTipEventArgs.cs
- FormsAuthenticationUserCollection.cs
- JoinTreeSlot.cs
- ADMembershipProvider.cs
- SamlAttribute.cs
- ServicesUtilities.cs
- HtmlSelect.cs
- SimpleTextLine.cs
- XmlSchemaSimpleContentExtension.cs
- DataGridViewRowCancelEventArgs.cs
- CreateParams.cs
- WebPartMenu.cs