summaryrefslogtreecommitdiff
path: root/svtools/source/brwbox/editbrowsebox.cxx
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2003-05-19 12:05:17 +0000
committerVladimir Glazounov <vg@openoffice.org>2003-05-19 12:05:17 +0000
commit0110f338b683a4f1559327479b76457abe6af72b (patch)
tree7cb9a03427608fb21853b29c6b921f6efa96340d /svtools/source/brwbox/editbrowsebox.cxx
parente9a23ffbd1af62d6c27181cbb90aa51ec700872b (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.cxx56
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
// .......................................................................