00001
00265 #ifndef INC_RVC_STYLE_H
00266 #define INC_RVC_STYLE_H
00267
00268 #ifndef INC_RVC_OBJECT_H
00269 #include <rvc/object.h>
00270 #endif
00271
00272 #ifndef INC_RVC_STYLETYPE_H
00273 #include <rvc/styletype.h>
00274 #endif
00275
00276 #ifndef INC_RVC_GETOBJFILTER_H
00277 #include <rvc/getobjfilter.h>
00278 #endif
00279
00280
00281 #ifndef GENERATING_DOXYGEN_OUTPUT
00282
00283 struct POINTSTYLE;
00284 struct LINESTYLE;
00285 struct MULTISTYLE;
00286 struct POLYSTYLE;
00287 struct TEXTSTYLE;
00288 struct RVCPOINTSTYLE;
00289 struct RVCLINESTYLE;
00290 struct RVCPOLYGONSTYLE;
00291 struct RVCTEXTSTYLE;
00292 namespace RVC {
00293 class DESCRIPTOR;
00294 class STYLEPATTERN_BASE;
00295 class STYLEPATTERN_BITMAP;
00296 class STYLEPATTERN_HATCH;
00297 class STYLEPATTERN_LINE;
00298 class STYLEPATTERN_SYMBOL;
00299 class STYLEHANDLE;
00300 }
00301 #endif
00302
00303
00304 namespace RVC {
00305
00320 class STYLE : public RVC::OBJECT {
00321 public:
00322
00323 #ifndef GENERATING_DOXYGEN_OUTPUT
00324 class GETOBJFILTER_ISSELECTABLE;
00325 class GETOBJFILTER_HASPATTERNTYPE;
00326 class GETOBJFILTER_HASSTYLETYPE;
00327 class UNIQUEPATTERNNAMEFILTER;
00328 class UNIQUESTYLENAMEFILTER;
00329 #endif // GENERATING_DOXYGEN_OUTPUT
00330
00332 STYLE (
00333 );
00334
00336 STYLE (
00337 const RVC::STYLE& obj
00338 );
00339
00341 virtual ~STYLE (
00342 );
00343
00345 RVC::STYLE& operator= (
00346 const RVC::STYLE& rhs
00347 );
00348
00351 INT32 AddPattern (
00352 RVC::PATTERNTYPE PattType,
00353 void *Pattern
00354 );
00355
00358 INT32 AddPattern (
00359 RVC::PATTERNTYPE PattType,
00360 const STYLEPATTERN_BASE& Pattern
00361 );
00362
00365 INT32 AddPattern (
00366 const STYLEPATTERN_BITMAP& Pattern
00367 );
00368
00371 INT32 AddPattern (
00372 const STYLEPATTERN_HATCH& Pattern
00373 );
00374
00377 INT32 AddPattern (
00378 const STYLEPATTERN_LINE& Pattern
00379 );
00380
00383 INT32 AddPattern (
00384 const STYLEPATTERN_SYMBOL& Pattern
00385 );
00386
00390 DEPRECATED INT32 AddStyle (
00391 RVCPOINTSTYLE& style
00392 );
00393
00396 INT32 AddStyle (
00397 const RVC::OBJECTNAME& name,
00398 const POINTSTYLE& style
00399 );
00400
00404 DEPRECATED INT32 AddStyle (
00405 RVCPOLYGONSTYLE& style
00406 );
00407
00410 INT32 AddStyle (
00411 const RVC::OBJECTNAME& name,
00412 const POLYSTYLE& style
00413 );
00414
00418 DEPRECATED INT32 AddStyle (
00419 RVCLINESTYLE& style
00420 );
00421
00424 INT32 AddStyle (
00425 const RVC::OBJECTNAME& name,
00426 const LINESTYLE& style
00427 );
00428
00432 DEPRECATED INT32 AddStyle (
00433 RVCTEXTSTYLE& style
00434 );
00435
00438 INT32 AddStyle (
00439 const RVC::OBJECTNAME& name,
00440 const TEXTSTYLE& style
00441 );
00442
00445 ERRVALUE Combine (
00446 const RVC::OBJECT& DestParentObj,
00447 RVC::STYLE& DestStyleObj,
00448 SIMPLE_ARRAY<INT32>& FontTrans,
00449 SIMPLE_ARRAY<INT32> PattTrans[PATTERNTYPE_NumTypes]
00450 );
00451
00454 ERRVALUE Combine (
00455 const RVC::OBJECT& DestParentObj,
00456 RVC::STYLE& DestStyleObj
00457 );
00458
00461 DEPRECATED void ConvertStyle (
00462 RVCLINESTYLE& rvcstyle,
00463 const LINESTYLE& linestyle
00464 ) const;
00465
00468 DEPRECATED void ConvertStyle (
00469 LINESTYLE& linestyle,
00470 const RVCLINESTYLE& rvcstyle
00471 ) const;
00472
00475 DEPRECATED void ConvertStyle (
00476 RVCPOINTSTYLE& rvcstyle,
00477 const POINTSTYLE& pointstyle
00478 ) const;
00479
00482 DEPRECATED void ConvertStyle (
00483 POINTSTYLE& pointstyle,
00484 const RVCPOINTSTYLE& rvcstyle
00485 ) const;
00486
00489 DEPRECATED void ConvertStyle (
00490 RVCPOLYGONSTYLE& rvcstyle,
00491 const POLYSTYLE& polystyle
00492 ) const;
00493
00496 DEPRECATED void ConvertStyle (
00497 POLYSTYLE& polystyle,
00498 const RVCPOLYGONSTYLE& rvcstyle
00499 ) const;
00500
00503 DEPRECATED void ConvertStyle (
00504 RVCTEXTSTYLE& rvcstyle,
00505 const TEXTSTYLE& textstyle
00506 );
00507
00510 DEPRECATED void ConvertStyle (
00511 TEXTSTYLE& textstyle,
00512 const RVCTEXTSTYLE& rvcstyle
00513 ) const;
00514
00517 INT32 DeletePattern (
00518 PATTERNTYPE PattType,
00519 INT32 PattNum
00520 );
00521
00524 INT32 DeleteStyle (
00525 STYLETYPE StyleType,
00526 INT32 StyleNum
00527 );
00528
00530 ERRVALUE DeleteStyleType (
00531 STYLETYPE StyleType
00532 );
00533
00536 INT32 FindFontName (
00537 INT32 start,
00538 const MISTRING& name
00539 ) const;
00540
00543 INT32 FontTransAdd (
00544 const MISTRING& name
00545 );
00546
00549 INT32 FontTransIndexToHandle (
00550 INT32 FontNum
00551 );
00552
00555 ERRVALUE FontTransIndexToName (
00556 INT32 FontNum,
00557 MISTRING& name
00558 ) const;
00559
00562 INT32 FindPattern (
00563 PATTERNTYPE PattType,
00564 INT32 StartPattNum,
00565 const RVC::OBJECTNAME& name
00566 ) const;
00567
00570 INT32 FindPattern (
00571 PATTERNTYPE PattType,
00572 const RVC::DESCRIPTOR& Descriptor,
00573 INT32 StartPattNum = 0
00574 ) const;
00575
00578 INT32 FindStyle (
00579 STYLETYPE StyleType,
00580 INT32 StartStyleNum,
00581 const RVC::OBJECTNAME& name
00582 ) const;
00583
00586 INT32 FindStyle (
00587 STYLETYPE StyleType,
00588 const RVC::DESCRIPTOR& Descriptor,
00589 INT32 StartStyleNum = 0
00590 ) const;
00591
00594 INT32 GetFontNameCount (
00595 ) const;
00596
00599 INT32 GetPatternCount (
00600 PATTERNTYPE PattType
00601 ) const;
00602
00605 INT32 GetPatternMaxSize (
00606 PATTERNTYPE PattType
00607 ) const;
00608
00611 INT32 GetPatternSize (
00612 PATTERNTYPE PattType,
00613 INT32 PattNum
00614 ) const;
00615
00618 INT32 GetStyleCount (
00619 STYLETYPE StyleType
00620 ) const;
00621
00623 ERRVALUE Make (
00624 const RVC::OBJECT& parent,
00625 const RVC::DESCRIPTOR& Descriptor,
00626 const CREDENTIALS* Credentials RVC_DEFAULT_CREDENTIALS
00627 );
00628
00630 ERRVALUE Make (
00631 RVC::OBJITEM& ObjItem,
00632 #ifdef RVC_CREDENTIALS_MANDATORY
00633 const char* Source,
00634 const CREDENTIALS* Credentials
00635 #else
00636 const char* Source = 0,
00637 const CREDENTIALS* Credentials = 0
00638 #endif
00639 );
00640
00642 ERRVALUE ReadPattern (
00643 PATTERNTYPE PattType,
00644 INT32 PatternNum,
00645 void *Pattern
00646 ) const;
00647
00649 ERRVALUE ReadPattern (
00650 PATTERNTYPE PattType,
00651 INT32 PatternNum,
00652 STYLEPATTERN_BASE& Pattern
00653 ) const;
00654
00656 ERRVALUE ReadPattern (
00657 INT32 PatternNum,
00658 STYLEPATTERN_BITMAP& Pattern
00659 ) const;
00660
00662 ERRVALUE ReadPattern (
00663 INT32 PatternNum,
00664 STYLEPATTERN_HATCH& Pattern
00665 ) const;
00666
00668 ERRVALUE ReadPattern (
00669 INT32 PatternNum,
00670 STYLEPATTERN_LINE& Pattern
00671 ) const;
00672
00674 ERRVALUE ReadPattern (
00675 INT32 PatternNum,
00676 STYLEPATTERN_SYMBOL& Pattern
00677 ) const;
00678
00680 ERRVALUE ReadPatternDescriptor (
00681 PATTERNTYPE PattType,
00682 INT32 PattNum,
00683 RVC::DESCRIPTOR& Descriptor
00684 ) const;
00685
00687 ERRVALUE ReadPatternHdr (
00688 PATTERNTYPE PattType,
00689 INT32 PatternNum,
00690 void *PattHdr
00691 ) const;
00692
00694 ERRVALUE ReadPatternName (
00695 PATTERNTYPE PattType,
00696 INT32 PattNum,
00697 RVC::OBJECTNAME& name
00698 ) const;
00699
00702 DEPRECATED ERRVALUE ReadStyle (
00703 INT32 StyleNum,
00704 RVCPOINTSTYLE& style
00705 ) const;
00706
00708 ERRVALUE ReadStyle (
00709 INT32 StyleNum,
00710 POINTSTYLE& style
00711 ) const;
00712
00715 DEPRECATED ERRVALUE ReadStyle (
00716 INT32 StyleNum,
00717 RVCPOLYGONSTYLE& style
00718 ) const;
00719
00721 ERRVALUE ReadStyle (
00722 INT32 StyleNum,
00723 POLYSTYLE& style
00724 ) const;
00725
00728 DEPRECATED ERRVALUE ReadStyle (
00729 INT32 StyleNum,
00730 RVCLINESTYLE& style
00731 ) const;
00732
00734 ERRVALUE ReadStyle (
00735 INT32 StyleNum,
00736 LINESTYLE& style
00737 ) const;
00738
00741 DEPRECATED ERRVALUE ReadStyle (
00742 INT32 StyleNum,
00743 RVCTEXTSTYLE& style
00744 ) const;
00745
00747 ERRVALUE ReadStyle (
00748 INT32 StyleNum,
00749 TEXTSTYLE& style
00750 ) const;
00751
00753 ERRVALUE ReadStyleDescriptor (
00754 STYLETYPE StyleType,
00755 INT32 StyleNum,
00756 RVC::DESCRIPTOR& Descriptor
00757 ) const;
00758
00760 ERRVALUE ReadStyleName (
00761 STYLETYPE StyleType,
00762 INT32 StyleNum,
00763 RVC::OBJECTNAME& name
00764 ) const;
00765
00767 ERRVALUE WritePattern (
00768 PATTERNTYPE PattType,
00769 INT32 PatternNum,
00770 void *Pattern
00771 );
00772
00774 ERRVALUE WritePattern (
00775 PATTERNTYPE PattType,
00776 INT32 PatternNum,
00777 const STYLEPATTERN_BASE& Pattern
00778 );
00779
00781 ERRVALUE WritePattern (
00782 INT32 PatternNum,
00783 const STYLEPATTERN_BITMAP& Pattern
00784 );
00785
00787 ERRVALUE WritePattern (
00788 INT32 PatternNum,
00789 const STYLEPATTERN_HATCH& Pattern
00790 );
00791
00793 ERRVALUE WritePattern (
00794 INT32 PatternNum,
00795 const STYLEPATTERN_LINE& Pattern
00796 );
00797
00799 ERRVALUE WritePattern (
00800 INT32 PatternNum,
00801 const STYLEPATTERN_SYMBOL& Pattern
00802 );
00803
00805 ERRVALUE WritePatternDescriptor (
00806 PATTERNTYPE PattType,
00807 INT32 PatternNum,
00808 const DESCRIPTOR& Descriptor
00809 );
00810
00812 ERRVALUE WritePatternName (
00813 PATTERNTYPE PattType,
00814 INT32 PatternNum,
00815 const OBJECTNAME& name
00816 );
00817
00820 DEPRECATED ERRVALUE WriteStyle (
00821 INT32 StyleNum,
00822 RVCPOINTSTYLE& style
00823 );
00824
00826 ERRVALUE WriteStyle (
00827 INT32 StyleNum,
00828 const RVC::OBJECTNAME& name,
00829 const POINTSTYLE& style
00830 );
00831
00834 DEPRECATED ERRVALUE WriteStyle (
00835 INT32 StyleNum,
00836 RVCPOLYGONSTYLE& style
00837 );
00838
00840 ERRVALUE WriteStyle (
00841 INT32 StyleNum,
00842 const RVC::OBJECTNAME& name,
00843 const POLYSTYLE& style
00844 );
00845
00848 DEPRECATED ERRVALUE WriteStyle (
00849 INT32 StyleNum,
00850 RVCLINESTYLE& style
00851 );
00852
00854 ERRVALUE WriteStyle (
00855 INT32 StyleNum,
00856 const RVC::OBJECTNAME& name,
00857 const LINESTYLE& style
00858 );
00859
00862 DEPRECATED ERRVALUE WriteStyle (
00863 INT32 StyleNum,
00864 RVCTEXTSTYLE& style
00865 );
00866
00868 ERRVALUE WriteStyle (
00869 INT32 StyleNum,
00870 const RVC::OBJECTNAME& name,
00871 const TEXTSTYLE& style
00872 );
00873
00875 ERRVALUE WriteStyleDescriptor (
00876 STYLETYPE StyleType,
00877 INT32 StyleNum,
00878 const DESCRIPTOR& Descriptor
00879 );
00880
00882 ERRVALUE WriteStyleName (
00883 STYLETYPE StyleType,
00884 INT32 StyleNum,
00885 const RVC::OBJECTNAME& name
00886 );
00887
00888 private:
00889 #ifndef GENERATING_DOXYGEN_OUTPUT
00890
00892 virtual ERRVALUE v_CloseObject ();
00893 virtual OBJTYPE v_GetDftObjectType () const;
00894 virtual bool v_IsObjectOpen () const;
00895 virtual ERRVALUE v_OpenObject (OPENMODE OpenFlags, MDLGPARENT parent, const CREDENTIALS* Credentials);
00896
00897 STYLEHANDLE* m_StyleHandle;
00898 #endif // GENERATING_DOXYGEN_OUTPUT
00899
00900 };
00901
00902
00904 class STYLE::GETOBJFILTER_ISSELECTABLE : public GETOBJFILTER {
00905 public:
00906 GETOBJFILTER_ISSELECTABLE (
00907 bool IsSaving = false
00908 );
00909 private:
00910 #ifndef GENERATING_DOXYGEN_OUTPUT
00911 bool m_IsSaving;
00912 virtual bool v_HasSelectableSubObjects (const RVC::OBJITEM& objitem);
00913 virtual bool v_IsSelectable (const RVC::OBJITEM& ObjItem, int position);
00914 #endif // GENERATING_DOXYGEN_OUTPUT
00915 };
00916
00917
00920 class STYLE::GETOBJFILTER_HASPATTERNTYPE : public GETOBJFILTER {
00921 public:
00922 GETOBJFILTER_HASPATTERNTYPE (
00923 PATTERNTYPE PatternType
00924 ) : m_PatternType(PatternType) {}
00925
00926 private:
00927 #ifndef GENERATING_DOXYGEN_OUTPUT
00928 PATTERNTYPE m_PatternType;
00929
00930 virtual bool v_HasSelectableSubObjects (const RVC::OBJITEM& objitem);
00931 virtual bool v_IsSelectable (const RVC::OBJITEM& ObjItem, int position);
00932 #endif // GENERATING_DOXYGEN_OUTPUT
00933 };
00934
00935
00938 class STYLE::GETOBJFILTER_HASSTYLETYPE : public GETOBJFILTER {
00939 public:
00940 GETOBJFILTER_HASSTYLETYPE (
00941 STYLETYPE StyleType
00942 ) : m_StyleType(StyleType) {}
00943
00944 private:
00945 #ifndef GENERATING_DOXYGEN_OUTPUT
00946 STYLETYPE m_StyleType;
00947
00948 virtual bool v_HasSelectableSubObjects (const RVC::OBJITEM& objitem);
00949 virtual bool v_IsSelectable (const RVC::OBJITEM& ObjItem, int position);
00950 #endif // GENERATING_DOXYGEN_OUTPUT
00951 };
00952
00953
00955 class STYLE::UNIQUEPATTERNNAMEFILTER : public OBJECT::UNIQUENAMEFILTER {
00956 public:
00957 UNIQUEPATTERNNAMEFILTER (
00958 const STYLE& StyleObj,
00959 PATTERNTYPE PatternType
00960 );
00961
00962 private:
00963 #ifndef GENERATING_DOXYGEN_OUTPUT
00964 const STYLE& m_StyleObj;
00965 PATTERNTYPE m_PatternType;
00966
00967 virtual int Filter (const RVC::OBJECTNAME& name);
00968 #endif // GENERATING_DOXYGEN_OUTPUT
00969 };
00970
00971
00973 class STYLE::UNIQUESTYLENAMEFILTER : public OBJECT::UNIQUENAMEFILTER {
00974 public:
00975 UNIQUESTYLENAMEFILTER (
00976 const STYLE& StyleObj,
00977 STYLETYPE StyleType
00978 );
00979
00980 private:
00981 #ifndef GENERATING_DOXYGEN_OUTPUT
00982 const STYLE& m_StyleObj;
00983 STYLETYPE m_StyleType;
00984
00985 virtual int Filter (const RVC::OBJECTNAME& name);
00986 #endif // GENERATING_DOXYGEN_OUTPUT
00987 };
00988
00989
00990 #ifdef USE_MGUI
00991 namespace UI {
00992
00993 enum STYLECOPYPATTERNFLAGS {
00994 STYLECOPYPATTERNFLAG_None = 0,
00995 STYLECOPYPATTERNFLAG_NoCheckDupPattern = 0x01,
00996 STYLECOPYPATTERNFLAG_AskUserDupPattern = 0x02,
00997 };
00998 #ifndef GENERATING_DOXYGEN_OUTPUT
00999 DEFINE_ENUM_OP_BITWISE(STYLECOPYPATTERNFLAGS)
01000 #endif
01001
01004 INT32 StyleCopyPattern (
01005 RVC::STYLE& ObjStyleTgt,
01006 RVC::STYLE& ObjStyleSrc,
01007 RVC::PATTERNTYPE PatternType,
01008 INT32 SrcPatternNum,
01009 STYLECOPYPATTERNFLAGS flags = STYLECOPYPATTERNFLAG_None,
01010 MDLGPARENT dlgparent = 0
01011 );
01012 }
01013 #endif
01014
01015
01016 }
01017
01018 #endif // INC_RVC_STYLE_H