diff options
author | Mathias Bauer <mba@openoffice.org> | 2009-12-05 19:29:07 +0100 |
---|---|---|
committer | Mathias Bauer <mba@openoffice.org> | 2009-12-05 19:29:07 +0100 |
commit | a7a6ea4294796bb79c1501883e8b0bb90f8afdd4 (patch) | |
tree | f3f5ddf2cef8205e5002d3cd371588b9377cffd8 /sc/source/ui/app/inputwin.cxx | |
parent | c6384e9624fa6c98ac958b778a95f96ba3cb2983 (diff) | |
parent | 670a70fb30c08dbb2b1b2d7289ecccd7141c4a7b (diff) |
merge to m67
Diffstat (limited to 'sc/source/ui/app/inputwin.cxx')
-rw-r--r-- | sc/source/ui/app/inputwin.cxx | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx index 5d4b4d145..630ee906e 100644 --- a/sc/source/ui/app/inputwin.cxx +++ b/sc/source/ui/app/inputwin.cxx @@ -31,9 +31,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sc.hxx" - - -//------------------------------------------------------------------ +#include <algorithm> #include "scitems.hxx" #include <svx/eeitem.hxx> @@ -626,7 +624,7 @@ String __EXPORT ScInputWindow::GetText() const //UNUSED2008-05 aTextWindow.SetTextString( rText ); //UNUSED2008-05 aTextWindow.GetEditView()->SetSelection( rSel ); //UNUSED2008-05 } -//UNUSED2008-05 +//UNUSED2008-05 //UNUSED2008-05 return aTextWindow.GetEditView(); //UNUSED2008-05 } @@ -738,7 +736,6 @@ ScTextWnd::ScTextWnd( Window* pParent ) DragSourceHelper( this ), pEditEngine ( NULL ), pEditView ( NULL ), - pAccTextData ( NULL ), bIsInsertMode( TRUE ), bFormulaMode ( FALSE ), bInputMode ( FALSE ) @@ -774,8 +771,8 @@ __EXPORT ScTextWnd::~ScTextWnd() { delete pEditView; delete pEditEngine; - if (pAccTextData) - pAccTextData->Dispose(); + for( AccTextDataVector::reverse_iterator aIt = maAccTextDatas.rbegin(), aEnd = maAccTextDatas.rend(); aIt != aEnd; ++aIt ) + (*aIt)->Dispose(); } void __EXPORT ScTextWnd::Paint( const Rectangle& rRec ) @@ -1112,8 +1109,8 @@ void ScTextWnd::StartEditEngine() pEditEngine->SetModifyHdl(LINK(this, ScTextWnd, NotifyHdl)); - if (pAccTextData) - pAccTextData->StartEdit(); + if (!maAccTextDatas.empty()) + maAccTextDatas.back()->StartEdit(); // as long as EditEngine and DrawText sometimes differ for CTL text, // repaint now to have the EditEngine's version visible @@ -1154,8 +1151,8 @@ void ScTextWnd::StopEditEngine( BOOL bAll ) { if (pEditView) { - if (pAccTextData) - pAccTextData->EndEdit(); + if (!maAccTextDatas.empty()) + maAccTextDatas.back()->EndEdit(); ScModule* pScMod = SC_MOD(); @@ -1259,8 +1256,8 @@ void ScTextWnd::SetTextString( const String& rNewString ) aString = rNewString; - if (pAccTextData) - pAccTextData->TextChanged(); + if (!maAccTextDatas.empty()) + maAccTextDatas.back()->TextChanged(); bInputMode = FALSE; } @@ -1317,8 +1314,8 @@ void ScTextWnd::MakeDialogEditView() if ( bIsRTL ) lcl_ModifyRTLVisArea( pEditView ); - if (pAccTextData) - pAccTextData->StartEdit(); + if (!maAccTextDatas.empty()) + maAccTextDatas.back()->StartEdit(); } void ScTextWnd::ImplInitSettings() @@ -1343,6 +1340,22 @@ void ScTextWnd::ImplInitSettings() rtl::OUString(String(ScResId(STR_ACC_EDITLINE_DESCR))), EditLine); } +void ScTextWnd::InsertAccessibleTextData( ScAccessibleEditLineTextData& rTextData ) +{ + OSL_ENSURE( ::std::find( maAccTextDatas.begin(), maAccTextDatas.end(), &rTextData ) == maAccTextDatas.end(), + "ScTextWnd::InsertAccessibleTextData - passed object already registered" ); + maAccTextDatas.push_back( &rTextData ); +} + +void ScTextWnd::RemoveAccessibleTextData( ScAccessibleEditLineTextData& rTextData ) +{ + AccTextDataVector::iterator aEnd = maAccTextDatas.end(); + AccTextDataVector::iterator aIt = ::std::find( maAccTextDatas.begin(), aEnd, &rTextData ); + OSL_ENSURE( aIt != aEnd, "ScTextWnd::RemoveAccessibleTextData - passed object not registered" ); + if( aIt != aEnd ) + maAccTextDatas.erase( aIt ); +} + // ----------------------------------------------------------------------- void ScTextWnd::DataChanged( const DataChangedEvent& rDCEvt ) |