Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / Win32Providers / MS / Internal / AutomationProxies / WindowsToolbarItemAsMenuItem.cs / 1305600 / 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
- DuplicateDetector.cs
- FileEnumerator.cs
- GenericIdentity.cs
- PauseStoryboard.cs
- TransactionBehavior.cs
- ModulesEntry.cs
- SmiEventSink_DeferedProcessing.cs
- WebControlsSection.cs
- WindowShowOrOpenTracker.cs
- DataKeyArray.cs
- TypeForwardedToAttribute.cs
- SystemNetworkInterface.cs
- XmlCollation.cs
- DataBindingCollection.cs
- AddingNewEventArgs.cs
- OpCopier.cs
- ServiceReflector.cs
- X509CertificateStore.cs
- XmlEntity.cs
- DataError.cs
- GridViewItemAutomationPeer.cs
- NodeLabelEditEvent.cs
- Rfc2898DeriveBytes.cs
- GroupBox.cs
- HitTestParameters3D.cs
- MenuItemAutomationPeer.cs
- RuntimeUtils.cs
- ElementAction.cs
- SmiXetterAccessMap.cs
- SwitchAttribute.cs
- StreamingContext.cs
- RegisterInfo.cs
- SystemIcmpV4Statistics.cs
- HierarchicalDataTemplate.cs
- Line.cs
- XPathDocumentIterator.cs
- ReaderWriterLockSlim.cs
- streamingZipPartStream.cs
- UpdateCommand.cs
- InputBindingCollection.cs
- CustomWebEventKey.cs
- KeyMatchBuilder.cs
- RequestSecurityTokenSerializer.cs
- NetworkInformationException.cs
- XamlPathDataSerializer.cs
- DeploymentSectionCache.cs
- FontFamilyValueSerializer.cs
- ExecutedRoutedEventArgs.cs
- SafeNativeMethods.cs
- ProjectionRewriter.cs
- TransformGroup.cs
- UIPermission.cs
- FileVersion.cs
- GridViewCancelEditEventArgs.cs
- DelegatingMessage.cs
- WaitHandleCannotBeOpenedException.cs
- DelegateHelpers.cs
- columnmapfactory.cs
- _AutoWebProxyScriptEngine.cs
- MailMessageEventArgs.cs
- AdCreatedEventArgs.cs
- ContainerVisual.cs
- SettingsProperty.cs
- SiteMapNodeItemEventArgs.cs
- ExternalCalls.cs
- PerspectiveCamera.cs
- XmlParser.cs
- EventBuilder.cs
- SecurityManager.cs
- SafeProcessHandle.cs
- HtmlInputSubmit.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ColorTranslator.cs
- NetworkAddressChange.cs
- SplitterPanelDesigner.cs
- OpCellTreeNode.cs
- WaitForChangedResult.cs
- DataObject.cs
- StatusBarItemAutomationPeer.cs
- MetadataItem_Static.cs
- HttpServerVarsCollection.cs
- BreadCrumbTextConverter.cs
- CollectionTraceRecord.cs
- TextAdaptor.cs
- SecurityKeyUsage.cs
- EventLogEntry.cs
- UnsafeNativeMethods.cs
- propertytag.cs
- RoutedEventArgs.cs
- RuntimeConfigLKG.cs
- DefaultWorkflowSchedulerService.cs
- ShapeTypeface.cs
- VectorCollectionConverter.cs
- UpDownEvent.cs
- IPEndPoint.cs
- MediaEntryAttribute.cs
- CodeBinaryOperatorExpression.cs
- WCFServiceClientProxyGenerator.cs
- FileSystemInfo.cs
- IntSecurity.cs