Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / AccessibleTech / longhorn / Automation / Win32Providers / MS / Internal / AutomationProxies / WindowsToolbarItemAsMenuItem.cs / 1 / WindowsToolbarItemAsMenuItem.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Some applications implement menus with toolbars. This proxy // will used the IAccessible to expose these toolbar items as // menu items. This proxy is derived from ToolbarItem since // the underlying control really is a toolbar and ToolbarItem // knows how to communicate with a toolbars to get information for // toolbar items already. // // History: // 01/31/2005 : [....] Created //--------------------------------------------------------------------------- using System; using System.Windows.Automation; using MS.Win32; namespace MS.Internal.AutomationProxies { class ToolbarItemAsMenuItem : ToolbarItem { // ----------------------------------------------------- // // Constructors // // ----------------------------------------------------- #region Constructors internal ToolbarItemAsMenuItem(IntPtr hwnd, ProxyFragment parent, int item, int idCommand, Accessible acc) : base(hwnd, parent, item, idCommand) { _acc = acc; // Set the control type based on the IAccessible role. AccessibleRole role = acc.Role; if (role == AccessibleRole.MenuItem) { _cControlType = ControlType.MenuItem; } else { System.Diagnostics.Debug.Assert(false, "Unexpected role " + role); } // MenuItems are by default KeyboardFocusable. _fIsKeyboardFocusable = true; } #endregion // ------------------------------------------------------ // // Patterns Implementation // // ----------------------------------------------------- #region ProxySimple Interface // Returns a pattern interface if supported. internal override object GetPatternProvider (AutomationPattern iid) { // Treate these toolbar items as menuitems and only support Invoke or Expand/Collapse patterns. // Invoke Pattern needs to be supported when the item has no children. When the item does have // children it needs to support ExpandCollapse Pattern. // Check if button is a separator if (IsSeparator()) { return null; } // Check if button is disabled if (Misc.ProxySendMessageInt(_hwnd, NativeMethods.TB_ISBUTTONENABLED, new IntPtr(_idCommand), IntPtr.Zero) == 0) { return null; } // Check if button is hidden if (Misc.ProxySendMessageInt(_hwnd, NativeMethods.TB_ISBUTTONHIDDEN, new IntPtr(_idCommand), IntPtr.Zero) != 0) { return null; } // if (iid == InvokePattern.Pattern) { // button is enabled and not hidden and not a separator return this; } // return null; } // Process all the Element Properties internal override object GetElementProperty(AutomationProperty idProp) { if (idProp == AutomationElement.HasKeyboardFocusProperty) { return IsFocused(); } return base.GetElementProperty(idProp); } #endregion // ------------------------------------------------------ // // Private Fields // // ------------------------------------------------------ #region Private Fields Accessible _acc; #endregion } } // 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
- UserInitiatedNavigationPermission.cs
- PerformanceCounterManager.cs
- WsdlEndpointConversionContext.cs
- GridViewColumnHeader.cs
- OracleParameterCollection.cs
- DateTimeSerializationSection.cs
- IsolatedStorageFilePermission.cs
- FormsAuthenticationUserCollection.cs
- StringFunctions.cs
- TileBrush.cs
- StringArrayConverter.cs
- MultilineStringConverter.cs
- TaskForm.cs
- TypeSystemHelpers.cs
- MessageQueueConverter.cs
- _NegoStream.cs
- MediaSystem.cs
- CatchBlock.cs
- QueryRewriter.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- XmlNodeChangedEventArgs.cs
- SecurityDescriptor.cs
- PreviewKeyDownEventArgs.cs
- WorkflowApplicationEventArgs.cs
- RadioButtonPopupAdapter.cs
- StreamReader.cs
- SEHException.cs
- DataPagerFieldCollection.cs
- shaperfactory.cs
- XPathScanner.cs
- BitmapInitialize.cs
- EqualityComparer.cs
- DataTablePropertyDescriptor.cs
- IteratorFilter.cs
- SqlRewriteScalarSubqueries.cs
- DbProviderFactory.cs
- WebPartEventArgs.cs
- ListViewDeleteEventArgs.cs
- InvokePattern.cs
- RSAProtectedConfigurationProvider.cs
- _NetworkingPerfCounters.cs
- SqlWebEventProvider.cs
- SliderAutomationPeer.cs
- CroppedBitmap.cs
- UpdatePanel.cs
- CodeIdentifier.cs
- ReadOnlyCollection.cs
- StandardCommands.cs
- RegexTypeEditor.cs
- ExtendedPropertyCollection.cs
- SizeChangedEventArgs.cs
- PointAnimationClockResource.cs
- AnimationException.cs
- DrawingAttributeSerializer.cs
- SuppressMessageAttribute.cs
- HtmlInputPassword.cs
- DesignerActionItem.cs
- ClientRuntimeConfig.cs
- Socket.cs
- DataGridViewColumnHeaderCell.cs
- ContainerUtilities.cs
- XmlUrlEditor.cs
- ShapingEngine.cs
- ComponentEditorForm.cs
- DropDownButton.cs
- SqlConnectionString.cs
- XmlSchemaType.cs
- BitmapVisualManager.cs
- EntryIndex.cs
- Permission.cs
- AnnouncementEndpoint.cs
- CommunicationObjectAbortedException.cs
- CustomTypeDescriptor.cs
- XamlPoint3DCollectionSerializer.cs
- PLINQETWProvider.cs
- ToolStripTextBox.cs
- HashRepartitionEnumerator.cs
- SafeEventLogWriteHandle.cs
- EntityDataSourceReferenceGroup.cs
- HttpApplicationFactory.cs
- TextTreeUndo.cs
- FormsAuthenticationUser.cs
- StateInitializationDesigner.cs
- XamlToRtfWriter.cs
- ExceptionHandlers.cs
- DataGridCaption.cs
- Pool.cs
- FlowDocumentReader.cs
- ExitEventArgs.cs
- DbXmlEnabledProviderManifest.cs
- IconHelper.cs
- URLAttribute.cs
- Asn1IntegerConverter.cs
- WindowsGraphicsCacheManager.cs
- HebrewNumber.cs
- HttpPostServerProtocol.cs
- EnumerableCollectionView.cs
- Viewport2DVisual3D.cs
- FamilyMapCollection.cs
- TextBoxAutomationPeer.cs