2012-07-14 17:46:22 -05:00
|
|
|
/* -*- 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/.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __SFX2_TEMPLATEABSTRACTVIEW_HXX__
|
|
|
|
#define __SFX2_TEMPLATEABSTRACTVIEW_HXX__
|
|
|
|
|
|
|
|
#include <sfx2/thumbnailview.hxx>
|
|
|
|
|
2012-08-12 19:50:34 -05:00
|
|
|
//template thumbnail item defines
|
2012-12-13 06:57:59 -06:00
|
|
|
#define TEMPLATE_ITEM_MAX_WIDTH 160
|
2012-08-12 19:50:34 -05:00
|
|
|
#define TEMPLATE_ITEM_MAX_HEIGHT 160
|
|
|
|
#define TEMPLATE_ITEM_PADDING 5
|
|
|
|
#define TEMPLATE_ITEM_MAX_TEXT_LENGTH 20
|
2012-12-13 06:57:59 -06:00
|
|
|
#define TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT 88
|
2012-08-12 19:50:34 -05:00
|
|
|
|
|
|
|
//template thumbnail image defines
|
2012-12-13 06:57:59 -06:00
|
|
|
#define TEMPLATE_THUMBNAIL_MAX_HEIGHT TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT - 2*TEMPLATE_ITEM_PADDING
|
2012-08-12 19:50:34 -05:00
|
|
|
#define TEMPLATE_THUMBNAIL_MAX_WIDTH TEMPLATE_ITEM_MAX_WIDTH - 2*TEMPLATE_ITEM_PADDING
|
|
|
|
|
2012-07-14 19:55:13 -05:00
|
|
|
class TemplateView;
|
2012-07-29 23:00:47 -05:00
|
|
|
class SfxDocumentTemplates;
|
|
|
|
|
|
|
|
enum FILTER_APPLICATION
|
|
|
|
{
|
|
|
|
FILTER_APP_NONE,
|
|
|
|
FILTER_APP_WRITER,
|
|
|
|
FILTER_APP_CALC,
|
|
|
|
FILTER_APP_IMPRESS,
|
|
|
|
FILTER_APP_DRAW
|
|
|
|
};
|
|
|
|
|
|
|
|
// Display template items depending on the generator application
|
|
|
|
class ViewFilter_Application
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
ViewFilter_Application (FILTER_APPLICATION App)
|
|
|
|
: mApp(App)
|
|
|
|
{}
|
|
|
|
|
2012-12-12 15:33:49 -06:00
|
|
|
virtual ~ViewFilter_Application () {}
|
2012-07-29 23:00:47 -05:00
|
|
|
|
2012-12-12 15:33:49 -06:00
|
|
|
virtual bool operator () (const ThumbnailViewItem *pItem);
|
|
|
|
|
|
|
|
bool isValid (const rtl::OUString& rPath) const;
|
|
|
|
|
|
|
|
protected:
|
2012-07-29 23:00:47 -05:00
|
|
|
|
|
|
|
FILTER_APPLICATION mApp;
|
|
|
|
};
|
2012-07-14 19:55:13 -05:00
|
|
|
|
2012-08-02 20:41:18 -05:00
|
|
|
class ViewFilter_Keyword
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
ViewFilter_Keyword (const OUString &rKeyword)
|
|
|
|
: maKeyword(rKeyword)
|
|
|
|
{}
|
|
|
|
|
|
|
|
bool operator () (const ThumbnailViewItem *pItem);
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
OUString maKeyword;
|
|
|
|
};
|
|
|
|
|
2012-07-14 17:46:22 -05:00
|
|
|
class SFX2_DLLPUBLIC TemplateAbstractView : public ThumbnailView
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
TemplateAbstractView (Window *pParent, WinBits nWinStyle, bool bDisableTransientChildren);
|
|
|
|
|
|
|
|
TemplateAbstractView ( Window* pParent, const ResId& rResId, bool bDisableTransientChildren = false );
|
|
|
|
|
|
|
|
virtual ~TemplateAbstractView ();
|
2012-07-14 19:55:13 -05:00
|
|
|
|
2012-07-15 07:17:31 -05:00
|
|
|
// Fill view with template folders thumbnails
|
2012-12-17 14:51:04 -06:00
|
|
|
virtual void Populate () { };
|
2012-07-15 07:17:31 -05:00
|
|
|
|
2012-12-17 14:51:04 -06:00
|
|
|
virtual void reload () { };
|
2012-08-07 09:57:44 -05:00
|
|
|
|
2012-12-18 03:18:03 -06:00
|
|
|
virtual void filterTemplatesByApp (const FILTER_APPLICATION &eApp);
|
2012-07-29 23:00:47 -05:00
|
|
|
|
2012-12-21 08:37:49 -06:00
|
|
|
void showOverlay (bool bVisible);
|
2012-07-15 07:17:31 -05:00
|
|
|
|
2012-08-12 19:50:34 -05:00
|
|
|
void setItemDimensions (long ItemWidth, long ThumbnailHeight, long DisplayHeight, int itemPadding);
|
|
|
|
|
2012-07-28 21:57:31 -05:00
|
|
|
sal_uInt16 getOverlayRegionId () const;
|
|
|
|
|
2012-08-12 16:44:16 -05:00
|
|
|
const OUString& getOverlayName () const;
|
|
|
|
|
2012-07-14 22:31:55 -05:00
|
|
|
// Check if the overlay is visible or not.
|
|
|
|
bool isOverlayVisible () const;
|
|
|
|
|
2012-08-11 15:40:01 -05:00
|
|
|
void deselectOverlayItems ();
|
|
|
|
|
2012-07-14 22:31:55 -05:00
|
|
|
void sortOverlayItems (const boost::function<bool (const ThumbnailViewItem*,
|
|
|
|
const ThumbnailViewItem*) > &func);
|
|
|
|
|
2012-08-02 20:41:18 -05:00
|
|
|
virtual void filterTemplatesByKeyword (const OUString &rKeyword);
|
|
|
|
|
2012-07-29 18:43:14 -05:00
|
|
|
void setOverlayItemStateHdl (const Link &aLink) { maOverlayItemStateHdl = aLink; }
|
|
|
|
|
2012-12-21 08:37:49 -06:00
|
|
|
void setOpenHdl (const Link &rLink);
|
2012-07-14 22:31:55 -05:00
|
|
|
|
|
|
|
void setOverlayCloseHdl (const Link &rLink);
|
|
|
|
|
2012-07-29 15:13:18 -05:00
|
|
|
static BitmapEx scaleImg (const BitmapEx &rImg, long width, long height);
|
|
|
|
|
2012-08-23 09:24:34 -05:00
|
|
|
static BitmapEx fetchThumbnail (const OUString &msURL, long width, long height);
|
2012-07-29 15:13:18 -05:00
|
|
|
|
2012-08-03 10:47:07 -05:00
|
|
|
virtual void Resize();
|
|
|
|
|
2012-12-13 07:29:52 -06:00
|
|
|
protected:
|
|
|
|
|
2012-12-13 03:08:34 -06:00
|
|
|
virtual void Paint( const Rectangle& rRect );
|
|
|
|
|
|
|
|
virtual void DrawItem (ThumbnailViewItem *pItem);
|
|
|
|
|
2012-07-29 18:43:14 -05:00
|
|
|
DECL_LINK(OverlayItemStateHdl, const ThumbnailViewItem*);
|
|
|
|
|
2012-12-21 08:37:49 -06:00
|
|
|
virtual void OnItemDblClicked(ThumbnailViewItem *pItem);
|
|
|
|
|
2012-07-14 19:55:13 -05:00
|
|
|
protected:
|
|
|
|
|
|
|
|
TemplateView *mpItemView;
|
2012-07-29 18:43:14 -05:00
|
|
|
Link maOverlayItemStateHdl;
|
2012-12-21 08:37:49 -06:00
|
|
|
Link maOpenHdl;
|
2012-12-18 03:18:03 -06:00
|
|
|
|
|
|
|
bool mbFilteredResults; // Flag keep track if overlay has been filtered so folders can get filtered too afterwards
|
|
|
|
FILTER_APPLICATION meFilterOption;
|
2012-07-14 17:46:22 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // __SFX2_TEMPLATEABSTRACTVIEW_HXX__
|
|
|
|
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|