diff options
| author | Ganesh Viswanathan <dev@genotrance.com> | 2020-03-23 14:02:40 -0500 |
|---|---|---|
| committer | Ganesh Viswanathan <dev@genotrance.com> | 2020-03-23 14:02:40 -0500 |
| commit | cadf16293d40bcd265d1bf8f366d351ba354a6f9 (patch) | |
| tree | 750ef0a722a2c08d2af14c4802af69a2999f724f /tests | |
| parent | 6d1c428b6ebea47c7956c8580c26a810a9250db6 (diff) | |
| download | nimterop-cadf16293d40bcd265d1bf8f366d351ba354a6f9.tar.gz nimterop-cadf16293d40bcd265d1bf8f366d351ba354a6f9.zip | |
ast2 enum support
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/include/tast2.h | 96 | ||||
| -rw-r--r-- | tests/tast2.nim | 21 |
2 files changed, 115 insertions, 2 deletions
diff --git a/tests/include/tast2.h b/tests/include/tast2.h index e9339ae..b867020 100644 --- a/tests/include/tast2.h +++ b/tests/include/tast2.h @@ -43,6 +43,54 @@ typedef struct A22 { int **f1; int *f2[123+132]; } A22; union U1 {int f1; float f2; }; typedef union U2 { int **f1; int abc[123+132]; } U2; +// Enums + +// Issue #159 +#define NK_FLAG(x) (1 << (x)) +enum nk_panel_type { + NK_PANEL_NONE = 0, + NK_PANEL_WINDOW = NK_FLAG(0), + NK_PANEL_GROUP = NK_FLAG(1), + NK_PANEL_POPUP = NK_FLAG(2), + NK_PANEL_CONTEXTUAL = NK_FLAG(4), + NK_PANEL_COMBO = NK_FLAG(5), + NK_PANEL_MENU = NK_FLAG(6), + NK_PANEL_TOOLTIP = NK_FLAG(7) +}; +enum nk_panel_set { + NK_PANEL_SET_NONBLOCK = NK_PANEL_CONTEXTUAL|NK_PANEL_COMBO|NK_PANEL_MENU|NK_PANEL_TOOLTIP, + NK_PANEL_SET_POPUP = NK_PANEL_SET_NONBLOCK|NK_PANEL_POPUP, + NK_PANEL_SET_SUB = NK_PANEL_SET_POPUP|NK_PANEL_GROUP +}; + +// Issue #171 +typedef enum VSColorFamily { + /* all planar formats */ + cmGray = 1000000, + cmRGB = 2000000, + cmYUV = 3000000, + cmYCoCg = 4000000, + /* special for compatibility */ + cmCompat = 9000000 +} VSColorFamily; + +typedef enum VSPresetFormat { + pfNone = 0, + + pfGray8 = cmGray + 10, + pfGray16, + + pfYUV420P8 = cmYUV + 10, + pfYUV422P8, + + pfRGB24 = cmRGB + 10, + pfRGB27, + /* test */ + + pfCompatBGR32 = cmCompat + 10, + pfCompatYUY2 +} VSPresetFormat; + // Anonymous //typedef struct { char a1; }; @@ -101,6 +149,54 @@ typedef struct A22 { int **f1; int *f2[123+132]; } A22; union U1 {int f1; float f2; }; typedef union U2 { int **f1; int abc[123+132]; } U2; +// Enums + +// Issue #159 +#define NK_FLAG(x) (1 << (x)) +enum nk_panel_type { + NK_PANEL_NONE = 0, + NK_PANEL_WINDOW = NK_FLAG(0), + NK_PANEL_GROUP = NK_FLAG(1), + NK_PANEL_POPUP = NK_FLAG(2), + NK_PANEL_CONTEXTUAL = NK_FLAG(4), + NK_PANEL_COMBO = NK_FLAG(5), + NK_PANEL_MENU = NK_FLAG(6), + NK_PANEL_TOOLTIP = NK_FLAG(7) +}; +enum nk_panel_set { + NK_PANEL_SET_NONBLOCK = NK_PANEL_CONTEXTUAL|NK_PANEL_COMBO|NK_PANEL_MENU|NK_PANEL_TOOLTIP, + NK_PANEL_SET_POPUP = NK_PANEL_SET_NONBLOCK|NK_PANEL_POPUP, + NK_PANEL_SET_SUB = NK_PANEL_SET_POPUP|NK_PANEL_GROUP +}; + +// Issue #171 +typedef enum VSColorFamily { + /* all planar formats */ + cmGray = 1000000, + cmRGB = 2000000, + cmYUV = 3000000, + cmYCoCg = 4000000, + /* special for compatibility */ + cmCompat = 9000000 +} VSColorFamily; + +typedef enum VSPresetFormat { + pfNone = 0, + + pfGray8 = cmGray + 10, + pfGray16, + + pfYUV420P8 = cmYUV + 10, + pfYUV422P8, + + pfRGB24 = cmRGB + 10, + pfRGB27, + /* test */ + + pfCompatBGR32 = cmCompat + 10, + pfCompatYUY2 +} VSPresetFormat; + // Anonymous //typedef struct { char a1; }; diff --git a/tests/tast2.nim b/tests/tast2.nim index 6465acc..914d40f 100644 --- a/tests/tast2.nim +++ b/tests/tast2.nim @@ -12,7 +12,7 @@ cOverride: type A1* = A0 -cImport("include/tast2.h", flags="-d -f:ast2") +cImport("include/tast2.h", flags="-d -f:ast2 -ENK_") proc testFields(t: typedesc, fields: Table[string, string] = initTable[string, string]()) = var @@ -86,4 +86,21 @@ assert U1 is object assert sizeof(U1) == sizeof(cfloat) assert U2 is object -assert sizeof(U2) == 256 * sizeof(cint)
\ No newline at end of file +assert sizeof(U2) == 256 * sizeof(cint) + +assert PANEL_WINDOW == 1 +assert PANEL_GROUP == 2 +assert PANEL_POPUP == 4 +assert PANEL_CONTEXTUAL == 16 +assert PANEL_COMBO == 32 +assert PANEL_MENU == 64 +assert PANEL_TOOLTIP == 128 +assert PANEL_SET_NONBLOCK == 240 +assert PANEL_SET_POPUP == 244 +assert PANEL_SET_SUB == 246 + +assert cmGray == 1000000 +assert pfGray16 == 1000011 +assert pfYUV422P8 == pfYUV420P8 + 1 +assert pfRGB27 == cmRGB.VSPresetFormat + 11 +assert pfCompatYUY2 == pfCompatBGR32 + 1
\ No newline at end of file |
