/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #include "osx/salinst.h" #include "a11ywrappercombobox.h" #include "a11yrolehelper.h" #include using namespace ::com::sun::star::accessibility; using namespace ::com::sun::star::uno; // Wrapper for AXCombobox role @implementation AquaA11yWrapperComboBox : AquaA11yWrapper #pragma mark - #pragma mark Specialized Init Method -(id)initWithAccessibleContext: (Reference < XAccessibleContext >) rxAccessibleContext { self = [ super initWithAccessibleContext: rxAccessibleContext ]; if ( self != nil ) { textArea = nil; } return self; } #pragma mark - #pragma mark Private Helper Method -(AquaA11yWrapper *)textArea { // FIXME: May cause problems when stored. Then get dynamically each time (bad performance!) if ( textArea == nil ) { NSAutoreleasePool * pool = [ [ NSAutoreleasePool alloc ] init ]; NSArray * elementChildren = [ super childrenAttribute ]; if ( [ elementChildren count ] > 0 ) { NSEnumerator * enumerator = [ elementChildren objectEnumerator ]; id child; while ( ( child = [ enumerator nextObject ] ) ) { AquaA11yWrapper * element = ( AquaA11yWrapper * ) child; if ( [ [ AquaA11yRoleHelper getNativeRoleFrom: [ element accessibleContext ] ] isEqualToString: NSAccessibilityTextAreaRole ] ) { textArea = element; break; } } } [ pool release ]; } return textArea; } #pragma mark - #pragma mark Wrapped Attributes From Contained Text Area -(id)valueAttribute { if ( [ self textArea ] != nil ) { return [ [ self textArea ] valueAttribute ]; } return @""; } -(id)numberOfCharactersAttribute { if ( [ self textArea ] != nil ) { return [ [ self textArea ] numberOfCharactersAttribute ]; } return [ NSNumber numberWithInt: 0 ]; } -(id)selectedTextAttribute { if ( [ self textArea ] != nil ) { return [ [ self textArea ] selectedTextAttribute ]; } return @""; } -(id)selectedTextRangeAttribute { if ( [ self textArea ] != nil ) { return [ [ self textArea ] selectedTextRangeAttribute ]; } return [ NSValue valueWithRange: NSMakeRange ( 0, 0 ) ]; } -(id)visibleCharacterRangeAttribute { if ( [ self textArea ] != nil ) { return [ [ self textArea ] visibleCharacterRangeAttribute ]; } return [ NSValue valueWithRange: NSMakeRange ( 0, 0 ) ]; } #pragma mark - #pragma mark Accessibility Protocol -(BOOL)accessibilityIsAttributeSettable:(NSString *)attribute { if ( [ self textArea ] != nil && ( [ attribute isEqualToString: NSAccessibilitySelectedTextAttribute ] || [ attribute isEqualToString: NSAccessibilitySelectedTextRangeAttribute ] || [ attribute isEqualToString: NSAccessibilityVisibleCharacterRangeAttribute ] ) ) { return [ [ self textArea ] accessibilityIsAttributeSettable: attribute ]; } return [ super accessibilityIsAttributeSettable: attribute ]; } -(void)accessibilitySetValue:(id)value forAttribute:(NSString *)attribute { if ( [ self textArea ] != nil && ( [ attribute isEqualToString: NSAccessibilitySelectedTextAttribute ] || [ attribute isEqualToString: NSAccessibilitySelectedTextRangeAttribute ] || [ attribute isEqualToString: NSAccessibilityVisibleCharacterRangeAttribute ] ) ) { return [ [ self textArea ] accessibilitySetValue: value forAttribute: attribute ]; } return [ super accessibilitySetValue: value forAttribute: attribute ]; } -(NSArray *)accessibilityAttributeNames { // Default Attributes NSMutableArray * attributeNames = [ NSMutableArray arrayWithArray: [ super accessibilityAttributeNames ] ]; // Special Attributes and removing unwanted attributes depending on role [ attributeNames removeObjectsInArray: [ NSArray arrayWithObjects: NSAccessibilityTitleAttribute, NSAccessibilityChildrenAttribute, nil ] ]; [ attributeNames addObjectsFromArray: [ NSArray arrayWithObjects: NSAccessibilityExpandedAttribute, NSAccessibilityValueAttribute, NSAccessibilityNumberOfCharactersAttribute, NSAccessibilitySelectedTextAttribute, NSAccessibilitySelectedTextRangeAttribute, NSAccessibilityVisibleCharacterRangeAttribute, nil ] ]; return attributeNames; } @end /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ o/lhm/libreoffice-4-1-6+backports'>distro/lhm/libreoffice-4-1-6+backports LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/instsetoo_native
AgeCommit message (Expand)Author
2013-03-31add $OUTDIR/pck to search path for SDK productDavid Tardon
2013-03-25Remove unneeded project and projectroot parametersZolnai Tamás
2013-03-03fixes for renaming LOdev builds to LibreOfficeDevLuboš Luňák
2013-03-02remove minor.mkMatúš Kukan
2013-03-01rename LOdev builds to LibreOfficeDevPetr Mladek
2013-02-27fix: BUILDDIR is not always SRCDIRNorbert Thiebaud
2013-02-27move instsetoo_native to gbuildBjoern Michaelsen
2013-02-26instsetoo_native: fix helppack generationAndras Timar
2013-02-26instsetoo_native: fix localizationAndras Timar
2013-02-24instsetoo_native: convert to gbuildPeter Foley
2013-02-22s/the the/the/Tor Lillqvist
2013-02-18Update Branding for 4.0 (.1)Stefan Knorr
2013-02-01use correct default values for the splash progressbarPetr Mladek
2013-02-01Add option to set bundle identifier and use it when signingTor Lillqvist
2013-01-30convert SetAdminInstallProperty CustomAction to type 51Andras Timar
2013-01-30we don't build language packs on WindowsAndras Timar
2013-01-30Consolidated branding in configureMathias Michel
2013-01-18installer: remove SHORT_PRODUCTEXTENSIONMichael Stahl
2013-01-18installer: remove SERVICETAG remnants of product registrationMichael Stahl
2013-01-16there is no standalone URE installationMatúš Kukan
2013-01-16Generate also the ABOUTBOXPRODUCTVERSIONSUFFIX from the AC_INITTor Lillqvist
2013-01-16Remove unused variablesTor Lillqvist
2013-01-14Ignore and distclean generated filesStephan Bergmann
2013-01-12Expand also openoffice.lst for version numbers from configuryTor Lillqvist
2013-01-07use "LibreOffice" instead of "LibO" for final download file namesPetr Mladek
2012-12-26Fix the MSVC build with --without-helpTor Lillqvist
2012-12-25Get rid of (most uses of) GUITor Lillqvist
2012-12-24merge packimages into postprocessMatúš Kukan
2012-12-14Make KeyID (qtz) work againAndras Timar
2012-12-06fdo#57927: Clarify msi installer only installs subset of dicts by defaultStephan Bergmann
2012-12-04bump product version to 4.1.0.0.alpha0+, build id to 0Petr Mladek
2012-11-21remove qtz temporarily, until it works again reliablyAndras Timar
2012-11-20translations is a source-only moduleAndras Timar
2012-11-20bump product version to 4.0.0.0.alpha1+, release number to 1Petr Mladek
2012-11-15re-base on ALv2 code. Includes:Michael Meeks
2012-11-12bump version to 4.0.0.0.alpha0+Petr Mladek
2012-10-07fix msm suport for VS2012Peter Foley
2012-09-26use utf-8 instead of legacy code pages in all msi tables (related: fdo#39595)Andras Timar
2012-09-23followup of bccb30a0Andras Timar
2012-09-09fdo#52946 We don't need the productname multiple times in install dialogsAndras Timar
2012-09-08remove SelfReg table from MSIAndras Timar
2012-08-16Fix Windows dev-install for --enable-release-build, --with-lang=... etc.Stephan Bergmann
2012-08-13remove already removed SetInstallLocation from install sequencesAndras Timar
2012-08-10Related fdo#51252: No more prereg, no more unopkg syncStephan Bergmann
2012-07-24Kill FORCE2ARCHIVE.Jan Holesovsky