Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ButtonInternal / CheckableControlBaseAdapter.cs / 1305376 / 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; } internal static float GetDpiScaleRatio(Graphics g) { if (g == null) return 1.0F; return g.DpiX / 96; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// 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; } internal static float GetDpiScaleRatio(Graphics g) { if (g == null) return 1.0F; return g.DpiX / 96; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- VectorKeyFrameCollection.cs
- DynamicResourceExtension.cs
- XmlText.cs
- Content.cs
- File.cs
- listviewsubitemcollectioneditor.cs
- AssemblyNameProxy.cs
- UrlAuthorizationModule.cs
- ConfigXmlText.cs
- ConfigXmlWhitespace.cs
- FixedSOMImage.cs
- columnmapkeybuilder.cs
- SoapSchemaImporter.cs
- CopyCodeAction.cs
- AppSettingsReader.cs
- ConfigurationValue.cs
- CompensateDesigner.cs
- SymLanguageVendor.cs
- SqlServices.cs
- MatrixUtil.cs
- ErrorTableItemStyle.cs
- CSharpCodeProvider.cs
- ProtocolsConfigurationEntry.cs
- IISUnsafeMethods.cs
- GeometryValueSerializer.cs
- OrderPreservingSpoolingTask.cs
- Icon.cs
- TextReader.cs
- NonParentingControl.cs
- CodeVariableReferenceExpression.cs
- WeakReference.cs
- SmiRequestExecutor.cs
- TreeNodeSelectionProcessor.cs
- HttpCacheVaryByContentEncodings.cs
- Crc32.cs
- AutomationProperties.cs
- OpCellTreeNode.cs
- InvokeAction.cs
- HitTestWithPointDrawingContextWalker.cs
- XmlAttribute.cs
- SerialReceived.cs
- RowToParametersTransformer.cs
- LinkTarget.cs
- MasterPageCodeDomTreeGenerator.cs
- sitestring.cs
- ProgressBar.cs
- IProvider.cs
- AbstractSvcMapFileLoader.cs
- Region.cs
- Exceptions.cs
- userdatakeys.cs
- LayoutEvent.cs
- ScriptHandlerFactory.cs
- MediaElementAutomationPeer.cs
- Encoder.cs
- IApplicationTrustManager.cs
- XhtmlBasicImageAdapter.cs
- FunctionDescription.cs
- CompoundFileReference.cs
- Group.cs
- EndpointDesigner.cs
- Calendar.cs
- DeviceSpecific.cs
- DependencyPropertyHelper.cs
- SvcMapFile.cs
- COM2PropertyDescriptor.cs
- FlowDocument.cs
- MessageQueue.cs
- Odbc32.cs
- Decoder.cs
- AttributeProviderAttribute.cs
- ProxyWebPart.cs
- SchemaElementLookUpTable.cs
- AnnouncementEventArgs.cs
- ContentPlaceHolder.cs
- SecurityException.cs
- ObjectItemConventionAssemblyLoader.cs
- WindowsProgressbar.cs
- securitycriticaldataformultiplegetandset.cs
- TemplateXamlTreeBuilder.cs
- SettingsPropertyValue.cs
- GregorianCalendar.cs
- TextEvent.cs
- EnumValAlphaComparer.cs
- CultureSpecificStringDictionary.cs
- _TimerThread.cs
- TreeView.cs
- SiteMapDataSourceView.cs
- ConsoleEntryPoint.cs
- ConfigurationSchemaErrors.cs
- PanelDesigner.cs
- ReservationNotFoundException.cs
- __ConsoleStream.cs
- Console.cs
- BadImageFormatException.cs
- StylusCollection.cs
- PropertyConverter.cs
- UrlAuthorizationModule.cs
- TextRunTypographyProperties.cs
- JsonObjectDataContract.cs