Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripSeparator.cs / 1 / ToolStripSeparator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Drawing; using System.ComponentModel; using System.Windows.Forms.Design; using System.Diagnostics.CodeAnalysis; ////// /// [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.ToolStrip | ToolStripItemDesignerAvailability.ContextMenuStrip)] public class ToolStripSeparator : ToolStripItem { private const int WINBAR_SEPARATORTHICKNESS = 6; private const int WINBAR_SEPARATORHEIGHT = 23; [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] public ToolStripSeparator() { this.ForeColor = SystemColors.ControlDark; } ////// Called when the background of the winbar is being rendered /// ///[ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new bool AutoToolTip { get { return base.AutoToolTip; } set { base.AutoToolTip = value; } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public override Image BackgroundImage { get { return base.BackgroundImage; } set { base.BackgroundImage = value; } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public override ImageLayout BackgroundImageLayout { get { return base.BackgroundImageLayout; } set { base.BackgroundImageLayout = value; } } /// public override bool CanSelect { get { return DesignMode; } } /// /// /// Deriving classes can override this to configure a default size for their control. /// This is more efficient than setting the size in the control's constructor. /// protected override Size DefaultSize { get { return new Size(WINBAR_SEPARATORTHICKNESS, WINBAR_SEPARATORTHICKNESS); } } ///protected internal override Padding DefaultMargin { get { return Padding.Empty; } } [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new bool DoubleClickEnabled { get { return base.DoubleClickEnabled; } set { base.DoubleClickEnabled = value; } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public override bool Enabled { get { return base.Enabled; } set { base.Enabled = value; } } /// /// [Browsable (false), EditorBrowsable (EditorBrowsableState.Never)] new public event EventHandler EnabledChanged { add { base.EnabledChanged += value; } remove { base.EnabledChanged -= value; } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new ToolStripItemDisplayStyle DisplayStyle { get { return base.DisplayStyle; } set { base.DisplayStyle = value; } } /// /// [Browsable (false), EditorBrowsable (EditorBrowsableState.Never)] new public event EventHandler DisplayStyleChanged { add { base.DisplayStyleChanged += value; } remove { base.DisplayStyleChanged -= value; } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public override Font Font { get { return base.Font; } set { base.Font = value; } } [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new ContentAlignment ImageAlign { get { return base.ImageAlign; } set { base.ImageAlign = value; } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public override Image Image { get { return base.Image; } set { base.Image = value; } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), RefreshProperties(RefreshProperties.Repaint), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new int ImageIndex { get { return base.ImageIndex; } set { base.ImageIndex = value; } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new string ImageKey { get { return base.ImageKey; } set { base.ImageKey = value; } } [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new Color ImageTransparentColor { get { return base.ImageTransparentColor; } set { base.ImageTransparentColor = value; } } [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new ToolStripItemImageScaling ImageScaling { get { return base.ImageScaling; } set { base.ImageScaling = value; } } private bool IsVertical { get { ToolStrip parent = this.ParentInternal; if (parent == null) { parent = Owner; } ToolStripDropDownMenu dropDownMenu = parent as ToolStripDropDownMenu; if (dropDownMenu != null) { return false; } switch (parent.LayoutStyle) { case ToolStripLayoutStyle.VerticalStackWithOverflow: return false; case ToolStripLayoutStyle.HorizontalStackWithOverflow: case ToolStripLayoutStyle.Flow: case ToolStripLayoutStyle.Table: default: return true; } } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public override string Text { get { return base.Text; } set { base.Text = value; } } /// /// [Browsable (false), EditorBrowsable (EditorBrowsableState.Never)] new public event EventHandler TextChanged { add { base.TextChanged += value; } remove { base.TextChanged -= value; } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new ContentAlignment TextAlign { get { return base.TextAlign; } set { base.TextAlign = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DefaultValue(ToolStripTextDirection.Horizontal)] public override ToolStripTextDirection TextDirection { get { return base.TextDirection; } set { base.TextDirection = value; } } /// [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new TextImageRelation TextImageRelation { get { return base.TextImageRelation; } set { base.TextImageRelation = value; } } [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new string ToolTipText { get { return base.ToolTipText; } set { base.ToolTipText = value; } } [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new bool RightToLeftAutoMirrorImage { get { return base.RightToLeftAutoMirrorImage; } set { base.RightToLeftAutoMirrorImage = value; } } [EditorBrowsable(EditorBrowsableState.Advanced)] protected override AccessibleObject CreateAccessibilityInstance() { return new ToolStripSeparatorAccessibleObject(this); } /// public override Size GetPreferredSize(Size constrainingSize) { ToolStrip parent = this.ParentInternal; if (parent == null) { parent = Owner; } if (parent == null) { return new Size(WINBAR_SEPARATORTHICKNESS, WINBAR_SEPARATORTHICKNESS); } ToolStripDropDownMenu dropDownMenu = parent as ToolStripDropDownMenu; if (dropDownMenu != null) { return new Size(parent.Width - (parent.Padding.Horizontal - dropDownMenu.ImageMargin.Width), WINBAR_SEPARATORTHICKNESS); } else { if (parent.LayoutStyle != ToolStripLayoutStyle.HorizontalStackWithOverflow || parent.LayoutStyle != ToolStripLayoutStyle.VerticalStackWithOverflow) { // we dont actually know what size to make it, so just keep it a stock size. constrainingSize.Width = WINBAR_SEPARATORHEIGHT; constrainingSize.Height = WINBAR_SEPARATORHEIGHT; } if (IsVertical) { return new Size(WINBAR_SEPARATORTHICKNESS, constrainingSize.Height); } else { return new Size(constrainingSize.Width, WINBAR_SEPARATORTHICKNESS); } } } /// protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) { if (this.Owner != null && this.ParentInternal != null) { this.Renderer.DrawSeparator(new ToolStripSeparatorRenderEventArgs(e.Graphics, this, IsVertical)); } } [EditorBrowsable(EditorBrowsableState.Never)] protected override void OnFontChanged(EventArgs e) { // PERF: dont call base, we dont care if the font changes RaiseEvent(EventFontChanged, e); } [SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] [EditorBrowsable(EditorBrowsableState.Never)] internal override bool ShouldSerializeForeColor() { return (ForeColor != SystemColors.ControlDark); } internal protected override void SetBounds(Rectangle rect) { ToolStripDropDownMenu dropDownMenu = this.Owner as ToolStripDropDownMenu; if (dropDownMenu != null) { // Scooch over by the padding amount. The padding is added to // the ToolStripDropDownMenu to keep the non-menu item riffraff // aligned to the text rectangle. When flow layout comes through to set our position // via IArrangedElement DEFY IT! if (dropDownMenu != null) { rect.X = 2; rect.Width = dropDownMenu.Width -4; } } base.SetBounds(rect); } /// /// An implementation of AccessibleChild for use with ToolStripItems /// [System.Runtime.InteropServices.ComVisible(true)] internal class ToolStripSeparatorAccessibleObject : ToolStripItemAccessibleObject { private ToolStripSeparator ownerItem = null; public ToolStripSeparatorAccessibleObject(ToolStripSeparator ownerItem): base(ownerItem) { this.ownerItem = ownerItem; } public override AccessibleRole Role { get { AccessibleRole role = ownerItem.AccessibleRole; if (role != AccessibleRole.Default) { return role; } else { return AccessibleRole.Separator; } } } } } } // 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
- DataSourceXmlTextReader.cs
- CompositeTypefaceMetrics.cs
- PanelStyle.cs
- UpdateCommand.cs
- GregorianCalendar.cs
- DesignerSelectionListAdapter.cs
- ComPlusContractBehavior.cs
- ReflectionPermission.cs
- PointAnimationBase.cs
- ManagementObjectSearcher.cs
- QilVisitor.cs
- sqlpipe.cs
- OleDbError.cs
- AnimationClock.cs
- CharacterShapingProperties.cs
- AppDomainFactory.cs
- RijndaelManagedTransform.cs
- ToggleProviderWrapper.cs
- HttpDebugHandler.cs
- SelectionItemProviderWrapper.cs
- LoginUtil.cs
- ToolStripItem.cs
- ADRole.cs
- EventMappingSettingsCollection.cs
- DSASignatureFormatter.cs
- ByteKeyFrameCollection.cs
- ColorAnimation.cs
- InstanceCollisionException.cs
- CommandBinding.cs
- ChildDocumentBlock.cs
- HostedBindingBehavior.cs
- DigitShape.cs
- ColorTransformHelper.cs
- ProfileBuildProvider.cs
- WindowsToolbar.cs
- CalendarDateRange.cs
- ASCIIEncoding.cs
- ToolStripControlHost.cs
- Int16AnimationBase.cs
- DataGridBoundColumn.cs
- SizeKeyFrameCollection.cs
- ProcessProtocolHandler.cs
- SQLMoney.cs
- MSG.cs
- AdRotator.cs
- UniqueIdentifierService.cs
- Action.cs
- ContentTextAutomationPeer.cs
- FusionWrap.cs
- MD5.cs
- ControlAdapter.cs
- SafeRegistryKey.cs
- StringReader.cs
- ToolTipAutomationPeer.cs
- CommandLineParser.cs
- AppDomainAttributes.cs
- ComplexLine.cs
- PropertyNames.cs
- ClientScriptItemCollection.cs
- ToolboxCategory.cs
- Math.cs
- XmlSchemaFacet.cs
- PackageRelationship.cs
- ZipIOExtraFieldZip64Element.cs
- OdbcConnection.cs
- TableParagraph.cs
- HwndTarget.cs
- HelpKeywordAttribute.cs
- DateRangeEvent.cs
- DataServiceBehavior.cs
- HostedBindingBehavior.cs
- SafeRightsManagementHandle.cs
- Internal.cs
- TreeBuilderXamlTranslator.cs
- Random.cs
- PropertyGridView.cs
- XPathArrayIterator.cs
- AssociationTypeEmitter.cs
- SimplePropertyEntry.cs
- AnnouncementClient.cs
- CaseDesigner.xaml.cs
- ProvidersHelper.cs
- DecimalAnimation.cs
- InvokeGenerator.cs
- WindowsSecurityToken.cs
- ModelUIElement3D.cs
- SystemIPv4InterfaceProperties.cs
- UserControl.cs
- EventSourceCreationData.cs
- FutureFactory.cs
- TriState.cs
- mda.cs
- SimplePropertyEntry.cs
- TraceContextEventArgs.cs
- DataGridState.cs
- TypeExtensionConverter.cs
- ComponentRenameEvent.cs
- AddInIpcChannel.cs
- ParameterExpression.cs
- fixedPageContentExtractor.cs