本篇介绍属性服务第一部分。
该服务主要提供处理过滤器中被使用的参数的功能。结构体定义如下:
- typedef struct _TriglavPlugInPropertyService {
- TriglavPlugInPropertyCreateProc createProc;
- TriglavPlugInPropertyRetainProc retainProc;
- TriglavPlugInPropertyReleaseProc releaseProc;
- TriglavPlugInPropertyAddItemProc addItemProc;
- TriglavPlugInPropertySetBooleanValueProc setBooleanValueProc;
- TriglavPlugInPropertyGetBooleanValueProc getBooleanValueProc;
- TriglavPlugInPropertySetBooleanDefaultValueProc setBooleanDefaultValueProc;
- TriglavPlugInPropertyGetBooleanDefaultValueProc getBooleanDefaultValueProc;
- TriglavPlugInPropertySetIntegerValueProc setIntegerValueProc;
- TriglavPlugInPropertyGetIntegerValueProc getIntegerValueProc;
- TriglavPlugInPropertySetIntegerDefaultValueProc setIntegerDefaultValueProc;
- TriglavPlugInPropertyGetIntegerDefaultValueProc getIntegerDefaultValueProc;
- TriglavPlugInPropertySetIntegerMinValueProc setIntegerMinValueProc;
- TriglavPlugInPropertyGetIntegerMinValueProc getIntegerMinValueProc;
- TriglavPlugInPropertySetIntegerMaxValueProc setIntegerMaxValueProc;
- TriglavPlugInPropertyGetIntegerMaxValueProc getIntegerMaxValueProc;
- TriglavPlugInPropertySetDecimalValueProc setDecimalValueProc;
- TriglavPlugInPropertyGetDecimalValueProc getDecimalValueProc;
- TriglavPlugInPropertySetDecimalDefaultValueProc setDecimalDefaultValueProc;
- TriglavPlugInPropertyGetDecimalDefaultValueProc getDecimalDefaultValueProc;
- TriglavPlugInPropertySetDecimalMinValueProc setDecimalMinValueProc;
- TriglavPlugInPropertyGetDecimalMinValueProc getDecimalMinValueProc;
- TriglavPlugInPropertySetDecimalMaxValueProc setDecimalMaxValueProc;
- TriglavPlugInPropertyGetDecimalMaxValueProc getDecimalMaxValueProc;
- } TriglavPlugInPropertyService;
1. 创建一个属性对象,不需要时需手动调用函数 releaceProc() 销毁。
- /**
- * propertyObject: 属性对象
- **/
- TRIGLAV_PLUGIN_API *createProc(
- TriglavPlugInPropertyObject* propertyObject);
2. 销毁属性对象
- /**
- * propertyObject: 属性对象
- **/
- TRIGLAV_PLUGIN_API *releaceProc(
- TriglavPlugInPropertyObject* propertyObject);
3. 将项目添加导致到指定的属性对象
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * valueType: 值类型
- * valueKind: 值种类
- * inputKind: 输入种类
- * caption: 标题
- * accessKey: 访问密钥
- **/
- TRIGLAV_PLUGIN_API *addItemProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInInt valueType,
- const TriglavPlugInInt valueKind,
- const TriglavPlugInInt inputKind,
- const TriglavPlugInStringObject caption,
- const TriglavPlugInChar accessKey);
其中 valueType、valueKind 和 inputKind 分别从以下常量中获取:
- // value type
- #define kTriglavPlugInPropertyValueTypeVoid (0x00)
- #define kTriglavPlugInPropertyValueTypeBoolean (0x01)
- #define kTriglavPlugInPropertyValueTypeEnumeration (0x02)
- #define kTriglavPlugInPropertyValueTypeInteger (0x11)
- #define kTriglavPlugInPropertyValueTypeDecimal (0x12)
- #define kTriglavPlugInPropertyValueTypePoint (0x21)
- #define kTriglavPlugInPropertyValueTypeString (0x31)
- // value kind
- #define kTriglavPlugInPropertyValueKindDefault (0x11)
- #define kTriglavPlugInPropertyValueKindPixel (0x21)
- // input kind
- #define kTriglavPlugInPropertyInputKindHide (0x10)
- #define kTriglavPlugInPropertyInputKindDefault (0x11)
- #define kTriglavPlugInPropertyInputKindPushButton (0x21)
- #define kTriglavPlugInPropertyInputKindCanvas (0x31)
4. 对指定属性对象的指定 itemKey 设定真值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * value: 真值
- **/
- TRIGLAV_PLUGIN_API *setBooleanValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInBool value);
5. 获取指定属性对象的指定 itemKey 的真值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * value: 真值
- **/
- TRIGLAV_PLUGIN_API *getBooleanValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- TriglavPlugInBool* value);
6. 对指定属性对象的指定 itemKey 设定默认真值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * defaultValue: 默认真值
- **/
- TRIGLAV_PLUGIN_API *setBooleanDefaultValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInBool defaultValue);
7. 获取指定属性对象的指定 itemKey 的默认真值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * defaultValue: 默认真值
- **/
- TRIGLAV_PLUGIN_API *getBooleanDefaultValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- TriglavPlugInBool* defaultValue);
8. 对指定属性对象的指定 itemKey 设置整数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * value: 整数值
- **/
- TRIGLAV_PLUGIN_API *setIntegerValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInInt value);
9. 获取指定属性对象的指定 itemKey 的整数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * value: 整数值
- **/
- TRIGLAV_PLUGIN_API *getIntegerValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- TriglavPlugInInt* value);
10. 对指定属性对象的指定 itemKey 设置默认整数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * defaultValue: 默认整数值
- **/
- TRIGLAV_PLUGIN_API *setIntegerDefaultValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInInt defaultValue);
11. 获取指定属性对象的指定 itemKey 的默认整数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * defaultValue: 默认整数值
- **/
- TRIGLAV_PLUGIN_API *getIntegerDefaultValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- TriglavPlugInInt* defaultValue);
12. 对指定属性对象的指定 itemKey 设置最小整数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * minValue: 最小整数值
- **/
- TRIGLAV_PLUGIN_API *setIntegerMinValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInInt minValue);
13. 获取指定属性对象的指定 itemKey 的最小整数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * minValue: 最小整数值
- **/
- TRIGLAV_PLUGIN_API *getIntegerMinValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- TriglavPlugInInt* minValue);
14. 对指定属性对象的指定 itemKey 设置最大整数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * maxValue: 最大整数值
- **/
- TRIGLAV_PLUGIN_API *setIntegerMaxValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInInt maxValue);
15. 获取指定属性对象的指定 itemKey 的最大整数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * maxValue: 最大整数值
- **/
- TRIGLAV_PLUGIN_API *getIntegerMaxValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- TriglavPlugInInt* maxValue);
16. 对指定属性对象的指定 itemKey 设置小数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * value: 小数值
- **/
- TRIGLAV_PLUGIN_API *setDecimalValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInDouble value);
17. 获取指定属性对象的指定 itemKey 的小数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * value: 小数值
- **/
- TRIGLAV_PLUGIN_API *getDecimalValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- TriglavPlugInDouble* value);
18. 对指定属性对象的指定 itemKey 设置默认小数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * defaultValue: 默认小数值
- **/
- TRIGLAV_PLUGIN_API *setDecimalDefaultValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInDouble defaultValue);
19. 获取指定属性对象的指定 itemKey 的默认小数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * defaultValue: 默认小数值
- **/
- TRIGLAV_PLUGIN_API *getDecimalDefaultValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- TriglavPlugInDouble* defaultValue);
20. 对指定属性对象的指定 itemKey 设置最小小数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * minValue: 最小小数值
- **/
- TRIGLAV_PLUGIN_API *setDecimalMinValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInDouble minValue);
21. 获取指定属性对象的指定 itemKey 的最小小数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * minValue: 最小小数值
- **/
- TRIGLAV_PLUGIN_API *getDecimalMinValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- TriglavPlugInDouble* minValue);
20. 对指定属性对象的指定 itemKey 设置最大小数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * maxValue: 最大小数值
- **/
- TRIGLAV_PLUGIN_API *setDecimalMaxValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- const TriglavPlugInDouble maxValue);
21. 获取指定属性对象的指定 itemKey 的最大小数值
- /**
- * propertyObject: 属性对象
- * itemKey: 项目键
- * maxValue: 最大小数值
- **/
- TRIGLAV_PLUGIN_API *getDecimalMaxValueProc(
- TriglavPlugInPropertyObject* propertyObject,
- const TriglavPlugInInt itemKey,
- TriglavPlugInDouble* maxValue);
以上就是过滤器中使用参数的部分 api,下一篇将介绍剩余部分。