1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Reference.h> 25*b1cdbd2cSJim Jagielski #include <sfx2/basedlgs.hxx> 26*b1cdbd2cSJim Jagielski #include <sfx2/tabdlg.hxx> 27*b1cdbd2cSJim Jagielski #include <svtools/svtreebx.hxx> 28*b1cdbd2cSJim Jagielski #include <tools/resary.hxx> 29*b1cdbd2cSJim Jagielski #include <vcl/image.hxx> 30*b1cdbd2cSJim Jagielski #include <vcl/fixbrd.hxx> 31*b1cdbd2cSJim Jagielski #include <vcl/fixed.hxx> 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski #include <vector> 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski // static ---------------------------------------------------------------- 36*b1cdbd2cSJim Jagielski 37*b1cdbd2cSJim Jagielski sal_Bool EnableSSO(); 38*b1cdbd2cSJim Jagielski CreateTabPage GetSSOCreator( void ); 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski // class OfaOptionsTreeListBox ------------------------------------------- 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski //!#define NUMBER_OF_OPTION_PAGES 12 43*b1cdbd2cSJim Jagielski class SfxModule; 44*b1cdbd2cSJim Jagielski class SfxShell; 45*b1cdbd2cSJim Jagielski class SfxItemSet; 46*b1cdbd2cSJim Jagielski class XColorList; 47*b1cdbd2cSJim Jagielski typedef ::boost::shared_ptr< XColorList > XColorListSharedPtr; 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski class OfaOptionsTreeListBox : public SvTreeListBox 50*b1cdbd2cSJim Jagielski { 51*b1cdbd2cSJim Jagielski using SvListView::Collapse; 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski private: 54*b1cdbd2cSJim Jagielski sal_Bool bInCollapse; 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski public: OfaOptionsTreeListBox(Window * pParent,const ResId & rResId)57*b1cdbd2cSJim Jagielski OfaOptionsTreeListBox(Window* pParent, const ResId& rResId) : 58*b1cdbd2cSJim Jagielski SvTreeListBox( pParent, rResId ), bInCollapse(sal_False) {} 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski virtual sal_Bool Collapse( SvLBoxEntry* pParent ); IsInCollapse() const61*b1cdbd2cSJim Jagielski sal_Bool IsInCollapse()const {return bInCollapse;} 62*b1cdbd2cSJim Jagielski }; 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski // struct OrderedEntry --------------------------------------------------- 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski struct OrderedEntry 67*b1cdbd2cSJim Jagielski { 68*b1cdbd2cSJim Jagielski sal_Int32 m_nIndex; 69*b1cdbd2cSJim Jagielski rtl::OUString m_sId; 70*b1cdbd2cSJim Jagielski OrderedEntryOrderedEntry71*b1cdbd2cSJim Jagielski OrderedEntry( sal_Int32 nIndex, const rtl::OUString& rId ) : 72*b1cdbd2cSJim Jagielski m_nIndex( nIndex ), m_sId( rId ) {} 73*b1cdbd2cSJim Jagielski }; 74*b1cdbd2cSJim Jagielski 75*b1cdbd2cSJim Jagielski typedef std::vector< OrderedEntry* > VectorOfOrderedEntries; 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski // struct Module --------------------------------------------------------- 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski struct Module 80*b1cdbd2cSJim Jagielski { 81*b1cdbd2cSJim Jagielski rtl::OUString m_sName; 82*b1cdbd2cSJim Jagielski bool m_bActive; 83*b1cdbd2cSJim Jagielski VectorOfOrderedEntries m_aNodeList; 84*b1cdbd2cSJim Jagielski ModuleModule85*b1cdbd2cSJim Jagielski Module( const rtl::OUString& rName ) : m_sName( rName ), m_bActive( false ) {} 86*b1cdbd2cSJim Jagielski }; 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski // struct OptionsLeaf ---------------------------------------------------- 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski struct OptionsLeaf 91*b1cdbd2cSJim Jagielski { 92*b1cdbd2cSJim Jagielski rtl::OUString m_sId; 93*b1cdbd2cSJim Jagielski rtl::OUString m_sLabel; 94*b1cdbd2cSJim Jagielski rtl::OUString m_sPageURL; 95*b1cdbd2cSJim Jagielski rtl::OUString m_sEventHdl; 96*b1cdbd2cSJim Jagielski rtl::OUString m_sGroupId; 97*b1cdbd2cSJim Jagielski sal_Int32 m_nGroupIndex; 98*b1cdbd2cSJim Jagielski OptionsLeafOptionsLeaf99*b1cdbd2cSJim Jagielski OptionsLeaf( const rtl::OUString& rId, 100*b1cdbd2cSJim Jagielski const rtl::OUString& rLabel, 101*b1cdbd2cSJim Jagielski const rtl::OUString& rPageURL, 102*b1cdbd2cSJim Jagielski const rtl::OUString& rEventHdl, 103*b1cdbd2cSJim Jagielski const rtl::OUString& rGroupId, 104*b1cdbd2cSJim Jagielski sal_Int32 nGroupIndex ) : 105*b1cdbd2cSJim Jagielski m_sId( rId ), 106*b1cdbd2cSJim Jagielski m_sLabel( rLabel ), 107*b1cdbd2cSJim Jagielski m_sPageURL( rPageURL ), 108*b1cdbd2cSJim Jagielski m_sEventHdl( rEventHdl ), 109*b1cdbd2cSJim Jagielski m_sGroupId( rGroupId ), 110*b1cdbd2cSJim Jagielski m_nGroupIndex( nGroupIndex ) {} 111*b1cdbd2cSJim Jagielski }; 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski typedef ::std::vector< OptionsLeaf* > VectorOfLeaves; 114*b1cdbd2cSJim Jagielski typedef ::std::vector< VectorOfLeaves > VectorOfGroupedLeaves; 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski // struct OptionsNode ---------------------------------------------------- 117*b1cdbd2cSJim Jagielski 118*b1cdbd2cSJim Jagielski struct OptionsNode 119*b1cdbd2cSJim Jagielski { 120*b1cdbd2cSJim Jagielski rtl::OUString m_sId; 121*b1cdbd2cSJim Jagielski rtl::OUString m_sLabel; 122*b1cdbd2cSJim Jagielski rtl::OUString m_sPageURL; 123*b1cdbd2cSJim Jagielski bool m_bAllModules; 124*b1cdbd2cSJim Jagielski rtl::OUString m_sGroupId; 125*b1cdbd2cSJim Jagielski sal_Int32 m_nGroupIndex; 126*b1cdbd2cSJim Jagielski VectorOfLeaves m_aLeaves; 127*b1cdbd2cSJim Jagielski VectorOfGroupedLeaves m_aGroupedLeaves; 128*b1cdbd2cSJim Jagielski OptionsNodeOptionsNode129*b1cdbd2cSJim Jagielski OptionsNode( const rtl::OUString& rId, 130*b1cdbd2cSJim Jagielski const rtl::OUString& rLabel, 131*b1cdbd2cSJim Jagielski const rtl::OUString& rPageURL, 132*b1cdbd2cSJim Jagielski bool bAllModules, 133*b1cdbd2cSJim Jagielski const rtl::OUString& rGroupId, 134*b1cdbd2cSJim Jagielski sal_Int32 nGroupIndex ) : 135*b1cdbd2cSJim Jagielski m_sId( rId ), 136*b1cdbd2cSJim Jagielski m_sLabel( rLabel ), 137*b1cdbd2cSJim Jagielski m_sPageURL( rPageURL ), 138*b1cdbd2cSJim Jagielski m_bAllModules( bAllModules ), 139*b1cdbd2cSJim Jagielski m_sGroupId( rGroupId ), 140*b1cdbd2cSJim Jagielski m_nGroupIndex( nGroupIndex ) {} 141*b1cdbd2cSJim Jagielski ~OptionsNodeOptionsNode142*b1cdbd2cSJim Jagielski ~OptionsNode() 143*b1cdbd2cSJim Jagielski { 144*b1cdbd2cSJim Jagielski for ( sal_uInt32 i = 0; i < m_aLeaves.size(); ++i ) 145*b1cdbd2cSJim Jagielski delete m_aLeaves[i]; 146*b1cdbd2cSJim Jagielski m_aLeaves.clear(); 147*b1cdbd2cSJim Jagielski m_aGroupedLeaves.clear(); 148*b1cdbd2cSJim Jagielski } 149*b1cdbd2cSJim Jagielski }; 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski typedef ::std::vector< OptionsNode* > VectorOfNodes; 152*b1cdbd2cSJim Jagielski 153*b1cdbd2cSJim Jagielski struct LastPageSaver 154*b1cdbd2cSJim Jagielski { 155*b1cdbd2cSJim Jagielski sal_uInt16 m_nLastPageId; 156*b1cdbd2cSJim Jagielski rtl::OUString m_sLastPageURL_Tools; 157*b1cdbd2cSJim Jagielski rtl::OUString m_sLastPageURL_ExtMgr; 158*b1cdbd2cSJim Jagielski LastPageSaverLastPageSaver159*b1cdbd2cSJim Jagielski LastPageSaver() : m_nLastPageId( USHRT_MAX ) {} 160*b1cdbd2cSJim Jagielski }; 161*b1cdbd2cSJim Jagielski 162*b1cdbd2cSJim Jagielski // class OfaTreeOptionsDialog -------------------------------------------- 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski namespace com { namespace sun { namespace star { namespace frame { class XFrame; } } } } 165*b1cdbd2cSJim Jagielski namespace com { namespace sun { namespace star { namespace container { class XNameAccess; } } } } 166*b1cdbd2cSJim Jagielski namespace com { namespace sun { namespace star { namespace lang { class XMultiServiceFactory; } } } } 167*b1cdbd2cSJim Jagielski namespace com { namespace sun { namespace star { namespace awt { class XContainerWindowProvider; } } } } 168*b1cdbd2cSJim Jagielski 169*b1cdbd2cSJim Jagielski struct OptionsPageInfo; 170*b1cdbd2cSJim Jagielski struct Module; 171*b1cdbd2cSJim Jagielski class ExtensionsTabPage; 172*b1cdbd2cSJim Jagielski typedef std::vector< ExtensionsTabPage* > VectorOfPages; 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim Jagielski class OfaTreeOptionsDialog : public SfxModalDialog 175*b1cdbd2cSJim Jagielski { 176*b1cdbd2cSJim Jagielski private: 177*b1cdbd2cSJim Jagielski OKButton aOkPB; 178*b1cdbd2cSJim Jagielski CancelButton aCancelPB; 179*b1cdbd2cSJim Jagielski HelpButton aHelpPB; 180*b1cdbd2cSJim Jagielski PushButton aBackPB; 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski FixedBorder aHiddenGB; 183*b1cdbd2cSJim Jagielski FixedText aPageTitleFT; 184*b1cdbd2cSJim Jagielski FixedLine aLine1FL; 185*b1cdbd2cSJim Jagielski FixedText aHelpFT; 186*b1cdbd2cSJim Jagielski FixedImage aHelpImg; 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski ImageList aPageImages; 189*b1cdbd2cSJim Jagielski ImageList aPageImagesHC; 190*b1cdbd2cSJim Jagielski 191*b1cdbd2cSJim Jagielski ResStringArray aHelpTextsArr; 192*b1cdbd2cSJim Jagielski 193*b1cdbd2cSJim Jagielski OfaOptionsTreeListBox aTreeLB; 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski String sTitle; 196*b1cdbd2cSJim Jagielski String sNotLoadedError; 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski SvLBoxEntry* pCurrentPageEntry; 199*b1cdbd2cSJim Jagielski 200*b1cdbd2cSJim Jagielski // for the ColorTabPage 201*b1cdbd2cSJim Jagielski SfxItemSet* pColorPageItemSet; 202*b1cdbd2cSJim Jagielski XColorListSharedPtr maColorTab; 203*b1cdbd2cSJim Jagielski sal_uInt16 nChangeType; 204*b1cdbd2cSJim Jagielski sal_uInt16 nUnknownType; 205*b1cdbd2cSJim Jagielski sal_uInt16 nUnknownPos; 206*b1cdbd2cSJim Jagielski sal_Bool bIsAreaTP; 207*b1cdbd2cSJim Jagielski 208*b1cdbd2cSJim Jagielski sal_Bool bForgetSelection; 209*b1cdbd2cSJim Jagielski sal_Bool bExternBrowserActive; 210*b1cdbd2cSJim Jagielski sal_Bool bImageResized; 211*b1cdbd2cSJim Jagielski bool bInSelectHdl_Impl; 212*b1cdbd2cSJim Jagielski bool bIsFromExtensionManager; 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski // check "for the current document only" and set focus to "Western" languages box 215*b1cdbd2cSJim Jagielski bool bIsForSetDocumentLanguage; 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim Jagielski Timer aSelectTimer; 218*b1cdbd2cSJim Jagielski 219*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference < com::sun::star::awt::XContainerWindowProvider > 220*b1cdbd2cSJim Jagielski m_xContainerWinProvider; 221*b1cdbd2cSJim Jagielski 222*b1cdbd2cSJim Jagielski static LastPageSaver* pLastPageSaver; 223*b1cdbd2cSJim Jagielski 224*b1cdbd2cSJim Jagielski SfxItemSet* CreateItemSet( sal_uInt16 nId ); 225*b1cdbd2cSJim Jagielski void ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet ); 226*b1cdbd2cSJim Jagielski void InitTreeAndHandler(); 227*b1cdbd2cSJim Jagielski void Initialize( const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& _xFrame ); 228*b1cdbd2cSJim Jagielski void ResizeTreeLB( void ); // resizes dialog so that treelistbox has no horizontal scroll bar 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski void LoadExtensionOptions( const rtl::OUString& rExtensionId ); 231*b1cdbd2cSJim Jagielski rtl::OUString GetModuleIdentifier( const com::sun::star::uno::Reference< 232*b1cdbd2cSJim Jagielski com::sun::star::lang::XMultiServiceFactory >& xMFac, 233*b1cdbd2cSJim Jagielski const com::sun::star::uno::Reference< 234*b1cdbd2cSJim Jagielski com::sun::star::frame::XFrame >& xFrame ); 235*b1cdbd2cSJim Jagielski Module* LoadModule( const rtl::OUString& rModuleIdentifier, 236*b1cdbd2cSJim Jagielski const com::sun::star::uno::Reference< 237*b1cdbd2cSJim Jagielski com::sun::star::container::XNameAccess >& xRoot ); 238*b1cdbd2cSJim Jagielski void LoadNodes( const com::sun::star::uno::Reference< 239*b1cdbd2cSJim Jagielski com::sun::star::container::XNameAccess >& xRoot, 240*b1cdbd2cSJim Jagielski Module* pModule, 241*b1cdbd2cSJim Jagielski const rtl::OUString& rExtensionId, 242*b1cdbd2cSJim Jagielski VectorOfNodes& rOutNodeList ); 243*b1cdbd2cSJim Jagielski void InsertNodes( const VectorOfNodes& rNodeList ); 244*b1cdbd2cSJim Jagielski 245*b1cdbd2cSJim Jagielski protected: 246*b1cdbd2cSJim Jagielski DECL_LINK(ExpandedHdl_Impl, SvTreeListBox* ); 247*b1cdbd2cSJim Jagielski DECL_LINK(ShowPageHdl_Impl, SvTreeListBox* ); 248*b1cdbd2cSJim Jagielski DECL_LINK(BackHdl_Impl, PushButton* ); 249*b1cdbd2cSJim Jagielski DECL_LINK( OKHdl_Impl, Button * ); 250*b1cdbd2cSJim Jagielski DECL_LINK( HintHdl_Impl, Timer * ); 251*b1cdbd2cSJim Jagielski DECL_LINK( SelectHdl_Impl, Timer * ); 252*b1cdbd2cSJim Jagielski 253*b1cdbd2cSJim Jagielski virtual long Notify( NotifyEvent& rNEvt ); 254*b1cdbd2cSJim Jagielski virtual void DataChanged( const DataChangedEvent& rDCEvt ); 255*b1cdbd2cSJim Jagielski virtual short Execute(); 256*b1cdbd2cSJim Jagielski 257*b1cdbd2cSJim Jagielski public: 258*b1cdbd2cSJim Jagielski OfaTreeOptionsDialog( Window* pParent, 259*b1cdbd2cSJim Jagielski const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& _xFrame, 260*b1cdbd2cSJim Jagielski bool bActivateLastSelection = true ); 261*b1cdbd2cSJim Jagielski OfaTreeOptionsDialog( Window* pParent, const rtl::OUString& rExtensionId ); 262*b1cdbd2cSJim Jagielski ~OfaTreeOptionsDialog(); 263*b1cdbd2cSJim Jagielski 264*b1cdbd2cSJim Jagielski OptionsPageInfo* AddTabPage( sal_uInt16 nId, const String& rPageName, sal_uInt16 nGroup ); 265*b1cdbd2cSJim Jagielski sal_uInt16 AddGroup( const String& rGroupName, SfxShell* pCreateShell, 266*b1cdbd2cSJim Jagielski SfxModule* pCreateModule, sal_uInt16 nDialogId ); 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski void ActivateLastSelection(); 269*b1cdbd2cSJim Jagielski void ActivatePage( sal_uInt16 nResId ); 270*b1cdbd2cSJim Jagielski void ActivatePage( const String& rPageURL ); 271*b1cdbd2cSJim Jagielski void ApplyItemSets(); 272*b1cdbd2cSJim Jagielski GetColorChanged() const273*b1cdbd2cSJim Jagielski sal_uInt16 GetColorChanged() const { return nChangeType; } GetColorTable()274*b1cdbd2cSJim Jagielski XColorListSharedPtr GetColorTable() { return maColorTab; } 275*b1cdbd2cSJim Jagielski 276*b1cdbd2cSJim Jagielski // helper functions to call the language settings TabPage from the SpellDialog 277*b1cdbd2cSJim Jagielski static void ApplyLanguageOptions(const SfxItemSet& rSet); 278*b1cdbd2cSJim Jagielski }; 279*b1cdbd2cSJim Jagielski 280*b1cdbd2cSJim Jagielski // class OfaPageResource ------------------------------------------------- 281*b1cdbd2cSJim Jagielski 282*b1cdbd2cSJim Jagielski class OfaPageResource : public Resource 283*b1cdbd2cSJim Jagielski { 284*b1cdbd2cSJim Jagielski ResStringArray aGeneralDlgAry; 285*b1cdbd2cSJim Jagielski ResStringArray aInetDlgAry; 286*b1cdbd2cSJim Jagielski ResStringArray aLangDlgAry; 287*b1cdbd2cSJim Jagielski ResStringArray aTextDlgAry; 288*b1cdbd2cSJim Jagielski ResStringArray aHTMLDlgAry; 289*b1cdbd2cSJim Jagielski ResStringArray aCalcDlgAry; 290*b1cdbd2cSJim Jagielski ResStringArray aStarMathDlgAry; 291*b1cdbd2cSJim Jagielski ResStringArray aImpressDlgAry; 292*b1cdbd2cSJim Jagielski ResStringArray aDrawDlgAry; 293*b1cdbd2cSJim Jagielski ResStringArray aChartDlgAry; 294*b1cdbd2cSJim Jagielski ResStringArray aFilterDlgAry; 295*b1cdbd2cSJim Jagielski ResStringArray aDatasourcesDlgAry; 296*b1cdbd2cSJim Jagielski 297*b1cdbd2cSJim Jagielski public: 298*b1cdbd2cSJim Jagielski OfaPageResource(); 299*b1cdbd2cSJim Jagielski GetGeneralArray()300*b1cdbd2cSJim Jagielski ResStringArray& GetGeneralArray() {return aGeneralDlgAry;} GetInetArray()301*b1cdbd2cSJim Jagielski ResStringArray& GetInetArray() {return aInetDlgAry;} GetLangArray()302*b1cdbd2cSJim Jagielski ResStringArray& GetLangArray() {return aLangDlgAry;} GetTextArray()303*b1cdbd2cSJim Jagielski ResStringArray& GetTextArray() {return aTextDlgAry;} GetHTMLArray()304*b1cdbd2cSJim Jagielski ResStringArray& GetHTMLArray() {return aHTMLDlgAry;} GetCalcArray()305*b1cdbd2cSJim Jagielski ResStringArray& GetCalcArray() {return aCalcDlgAry;} GetStarMathArray()306*b1cdbd2cSJim Jagielski ResStringArray& GetStarMathArray() {return aStarMathDlgAry;} GetImpressArray()307*b1cdbd2cSJim Jagielski ResStringArray& GetImpressArray() {return aImpressDlgAry;} GetDrawArray()308*b1cdbd2cSJim Jagielski ResStringArray& GetDrawArray() {return aDrawDlgAry;} GetChartArray()309*b1cdbd2cSJim Jagielski ResStringArray& GetChartArray() {return aChartDlgAry;} GetFilterArray()310*b1cdbd2cSJim Jagielski ResStringArray& GetFilterArray() {return aFilterDlgAry;} GetDatasourcesArray()311*b1cdbd2cSJim Jagielski ResStringArray& GetDatasourcesArray() {return aDatasourcesDlgAry;} 312*b1cdbd2cSJim Jagielski }; 313*b1cdbd2cSJim Jagielski 314*b1cdbd2cSJim Jagielski // class ExtensionsTabPage ----------------------------------------------- 315*b1cdbd2cSJim Jagielski 316*b1cdbd2cSJim Jagielski namespace com { namespace sun { namespace star { namespace awt { class XWindow; } } } } 317*b1cdbd2cSJim Jagielski namespace com { namespace sun { namespace star { namespace awt { class XContainerWindowEventHandler; } } } } 318*b1cdbd2cSJim Jagielski 319*b1cdbd2cSJim Jagielski class ExtensionsTabPage : public TabPage 320*b1cdbd2cSJim Jagielski { 321*b1cdbd2cSJim Jagielski private: 322*b1cdbd2cSJim Jagielski rtl::OUString m_sPageURL; 323*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::awt::XWindow > 324*b1cdbd2cSJim Jagielski m_xPage; 325*b1cdbd2cSJim Jagielski rtl::OUString m_sEventHdl; 326*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::awt::XContainerWindowEventHandler > 327*b1cdbd2cSJim Jagielski m_xEventHdl; 328*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::awt::XContainerWindowProvider > 329*b1cdbd2cSJim Jagielski m_xWinProvider; 330*b1cdbd2cSJim Jagielski bool m_bIsWindowHidden; 331*b1cdbd2cSJim Jagielski 332*b1cdbd2cSJim Jagielski void CreateDialogWithHandler(); 333*b1cdbd2cSJim Jagielski sal_Bool DispatchAction( const rtl::OUString& rAction ); 334*b1cdbd2cSJim Jagielski 335*b1cdbd2cSJim Jagielski public: 336*b1cdbd2cSJim Jagielski ExtensionsTabPage( 337*b1cdbd2cSJim Jagielski Window* pParent, WinBits nStyle, 338*b1cdbd2cSJim Jagielski const rtl::OUString& rPageURL, const rtl::OUString& rEvtHdl, 339*b1cdbd2cSJim Jagielski const com::sun::star::uno::Reference< 340*b1cdbd2cSJim Jagielski com::sun::star::awt::XContainerWindowProvider >& rProvider ); 341*b1cdbd2cSJim Jagielski 342*b1cdbd2cSJim Jagielski virtual ~ExtensionsTabPage(); 343*b1cdbd2cSJim Jagielski 344*b1cdbd2cSJim Jagielski virtual void ActivatePage(); 345*b1cdbd2cSJim Jagielski virtual void DeactivatePage(); 346*b1cdbd2cSJim Jagielski 347*b1cdbd2cSJim Jagielski void ResetPage(); 348*b1cdbd2cSJim Jagielski void SavePage(); 349*b1cdbd2cSJim Jagielski }; 350*b1cdbd2cSJim Jagielski 351