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
- LogSwitch.cs
- ProcessModelSection.cs
- WebExceptionStatus.cs
- EntityDataSourceDesigner.cs
- ActiveXHelper.cs
- ObjectViewFactory.cs
- TreeView.cs
- StylusEditingBehavior.cs
- DataObjectEventArgs.cs
- KnownBoxes.cs
- Inflater.cs
- XamlToRtfWriter.cs
- PersonalizationStateInfoCollection.cs
- ThemeInfoAttribute.cs
- StrokeNodeData.cs
- GifBitmapEncoder.cs
- PasswordBox.cs
- DomainUpDown.cs
- ProfileSettingsCollection.cs
- XPathNodeInfoAtom.cs
- MessageQueuePermissionEntry.cs
- WSUtilitySpecificationVersion.cs
- ApplicationBuildProvider.cs
- SqlDataSourceSelectingEventArgs.cs
- SqlNode.cs
- TypeInitializationException.cs
- KeyToListMap.cs
- WebBrowserNavigatedEventHandler.cs
- OleDbWrapper.cs
- ProgressBarRenderer.cs
- AnnotationMap.cs
- PostBackOptions.cs
- DataBindingCollection.cs
- WebPartVerbCollection.cs
- PartialTrustVisibleAssemblyCollection.cs
- dbdatarecord.cs
- TextEffectResolver.cs
- JsonFormatGeneratorStatics.cs
- InputLanguageProfileNotifySink.cs
- AssemblyBuilderData.cs
- HttpResponseWrapper.cs
- SoapDocumentServiceAttribute.cs
- PathTooLongException.cs
- ExtensibleClassFactory.cs
- TraceUtils.cs
- embossbitmapeffect.cs
- DataProviderNameConverter.cs
- ResXFileRef.cs
- Ticks.cs
- METAHEADER.cs
- IRCollection.cs
- ButtonColumn.cs
- SchemaNamespaceManager.cs
- FixedSOMPageConstructor.cs
- AccessKeyManager.cs
- OperationBehaviorAttribute.cs
- SecurityHelper.cs
- InlineCollection.cs
- TreeNodeCollection.cs
- ProcessModule.cs
- DateTimePickerDesigner.cs
- SqlConnectionStringBuilder.cs
- SqlClientFactory.cs
- AnimatedTypeHelpers.cs
- Int32KeyFrameCollection.cs
- XMLDiffLoader.cs
- XmlObjectSerializerReadContextComplexJson.cs
- WebPartUserCapability.cs
- SimpleTypesSurrogate.cs
- ECDsaCng.cs
- filewebresponse.cs
- ListBoxItem.cs
- RadioButtonList.cs
- CmsUtils.cs
- sqlnorm.cs
- BlobPersonalizationState.cs
- Base64Stream.cs
- ThreadAttributes.cs
- Selector.cs
- Automation.cs
- Grant.cs
- XpsResourcePolicy.cs
- DataSetMappper.cs
- WindowsStatic.cs
- GatewayDefinition.cs
- RegexWriter.cs
- DocumentOrderComparer.cs
- GeometryHitTestResult.cs
- QuaternionKeyFrameCollection.cs
- TransactionScope.cs
- FontUnitConverter.cs
- InstallerTypeAttribute.cs
- Graphics.cs
- LoginViewDesigner.cs
- FileDialog_Vista_Interop.cs
- OperatorExpressions.cs
- cookieexception.cs
- Matrix.cs
- SqlNodeTypeOperators.cs
- XPathNode.cs