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
- CustomTypeDescriptor.cs
- PipelineModuleStepContainer.cs
- BinaryObjectWriter.cs
- Graph.cs
- ExceptionRoutedEventArgs.cs
- RoleGroupCollection.cs
- EmptyQuery.cs
- Double.cs
- ProfileGroupSettingsCollection.cs
- BuildProviderCollection.cs
- ObjectDataSourceChooseTypePanel.cs
- ObjectDataSourceMethodEventArgs.cs
- AbstractDataSvcMapFileLoader.cs
- Soap.cs
- StorageMappingItemCollection.cs
- GeometryValueSerializer.cs
- DetailsViewInsertEventArgs.cs
- SchemaCollectionCompiler.cs
- SchemaTypeEmitter.cs
- Tracer.cs
- ControlCachePolicy.cs
- HttpUnhandledOperationInvoker.cs
- httpstaticobjectscollection.cs
- AuthenticationServiceManager.cs
- Scripts.cs
- CheckBoxField.cs
- SQLBinary.cs
- VerificationAttribute.cs
- XmlCodeExporter.cs
- SapiRecoInterop.cs
- TaskForm.cs
- Pair.cs
- SqlFlattener.cs
- odbcmetadatacolumnnames.cs
- EpmSourcePathSegment.cs
- TraceUtils.cs
- DeploymentSectionCache.cs
- glyphs.cs
- DesignerOptions.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- MustUnderstandBehavior.cs
- ItemCollection.cs
- Rss20FeedFormatter.cs
- ConnectionConsumerAttribute.cs
- QilReplaceVisitor.cs
- ValueChangedEventManager.cs
- Accessors.cs
- _NegotiateClient.cs
- _ShellExpression.cs
- CompiledQuery.cs
- Matrix3DStack.cs
- Point3DAnimation.cs
- ValidatorUtils.cs
- ScriptManager.cs
- DocumentEventArgs.cs
- CodeCompiler.cs
- Message.cs
- RijndaelManagedTransform.cs
- ScriptReferenceEventArgs.cs
- ObjectConverter.cs
- TextHidden.cs
- DataSourceSelectArguments.cs
- TemplateBamlTreeBuilder.cs
- CompModSwitches.cs
- RSAProtectedConfigurationProvider.cs
- CleanUpVirtualizedItemEventArgs.cs
- Converter.cs
- PresentationAppDomainManager.cs
- AddressHeaderCollectionElement.cs
- SqlLiftIndependentRowExpressions.cs
- PrivacyNoticeBindingElement.cs
- HttpCapabilitiesSectionHandler.cs
- AuthStoreRoleProvider.cs
- ControlCachePolicy.cs
- DelegateCompletionCallbackWrapper.cs
- AdornerDecorator.cs
- SimpleRecyclingCache.cs
- HyperLinkStyle.cs
- mediaeventshelper.cs
- ColorPalette.cs
- DataGridPageChangedEventArgs.cs
- FontUnitConverter.cs
- AnimationClock.cs
- TypeContext.cs
- SqlConnection.cs
- ManagementOperationWatcher.cs
- WebProxyScriptElement.cs
- Unit.cs
- CryptoSession.cs
- HandleExceptionArgs.cs
- HttpWriter.cs
- IItemProperties.cs
- OdbcTransaction.cs
- SiteMapHierarchicalDataSourceView.cs
- LogicalExpr.cs
- MenuItemCollection.cs
- EntityCommandCompilationException.cs
- SoapClientMessage.cs
- IODescriptionAttribute.cs
- ToolStripPanel.cs