summaryrefslogtreecommitdiff
path: root/sc/source/ui/app/inputwin.cxx
diff options
context:
space:
mode:
authorMathias Bauer <mba@openoffice.org>2009-12-05 19:29:07 +0100
committerMathias Bauer <mba@openoffice.org>2009-12-05 19:29:07 +0100
commita7a6ea4294796bb79c1501883e8b0bb90f8afdd4 (patch)
treef3f5ddf2cef8205e5002d3cd371588b9377cffd8 /sc/source/ui/app/inputwin.cxx
parentc6384e9624fa6c98ac958b778a95f96ba3cb2983 (diff)
parent670a70fb30c08dbb2b1b2d7289ecccd7141c4a7b (diff)
merge to m67
Diffstat (limited to 'sc/source/ui/app/inputwin.cxx')
-rw-r--r--sc/source/ui/app/inputwin.cxx43
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 )