本篇介绍属性服务剩余部分。
四、属性服务2
该服务继续提供处理过滤器中被使用的参数的功能。结构体定义如下:
typedef struct _TriglavPlugInPropertyService2 {
TriglavPlugInPropertySetItemStoreValueProc setItemStoreValueProc;
TriglavPlugInPropertySetPointValueProc setPointValueProc;
TriglavPlugInPropertyGetPointValueProc getPointValueProc;
TriglavPlugInPropertySetPointDefaultValueKindProc setPointDefaultValueKindProc;
TriglavPlugInPropertyGetPointDefaultValueKindProc getPointDefaultValueKindProc;
TriglavPlugInPropertySetPointDefaultValueProc setPointDefaultValueProc;
TriglavPlugInPropertyGetPointDefaultValueProc getPointDefaultValueProc;
TriglavPlugInPropertySetPointMinMaxValueKindProc setPointMinMaxValueKindProc;
TriglavPlugInPropertyGetPointMinMaxValueKindProc getPointMinMaxValueKindProc;
TriglavPlugInPropertySetPointMinValueProc setPointMinValueProc;
TriglavPlugInPropertyGetPointMinValueProc getPointMinValueProc;
TriglavPlugInPropertySetPointMaxValueProc setPointMaxValueProc;
TriglavPlugInPropertyGetPointMaxValueProc getPointMaxValueProc;
TriglavPlugInPropertySetEnumerationValueProc setEnumerationValueProc;
TriglavPlugInPropertyGetEnumerationValueProc getEnumerationValueProc;
TriglavPlugInPropertySetEnumerationDefaultValueProc setEnumerationDefaultValueProc;
TriglavPlugInPropertyGetEnumerationDefaultValueProc getEnumerationDefaultValueProc;
TriglavPlugInPropertyAddEnumerationItemProc addEnumerationItemProc;
TriglavPlugInPropertySetStringValueProc setStringValueProc;
TriglavPlugInPropertyGetStringValueProc getStringValueProc;
TriglavPlugInPropertySetStringDefaultValueProc setStringDefaultValueProc;
TriglavPlugInPropertyGetStringDefaultValueProc getStringDefaultValueProc;
TriglavPlugInPropertySetStringMaxLengthProc setStringMaxLengthProc;
TriglavPlugInPropertyGetStringMaxLengthProc getStringMaxLengthProc;
} TriglavPlugInPropertyService2;
1. 设置是否存储指定属性对象的指定 itemKey 的值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* storeValue: 存储项目值
**/
TRIGLAV_PLUGIN_API *setItemStoreValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInBool storeValue);
2. 对指定属性对象的指定 itemKey 设置坐标
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 坐标
**/
TRIGLAV_PLUGIN_API *setPointValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInPoint* value);
3. 获取指定属性对象的指定 itemKey 的坐标
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 坐标
**/
TRIGLAV_PLUGIN_API *getPointValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInPoint* value);
4. 对指定属性对象的指定 itemKey 设置默认坐标类型
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValueKind: 默认坐标类型
**/
TRIGLAV_PLUGIN_API *setPointDefaultValueKindProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt defaultValueKind);
其中 defaultValueKind 取值于下列常量之一:
#define kTriglavPlugInPropertyPointDefaultValueKindDefault (0x11)
#define kTriglavPlugInPropertyPointDefaultValueKindCanvasLeftTop (0x21)
#define kTriglavPlugInPropertyPointDefaultValueKindCanvasRightTop (0x22)
#define kTriglavPlugInPropertyPointDefaultValueKindCanvasLeftBottom (0x23)
#define kTriglavPlugInPropertyPointDefaultValueKindCanvasRightBottom (0x24)
#define kTriglavPlugInPropertyPointDefaultValueKindCanvasCenter (0x25)
#define kTriglavPlugInPropertyPointDefaultValueKindSelectAreaLeftTop (0x31)
#define kTriglavPlugInPropertyPointDefaultValueKindSelectAreaRightTop (0x32)
#define kTriglavPlugInPropertyPointDefaultValueKindSelectAreaLeftBottom (0x33)
#define kTriglavPlugInPropertyPointDefaultValueKindSelectAreaRightBottom (0x34)
#define kTriglavPlugInPropertyPointDefaultValueKindSelectAreaCenter (0x35)
5. 获取指定属性对象的指定 itemKey 的默认坐标类型
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValueKind: 默认坐标类型
**/
TRIGLAV_PLUGIN_API *getPointDefaultValueKindProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInInt* defaultValueKind);
6. 对指定属性对象的指定 itemKey 设置默认坐标
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValue: 默认坐标
**/
TRIGLAV_PLUGIN_API *setPointDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInPoint* defaultValue);
7. 获取指定属性对象的指定 itemKey 的默认坐标
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValue: 默认坐标
**/
TRIGLAV_PLUGIN_API *getPointDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInPoint* defaultValue);
8. 对指定属性对象的指定 itemKey 设置坐标最小最大值类型
/**
* propertyObject: 属性对象
* itemKey: 项目键
* minMaxValueKind: 坐标最小最大值类型
**/
TRIGLAV_PLUGIN_API *setPointMinMaxValueKindProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt minMaxValueKind);
坐标最小最大值类型一般取下列常量之一:
#define kTriglavPlugInPropertyPointMinMaxValueKindDefault (0x21)
#define kTriglavPlugInPropertyPointMinMaxValueKindNo (0x22)
9. 获取指定属性对象的指定 itemKey 的坐标最小最大值类型
/**
* propertyObject: 属性对象
* itemKey: 项目键
* minMaxValueKind: 坐标最小最大值类型
**/
TRIGLAV_PLUGIN_API *getPointMinMaxValueKindProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInInt* minMaxValueKind);
10. 对指定属性对象的指定 itemKey 设置最小坐标
/**
* propertyObject: 属性对象
* itemKey: 项目键
* minValue: 最小坐标
**/
TRIGLAV_PLUGIN_API *setPointMinValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInPoint* minValue);
11. 获取指定属性对象的指定 itemKey 的最小坐标
/**
* propertyObject: 属性对象
* itemKey: 项目键
* minValue: 最小坐标
**/
TRIGLAV_PLUGIN_API *getPointMinValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInPoint* minValue);
12. 对指定属性对象的指定 itemKey 设置最大坐标
/**
* propertyObject: 属性对象
* itemKey: 项目键
* maxValue: 最大坐标
**/
TRIGLAV_PLUGIN_API *setPointMaxValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInPoint* maxValue);
13. 获取指定属性对象的指定 itemKey 的最大坐标
/**
* propertyObject: 属性对象
* itemKey: 项目键
* maxValue: 最大坐标
**/
TRIGLAV_PLUGIN_API *getPointMaxValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInPoint* maxValue);
14. 对指定属性对象的指定 itemKey 设置当前枚举值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 当前枚举
**/
TRIGLAV_PLUGIN_API *setEnumerationValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt value);
对于可设置的 numerationValue,需先执行函数 addEnumerationItemProc() 添加。
15. 获取指定属性对象的指定 itemKey 的当前枚举值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 当前枚举
**/
TRIGLAV_PLUGIN_API *getEnumerationValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInInt* value);
16. 对指定属性对象的指定 itemKey 设置默认枚举值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 默认枚举值
**/
TRIGLAV_PLUGIN_API *setEnumerationDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt value);
对于可设置的 numerationValue,需先执行函数 addEnumerationItemProc() 添加。
17. 获取指定属性对象的指定 itemKey 的默认枚举值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 默认枚举值
**/
TRIGLAV_PLUGIN_API *getEnumerationDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInInt* value);
18. 对指定属性对象的指定 itemKey 添加枚举项
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 枚举项
* caption: 字符串对象
* accessKey: 访问密钥
**/
TRIGLAV_PLUGIN_API *addEnumerationItemProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt value,
TriglavPlugInStringObject caption,
const TriglavPlugInChar accessKey);
19. 对指定属性对象的指定 itemKey 设置字符串
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 字符串
**/
TRIGLAV_PLUGIN_API *setStringValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInStringObject value);
20. 获取指定属性对象的指定 itemKey 的字符串
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 字符串
**/
TRIGLAV_PLUGIN_API *getStringValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInStringObject* value);
21. 对指定属性对象的指定 itemKey 设置默认字符串
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValue: 默认字符串
**/
TRIGLAV_PLUGIN_API *setStringDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInStringObject defaultValue);
22. 获取指定属性对象的指定 itemKey 的默认字符串
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValue: 默认字符串
**/
TRIGLAV_PLUGIN_API *getStringDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInStringObject* defaultValue);
23. 对指定属性对象的指定 itemKey 设置字符串最大字符数
/**
* propertyObject: 属性对象
* itemKey: 项目键
* maxLength: 字符串最大字符数
**/
TRIGLAV_PLUGIN_API *setStringMaxLengthProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt maxLength);
24. 获取指定属性对象的指定 itemKey 的字符串最大字符数
/**
* propertyObject: 属性对象
* itemKey: 项目键
* maxLength: 字符串最大字符数
**/
TRIGLAV_PLUGIN_API *getStringMaxLengthProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInInt* maxLength);
至此,本篇以及前篇🔗clip studio paint插件开发之服务套件(三)介绍的就是属性服务的全部 api 了,clip studio paint 插件开发的全部 api 也随之介绍完毕。