Code:
/ DotNET / DotNET / 8.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
- TextSegment.cs
- StrokeCollection.cs
- ImageFormatConverter.cs
- FillErrorEventArgs.cs
- ReadOnlyDictionary.cs
- DocumentCollection.cs
- OleDbWrapper.cs
- ToolStripCodeDomSerializer.cs
- Missing.cs
- PerformanceCounterPermissionAttribute.cs
- IndependentlyAnimatedPropertyMetadata.cs
- MatchAllMessageFilter.cs
- RichTextBox.cs
- SingleResultAttribute.cs
- SchemaImporter.cs
- WorkBatch.cs
- XamlInt32CollectionSerializer.cs
- FunctionUpdateCommand.cs
- ViewStateModeByIdAttribute.cs
- OleDbCommandBuilder.cs
- Trace.cs
- WaitHandleCannotBeOpenedException.cs
- SqlReorderer.cs
- GenericsInstances.cs
- VirtualizedCellInfoCollection.cs
- XmlMapping.cs
- TabControlAutomationPeer.cs
- PropertyGridCommands.cs
- ControlParameter.cs
- RoutedPropertyChangedEventArgs.cs
- EditingMode.cs
- X509CertificateValidator.cs
- Baml6Assembly.cs
- activationcontext.cs
- ToolboxItemFilterAttribute.cs
- HttpListenerResponse.cs
- SystemUdpStatistics.cs
- DetailsViewInsertedEventArgs.cs
- RequestCachingSection.cs
- ListViewItem.cs
- StrokeFIndices.cs
- ChooseAction.cs
- ZipQueryOperator.cs
- GridViewPageEventArgs.cs
- ComponentRenameEvent.cs
- X509Certificate2.cs
- XmlTextWriter.cs
- TextSchema.cs
- WaveHeader.cs
- Reference.cs
- Vector3DValueSerializer.cs
- InfoCardPolicy.cs
- OleDbFactory.cs
- EntityDataSourceWizardForm.cs
- DragEvent.cs
- AdornerDecorator.cs
- URLMembershipCondition.cs
- XmlSerializationWriter.cs
- PackageProperties.cs
- OciLobLocator.cs
- ExclusiveHandleList.cs
- SqlDependency.cs
- EntitySqlQueryBuilder.cs
- DataRowExtensions.cs
- SystemTcpConnection.cs
- XmlSchemaObjectCollection.cs
- DeploymentSection.cs
- SamlDoNotCacheCondition.cs
- WorkflowApplicationTerminatedException.cs
- ContentPresenter.cs
- Operand.cs
- CustomAttributeFormatException.cs
- HttpWebResponse.cs
- XmlElementElementCollection.cs
- AssemblySettingAttributes.cs
- DocumentViewerHelper.cs
- Bold.cs
- ServiceOperationWrapper.cs
- GeometryGroup.cs
- XmlBinaryReader.cs
- DBSchemaRow.cs
- ChannelServices.cs
- EdgeProfileValidation.cs
- BitmapEffectInputConnector.cs
- ComPlusInstanceProvider.cs
- FlowDocumentScrollViewer.cs
- MemoryRecordBuffer.cs
- GridEntryCollection.cs
- TreeIterator.cs
- SessionPageStatePersister.cs
- TrustManagerMoreInformation.cs
- PropertyConverter.cs
- ToolBar.cs
- ExpressionVisitor.cs
- securestring.cs
- WebPartTransformerAttribute.cs
- RMEnrollmentPage3.cs
- SeekStoryboard.cs
- ActivityBindForm.cs
- TransactionTraceIdentifier.cs