/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef DBAUI_TABLEWINDOWLISTBOX_HXX #define DBAUI_TABLEWINDOWLISTBOX_HXX #include #include "callbacks.hxx" struct AcceptDropEvent; struct ExecuteDropEvent; namespace dbaui { class OTableWindowListBox; struct OJoinExchangeData { public: OTableWindowListBox* pListBox; // die ListBox innerhalb desselben (daraus kann man sich das TabWin und daraus den WinName besorgen) SvLBoxEntry* pEntry; // der Eintrag, der gedraggt oder auf den gedroppt wurde OJoinExchangeData(OTableWindowListBox* pBox); OJoinExchangeData() : pListBox(NULL), pEntry(NULL) { } }; struct OJoinDropData { OJoinExchangeData aSource; OJoinExchangeData aDest; }; class OTableWindow; class OTableWindowListBox :public SvTreeListBox ,public IDragTransferableListener { DECL_LINK( OnDoubleClick, SvTreeListBox* ); DECL_LINK( ScrollUpHdl, SvTreeListBox* ); DECL_LINK( ScrollDownHdl, SvTreeListBox* ); DECL_LINK( DropHdl, void* ); DECL_LINK( LookForUiHdl, void* ); Timer m_aScrollTimer; Point m_aMousePos; OTableWindow* m_pTabWin; sal_uLong m_nDropEvent; sal_uLong m_nUiEvent; OJoinDropData m_aDropInfo; sal_Bool m_bReallyScrolled : 1; sal_Bool m_bDragSource : 1; protected: virtual void LoseFocus(); virtual void GetFocus(); virtual void NotifyScrolled(); virtual void NotifyEndScroll(); virtual long PreNotify(NotifyEvent& rNEvt); virtual void dragFinished( ); public: OTableWindowListBox(OTableWindow* pParent); virtual ~OTableWindowListBox(); // DnD stuff virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ); virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ); virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ); // window virtual void Command(const CommandEvent& rEvt); OTableWindow* GetTabWin(){ return m_pTabWin; } SvLBoxEntry* GetEntryFromText( const String& rEntryText ); private: using SvTreeListBox::ExecuteDrop; }; } #endif // DBAUI_TABLEWINDOWLISTBOX_HXX