Code:
/ FX-1434 / FX-1434 / 1.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
- ObjRef.cs
- NavigationProperty.cs
- OleDbCommand.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ProtectedConfiguration.cs
- CompiledAction.cs
- HtmlLinkAdapter.cs
- EventHandlersStore.cs
- DynamicEndpoint.cs
- FormsAuthenticationModule.cs
- Message.cs
- SecUtil.cs
- Function.cs
- XmlSchemaAny.cs
- UnsafeNativeMethods.cs
- Int32CAMarshaler.cs
- SystemException.cs
- NavigatorOutput.cs
- SerializationException.cs
- InfoCardArgumentException.cs
- SiteMapNodeCollection.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- RightsController.cs
- DatagridviewDisplayedBandsData.cs
- CharConverter.cs
- DataGridViewAutoSizeModeEventArgs.cs
- Control.cs
- ManifestResourceInfo.cs
- SqlCrossApplyToCrossJoin.cs
- CommonProperties.cs
- EntityExpressionVisitor.cs
- UnaryNode.cs
- GraphicsState.cs
- ActivityDesignerResources.cs
- DatePickerAutomationPeer.cs
- PriorityQueue.cs
- UndoEngine.cs
- HttpModuleCollection.cs
- MetadataException.cs
- MissingManifestResourceException.cs
- InputMethodStateChangeEventArgs.cs
- ProgressBarHighlightConverter.cs
- TextAutomationPeer.cs
- Int32Collection.cs
- XPathPatternParser.cs
- Brush.cs
- Base64Decoder.cs
- StoragePropertyMapping.cs
- ISAPIWorkerRequest.cs
- InitializerFacet.cs
- ConfigurationProviderException.cs
- XamlClipboardData.cs
- ToolBarButton.cs
- Activity.cs
- COM2PictureConverter.cs
- OperationDescriptionCollection.cs
- ToolStripItem.cs
- StylusCollection.cs
- OleDbTransaction.cs
- ClientBuildManagerCallback.cs
- RequestResponse.cs
- IListConverters.cs
- SubclassTypeValidatorAttribute.cs
- ModulesEntry.cs
- StringArrayConverter.cs
- InternalMappingException.cs
- AffineTransform3D.cs
- DictionaryBase.cs
- CodeIdentifier.cs
- EntityDescriptor.cs
- SafeFileHandle.cs
- AuthStoreRoleProvider.cs
- ImpersonateTokenRef.cs
- TabPage.cs
- Transform.cs
- CorePropertiesFilter.cs
- WebPartDescription.cs
- ButtonStandardAdapter.cs
- CookieProtection.cs
- DefaultObjectMappingItemCollection.cs
- PointAnimationUsingPath.cs
- ItemList.cs
- IgnoreFileBuildProvider.cs
- CodeDomConfigurationHandler.cs
- AssemblySettingAttributes.cs
- XsltLoader.cs
- OdbcConnectionFactory.cs
- StreamFormatter.cs
- SignedXml.cs
- ElementUtil.cs
- SoapProcessingBehavior.cs
- ProgressBarHighlightConverter.cs
- DrawingAttributeSerializer.cs
- PresentationAppDomainManager.cs
- WebPartsSection.cs
- ContextMenuStrip.cs
- ColumnCollection.cs
- TreeNodeStyle.cs
- TemplateKeyConverter.cs
- ChtmlImageAdapter.cs