Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / WinForms / Managed / System / WinForms / ButtonInternal / CheckBoxStandardAdapter.cs / 1 / CheckBoxStandardAdapter.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; using System.Windows.Forms.Layout; internal sealed class CheckBoxStandardAdapter : CheckBoxBaseAdapter { internal CheckBoxStandardAdapter(ButtonBase control) : base(control) {} internal override void PaintUp(PaintEventArgs e, CheckState state) { if (Control.Appearance == Appearance.Button) { ButtonAdapter.PaintUp(e, Control.CheckState); } else { ColorData colors = PaintRender(e.Graphics).Calculate(); LayoutData layout = Layout(e).Layout(); PaintButtonBackground(e, Control.ClientRectangle, null); //minor adjustment to make sure the appearance is exactly the same as Win32 app. int focusRectFixup = layout.focus.X & 0x1; // if it's odd, subtract one pixel for fixup. if (!Application.RenderWithVisualStyles) { focusRectFixup = 1 - focusRectFixup; } if (!layout.options.everettButtonCompat) { layout.textBounds.Offset(-1, -1); } layout.imageBounds.Offset(-1, -1); layout.focus.Offset(-(focusRectFixup+1), -2); layout.focus.Width = layout.textBounds.Width + layout.imageBounds.Width - 1; layout.focus.Intersect(layout.textBounds); if( layout.options.textAlign != LayoutUtils.AnyLeft && layout.options.useCompatibleTextRendering && layout.options.font.Italic) { // fixup for GDI+ text rendering. VSW#515164 layout.focus.Width += 2; } PaintImage(e, layout); DrawCheckBox(e, layout); PaintField(e, layout, colors, colors.windowText, true); } } internal override void PaintDown(PaintEventArgs e, CheckState state) { if (Control.Appearance == Appearance.Button) { ButtonAdapter.PaintDown(e, Control.CheckState); } else { PaintUp(e, state); } } internal override void PaintOver(PaintEventArgs e, CheckState state) { if (Control.Appearance == Appearance.Button) { ButtonAdapter.PaintOver(e, Control.CheckState); } else { PaintUp(e, state); } } internal override Size GetPreferredSizeCore(Size proposedSize) { if (Control.Appearance == Appearance.Button) { ButtonStandardAdapter adapter = new ButtonStandardAdapter(Control); return adapter.GetPreferredSizeCore(proposedSize); } else { using (Graphics measurementGraphics = WindowsFormsUtils.CreateMeasurementGraphics()) { using (PaintEventArgs pe = new PaintEventArgs(measurementGraphics, new Rectangle())) { LayoutOptions options = Layout(pe); return options.GetPreferredSizeCore(proposedSize); } } } } #region Layout private new ButtonStandardAdapter ButtonAdapter { get { return ((ButtonStandardAdapter)base.ButtonAdapter); } } protected override ButtonBaseAdapter CreateButtonAdapter() { return new ButtonStandardAdapter(Control); } protected override LayoutOptions Layout(PaintEventArgs e) { LayoutOptions layout = CommonLayout(); layout.checkPaddingSize = 1; layout.everettButtonCompat = !Application.RenderWithVisualStyles; // VSWhidbey 420870 if (Application.RenderWithVisualStyles) { using (Graphics g = WindowsFormsUtils.CreateMeasurementGraphics()) { layout.checkSize = CheckBoxRenderer.GetGlyphSize(g, CheckBoxRenderer.ConvertFromButtonState(GetState(), true, Control.MouseIsOver)).Width; } } return layout; } #endregion } } // 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; using System.Windows.Forms.Layout; internal sealed class CheckBoxStandardAdapter : CheckBoxBaseAdapter { internal CheckBoxStandardAdapter(ButtonBase control) : base(control) {} internal override void PaintUp(PaintEventArgs e, CheckState state) { if (Control.Appearance == Appearance.Button) { ButtonAdapter.PaintUp(e, Control.CheckState); } else { ColorData colors = PaintRender(e.Graphics).Calculate(); LayoutData layout = Layout(e).Layout(); PaintButtonBackground(e, Control.ClientRectangle, null); //minor adjustment to make sure the appearance is exactly the same as Win32 app. int focusRectFixup = layout.focus.X & 0x1; // if it's odd, subtract one pixel for fixup. if (!Application.RenderWithVisualStyles) { focusRectFixup = 1 - focusRectFixup; } if (!layout.options.everettButtonCompat) { layout.textBounds.Offset(-1, -1); } layout.imageBounds.Offset(-1, -1); layout.focus.Offset(-(focusRectFixup+1), -2); layout.focus.Width = layout.textBounds.Width + layout.imageBounds.Width - 1; layout.focus.Intersect(layout.textBounds); if( layout.options.textAlign != LayoutUtils.AnyLeft && layout.options.useCompatibleTextRendering && layout.options.font.Italic) { // fixup for GDI+ text rendering. VSW#515164 layout.focus.Width += 2; } PaintImage(e, layout); DrawCheckBox(e, layout); PaintField(e, layout, colors, colors.windowText, true); } } internal override void PaintDown(PaintEventArgs e, CheckState state) { if (Control.Appearance == Appearance.Button) { ButtonAdapter.PaintDown(e, Control.CheckState); } else { PaintUp(e, state); } } internal override void PaintOver(PaintEventArgs e, CheckState state) { if (Control.Appearance == Appearance.Button) { ButtonAdapter.PaintOver(e, Control.CheckState); } else { PaintUp(e, state); } } internal override Size GetPreferredSizeCore(Size proposedSize) { if (Control.Appearance == Appearance.Button) { ButtonStandardAdapter adapter = new ButtonStandardAdapter(Control); return adapter.GetPreferredSizeCore(proposedSize); } else { using (Graphics measurementGraphics = WindowsFormsUtils.CreateMeasurementGraphics()) { using (PaintEventArgs pe = new PaintEventArgs(measurementGraphics, new Rectangle())) { LayoutOptions options = Layout(pe); return options.GetPreferredSizeCore(proposedSize); } } } } #region Layout private new ButtonStandardAdapter ButtonAdapter { get { return ((ButtonStandardAdapter)base.ButtonAdapter); } } protected override ButtonBaseAdapter CreateButtonAdapter() { return new ButtonStandardAdapter(Control); } protected override LayoutOptions Layout(PaintEventArgs e) { LayoutOptions layout = CommonLayout(); layout.checkPaddingSize = 1; layout.everettButtonCompat = !Application.RenderWithVisualStyles; // VSWhidbey 420870 if (Application.RenderWithVisualStyles) { using (Graphics g = WindowsFormsUtils.CreateMeasurementGraphics()) { layout.checkSize = CheckBoxRenderer.GetGlyphSize(g, CheckBoxRenderer.ConvertFromButtonState(GetState(), true, Control.MouseIsOver)).Width; } } return layout; } #endregion } } // 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
- _ShellExpression.cs
- ApplyImportsAction.cs
- FileDialogPermission.cs
- PublisherMembershipCondition.cs
- ToolStripDropDownItem.cs
- SHA1Managed.cs
- SettingsProviderCollection.cs
- QueryOperator.cs
- SafeCryptoHandles.cs
- SocketStream.cs
- MouseActionConverter.cs
- VerificationException.cs
- IconBitmapDecoder.cs
- HttpClientProtocol.cs
- DateTimeHelper.cs
- ParseChildrenAsPropertiesAttribute.cs
- XmlIlTypeHelper.cs
- ItemDragEvent.cs
- DesignerEditorPartChrome.cs
- BitmapDownload.cs
- Viewport3DVisual.cs
- EntityType.cs
- MessageSmuggler.cs
- DES.cs
- Run.cs
- ActivityExecutorSurrogate.cs
- WebBrowserNavigatingEventHandler.cs
- SelectionChangedEventArgs.cs
- FileDialog_Vista.cs
- MetadataFile.cs
- DrawItemEvent.cs
- BaseValidator.cs
- DataGridViewIntLinkedList.cs
- TextBoxLine.cs
- SelectionPattern.cs
- TextDocumentView.cs
- CodeRegionDirective.cs
- NestPullup.cs
- EUCJPEncoding.cs
- InputChannel.cs
- PieceDirectory.cs
- SqlServices.cs
- Debugger.cs
- ObjectDataSourceEventArgs.cs
- NavigationEventArgs.cs
- WebPartConnectionsCloseVerb.cs
- PersonalizationEntry.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- DocumentsTrace.cs
- GenerateHelper.cs
- ViewCellSlot.cs
- ReachDocumentSequenceSerializerAsync.cs
- ModelItemExtensions.cs
- HwndSource.cs
- CustomCategoryAttribute.cs
- VerticalAlignConverter.cs
- ReaderWriterLockWrapper.cs
- MasterPageParser.cs
- Underline.cs
- NullableBoolConverter.cs
- EncryptedXml.cs
- StylusPointDescription.cs
- Action.cs
- EraserBehavior.cs
- CodeGroup.cs
- DESCryptoServiceProvider.cs
- TextRangeAdaptor.cs
- EasingFunctionBase.cs
- SqlProviderManifest.cs
- InfiniteTimeSpanConverter.cs
- BufferedResponseStream.cs
- Menu.cs
- VisualTarget.cs
- AspNetHostingPermission.cs
- List.cs
- ObjectQuery.cs
- XPathSingletonIterator.cs
- HierarchicalDataSourceConverter.cs
- EventWaitHandleSecurity.cs
- FrameworkElement.cs
- XmlIterators.cs
- TreeView.cs
- SecondaryIndexDefinition.cs
- ScriptingSectionGroup.cs
- KeyProperty.cs
- SoapTypeAttribute.cs
- ScriptResourceHandler.cs
- CipherData.cs
- GridViewRowCollection.cs
- DefaultTraceListener.cs
- BinarySerializer.cs
- DesignerProperties.cs
- EndOfStreamException.cs
- WebPartConnectionsCancelVerb.cs
- sitestring.cs
- MULTI_QI.cs
- EventTrigger.cs
- ProfileEventArgs.cs
- RoutingBehavior.cs
- CodeIndexerExpression.cs