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 ---