PDRNView.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. //
  2. // PDRNView.h
  3. // Pandora
  4. //
  5. // Created by Pro_C Mac on 13-4-7.
  6. //
  7. //
  8. #import "PGMethod.h"
  9. #import "PGPlugin.h"
  10. #import <UIKit/UIKit.h>
  11. typedef enum PDRNViewBelongTo {
  12. PDRNViewUnmarried,
  13. PDRNViewThrowout,
  14. PDRNViewInWindow,
  15. PDRNViewInWebview,
  16. PDRNViewInWebviewGroup,
  17. PDRNViewInTab,
  18. }PDRNViewBelongTo;
  19. typedef NS_OPTIONS(NSUInteger, PDRNViewFeatureMask) {
  20. PDRNViewFeatureMaskAsFllowView = (1 << 0),
  21. PDRNViewFeatureMaskCreateFromWebviewStyleSubNviews = (1 << 1),
  22. PDRNViewFeatureMaskStart = 2
  23. };
  24. /**
  25. NView基类所有扩展出的NView插件都应该从该类继承
  26. */
  27. @interface PDRNView : UIView
  28. /// @brief JavaScript执行环境
  29. @property (nonatomic, assign)PGPlugin *JSContext;
  30. /// @brief NView插件类别名称
  31. @property (nonatomic, copy) NSString *identity;
  32. @property (nonatomic, assign)BOOL preventLayout;
  33. @property (nonatomic, readonly)UIView *statusbarView;
  34. /// @brief NView唯一标识
  35. @property (nonatomic, copy) NSString *viewName;
  36. @property (nonatomic, copy) NSString *viewUUID;
  37. @property (nonatomic, copy) NSString *jsCallbackId;
  38. @property (nonatomic, copy) NSString *parent;
  39. @property (nonatomic, strong)UIViewController* viewController;
  40. @property (nonatomic, retain, readonly)NSDictionary* options;
  41. @property (nonatomic, assign)BOOL autoAppendStatusBar;
  42. @property(nonatomic, assign)PDRNViewBelongTo belongTo;
  43. @property(nonatomic, assign)NSUInteger featureMask;
  44. /**
  45. @brief 使用JS NViewOption创建NView 子类应该重写该方法实现初始化
  46. @param options NViewOption
  47. @return id NView对象
  48. */
  49. - (id)initWithOptions:(NSDictionary*)options;
  50. - (id)initWithOptions:(NSDictionary*)aOptios withJsContext:(PGPlugin*)jsContext;
  51. - (id)initWithFrame:(CGRect)frame withOptions:(NSDictionary*)aOptios withJsContext:(PGPlugin*)jsContext;
  52. - (void)setOptions:(NSDictionary *)options;
  53. - (void)createStatusbar;
  54. - (void)destoryStatusbar;
  55. - (void)setStatusbarColor:(UIColor*)bkColor;
  56. /**
  57. @brief 分发event事件
  58. @param evtName 事件名称
  59. @return 无
  60. */
  61. - (void)dispatchEvent:(NSString*)evtName;
  62. /**
  63. @brief NView从NWindow上移除时回调
  64. @param
  65. @return 无
  66. */
  67. - (void)onRemoveFormSuperView;
  68. - (void)onLayout_;
  69. - (NSData*)getMettics:( PGMethod*) pMethod;
  70. // 返回当前控件最小尺寸,可以是%,或者PX值,或者Auto
  71. - (NSDictionary*)GetMiniControllerSize:(int)nOri;
  72. - (void)CreateView:(PGMethod*)pMethod;
  73. - (NSString*)getObjectString;
  74. - (void)removeFormUIStrack;
  75. - (void)removeStyleForKey:(NSString*)key;
  76. - (void)setStyle:(id)value forKey:(NSString*)key;
  77. -(CGRect)measureSubViewRect:(CGRect)wBounds;
  78. - (void)addFeatureMask:(PDRNViewFeatureMask)mask;
  79. - (BOOL)hasFeatureMask:(PDRNViewFeatureMask)mask;
  80. - (CGFloat)getStatusBarHeight;
  81. - (BOOL)hasStatusBar;
  82. + (BOOL)isViewVisual:(UIView*)view;
  83. @end