frmsel.cxx (f6e50924) | frmsel.cxx (9b8096d0) |
---|---|
1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance --- 16 unchanged lines hidden (view full) --- 25#include "precompiled_svx.hxx" 26#include <svx/frmsel.hxx> 27 28#include <algorithm> 29#include <math.h> 30#include "frmselimpl.hxx" 31#include "AccessibleFrameSelector.hxx" 32#include <svx/dialmgr.hxx> | 1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance --- 16 unchanged lines hidden (view full) --- 25#include "precompiled_svx.hxx" 26#include <svx/frmsel.hxx> 27 28#include <algorithm> 29#include <math.h> 30#include "frmselimpl.hxx" 31#include "AccessibleFrameSelector.hxx" 32#include <svx/dialmgr.hxx> |
33//IAccessibility2 Implementation 2009----- 34#include <com/sun/star/accessibility/AccessibleEventId.hpp> 35#ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLESTATETYPE_HDL_ 36#include <com/sun/star/accessibility/AccessibleStateType.hpp> 37#endif 38//-----IAccessibility2 Implementation 2009 |
|
33 34#ifndef _SVX_DIALOGS_HRC 35#include <svx/dialogs.hrc> 36#endif 37#ifndef SVX_FRMSEL_HRC 38#include "frmsel.hrc" 39#endif 40 41#include <tools/rcid.h> 42 43namespace svx { 44 45using ::com::sun::star::uno::Reference; | 39 40#ifndef _SVX_DIALOGS_HRC 41#include <svx/dialogs.hrc> 42#endif 43#ifndef SVX_FRMSEL_HRC 44#include "frmsel.hrc" 45#endif 46 47#include <tools/rcid.h> 48 49namespace svx { 50 51using ::com::sun::star::uno::Reference; |
52//IAccessibility2 Implementation 2009----- 53using ::com::sun::star::uno::Any; |
|
46using ::com::sun::star::accessibility::XAccessible; | 54using ::com::sun::star::accessibility::XAccessible; |
47 | 55using namespace ::com::sun::star::accessibility; 56//-----IAccessibility2 Implementation 2009 |
48// ============================================================================ 49// global functions from framebordertype.hxx 50 51FrameBorderType GetFrameBorderTypeFromIndex( size_t nIndex ) 52{ 53 DBG_ASSERT( nIndex < (size_t)FRAMEBORDERTYPE_COUNT, 54 "svx::GetFrameBorderTypeFromIndex - invalid index" ); 55 return static_cast< FrameBorderType >( nIndex + 1 ); --- 635 unchanged lines hidden (view full) --- 691 mrFrameSel.Invalidate( INVALIDATE_NOERASE ); 692} 693 694// frame border state and style ----------------------------------------------- 695 696void FrameSelectorImpl::SetBorderState( FrameBorder& rBorder, FrameBorderState eState ) 697{ 698 DBG_ASSERT( rBorder.IsEnabled(), "svx::FrameSelectorImpl::SetBorderState - access to disabled border" ); | 57// ============================================================================ 58// global functions from framebordertype.hxx 59 60FrameBorderType GetFrameBorderTypeFromIndex( size_t nIndex ) 61{ 62 DBG_ASSERT( nIndex < (size_t)FRAMEBORDERTYPE_COUNT, 63 "svx::GetFrameBorderTypeFromIndex - invalid index" ); 64 return static_cast< FrameBorderType >( nIndex + 1 ); --- 635 unchanged lines hidden (view full) --- 700 mrFrameSel.Invalidate( INVALIDATE_NOERASE ); 701} 702 703// frame border state and style ----------------------------------------------- 704 705void FrameSelectorImpl::SetBorderState( FrameBorder& rBorder, FrameBorderState eState ) 706{ 707 DBG_ASSERT( rBorder.IsEnabled(), "svx::FrameSelectorImpl::SetBorderState - access to disabled border" ); |
708 //IAccessibility2 Implementation 2009----- 709 Any aOld; 710 Any aNew; 711 Any& rMod = eState == FRAMESTATE_SHOW ? aNew : aOld; 712 rMod <<= AccessibleStateType::CHECKED; 713 Reference< XAccessible > xRet; 714 size_t nVecIdx = static_cast< size_t >( rBorder.GetType() ); 715 if( GetBorder(rBorder.GetType()).IsEnabled() && (1 <= nVecIdx) && (nVecIdx <= maChildVec.size()) ) 716 xRet = mxChildVec[ --nVecIdx ]; 717 a11y::AccFrameSelector* pFrameSelector = static_cast<a11y::AccFrameSelector*>(xRet.get()); 718 |
|
699 if( eState == FRAMESTATE_SHOW ) 700 SetBorderCoreStyle( rBorder, &maCurrStyle ); 701 else 702 rBorder.SetState( eState ); | 719 if( eState == FRAMESTATE_SHOW ) 720 SetBorderCoreStyle( rBorder, &maCurrStyle ); 721 else 722 rBorder.SetState( eState ); |
723 if (pFrameSelector) 724 pFrameSelector->NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOld, aNew ); 725 //-----IAccessibility2 Implementation 2009 |
|
703 DoInvalidate( true ); 704} 705 706void FrameSelectorImpl::SetBorderCoreStyle( FrameBorder& rBorder, const SvxBorderLine* pStyle ) 707{ 708 DBG_ASSERT( rBorder.IsEnabled(), "svx::FrameSelectorImpl::SetBorderCoreStyle - access to disabled border" ); 709 rBorder.SetCoreStyle( pStyle ); 710 DoInvalidate( true ); --- 198 unchanged lines hidden (view full) --- 909 mxImpl->maSelectHdl = rHdl; 910} 911 912bool FrameSelector::IsBorderSelected( FrameBorderType eBorder ) const 913{ 914 return mxImpl->GetBorder( eBorder ).IsSelected(); 915} 916 | 726 DoInvalidate( true ); 727} 728 729void FrameSelectorImpl::SetBorderCoreStyle( FrameBorder& rBorder, const SvxBorderLine* pStyle ) 730{ 731 DBG_ASSERT( rBorder.IsEnabled(), "svx::FrameSelectorImpl::SetBorderCoreStyle - access to disabled border" ); 732 rBorder.SetCoreStyle( pStyle ); 733 DoInvalidate( true ); --- 198 unchanged lines hidden (view full) --- 932 mxImpl->maSelectHdl = rHdl; 933} 934 935bool FrameSelector::IsBorderSelected( FrameBorderType eBorder ) const 936{ 937 return mxImpl->GetBorder( eBorder ).IsSelected(); 938} 939 |
917void FrameSelector::SelectBorder( FrameBorderType eBorder, bool bSelect ) | 940void FrameSelector::SelectBorder( FrameBorderType eBorder, bool bSelect /*, bool bFocus */ ) |
918{ 919 mxImpl->SelectBorder( mxImpl->GetBorderAccess( eBorder ), bSelect ); | 941{ 942 mxImpl->SelectBorder( mxImpl->GetBorderAccess( eBorder ), bSelect ); |
943 //IAccessibility2 Implementation 2009----- 944 // MT: bFireFox as API parameter is ugly... 945 // if (bFocus) 946 { 947 Reference< XAccessible > xRet = GetChildAccessible(eBorder); 948 a11y::AccFrameSelector* pFrameSelector = static_cast<a11y::AccFrameSelector*>(xRet.get()); 949 if (pFrameSelector) 950 { 951 Any aOldValue, aNewValue; 952 aNewValue <<= AccessibleStateType::FOCUSED; 953 pFrameSelector->NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue ); 954 } 955 } 956 //-----IAccessibility2 Implementation 2009 |
|
920} 921 922bool FrameSelector::IsAnyBorderSelected() const 923{ 924 // Construct an iterator for selected borders. If it is valid, there is a selected border. 925 return SelFrameBorderCIter( mxImpl->maEnabBorders ).Is(); 926} 927 --- 130 unchanged lines hidden (view full) --- 1058 { 1059 if( (*aIt)->ContainsClickPoint( aPos ) ) 1060 { 1061 // frame border is clicked 1062 bAnyClicked = true; 1063 if( !(*aIt)->IsSelected() ) 1064 { 1065 bNewSelected = true; | 957} 958 959bool FrameSelector::IsAnyBorderSelected() const 960{ 961 // Construct an iterator for selected borders. If it is valid, there is a selected border. 962 return SelFrameBorderCIter( mxImpl->maEnabBorders ).Is(); 963} 964 --- 130 unchanged lines hidden (view full) --- 1095 { 1096 if( (*aIt)->ContainsClickPoint( aPos ) ) 1097 { 1098 // frame border is clicked 1099 bAnyClicked = true; 1100 if( !(*aIt)->IsSelected() ) 1101 { 1102 bNewSelected = true; |
1066 mxImpl->SelectBorder( **aIt, true ); | 1103 //IAccessibility2 Implementation 2009----- 1104 //mxImpl->SelectBorder( **aIt, true ); 1105 SelectBorder((**aIt).GetType(), true); 1106 //-----IAccessibility2 Implementation 2009 |
1067 } 1068 } 1069 else 1070 { 1071 // hide a "don't care" frame border only if it is not clicked 1072 if( bHideDontCare && ((*aIt)->GetState() == FRAMESTATE_DONTCARE) ) 1073 mxImpl->SetBorderState( **aIt, FRAMESTATE_HIDE ); 1074 --- 80 unchanged lines hidden (view full) --- 1155{ 1156 // auto-selection of a frame border, if focus reaches control, and nothing is selected 1157 if( mxImpl->mbAutoSelect && !IsAnyBorderSelected() && !mxImpl->maEnabBorders.empty() ) 1158 mxImpl->SelectBorder( *mxImpl->maEnabBorders.front(), true ); 1159 1160 mxImpl->DoInvalidate( false ); 1161 if( mxImpl->mxAccess.is() ) 1162 mxImpl->mpAccess->NotifyFocusListeners( sal_True ); | 1107 } 1108 } 1109 else 1110 { 1111 // hide a "don't care" frame border only if it is not clicked 1112 if( bHideDontCare && ((*aIt)->GetState() == FRAMESTATE_DONTCARE) ) 1113 mxImpl->SetBorderState( **aIt, FRAMESTATE_HIDE ); 1114 --- 80 unchanged lines hidden (view full) --- 1195{ 1196 // auto-selection of a frame border, if focus reaches control, and nothing is selected 1197 if( mxImpl->mbAutoSelect && !IsAnyBorderSelected() && !mxImpl->maEnabBorders.empty() ) 1198 mxImpl->SelectBorder( *mxImpl->maEnabBorders.front(), true ); 1199 1200 mxImpl->DoInvalidate( false ); 1201 if( mxImpl->mxAccess.is() ) 1202 mxImpl->mpAccess->NotifyFocusListeners( sal_True ); |
1203 //IAccessibility2 Implementation 2009----- 1204 if (IsAnyBorderSelected()) 1205 { 1206 FrameBorderType borderType = FRAMEBORDER_NONE; 1207 if (mxImpl->maLeft.IsSelected()) 1208 borderType = FRAMEBORDER_LEFT; 1209 else if (mxImpl->maRight.IsSelected()) 1210 borderType = FRAMEBORDER_RIGHT; 1211 else if (mxImpl->maTop.IsSelected()) 1212 borderType = FRAMEBORDER_TOP; 1213 else if (mxImpl->maBottom.IsSelected()) 1214 borderType = FRAMEBORDER_BOTTOM; 1215 else if (mxImpl->maHor.IsSelected()) 1216 borderType = FRAMEBORDER_HOR; 1217 else if (mxImpl->maVer.IsSelected()) 1218 borderType = FRAMEBORDER_VER; 1219 else if (mxImpl->maTLBR.IsSelected()) 1220 borderType = FRAMEBORDER_TLBR; 1221 else if (mxImpl->maBLTR.IsSelected()) 1222 borderType = FRAMEBORDER_BLTR; 1223 SelectBorder(borderType); 1224 } 1225 for( SelFrameBorderIter aIt( mxImpl->maEnabBorders ); aIt.Is(); ++aIt ) 1226 mxImpl->SetBorderState( **aIt, FRAMESTATE_SHOW ); 1227 //-----IAccessibility2 Implementation 2009 |
|
1163 Control::GetFocus(); 1164} 1165 1166void FrameSelector::LoseFocus() 1167{ 1168 mxImpl->DoInvalidate( false ); 1169 if( mxImpl->mxAccess.is() ) 1170 mxImpl->mpAccess->NotifyFocusListeners( sal_False ); --- 31 unchanged lines hidden --- | 1228 Control::GetFocus(); 1229} 1230 1231void FrameSelector::LoseFocus() 1232{ 1233 mxImpl->DoInvalidate( false ); 1234 if( mxImpl->mxAccess.is() ) 1235 mxImpl->mpAccess->NotifyFocusListeners( sal_False ); --- 31 unchanged lines hidden --- |