The enum values, taken from another enum from the C header, turns into <null> in .gir.
The enum value, taken from another enum from the C header, turns into null after using g-ir-compiler. I redefine keycodes enum in order to apply gobject introspection and use it from the shared library.
In the original C header, it is defined like this:
enum
{
SDLK_UNKNOWN = 0,
SDLK_RETURN = '\r',
SDLK_ESCAPE = '\033',
SDLK_BACKSPACE = '\b',
SDLK_TAB = '\t',
SDLK_SPACE = ' ',
...
I defined new enum in my project like this (Vala):
public enum Keycode {
UNKNOWN = SDL.Input.Keycode.UNKNOWN,
RETURN = SDL.Input.Keycode.RETURN,
ESCAPE = SDL.Input.Keycode.ESCAPE,
BACKSPACE = SDL.Input.Keycode.BACKSPACE,
TAB = SDL.Input.Keycode.TAB,
SPACE = SDL.Input.Keycode.SPACE,
EXCLAIM = SDL.Input.Keycode.EXCLAIM,
After compilation it looks like this:
typedef enum {
BODHI_INPUT_KEYCODE_UNKNOWN = SDLK_UNKNOWN,
BODHI_INPUT_KEYCODE_RETURN = SDLK_RETURN,
BODHI_INPUT_KEYCODE_ESCAPE = SDLK_ESCAPE,
BODHI_INPUT_KEYCODE_BACKSPACE = SDLK_BACKSPACE,
BODHI_INPUT_KEYCODE_TAB = SDLK_TAB,
BODHI_INPUT_KEYCODE_SPACE = SDLK_SPACE,
BODHI_INPUT_KEYCODE_EXCLAIM = SDLK_EXCLAIM,
And it works from Vala. But not works from Python, JS, Lua etc because in GIR it looks like:
<enumeration name="InputKeycode" c:type="BodhiInputKeycode" glib:type-name="BodhiInputKeycode" glib:get-type="bodhi_input_keycode_get_type">
<member name="unknown" c:identifier="BODHI_INPUT_KEYCODE_UNKNOWN" value="(null)"/>
<member name="return" c:identifier="BODHI_INPUT_KEYCODE_RETURN" value="(null)"/>
<member name="escape" c:identifier="BODHI_INPUT_KEYCODE_ESCAPE" value="(null)"/>
<member name="backspace" c:identifier="BODHI_INPUT_KEYCODE_BACKSPACE" value="(null)"/>
<member name="tab" c:identifier="BODHI_INPUT_KEYCODE_TAB" value="(null)"/>
<member name="space" c:identifier="BODHI_INPUT_KEYCODE_SPACE" value="(null)"/>
<member name="exclaim" c:identifier="BODHI_INPUT_KEYCODE_EXCLAIM" value="(null)"/>
You can use my project for tests: Bodhi Scripts was placed in examples folder