Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripContentPanel.cs / 1 / ToolStripContentPanel.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System.Diagnostics;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Collections.Specialized;
using System.Runtime.InteropServices;
using System.Diagnostics.CodeAnalysis;
using System.ComponentModel.Design;
[
ComVisible(true),
ClassInterface(ClassInterfaceType.AutoDispatch),
Designer("System.Windows.Forms.Design.ToolStripContentPanelDesigner, " + AssemblyRef.SystemDesign),
DefaultEvent("Load"),
Docking(DockingBehavior.Never),
InitializationEvent("Load"),
ToolboxItem(false)
]
public class ToolStripContentPanel : Panel {
private ToolStripRendererSwitcher rendererSwitcher = null;
private BitVector32 state = new BitVector32();
private static readonly int stateLastDoubleBuffer = BitVector32.CreateMask();
private static readonly object EventRendererChanged = new object();
private static readonly object EventLoad = new object();
public ToolStripContentPanel() {
// Consider: OptimizedDoubleBuffer
SetStyle(ControlStyles.ResizeRedraw | ControlStyles.SupportsTransparentBackColor, true);
}
///
/// Allows the control to optionally shrink when AutoSize is true.
///
[
EditorBrowsable(EditorBrowsableState.Never),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
Browsable(false),
Localizable(false)
]
public override AutoSizeMode AutoSizeMode {
get {
return AutoSizeMode.GrowOnly;
}
set {
}
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public override AnchorStyles Anchor {
get {
return base.Anchor;
}
set {
base.Anchor = value;
}
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never)
]
public override bool AutoScroll {
get { return base.AutoScroll; }
set { base.AutoScroll = value; }
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public new Size AutoScrollMargin {
get { return base.AutoScrollMargin; }
set { base.AutoScrollMargin = value; }
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public new Size AutoScrollMinSize {
get { return base.AutoScrollMinSize; }
set { base.AutoScrollMinSize = value; }
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public override bool AutoSize {
get { return base.AutoSize; }
set { base.AutoSize = value; }
}
public override Color BackColor {
get {
return base.BackColor;
}
set {
// To support transparency on ToolStripContainer, we need this check
// to ensure that background color of the container reflects the
// ContentPanel
if (this.ParentInternal is ToolStripContainer && value == Color.Transparent) {
this.ParentInternal.BackColor = Color.Transparent;
}
base.BackColor = value;
}
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public new event EventHandler AutoSizeChanged{
add {
base.AutoSizeChanged += value;
}
remove {
base.AutoSizeChanged -= value;
}
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public new bool CausesValidation {
get { return base.CausesValidation; }
set { base.CausesValidation = value; }
}
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public new event EventHandler CausesValidationChanged {
add {
base.CausesValidationChanged += value;
}
remove {
base.CausesValidationChanged -= value;
}
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public override DockStyle Dock {
get {
return base.Dock;
}
set {
base.Dock=value;
}
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public new event EventHandler DockChanged {
add {
base.DockChanged += value;
}
remove {
base.DockChanged -= value;
}
}
[SRCategory(SR.CatBehavior), SRDescription(SR.ToolStripContentPanelOnLoadDescr)]
public event EventHandler Load {
add {
Events.AddHandler(EventLoad, value);
}
remove {
Events.RemoveHandler(EventLoad, value);
}
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public new Point Location {
get { return base.Location; }
set { base.Location = value; }
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public new event EventHandler LocationChanged {
add {
base.LocationChanged += value;
}
remove {
base.LocationChanged -= value;
}
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public override Size MinimumSize {
get { return base.MinimumSize; }
set { base.MinimumSize = value; }
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public override Size MaximumSize {
get { return base.MaximumSize; }
set { base.MaximumSize = value; }
}
[
EditorBrowsable(EditorBrowsableState.Never),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
Browsable(false)
]
public new string Name {
get {
return base.Name;
}
set {
base.Name = value;
}
}
[
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public new int TabIndex {
get {
return base.TabIndex;
}
set {
base.TabIndex = value;
}
}
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public new event EventHandler TabIndexChanged {
add {
base.TabIndexChanged += value;
}
remove {
base.TabIndexChanged -= value;
}
}
[
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never)
]
public new bool TabStop {
get {
return base.TabStop;
}
set {
base.TabStop = value;
}
}
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public new event EventHandler TabStopChanged {
add {
base.TabStopChanged += value;
}
remove {
base.TabStopChanged -= value;
}
}
private ToolStripRendererSwitcher RendererSwitcher {
get {
if (rendererSwitcher == null) {
rendererSwitcher = new ToolStripRendererSwitcher(this, ToolStripRenderMode.System);
HandleRendererChanged(this, EventArgs.Empty);
rendererSwitcher.RendererChanged += new EventHandler(HandleRendererChanged);
}
return rendererSwitcher;
}
}
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
public ToolStripRenderer Renderer {
get {
return RendererSwitcher.Renderer;
}
set {
RendererSwitcher.Renderer = value;
}
}
///
[
SRDescription(SR.ToolStripRenderModeDescr),
SRCategory(SR.CatAppearance),
]
public ToolStripRenderMode RenderMode {
get {
return RendererSwitcher.RenderMode;
}
set {
RendererSwitcher.RenderMode = value;
}
}
[SRCategory(SR.CatAppearance), SRDescription(SR.ToolStripRendererChanged)]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
public event EventHandler RendererChanged {
add {
Events.AddHandler(EventRendererChanged, value);
}
remove {
Events.RemoveHandler(EventRendererChanged, value);
}
}
private void HandleRendererChanged(object sender, EventArgs e) {
OnRendererChanged(e);
}
protected override void OnHandleCreated(EventArgs e) {
base.OnHandleCreated(e);
if (!RecreatingHandle) {
OnLoad(EventArgs.Empty);
}
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
protected virtual void OnLoad(EventArgs e) {
// There is no good way to explain this event except to say
// that it's just another name for OnControlCreated.
EventHandler handler = (EventHandler)Events[EventLoad];
if (handler != null) handler(this,e);
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
protected override void OnPaintBackground(PaintEventArgs e) {
ToolStripContentPanelRenderEventArgs rea = new ToolStripContentPanelRenderEventArgs(e.Graphics, this);
Renderer.DrawToolStripContentPanelBackground(rea);
if (!rea.Handled) {
base.OnPaintBackground(e);
}
}
///
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
protected virtual void OnRendererChanged(EventArgs e) {
// we dont want to be greedy.... if we're using TSProfessionalRenderer go DBuf, else dont.
if (Renderer is ToolStripProfessionalRenderer) {
state[stateLastDoubleBuffer] = this.DoubleBuffered;
//this.DoubleBuffered = true;
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
}
else {
// restore DBuf
this.DoubleBuffered = state[stateLastDoubleBuffer];
}
Renderer.InitializeContentPanel(this);
this.Invalidate();
EventHandler handler = (EventHandler)Events[EventRendererChanged];
if (handler != null) handler(this,e);
}
private void ResetRenderMode() {
this.RendererSwitcher.ResetRenderMode();
}
private bool ShouldSerializeRenderMode() {
return this.RendererSwitcher.ShouldSerializeRenderMode();
}
}
}
// 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
- StyleCollection.cs
- Brushes.cs
- StrokeCollectionDefaultValueFactory.cs
- TreeViewItem.cs
- CookieProtection.cs
- SerializationEventsCache.cs
- SamlAssertionKeyIdentifierClause.cs
- ComboBoxDesigner.cs
- AdjustableArrowCap.cs
- CreateUserWizardStep.cs
- HttpResponseHeader.cs
- CompensatableSequenceActivity.cs
- DBDataPermissionAttribute.cs
- ErrorView.xaml.cs
- ObjectDataSourceView.cs
- SID.cs
- SqlDataSourceConfigureSelectPanel.cs
- StreamHelper.cs
- ToolStripItemEventArgs.cs
- ProgressBarRenderer.cs
- EntityType.cs
- EntityContainerEmitter.cs
- SqlConnection.cs
- SetState.cs
- PreloadHost.cs
- UpDownBaseDesigner.cs
- AppDomainShutdownMonitor.cs
- FormattedText.cs
- TextLineBreak.cs
- FormsAuthenticationUser.cs
- TextElementCollectionHelper.cs
- CompositeControl.cs
- FlowLayout.cs
- CodeRemoveEventStatement.cs
- XmlC14NWriter.cs
- ColorConverter.cs
- DesignerView.Commands.cs
- DataPagerCommandEventArgs.cs
- HostingEnvironmentWrapper.cs
- TextTreeInsertUndoUnit.cs
- DataControlFieldCell.cs
- COM2ExtendedUITypeEditor.cs
- AddInContractAttribute.cs
- QilPatternFactory.cs
- RuleProcessor.cs
- FilterFactory.cs
- ListViewAutomationPeer.cs
- StringUtil.cs
- MediaContextNotificationWindow.cs
- ProfileService.cs
- CannotUnloadAppDomainException.cs
- ZipIOExtraFieldPaddingElement.cs
- MSAANativeProvider.cs
- ResourceDisplayNameAttribute.cs
- Qualifier.cs
- bindurihelper.cs
- COM2Properties.cs
- FileUpload.cs
- Grant.cs
- ForceCopyBuildProvider.cs
- XmlSchemaInfo.cs
- SafeCoTaskMem.cs
- CorruptingExceptionCommon.cs
- ProxyWebPartConnectionCollection.cs
- DataBindingExpressionBuilder.cs
- SymbolUsageManager.cs
- MachineKeyConverter.cs
- Size3D.cs
- ExpressionBuilderContext.cs
- FrameworkTemplate.cs
- HttpFileCollection.cs
- ExternalFile.cs
- EncodingDataItem.cs
- ActivityDesigner.cs
- FontClient.cs
- Transform3D.cs
- Completion.cs
- DiagnosticsConfiguration.cs
- DesignSurfaceCollection.cs
- TabItem.cs
- ApplicationException.cs
- HttpModuleAction.cs
- IsolatedStorageFilePermission.cs
- DesignerImageAdapter.cs
- BookmarkResumptionRecord.cs
- WsatExtendedInformation.cs
- translator.cs
- PersistenceProviderBehavior.cs
- ValueExpressions.cs
- ListParaClient.cs
- SqlRemoveConstantOrderBy.cs
- HyperLinkDataBindingHandler.cs
- CursorConverter.cs
- SHA384.cs
- SelectionGlyphBase.cs
- StrokeDescriptor.cs
- WebBrowserContainer.cs
- Permission.cs
- DbProviderManifest.cs
- GeneralTransform.cs