• clip studio paint插件开发之服务套件(三)


            本篇介绍属性服务第一部分。

    四、属性服务

            该服务主要提供处理过滤器中被使用的参数的功能。结构体定义如下:

    1. typedef struct _TriglavPlugInPropertyService {
    2. TriglavPlugInPropertyCreateProc createProc;
    3. TriglavPlugInPropertyRetainProc retainProc;
    4. TriglavPlugInPropertyReleaseProc releaseProc;
    5. TriglavPlugInPropertyAddItemProc addItemProc;
    6. TriglavPlugInPropertySetBooleanValueProc setBooleanValueProc;
    7. TriglavPlugInPropertyGetBooleanValueProc getBooleanValueProc;
    8. TriglavPlugInPropertySetBooleanDefaultValueProc setBooleanDefaultValueProc;
    9. TriglavPlugInPropertyGetBooleanDefaultValueProc getBooleanDefaultValueProc;
    10. TriglavPlugInPropertySetIntegerValueProc setIntegerValueProc;
    11. TriglavPlugInPropertyGetIntegerValueProc getIntegerValueProc;
    12. TriglavPlugInPropertySetIntegerDefaultValueProc setIntegerDefaultValueProc;
    13. TriglavPlugInPropertyGetIntegerDefaultValueProc getIntegerDefaultValueProc;
    14. TriglavPlugInPropertySetIntegerMinValueProc setIntegerMinValueProc;
    15. TriglavPlugInPropertyGetIntegerMinValueProc getIntegerMinValueProc;
    16. TriglavPlugInPropertySetIntegerMaxValueProc setIntegerMaxValueProc;
    17. TriglavPlugInPropertyGetIntegerMaxValueProc getIntegerMaxValueProc;
    18. TriglavPlugInPropertySetDecimalValueProc setDecimalValueProc;
    19. TriglavPlugInPropertyGetDecimalValueProc getDecimalValueProc;
    20. TriglavPlugInPropertySetDecimalDefaultValueProc setDecimalDefaultValueProc;
    21. TriglavPlugInPropertyGetDecimalDefaultValueProc getDecimalDefaultValueProc;
    22. TriglavPlugInPropertySetDecimalMinValueProc setDecimalMinValueProc;
    23. TriglavPlugInPropertyGetDecimalMinValueProc getDecimalMinValueProc;
    24. TriglavPlugInPropertySetDecimalMaxValueProc setDecimalMaxValueProc;
    25. TriglavPlugInPropertyGetDecimalMaxValueProc getDecimalMaxValueProc;
    26. } TriglavPlugInPropertyService;

            1. 创建一个属性对象,不需要时需手动调用函数 releaceProc() 销毁。

    1. /**
    2.  * propertyObject: 属性对象
    3. **/
    4. TRIGLAV_PLUGIN_API *createProc(
    5. TriglavPlugInPropertyObject* propertyObject);

            2. 销毁属性对象

    1. /**
    2.  * propertyObject: 属性对象
    3. **/
    4. TRIGLAV_PLUGIN_API *releaceProc(
    5. TriglavPlugInPropertyObject* propertyObject);

            3. 将项目添加导致到指定的属性对象

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * valueType: 值类型
    5.  * valueKind: 值种类
    6.  * inputKind: 输入种类
    7.  * caption: 标题
    8.  * accessKey: 访问密钥
    9. **/
    10. TRIGLAV_PLUGIN_API *addItemProc(
    11. TriglavPlugInPropertyObject* propertyObject,
    12. const TriglavPlugInInt itemKey,
    13. const TriglavPlugInInt valueType,
    14. const TriglavPlugInInt valueKind,
    15. const TriglavPlugInInt inputKind,
    16. const TriglavPlugInStringObject caption,
    17. const TriglavPlugInChar accessKey);

            其中 valueTypevalueKindinputKind 分别从以下常量中获取:

    1. // value type
    2. #define    kTriglavPlugInPropertyValueTypeVoid                 (0x00)
    3. #define    kTriglavPlugInPropertyValueTypeBoolean              (0x01)
    4. #define    kTriglavPlugInPropertyValueTypeEnumeration          (0x02)
    5. #define    kTriglavPlugInPropertyValueTypeInteger              (0x11)
    6. #define    kTriglavPlugInPropertyValueTypeDecimal              (0x12)
    7. #define    kTriglavPlugInPropertyValueTypePoint                (0x21)
    8. #define    kTriglavPlugInPropertyValueTypeString               (0x31)
    9. // value kind
    10. #define    kTriglavPlugInPropertyValueKindDefault              (0x11)
    11. #define    kTriglavPlugInPropertyValueKindPixel                (0x21)
    12. // input kind
    13. #define    kTriglavPlugInPropertyInputKindHide                 (0x10)
    14. #define    kTriglavPlugInPropertyInputKindDefault              (0x11)
    15. #define    kTriglavPlugInPropertyInputKindPushButton           (0x21)
    16. #define    kTriglavPlugInPropertyInputKindCanvas               (0x31)

            4. 对指定属性对象的指定 itemKey 设定真值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * value: 真值
    5. **/
    6. TRIGLAV_PLUGIN_API *setBooleanValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. const TriglavPlugInBool value);

            5. 获取指定属性对象的指定 itemKey 的真值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * value: 真值
    5. **/
    6. TRIGLAV_PLUGIN_API *getBooleanValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. TriglavPlugInBool* value);

            6. 对指定属性对象的指定 itemKey 设定默认真值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * defaultValue: 默认真值
    5. **/
    6. TRIGLAV_PLUGIN_API *setBooleanDefaultValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. const TriglavPlugInBool defaultValue);

            7. 获取指定属性对象的指定 itemKey 的默认真值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * defaultValue: 默认真值
    5. **/
    6. TRIGLAV_PLUGIN_API *getBooleanDefaultValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. TriglavPlugInBool* defaultValue);

            8. 对指定属性对象的指定 itemKey 设置整数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * value: 整数值
    5. **/
    6. TRIGLAV_PLUGIN_API *setIntegerValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. const TriglavPlugInInt value);

            9. 获取指定属性对象的指定 itemKey 的整数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * value: 整数值
    5. **/
    6. TRIGLAV_PLUGIN_API *getIntegerValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. TriglavPlugInInt* value);

            10. 对指定属性对象的指定 itemKey 设置默认整数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * defaultValue: 默认整数值
    5. **/
    6. TRIGLAV_PLUGIN_API *setIntegerDefaultValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. const TriglavPlugInInt defaultValue);

            11. 获取指定属性对象的指定 itemKey 的默认整数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * defaultValue: 默认整数值
    5. **/
    6. TRIGLAV_PLUGIN_API *getIntegerDefaultValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. TriglavPlugInInt* defaultValue);

            12. 对指定属性对象的指定 itemKey 设置最小整数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * minValue: 最小整数值
    5. **/
    6. TRIGLAV_PLUGIN_API *setIntegerMinValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. const TriglavPlugInInt minValue);

            13. 获取指定属性对象的指定 itemKey 的最小整数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * minValue: 最小整数值
    5. **/
    6. TRIGLAV_PLUGIN_API *getIntegerMinValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. TriglavPlugInInt* minValue);

            14. 对指定属性对象的指定 itemKey 设置最大整数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * maxValue: 最大整数值
    5. **/
    6. TRIGLAV_PLUGIN_API *setIntegerMaxValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. const TriglavPlugInInt maxValue);

            15. 获取指定属性对象的指定 itemKey 的最大整数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * maxValue: 最大整数值
    5. **/
    6. TRIGLAV_PLUGIN_API *getIntegerMaxValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. TriglavPlugInInt* maxValue);

            16. 对指定属性对象的指定 itemKey 设置小数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * value: 小数值
    5. **/
    6. TRIGLAV_PLUGIN_API *setDecimalValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. const TriglavPlugInDouble value);

            17. 获取指定属性对象的指定 itemKey 的小数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * value: 小数值
    5. **/
    6. TRIGLAV_PLUGIN_API *getDecimalValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. TriglavPlugInDouble* value);

            18. 对指定属性对象的指定 itemKey 设置默认小数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * defaultValue: 默认小数值
    5. **/
    6. TRIGLAV_PLUGIN_API *setDecimalDefaultValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. const TriglavPlugInDouble defaultValue);

            19. 获取指定属性对象的指定 itemKey 的默认小数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * defaultValue: 默认小数值
    5. **/
    6. TRIGLAV_PLUGIN_API *getDecimalDefaultValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. TriglavPlugInDouble* defaultValue);

            20. 对指定属性对象的指定 itemKey 设置最小小数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * minValue: 最小小数值
    5. **/
    6. TRIGLAV_PLUGIN_API *setDecimalMinValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. const TriglavPlugInDouble minValue);

            21. 获取指定属性对象的指定 itemKey 的最小小数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * minValue: 最小小数值
    5. **/
    6. TRIGLAV_PLUGIN_API *getDecimalMinValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. TriglavPlugInDouble* minValue);

            20. 对指定属性对象的指定 itemKey 设置最大小数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * maxValue: 最大小数值
    5. **/
    6. TRIGLAV_PLUGIN_API *setDecimalMaxValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. const TriglavPlugInDouble maxValue);

            21. 获取指定属性对象的指定 itemKey 的最大小数值

    1. /**
    2.  * propertyObject: 属性对象
    3.  * itemKey: 项目键
    4.  * maxValue: 最大小数值
    5. **/
    6. TRIGLAV_PLUGIN_API *getDecimalMaxValueProc(
    7. TriglavPlugInPropertyObject* propertyObject,
    8. const TriglavPlugInInt itemKey,
    9. TriglavPlugInDouble* maxValue);

            以上就是过滤器中使用参数的部分 api,下一篇将介绍剩余部分。

  • 相关阅读:
    项目实战(四) 谷粒商城
    springboot三种注入方式
    【面经】长安新能源大数据开发一二面面经
    3. 双向约瑟夫问题
    IF 22.1,中科院1区TOP,顶级期刊更名!
    Excel只读模式的密码如何取消?
    [C++] 匿名命名空间
    Bracket Sequence ——卡特兰数
    【免费通配符 SSL证书 (支持 IP) 申请教程】
    软考 系统架构设计师系列知识点之基于架构的软件开发方法ABSD(4)
  • 原文地址:https://blog.csdn.net/yang1018679/article/details/127703501