From 27a1e85b656bad222f113f650b03397aa3bc59d3 Mon Sep 17 00:00:00 2001 From: Release Engineers Date: Wed, 26 Aug 2009 13:11:27 +0000 Subject: CWS-TOOLING: integrate CWS gridcontrol_01 2009-08-13 07:53:28 +0200 tkr r274919 : #103210# remove mixed-line-endings 2009-08-13 07:36:19 +0200 tkr r274918 : #103210# remove mixed-line-endings 2009-08-06 14:02:11 +0200 tkr r274725 : #103210# build issues fixed 2009-08-06 12:11:52 +0200 tkr r274711 : #103210# build issues fixed 2009-08-06 12:03:32 +0200 tkr r274710 : #103210# add grid directory to d.lst 2009-08-05 17:00:11 +0200 misheto r274689 : CWS-TOOLING: rebase CWS gridcontrol_01 to trunk@274622 (milestone: DEV300:m54) 2009-08-05 14:31:42 +0200 tkr r274668 : #103210# remove add/removeMouseListener from XGridControl and use XWindow 2009-08-05 14:30:06 +0200 tkr r274667 : #103210# remove add/removeMouseListener from XGridControl and use XWindow 2009-08-05 14:29:09 +0200 tkr r274666 : #103210# remove add/removeMouseListener from XGridControl and use XWindow 2009-08-05 12:02:15 +0200 misheto r274649 : fox for HScroll problem 2009-08-05 11:37:22 +0200 misheto r274644 : CWS-TOOLING: rebase CWS gridcontrol_01 to trunk@274203 (milestone: DEV300:m53) 2009-08-03 10:12:50 +0200 tkr r274568 : #103210# Method getItemIndexPos() added 2009-07-31 18:25:42 +0200 misheto r274547 : fixed bug no cursor with NONE-selection, arrow keys cause selection disappear 2009-07-31 16:36:34 +0200 tkr r274541 : #103210# MouseListener added 2009-07-31 16:35:48 +0200 tkr r274540 : #103210# MouseListener added 2009-07-31 14:37:45 +0200 misheto r274533 : event handlers 2009-07-31 09:43:52 +0200 tkr r274513 : #103210# MouseListener added 2009-07-31 09:42:46 +0200 tkr r274512 : #103210# MouseListenerMultiplexer exported 2009-07-30 18:19:55 +0200 misheto r274501 : 2009-07-30 18:15:00 +0200 misheto r274500 : mouselistener changes 2009-07-30 15:23:03 +0200 tkr r274491 : #i103210# remove XItemListener and add XMouseListener 2009-07-30 15:22:01 +0200 tkr r274490 : #i103210# remove XItemListener and add XMouseListener 2009-07-28 16:47:37 +0200 misheto r274415 : fixed text left intented, removeAllScroll mode, selection mode, single selection 2009-07-28 16:45:32 +0200 misheto r274413 : 2009-07-28 14:56:33 +0200 tkr r274407 : #i103210# build issue fixed 2009-07-28 12:49:23 +0200 tkr r274397 : #i103210# use HScroll and VScroll for Scrolbarmode 2009-07-28 12:24:14 +0200 tkr r274396 : #i103210# use HScroll and VScroll for Scrolbarmode 2009-07-28 11:33:46 +0200 tkr r274393 : ##i103210# api changes 2009-07-28 11:32:48 +0200 tkr r274392 : ##i103210# add ItemListener 2009-07-28 11:31:49 +0200 tkr r274391 : ##i103210# add ItemListener 2009-07-28 08:30:30 +0200 tkr r274388 : #i103210# paint background color 2009-07-24 17:22:10 +0200 misheto r274314 : focus problem solved, single selection with keys UP DOWN 2009-07-22 11:43:24 +0200 misheto r274226 : removed vclxcontrol dependencies 2009-07-22 10:23:34 +0200 misheto r274220 : 2009-07-21 15:04:26 +0200 misheto r274200 : tablecontrol added items 2009-07-21 15:00:44 +0200 misheto r274198 : tablecontrol 2009-07-17 09:58:59 +0200 misheto r274082 : changes mihaela 2009-07-15 11:04:27 +0200 tkr r273999 : #i103210# api documentation added 2009-07-15 11:03:18 +0200 tkr r273998 : #i103210# adapt idl changes 2009-07-14 08:47:32 +0200 tkr r273959 : #i103210# Method removeRow added 2009-07-14 08:46:52 +0200 tkr r273958 : #i103210# Method removeRow added 2009-07-13 08:20:11 +0200 tkr r273914 : #i103210# XGridSelectionModel removed 2009-07-10 13:50:01 +0200 tkr r273888 : #i103210# selection support and listener added 2009-07-10 13:42:17 +0200 tkr r273887 : #i103210# selection support added 2009-07-06 10:21:51 +0200 tkr r273724 : #i103210# implement listener 2009-07-06 10:13:25 +0200 tkr r273723 : #i103210# remove wrong interfaces 2009-07-06 10:11:47 +0200 tkr r273722 : #i103210# interface changes 2009-07-02 15:28:50 +0200 tkr r273659 : #i103210# create new services 2009-07-02 15:26:21 +0200 tkr r273658 : #i103210# create new services 2009-07-02 12:00:39 +0200 tkr r273633 : #i103210# defaultgriddatamodel works now 2009-07-02 11:59:24 +0200 tkr r273631 : #i103210# now XGridDataModel inherits XComponent 2009-07-01 14:07:31 +0200 tkr r273579 : #i103210# initial implementation of the grid control data model 2009-07-01 13:14:21 +0200 tkr r273571 : #i103210# adding new service and some methods 2009-06-30 12:15:13 +0200 tkr r273500 : #i103210# change attribute names 2009-06-30 10:55:07 +0200 tkr r273496 : #i103210# create services and interfaces for the grid control 2009-06-30 10:47:26 +0200 tkr r273495 : #i103210# create services and interfaces for the grid control --- svtools/source/table/tablecontrol.cxx | 179 ++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 svtools/source/table/tablecontrol.cxx (limited to 'svtools/source/table/tablecontrol.cxx') diff --git a/svtools/source/table/tablecontrol.cxx b/svtools/source/table/tablecontrol.cxx new file mode 100644 index 000000000000..c8895a19408d --- /dev/null +++ b/svtools/source/table/tablecontrol.cxx @@ -0,0 +1,179 @@ +/************************************************************************* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2009 by Sun Microsystems, Inc. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* +* for a copy of the LGPLv3 License. +************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_svtools.hxx" + +#include "svtools/table/tablecontrol.hxx" +#include "tablegeometry.hxx" +#include "tablecontrol_impl.hxx" +#include "svtools/table/tabledatawindow.hxx" +//........................................................................ +namespace svt { namespace table +{ +//........................................................................ + + //==================================================================== + //= TableControl + //==================================================================== + //-------------------------------------------------------------------- + TableControl::TableControl( Window* _pParent, WinBits _nStyle ) + :Control( _pParent, _nStyle ) + ,m_pImpl( new TableControl_Impl( *this ) ) + { + m_pImpl->getDataWindow()->SetMouseButtonDownHdl( LINK( this, TableControl, ImplMouseButtonDownHdl ) ); + m_pImpl->getDataWindow()->SetMouseButtonUpHdl( LINK( this, TableControl, ImplMouseButtonUpHdl ) ); + } + + //-------------------------------------------------------------------- + TableControl::~TableControl() + { + DELETEZ( m_pImpl ); + } + + //-------------------------------------------------------------------- + void TableControl::GetFocus() + { + if ( !m_pImpl->getInputHandler()->GetFocus( *m_pImpl ) ) + { + Control::GetFocus(); + GrabFocus(); + } + } + + //-------------------------------------------------------------------- + void TableControl::LoseFocus() + { + if ( !m_pImpl->getInputHandler()->LoseFocus( *m_pImpl ) ) + Control::LoseFocus(); + } + + //-------------------------------------------------------------------- + void TableControl::KeyInput( const KeyEvent& rKEvt ) + { + if ( !m_pImpl->getInputHandler()->KeyInput( *m_pImpl, rKEvt ) ) + Control::KeyInput( rKEvt ); + } + //-------------------------------------------------------------------- + void TableControl::Resize() + { + Control::Resize(); + m_pImpl->onResize(); + } + + //-------------------------------------------------------------------- + void TableControl::SetModel( PTableModel _pModel ) + { + m_pImpl->setModel( _pModel ); + } + + //-------------------------------------------------------------------- + PTableModel TableControl::GetModel() const + { + return m_pImpl->getModel(); + } + + //-------------------------------------------------------------------- + RowPos TableControl::GetTopRow() const + { + return m_pImpl->getTopRow(); + } + + //-------------------------------------------------------------------- + void TableControl::SetTopRow( RowPos _nRow ) + { + // TODO + (void)_nRow; + } + + //-------------------------------------------------------------------- + RowPos TableControl::GetCurrentRow() const + { + return m_pImpl->getCurRow(); + } + + //-------------------------------------------------------------------- + ColPos TableControl::GetCurrentColumn() const + { + return m_pImpl->getCurColumn(); + } + + //-------------------------------------------------------------------- + bool TableControl::GoTo( ColPos _nColumn, RowPos _nRow ) + { + return m_pImpl->goTo( _nColumn, _nRow ); + } + //-------------------------------------------------------------------- + void TableControl::InvalidateDataWindow(RowPos _nRowStart, bool _bRemoved) + { + Rectangle _rRect; + if(_bRemoved) + return m_pImpl->invalidateRows(_nRowStart, _rRect); + else + return m_pImpl->invalidateRow(_nRowStart, _rRect); + } + //-------------------------------------------------------------------- + std::vector TableControl::getSelectedRows() + { + return m_pImpl->getSelectedRows(); + } + //-------------------------------------------------------------------- + void TableControl::removeSelectedRow(RowPos _nRowPos) + { + m_pImpl->removeSelectedRow(_nRowPos); + } + //-------------------------------------------------------------------- + + RowPos TableControl::GetCurrentRow(const Point& rPoint) + { + return m_pImpl->getCurrentRow( rPoint ); + } + + //-------------------------------------------------------------------- + + IMPL_LINK( TableControl, ImplMouseButtonDownHdl, MouseEvent*, pData ) + { + CallEventListeners( VCLEVENT_WINDOW_MOUSEBUTTONDOWN, pData ); + return 1; + } + + IMPL_LINK( TableControl, ImplMouseButtonUpHdl, MouseEvent*, pData ) + { + CallEventListeners( VCLEVENT_WINDOW_MOUSEBUTTONUP, pData ); + return 1; + } + + SelectionEngine* TableControl::getSelEngine() + { + return m_pImpl->getSelEngine(); + } + + TableDataWindow* TableControl::getDataWindow() + { + return m_pImpl->getDataWindow(); + } +//........................................................................ +} } // namespace svt::table +//........................................................................ -- cgit