diff options
Diffstat (limited to 'cui/source/inc/cuigaldlg.hxx')
-rw-r--r-- | cui/source/inc/cuigaldlg.hxx | 375 |
1 files changed, 375 insertions, 0 deletions
diff --git a/cui/source/inc/cuigaldlg.hxx b/cui/source/inc/cuigaldlg.hxx new file mode 100644 index 000000000000..ef285bb85448 --- /dev/null +++ b/cui/source/inc/cuigaldlg.hxx @@ -0,0 +1,375 @@ +/************************************************************************* + * + * 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: cuigaldlg.hxx,v $ + * $Revision: 1.9 $ + * + * 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 _CUI_GALDLG_HXX_ +#define _CUI_GALDLG_HXX_ + +#include <vos/thread.hxx> +#include <vcl/dialog.hxx> +#include <vcl/graph.hxx> +#include <vcl/fixed.hxx> +#include <vcl/button.hxx> +#include <vcl/lstbox.hxx> +#include <vcl/menu.hxx> +#include <vcl/edit.hxx> +#include <vcl/combobox.hxx> +#include <svl/slstitm.hxx> +#include <svtools/transfer.hxx> +#include <goodies/grfmgr.hxx> +#include <sfx2/tabdlg.hxx> +#include <svx/galctrl.hxx> +#include <svx/galmisc.hxx> +#include <com/sun/star/media/XPlayer.hpp> +#include <com/sun/star/ui/dialogs/XFolderPicker.hpp> +#include <svtools/dialogclosedlistener.hxx> +#include <bootstrp/sstring.hxx> + +// ------------ +// - Forwards - +// ------------ + +class Gallery; +class GalleryTheme; +class SearchProgress; +class TakeProgress; +class TPGalleryThemeProperties; + +// --------------- +// - FilterEntry - +// --------------- + +struct FilterEntry +{ + String aFilterName; +}; + +// ---------------- +// - SearchThread - +// ---------------- + +class SearchThread : public ::vos::OThread +{ +private: + + SearchProgress* mpProgress; + TPGalleryThemeProperties* mpBrowser; + INetURLObject maStartURL; + + void ImplSearch( const INetURLObject& rStartURL, + const ::std::vector< String >& rFormats, + BOOL bRecursive ); + + virtual void SAL_CALL run(); + virtual void SAL_CALL onTerminated(); + +public: + + SearchThread( SearchProgress* pProgess, + TPGalleryThemeProperties* pBrowser, + const INetURLObject& rStartURL ); + virtual ~SearchThread(); +}; + +// ------------------ +// - SearchProgress - +// ------------------ + +class SearchProgress : public ModalDialog +{ +private: + + FixedText aFtSearchDir; + FixedLine aFLSearchDir; + FixedText aFtSearchType; + FixedLine aFLSearchType; + CancelButton aBtnCancel; + SearchThread maSearchThread; + + DECL_LINK( ClickCancelBtn, void* ); + void Terminate(); + +public: + SearchProgress( Window* pParent, const INetURLObject& rStartURL ); + ~SearchProgress() {}; + + DECL_LINK( CleanUpHdl, void* ); + + virtual short Execute(); + virtual void StartExecuteModal( const Link& rEndDialogHdl ); + void SetFileType( const String& rType ) { aFtSearchType.SetText( rType ); } + void SetDirectory( const INetURLObject& rURL ) { aFtSearchDir.SetText( GetReducedString( rURL, 30 ) ); } +}; + +// -------------- +// - TakeThread - +// -------------- + +class TakeThread : public ::vos::OThread +{ +private: + + TakeProgress* mpProgress; + TPGalleryThemeProperties* mpBrowser; + List& mrTakenList; + + virtual void SAL_CALL run(); + virtual void SAL_CALL onTerminated(); + +public: + + TakeThread( TakeProgress* pProgess, TPGalleryThemeProperties* pBrowser, List& rTakenList ); + virtual ~TakeThread(); +}; + +// ---------------- +// - TakeProgress - +// ---------------- + +class TakeProgress : public ModalDialog +{ +private: + + FixedText aFtTakeFile; + FixedLine aFLTakeProgress; + CancelButton aBtnCancel; + TakeThread maTakeThread; + List maTakenList; + + DECL_LINK( ClickCancelBtn, void* ); + void Terminate(); + +public: + + TakeProgress( Window* pWindow ); + ~TakeProgress() {}; + + DECL_LINK( CleanUpHdl, void* ); + + void SetFile( const INetURLObject& rURL ) { aFtTakeFile.SetText( GetReducedString( rURL, 30 ) ); } + virtual short Execute(); + virtual void StartExecuteModal( const Link& rEndDialogHdl ); +}; + +// --------------------- +// - ActualizeProgress - +// --------------------- + +class ActualizeProgress : public ModalDialog +{ +private: + + FixedText aFtActualizeFile; + FixedLine aFLActualizeProgress; + CancelButton aBtnCancel; + Timer* pTimer; + GalleryTheme* pTheme; + GalleryProgress aStatusProgress; + + DECL_LINK( ClickCancelBtn, void* ); + DECL_LINK( TimeoutHdl, Timer* ); + DECL_LINK( ActualizeHdl, INetURLObject* pURL ); + +public: + ActualizeProgress( Window* pWindow, GalleryTheme* pThm ); + ~ActualizeProgress() {}; + + virtual short Execute(); +}; + +// --------------- +// - TitleDialog - +// --------------- + +class TitleDialog : public ModalDialog +{ +private: + + OKButton maOk; + CancelButton maCancel; + HelpButton maHelp; + FixedLine maFL; + Edit maEdit; + +public: + + TitleDialog( Window* pParent, const String& rOldText ); + String GetTitle() const { return maEdit.GetText(); } +}; + +// ------------------- +// - GalleryIdDialog - +// ------------------- + +class GalleryIdDialog : public ModalDialog +{ +private: + + OKButton aBtnOk; + CancelButton aBtnCancel; + FixedLine aFLId; + ListBox aLbResName; + GalleryTheme* pThm; + + DECL_LINK( ClickOkHdl, void* ); + DECL_LINK( ClickResNameHdl, void* ); + +public: + + GalleryIdDialog( Window* pParent, GalleryTheme* pThm ); + ~GalleryIdDialog() {} + + ULONG GetId() const { return aLbResName.GetSelectEntryPos(); } +}; + +// -------------------------- +// - GalleryThemeProperties - +// -------------------------- + +class GalleryThemeProperties : public SfxTabDialog +{ + ExchangeData* pData; + + virtual void PageCreated( USHORT nId, SfxTabPage &rPage ); + +public: + + GalleryThemeProperties( Window* pParent, ExchangeData* pData, SfxItemSet* pItemSet ); + ~GalleryThemeProperties() {} +}; + +// ------------------------- +// - TPGalleryThemeGeneral - +// ------------------------- + +class TPGalleryThemeGeneral : public SfxTabPage +{ +private: + + FixedImage aFiMSImage; + Edit aEdtMSName; + FixedLine aFlMSGeneralFirst; + FixedText aFtMSType; + FixedText aFtMSShowType; + FixedText aFtMSPath; + FixedText aFtMSShowPath; + FixedText aFtMSContent; + FixedText aFtMSShowContent; + FixedLine aFlMSGeneralSecond; + FixedText aFtMSChangeDate; + FixedText aFtMSShowChangeDate; + ExchangeData* pData; + + virtual void Reset( const SfxItemSet& ) {} + virtual BOOL FillItemSet( SfxItemSet& rSet ); + + +public: + + TPGalleryThemeGeneral( Window* pParent, const SfxItemSet& rSet ); + ~TPGalleryThemeGeneral() {} + + void SetXChgData( ExchangeData* pData ); + const ExchangeData* GetXChgData() const { return pData; } + + static SfxTabPage* Create( Window* pParent, const SfxItemSet& rSet ); +}; + +// ---------------------------- +// - TPGalleryThemeProperties - +// ---------------------------- + +class TPGalleryThemeProperties : public SfxTabPage +{ + friend class SearchThread; + friend class TakeProgress; + friend class TakeThread; + + PushButton aBtnSearch; + PushButton aBtnTake; + PushButton aBtnTakeAll; + CheckBox aCbxPreview; + ComboBox aCbbFileType; + MultiListBox aLbxFound; + FixedText aFtFileType; + GalleryPreview aWndPreview; + + ExchangeData* pData; + StringList aFoundList; + List aFilterEntryList; + Timer aPreviewTimer; + String aLastFilterName; + String aPreviewString; + INetURLObject aURL; + USHORT nCurFilterPos; + USHORT nFirstExtFilterPos; + BOOL bEntriesFound; + BOOL bInputAllowed; + BOOL bTakeAll; + BOOL bSearchRecursive; + + ::com::sun::star::uno::Reference< ::svt::DialogClosedListener > xDialogListener; + ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > xMediaPlayer; + ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFolderPicker > xFolderPicker; + + virtual void Reset( const SfxItemSet& /*rSet*/ ) {} + virtual BOOL FillItemSet( SfxItemSet& /*rSet*/ ) { return TRUE; } + ::rtl::OUString addExtension( const ::rtl::OUString&, const ::rtl::OUString& ); + void FillFilterList(); + + void SearchFiles(); + void TakeFiles(); + void DoPreview(); + + DECL_LINK( ClickPreviewHdl, void* ); + DECL_LINK( ClickCloseBrowserHdl, void* ); + DECL_LINK( ClickSearchHdl, void* ); + DECL_LINK( ClickTakeHdl, void* ); + DECL_LINK( ClickTakeAllHdl, void* ); + DECL_LINK( SelectFoundHdl, void* ); + DECL_LINK( SelectThemeHdl, void* ); + DECL_LINK( SelectFileTypeHdl, void* ); + DECL_LINK( DClickFoundHdl, void* ); + DECL_LINK( PreviewTimerHdl, void* ); + DECL_LINK( EndSearchProgressHdl, SearchProgress* ); + DECL_LINK( DialogClosedHdl, ::com::sun::star::ui::dialogs::DialogClosedEvent* ); + +public: + TPGalleryThemeProperties( Window* pWindow, const SfxItemSet& rSet ); + ~TPGalleryThemeProperties(); + + void SetXChgData( ExchangeData* pData ); + const ExchangeData* GetXChgData() const { return pData; } + + void StartSearchFiles( const String& _rFolderURL, short _nDlgResult ); + + static SfxTabPage* Create( Window* pParent, const SfxItemSet& rSet ); +}; + +#endif // _CUI_GALDLG_HXX_ |