diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2003-05-19 12:05:17 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2003-05-19 12:05:17 +0000 |
commit | 0110f338b683a4f1559327479b76457abe6af72b (patch) | |
tree | 7cb9a03427608fb21853b29c6b921f6efa96340d /svtools/source/brwbox/editbrowsebox.cxx | |
parent | e9a23ffbd1af62d6c27181cbb90aa51ec700872b (diff) |
INTEGRATION: CWS dba05 (1.18.28); FILE MERGED
2003/05/13 11:32:24 oj 1.18.28.4: remove conflicts
2003/05/13 08:39:25 oj 1.18.28.3: RESYNC: (1.18-1.20); FILE MERGED
2003/05/12 10:15:37 oj 1.18.28.2: #109428# add accessible checbox
2003/05/07 11:53:58 fs 1.18.28.1: #109014# some small renamings / IAccessibleTableProvider now completely based on column pos instead of column id
Diffstat (limited to 'svtools/source/brwbox/editbrowsebox.cxx')
-rw-r--r-- | svtools/source/brwbox/editbrowsebox.cxx | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/svtools/source/brwbox/editbrowsebox.cxx b/svtools/source/brwbox/editbrowsebox.cxx index b98f67a09938..ed4282e972c6 100644 --- a/svtools/source/brwbox/editbrowsebox.cxx +++ b/svtools/source/brwbox/editbrowsebox.cxx @@ -2,9 +2,9 @@ * * $RCSfile: editbrowsebox.cxx,v $ * - * $Revision: 1.20 $ + * $Revision: 1.21 $ * - * last change: $Author: hr $ $Date: 2003-04-28 15:21:55 $ + * last change: $Author: vg $ $Date: 2003-05-19 13:05:17 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -156,9 +156,9 @@ namespace svt } } + using namespace ::com::sun::star::uno; using namespace com::sun::star::accessibility::AccessibleEventId; using com::sun::star::accessibility::XAccessible; - using ::com::sun::star::uno::Reference; //================================================================== #define HANDLE_ID 0 @@ -217,7 +217,7 @@ namespace svt void EditBrowseBox::Construct() { m_aImpl = ::std::auto_ptr<EditBrowseBoxImpl>(new EditBrowseBoxImpl()); - m_aImpl->m_pFocusCell = NULL; + m_aImpl->m_pActiveCell = NULL; m_aImpl->m_bHiContrast = isHiContrast(&GetDataWindow()); SetCompoundControl(sal_True); @@ -676,7 +676,7 @@ namespace svt sal_Bool bShift = pKeyEvent->GetKeyCode().IsShift(); sal_Bool bCtrl = pKeyEvent->GetKeyCode().IsMod1(); sal_Bool bAlt = pKeyEvent->GetKeyCode().IsMod2(); - sal_Bool bSelect= sal_False; + sal_Bool bLocalSelect= sal_False; sal_Bool bNonEditOnly = sal_False; sal_uInt16 nId = BROWSER_NONE; @@ -712,17 +712,17 @@ namespace svt break; case KEY_RIGHT: nId = BROWSER_CURSORRIGHT; break; case KEY_LEFT: nId = BROWSER_CURSORLEFT; break; - case KEY_SPACE: nId = BROWSER_SELECT; bNonEditOnly = bSelect = sal_True;break; + case KEY_SPACE: nId = BROWSER_SELECT; bNonEditOnly = bLocalSelect = sal_True;break; } if ( !bAlt && !bCtrl && bShift ) switch ( nCode ) { - case KEY_DOWN: nId = BROWSER_SELECTDOWN; bSelect = sal_True;break; - case KEY_UP: nId = BROWSER_SELECTUP; bSelect = sal_True;break; - case KEY_HOME: nId = BROWSER_SELECTHOME; bSelect = sal_True;break; - case KEY_END: nId = BROWSER_SELECTEND; bSelect = sal_True;break; - case KEY_SPACE: nId = BROWSER_SELECTCOLUMN; bSelect = sal_True; break; + case KEY_DOWN: nId = BROWSER_SELECTDOWN; bLocalSelect = sal_True;break; + case KEY_UP: nId = BROWSER_SELECTUP; bLocalSelect = sal_True;break; + case KEY_HOME: nId = BROWSER_SELECTHOME; bLocalSelect = sal_True;break; + case KEY_END: nId = BROWSER_SELECTEND; bLocalSelect = sal_True;break; + case KEY_SPACE: nId = BROWSER_SELECTCOLUMN; bLocalSelect = sal_True; break; case KEY_TAB: if (IsTabAllowed(sal_False)) nId = BROWSER_CURSORLEFT; @@ -739,7 +739,7 @@ namespace svt case KEY_PAGEUP: nId = BROWSER_CURSORTOPOFFILE; break; case KEY_HOME: nId = BROWSER_CURSORTOPOFSCREEN; break; case KEY_END: nId = BROWSER_CURSORENDOFSCREEN; break; - case KEY_SPACE: nId = BROWSER_ENHANCESELECTION; bSelect = sal_True;break; + case KEY_SPACE: nId = BROWSER_ENHANCESELECTION; bLocalSelect = sal_True;break; } @@ -765,7 +765,7 @@ namespace svt Dispatch(nId); - if (bSelect && (GetSelectRowCount() || GetSelection() != NULL)) + if (bLocalSelect && (GetSelectRowCount() || GetSelection() != NULL)) DeactivateCell(); return 1; } @@ -1071,17 +1071,22 @@ namespace svt aController->SetModifyHdl(LINK(this,EditBrowseBox,ModifyHdl)); EnableAndShow(); + if ( isAccessibleAlive( ) ) + implCreateActiveAccessible(); + // activate the cell only of the browser has the focus if ( bHasFocus && bCellFocus ) - { - CreateAccessibleControl(0); AsynchGetFocus(); - } } - else if ( isAccessibleCreated() && HasFocus() ) - commitTableEvent(ACTIVE_DESCENDANT_CHANGED, - com::sun::star::uno::makeAny(CreateAccessibleCell(nRow,nCol)), - com::sun::star::uno::Any()); + else + { + // no controller -> we have a new "active descendant" + if ( isAccessibleAlive() && HasFocus() ) + commitTableEvent(ACTIVE_DESCENDANT_CHANGED, + makeAny( CreateAccessibleCell( nRow, GetColumnPos( nCol ) ) ), + Any() + ); + } } } @@ -1090,11 +1095,11 @@ namespace svt { if (IsEditing()) { - commitBrowseBoxEvent(CHILD,com::sun::star::uno::Any(),com::sun::star::uno::makeAny(m_aImpl->m_xActiveCell)); - m_aImpl->disposeCell(); - - m_aImpl->m_pFocusCell = NULL; - m_aImpl->m_xActiveCell = NULL; + if ( isAccessibleAlive() ) + { + commitBrowseBoxEvent( CHILD, Any(), makeAny( m_aImpl->m_xActiveCell ) ); + m_aImpl->clearActiveCell(); + } aOldController = aController; aController.Clear(); @@ -1446,7 +1451,6 @@ namespace svt { return sal_True; } - // ....................................................................... } // namespace svt // ....................................................................... |