#define GNT_WIDGET_FLAGS(obj) (GNT_WIDGET(obj)->priv.flags) #define GNT_WIDGET_SET_FLAGS(obj, flags) (GNT_WIDGET_FLAGS(obj) |= flags) #define GNT_WIDGET_UNSET_FLAGS(obj, flags) (GNT_WIDGET_FLAGS(obj) &= ~(flags)) GNT_WIDGET(userList)->priv.flags = GNT_WIDGET_NO_BORDER; //WORKS GNT_WIDGET_FLAGS(userList) |= GNT_WIDGET_NO_BORDER; //error: invalid conversion from 'int' to 'GntWidgetFlags' GNT_WIDGET_SET_FLAGS(userList, GNT_WIDGET_NO_BORDER); //error: invalid conversion from 'int' to 'GntWidgetFlags' typedef enum _GnWidgetFlags { ... GNT_WIDGET_NO_BORDER = 1 << 3, ... } GntWidgetFlags;