Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / StatusCommandUI.cs / 1 / StatusCommandUI.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Windows.Forms.Design { using System.Design; using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System; using System.Collections; using Microsoft.Win32; using System.ComponentModel.Design; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.ComponentModel; using System.Windows.Forms.Design; using System.Windows.Forms.Design.Behavior; ////// /// This class provides a single entrypoint used by the Behaviors, KeySize and KeyMoves (in CommandSets) and SelectionService to update /// the StatusBar Information. /// internal class StatusCommandUI { MenuCommand statusRectCommand = null; IMenuCommandService menuService = null; IServiceProvider serviceProvider; public StatusCommandUI(IServiceProvider provider) { this.serviceProvider = provider; } ////// /// Retrieves the menu editor service, which we cache for speed. /// private IMenuCommandService MenuService { get { if (menuService == null) { menuService = (IMenuCommandService)serviceProvider.GetService(typeof(IMenuCommandService)); } return menuService; } } ////// /// Retrieves the actual StatusRectCommand, which we cache for speed. /// private MenuCommand StatusRectCommand { get { if (statusRectCommand == null) { if (MenuService != null) { statusRectCommand = MenuService.FindCommand(MenuCommands.SetStatusRectangle); } } return statusRectCommand; } } ////// /// Actual Function which invokes the command. /// public void SetStatusInformation(Component selectedComponent, Point location) { if (selectedComponent == null) { return; } Rectangle bounds = Rectangle.Empty; Control c = selectedComponent as Control; if (c != null) { bounds = c.Bounds; } else{ PropertyDescriptor BoundsProp = TypeDescriptor.GetProperties(selectedComponent)["Bounds"]; if (BoundsProp != null && typeof(Rectangle).IsAssignableFrom(BoundsProp.PropertyType)) { bounds = (Rectangle)BoundsProp.GetValue(selectedComponent); } } if (location != Point.Empty) { bounds.X = location.X; bounds.Y = location.Y; } if (StatusRectCommand != null) { StatusRectCommand.Invoke(bounds); } } ////// /// Actual Function which invokes the command. /// public void SetStatusInformation(Component selectedComponent) { if (selectedComponent == null) { return; } Rectangle bounds = Rectangle.Empty; Control c = selectedComponent as Control; if (c != null) { bounds = c.Bounds; } else{ PropertyDescriptor BoundsProp = TypeDescriptor.GetProperties(selectedComponent)["Bounds"]; if (BoundsProp != null && typeof(Rectangle).IsAssignableFrom(BoundsProp.PropertyType)) { bounds = (Rectangle)BoundsProp.GetValue(selectedComponent); } } if (StatusRectCommand != null) { StatusRectCommand.Invoke(bounds); } } ////// /// Actual Function which invokes the command. /// public void SetStatusInformation(Rectangle bounds) { if (StatusRectCommand != null) { StatusRectCommand.Invoke(bounds); } } } } // 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
- BitmapEffectGroup.cs
- CustomAttribute.cs
- InstanceDataCollection.cs
- SendParametersContent.cs
- DataSet.cs
- NullableDoubleMinMaxAggregationOperator.cs
- KeyedCollection.cs
- IsolatedStoragePermission.cs
- CodeTypeOfExpression.cs
- activationcontext.cs
- ObjectDataProvider.cs
- MultipleViewPattern.cs
- GraphicsState.cs
- HeaderElement.cs
- ScrollItemPattern.cs
- HtmlForm.cs
- Misc.cs
- Journaling.cs
- DataGridViewRowsRemovedEventArgs.cs
- isolationinterop.cs
- AncillaryOps.cs
- ConnectionPoint.cs
- FontFamilyConverter.cs
- ClientSession.cs
- XmlUnspecifiedAttribute.cs
- TabControlCancelEvent.cs
- ContainerVisual.cs
- TreeViewHitTestInfo.cs
- EncryptedKeyIdentifierClause.cs
- ContentValidator.cs
- PolyBezierSegment.cs
- DataGridRowAutomationPeer.cs
- XmlSchemaComplexContentRestriction.cs
- EncodingFallbackAwareXmlTextWriter.cs
- EdmToObjectNamespaceMap.cs
- EncryptedType.cs
- LinkButton.cs
- ReferencedType.cs
- PopupEventArgs.cs
- RegisteredScript.cs
- TimeStampChecker.cs
- DocumentPageHost.cs
- LightweightCodeGenerator.cs
- AxisAngleRotation3D.cs
- InstanceCreationEditor.cs
- XamlSerializerUtil.cs
- SystemEvents.cs
- RewritingProcessor.cs
- InitializationEventAttribute.cs
- HtmlInputSubmit.cs
- DeleteIndexBinder.cs
- ArraySubsetEnumerator.cs
- ExpressionBuilderCollection.cs
- XmlConvert.cs
- RijndaelManaged.cs
- InstanceDataCollection.cs
- StringAttributeCollection.cs
- ProcessHostServerConfig.cs
- mongolianshape.cs
- OleDbCommandBuilder.cs
- RegionIterator.cs
- AsyncInvokeContext.cs
- AsyncMethodInvoker.cs
- FileFormatException.cs
- AppSettingsExpressionBuilder.cs
- ColumnHeader.cs
- EncoderParameter.cs
- SeekableMessageNavigator.cs
- BCryptSafeHandles.cs
- EntityUtil.cs
- ModuleConfigurationInfo.cs
- WmfPlaceableFileHeader.cs
- isolationinterop.cs
- BindingSourceDesigner.cs
- TransformProviderWrapper.cs
- PrintEvent.cs
- Label.cs
- LoginUtil.cs
- SymmetricKeyWrap.cs
- XmlDataLoader.cs
- EmptyEnumerator.cs
- ValueTable.cs
- QueryableDataSourceView.cs
- FieldValue.cs
- XsdValidatingReader.cs
- FilterRepeater.cs
- AppDomainShutdownMonitor.cs
- DbProviderFactories.cs
- OutputCacheModule.cs
- MarkupCompilePass2.cs
- WsiProfilesElement.cs
- WpfGeneratedKnownTypes.cs
- ObjectConverter.cs
- CodeAttributeDeclarationCollection.cs
- DataGrid.cs
- QuaternionAnimation.cs
- WindowsStatic.cs
- SessionStateSection.cs
- DropAnimation.xaml.cs
- WebControl.cs