LibreOffice Module sd (master) 1
showwin.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#include <com/sun/star/awt/Key.hpp>
21
22#include "showwindow.hxx"
23#include "slideshowimpl.hxx"
24
27#include <sfx2/viewfrm.hxx>
28#include <sfx2/sfxsids.hrc>
29
30
31#include <slideshow.hxx>
32#include <ViewShell.hxx>
33#include <sdresid.hxx>
34#include <helpids.h>
35#include <strings.hrc>
36
37#include <sal/log.hxx>
38#include <utility>
39#include <vcl/settings.hxx>
40#include <vcl/virdev.hxx>
41#include <tools/duration.hxx>
42
43using namespace ::com::sun::star;
44
45namespace sd {
46
47const sal_uInt64 HIDE_MOUSE_TIMEOUT = 10000;
48const sal_uInt64 SHOW_MOUSE_TIMEOUT = 1000;
49
51: ::sd::Window( pParent )
52, maPauseTimer("sd ShowWindow maPauseTimer")
53, maMouseTimer("sd ShowWindow maMouseTimer")
54, mnPauseTimeout( SLIDE_NO_TIMEOUT )
55, mnRestartPageIndex( PAGE_NO_END )
56, meShowWindowMode(SHOWWINDOWMODE_NORMAL)
57, mbShowNavigatorAfterSpecialMode( false )
58, mbMouseAutoHide(true)
59, mbMouseCursorHidden(false)
60, mnFirstMouseMove(0)
61, mxController(std::move( xController ))
62{
63 GetOutDev()->SetOutDevViewType( OutDevViewType::SlideShow );
64
65 // Do never mirror the preview window. This explicitly includes right
66 // to left writing environments.
67 EnableRTL (false);
68
70 aMap.SetMapUnit(MapUnit::Map100thMM);
72
73 // set HelpId
75
76 maPauseTimer.SetInvokeHandler( LINK( this, ShowWindow, PauseTimeoutHdl ) );
78 maMouseTimer.SetInvokeHandler( LINK( this, ShowWindow, MouseTimeoutHdl ) );
80
82 SetBackground(); // avoids that VCL paints any background!
83 GetParent()->Show();
84 AddEventListener( LINK( this, ShowWindow, EventHdl ) );
85}
86
88{
90}
91
93{
97}
98
100{
101 bool bReturn = false;
102
104 {
106 bReturn = true;
107 }
109 {
110 const int nKeyCode = rKEvt.GetKeyCode().GetCode();
111 switch( nKeyCode )
112 {
113 case KEY_PAGEUP:
114 case KEY_LEFT:
115 case KEY_UP:
116 case KEY_P:
117 case KEY_HOME:
118 case KEY_END:
119 case awt::Key::CONTEXTMENU:
120 // these keys will be handled by the slide show even
121 // while in end mode
122 break;
123 default:
125 bReturn = true;
126 }
127 }
129 {
130 bool bFakeKeyPress = rKEvt.GetKeyCode().GetFullCode() == 0;
131 // Ignore workaround of https://gitlab.gnome.org/GNOME/gtk/issues/1785
132 // See calls to GtkSalFrame::makeFakeKeyPress (Fixed in GTK 2.34)
133 if (!bFakeKeyPress)
134 RestartShow();
135 bReturn = true;
136 }
138 {
139 const int nKeyCode = rKEvt.GetKeyCode().GetCode();
140 switch( nKeyCode )
141 {
142 case KEY_ESCAPE:
144 bReturn = true;
145 break;
146 case KEY_PAGEUP:
147 case KEY_RIGHT:
148 case KEY_UP:
149 case KEY_P:
150 case KEY_HOME:
151 case KEY_END:
152 case awt::Key::CONTEXTMENU:
153 // these keys will be handled by the slide show even
154 // while in end mode
155 break;
156 default:
157 RestartShow();
158 bReturn = true;
159 break;
160 }
161 }
162
163 if( !bReturn )
164 {
165 if( mxController.is() )
166 bReturn = mxController->keyInput(rKEvt);
167
168 if( !bReturn )
169 {
170 if( mpViewShell )
171 {
172 mpViewShell->KeyInput(rKEvt,this);
173 }
174 else
175 {
176 Window::KeyInput(rKEvt);
177 }
178 }
179 }
180
181 if( mpViewShell )
183}
184
186{
188 {
190 }
191 else if( mpViewShell )
192 {
194 }
195}
196
197void ShowWindow::MouseMove(const MouseEvent& /*rMEvt*/)
198{
199 if( mbMouseAutoHide )
200 {
202 {
203 if( mnFirstMouseMove )
204 {
205 // if this is not the first mouse move while hidden, see if
206 // enough time has pasted to show mouse pointer again
207 sal_uInt64 nTime = ::tools::Time::GetSystemTicks();
208 if( (nTime - mnFirstMouseMove) >= SHOW_MOUSE_TIMEOUT )
209 {
210 ShowPointer( true );
212 mbMouseCursorHidden = false;
215 }
216 }
217 else
218 {
219 // if this is the first mouse move, note current
220 // time and start idle timer to cancel show mouse pointer
221 // again if not enough mouse movement is measured
225 }
226 }
227 else
228 {
229 // current mousemove restarts the idle timer to hide the mouse
231 }
232 }
233
234 if( mpViewShell )
236}
237
239{
241 {
243 }
244 else if( (SHOWWINDOWMODE_END == meShowWindowMode) && !rMEvt.IsRight() )
245 {
247 }
249 && !rMEvt.IsRight() )
250 {
251 RestartShow();
252 }
253 else
254 {
255 if( mxController.is() )
256 mxController->mouseButtonUp( rMEvt );
257 }
258}
259
263void ShowWindow::Paint(vcl::RenderContext& /*rRenderContext*/, const ::tools::Rectangle& rRect)
264{
266 {
267 if( mxController.is() )
268 {
269 mxController->paint();
270 }
271 else if(mpViewShell )
272 {
273 mpViewShell->Paint(rRect, this);
274 }
275 }
276 else
277 {
279
281 {
282 DrawEndScene();
283 }
285 {
286 DrawPauseScene( false );
287 }
289 {
290 // just blank through background color => nothing to be done here
291 }
292 }
293}
294
296{
298
301}
302
304{
306 return;
307
311
312 // hide navigator if it is visible
313 if( mpViewShell->GetViewFrame()->GetChildWindow( SID_NAVIGATOR ) )
314 {
315 mpViewShell->GetViewFrame()->ShowChildWindow( SID_NAVIGATOR, false );
317 }
318
319 Invalidate();
320}
321
322bool ShowWindow::SetPauseMode( sal_Int32 nTimeout, Graphic const * pLogo )
323{
325
326 if( mpViewShell )
328
329 if( xSlideShow.is() && !nTimeout )
330 {
331 xSlideShow->jumpToPageIndex( 0 );
332 }
334 {
336 mnPauseTimeout = nTimeout;
340
341 // hide navigator if it is visible
342 if( mpViewShell->GetViewFrame()->GetChildWindow( SID_NAVIGATOR ) )
343 {
344 mpViewShell->GetViewFrame()->ShowChildWindow( SID_NAVIGATOR, false );
346 }
347
348 if( pLogo )
349 maLogo = *pLogo;
350
351 Invalidate();
352
355 }
356
358}
359
360bool ShowWindow::SetBlankMode( sal_Int32 nPageIndexToRestart, const Color& rBlankColor )
361{
363 {
365 mnRestartPageIndex = nPageIndexToRestart;
367 maShowBackground = Wallpaper( rBlankColor );
368
369 // hide navigator if it is visible
370 if( mpViewShell->GetViewFrame()->GetChildWindow( SID_NAVIGATOR ) )
371 {
372 mpViewShell->GetViewFrame()->ShowChildWindow( SID_NAVIGATOR, false );
374 }
375
376 Invalidate();
377 }
378
380}
381
383{
385}
386
388{
389 maLogo.Clear();
392 GetOutDev()->Erase();
396
397 if( mpViewShell )
398 {
399 // show navigator?
401 {
402 mpViewShell->GetViewFrame()->ShowChildWindow( SID_NAVIGATOR );
404 }
405 }
406
407 if( mxController.is() )
408 mxController->endPresentation();
409
411}
412
414{
416}
417
418void ShowWindow::RestartShow( sal_Int32 nPageIndexToRestart )
419{
420 ShowWindowMode eOldShowWindowMode = meShowWindowMode;
421
422 maLogo.Clear();
424 GetOutDev()->Erase();
428
429 if( mpViewShell )
430 {
432
433 if( xSlideShow.is() )
434 {
436
437 if( SHOWWINDOWMODE_BLANK == eOldShowWindowMode || SHOWWINDOWMODE_END == eOldShowWindowMode )
438 {
439 xSlideShow->pause(false);
440 Invalidate();
441 }
442 else
443 {
444 xSlideShow->jumpToPageIndex( nPageIndexToRestart );
445 }
446 }
447 }
448
450
451 // show navigator?
453 {
454 if (mpViewShell)
455 mpViewShell->GetViewFrame()->ShowChildWindow( SID_NAVIGATOR );
457 }
458}
459
460void ShowWindow::DrawPauseScene( bool bTimeoutOnly )
461{
462 const MapMode& rMap = GetMapMode();
463 const Point aOutOrg( PixelToLogic( Point() ) );
464 const Size aOutSize( GetOutDev()->GetOutputSize() );
465 const Size aTextSize(OutputDevice::LogicToLogic(Size(0, 14), MapMode(MapUnit::MapPoint), rMap));
466 const Size aOffset(OutputDevice::LogicToLogic(Size(1000, 1000), MapMode(MapUnit::Map100thMM), rMap));
467 OUString aText( SdResId( STR_PRES_PAUSE ) );
468 bool bDrawn = false;
469
470 vcl::Font aFont( GetSettings().GetStyleSettings().GetMenuFont() );
471 const vcl::Font aOldFont( GetFont() );
472
473 aFont.SetFontSize( aTextSize );
474 aFont.SetColor( COL_WHITE );
475 aFont.SetCharSet( aOldFont.GetCharSet() );
476 aFont.SetLanguage( aOldFont.GetLanguage() );
477
478 if( !bTimeoutOnly && ( maLogo.GetType() != GraphicType::NONE ) )
479 {
480 Size aGrfSize;
481
482 if (maLogo.GetPrefMapMode().GetMapUnit() == MapUnit::MapPixel)
483 aGrfSize = PixelToLogic( maLogo.GetPrefSize() );
484 else
486
487 const Point aGrfPos( std::max( aOutOrg.X() + aOutSize.Width() - aGrfSize.Width() - aOffset.Width(), aOutOrg.X() ),
488 std::max( aOutOrg.Y() + aOutSize.Height() - aGrfSize.Height() - aOffset.Height(), aOutOrg.Y() ) );
489
490 if( maLogo.IsAnimated() )
491 maLogo.StartAnimation(*GetOutDev(), aGrfPos, aGrfSize, reinterpret_cast<sal_IntPtr>(this));
492 else
493 maLogo.Draw(*GetOutDev(), aGrfPos, aGrfSize);
494 }
495
497 {
498 MapMode aVMap( rMap );
500
501 aVMap.SetOrigin( Point() );
502 pVDev->SetMapMode( aVMap );
503 pVDev->SetBackground( Wallpaper( COL_BLACK ) );
504
505 // set font first, to determine real output height
506 pVDev->SetFont( aFont );
507
508 const Size aVDevSize( aOutSize.Width(), pVDev->GetTextHeight() );
509
510 if( pVDev->SetOutputSize( aVDevSize ) )
511 {
512 // Note: if performance gets an issue here, we can use NumberFormatter directly
513 SvtSysLocale aSysLocale;
514 const LocaleDataWrapper& aLocaleData = aSysLocale.GetLocaleData();
515
516 aText += " ( " + aLocaleData.getDuration( ::tools::Duration( 0, 0, 0, mnPauseTimeout, 0 )) + " )";
517 pVDev->DrawText( Point( aOffset.Width(), 0 ), aText );
518 GetOutDev()->DrawOutDev( Point( aOutOrg.X(), aOffset.Height() ), aVDevSize, Point(), aVDevSize, *pVDev );
519 bDrawn = true;
520 }
521 }
522
523 if( !bDrawn )
524 {
525 SetFont( aFont );
526 GetOutDev()->DrawText( Point( aOutOrg.X() + aOffset.Width(), aOutOrg.Y() + aOffset.Height() ), aText );
527 SetFont( aOldFont );
528 }
529}
530
532{
533 const vcl::Font aOldFont( GetFont() );
534 vcl::Font aFont( GetSettings().GetStyleSettings().GetMenuFont() );
535
536 const Point aOutOrg( PixelToLogic( Point() ) );
537 const Size aTextSize(OutputDevice::LogicToLogic(Size(0, 14), MapMode(MapUnit::MapPoint), GetMapMode()));
538 const OUString aText( SdResId( STR_PRES_SOFTEND ) );
539
540 aFont.SetFontSize( aTextSize );
541 aFont.SetColor( COL_WHITE );
542 aFont.SetCharSet( aOldFont.GetCharSet() );
543 aFont.SetLanguage( aOldFont.GetLanguage() );
544 SetFont( aFont );
545 GetOutDev()->DrawText( Point( aOutOrg.X() + aTextSize.Height(), aOutOrg.Y() + aTextSize.Height() ), aText );
546 SetFont( aOldFont );
547}
548
549IMPL_LINK( ShowWindow, PauseTimeoutHdl, Timer*, pTimer, void )
550{
551 if( !( --mnPauseTimeout ) )
552 RestartShow();
553 else
554 {
555 DrawPauseScene( true );
556 pTimer->Start();
557 }
558}
559
560IMPL_LINK_NOARG(ShowWindow, MouseTimeoutHdl, Timer *, void)
561{
562 if( mbMouseCursorHidden )
563 {
564 // not enough mouse movements since first recording so
565 // cancel show mouse pointer for now
566 mnFirstMouseMove = 0;
567 }
568 else
569 {
570 // mouse has been idle too long, hide pointer
571 ShowPointer( false );
572 mbMouseCursorHidden = true;
573 }
574}
575
576IMPL_LINK( ShowWindow, EventHdl, VclWindowEvent&, rEvent, void )
577{
578 if( mbMouseAutoHide )
579 {
580 if (rEvent.GetId() == VclEventId::WindowShow)
581 {
582 maMouseTimer.SetTimeout( HIDE_MOUSE_TIMEOUT );
583 maMouseTimer.Start();
584 }
585 }
586}
587
589{
590 if( mpViewShell->GetView() )
592
593 sal_uInt16 nChild = GetChildCount();
594 while( nChild-- )
595 GetChild( nChild )->Show( false );
596}
597
599{
600 if( mpViewShell->GetView() )
602
603 sal_uInt16 nChild = GetChildCount();
604 while( nChild-- )
605 GetChild( nChild )->Show();
606}
607
608// Override the sd::Window's CreateAccessible to create a different accessible object
609css::uno::Reference<css::accessibility::XAccessible>
611{
612 css::uno::Reference< css::accessibility::XAccessible > xAcc = GetAccessible(false);
613 if (xAcc)
614 {
615 return xAcc;
616 }
617 if (mpViewShell != nullptr)
618 {
620 SetAccessible(xAcc);
621 return xAcc;
622 }
623 else
624 {
625 SAL_WARN("sd", "::sd::Window::CreateAccessible: no view shell");
627 }
628}
629} // end of namespace sd
630
631/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual void AddDeviceToPaintView(OutputDevice &rNewDev, vcl::Window *pWindow) override
virtual void DeleteDeviceFromPaintView(OutputDevice &rOldDev) override
Size GetPrefSize() const
GraphicType GetType() const
bool IsAnimated() const
MapMode GetPrefMapMode() const
void Clear()
void Draw(OutputDevice &rOutDev, const Point &rDestPt) const
void StartAnimation(OutputDevice &rOutDev, const Point &rDestPt, const Size &rDestSize, tools::Long nExtraData=0, OutputDevice *pFirstFrameOutDev=nullptr)
const vcl::KeyCode & GetKeyCode() const
OUString getDuration(const tools::Duration &rDuration, bool bSec=true, bool b100Sec=false) const
void SetOrigin(const Point &rOrigin)
MapUnit GetMapUnit() const
bool IsRight() const
SAL_WARN_UNUSED_RESULT Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
SAL_DLLPRIVATE void DrawOutDev(const Point &, const Size &, const Point &, const Size &, const Printer &)=delete
void SetOutDevViewType(OutDevViewType eOutDevViewType)
void DrawText(const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
SAL_DLLPRIVATE void DrawWallpaper(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, const Wallpaper &rWallpaper)
constexpr tools::Long Y() const
constexpr tools::Long X() const
SfxChildWindow * GetChildWindow(sal_uInt16)
void ShowChildWindow(sal_uInt16, bool bVisible=true)
constexpr tools::Long Height() const
constexpr tools::Long Width() const
const LocaleDataWrapper & GetLocaleData() const
void Stop()
void SetTimeout(sal_uInt64 nTimeoutMs)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
virtual void Start(bool bStartTimer=true) override
void AddWindowToPaintView()
Definition: showwin.cxx:598
virtual ~ShowWindow() override
Definition: showwin.cxx:87
virtual void KeyInput(const KeyEvent &rKEvt) override
Definition: showwin.cxx:99
Timer maPauseTimer
Definition: showwindow.hxx:89
bool mbMouseCursorHidden
Definition: showwindow.hxx:98
void SetEndMode()
Definition: showwin.cxx:303
virtual void MouseButtonUp(const MouseEvent &rMEvt) override
Definition: showwin.cxx:238
void TerminateShow()
Definition: showwin.cxx:387
Wallpaper maShowBackground
Definition: showwindow.hxx:91
void DeleteWindowFromPaintView()
Definition: showwin.cxx:588
virtual void LoseFocus() override
Deactivate window.
Definition: showwin.cxx:295
ShowWindowMode meShowWindowMode
Definition: showwindow.hxx:95
void DrawEndScene()
Definition: showwin.cxx:531
bool SetBlankMode(sal_Int32 nPageIndexToRestart, const Color &rBlankColor)
Definition: showwin.cxx:360
void DrawPauseScene(bool bTimeoutOnly)
Definition: showwin.cxx:460
bool mbShowNavigatorAfterSpecialMode
Definition: showwindow.hxx:96
::rtl::Reference< SlideshowImpl > mxController
Definition: showwindow.hxx:105
sal_Int32 mnRestartPageIndex
Definition: showwindow.hxx:94
virtual void dispose() override
Definition: showwin.cxx:92
Graphic maLogo
Definition: showwindow.hxx:92
sal_uInt64 mnFirstMouseMove
Definition: showwindow.hxx:99
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
Definition: showwin.cxx:185
virtual void MouseMove(const MouseEvent &rMEvt) override
Definition: showwin.cxx:197
Timer maMouseTimer
Definition: showwindow.hxx:90
ShowWindow(::rtl::Reference< ::sd::SlideshowImpl > xController, vcl::Window *pParent)
Definition: showwin.cxx:50
virtual void Paint(vcl::RenderContext &rRenderContext, const ::tools::Rectangle &rRect) override
if FuSlideShow is still available, forward it
Definition: showwin.cxx:263
bool SetPauseMode(sal_Int32 nTimeoutSec, Graphic const *pLogo=nullptr)
Definition: showwin.cxx:322
bool mbMouseAutoHide
Definition: showwindow.hxx:97
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override
Override the sd::Window's CreateAccessible to create a different accessible object.
Definition: showwin.cxx:610
sal_uLong mnPauseTimeout
Definition: showwindow.hxx:93
void RestartShow()
Definition: showwin.cxx:413
void SetPreviewMode()
Definition: showwin.cxx:382
static rtl::Reference< SlideShow > GetSlideShow(SdDrawDocument const *pDocument)
Definition: slideshow.cxx:157
virtual bool KeyInput(const KeyEvent &rKEvt, ::sd::Window *pWin)
Definition: viewshel.cxx:391
virtual void Paint(const ::tools::Rectangle &rRect, ::sd::Window *pWin)
Definition: viewshel.cxx:1514
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleDocumentView(::sd::Window *pWindow)
Create an accessible object representing the specified window.
Definition: viewshel.cxx:1385
void SetActiveWindow(::sd::Window *pWindow)
Set the active window.
Definition: viewshe2.cxx:549
::sd::View * GetView() const
Definition: ViewShell.hxx:144
SD_DLLPUBLIC ViewShellBase & GetViewShellBase() const
Definition: viewshel.cxx:1397
SD_DLLPUBLIC SfxViewFrame * GetViewFrame() const
Definition: viewshel.cxx:118
An SdWindow contains the actual working area of ViewShell.
Definition: Window.hxx:45
virtual void LoseFocus() override
Deactivate window.
Definition: sdwindow.cxx:741
virtual void dispose() override
Definition: sdwindow.cxx:101
virtual void KeyInput(const KeyEvent &rKEvt) override
Definition: sdwindow.cxx:216
ViewShell * mpViewShell
Definition: Window.hxx:172
static sal_uInt64 GetSystemTicks()
void SetFontSize(const Size &)
void SetColor(const Color &)
void SetCharSet(rtl_TextEncoding)
LanguageType GetLanguage() const
rtl_TextEncoding GetCharSet() const
void SetLanguage(LanguageType)
sal_uInt16 GetCode() const
sal_uInt16 GetFullCode() const
void SetFont(const vcl::Font &rNewFont)
vcl::Window * GetParent() const
void ShowPointer(bool bVisible)
sal_uInt16 GetChildCount() const
void SetAccessible(const css::uno::Reference< css::accessibility::XAccessible > &)
virtual void EnableRTL(bool bEnable=true)
void SetMapMode()
const AllSettings & GetSettings() const
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
const MapMode & GetMapMode() const
::OutputDevice const * GetOutDev() const
const vcl::Font & GetFont() const
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible()
void AddEventListener(const Link< VclWindowEvent &, void > &rEventListener)
Point PixelToLogic(const Point &rDevicePt) const
css::uno::Reference< css::accessibility::XAccessible > GetAccessible(bool bCreate=true)
void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
vcl::Window * GetChild(sal_uInt16 nChild) const
void SetHelpId(const OUString &)
void SetBackground()
constexpr ::Color COL_WHITE(0xFF, 0xFF, 0xFF)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
constexpr OUStringLiteral HID_SD_WIN_PRESENTATION
Definition: helpids.h:28
constexpr sal_uInt16 KEY_ESCAPE
constexpr sal_uInt16 KEY_HOME
constexpr sal_uInt16 KEY_LEFT
constexpr sal_uInt16 KEY_UP
constexpr sal_uInt16 KEY_RIGHT
constexpr sal_uInt16 KEY_PAGEUP
constexpr sal_uInt16 KEY_P
constexpr sal_uInt16 KEY_END
#define SAL_WARN(area, stream)
IMPL_LINK_NOARG(MainSequence, onTimerHdl, Timer *, void)
const sal_uInt64 SHOW_MOUSE_TIMEOUT
Definition: showwin.cxx:48
ShowWindowMode
Definition: showwindow.hxx:36
@ SHOWWINDOWMODE_NORMAL
Definition: showwindow.hxx:37
@ SHOWWINDOWMODE_PAUSE
Definition: showwindow.hxx:38
@ SHOWWINDOWMODE_PREVIEW
Definition: showwindow.hxx:41
@ SHOWWINDOWMODE_END
Definition: showwindow.hxx:39
@ SHOWWINDOWMODE_BLANK
Definition: showwindow.hxx:40
IMPL_LINK(SdCharHeightPropertyBox, implMenuSelectHdl, const OUString &, rIdent, void)
const sal_uInt64 HIDE_MOUSE_TIMEOUT
Definition: showwin.cxx:47
HashMap_OWString_Interface aMap
OUString SdResId(TranslateId aId)
Definition: sdmod.cxx:83
#define SLIDE_NO_TIMEOUT
Definition: showwindow.hxx:33
#define PAGE_NO_END
Definition: slideshow.hxx:56
Reference< XController > xController