Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripStatusLabel.cs / 1 / ToolStripStatusLabel.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Diagnostics;
using System.Windows.Forms.ButtonInternal;
using System.Security.Permissions;
using System.Security;
using System.Windows.Forms.Layout;
using System.Windows.Forms.Design;
///
///
/// A non selectable winbar item
///
[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)]
public class ToolStripStatusLabel : ToolStripLabel {
private Border3DStyle borderStyle = Border3DStyle.Flat;
private ToolStripStatusLabelBorderSides borderSides = ToolStripStatusLabelBorderSides.None;
private bool spring = false;
///
///
/// A non selectable winbar item
///
public ToolStripStatusLabel() {
}
public ToolStripStatusLabel(string text):base(text,null,false,null) {
}
public ToolStripStatusLabel(Image image):base(null,image,false,null) {
}
public ToolStripStatusLabel(string text, Image image):base(text,image,false,null) {
}
public ToolStripStatusLabel(string text, Image image, EventHandler onClick):base(text,image,/*isLink=*/false,onClick,null) {
}
public ToolStripStatusLabel(string text, Image image, EventHandler onClick, string name) :base(text,image,/*isLink=*/false,onClick, name) {
}
///
/// Creates an instance of the object that defines how image and text
/// gets laid out in the ToolStripItem
///
internal override ToolStripItemInternalLayout CreateInternalLayout() {
return new ToolStripStatusLabelLayout(this);
}
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Advanced)]
public new ToolStripItemAlignment Alignment {
get {
return base.Alignment;
}
set {
base.Alignment = value;
}
}
///
[
DefaultValue(Border3DStyle.Flat),
SRDescription(SR.ToolStripStatusLabelBorderStyleDescr),
SRCategory(SR.CatAppearance)
]
public Border3DStyle BorderStyle {
get {
return borderStyle;
}
set {
if (!ClientUtils.IsEnumValid_NotSequential(value,
(int)value,
(int)Border3DStyle.Adjust,
(int)Border3DStyle.Bump,
(int)Border3DStyle.Etched,
(int)Border3DStyle.Flat,
(int)Border3DStyle.Raised,
(int)Border3DStyle.RaisedInner,
(int)Border3DStyle.RaisedOuter,
(int)Border3DStyle.Sunken,
(int)Border3DStyle.SunkenInner,
(int)Border3DStyle.SunkenOuter
)) {
throw new InvalidEnumArgumentException("value", (int)value, typeof(Border3DStyle));
}
if (borderStyle != value) {
borderStyle = value;
Invalidate();
}
}
}
///
[
DefaultValue(ToolStripStatusLabelBorderSides.None),
SRDescription(SR.ToolStripStatusLabelBorderSidesDescr),
SRCategory(SR.CatAppearance)
]
public ToolStripStatusLabelBorderSides BorderSides {
get {
return borderSides;
}
set {
// no Enum.IsDefined as this is a flags enum.
if (borderSides != value) {
borderSides = value;
LayoutTransaction.DoLayout(Owner,this, PropertyNames.BorderStyle);
Invalidate();
}
}
}
protected internal override Padding DefaultMargin {
get {
return new Padding(0, 3, 0, 2);
}
}
[
DefaultValue(false),
SRDescription(SR.ToolStripStatusLabelSpringDescr),
SRCategory(SR.CatAppearance)
]
public bool Spring {
get { return spring; }
set {
if (spring != value) {
spring = value;
if (ParentInternal != null) {
LayoutTransaction.DoLayout(ParentInternal, this, PropertyNames.Spring);
}
}
}
}
public override System.Drawing.Size GetPreferredSize(System.Drawing.Size constrainingSize) {
if (BorderSides != ToolStripStatusLabelBorderSides.None) {
return base.GetPreferredSize(constrainingSize) + new Size(4, 4);
}
else {
return base.GetPreferredSize(constrainingSize);
}
}
///
///
/// Inheriting classes should override this method to handle this event.
///
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) {
if (this.Owner != null) {
ToolStripRenderer renderer = this.Renderer;
renderer.DrawToolStripStatusLabelBackground(new ToolStripItemRenderEventArgs(e.Graphics, this));
if ((DisplayStyle & ToolStripItemDisplayStyle.Image) == ToolStripItemDisplayStyle.Image) {
renderer.DrawItemImage(new ToolStripItemImageRenderEventArgs(e.Graphics, this, InternalLayout.ImageRectangle));
}
PaintText(e.Graphics);
}
}
///
/// This class performs internal layout for the "split button button" portion of a split button.
/// Its main job is to make sure the inner button has the same parent as the split button, so
/// that layout can be performed using the correct graphics context.
///
private class ToolStripStatusLabelLayout : ToolStripItemInternalLayout {
ToolStripStatusLabel owner;
public ToolStripStatusLabelLayout(ToolStripStatusLabel owner) : base(owner) {
this.owner = owner;
}
protected override ToolStripItemLayoutOptions CommonLayoutOptions() {
ToolStripItemLayoutOptions layoutOptions = base.CommonLayoutOptions();
layoutOptions.borderSize = 0;
return layoutOptions;
}
}
}
}
// 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
- HierarchicalDataTemplate.cs
- ConfigXmlText.cs
- BooleanKeyFrameCollection.cs
- RemotingAttributes.cs
- ExpanderAutomationPeer.cs
- CounterCreationData.cs
- SmtpNtlmAuthenticationModule.cs
- _SslState.cs
- PropertyEmitter.cs
- BezierSegment.cs
- FastPropertyAccessor.cs
- HtmlLink.cs
- LocalizationComments.cs
- EdmProperty.cs
- StringConverter.cs
- ServiceSecurityAuditBehavior.cs
- SecurityKeyType.cs
- InfoCardXmlSerializer.cs
- EditCommandColumn.cs
- SingleKeyFrameCollection.cs
- ComEventsInfo.cs
- VirtualDirectoryMapping.cs
- TimersDescriptionAttribute.cs
- DataGridTablesFactory.cs
- HttpModuleCollection.cs
- WindowsFormsSectionHandler.cs
- QuerySafeNavigator.cs
- IChannel.cs
- Baml2006ReaderContext.cs
- TypeElement.cs
- ArrangedElement.cs
- DbMetaDataCollectionNames.cs
- WinFormsComponentEditor.cs
- MembershipSection.cs
- PageThemeCodeDomTreeGenerator.cs
- ProcessManager.cs
- BackEase.cs
- DockPattern.cs
- EventSinkHelperWriter.cs
- ArrayExtension.cs
- UriTemplateEquivalenceComparer.cs
- VScrollProperties.cs
- CodeEventReferenceExpression.cs
- ScriptBehaviorDescriptor.cs
- WsatProxy.cs
- RequestUriProcessor.cs
- TextServicesHost.cs
- adornercollection.cs
- ThicknessAnimationBase.cs
- HelpEvent.cs
- Int32EqualityComparer.cs
- SmiEventSink.cs
- ErrorFormatterPage.cs
- EventProvider.cs
- TextTreeTextElementNode.cs
- TogglePattern.cs
- FormsAuthenticationUser.cs
- BulletDecorator.cs
- XmlQueryTypeFactory.cs
- DocumentDesigner.cs
- WindowsImpersonationContext.cs
- WeakRefEnumerator.cs
- Sequence.cs
- NavigationFailedEventArgs.cs
- BasicKeyConstraint.cs
- DecoderFallback.cs
- HttpSessionStateBase.cs
- StopStoryboard.cs
- M3DUtil.cs
- WindowsSysHeader.cs
- URLIdentityPermission.cs
- GradientStop.cs
- BooleanExpr.cs
- XsltContext.cs
- StylusPointPropertyInfo.cs
- EventListenerClientSide.cs
- TextPointer.cs
- WebPartConnectionsEventArgs.cs
- TimerElapsedEvenArgs.cs
- ListView.cs
- ActivityWithResultWrapper.cs
- XmlRootAttribute.cs
- DeploymentSectionCache.cs
- ParameterElement.cs
- HTMLTextWriter.cs
- GridViewPageEventArgs.cs
- SpotLight.cs
- ComAdminWrapper.cs
- ThemeDirectoryCompiler.cs
- DataServiceRequestOfT.cs
- FunctionQuery.cs
- AlignmentXValidation.cs
- CompilerError.cs
- SqlGenericUtil.cs
- XmlEncoding.cs
- MULTI_QI.cs
- UIElement3D.cs
- SerializationObjectManager.cs
- QueryTask.cs
- EntryWrittenEventArgs.cs