Files
libreoffice/sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx
Michael Meeks e8b97a52c9 Merge remote-tracking branch 'origin/feature/vclptr'
Resolve several thousand lines of conflicts.

Conflicts:
	accessibility/source/extended/accessiblelistbox.cxx
	accessibility/source/standard/vclxaccessiblecombobox.cxx
	accessibility/source/standard/vclxaccessibledropdowncombobox.cxx
	accessibility/source/standard/vclxaccessibledropdownlistbox.cxx
	accessibility/source/standard/vclxaccessiblelistbox.cxx
	accessibility/source/standard/vclxaccessibletextfield.cxx
	basctl/source/basicide/basidesh.cxx
	cui/source/inc/chardlg.hxx
	cui/source/tabpages/tpbitmap.cxx
	dbaccess/source/ui/dlg/UserAdmin.cxx
	dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx
	extensions/source/propctrlr/propertyeditor.hxx
	extensions/source/scanner/sanedlg.cxx
	filter/source/pdf/impdialog.cxx
	include/sfx2/mgetempl.hxx
	include/sfx2/sidebar/SidebarToolBox.hxx
	include/sfx2/viewsh.hxx
	include/svtools/brwbox.hxx
	include/svtools/filectrl.hxx
	include/svtools/scrwin.hxx
	include/svx/dlgctrl.hxx
	include/svx/sidebar/Popup.hxx
	include/svx/sidebar/PopupContainer.hxx
	include/svx/sidebar/PopupControl.hxx
	include/svx/sidebar/SidebarDialControl.hxx
	include/svx/sidebar/ValueSetWithTextControl.hxx
	sc/source/ui/condformat/condformatdlgentry.cxx
	sc/source/ui/navipi/navipi.cxx
	sc/source/ui/sidebar/CellBorderStyleControl.hxx
	sd/source/ui/animations/CustomAnimationDialog.cxx
	sd/source/ui/inc/DrawViewShell.hxx
	sd/source/ui/inc/Ruler.hxx
	sd/source/ui/inc/SlideSorter.hxx
	sd/source/ui/inc/ViewTabBar.hxx
	sd/source/ui/inc/Window.hxx
	sd/source/ui/inc/morphdlg.hxx
	sd/source/ui/inc/sdpreslt.hxx
	sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx
	sd/source/ui/sidebar/LayoutMenu.hxx
	sd/source/ui/sidebar/MasterPagesSelector.hxx
	sd/source/ui/sidebar/NavigatorWrapper.hxx
	sd/source/ui/sidebar/PanelBase.hxx
	sd/source/ui/sidebar/RecentMasterPagesSelector.cxx
	sd/source/ui/sidebar/RecentMasterPagesSelector.hxx
	sd/source/ui/slideshow/showwindow.hxx
	sd/source/ui/slidesorter/view/SlsInsertAnimator.cxx
	sd/source/ui/slidesorter/view/SlsLayeredDevice.hxx
	sd/source/ui/view/ViewShellBase.cxx
	sd/source/ui/view/drviewsa.cxx
	sfx2/source/appl/fileobj.hxx
	sfx2/source/appl/opengrf.cxx
	sfx2/source/control/thumbnailviewacc.hxx
	sfx2/source/dialog/securitypage.cxx
	sfx2/source/dialog/templdlg.cxx
	sfx2/source/doc/docinsert.cxx
	sfx2/source/doc/guisaveas.cxx
	sfx2/source/inc/alienwarn.hxx
	sfx2/source/sidebar/Deck.cxx
	sfx2/source/sidebar/Deck.hxx
	sfx2/source/sidebar/DeckTitleBar.cxx
	sfx2/source/sidebar/DeckTitleBar.hxx
	sfx2/source/sidebar/MenuButton.cxx
	sfx2/source/sidebar/MenuButton.hxx
	sfx2/source/sidebar/Panel.cxx
	sfx2/source/sidebar/Panel.hxx
	sfx2/source/sidebar/PanelTitleBar.hxx
	sfx2/source/sidebar/SidebarDockingWindow.hxx
	sfx2/source/sidebar/SidebarToolBox.cxx
	sfx2/source/sidebar/TabBar.hxx
	sfx2/source/sidebar/TabItem.cxx
	sfx2/source/sidebar/TabItem.hxx
	sfx2/source/sidebar/TitleBar.hxx
	sfx2/source/toolbox/imgmgr.cxx
	starmath/inc/edit.hxx
	starmath/inc/smmod.hxx
	starmath/qa/cppunit/test_starmath.cxx
	starmath/source/edit.cxx
	starmath/source/smmod.cxx
	svtools/source/brwbox/brwbox1.cxx
	svtools/source/brwbox/datwin.hxx
	svtools/source/contnr/fileview.cxx
	svtools/source/contnr/simptabl.cxx
	svtools/source/control/filectrl.cxx
	svtools/source/control/valueimp.hxx
	svx/inc/GalleryControl.hxx
	svx/source/dialog/dlgctrl.cxx
	svx/source/dialog/swframeexample.cxx
	svx/source/fmcomp/fmgridif.cxx
	svx/source/gallery2/GalleryControl.cxx
	svx/source/sidebar/EmptyPanel.hxx
	svx/source/sidebar/area/AreaPropertyPanel.hxx
	svx/source/sidebar/area/AreaTransparencyGradientControl.hxx
	svx/source/sidebar/graphic/GraphicPropertyPanel.hxx
	svx/source/sidebar/insert/InsertPropertyPanel.cxx
	svx/source/sidebar/insert/InsertPropertyPanel.hxx
	svx/source/sidebar/line/LinePropertyPanel.hxx
	svx/source/sidebar/line/LineWidthControl.cxx
	svx/source/sidebar/line/LineWidthControl.hxx
	svx/source/sidebar/line/LineWidthValueSet.hxx
	svx/source/sidebar/paragraph/ParaPropertyPanel.hxx
	svx/source/sidebar/possize/SidebarDialControl.cxx
	svx/source/sidebar/text/TextCharacterSpacingPopup.hxx
	svx/source/sidebar/text/TextPropertyPanel.hxx
	svx/source/sidebar/tools/PopupContainer.cxx
	svx/source/sidebar/tools/PopupControl.cxx
	svx/source/sidebar/tools/ValueSetWithTextControl.cxx
	svx/source/svdraw/svdfmtf.hxx
	svx/source/svdraw/svdibrow.cxx
	svx/source/tbxctrls/colrctrl.cxx
	svx/source/tbxctrls/tbcontrl.cxx
	sw/source/ui/dbui/mmaddressblockpage.cxx
	sw/source/ui/dialog/uiregionsw.cxx
	sw/source/ui/index/cnttab.cxx
	sw/source/uibase/inc/drpcps.hxx
	sw/source/uibase/sidebar/PageColumnControl.hxx
	sw/source/uibase/sidebar/PageMarginControl.hxx
	sw/source/uibase/sidebar/PageOrientationControl.hxx
	sw/source/uibase/sidebar/PagePropertyPanel.hxx
	sw/source/uibase/sidebar/PageSizeControl.hxx
	sw/source/uibase/uiview/view2.cxx
	sw/source/uibase/utlui/navipi.cxx
	vcl/inc/svdata.hxx
	vcl/source/control/combobox.cxx
	vcl/source/control/lstbox.cxx
	vcl/source/window/dockwin.cxx
	vcl/source/window/winproc.cxx

Change-Id: I056cf3026ff17d65cca0b6e6588bda4a88fa8d95
2015-04-28 15:08:48 +01:00

188 lines
6.1 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
*/
#ifndef INCLUDED_SD_SOURCE_UI_INC_TASKPANE_SLIDESORTERCACHEDISPLAY_HXX
#define INCLUDED_SD_SOURCE_UI_INC_TASKPANE_SLIDESORTERCACHEDISPLAY_HXX
// Uncomment the define below to activate the slide sorter cache display in
// the task pane. Visible slide previews are displayed as large rectangles,
// off-screen previews as smaller rectangles. The color shows the state:
// green for no action, different shades of yellow for a request being in
// the queue, pink for currently being rendered. A diagonal line indicates
// that the preview is not up-to-date.
#ifdef DEBUG
//#define USE_SLIDE_SORTER_CACHE_DISPLAY
#endif
#ifdef USE_SLIDE_SORTER_CACHE_DISPLAY
#include <taskpane/TaskPaneTreeNode.hxx>
#include <map>
#include <vector>
namespace vcl { class Window; }
#include "svx/svdpage.hxx"
#include "drawdoc.hxx"
namespace sd { namespace toolpanel {
class TreeNode;
/** This panel demonstrates how to create a panel for the task pane.
*/
class SlideSorterCacheDisplay
: public TreeNode
{
public:
SlideSorterCacheDisplay (const SdDrawDocument* pDocument);
virtual ~SlideSorterCacheDisplay();
void SetParentWindow (vcl::Window* pParentWindow);
virtual void Paint (const Rectangle& rBoundingBox);
virtual void Resize();
static SlideSorterCacheDisplay* Instance (const SdDrawDocument* pDocument);
void SetPageCount (sal_Int32 nPageCount);
enum PageStatus {
NONE,
IN_QUEUE_PRIORITY_0,
IN_QUEUE_PRIORITY_1,
IN_QUEUE_PRIORITY_2,
RENDERING
};
void SetPageStatus (sal_Int32 nPageIndex, PageStatus eStatus);
void SetPageVisibility (sal_Int32 nPageIndex, bool bVisible);
void SetUpToDate (sal_Int32 nPageIndex, bool bUpToDate);
virtual Size GetPreferredSize();
virtual sal_Int32 GetPreferredWidth (sal_Int32 nHeigh);
virtual sal_Int32 GetPreferredHeight (sal_Int32 nWidth);
virtual vcl::Window* GetWindow();
virtual bool IsResizable();
virtual bool IsExpandable() const;
virtual bool IsExpanded() const;
private:
static ::std::map<const SdDrawDocument*, SlideSorterCacheDisplay*> maDisplays;
static void AddInstance (const SdDrawDocument* pDocument, SlideSorterCacheDisplay* pControl);
static void RemoveInstance (SlideSorterCacheDisplay* pControl);
VclPtr<vcl::Window> mpWindow;
sal_Int32 mnPageCount;
sal_Int32 mnColumnCount;
sal_Int32 mnRowCount;
Size maCellSize;
sal_Int32 mnHorizontalBorder;
sal_Int32 mnVerticalBorder;
sal_Int32 mnHorizontalGap;
sal_Int32 mnVerticalGap;
class PageDescriptor
{
public:
PageStatus meStatus;
bool mbVisible;
bool mbUpToDate;
};
typedef ::std::vector<PageDescriptor> PageDescriptorList;
PageDescriptorList maPageDescriptors;
Rectangle GetPageBox (sal_Int32 nPageIndex);
void ProvideSize (sal_Int32 nPageIndex);
void PaintPage (sal_Int32 nPageIndex);
};
} } // end of namespace ::sd::toolpanel
namespace {
void SscdSetStatus (const SdrPage* pPage,
::sd::toolpanel::SlideSorterCacheDisplay::PageStatus eStatus)
{
::sd::toolpanel::SlideSorterCacheDisplay* pDisplay
= ::sd::toolpanel::SlideSorterCacheDisplay::Instance(
dynamic_cast<SdDrawDocument*>(pPage->GetModel()));
if (pDisplay != NULL)
pDisplay->SetPageStatus((pPage->GetPageNum()-1)/2, eStatus);
}
void SscdSetRequestClass (const SdrPage* pPage, sal_Int32 nClass)
{
sd::toolpanel::SlideSorterCacheDisplay::PageStatus eStatus;
switch (nClass)
{
case 0:
eStatus = ::sd::toolpanel::SlideSorterCacheDisplay::IN_QUEUE_PRIORITY_0; break;
case 1:
eStatus = ::sd::toolpanel::SlideSorterCacheDisplay::IN_QUEUE_PRIORITY_1; break;
case 2:
eStatus = ::sd::toolpanel::SlideSorterCacheDisplay::IN_QUEUE_PRIORITY_2; break;
default:
eStatus = ::sd::toolpanel::SlideSorterCacheDisplay::NONE; break;
}
SscdSetStatus(pPage,eStatus);
}
void SscdSetVisibility (const SdrModel* pModel, sal_Int32 nIndex, bool bVisible)
{
::sd::toolpanel::SlideSorterCacheDisplay* pDisplay
= ::sd::toolpanel::SlideSorterCacheDisplay::Instance(
dynamic_cast<const SdDrawDocument*>(pModel));
if (pDisplay != NULL)
pDisplay->SetPageVisibility(nIndex, bVisible);
}
void SscdSetUpToDate (const SdrPage* pPage, bool bUpToDate)
{
::sd::toolpanel::SlideSorterCacheDisplay* pDisplay
= ::sd::toolpanel::SlideSorterCacheDisplay::Instance(
dynamic_cast<const SdDrawDocument*>(pPage->GetModel()));
if (pDisplay != NULL)
pDisplay->SetUpToDate((pPage->GetPageNum()-1)/2, bUpToDate);
}
#define SSCD_SET_REQUEST_CLASS(Page,RequestClass) \
SscdSetRequestClass(Page,RequestClass)
#define SSCD_SET_STATUS(RequestData,Status) \
SscdSetStatus(RequestData,::sd::toolpanel::SlideSorterCacheDisplay::Status)
#define SSCD_SET_VISIBILITY(Model,Index,Visible) \
SscdSetVisibility(Model,Index,Visible)
#define SSCD_SET_UPTODATE(Page,UpToDate) \
SscdSetUpToDate(Page,UpToDate)
}
#else
#define SSCD_SET_REQUEST_CLASS(Page,RequestClass)
#define SSCD_SET_STATUS(RequestData,Status)
#define SSCD_SET_VISIBILITY(Model,Index,Visible)
#define SSCD_SET_UPTODATE(Page,UpToDate)
#endif
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */