15b190011SAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
35b190011SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
45b190011SAndrew Rist * or more contributor license agreements. See the NOTICE file
55b190011SAndrew Rist * distributed with this work for additional information
65b190011SAndrew Rist * regarding copyright ownership. The ASF licenses this file
75b190011SAndrew Rist * to you under the Apache License, Version 2.0 (the
85b190011SAndrew Rist * "License"); you may not use this file except in compliance
95b190011SAndrew Rist * with the License. You may obtain a copy of the License at
105b190011SAndrew Rist *
115b190011SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
125b190011SAndrew Rist *
135b190011SAndrew Rist * Unless required by applicable law or agreed to in writing,
145b190011SAndrew Rist * software distributed under the License is distributed on an
155b190011SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
165b190011SAndrew Rist * KIND, either express or implied. See the License for the
175b190011SAndrew Rist * specific language governing permissions and limitations
185b190011SAndrew Rist * under the License.
195b190011SAndrew Rist *
205b190011SAndrew Rist *************************************************************/
215b190011SAndrew Rist
225b190011SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_sd.hxx"
26cdf0e10cSrcweir
27cdf0e10cSrcweir #include "TabControl.hxx"
28cdf0e10cSrcweir
29cdf0e10cSrcweir #include <sfx2/viewfrm.hxx>
30cdf0e10cSrcweir #include <svx/svdlayer.hxx>
31cdf0e10cSrcweir #include <svx/svdpagv.hxx>
32cdf0e10cSrcweir #include <sfx2/dispatch.hxx>
33cdf0e10cSrcweir
34cdf0e10cSrcweir
35cdf0e10cSrcweir #include "sdattr.hxx"
36cdf0e10cSrcweir #include "app.hxx"
37cdf0e10cSrcweir #include "app.hrc"
38cdf0e10cSrcweir #include "glob.hrc"
39cdf0e10cSrcweir #include "res_bmp.hrc"
40cdf0e10cSrcweir #include "DrawViewShell.hxx"
41cdf0e10cSrcweir #include "GraphicViewShell.hxx"
42cdf0e10cSrcweir #include "helpids.h"
43cdf0e10cSrcweir #include "View.hxx"
44cdf0e10cSrcweir #include "sdpage.hxx"
45cdf0e10cSrcweir #include "drawdoc.hxx"
46cdf0e10cSrcweir #include "Window.hxx"
47cdf0e10cSrcweir #include "unmodpg.hxx"
48cdf0e10cSrcweir #include "DrawDocShell.hxx"
49cdf0e10cSrcweir #include "sdresid.hxx"
50cdf0e10cSrcweir
51cdf0e10cSrcweir
52cdf0e10cSrcweir namespace sd {
53cdf0e10cSrcweir
54cdf0e10cSrcweir #define SWITCH_TIMEOUT 20
55cdf0e10cSrcweir
56cdf0e10cSrcweir // -----------------------------------------
57cdf0e10cSrcweir // - SdTabControl::SdPageObjsTransferable -
58cdf0e10cSrcweir // -----------------------------------------
59cdf0e10cSrcweir
~TabControlTransferable()60cdf0e10cSrcweir TabControl::TabControlTransferable::~TabControlTransferable()
61cdf0e10cSrcweir {
62cdf0e10cSrcweir }
63cdf0e10cSrcweir
64cdf0e10cSrcweir // -----------------------------------------------------------------------------
65cdf0e10cSrcweir
AddSupportedFormats()66cdf0e10cSrcweir void TabControl::TabControlTransferable::AddSupportedFormats()
67cdf0e10cSrcweir {
68cdf0e10cSrcweir AddFormat( SOT_FORMATSTR_ID_STARDRAW_TABBAR );
69cdf0e10cSrcweir }
70cdf0e10cSrcweir
71cdf0e10cSrcweir // -----------------------------------------------------------------------------
72cdf0e10cSrcweir
GetData(const::com::sun::star::datatransfer::DataFlavor &)73cdf0e10cSrcweir sal_Bool TabControl::TabControlTransferable::GetData( const ::com::sun::star::datatransfer::DataFlavor& )
74cdf0e10cSrcweir {
75cdf0e10cSrcweir return sal_False;
76cdf0e10cSrcweir }
77cdf0e10cSrcweir
78cdf0e10cSrcweir // -----------------------------------------------------------------------------
79cdf0e10cSrcweir
DragFinished(sal_Int8 nDropAction)80cdf0e10cSrcweir void TabControl::TabControlTransferable::DragFinished( sal_Int8 nDropAction )
81cdf0e10cSrcweir {
82cdf0e10cSrcweir mrParent.DragFinished( nDropAction );
83cdf0e10cSrcweir }
84cdf0e10cSrcweir
85cdf0e10cSrcweir /*************************************************************************
86cdf0e10cSrcweir |*
87cdf0e10cSrcweir |* Standard-Konstruktor
88cdf0e10cSrcweir |*
89cdf0e10cSrcweir \************************************************************************/
90cdf0e10cSrcweir
TabControl(DrawViewShell * pViewSh,Window * pParent)91cdf0e10cSrcweir TabControl::TabControl(DrawViewShell* pViewSh, Window* pParent) :
92cdf0e10cSrcweir TabBar( pParent, WinBits( WB_BORDER | WB_3DLOOK | WB_SCROLL | WB_SIZEABLE | WB_DRAG) ),
93cdf0e10cSrcweir DragSourceHelper( this ),
94cdf0e10cSrcweir DropTargetHelper( this ),
95*0deba7fbSSteve Yin RrePageID(1),
96cdf0e10cSrcweir pDrViewSh(pViewSh),
97cdf0e10cSrcweir bInternalMove(sal_False)
98cdf0e10cSrcweir {
99cdf0e10cSrcweir EnableEditMode();
100cdf0e10cSrcweir SetSizePixel(Size(0, 0));
101cdf0e10cSrcweir SetMaxPageWidth( 150 );
102cdf0e10cSrcweir SetHelpId( HID_SD_TABBAR_PAGES );
103cdf0e10cSrcweir }
104cdf0e10cSrcweir
105cdf0e10cSrcweir /*************************************************************************
106cdf0e10cSrcweir |*
107cdf0e10cSrcweir |* Destruktor
108cdf0e10cSrcweir |*
109cdf0e10cSrcweir \************************************************************************/
110cdf0e10cSrcweir
~TabControl()111cdf0e10cSrcweir TabControl::~TabControl()
112cdf0e10cSrcweir {
113cdf0e10cSrcweir }
114cdf0e10cSrcweir
115cdf0e10cSrcweir /*************************************************************************
116cdf0e10cSrcweir |*
117cdf0e10cSrcweir \************************************************************************/
118cdf0e10cSrcweir
Select()119cdf0e10cSrcweir void TabControl::Select()
120cdf0e10cSrcweir {
121cdf0e10cSrcweir SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
122cdf0e10cSrcweir pDispatcher->Execute(SID_SWITCHPAGE, SFX_CALLMODE_ASYNCHRON |
123cdf0e10cSrcweir SFX_CALLMODE_RECORD);
124cdf0e10cSrcweir }
125cdf0e10cSrcweir
126cdf0e10cSrcweir /*************************************************************************
127cdf0e10cSrcweir |*
128cdf0e10cSrcweir \************************************************************************/
129cdf0e10cSrcweir
MouseButtonDown(const MouseEvent & rMEvt)130cdf0e10cSrcweir void TabControl::MouseButtonDown(const MouseEvent& rMEvt)
131cdf0e10cSrcweir {
132cdf0e10cSrcweir if (rMEvt.IsLeft()
133cdf0e10cSrcweir && !rMEvt.IsMod1()
134cdf0e10cSrcweir && !rMEvt.IsMod2()
135cdf0e10cSrcweir && !rMEvt.IsShift())
136cdf0e10cSrcweir {
137cdf0e10cSrcweir Point aPos = PixelToLogic( rMEvt.GetPosPixel() );
138cdf0e10cSrcweir sal_uInt16 aPageId = GetPageId(aPos);
139cdf0e10cSrcweir
140*0deba7fbSSteve Yin //Solution: initialize
141*0deba7fbSSteve Yin if(RrePageID!=aPageId)
142*0deba7fbSSteve Yin pDrViewSh->FreshNavigatrEntry();
143*0deba7fbSSteve Yin RrePageID=aPageId;
144cdf0e10cSrcweir if (aPageId == 0)
145cdf0e10cSrcweir {
146cdf0e10cSrcweir SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
147cdf0e10cSrcweir
148cdf0e10cSrcweir pDispatcher->Execute(SID_INSERTPAGE_QUICK,
149cdf0e10cSrcweir SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD);
150cdf0e10cSrcweir }
151cdf0e10cSrcweir }
152cdf0e10cSrcweir
153cdf0e10cSrcweir // A single left click with pressed control key on a tab page first
154cdf0e10cSrcweir // switches to that page before the usual handling (copying with drag
155cdf0e10cSrcweir // and drop) takes place.
156cdf0e10cSrcweir else if (rMEvt.IsLeft() && rMEvt.IsMod1() && !rMEvt.IsMod2() && !rMEvt.IsShift())
157cdf0e10cSrcweir {
158cdf0e10cSrcweir pDrViewSh->SwitchPage (GetPageId (rMEvt.GetPosPixel()) - 1);
159cdf0e10cSrcweir }
160cdf0e10cSrcweir
161cdf0e10cSrcweir // When only the right button is pressed then first process a
162cdf0e10cSrcweir // synthesized left button click to make the page the current one
163cdf0e10cSrcweir // whose tab has been clicked. When then the actual right button
164cdf0e10cSrcweir // click is processed the resulting context menu relates to the
165cdf0e10cSrcweir // now current page.
166cdf0e10cSrcweir if (rMEvt.IsRight() && ! rMEvt.IsLeft())
167cdf0e10cSrcweir {
168cdf0e10cSrcweir MouseEvent aSyntheticEvent (
169cdf0e10cSrcweir rMEvt.GetPosPixel(),
170cdf0e10cSrcweir rMEvt.GetClicks(),
171cdf0e10cSrcweir rMEvt.GetMode(),
172cdf0e10cSrcweir MOUSE_LEFT,
173cdf0e10cSrcweir rMEvt.GetModifier());
174cdf0e10cSrcweir TabBar::MouseButtonDown(aSyntheticEvent);
175cdf0e10cSrcweir }
176cdf0e10cSrcweir
177cdf0e10cSrcweir TabBar::MouseButtonDown(rMEvt);
178cdf0e10cSrcweir }
179cdf0e10cSrcweir
180cdf0e10cSrcweir /*************************************************************************
181cdf0e10cSrcweir |*
182cdf0e10cSrcweir \************************************************************************/
183cdf0e10cSrcweir
DoubleClick()184cdf0e10cSrcweir void TabControl::DoubleClick()
185cdf0e10cSrcweir {
186cdf0e10cSrcweir if (GetCurPageId() != 0)
187cdf0e10cSrcweir {
188cdf0e10cSrcweir SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
189cdf0e10cSrcweir pDispatcher->Execute( SID_MODIFYPAGE,
190cdf0e10cSrcweir SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD );
191cdf0e10cSrcweir }
192cdf0e10cSrcweir }
193cdf0e10cSrcweir
194cdf0e10cSrcweir /*************************************************************************
195cdf0e10cSrcweir |*
196cdf0e10cSrcweir |* StartDrag-Request
197cdf0e10cSrcweir |*
198cdf0e10cSrcweir \************************************************************************/
199cdf0e10cSrcweir
StartDrag(sal_Int8,const Point &)200cdf0e10cSrcweir void TabControl::StartDrag( sal_Int8, const Point& )
201cdf0e10cSrcweir {
202cdf0e10cSrcweir bInternalMove = sal_True;
203cdf0e10cSrcweir
204cdf0e10cSrcweir // object is delete by reference mechanismn
205cdf0e10cSrcweir ( new TabControl::TabControlTransferable( *this ) )->StartDrag( this, DND_ACTION_COPYMOVE );
206cdf0e10cSrcweir }
207cdf0e10cSrcweir
208cdf0e10cSrcweir /*************************************************************************
209cdf0e10cSrcweir |*
210cdf0e10cSrcweir |* DragFinished
211cdf0e10cSrcweir |*
212cdf0e10cSrcweir \************************************************************************/
213cdf0e10cSrcweir
DragFinished(sal_Int8)214cdf0e10cSrcweir void TabControl::DragFinished( sal_Int8 )
215cdf0e10cSrcweir {
216cdf0e10cSrcweir bInternalMove = sal_False;
217cdf0e10cSrcweir }
218cdf0e10cSrcweir
219cdf0e10cSrcweir /*************************************************************************
220cdf0e10cSrcweir |*
221cdf0e10cSrcweir |* AcceptDrop-Event
222cdf0e10cSrcweir |*
223cdf0e10cSrcweir \************************************************************************/
224cdf0e10cSrcweir
AcceptDrop(const AcceptDropEvent & rEvt)225cdf0e10cSrcweir sal_Int8 TabControl::AcceptDrop( const AcceptDropEvent& rEvt )
226cdf0e10cSrcweir {
227cdf0e10cSrcweir sal_Int8 nRet = DND_ACTION_NONE;
228cdf0e10cSrcweir
229cdf0e10cSrcweir if( rEvt.mbLeaving )
230cdf0e10cSrcweir EndSwitchPage();
231cdf0e10cSrcweir
232cdf0e10cSrcweir if( !pDrViewSh->GetDocSh()->IsReadOnly() )
233cdf0e10cSrcweir {
234cdf0e10cSrcweir SdDrawDocument* pDoc = pDrViewSh->GetDoc();
235cdf0e10cSrcweir Point aPos( rEvt.maPosPixel );
236cdf0e10cSrcweir
237cdf0e10cSrcweir if( bInternalMove )
238cdf0e10cSrcweir {
239cdf0e10cSrcweir if( rEvt.mbLeaving || ( pDrViewSh->GetEditMode() == EM_MASTERPAGE ) )
240cdf0e10cSrcweir HideDropPos();
241cdf0e10cSrcweir else
242cdf0e10cSrcweir {
243cdf0e10cSrcweir ShowDropPos( aPos );
244cdf0e10cSrcweir nRet = rEvt.mnAction;
245cdf0e10cSrcweir }
246cdf0e10cSrcweir }
247cdf0e10cSrcweir else
248cdf0e10cSrcweir {
249cdf0e10cSrcweir HideDropPos();
250cdf0e10cSrcweir
251cdf0e10cSrcweir sal_Int32 nPageId = GetPageId( aPos ) - 1;
252cdf0e10cSrcweir
253cdf0e10cSrcweir if( ( nPageId >= 0 ) && pDoc->GetPage( (sal_uInt16)nPageId ) )
254cdf0e10cSrcweir {
255cdf0e10cSrcweir nRet = pDrViewSh->AcceptDrop( rEvt, *this, NULL, (sal_uInt16)nPageId, SDRLAYER_NOTFOUND );
256cdf0e10cSrcweir SwitchPage( aPos );
257cdf0e10cSrcweir }
258cdf0e10cSrcweir }
259cdf0e10cSrcweir }
260cdf0e10cSrcweir
261cdf0e10cSrcweir return nRet;
262cdf0e10cSrcweir }
263cdf0e10cSrcweir
264cdf0e10cSrcweir /*************************************************************************
265cdf0e10cSrcweir |*
266cdf0e10cSrcweir |* ExecuteDrop-Event
267cdf0e10cSrcweir |*
268cdf0e10cSrcweir \************************************************************************/
269cdf0e10cSrcweir
ExecuteDrop(const ExecuteDropEvent & rEvt)270cdf0e10cSrcweir sal_Int8 TabControl::ExecuteDrop( const ExecuteDropEvent& rEvt )
271cdf0e10cSrcweir {
272cdf0e10cSrcweir SdDrawDocument* pDoc = pDrViewSh->GetDoc();
273cdf0e10cSrcweir Point aPos( rEvt.maPosPixel );
274cdf0e10cSrcweir sal_Int8 nRet = DND_ACTION_NONE;
275cdf0e10cSrcweir
276cdf0e10cSrcweir if( bInternalMove )
277cdf0e10cSrcweir {
278cdf0e10cSrcweir sal_uInt16 nPageId = ShowDropPos( aPos ) - 1;
279cdf0e10cSrcweir
280cdf0e10cSrcweir switch (rEvt.mnAction)
281cdf0e10cSrcweir {
282cdf0e10cSrcweir case DND_ACTION_MOVE:
283cdf0e10cSrcweir if( pDrViewSh->IsSwitchPageAllowed() && pDoc->MovePages( nPageId ) )
284cdf0e10cSrcweir {
285cdf0e10cSrcweir SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
286cdf0e10cSrcweir pDispatcher->Execute(SID_SWITCHPAGE, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
287cdf0e10cSrcweir }
288cdf0e10cSrcweir break;
289cdf0e10cSrcweir
290cdf0e10cSrcweir case DND_ACTION_COPY:
291cdf0e10cSrcweir {
292cdf0e10cSrcweir // Copying the selected page to the place that rEvt points
293cdf0e10cSrcweir // takes place in three steps:
294cdf0e10cSrcweir // 1. Create a copy of the selected page. This copy will
295cdf0e10cSrcweir // lie directly behind the selected page.
296cdf0e10cSrcweir // 2. Move the copy to the desired place.
297cdf0e10cSrcweir // 3. Select the copy.
298cdf0e10cSrcweir if (pDrViewSh->IsSwitchPageAllowed())
299cdf0e10cSrcweir {
300cdf0e10cSrcweir // 1. Create a copy.
301cdf0e10cSrcweir sal_uInt16 nPageNumOfCopy = pDoc->DuplicatePage (GetCurPageId() - 1);
302cdf0e10cSrcweir // 2. Move page. For this first switch to the copy:
303cdf0e10cSrcweir // MovePages operates on the currently selected page(s).
304cdf0e10cSrcweir pDrViewSh->SwitchPage (nPageNumOfCopy);
305cdf0e10cSrcweir // Adapt target page id when necessary, i.e. page copy
306cdf0e10cSrcweir // has been inserted in front of the target page.
307cdf0e10cSrcweir sal_uInt16 nPageNum = nPageId;
308cdf0e10cSrcweir if ((nPageNumOfCopy <= nPageNum) && (nPageNum != (sal_uInt16)-1))
309cdf0e10cSrcweir nPageNum += 1;
310cdf0e10cSrcweir if (pDoc->MovePages(nPageNum))
311cdf0e10cSrcweir {
312cdf0e10cSrcweir // 3. Switch to the copy that has been moved to its
313cdf0e10cSrcweir // final destination. Use an asynchron slot call to
314cdf0e10cSrcweir // be executed after the still pending ones.
315cdf0e10cSrcweir if (nPageNumOfCopy >= nPageNum || (nPageNum == (sal_uInt16)-1))
316cdf0e10cSrcweir nPageNum += 1;
317cdf0e10cSrcweir SetCurPageId (GetPageId(nPageNum));
318cdf0e10cSrcweir SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
319cdf0e10cSrcweir pDispatcher->Execute(SID_SWITCHPAGE,
320cdf0e10cSrcweir SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
321cdf0e10cSrcweir }
322cdf0e10cSrcweir }
323cdf0e10cSrcweir
324cdf0e10cSrcweir break;
325cdf0e10cSrcweir }
326cdf0e10cSrcweir }
327cdf0e10cSrcweir
328cdf0e10cSrcweir nRet = rEvt.mnAction;
329cdf0e10cSrcweir }
330cdf0e10cSrcweir else
331cdf0e10cSrcweir {
332cdf0e10cSrcweir sal_Int32 nPageId = GetPageId( aPos ) - 1;
333cdf0e10cSrcweir
334cdf0e10cSrcweir if( ( nPageId >= 0 ) && pDoc->GetPage( (sal_uInt16)nPageId ) )
335cdf0e10cSrcweir {
336cdf0e10cSrcweir nRet = pDrViewSh->ExecuteDrop( rEvt, *this, NULL, (sal_uInt16)nPageId, SDRLAYER_NOTFOUND );
337cdf0e10cSrcweir }
338cdf0e10cSrcweir }
339cdf0e10cSrcweir
340cdf0e10cSrcweir HideDropPos();
341cdf0e10cSrcweir EndSwitchPage();
342cdf0e10cSrcweir
343cdf0e10cSrcweir return nRet;
344cdf0e10cSrcweir }
345cdf0e10cSrcweir
346cdf0e10cSrcweir /*************************************************************************
347cdf0e10cSrcweir |*
348cdf0e10cSrcweir \************************************************************************/
349cdf0e10cSrcweir
Command(const CommandEvent & rCEvt)350cdf0e10cSrcweir void TabControl::Command(const CommandEvent& rCEvt)
351cdf0e10cSrcweir {
352cdf0e10cSrcweir sal_uInt16 nCmd = rCEvt.GetCommand();
353cdf0e10cSrcweir
354cdf0e10cSrcweir if ( nCmd == COMMAND_CONTEXTMENU )
355cdf0e10cSrcweir {
356cdf0e10cSrcweir sal_Bool bGraphicShell = pDrViewSh->ISA(GraphicViewShell);
357cdf0e10cSrcweir sal_uInt16 nResId = bGraphicShell ? RID_GRAPHIC_PAGETAB_POPUP :
358cdf0e10cSrcweir RID_DRAW_PAGETAB_POPUP;
359cdf0e10cSrcweir SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
360cdf0e10cSrcweir pDispatcher->ExecutePopup( SdResId( nResId ) );
361cdf0e10cSrcweir }
362cdf0e10cSrcweir }
363cdf0e10cSrcweir
364cdf0e10cSrcweir /*************************************************************************
365cdf0e10cSrcweir |*
366cdf0e10cSrcweir \************************************************************************/
367cdf0e10cSrcweir
StartRenaming()368cdf0e10cSrcweir long TabControl::StartRenaming()
369cdf0e10cSrcweir {
370cdf0e10cSrcweir sal_Bool bOK = sal_False;
371cdf0e10cSrcweir
372cdf0e10cSrcweir if (pDrViewSh->GetPageKind() == PK_STANDARD)
373cdf0e10cSrcweir {
374cdf0e10cSrcweir bOK = sal_True;
375cdf0e10cSrcweir
376cdf0e10cSrcweir ::sd::View* pView = pDrViewSh->GetView();
377cdf0e10cSrcweir
378cdf0e10cSrcweir if ( pView->IsTextEdit() )
379cdf0e10cSrcweir pView->SdrEndTextEdit();
380cdf0e10cSrcweir }
381cdf0e10cSrcweir
382cdf0e10cSrcweir return( bOK );
383cdf0e10cSrcweir }
384cdf0e10cSrcweir
385cdf0e10cSrcweir /*************************************************************************
386cdf0e10cSrcweir |*
387cdf0e10cSrcweir \************************************************************************/
388cdf0e10cSrcweir
AllowRenaming()389cdf0e10cSrcweir long TabControl::AllowRenaming()
390cdf0e10cSrcweir {
391cdf0e10cSrcweir sal_Bool bOK = sal_True;
392cdf0e10cSrcweir
393cdf0e10cSrcweir String aNewName( GetEditText() );
394cdf0e10cSrcweir String aCompareName( GetPageText( GetEditPageId() ) );
395cdf0e10cSrcweir
396cdf0e10cSrcweir if( aCompareName != aNewName )
397cdf0e10cSrcweir {
398cdf0e10cSrcweir // Seite umbenennen
399cdf0e10cSrcweir if( pDrViewSh->GetDocSh()->CheckPageName( this, aNewName ) )
400cdf0e10cSrcweir {
401cdf0e10cSrcweir SetEditText( aNewName );
402cdf0e10cSrcweir EndRenaming();
403cdf0e10cSrcweir }
404cdf0e10cSrcweir else
405cdf0e10cSrcweir {
406cdf0e10cSrcweir bOK = sal_False;
407cdf0e10cSrcweir }
408cdf0e10cSrcweir }
409cdf0e10cSrcweir return( bOK );
410cdf0e10cSrcweir }
411cdf0e10cSrcweir
412cdf0e10cSrcweir /*************************************************************************
413cdf0e10cSrcweir |*
414cdf0e10cSrcweir \************************************************************************/
415cdf0e10cSrcweir
EndRenaming()416cdf0e10cSrcweir void TabControl::EndRenaming()
417cdf0e10cSrcweir {
418cdf0e10cSrcweir if( !IsEditModeCanceled() )
419cdf0e10cSrcweir pDrViewSh->RenameSlide( GetEditPageId(), GetEditText() );
420cdf0e10cSrcweir }
421cdf0e10cSrcweir
422cdf0e10cSrcweir
423cdf0e10cSrcweir /*************************************************************************
424cdf0e10cSrcweir |*
425cdf0e10cSrcweir \************************************************************************/
426cdf0e10cSrcweir
ActivatePage()427cdf0e10cSrcweir void TabControl::ActivatePage()
428cdf0e10cSrcweir {
429cdf0e10cSrcweir if ( /*IsInSwitching && */ pDrViewSh->IsSwitchPageAllowed() )
430cdf0e10cSrcweir {
431cdf0e10cSrcweir SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
432cdf0e10cSrcweir pDispatcher->Execute(SID_SWITCHPAGE,
433cdf0e10cSrcweir SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
434cdf0e10cSrcweir }
435cdf0e10cSrcweir }
436cdf0e10cSrcweir
437cdf0e10cSrcweir
438cdf0e10cSrcweir /*************************************************************************
439cdf0e10cSrcweir |*
440cdf0e10cSrcweir \************************************************************************/
441cdf0e10cSrcweir
DeactivatePage()442cdf0e10cSrcweir long TabControl::DeactivatePage()
443cdf0e10cSrcweir {
444cdf0e10cSrcweir return pDrViewSh->IsSwitchPageAllowed();
445cdf0e10cSrcweir }
446cdf0e10cSrcweir
447cdf0e10cSrcweir
448cdf0e10cSrcweir
449cdf0e10cSrcweir
SendActivatePageEvent(void)450cdf0e10cSrcweir void TabControl::SendActivatePageEvent (void)
451cdf0e10cSrcweir {
452cdf0e10cSrcweir CallEventListeners (VCLEVENT_TABBAR_PAGEACTIVATED,
453cdf0e10cSrcweir reinterpret_cast<void*>(GetCurPageId()));
454cdf0e10cSrcweir }
455cdf0e10cSrcweir
456cdf0e10cSrcweir
457cdf0e10cSrcweir
458cdf0e10cSrcweir
SendDeactivatePageEvent(void)459cdf0e10cSrcweir void TabControl::SendDeactivatePageEvent (void)
460cdf0e10cSrcweir {
461cdf0e10cSrcweir CallEventListeners (VCLEVENT_TABBAR_PAGEDEACTIVATED,
462cdf0e10cSrcweir reinterpret_cast<void*>(GetCurPageId()));
463cdf0e10cSrcweir }
464cdf0e10cSrcweir
465cdf0e10cSrcweir } // end of namespace sd
466