1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 #ifndef _SC_ABSTDLG_HXX 24 #define _SC_ABSTDLG_HXX 25 26 // include --------------------------------------------------------------- 27 28 #include <tools/solar.h> 29 #include <tools/string.hxx> 30 #include <sfx2/sfxdlg.hxx> 31 #include <vcl/syswin.hxx> 32 #include <com/sun/star/uno/Sequence.hxx> 33 #include <vcl/field.hxx> 34 #include "sc.hrc" 35 #include "global.hxx" 36 #include "pivot.hxx" 37 #include "i18npool/lang.h" 38 39 class ScAsciiOptions; 40 class ScAutoFormat; 41 class ScAutoFormatData; 42 class ScDocument; 43 struct ScImportSourceDesc; 44 class ScViewData; 45 class ScRangeName; 46 class ScQueryItem; 47 class ScImportOptions; 48 class SfxStyleSheetBase; 49 class ScDPObject; 50 struct ScPivotFuncData; 51 struct ScDPNumGroupInfo; 52 //<!--Added by PengYunQuan for Validity Cell Range Picker 53 class ScTabViewShell; 54 //-->Added by PengYunQuan for Validity Cell Range Picker 55 56 namespace com { namespace sun { namespace star { namespace sheet { 57 struct DataPilotFieldReference; 58 } } } } 59 60 class AbstractScImportAsciiDlg : public VclAbstractDialog //add for ScImportAsciiDlg 61 { 62 public: 63 virtual void GetOptions( ScAsciiOptions& rOpt ) = 0; 64 virtual void SetTextToColumnsMode() = 0; 65 virtual void SaveParameters() = 0; 66 }; 67 68 69 class AbstractScAutoFormatDlg : public VclAbstractDialog //add for ScAutoFormatDlg 70 { 71 public: 72 virtual sal_uInt16 GetIndex() const = 0 ; 73 virtual String GetCurrFormatName() = 0; 74 }; 75 76 class AbstractScColRowLabelDlg : public VclAbstractDialog //add for ScColRowLabelDlg 77 { 78 public: 79 virtual sal_Bool IsCol() = 0; 80 virtual sal_Bool IsRow() = 0; 81 }; 82 83 class AbstractScDataPilotDatabaseDlg :public VclAbstractDialog //add for ScDataPilotDatabaseDlg 84 { 85 public: 86 virtual void GetValues( ScImportSourceDesc& rDesc ) = 0; 87 }; 88 89 class AbstractScDataPilotSourceTypeDlg : public VclAbstractDialog //add for ScDataPilotSourceTypeDlg 90 { 91 public: 92 virtual sal_Bool IsDatabase() const = 0; 93 virtual sal_Bool IsExternal() const = 0; 94 }; 95 96 class AbstractScDataPilotServiceDlg : public VclAbstractDialog //add for ScDataPilotServiceDlg 97 { 98 public: 99 virtual String GetServiceName() const = 0; 100 virtual String GetParSource() const = 0 ; 101 virtual String GetParName() const = 0 ; 102 virtual String GetParUser() const = 0; 103 virtual String GetParPass() const = 0; 104 }; 105 106 class AbstractScDeleteCellDlg : public VclAbstractDialog //add for ScDeleteCellDlg 107 { 108 public: 109 virtual DelCellCmd GetDelCellCmd() const = 0; 110 }; 111 112 class AbstractScDeleteContentsDlg: public VclAbstractDialog //add for ScDeleteContentsDlg 113 { 114 public: 115 virtual void DisableObjects() = 0 ; 116 virtual sal_uInt16 GetDelContentsCmdBits() const = 0; 117 }; 118 119 class AbstractScFillSeriesDlg: public VclAbstractDialog //add for ScFillSeriesDlg 120 { 121 public: 122 virtual FillDir GetFillDir() const = 0; 123 virtual FillCmd GetFillCmd() const = 0; 124 virtual FillDateCmd GetFillDateCmd() const = 0; 125 virtual double GetStart() const = 0; 126 virtual double GetStep() const = 0; 127 virtual double GetMax() const = 0; 128 virtual String GetStartStr() const = 0; 129 virtual void SetEdStartValEnabled(sal_Bool bFlag=sal_False) = 0; 130 }; 131 132 class AbstractScGroupDlg : public VclAbstractDialog //add for ScGroupDlg 133 { 134 public: 135 virtual sal_Bool GetColsChecked() const = 0; 136 }; 137 138 class AbstractScInsertCellDlg : public VclAbstractDialog //add for ScInsertCellDlg 139 { 140 public: 141 virtual InsCellCmd GetInsCellCmd() const = 0; 142 }; 143 144 class AbstractScInsertContentsDlg : public VclAbstractDialog //add for ScInsertContentsDlg 145 { 146 public: 147 virtual sal_uInt16 GetInsContentsCmdBits() const = 0; 148 virtual sal_uInt16 GetFormulaCmdBits() const = 0 ; 149 virtual sal_Bool IsSkipEmptyCells() const = 0; 150 virtual sal_Bool IsLink() const = 0; 151 virtual void SetFillMode( sal_Bool bSet ) = 0; 152 virtual void SetOtherDoc( sal_Bool bSet ) = 0; 153 virtual sal_Bool IsTranspose() const = 0; 154 virtual void SetChangeTrack( sal_Bool bSet ) = 0; 155 virtual void SetCellShiftDisabled( int nDisable ) = 0; 156 virtual InsCellCmd GetMoveMode() = 0; 157 }; 158 159 class AbstractScInsertTableDlg : public VclAbstractDialog //add for ScInsertTableDlg 160 { 161 public: 162 virtual sal_Bool GetTablesFromFile() = 0; 163 virtual sal_Bool GetTablesAsLink() = 0; 164 virtual const String* GetFirstTable( sal_uInt16* pN = NULL ) = 0; 165 virtual ScDocShell* GetDocShellTables() = 0; 166 virtual sal_Bool IsTableBefore() = 0; 167 virtual sal_uInt16 GetTableCount() = 0; 168 virtual const String* GetNextTable( sal_uInt16* pN = NULL ) = 0; 169 170 }; 171 172 class AbstractScSelEntryDlg : public VclAbstractDialog //add for ScSelEntryDlg 173 { 174 public: 175 virtual String GetSelectEntry() const = 0; 176 }; 177 178 class AbstractScLinkedAreaDlg : public VclAbstractDialog2 //add for ScLinkedAreaDlg 179 { 180 public: 181 virtual void InitFromOldLink( const String& rFile, const String& rFilter, 182 const String& rOptions, const String& rSource, 183 sal_uLong nRefresh ) = 0; 184 virtual String GetURL() = 0; 185 virtual String GetFilter() = 0; // may be empty 186 virtual String GetOptions() = 0; // filter options 187 virtual String GetSource() = 0; // separated by ";" 188 virtual sal_uLong GetRefresh() = 0; // 0 if disabled 189 }; 190 191 class AbstractScMetricInputDlg : public VclAbstractDialog //add for ScMetricInputDlg 192 { 193 public: 194 virtual long GetInputValue( FieldUnit eUnit = FUNIT_TWIP ) const = 0; 195 }; 196 197 class AbstractScMoveTableDlg : public VclAbstractDialog //add for ScMoveTableDlg 198 { 199 public: 200 virtual sal_uInt16 GetSelectedDocument () const = 0; 201 virtual sal_uInt16 GetSelectedTable () const = 0; 202 virtual sal_Bool GetCopyTable () const = 0; 203 virtual void SetCopyTable (sal_Bool bFlag=sal_True) = 0; 204 virtual void EnableCopyTable (sal_Bool bFlag=sal_True) = 0; 205 }; 206 207 class AbstractScNameCreateDlg : public VclAbstractDialog //add for ScNameCreateDlg 208 { 209 public: 210 virtual sal_uInt16 GetFlags() const = 0; 211 }; 212 213 class AbstractScNamePasteDlg : public VclAbstractDialog //add for ScNamePasteDlg 214 { 215 public: 216 virtual String GetSelectedName() const = 0; 217 }; 218 219 class AbstractScPivotFilterDlg : public VclAbstractDialog //add for ScPivotFilterDlg 220 { 221 public: 222 virtual const ScQueryItem& GetOutputItem() = 0; 223 }; 224 225 class AbstractScDPFunctionDlg : public VclAbstractDialog //add for ScDPFunctionDlg 226 { 227 public: 228 virtual sal_uInt16 GetFuncMask() const = 0; 229 virtual ::com::sun::star::sheet::DataPilotFieldReference GetFieldRef() const = 0; 230 }; 231 232 class AbstractScDPSubtotalDlg : public VclAbstractDialog //add for ScDPSubtotalDlg 233 { 234 public: 235 virtual sal_uInt16 GetFuncMask() const = 0; 236 virtual void FillLabelData( ScDPLabelData& rLabelData ) const = 0; 237 }; 238 239 class AbstractScDPNumGroupDlg : public VclAbstractDialog 240 { 241 public: 242 virtual ScDPNumGroupInfo GetGroupInfo() const = 0; 243 }; 244 245 class AbstractScDPDateGroupDlg : public VclAbstractDialog 246 { 247 public: 248 virtual ScDPNumGroupInfo GetGroupInfo() const = 0; 249 virtual sal_Int32 GetDatePart() const = 0; 250 }; 251 252 class AbstractScDPShowDetailDlg : public VclAbstractDialog //add for ScDPShowDetailDlg 253 { 254 public: 255 virtual String GetDimensionName() const = 0; 256 }; 257 258 class AbstractScNewScenarioDlg : public VclAbstractDialog //add for ScNewScenarioDlg 259 { 260 public: 261 262 virtual void SetScenarioData( const String& rName, const String& rComment, 263 const Color& rColor, sal_uInt16 nFlags ) = 0; 264 265 virtual void GetScenarioData( String& rName, String& rComment, 266 Color& rColor, sal_uInt16& rFlags ) const = 0; 267 }; 268 269 class AbstractScShowTabDlg : public VclAbstractDialog //add for ScShowTabDlg 270 { 271 public: 272 virtual void Insert( const String& rString, sal_Bool bSelected ) = 0; 273 virtual sal_uInt16 GetSelectEntryCount() const = 0; 274 virtual void SetDescription(const String& rTitle, const String& rFixedText, const rtl::OString& nDlgHelpId, const rtl::OString& nLbHelpId ) = 0; 275 virtual String GetSelectEntry(sal_uInt16 nPos) const = 0; 276 virtual sal_uInt16 GetSelectEntryPos(sal_uInt16 nPos) const = 0; 277 }; 278 279 class AbstractScStringInputDlg : public VclAbstractDialog //add for ScStringInputDlg 280 { 281 public: 282 virtual void GetInputString( String& rString ) const = 0; 283 }; 284 285 class AbstractScTabBgColorDlg : public VclAbstractDialog //add for ScTabBgColorDlg 286 { 287 public: 288 virtual void GetSelectedColor( Color& rColor ) const = 0; 289 }; 290 291 class AbstractScImportOptionsDlg : public VclAbstractDialog //add for ScImportOptionsDlg 292 { 293 public: 294 virtual void GetImportOptions( ScImportOptions& rOptions ) const = 0; 295 }; 296 297 class AbstractScTextImportOptionsDlg : public VclAbstractDialog //add for ScLangChooserDlg 298 { 299 public: 300 virtual LanguageType GetLanguageType() const = 0; 301 virtual bool IsDateConversionSet() const = 0; 302 }; 303 304 //-------Scabstract fractory --------------------------- 305 class ScAbstractDialogFactory 306 { 307 public: 308 static ScAbstractDialogFactory* Create(); 309 310 virtual AbstractScImportAsciiDlg * CreateScImportAsciiDlg( Window* pParent, String aDatName, //add for ScImportAsciiDlg 311 SvStream* pInStream, int nId, 312 sal_Unicode cSep = '\t') = 0; 313 314 virtual AbstractScTextImportOptionsDlg * CreateScTextImportOptionsDlg( Window* pParent, int nId ) = 0; 315 316 virtual AbstractScAutoFormatDlg * CreateScAutoFormatDlg( Window* pParent, //add for ScAutoFormatDlg 317 ScAutoFormat* pAutoFormat, 318 const ScAutoFormatData* pSelFormatData, 319 ScDocument* pDoc, 320 int nId) = 0; 321 virtual AbstractScColRowLabelDlg * CreateScColRowLabelDlg (Window* pParent, //add for ScColRowLabelDlg 322 int nId, 323 sal_Bool bCol = sal_False, 324 sal_Bool bRow = sal_False) = 0; 325 326 virtual VclAbstractDialog * CreateScColOrRowDlg( Window* pParent, //add for ScColOrRowDlg 327 const String& rStrTitle, 328 const String& rStrLabel, 329 int nId, 330 sal_Bool bColDefault = sal_True ) = 0; 331 virtual VclAbstractDialog * CreateScSortWarningDlg ( Window* pParent, const String& rExtendText, const String& rCurrentText, int nId ) = 0; //add for ScSortWarningDlg 332 virtual AbstractScDataPilotDatabaseDlg * CreateScDataPilotDatabaseDlg (Window* pParent ,int nId ) = 0; //add for ScDataPilotDatabaseDlg 333 334 virtual AbstractScDataPilotSourceTypeDlg * CreateScDataPilotSourceTypeDlg ( Window* pParent, sal_Bool bEnableExternal, int nId ) = 0; //add for ScDataPilotSourceTypeDlg 335 336 virtual AbstractScDataPilotServiceDlg * CreateScDataPilotServiceDlg( Window* pParent, //add for ScDataPilotServiceDlg 337 const com::sun::star::uno::Sequence<rtl::OUString>& rServices, 338 int nId ) = 0; 339 340 virtual AbstractScDeleteCellDlg * CreateScDeleteCellDlg( Window* pParent, int nId, sal_Bool bDisallowCellMove = sal_False ) = 0 ; //add for ScDeleteCellDlg 341 342 virtual AbstractScDeleteContentsDlg * CreateScDeleteContentsDlg(Window* pParent,int nId, //add for ScDeleteContentsDlg 343 sal_uInt16 nCheckDefaults = 0 ) = 0; 344 virtual AbstractScFillSeriesDlg * CreateScFillSeriesDlg( Window* pParent, //add for ScFillSeriesDlg 345 ScDocument& rDocument, 346 FillDir eFillDir, 347 FillCmd eFillCmd, 348 FillDateCmd eFillDateCmd, 349 String aStartStr, 350 double fStep, 351 double fMax, 352 sal_uInt16 nPossDir, 353 int nId) = 0; 354 355 virtual AbstractScGroupDlg * CreateAbstractScGroupDlg( Window* pParent, //add for ScGroupDlg 356 sal_uInt16 nResId, 357 int nId, 358 sal_Bool bUnGroup = sal_False, 359 sal_Bool bRows = sal_True ) = 0; 360 361 virtual AbstractScInsertCellDlg * CreateScInsertCellDlg( Window* pParent, //add for ScInsertCellDlg 362 int nId, 363 sal_Bool bDisallowCellMove = sal_False ) = 0; 364 365 virtual AbstractScInsertContentsDlg * CreateScInsertContentsDlg( Window* pParent, //add for ScInsertContentsDlg 366 int nId, 367 sal_uInt16 nCheckDefaults = 0, 368 const String* pStrTitle = NULL ) = 0; 369 370 virtual AbstractScInsertTableDlg * CreateScInsertTableDlg ( Window* pParent, ScViewData& rViewData, //add for ScInsertTableDlg 371 SCTAB nTabCount, bool bFromFile, int nId) = 0; 372 373 virtual AbstractScSelEntryDlg * CreateScSelEntryDlg ( Window* pParent, // add for ScSelEntryDlg 374 sal_uInt16 nResId, 375 const String& aTitle, 376 const String& aLbTitle, 377 List& aEntryList, 378 int nId ) = 0; 379 virtual AbstractScLinkedAreaDlg * CreateScLinkedAreaDlg ( Window* pParent, int nId) = 0; //add for ScLinkedAreaDlg 380 381 virtual AbstractScMetricInputDlg * CreateScMetricInputDlg ( Window* pParent, //add for ScMetricInputDlg 382 sal_uInt16 nResId, // Ableitung fuer jeden Dialog! 383 long nCurrent, 384 long nDefault, 385 int nId , 386 FieldUnit eFUnit = FUNIT_MM, 387 sal_uInt16 nDecimals = 2, 388 long nMaximum = 1000, 389 long nMinimum = 0, 390 long nFirst = 1, 391 long nLast = 100 ) = 0; 392 393 virtual AbstractScMoveTableDlg * CreateScMoveTableDlg( Window* pParent, int nId ) = 0; //add for ScMoveTableDlg 394 395 virtual AbstractScNameCreateDlg * CreateScNameCreateDlg ( Window * pParent, sal_uInt16 nFlags, int nId ) = 0; //add for ScNameCreateDlg 396 397 virtual AbstractScNamePasteDlg * CreateScNamePasteDlg ( Window * pParent, const ScRangeName* pList, //add for ScNamePasteDlg 398 int nId , sal_Bool bInsList=sal_True ) = 0; 399 400 virtual AbstractScPivotFilterDlg * CreateScPivotFilterDlg ( Window* pParent, //add for ScPivotFilterDlg 401 const SfxItemSet& rArgSet, sal_uInt16 nSourceTab , int nId ) = 0; 402 403 virtual AbstractScDPFunctionDlg * CreateScDPFunctionDlg( Window* pParent, int nId, 404 const ScDPLabelDataVector& rLabelVec, 405 const ScDPLabelData& rLabelData, 406 const ScPivotFuncData& rFuncData ) = 0; 407 408 virtual AbstractScDPSubtotalDlg * CreateScDPSubtotalDlg( Window* pParent, int nId, 409 ScDPObject& rDPObj, 410 const ScDPLabelData& rLabelData, 411 const ScPivotFuncData& rFuncData, 412 const ScDPNameVec& rDataFields, 413 bool bEnableLayout ) = 0; 414 415 virtual AbstractScDPNumGroupDlg * CreateScDPNumGroupDlg( Window* pParent, 416 int nId, 417 const ScDPNumGroupInfo& rInfo ) = 0; 418 419 virtual AbstractScDPDateGroupDlg * CreateScDPDateGroupDlg( Window* pParent, 420 int nId, 421 const ScDPNumGroupInfo& rInfo, 422 sal_Int32 nDatePart, 423 const Date& rNullDate ) = 0; 424 425 virtual AbstractScDPShowDetailDlg * CreateScDPShowDetailDlg( Window* pParent, int nId, 426 ScDPObject& rDPObj, 427 sal_uInt16 nOrient ) = 0; 428 429 virtual AbstractScNewScenarioDlg * CreateScNewScenarioDlg ( Window* pParent, const String& rName, //add for ScNewScenarioDlg 430 int nId, 431 sal_Bool bEdit = sal_False, sal_Bool bSheetProtected = sal_False ) = 0; 432 virtual AbstractScShowTabDlg * CreateScShowTabDlg ( Window* pParent, int nId ) = 0; //add for ScShowTabDlg 433 434 virtual AbstractScStringInputDlg * CreateScStringInputDlg ( Window* pParent, //add for ScStringInputDlg 435 const String& rTitle, 436 const String& rEditTitle, 437 const String& rDefault, 438 const rtl::OString& sHelpId, const rtl::OString& sEditHelpId, 439 int nId ) = 0; 440 441 virtual AbstractScTabBgColorDlg * CreateScTabBgColorDlg ( Window* pParent, //add for ScTabBgColorDlg 442 const String& rTitle, //Dialog Title 443 const String& rTabBgColorNoColorText, //Label for no tab color 444 const Color& rDefaultColor, //Currently selected Color 445 const rtl::OString& , 446 int nId ) = 0; 447 448 virtual AbstractScImportOptionsDlg * CreateScImportOptionsDlg ( Window* pParent, //add for ScImportOptionsDlg 449 int nId, 450 sal_Bool bAscii = sal_True, 451 const ScImportOptions* pOptions = NULL, 452 const String* pStrTitle = NULL, 453 sal_Bool bMultiByte = sal_False, 454 sal_Bool bOnlyDbtoolsEncodings = sal_False, 455 sal_Bool bImport = sal_True ) = 0; 456 457 virtual SfxAbstractTabDialog * CreateScAttrDlg( SfxViewFrame* pFrame, //add for ScAttrDlg 458 Window* pParent, 459 const SfxItemSet* pCellAttrs, 460 int nId) = 0; 461 462 virtual SfxAbstractTabDialog * CreateScHFEditDlg( SfxViewFrame* pFrame, //add for ScHFEditDlg 463 Window* pParent, 464 const SfxItemSet& rCoreSet, 465 const String& rPageStyle, 466 int nId, 467 sal_uInt16 nResId = RID_SCDLG_HFEDIT ) = 0; 468 469 virtual SfxAbstractTabDialog * CreateScStyleDlg( Window* pParent,//add for ScStyleDlg 470 SfxStyleSheetBase& rStyleBase, 471 sal_uInt16 nRscId, 472 int nId) = 0; 473 474 virtual SfxAbstractTabDialog * CreateScSubTotalDlg( Window* pParent, //add for ScSubTotalDlg 475 const SfxItemSet* pArgSet, 476 int nId) = 0; 477 478 virtual SfxAbstractTabDialog * CreateScCharDlg( Window* pParent, const SfxItemSet* pAttr,//add for ScCharDlg 479 const SfxObjectShell* pDocShell, int nId ) = 0; 480 481 virtual SfxAbstractTabDialog * CreateScParagraphDlg( Window* pParent, const SfxItemSet* pAttr ,//add for ScParagraphDlg 482 int nId ) = 0; 483 484 //<!--Modified by PengYunQuan for Validity Cell Range Picker 485 //virtual SfxAbstractTabDialog * CreateScValidationDlg( Window* pParent, //add for ScValidationDlg 486 // const SfxItemSet* pArgSet,int nId ) = 0; 487 488 virtual SfxAbstractTabDialog * CreateScValidationDlg( Window* pParent, //add for ScValidationDlg 489 const SfxItemSet* pArgSet,int nId, ScTabViewShell *pTabVwSh ) = 0; 490 //-->Modified by PengYunQuan for Validity Cell Range Picker 491 virtual SfxAbstractTabDialog * CreateScSortDlg( Window* pParent, //add for ScSortDlg 492 const SfxItemSet* pArgSet,int nId ) = 0; 493 // for tabpage 494 virtual CreateTabPage GetTabPageCreatorFunc( sal_uInt16 nId ) = 0; 495 virtual GetTabPageRanges GetTabPageRangesFunc( sal_uInt16 nId ) = 0; 496 }; 497 #endif 498 499