Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / ButtonInternal / CheckableControlBaseAdapter.cs / 1 / CheckableControlBaseAdapter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms.ButtonInternal {
using System;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;
using System.Windows.Forms;
///
/// Common class for RadioButtonBaseAdapter and CheckBoxBaseAdapter
///
internal abstract class CheckableControlBaseAdapter : ButtonBaseAdapter {
private const int standardCheckSize = 13;
private ButtonBaseAdapter buttonAdapter;
internal CheckableControlBaseAdapter(ButtonBase control) : base(control) {}
protected ButtonBaseAdapter ButtonAdapter {
get {
if (buttonAdapter == null) {
buttonAdapter = CreateButtonAdapter();
}
return buttonAdapter;
}
}
internal override Size GetPreferredSizeCore(Size proposedSize) {
if (Appearance == Appearance.Button) {
return ButtonAdapter.GetPreferredSizeCore(proposedSize);
}
using (Graphics measurementGraphics = WindowsFormsUtils.CreateMeasurementGraphics()) {
using (PaintEventArgs pe = new PaintEventArgs(measurementGraphics, new Rectangle())) {
LayoutOptions options = Layout(pe);
return options.GetPreferredSizeCore(proposedSize);
}
}
}
protected abstract ButtonBaseAdapter CreateButtonAdapter();
private Appearance Appearance {
get {
CheckBox checkBox = Control as CheckBox;
if(checkBox != null) {
return checkBox.Appearance;
}
RadioButton radioButton = Control as RadioButton;
if(radioButton != null) {
return radioButton.Appearance;
}
Debug.Fail("Unexpected control type '" + Control.GetType().FullName + "'");
return Appearance.Normal;
}
}
internal override LayoutOptions CommonLayout() {
LayoutOptions layout = base.CommonLayout();
layout.growBorderBy1PxWhenDefault = false;
layout.borderSize = 0;
layout.paddingSize = 0;
layout.maxFocus = false;
layout.focusOddEvenFixup = true;
layout.checkSize = standardCheckSize;
return layout;
}
}
}
// 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
- Rect.cs
- AppDomainProtocolHandler.cs
- SamlSubject.cs
- GetPolicyDetailsRequest.cs
- ObjectToken.cs
- BaseValidator.cs
- MobileFormsAuthentication.cs
- DataGridViewDataErrorEventArgs.cs
- QilTargetType.cs
- figurelengthconverter.cs
- ResourceSetExpression.cs
- SqlExpander.cs
- HebrewCalendar.cs
- GetReadStreamResult.cs
- Keyboard.cs
- SynchronizationLockException.cs
- Int32AnimationBase.cs
- DbProviderFactoriesConfigurationHandler.cs
- Deflater.cs
- MatrixTransform.cs
- Expressions.cs
- DbConnectionOptions.cs
- AttributeAction.cs
- RangeValidator.cs
- HtmlUtf8RawTextWriter.cs
- DataGridGeneralPage.cs
- basecomparevalidator.cs
- OracleDataReader.cs
- XmlWrappingReader.cs
- LineSegment.cs
- RegionData.cs
- ImageBrush.cs
- EntityCommand.cs
- EncryptedKeyHashIdentifierClause.cs
- SiteMapDesignerDataSourceView.cs
- DataSourceDescriptorCollection.cs
- Margins.cs
- ExpressionLexer.cs
- SRGSCompiler.cs
- ImageConverter.cs
- ToolboxComponentsCreatingEventArgs.cs
- MarkupCompilePass2.cs
- WebBrowserHelper.cs
- DBPropSet.cs
- SqlVersion.cs
- ArgumentNullException.cs
- ToolStripHighContrastRenderer.cs
- HttpGetClientProtocol.cs
- GridViewRowEventArgs.cs
- TextDpi.cs
- ExtensionFile.cs
- AlignmentYValidation.cs
- WpfSharedBamlSchemaContext.cs
- CompiledELinqQueryState.cs
- FunctionUpdateCommand.cs
- EntityCommand.cs
- InsufficientMemoryException.cs
- ConnectionProviderAttribute.cs
- StoreItemCollection.cs
- DBDataPermission.cs
- BitFlagsGenerator.cs
- CodeDelegateCreateExpression.cs
- Transactions.cs
- FormsAuthenticationTicket.cs
- ConfigurationStrings.cs
- WebPartZone.cs
- DecimalFormatter.cs
- FilteredAttributeCollection.cs
- XmlSchemaProviderAttribute.cs
- ComponentManagerBroker.cs
- MULTI_QI.cs
- Size.cs
- BitmapEffect.cs
- DefaultValueMapping.cs
- XslException.cs
- FileDataSourceCache.cs
- WindowsMenu.cs
- ValueTypePropertyReference.cs
- KeyGestureValueSerializer.cs
- Stopwatch.cs
- HostingEnvironmentSection.cs
- RecognizeCompletedEventArgs.cs
- RuntimeVariableList.cs
- ForeignKeyFactory.cs
- CompiledScopeCriteria.cs
- Parameter.cs
- Sql8ExpressionRewriter.cs
- ImageMap.cs
- grammarelement.cs
- FontUnit.cs
- WsdlContractConversionContext.cs
- EmulateRecognizeCompletedEventArgs.cs
- WebPartRestoreVerb.cs
- SiteMapPathDesigner.cs
- IconConverter.cs
- WebPartDisplayModeEventArgs.cs
- DefaultBinder.cs
- TextEffect.cs
- FamilyTypefaceCollection.cs
- ChannelPoolSettings.cs