20 #ifndef INCLUDED_SC_SOURCE_UI_INC_ACCESSIBLECSVCONTROL_HXX
21 #define INCLUDED_SC_SOURCE_UI_INC_ACCESSIBLECSVCONTROL_HXX
24 #include <com/sun/star/accessibility/AccessibleRole.hpp>
25 #include <com/sun/star/accessibility/AccessibleScrollType.hpp>
26 #include <com/sun/star/accessibility/XAccessibleText.hpp>
27 #include <com/sun/star/accessibility/XAccessibleTable.hpp>
28 #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
30 #include <rtl/ref.hxx>
31 #include <rtl/ustrbuf.hxx>
41 namespace utl {
class AccessibleStateSetHelper; }
53 virtual void SAL_CALL
disposing()
override;
55 virtual void SAL_CALL
grabFocus( )
override;
56 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleAtPoint(
const css::awt::Point& aPoint )
override;
69 virtual void SendTableUpdateEvent( sal_uInt32 nFirstColumn, sal_uInt32 nLastColumn,
bool bAllRows );
88 typedef ::cppu::ImplHelper2<css::accessibility::XAccessible,
102 virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL
getAccessibleContext( )
override {
return this; }
104 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleParent( )
override;
119 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleChild( sal_Int32 nIndex )
override;
121 virtual sal_Int16 SAL_CALL
getAccessibleRole( )
override {
return css::accessibility::AccessibleRole::TEXT; }
124 virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL
getAccessibleRelationSet()
override;
127 virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
getAccessibleStateSet()
override;
141 virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL
getCharacterAttributes( sal_Int32 nIndex,
const css::uno::Sequence< OUString >& aRequestedAttributes )
override;
150 virtual sal_Int32 SAL_CALL
getIndexAtPoint(
const css::awt::Point& rPoint )
override;
165 virtual OUString SAL_CALL
getText()
override;
168 virtual OUString SAL_CALL
getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex )
override;
171 virtual css::accessibility::TextSegment SAL_CALL
getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType )
override;
172 virtual css::accessibility::TextSegment SAL_CALL
getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType )
override;
173 virtual css::accessibility::TextSegment SAL_CALL
getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType )
override;
176 virtual sal_Bool SAL_CALL
copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex )
override;
178 virtual sal_Bool SAL_CALL
scrollSubstringTo( sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType)
override;
186 DECLARE_XTYPEPROVIDER()
202 void ensureValidRange( sal_Int32& rnStartIndex, sal_Int32& rnEndIndex ) const;
227 typedef ::
cppu::ImplHelper3<
237 typedef std::map< sal_Int32, rtl::Reference<ScAccessibleCsvCell> >
XAccessibleSet;
245 virtual void SAL_CALL
disposing()
override;
248 virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL
getAccessibleContext( )
override {
return this; }
250 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleParent( )
override;
253 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleAtPoint(
const css::awt::Point& rPoint )
override;
270 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleChild( sal_Int32 nIndex )
override;
273 virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL
getAccessibleRelationSet()
override;
276 virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
getAccessibleStateSet()
override;
281 virtual sal_Int32 SAL_CALL getAccessibleRowCount()
override;
284 virtual sal_Int32 SAL_CALL getAccessibleColumnCount()
override;
287 virtual OUString SAL_CALL getAccessibleRowDescription( sal_Int32 nRow )
override;
290 virtual OUString SAL_CALL getAccessibleColumnDescription( sal_Int32 nColumn )
override;
294 virtual sal_Int32 SAL_CALL getAccessibleRowExtentAt( sal_Int32 nRow, sal_Int32 nColumn )
override;
298 virtual sal_Int32 SAL_CALL getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn )
override;
301 virtual css::uno::Reference< css::accessibility::XAccessibleTable > SAL_CALL getAccessibleRowHeaders()
override;
304 virtual css::uno::Reference< css::accessibility::XAccessibleTable > SAL_CALL getAccessibleColumnHeaders()
override;
307 virtual css::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleRows()
override;
310 virtual css::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleColumns()
override;
313 virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow )
override;
316 virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn )
override;
319 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn )
override;
322 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleCaption()
override;
325 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleSummary()
override;
328 virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn )
override;
331 virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn )
override;
334 virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex )
override;
337 virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex )
override;
342 virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex )
override;
345 virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex )
override;
348 virtual void SAL_CALL clearAccessibleSelection()
override;
351 virtual void SAL_CALL selectAllAccessibleChildren()
override;
354 virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount()
override;
357 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
override;
360 virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex )
override;
364 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type& rType )
override;
366 virtual void SAL_CALL acquire() throw() override;
368 virtual
void SAL_CALL release() throw() override;
383 virtual
void SendTableUpdateEvent( sal_uInt32 nFirstColumn, sal_uInt32 nLastColumn,
bool bAllRows ) override;
395 void ensureValidPosition( sal_Int32 nRow, sal_Int32 nColumn ) const;
398 ScCsvGrid& implGetGrid() const;
401 bool implIsColumnSelected( sal_Int32 nColumn ) const;
403 void implSelectColumn( sal_Int32 nColumn,
bool bSelect );
406 sal_Int32 implGetRowCount() const;
408 sal_Int32 implGetColumnCount() const;
410 sal_Int32 implGetSelColumnCount() const;
412 sal_Int32 implGetCellCount()
const {
return implGetRowCount() * implGetColumnCount(); }
415 sal_Int32
implGetRow( sal_Int32 nIndex )
const {
return nIndex / implGetColumnCount(); }
417 sal_Int32
implGetColumn( sal_Int32 nIndex )
const {
return nIndex % implGetColumnCount(); }
419 sal_Int32 implGetSelColumn( sal_Int32 nSelColumn )
const;
421 sal_Int32
implGetIndex( sal_Int32 nRow, sal_Int32 nColumn )
const {
return nRow * implGetColumnCount() + nColumn; }
424 OUString implGetCellText( sal_Int32 nRow, sal_Int32 nColumn )
const;
426 ScAccessibleCsvCell* implCreateCellObj(sal_Int32 nRow, sal_Int32 nColumn);
428 css::uno::Reference<css::accessibility::XAccessible> getAccessibleCell(sal_Int32 nRow, sal_Int32 nColumn);
448 const OUString& rCellText,
449 sal_Int32 nRow, sal_Int32 nColumn);
452 virtual void SAL_CALL
disposing()
override;
457 virtual void SAL_CALL
grabFocus()
override;
459 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleParent( )
override;
461 virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL
getAccessibleContext( )
override {
return this; }
465 virtual sal_Int16 SAL_CALL
getAccessibleRole( )
override {
return css::accessibility::AccessibleRole::TEXT; }
477 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleChild( sal_Int32 nIndex )
override;
483 virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL
getAccessibleRelationSet()
override;
486 virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
getAccessibleStateSet()
override;
494 DECLARE_XTYPEPROVIDER()
500 Point implGetRealPos() const;
502 sal_uInt32 implCalcPixelWidth(sal_uInt32 nChars) const;
504 Size implGetRealSize() const;
virtual ~ScAccessibleCsvControl() override
virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const &rType) SAL_OVERRIDE
virtual sal_Bool SAL_CALL scrollSubstringTo(sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override
std::map< sal_Int32, rtl::Reference< ScAccessibleCsvCell > > XAccessibleSet
virtual void SendFocusEvent(bool bFocused)
Sends a GetFocus or LoseFocus event to all listeners.
virtual sal_Int32 SAL_CALL getSelectionEnd() override
Returns the end index of the selection (ruler returns -1).
virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override
virtual sal_Int32 SAL_CALL getIndexAtPoint(const css::awt::Point &rPoint) override
Returns the character index at the specified coordinate (object's coordinate system).
virtual void SendInsertColumnEvent(sal_uInt32 nFirstColumn, sal_uInt32 nLastColumn)
Sends a table model changed event for an inserted column to all listeners.
Accessible class representing the CSV grid control.
virtual sal_Int32 SAL_CALL getSelectionStart() override
Returns the start index of the selection (ruler returns -1).
Accessible class representing a cell of the CSV grid control.
virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes(sal_Int32 nIndex, const css::uno::Sequence< OUString > &aRequestedAttributes) override
Returns the attributes of the specified character.
virtual OUString SAL_CALL getSelectedText() override
Returns the selected text (ruler returns empty string).
void ensureValidIndex(sal_Int32 nIndex) const
void ensureValidRange(sal_Int32 &rnStartIndex, sal_Int32 &rnEndIndex) const
Base class for the CSV ruler and the data grid control.
virtual OUString SAL_CALL getText() override
Returns the entire text.
Accessible base class used for CSV controls.
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
A ruler control for the CSV import dialog.
XAccessibleSet maAccessibleChildren
virtual OUString SAL_CALL getTextRange(sal_Int32 nStartIndex, sal_Int32 nEndIndex) override
Returns the specified range [Start,End) of the text.
sal_Int32 implGetColumn(sal_Int32 nIndex) const
Returns the column index from cell index (including header).
sal_uInt32 mnColumn
The grid line index (core index).
virtual sal_Int16 SAL_CALL getAccessibleRole() override
void SendSelectionEvent()
Sends a selection changed event to all listeners.
ScAccessibleCsvRuler(ScCsvRuler &rRuler)
Contains the text representation of the ruler.
virtual OUString SAL_CALL getAccessibleName() override
::cppu::ImplHelper2< css::accessibility::XAccessible, css::accessibility::XAccessibleText > ScAccessibleCsvRulerImpl
virtual sal_Bool SAL_CALL setCaretPosition(sal_Int32 nIndex) override
Sets the position of the caret.
ScCsvRuler & implGetRuler() const
Returns the VCL ruler control.
virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet() override
Returns the current set of states.
ScCsvControl & implGetControl() const
Returns the VCL control.
void SendVisibleEvent()
Sends a visible area changed event to all listeners.
virtual sal_Int32 SAL_CALL getCharacterCount() override
Returns the count of characters.
virtual void SendRemoveColumnEvent(sal_uInt32 nFirstColumn, sal_uInt32 nLastColumn)
Sends a table model changed event for a removed column to all listeners.
sal_Int32 implGetRow(sal_Int32 nIndex) const
Returns the row index from cell index (including header).
virtual void SAL_CALL grabFocus() override
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() override
Returns the relation to the grid control.
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() SAL_OVERRIDE
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override
virtual ~ScAccessibleCsvRuler() override
ScAccessibleCsvControl(ScCsvControl &rControl)
Pointer to the VCL control.
virtual css::awt::Rectangle implGetBounds() override
virtual sal_Int16 SAL_CALL getAccessibleRole() override
virtual sal_Int32 SAL_CALL getForeground() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint(const css::awt::Point &aPoint) override
sal_Int32 mnIndex
The grid column index (core index).
virtual void SendTableUpdateEvent(sal_uInt32 nFirstColumn, sal_uInt32 nLastColumn, bool bAllRows)
Sends a table model changed event for changed cell contents to all listeners.
sal_Int32 implGetTextLength() const
Returns the character count of the text.
bool implHasSplit(sal_Int32 nApiPos)
Returns true, if the character at the specified index has a split.
sal_Int32 mnLine
The text contents of this cell.
virtual sal_Bool SAL_CALL copyText(sal_Int32 nStartIndex, sal_Int32 nEndIndex) override
Copies the specified text range into the clipboard (ruler does nothing).
sal_Int32 implGetFirstEqualFormatted(sal_Int32 nApiPos)
Returns the first character index with equal formatting as at nApiPos.
virtual css::awt::Rectangle SAL_CALL getCharacterBounds(sal_Int32 nIndex) override
Returns the screen coordinates of the specified character.
virtual sal_Int16 SAL_CALL getAccessibleRole() override
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() SAL_OVERRIDE
Accessible class representing the CSV ruler control.
virtual sal_Bool SAL_CALL setSelection(sal_Int32 nStartIndex, sal_Int32 nEndIndex) override
Selects a part of the text (ruler does nothing).
void ensureValidIndexWithEnd(sal_Int32 nIndex) const
virtual OUString SAL_CALL getAccessibleDescription() override
virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex(sal_Int32 nIndex, sal_Int16 aTextType) override
::std::unique_ptr< SvxEditSource > SvxEditSourcePtr
virtual void SendCaretEvent() override
Sends a caret changed event to all listeners.
sal_Int32 implGetIndex(sal_Int32 nRow, sal_Int32 nColumn) const
Returns the child index from cell position (including header).
virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex(sal_Int32 nIndex, sal_Int16 aTextType) override
virtual sal_Int32 SAL_CALL getAccessibleChildCount() override
Returns the child count (the ruler does not have children).
virtual void SendCaretEvent()
Sends a caret changed event to all listeners.
virtual sal_Int32 SAL_CALL getCaretPosition() override
Return the position of the caret.
virtual sal_Int32 SAL_CALL getBackground() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int32 nIndex) override
Throws an exception (the ruler does not have children).
virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex(sal_Int32 nIndex, sal_Int16 aTextType) override
Returns the specified text portion.
::utl::AccessibleStateSetHelper * implCreateStateSet()
Creates a StateSetHelper and fills it with DEFUNC, OPAQUE, ENABLED, SHOWING and VISIBLE.
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
sal_Int32 implGetLastEqualFormatted(sal_Int32 nApiPos)
Returns the last character index with equal formatting as at nApiPos.
virtual void SAL_CALL disposing() override
void constructStringBuffer()
Builds the entire string buffer.
virtual sal_Unicode SAL_CALL getCharacter(sal_Int32 nIndex) override
Returns the specified character.
#define DECLARE_XINTERFACE()
A data grid control for the CSV import dialog.