| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | /*************************************************************************
 | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 15:27:02 +00:00
										 |  |  |  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 15:27:02 +00:00
										 |  |  |  * Copyright 2008 by Sun Microsystems, Inc. | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 15:27:02 +00:00
										 |  |  |  * OpenOffice.org - a multi-platform office productivity suite | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 15:27:02 +00:00
										 |  |  |  * $RCSfile: TableWindowTitle.cxx,v $ | 
					
						
							|  |  |  |  * $Revision: 1.24 $ | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 15:27:02 +00:00
										 |  |  |  * This file is part of OpenOffice.org. | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 15:27:02 +00:00
										 |  |  |  * 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. | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 15:27:02 +00:00
										 |  |  |  * 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). | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 15:27:02 +00:00
										 |  |  |  * You should have received a copy of the GNU Lesser General Public License | 
					
						
							|  |  |  |  * version 3 along with OpenOffice.org.  If not, see | 
					
						
							|  |  |  |  * <http://www.openoffice.org/license.html>
 | 
					
						
							|  |  |  |  * for a copy of the LGPLv3 License. | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  ************************************************************************/ | 
					
						
							| 
									
										
										
										
											2006-09-17 06:26:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | // MARKER(update_precomp.py): autogen include statement, do not remove
 | 
					
						
							|  |  |  | #include "precompiled_dbaccess.hxx"
 | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | #ifndef DBAUI_TABLEWINDOWTITLE_HXX
 | 
					
						
							|  |  |  | #include "TableWindowTitle.hxx"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef DBAUI_TABLEWINDOW_HXX
 | 
					
						
							|  |  |  | #include "TableWindow.hxx"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef DBAUI_QUERYTABLEVIEW_HXX
 | 
					
						
							|  |  |  | #include "QueryTableView.hxx"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef _SV_SVAPP_HXX
 | 
					
						
							|  |  |  | #include <vcl/svapp.hxx>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef _SV_HELP_HXX
 | 
					
						
							|  |  |  | #include <vcl/help.hxx>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef _SV_MENU_HXX
 | 
					
						
							|  |  |  | #include <vcl/menu.hxx>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef _TOOLS_DEBUG_HXX
 | 
					
						
							|  |  |  | #include <tools/debug.hxx>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC
 | 
					
						
							|  |  |  | #include "dbustrings.hrc"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef _CNTIDS_HRC
 | 
					
						
							| 
									
										
										
										
											2001-02-06 12:41:51 +00:00
										 |  |  | #include <sfx2/cntids.hrc>
 | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef DBAUI_TABLEWINDOWLISTBOX_HXX
 | 
					
						
							|  |  |  | #include "TableWindowListBox.hxx"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef DBAUI_TABLECONNECTION_HXX
 | 
					
						
							|  |  |  | #include "TableConnection.hxx"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2002-08-19 07:01:32 +00:00
										 |  |  | #ifndef _DBU_QRY_HRC_
 | 
					
						
							|  |  |  | #include "dbu_qry.hrc"
 | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2001-02-14 13:54:12 +00:00
										 |  |  | #ifndef DBAUI_QUERYDESIGNVIEW_HXX
 | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | #include "QueryDesignView.hxx"
 | 
					
						
							| 
									
										
										
										
											2001-02-14 13:54:12 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2001-02-28 09:18:26 +00:00
										 |  |  | #ifndef DBAUI_JOINCONTROLLER_HXX
 | 
					
						
							|  |  |  | #include "JoinController.hxx"
 | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-31 16:32:48 +00:00
										 |  |  | #include <algorithm>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | using namespace dbaui; | 
					
						
							|  |  |  | using namespace ::com::sun::star::beans; | 
					
						
							|  |  |  | using namespace ::com::sun::star::uno; | 
					
						
							|  |  |  | //==================================================================
 | 
					
						
							|  |  |  | // class OTableWindowTitle
 | 
					
						
							|  |  |  | //==================================================================
 | 
					
						
							| 
									
										
										
										
											2006-06-20 02:29:22 +00:00
										 |  |  | DBG_NAME(OTableWindowTitle) | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | //------------------------------------------------------------------------------
 | 
					
						
							|  |  |  | OTableWindowTitle::OTableWindowTitle( OTableWindow* pParent ) : | 
					
						
							| 
									
										
										
										
											2006-12-13 15:54:41 +00:00
										 |  |  |      FixedText( pParent, WB_3DLOOK|WB_LEFT|WB_NOLABEL|WB_VCENTER ) | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |     ,m_pTabWin( pParent ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     DBG_CTOR(OTableWindowTitle,NULL); | 
					
						
							|  |  |  |     // Hintergrund- und Textfarbe setzen
 | 
					
						
							|  |  |  |     StyleSettings aSystemStyle = Application::GetSettings().GetStyleSettings(); | 
					
						
							|  |  |  |     SetBackground(Wallpaper(Color(aSystemStyle.GetFaceColor()))); | 
					
						
							|  |  |  |     SetTextColor(aSystemStyle.GetButtonTextColor()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Font aFont( GetFont() ); | 
					
						
							|  |  |  |     aFont.SetTransparent( TRUE ); | 
					
						
							|  |  |  |     SetFont( aFont ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //------------------------------------------------------------------------------
 | 
					
						
							|  |  |  | OTableWindowTitle::~OTableWindowTitle() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     DBG_DTOR(OTableWindowTitle,NULL); | 
					
						
							| 
									
										
										
										
											2004-08-02 15:15:55 +00:00
										 |  |  |     m_pTabWin = NULL; | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //------------------------------------------------------------------------------
 | 
					
						
							|  |  |  | void OTableWindowTitle::GetFocus() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-09-20 11:59:25 +00:00
										 |  |  |     if(m_pTabWin) | 
					
						
							|  |  |  |         m_pTabWin->GetFocus(); | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //------------------------------------------------------------------------------
 | 
					
						
							|  |  |  | void OTableWindowTitle::LoseFocus() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     m_pTabWin->LoseFocus(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | //------------------------------------------------------------------------------
 | 
					
						
							|  |  |  | void OTableWindowTitle::RequestHelp( const HelpEvent& rHEvt ) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2001-05-04 09:56:29 +00:00
										 |  |  |     if(m_pTabWin) | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2001-05-04 09:56:29 +00:00
										 |  |  |         String aHelpText = m_pTabWin->GetComposedName(); | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |         if( aHelpText.Len()) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             // Hilfe anzeigen
 | 
					
						
							|  |  |  |             Rectangle aItemRect(Point(0,0),GetSizePixel()); | 
					
						
							|  |  |  |             aItemRect = LogicToPixel( aItemRect ); | 
					
						
							|  |  |  |             Point aPt = OutputToScreenPixel( aItemRect.TopLeft() ); | 
					
						
							|  |  |  |             aItemRect.Left()   = aPt.X(); | 
					
						
							|  |  |  |             aItemRect.Top()    = aPt.Y(); | 
					
						
							|  |  |  |             aPt = OutputToScreenPixel( aItemRect.BottomRight() ); | 
					
						
							|  |  |  |             aItemRect.Right()  = aPt.X(); | 
					
						
							|  |  |  |             aItemRect.Bottom() = aPt.Y(); | 
					
						
							|  |  |  |             if( rHEvt.GetMode() == HELPMODE_BALLOON ) | 
					
						
							|  |  |  |                 Help::ShowBalloon( this, aItemRect.Center(), aItemRect, aHelpText); | 
					
						
							|  |  |  |             else | 
					
						
							|  |  |  |                 Help::ShowQuickHelp( this, aItemRect, aHelpText ); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //------------------------------------------------------------------------------
 | 
					
						
							|  |  |  | void OTableWindowTitle::Command( const CommandEvent& rEvt ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     switch( rEvt.GetCommand() ) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         case COMMAND_CONTEXTMENU: | 
					
						
							|  |  |  |         { | 
					
						
							| 
									
										
										
										
											2001-04-02 10:05:23 +00:00
										 |  |  |             GrabFocus(); | 
					
						
							| 
									
										
										
										
											2002-02-06 07:15:30 +00:00
										 |  |  |             if ( m_pTabWin ) | 
					
						
							|  |  |  |                 m_pTabWin->Command( rEvt ); | 
					
						
							|  |  |  |             else | 
					
						
							|  |  |  |                 Control::Command(rEvt); | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //------------------------------------------------------------------------------
 | 
					
						
							| 
									
										
										
										
											2002-11-26 11:47:22 +00:00
										 |  |  | //void OTableWindowTitle::Paint( const Rectangle& rRect )
 | 
					
						
							|  |  |  | //{
 | 
					
						
							|  |  |  | //  //////////////////////////////////////////////////////////////////////
 | 
					
						
							|  |  |  | //  // Ausgabe des Textes in der Titelzeile
 | 
					
						
							|  |  |  | //  Rectangle aWinRect( Point(0,0), GetSizePixel() );
 | 
					
						
							|  |  |  | //  DrawText( aWinRect, GetText(), TEXT_DRAW_CENTER|TEXT_DRAW_VCENTER|TEXT_DRAW_ENDELLIPSIS );
 | 
					
						
							|  |  |  | //}
 | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | //------------------------------------------------------------------------------
 | 
					
						
							|  |  |  | void OTableWindowTitle::KeyInput( const KeyEvent& rEvt ) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2002-11-26 11:47:22 +00:00
										 |  |  |     if ( m_pTabWin ) | 
					
						
							|  |  |  |         m_pTabWin->KeyInput( rEvt ); | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //------------------------------------------------------------------------------
 | 
					
						
							|  |  |  | void OTableWindowTitle::MouseButtonDown( const MouseEvent& rEvt ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if( rEvt.IsLeft() ) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         if( rEvt.GetClicks() == 2) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             Size aSize(GetTextWidth(GetText()) + 20, | 
					
						
							|  |  |  |                         m_pTabWin->GetSizePixel().Height() - m_pTabWin->GetListBox()->GetSizePixel().Height()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             aSize.Height() += (m_pTabWin->GetListBox()->GetEntryCount() + 2) * m_pTabWin->GetListBox()->GetEntryHeight(); | 
					
						
							| 
									
										
										
										
											2001-10-26 06:49:36 +00:00
										 |  |  |             if(m_pTabWin->GetSizePixel() != aSize) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 m_pTabWin->SetSizePixel(aSize); | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-03-26 06:56:42 +00:00
										 |  |  |                 OJoinTableView* pView = static_cast<OJoinTableView*>(m_pTabWin->getTableView()); | 
					
						
							|  |  |  |                 OSL_ENSURE(pView,"No OJoinTableView!"); | 
					
						
							| 
									
										
										
										
											2002-02-08 08:10:00 +00:00
										 |  |  |                 const ::std::vector<OTableConnection*>* pConns = pView->getTableConnections(); | 
					
						
							|  |  |  |                 ::std::for_each(pConns->begin(), | 
					
						
							|  |  |  |                                 pConns->end(), | 
					
						
							|  |  |  |                                 ::std::mem_fun(&OTableConnection::RecalcLines)); | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-26 06:49:36 +00:00
										 |  |  |                 pView->InvalidateConnections(); | 
					
						
							|  |  |  |                 pView->getDesignView()->getController()->setModified(sal_True); | 
					
						
							|  |  |  |                 pView->Invalidate(INVALIDATE_NOCHILDREN); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |         } | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             Point aPos = rEvt.GetPosPixel(); | 
					
						
							|  |  |  |             aPos = OutputToScreenPixel( aPos ); | 
					
						
							| 
									
										
										
										
											2002-03-26 06:56:42 +00:00
										 |  |  |             OJoinTableView* pView = static_cast<OJoinTableView*>(m_pTabWin->getTableView()); | 
					
						
							|  |  |  |             OSL_ENSURE(pView,"No OJoinTableView!"); | 
					
						
							| 
									
										
										
										
											2001-02-05 08:26:47 +00:00
										 |  |  |             pView->NotifyTitleClicked( static_cast<OTableWindow*>(GetParent()), aPos ); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         GrabFocus(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |         Control::MouseButtonDown( rEvt ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //------------------------------------------------------------------------------
 | 
					
						
							|  |  |  | void OTableWindowTitle::DataChanged(const DataChangedEvent& rDCEvt) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (rDCEvt.GetType() == DATACHANGED_SETTINGS) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // nehmen wir den worst-case an : die Farben haben sich geaendert, also
 | 
					
						
							|  |  |  |         // mich anpassen
 | 
					
						
							|  |  |  |         StyleSettings aSystemStyle = Application::GetSettings().GetStyleSettings(); | 
					
						
							|  |  |  |         SetBackground(Wallpaper(Color(aSystemStyle.GetFaceColor()))); | 
					
						
							|  |  |  |         SetTextColor(aSystemStyle.GetButtonTextColor()); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | // -----------------------------------------------------------------------------
 | 
					
						
							|  |  |  | void OTableWindowTitle::StateChanged( StateChangedType nType ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Window::StateChanged( nType ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if ( nType == STATE_CHANGE_ZOOM ) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         Font aFont = rStyleSettings.GetGroupFont(); | 
					
						
							|  |  |  |         if ( IsControlFont() ) | 
					
						
							|  |  |  |             aFont.Merge( GetControlFont() ); | 
					
						
							|  |  |  |         SetZoomedPointFont( aFont ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         Resize(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |