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
- DrawingState.cs
- DataListItem.cs
- PrefixQName.cs
- TcpStreams.cs
- IndependentAnimationStorage.cs
- DataGridHeaderBorder.cs
- BrowserCapabilitiesCodeGenerator.cs
- SoapFormatterSinks.cs
- Delegate.cs
- LoadWorkflowAsyncResult.cs
- ErrorHandlerModule.cs
- ComponentCollection.cs
- CodeAttachEventStatement.cs
- MenuRendererStandards.cs
- XmlReaderDelegator.cs
- DataGridSortCommandEventArgs.cs
- FileVersion.cs
- DoubleAnimationUsingKeyFrames.cs
- RoleService.cs
- BooleanAnimationUsingKeyFrames.cs
- FlowDocumentReader.cs
- RsaSecurityKey.cs
- FormsIdentity.cs
- COM2PropertyDescriptor.cs
- ContextStack.cs
- BasePattern.cs
- Viewport3DAutomationPeer.cs
- SystemColorTracker.cs
- CorePropertiesFilter.cs
- OdbcConnectionFactory.cs
- AvTraceFormat.cs
- HttpInputStream.cs
- CryptoApi.cs
- XPathException.cs
- IsolatedStorage.cs
- XsltArgumentList.cs
- DesignerHelpers.cs
- Resources.Designer.cs
- SimpleTextLine.cs
- ToolStripPanelRenderEventArgs.cs
- InputMethodStateTypeInfo.cs
- _NegotiateClient.cs
- SecurityDocument.cs
- DataTableNameHandler.cs
- GPPOINTF.cs
- AppliedDeviceFiltersEditor.cs
- UserControl.cs
- Pair.cs
- UnsafeNativeMethods.cs
- MetadataCache.cs
- _NegoState.cs
- _AutoWebProxyScriptHelper.cs
- RegexWriter.cs
- PrintDocument.cs
- MultipleViewPattern.cs
- DelayedRegex.cs
- SafeRightsManagementEnvironmentHandle.cs
- FileDialogCustomPlacesCollection.cs
- CheckBoxField.cs
- ListViewGroup.cs
- OdbcReferenceCollection.cs
- _emptywebproxy.cs
- CollectionBuilder.cs
- HttpModuleAction.cs
- XmlRawWriterWrapper.cs
- OleDbCommand.cs
- DataGridCommandEventArgs.cs
- EntityTransaction.cs
- InstalledFontCollection.cs
- ControlAdapter.cs
- XhtmlCssHandler.cs
- ToolStripAdornerWindowService.cs
- SiteMembershipCondition.cs
- FaultCallbackWrapper.cs
- ListItemCollection.cs
- DesigntimeLicenseContext.cs
- XmlTextEncoder.cs
- ParallelForEach.cs
- TextParagraphCache.cs
- storepermission.cs
- HTMLTextWriter.cs
- ErasingStroke.cs
- QilPatternVisitor.cs
- ConstraintCollection.cs
- CustomErrorsSection.cs
- SerialReceived.cs
- QuaternionAnimationUsingKeyFrames.cs
- NumericUpDownAcceleration.cs
- MediaEntryAttribute.cs
- SqlMethodAttribute.cs
- ASCIIEncoding.cs
- HttpRuntime.cs
- AuthenticationModuleElement.cs
- ellipse.cs
- ToolStrip.cs
- BaseDataBoundControlDesigner.cs
- DataSvcMapFile.cs
- OrderablePartitioner.cs
- PackagePartCollection.cs
- DescendantOverDescendantQuery.cs