2009-01-15 14:02:24 +0100 af r266369 : #i88851# Finding the right font size is now an iterative process. 2009-01-15 11:01:59 +0100 wg r266354 : i97985 2009-01-15 10:57:33 +0100 wg r266353 : i97985 2009-01-15 10:48:53 +0100 wg r266347 : i97985 2009-01-15 10:48:23 +0100 wg r266346 : i97985 2009-01-15 10:46:47 +0100 wg r266345 : i97985 2009-01-15 10:45:43 +0100 wg r266344 : i97985 2009-01-15 10:45:14 +0100 wg r266343 : i97985 2009-01-15 10:44:38 +0100 wg r266342 : i97985 2009-01-15 10:43:56 +0100 wg r266341 : i97985 2009-01-15 10:42:50 +0100 wg r266340 : i97985 2009-01-15 10:41:40 +0100 wg r266339 : i97985 2009-01-15 10:39:46 +0100 wg r266337 : i97985 2009-01-15 10:00:09 +0100 hde r266336 : i98065 2009-01-13 15:48:20 +0100 wg r266232 : i97985 2009-01-13 13:22:05 +0100 wg r266217 : i97985 2009-01-13 12:34:05 +0100 wg r266210 : i97985 2009-01-13 12:30:56 +0100 wg r266209 : i97985 2009-01-13 12:26:56 +0100 wg r266208 : i97985 2009-01-12 15:58:06 +0100 wg r266165 : i97985 2009-01-12 15:43:24 +0100 wg r266163 : i97985 2009-01-08 16:21:47 +0100 sj r266023 : fixed warning 2009-01-08 15:33:34 +0100 sj r266017 : fixed warning 2009-01-06 18:13:42 +0100 sj r265935 : CWS-TOOLING: rebase CWS sjfixes10 to trunk@265758 (milestone: DEV300:m38) 2008-12-10 16:54:02 +0100 af r265206 : #i43354# Do not delete all unused master pages automatically. 2008-12-04 13:12:50 +0100 af r264836 : #i92795# Use BitmapEx for icons to allow transparency. 2008-12-02 17:01:49 +0100 af r264723 : #i93082# Fixed SID_INSERTPAGE_LAYOUT_MENU. 2008-11-28 14:37:28 +0100 af r264555 : #i88851# Changed association of Ctrl-'?' to views. 2008-11-28 11:38:52 +0100 af r264535 : #i96681# Set version to 1.0.2 2008-11-28 11:30:04 +0100 af r264533 : #i88851# Ctrl-1,2,3 switch to slide overview, notes, normal view. 2008-11-27 16:41:25 +0100 af r264505 : #i92144# Removed unused code. 2008-11-26 15:29:56 +0100 af r264401 : #i92574# Do not lock configuration controller when main pane is not available. 2008-11-21 10:13:40 +0100 sj r264112 : #i96146# applied patch (ambiguous && ||) 2008-11-20 20:12:06 +0100 sj r264097 : #i96083# applied patch (ambigous && ||) 2008-11-20 19:13:53 +0100 sj r264096 : #i96163# applied patch (ambigous && ||) 2008-11-20 18:39:10 +0100 sj r264093 : #i96165# applied patch (ambigous && ||) 2008-11-03 18:12:29 +0100 sj r263303 : #i93996# fixed word wrapping problem 2008-11-03 18:11:02 +0100 sj r263302 : #i93996# fixed word wrapping problem 2008-11-03 18:08:41 +0100 sj r263301 : #i93996# fixed word wrapping problem 2008-11-03 18:06:45 +0100 sj r263300 : #i93996# fixed word wrapping problem 2008-11-03 18:05:00 +0100 sj r263299 : #i94831,i93616# fixed crash when importing diagonal cell border lines, fixed table import 2008-11-03 18:00:43 +0100 sj r263298 : #i93718# spellchecking is no longer triggering the autolayout of connector objects
249 lines
8.5 KiB
C++
249 lines
8.5 KiB
C++
/*************************************************************************
|
|
*
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* Copyright 2008 by Sun Microsystems, Inc.
|
|
*
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
*
|
|
* $RCSfile: MasterPageDescriptor.hxx,v $
|
|
* $Revision: 1.3 $
|
|
*
|
|
* This file is part of OpenOffice.org.
|
|
*
|
|
* 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.
|
|
*
|
|
* 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).
|
|
*
|
|
* 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.
|
|
*
|
|
************************************************************************/
|
|
|
|
#ifndef SD_TOOLPANEL_CONTROLS_MASTER_PAGE_DESCRIPTOR_HXX
|
|
#define SD_TOOLPANEL_CONTROLS_MASTER_PAGE_DESCRIPTOR_HXX
|
|
|
|
#include "MasterPageContainer.hxx"
|
|
#include <boost/shared_ptr.hpp>
|
|
|
|
namespace sd { namespace toolpanel { namespace controls {
|
|
|
|
class PageObjectProvider;
|
|
class PreviewProvider;
|
|
|
|
class MasterPageDescriptor;
|
|
typedef ::boost::shared_ptr<MasterPageDescriptor> SharedMasterPageDescriptor;
|
|
|
|
/** A collection of data that is stored for every master page in the
|
|
MasterpageContainer.
|
|
*/
|
|
class MasterPageDescriptor
|
|
{
|
|
public:
|
|
MasterPageDescriptor (
|
|
MasterPageContainer::Origin eOrigin,
|
|
const sal_Int32 nTemplateIndex,
|
|
const String& rURL,
|
|
const String& rPageName,
|
|
const String& rStyleName,
|
|
const bool bIsPrecious,
|
|
const ::boost::shared_ptr<PageObjectProvider>& rpPageObjectProvider,
|
|
const ::boost::shared_ptr<PreviewProvider>& rpPreviewProvider);
|
|
MasterPageDescriptor (const MasterPageDescriptor& rDescriptor);
|
|
~MasterPageDescriptor (void);
|
|
|
|
void SetToken (MasterPageContainer::Token aToken);
|
|
|
|
/** Update the called MasterPageDescriptor object with values from the
|
|
given one. Only those values are updated that have default values
|
|
in the called object and that have non-default values in the given
|
|
one.
|
|
@return
|
|
Returns a list of event types for which event notifications have
|
|
to be sent to listeners. The list may be empty or NULL.
|
|
*/
|
|
::std::auto_ptr<std::vector<MasterPageContainerChangeEvent::EventType> >
|
|
Update (
|
|
const MasterPageDescriptor& rDescriptor);
|
|
|
|
/** This convenience method returns either a small or a large preview,
|
|
depending on the given size specifier.
|
|
Note that the previews are not created when they are not present.
|
|
@return
|
|
The returned preview may be empty.
|
|
*/
|
|
Image GetPreview (MasterPageContainer::PreviewSize ePreviewSize);
|
|
|
|
/** Use the PreviewProvider to get access to a preview of the master
|
|
page.
|
|
|
|
Note that this is only done, when either bForce is <TRUE/> or
|
|
the PreviewProvider::GetCostIndex() returns 0.
|
|
|
|
The small preview is created by scaling the large one, not by
|
|
calling PreviewProvider::operator() a second time.
|
|
|
|
It is the responsibility of the caller to call UpdatePageObject()
|
|
before calling this method when the PreviewProvider can only work
|
|
when the master page object is present, i.e. its NeedsPageObject()
|
|
method returns <TRUE/>.
|
|
|
|
@param nCostThreshold
|
|
When this is zero or positive then the preview is created only
|
|
when the preview provider has a cost equal to or smaller than
|
|
this threshold. A negative value forces the preview to be
|
|
created, regardless of the cost.
|
|
@param rSmallSize
|
|
Size of the small preview.
|
|
@param rLargeSize
|
|
Size of the large preview.
|
|
@param rRenderer
|
|
A PreviewRenderer object that may be used to create a preview.
|
|
@return
|
|
When the previews are successfully provided then <TRUE/> is
|
|
returned.
|
|
*/
|
|
bool UpdatePreview (
|
|
sal_Int32 nCostThreshold,
|
|
const Size& rSmallSize,
|
|
const Size& rLargeSize,
|
|
::sd::PreviewRenderer& rRenderer);
|
|
|
|
/** Use the PageObjectProvider to get access to the master page object.
|
|
|
|
Note that this is only done, when either bForce is <TRUE/> or the
|
|
PreviewProvider::GetCostIndex() returns 0.
|
|
|
|
@param nCostThreshold
|
|
When this is zero or positive then the page object is created
|
|
only when the page object provider has a cost equal to or
|
|
smaller than this threshold. A negative value forces the
|
|
page object be created, regardless of the cost.
|
|
@param pDocument
|
|
This document of the MasterPageContainer may be used to create
|
|
a page object with or store one in.
|
|
@return
|
|
When the master page object is successfully provided then
|
|
<TRUE/> is returned.
|
|
*/
|
|
bool UpdatePageObject (
|
|
sal_Int32 nCostThreshold,
|
|
SdDrawDocument* pDocument);
|
|
|
|
enum URLClassification {
|
|
URLCLASS_USER,
|
|
URLCLASS_LAYOUT,
|
|
URLCLASS_PRESENTATION,
|
|
URLCLASS_OTHER,
|
|
URLCLASS_UNKNOWN,
|
|
URLCLASS_UNDETERMINED
|
|
};
|
|
|
|
URLClassification GetURLClassification (void);
|
|
|
|
/** The Token under which the MasterPageContainer gives access to the
|
|
object.
|
|
*/
|
|
MasterPageContainer::Token maToken;
|
|
|
|
/** A rough specification of the origin of the master page.
|
|
*/
|
|
MasterPageContainer::Origin meOrigin;
|
|
|
|
/** The URL is not empty for master pages loaded from a template
|
|
document.
|
|
*/
|
|
::rtl::OUString msURL;
|
|
|
|
/** Taken from the title of the template file.
|
|
*/
|
|
::rtl::OUString msPageName;
|
|
|
|
/** Taken from the master page object.
|
|
*/
|
|
::rtl::OUString msStyleName;
|
|
|
|
const bool mbIsPrecious;
|
|
|
|
/** The actual master page.
|
|
*/
|
|
SdPage* mpMasterPage;
|
|
|
|
/** A slide that uses the master page.
|
|
*/
|
|
SdPage* mpSlide;
|
|
|
|
/** A small (the default size) preview of the master page. May be
|
|
empty. When this smaller preview is not empty then the larger one
|
|
is not empty, too.
|
|
*/
|
|
Image maSmallPreview;
|
|
|
|
/** A large preview of the master page. May be empty. When this larger
|
|
preview is not empty then the smaller one is not empty, too.
|
|
*/
|
|
Image maLargePreview;
|
|
|
|
/** The prewview provider. May be empty. May be replaced during the
|
|
lifetime of a MasterPageDescriptor object.
|
|
*/
|
|
::boost::shared_ptr<PreviewProvider> mpPreviewProvider;
|
|
|
|
/** The master page provider. May be empty. May be replaced during
|
|
the lifetime of a MasterPageDescriptor object.
|
|
*/
|
|
::boost::shared_ptr<PageObjectProvider> mpPageObjectProvider;
|
|
|
|
/** This index represents the order in which templates are provided via
|
|
the TemplateScanner. It defines the order in which the entries in
|
|
the AllMasterPagesSelector are displayed. The default value is -1.
|
|
*/
|
|
sal_Int32 mnTemplateIndex;
|
|
|
|
URLClassification meURLClassification;
|
|
|
|
sal_Int32 mnUseCount;
|
|
|
|
class URLComparator { public:
|
|
::rtl::OUString msURL;
|
|
URLComparator (const ::rtl::OUString& sURL);
|
|
bool operator() (const SharedMasterPageDescriptor& rDescriptor);
|
|
};
|
|
class PageNameComparator { public:
|
|
::rtl::OUString msPageName;
|
|
PageNameComparator (const ::rtl::OUString& sPageName);
|
|
bool operator() (const SharedMasterPageDescriptor& rDescriptor);
|
|
};
|
|
class StyleNameComparator { public:
|
|
::rtl::OUString msStyleName;
|
|
StyleNameComparator (const ::rtl::OUString& sStyleName);
|
|
bool operator() (const SharedMasterPageDescriptor& rDescriptor);
|
|
};
|
|
class PageObjectComparator { public:
|
|
const SdPage* mpMasterPage;
|
|
PageObjectComparator (const SdPage* pPageObject);
|
|
bool operator() (const SharedMasterPageDescriptor& rDescriptor);
|
|
};
|
|
class AllComparator { public:
|
|
AllComparator(const SharedMasterPageDescriptor& rDescriptor);
|
|
bool operator() (const SharedMasterPageDescriptor& rDescriptor);
|
|
private:
|
|
SharedMasterPageDescriptor mpDescriptor;
|
|
};
|
|
|
|
|
|
};
|
|
|
|
|
|
} } } // end of namespace ::sd::toolpanel::controls
|
|
|
|
#endif
|