2004-02-03 10:22:46 -06:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 12:35:26 -05:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2004-02-03 10:22:46 -06:00
|
|
|
*
|
2010-02-12 08:01:35 -06:00
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
2004-02-03 10:22:46 -06:00
|
|
|
*
|
2008-04-10 12:35:26 -05:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2004-02-03 10:22:46 -06:00
|
|
|
*
|
2008-04-10 12:35:26 -05:00
|
|
|
* This file is part of OpenOffice.org.
|
2004-02-03 10:22:46 -06:00
|
|
|
*
|
2008-04-10 12:35:26 -05:00
|
|
|
* 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.
|
2004-02-03 10:22:46 -06:00
|
|
|
*
|
2008-04-10 12:35:26 -05:00
|
|
|
* 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).
|
2004-02-03 10:22:46 -06:00
|
|
|
*
|
2008-04-10 12:35:26 -05:00
|
|
|
* 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.
|
2004-02-03 10:22:46 -06:00
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
#ifndef _SVX_GALBRWS2_HXX_
|
|
|
|
#define _SVX_GALBRWS2_HXX_
|
|
|
|
|
|
|
|
#include <vcl/lstbox.hxx>
|
|
|
|
#include <vcl/button.hxx>
|
|
|
|
#include <vcl/fixed.hxx>
|
|
|
|
#include <vcl/timer.hxx>
|
|
|
|
#include <vcl/toolbox.hxx>
|
|
|
|
#include <svtools/transfer.hxx>
|
2009-10-15 17:05:16 -05:00
|
|
|
#include <svl/lstner.hxx>
|
2005-01-21 08:32:00 -06:00
|
|
|
#include <svtools/miscopt.hxx>
|
2010-04-20 08:55:51 -05:00
|
|
|
#include "svx/galbrws.hxx"
|
2004-02-03 10:22:46 -06:00
|
|
|
|
|
|
|
// ----------------------
|
|
|
|
// - GalleryBrowserMode -
|
|
|
|
// ----------------------
|
|
|
|
|
|
|
|
enum GalleryBrowserMode
|
|
|
|
{
|
|
|
|
GALLERYBROWSERMODE_NONE = 0,
|
|
|
|
GALLERYBROWSERMODE_ICON = 1,
|
|
|
|
GALLERYBROWSERMODE_LIST = 2,
|
|
|
|
GALLERYBROWSERMODE_PREVIEW = 3
|
|
|
|
};
|
|
|
|
|
|
|
|
// -----------------
|
|
|
|
// - GalleryTravel -
|
|
|
|
// -----------------
|
|
|
|
|
|
|
|
enum GalleryBrowserTravel
|
|
|
|
{
|
|
|
|
GALLERYBROWSERTRAVEL_CURRENT = 0,
|
|
|
|
GALLERYBROWSERTRAVEL_FIRST = 1,
|
|
|
|
GALLERYBROWSERTRAVEL_LAST = 2,
|
|
|
|
GALLERYBROWSERTRAVEL_PREVIOUS = 3,
|
|
|
|
GALLERYBROWSERTRAVEL_NEXT = 4
|
|
|
|
};
|
|
|
|
|
|
|
|
// ------------------------
|
|
|
|
// - GalleryItemTextFlags -
|
|
|
|
// ------------------------
|
|
|
|
|
|
|
|
#define GALLERY_ITEM_THEMENAME 0x00000001
|
|
|
|
#define GALLERY_ITEM_TITLE 0x00000002
|
|
|
|
#define GALLERY_ITEM_PATH 0x00000004
|
|
|
|
|
|
|
|
// ------------------
|
|
|
|
// - GalleryToolBox -
|
|
|
|
// ------------------
|
|
|
|
|
|
|
|
class GalleryToolBox : public ToolBox
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
virtual void KeyInput( const KeyEvent& rKEvt );
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
GalleryToolBox( GalleryBrowser2* pParent );
|
|
|
|
~GalleryToolBox();
|
|
|
|
};
|
|
|
|
|
|
|
|
// -------------------
|
|
|
|
// - GalleryBrowser2 -
|
|
|
|
// -------------------
|
|
|
|
|
|
|
|
class Gallery;
|
|
|
|
class GalleryTheme;
|
|
|
|
class GalleryIconView;
|
|
|
|
class GalleryListView;
|
|
|
|
class GalleryPreview;
|
|
|
|
class Menu;
|
|
|
|
class SgaObject;
|
|
|
|
|
|
|
|
class GalleryBrowser2 : public Control, public SfxListener
|
|
|
|
{
|
|
|
|
friend class GalleryBrowser;
|
2006-10-12 05:43:12 -05:00
|
|
|
using Control::Notify;
|
|
|
|
using Window::KeyInput;
|
2004-02-03 10:22:46 -06:00
|
|
|
|
|
|
|
private:
|
|
|
|
|
2005-01-21 08:32:00 -06:00
|
|
|
SvtMiscOptions maMiscOptions;
|
2004-02-03 10:22:46 -06:00
|
|
|
Gallery* mpGallery;
|
|
|
|
GalleryTheme* mpCurTheme;
|
|
|
|
GalleryIconView* mpIconView;
|
|
|
|
GalleryListView* mpListView;
|
|
|
|
GalleryPreview* mpPreview;
|
|
|
|
GalleryToolBox maViewBox;
|
|
|
|
FixedLine maSeparator;
|
|
|
|
FixedText maInfoBar;
|
|
|
|
Point maDragStartPos;
|
|
|
|
ULONG mnCurActionPos;
|
|
|
|
GalleryBrowserMode meMode;
|
|
|
|
GalleryBrowserMode meLastMode;
|
|
|
|
BOOL mbCurActionIsLinkage;
|
|
|
|
|
|
|
|
void InitSettings();
|
|
|
|
|
|
|
|
void ImplUpdateViews( USHORT nSelectionId );
|
|
|
|
void ImplUpdateInfoBar();
|
|
|
|
ULONG ImplGetSelectedItemId( const Point* pSelPosPixel, Point& rSelPos );
|
|
|
|
void ImplSelectItemId( ULONG nItemId );
|
|
|
|
void ImplExecute( USHORT nId );
|
|
|
|
|
|
|
|
// Control
|
|
|
|
virtual void Resize();
|
|
|
|
virtual void DataChanged( const DataChangedEvent& rDCEvt );
|
|
|
|
|
|
|
|
// SfxListener
|
|
|
|
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
|
|
|
|
|
|
|
|
DECL_LINK( MenuSelectHdl, Menu* pMenu );
|
|
|
|
DECL_LINK( SelectObjectHdl, void* );
|
|
|
|
DECL_LINK( SelectTbxHdl, ToolBox* );
|
2005-01-21 08:32:00 -06:00
|
|
|
DECL_LINK( MiscHdl, void* );
|
2004-02-03 10:22:46 -06:00
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
static GalleryBrowserMode meInitMode;
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
static String GetItemText( const GalleryTheme& rTheme, const SgaObject& rObj, ULONG nItemTextFlags );
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
GalleryBrowser2( GalleryBrowser* pParent, const ResId& rResId, Gallery* pGallery );
|
|
|
|
~GalleryBrowser2();
|
|
|
|
|
|
|
|
void SelectTheme( const String& rThemeName );
|
|
|
|
|
|
|
|
GalleryBrowserMode GetMode() const { return meMode; }
|
|
|
|
void SetMode( GalleryBrowserMode eMode );
|
|
|
|
|
|
|
|
Window* GetViewWindow() const;
|
|
|
|
|
|
|
|
void Travel( GalleryBrowserTravel eTravel );
|
|
|
|
|
|
|
|
INetURLObject GetURL() const;
|
|
|
|
String GetFilterName() const;
|
|
|
|
Graphic GetGraphic() const;
|
|
|
|
BOOL GetVCDrawModel( FmFormModel& rModel ) const;
|
|
|
|
BOOL IsLinkage() const;
|
|
|
|
|
|
|
|
sal_Int8 AcceptDrop( DropTargetHelper& rTarget, const AcceptDropEvent& rEvt );
|
|
|
|
sal_Int8 ExecuteDrop( DropTargetHelper& rTarget, const ExecuteDropEvent& rEvt );
|
|
|
|
void StartDrag( Window* pWindow, const Point* pDragPoint = NULL );
|
|
|
|
void TogglePreview( Window* pWindow, const Point* pPreviewPoint = NULL );
|
|
|
|
void ShowContextMenu( Window* pWindow, const Point* pContextPoint = NULL );
|
|
|
|
BOOL KeyInput( const KeyEvent& rEvt, Window* pWindow );
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|