1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove 24*b1cdbd2cSJim Jagielski #include "precompiled_svx.hxx" 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski #include <svx/AccessibleSvxFindReplaceDialog.hxx> 27*b1cdbd2cSJim Jagielski 28*b1cdbd2cSJim Jagielski 29*b1cdbd2cSJim Jagielski #ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_ 30*b1cdbd2cSJim Jagielski #include "toolkit/awt/vclxwindow.hxx" 31*b1cdbd2cSJim Jagielski #endif 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski #ifndef _SVX_SRCHDLG_HXX 34*b1cdbd2cSJim Jagielski #include <svx/srchdlg.hxx> 35*b1cdbd2cSJim Jagielski #endif 36*b1cdbd2cSJim Jagielski 37*b1cdbd2cSJim Jagielski #ifndef _UTL_ACCESSIBLERELATIONSETHELPER_HXX_ 38*b1cdbd2cSJim Jagielski #include <unotools/accessiblerelationsethelper.hxx> 39*b1cdbd2cSJim Jagielski #endif 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLERELATIONTYPE_HPP_ 42*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/AccessibleRelationType.hpp> 43*b1cdbd2cSJim Jagielski #endif 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEGETACCFLOWTO_HPP_ 46*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleGetAccFlowTo.hpp> 47*b1cdbd2cSJim Jagielski #endif 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski using namespace ::com::sun::star; 50*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno; 51*b1cdbd2cSJim Jagielski VCLXAccessibleSvxFindReplaceDialog(VCLXWindow * pVCLXindow)52*b1cdbd2cSJim JagielskiVCLXAccessibleSvxFindReplaceDialog::VCLXAccessibleSvxFindReplaceDialog(VCLXWindow* pVCLXindow) 53*b1cdbd2cSJim Jagielski :VCLXAccessibleComponent( pVCLXindow ) 54*b1cdbd2cSJim Jagielski { 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski } 57*b1cdbd2cSJim Jagielski ~VCLXAccessibleSvxFindReplaceDialog()58*b1cdbd2cSJim JagielskiVCLXAccessibleSvxFindReplaceDialog::~VCLXAccessibleSvxFindReplaceDialog() 59*b1cdbd2cSJim Jagielski { 60*b1cdbd2cSJim Jagielski } 61*b1cdbd2cSJim Jagielski FillAccessibleRelationSet(utl::AccessibleRelationSetHelper & rRelationSet)62*b1cdbd2cSJim Jagielskivoid VCLXAccessibleSvxFindReplaceDialog::FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet ) 63*b1cdbd2cSJim Jagielski { 64*b1cdbd2cSJim Jagielski VCLXAccessibleComponent::FillAccessibleRelationSet( rRelationSet ); 65*b1cdbd2cSJim Jagielski Window* pDlg = GetWindow(); 66*b1cdbd2cSJim Jagielski if ( pDlg ) 67*b1cdbd2cSJim Jagielski { 68*b1cdbd2cSJim Jagielski SvxSearchDialog* pSrchDlg = static_cast<SvxSearchDialog*>( pDlg ); 69*b1cdbd2cSJim Jagielski Window* pDocWin = pSrchDlg->GetDocWin(); 70*b1cdbd2cSJim Jagielski if ( !pDocWin ) 71*b1cdbd2cSJim Jagielski { 72*b1cdbd2cSJim Jagielski return; 73*b1cdbd2cSJim Jagielski } 74*b1cdbd2cSJim Jagielski Reference < accessibility::XAccessible > xDocAcc = pDocWin->GetAccessible(); 75*b1cdbd2cSJim Jagielski if ( !xDocAcc.is() ) 76*b1cdbd2cSJim Jagielski { 77*b1cdbd2cSJim Jagielski return; 78*b1cdbd2cSJim Jagielski } 79*b1cdbd2cSJim Jagielski Reference< accessibility::XAccessibleGetAccFlowTo > xGetAccFlowTo( xDocAcc, UNO_QUERY ); 80*b1cdbd2cSJim Jagielski if ( !xGetAccFlowTo.is() ) 81*b1cdbd2cSJim Jagielski { 82*b1cdbd2cSJim Jagielski return; 83*b1cdbd2cSJim Jagielski } 84*b1cdbd2cSJim Jagielski Any aAny; 85*b1cdbd2cSJim Jagielski aAny <<= ( pSrchDlg->GetSrchFlag() ); 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski const sal_Int32 FORFINDREPLACEFLOWTO = 2; 88*b1cdbd2cSJim Jagielski uno::Sequence<uno::Any> aAnySeq = xGetAccFlowTo->get_AccFlowTo( aAny, FORFINDREPLACEFLOWTO ); 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski sal_Int32 nLen = aAnySeq.getLength(); 91*b1cdbd2cSJim Jagielski if ( nLen ) 92*b1cdbd2cSJim Jagielski { 93*b1cdbd2cSJim Jagielski uno::Sequence< uno::Reference< uno::XInterface > > aSequence( nLen ); 94*b1cdbd2cSJim Jagielski for ( sal_Int32 i = 0; i < nLen; i++ ) 95*b1cdbd2cSJim Jagielski { 96*b1cdbd2cSJim Jagielski uno::Reference < accessibility::XAccessible > xAcc; 97*b1cdbd2cSJim Jagielski aAnySeq[i] >>= xAcc; 98*b1cdbd2cSJim Jagielski aSequence[i] = xAcc; 99*b1cdbd2cSJim Jagielski } 100*b1cdbd2cSJim Jagielski rRelationSet.AddRelation( accessibility::AccessibleRelation( accessibility::AccessibleRelationType::CONTENT_FLOWS_TO, aSequence ) ); 101*b1cdbd2cSJim Jagielski } 102*b1cdbd2cSJim Jagielski } 103*b1cdbd2cSJim Jagielski } 104*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 105*b1cdbd2cSJim Jagielski // XServiceInfo 106*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 107*b1cdbd2cSJim Jagielski getImplementationName()108*b1cdbd2cSJim Jagielski::rtl::OUString VCLXAccessibleSvxFindReplaceDialog::getImplementationName() throw (RuntimeException) 109*b1cdbd2cSJim Jagielski { 110*b1cdbd2cSJim Jagielski return ::rtl::OUString::createFromAscii( "VCLXAccessibleSvxFindReplaceDialog" ); 111*b1cdbd2cSJim Jagielski } 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 114*b1cdbd2cSJim Jagielski getSupportedServiceNames()115*b1cdbd2cSJim JagielskiSequence< ::rtl::OUString > VCLXAccessibleSvxFindReplaceDialog::getSupportedServiceNames() throw (RuntimeException) 116*b1cdbd2cSJim Jagielski { 117*b1cdbd2cSJim Jagielski Sequence< ::rtl::OUString > aNames(1); 118*b1cdbd2cSJim Jagielski aNames[0] = ::rtl::OUString::createFromAscii( "VCLXAccessibleSvxFindReplaceDialog" ); 119*b1cdbd2cSJim Jagielski return aNames; 120*b1cdbd2cSJim Jagielski } 121