Style cleanup - replace #define lists with enums
authorJoshua Leung <aligorith@gmail.com>
Tue, 9 Oct 2012 10:20:25 +0000 (10:20 +0000)
committerJoshua Leung <aligorith@gmail.com>
Tue, 9 Oct 2012 10:20:25 +0000 (10:20 +0000)
source/blender/makesdna/DNA_userdef_types.h

index 4c196a15db13af207e2d2f552d403e2860a14821..c10850d74e6853dbe4088a51ef4f3bc8410ac2e1 100644 (file)
@@ -49,11 +49,14 @@ struct ColorBand;
 #define MAX_STYLE_NAME 64
 
 /* default uifont_id offered by Blender */
 #define MAX_STYLE_NAME 64
 
 /* default uifont_id offered by Blender */
-#define UIFONT_DEFAULT 0
-/*#define UIFONT_BITMAP        1*/ /*UNUSED*/
-/* free slots */
-#define UIFONT_CUSTOM1 2
-#define UIFONT_CUSTOM2 3
+typedef enum eUIFont_ID {
+       UIFONT_DEFAULT  = 0,
+/*     UIFONT_BITMAP   = 1 */ /* UNUSED */
+       
+       /* free slots */
+       UIFONT_CUSTOM1  = 2,
+       UIFONT_CUSTOM2  = 3
+} eUIFont_ID;
 
 /* default fonts to load/initalize */
 /* first font is the default (index 0), others optional */
 
 /* default fonts to load/initalize */
 /* first font is the default (index 0), others optional */
@@ -64,7 +67,6 @@ typedef struct uiFont {
        short uifont_id;        /* own id */
        short r_to_l;           /* fonts that read from left to right */
        short pad;
        short uifont_id;        /* own id */
        short r_to_l;           /* fonts that read from left to right */
        short pad;
-       
 } uiFont;
 
 /* this state defines appearance of text */
 } uiFont;
 
 /* this state defines appearance of text */
@@ -79,13 +81,14 @@ typedef struct uiFontStyle {
        short align;                    /* text align hint */
        float shadowalpha;              /* total alpha */
        float shadowcolor;              /* 1 value, typically white or black anyway */
        short align;                    /* text align hint */
        float shadowalpha;              /* total alpha */
        float shadowcolor;              /* 1 value, typically white or black anyway */
-       
 } uiFontStyle;
 
 /* uiFontStyle->align */
 } uiFontStyle;
 
 /* uiFontStyle->align */
-#define UI_STYLE_TEXT_LEFT             0
-#define UI_STYLE_TEXT_CENTER   1
-#define UI_STYLE_TEXT_RIGHT            2
+typedef enum eFontStyle_Align {
+       UI_STYLE_TEXT_LEFT              = 0,
+       UI_STYLE_TEXT_CENTER    = 1,
+       UI_STYLE_TEXT_RIGHT             = 2
+} eFontStyle_Align;
 
 
 /* this is fed to the layout engine and widget code */
 
 
 /* this is fed to the layout engine and widget code */
@@ -145,7 +148,6 @@ typedef struct uiPanelColors {
 } uiPanelColors;
 
 typedef struct ThemeUI {
 } uiPanelColors;
 
 typedef struct ThemeUI {
-       
        /* Interface Elements (buttons, menus, icons) */
        uiWidgetColors wcol_regular, wcol_tool, wcol_text;
        uiWidgetColors wcol_radio, wcol_option, wcol_toggle;
        /* Interface Elements (buttons, menus, icons) */
        uiWidgetColors wcol_regular, wcol_tool, wcol_text;
        uiWidgetColors wcol_radio, wcol_option, wcol_toggle;
@@ -209,8 +211,8 @@ typedef struct ThemeSpace {
        char vertex[4], vertex_select[4];
        char edge[4], edge_select[4];
        char edge_seam[4], edge_sharp[4], edge_facesel[4], edge_crease[4];
        char vertex[4], vertex_select[4];
        char edge[4], edge_select[4];
        char edge_seam[4], edge_sharp[4], edge_facesel[4], edge_crease[4];
-       char face[4], face_select[4];   // solid faces
-       char face_dot[4];                               // selected color
+       char face[4], face_select[4];   /* solid faces */
+       char face_dot[4];                               /*  selected color */
        char extra_edge_len[4], extra_face_angle[4], extra_face_area[4], pad3[4];
        char normal[4];
        char vertex_normal[4];
        char extra_edge_len[4], extra_face_angle[4], extra_face_area[4], pad3[4];
        char normal[4];
        char vertex_normal[4];
@@ -224,7 +226,7 @@ typedef struct ThemeSpace {
        char handle_free[4], handle_auto[4], handle_vect[4], handle_align[4], handle_auto_clamped[4];
        char handle_sel_free[4], handle_sel_auto[4], handle_sel_vect[4], handle_sel_align[4], handle_sel_auto_clamped[4];
        
        char handle_free[4], handle_auto[4], handle_vect[4], handle_align[4], handle_auto_clamped[4];
        char handle_sel_free[4], handle_sel_auto[4], handle_sel_vect[4], handle_sel_align[4], handle_sel_auto_clamped[4];
        
-       char ds_channel[4], ds_subchannel[4]; // dopesheet
+       char ds_channel[4], ds_subchannel[4]; /* dopesheet */
        
        char console_output[4], console_input[4], console_info[4], console_error[4];
        char console_cursor[4];
        
        char console_output[4], console_input[4], console_info[4], console_error[4];
        char console_cursor[4];
@@ -232,10 +234,10 @@ typedef struct ThemeSpace {
        char vertex_size, outline_width, facedot_size;
        char noodle_curving;
 
        char vertex_size, outline_width, facedot_size;
        char noodle_curving;
 
-       char syntaxl[4], syntaxn[4], syntaxb[4]; // syntax for textwindow and nodes
+       char syntaxl[4], syntaxn[4], syntaxb[4]; /* syntax for textwindow and nodes */
        char syntaxv[4], syntaxc[4];
        
        char syntaxv[4], syntaxc[4];
        
-       char movie[4], movieclip[4], mask[4], image[4], scene[4], audio[4];             // for sequence editor
+       char movie[4], movieclip[4], mask[4], image[4], scene[4], audio[4];             /* for sequence editor */
        char effect[4], hpad0[4], transition[4], meta[4];
        char editmesh_active[4]; 
 
        char effect[4], hpad0[4], transition[4], meta[4];
        char editmesh_active[4]; 
 
@@ -287,8 +289,10 @@ typedef struct ThemeWireColor {
 } ThemeWireColor; 
 
 /* flags for ThemeWireColor */
 } ThemeWireColor; 
 
 /* flags for ThemeWireColor */
-#define TH_WIRECOLOR_CONSTCOLS (1<<0)
-#define TH_WIRECOLOR_TEXTCOLS  (1<<1)
+typedef enum eWireColor_Flags {
+       TH_WIRECOLOR_CONSTCOLS  = (1 << 0),
+       TH_WIRECOLOR_TEXTCOLS   = (1 << 1),
+} eWireColor_Flags;
 
 /* A theme */
 typedef struct bTheme {
 
 /* A theme */
 typedef struct bTheme {
@@ -321,7 +325,6 @@ typedef struct bTheme {
        /*ThemeWireColor tobj[20];*/
        
        int active_theme_area, pad;
        /*ThemeWireColor tobj[20];*/
        
        int active_theme_area, pad;
-       
 } bTheme;
 
 /* for the moment only the name. may want to store options with this later */
 } bTheme;
 
 /* for the moment only the name. may want to store options with this later */
@@ -345,8 +348,8 @@ typedef struct UserDef {
        char pythondir[768];
        char sounddir[768];
        char i18ndir[768];
        char pythondir[768];
        char sounddir[768];
        char i18ndir[768];
-       char image_editor[1024];        /* 1024 = FILE_MAX */
-       char anim_player[1024]; /* 1024 = FILE_MAX */
+       char image_editor[1024];    /* 1024 = FILE_MAX */
+       char anim_player[1024];     /* 1024 = FILE_MAX */
        int anim_player_preset;
        
        short v2d_min_gridsize;         /* minimum spacing between gridlines in View2D grids */
        int anim_player_preset;
        
        short v2d_min_gridsize;         /* minimum spacing between gridlines in View2D grids */
@@ -393,7 +396,7 @@ typedef struct UserDef {
        int memcachelimit;
        int prefetchframes;
        short frameserverport;
        int memcachelimit;
        int prefetchframes;
        short frameserverport;
-       short pad_rot_angle;    /*control the rotation step of the view when PAD2, PAD4, PAD6&PAD8 is use*/
+       short pad_rot_angle;    /* control the rotation step of the view when PAD2, PAD4, PAD6&PAD8 is use */
        short obcenter_dia;
        short rvisize;                  /* rotating view icon size */
        short rvibright;                /* rotating view icon brightness */
        short obcenter_dia;
        short rvisize;                  /* rotating view icon size */
        short rvibright;                /* rotating view icon brightness */
@@ -422,7 +425,7 @@ typedef struct UserDef {
        short autokey_mode;             /* autokeying mode */
        short autokey_flag;             /* flags for autokeying */
        
        short autokey_mode;             /* autokeying mode */
        short autokey_flag;             /* flags for autokeying */
        
-       short text_render, pad9;                /*options for text rendering*/
+       short text_render, pad9;                /* options for text rendering */
 
        struct ColorBand coba_weight;   /* from texture.h */
 
 
        struct ColorBand coba_weight;   /* from texture.h */
 
@@ -445,218 +448,258 @@ extern UserDef U; /* from blenkernel blender.c */
 /* ***************** USERDEF ****************** */
 
 /* userpref/section */
 /* ***************** USERDEF ****************** */
 
 /* userpref/section */
-#define USER_SECTION_INTERFACE 0
-#define USER_SECTION_EDIT              1
-#define USER_SECTION_FILE              2
-#define USER_SECTION_SYSTEM            3
-#define USER_SECTION_THEME             4
-#define USER_SECTION_INPUT             5
-#define USER_SECTION_ADDONS    6
+typedef enum eUserPref_Section {
+       USER_SECTION_INTERFACE  = 0,
+       USER_SECTION_EDIT               = 1,
+       USER_SECTION_FILE               = 2,
+       USER_SECTION_SYSTEM             = 3,
+       USER_SECTION_THEME              = 4,
+       USER_SECTION_INPUT              = 5,
+       USER_SECTION_ADDONS     = 6,
+} eUserPref_Section;
 
 /* flag */
 
 /* flag */
-#define USER_AUTOSAVE                  (1 << 0)
-/*#define USER_AUTOGRABGRID            (1 << 1)        deprecated */
-/*#define USER_AUTOROTGRID             (1 << 2)        deprecated */
-/*#define USER_AUTOSIZEGRID            (1 << 3)        deprecated */
-#define USER_SCENEGLOBAL               (1 << 4)
-#define USER_TRACKBALL                 (1 << 5)
-/*#define USER_DUPLILINK               (1 << 6)        deprecated */
-/*#define USER_FSCOLLUM                        (1 << 7)        deprecated */
-#define USER_MAT_ON_OB                 (1 << 8)
-/*#define USER_NO_CAPSLOCK             (1 << 9)*/ /* not used anywhere */
-/*#define USER_VIEWMOVE                        (1 << 10)*/ /* not used anywhere */
-#define USER_TOOLTIPS                  (1 << 11)
-#define USER_TWOBUTTONMOUSE            (1 << 12)
-#define USER_NONUMPAD                  (1 << 13)
-#define USER_LMOUSESELECT              (1 << 14)
-#define USER_FILECOMPRESS              (1 << 15)
-#define USER_SAVE_PREVIEWS             (1 << 16)
-#define USER_CUSTOM_RANGE              (1 << 17)
-#define USER_ADD_EDITMODE              (1 << 18)
-#define USER_ADD_VIEWALIGNED   (1 << 19)
-#define USER_RELPATHS                  (1 << 20)
-#define USER_RELEASECONFIRM            (1 << 21)
-#define USER_SCRIPT_AUTOEXEC_DISABLE   (1 << 22)
-#define USER_FILENOUI                  (1 << 23)
-#define USER_NONEGFRAMES               (1 << 24)
-#define USER_TXT_TABSTOSPACES_DISABLE  (1 << 25)
-#define USER_TOOLTIPS_PYTHON    (1 << 26)
-
+typedef enum eUserPref_Flag {
+       USER_AUTOSAVE                   = (1 << 0),
+/*     USER_AUTOGRABGRID               = (1 << 1),     deprecated */
+/*     USER_AUTOROTGRID                = (1 << 2),     deprecated */
+/*     USER_AUTOSIZEGRID               = (1 << 3),     deprecated */
+       USER_SCENEGLOBAL                = (1 << 4),
+       USER_TRACKBALL                  = (1 << 5),
+/*     USER_DUPLILINK          = (1 << 6),     deprecated */
+/*     USER_FSCOLLUM                   = (1 << 7),     deprecated */
+       USER_MAT_ON_OB                  = (1 << 8),
+/*     USER_NO_CAPSLOCK                = (1 << 9), */  /* not used anywhere */
+/*     USER_VIEWMOVE                   = (1 << 10), */ /* not used anywhere */
+       USER_TOOLTIPS                   = (1 << 11),
+       USER_TWOBUTTONMOUSE             = (1 << 12),
+       USER_NONUMPAD                   = (1 << 13),
+       USER_LMOUSESELECT               = (1 << 14),
+       USER_FILECOMPRESS               = (1 << 15),
+       USER_SAVE_PREVIEWS              = (1 << 16),
+       USER_CUSTOM_RANGE               = (1 << 17),
+       USER_ADD_EDITMODE               = (1 << 18),
+       USER_ADD_VIEWALIGNED    = (1 << 19),
+       USER_RELPATHS                   = (1 << 20),
+       USER_RELEASECONFIRM             = (1 << 21),
+       USER_SCRIPT_AUTOEXEC_DISABLE    = (1 << 22),
+       USER_FILENOUI                   = (1 << 23),
+       USER_NONEGFRAMES                = (1 << 24),
+       USER_TXT_TABSTOSPACES_DISABLE   = (1 << 25),
+       USER_TOOLTIPS_PYTHON    = (1 << 26),
+} eUserPref_Flag;
+       
 /* helper macro for checking frame clamping */
 #define FRAMENUMBER_MIN_CLAMP(cfra)  {                                        \
        if ((U.flag & USER_NONEGFRAMES) && (cfra < 0))                            \
                cfra = 0;                                                             \
        } (void)0
 
 /* helper macro for checking frame clamping */
 #define FRAMENUMBER_MIN_CLAMP(cfra)  {                                        \
        if ((U.flag & USER_NONEGFRAMES) && (cfra < 0))                            \
                cfra = 0;                                                             \
        } (void)0
 
-/* viewzom */
-#define USER_ZOOM_CONT                 0
-#define USER_ZOOM_SCALE                        1
-#define USER_ZOOM_DOLLY                        2
+/* viewzoom */
+typedef enum eViewZoom_Style {
+       USER_ZOOM_CONT                  = 0,
+       USER_ZOOM_SCALE                 = 1,
+       USER_ZOOM_DOLLY                 = 2
+} eViewZoom_Style;
 
 /* uiflag */
 
 /* uiflag */
-// old flag for #define        USER_KEYINSERTACT               (1 << 0)
-// old flag for #define        USER_KEYINSERTOBJ               (1 << 1)
-#define USER_WHEELZOOMDIR              (1 << 2)
-#define USER_FILTERFILEEXTS            (1 << 3)
-#define USER_DRAWVIEWINFO              (1 << 4)
-#define USER_PLAINMENUS                        (1 << 5)                // old EVTTOCONSOLE print ghost events, here for tuhopuu compat. --phase
-                                                               // old flag for hide pulldown was here 
-/*#define USER_FLIPFULLSCREEN          (1 << 7)*/ /* deprecated */
-#define USER_ALLWINCODECS              (1 << 8)
-#define USER_MENUOPENAUTO              (1 << 9)
-#define USER_ZBUF_CURSOR               (1 << 10)
-#define USER_AUTOPERSP                 (1 << 11)
-#define USER_LOCKAROUND        (1 << 12)
-#define USER_GLOBALUNDO        (1 << 13)
-#define USER_ORBIT_SELECTION   (1 << 14)
-#define USER_ZBUF_ORBIT                        (1 << 15)
-#define USER_HIDE_DOT                  (1 << 16)
-#define USER_SHOW_ROTVIEWICON  (1 << 17)
-#define USER_SHOW_VIEWPORTNAME (1 << 18)
-#define USER_CAM_LOCK_NO_PARENT        (1 << 19)
-#define USER_ZOOM_TO_MOUSEPOS  (1 << 20)
-#define USER_SHOW_FPS                  (1 << 21)
-#define USER_MMB_PASTE                 (1 << 22)
-#define USER_MENUFIXEDORDER            (1 << 23)
-#define USER_CONTINUOUS_MOUSE  (1 << 24)
-#define USER_ZOOM_INVERT               (1 << 25)
-#define USER_ZOOM_HORIZ                        (1 << 26) /* for CONTINUE and DOLLY zoom */
-#define USER_SPLASH_DISABLE            (1 << 27)
-#define USER_HIDE_RECENT               (1 << 28)
-#define USER_SHOW_THUMBNAILS   (1 << 29)
-#define USER_QUIT_PROMPT               (1 << 30)
+typedef enum eUserpref_UI_Flag {
+       /* flags 0 and 1 were old flags (for autokeying) that aren't used anymore */
+       USER_WHEELZOOMDIR               = (1 << 2),
+       USER_FILTERFILEEXTS             = (1 << 3),
+       USER_DRAWVIEWINFO               = (1 << 4),
+       USER_PLAINMENUS                 = (1 << 5),
+       /* flags 6 and 7 were old flags that are no-longer used */
+       USER_ALLWINCODECS               = (1 << 8),
+       USER_MENUOPENAUTO               = (1 << 9),
+       USER_ZBUF_CURSOR                = (1 << 10),
+       USER_AUTOPERSP                  = (1 << 11),
+       USER_LOCKAROUND         = (1 << 12),
+       USER_GLOBALUNDO         = (1 << 13),
+       USER_ORBIT_SELECTION    = (1 << 14),
+       USER_ZBUF_ORBIT                 = (1 << 15),
+       USER_HIDE_DOT                   = (1 << 16),
+       USER_SHOW_ROTVIEWICON   = (1 << 17),
+       USER_SHOW_VIEWPORTNAME  = (1 << 18),
+       USER_CAM_LOCK_NO_PARENT = (1 << 19),
+       USER_ZOOM_TO_MOUSEPOS   = (1 << 20),
+       USER_SHOW_FPS                   = (1 << 21),
+       USER_MMB_PASTE                  = (1 << 22),
+       USER_MENUFIXEDORDER             = (1 << 23),
+       USER_CONTINUOUS_MOUSE   = (1 << 24),
+       USER_ZOOM_INVERT                = (1 << 25),
+       USER_ZOOM_HORIZ                 = (1 << 26), /* for CONTINUE and DOLLY zoom */
+       USER_SPLASH_DISABLE             = (1 << 27),
+       USER_HIDE_RECENT                = (1 << 28),
+       USER_SHOW_THUMBNAILS    = (1 << 29),
+       USER_QUIT_PROMPT                = (1 << 30)
+} eUserpref_UI_Flag;
 
 /* Auto-Keying mode */
 
 /* Auto-Keying mode */
+typedef enum eAutokey_Mode {
        /* AUTOKEY_ON is a bitflag */
        /* AUTOKEY_ON is a bitflag */
-#define        AUTOKEY_ON                              1
+       AUTOKEY_ON             = 1,
+       
        /* AUTOKEY_ON + 2**n...  (i.e. AUTOKEY_MODE_NORMAL = AUTOKEY_ON + 2) to preserve setting, even when autokey turned off  */
        /* AUTOKEY_ON + 2**n...  (i.e. AUTOKEY_MODE_NORMAL = AUTOKEY_ON + 2) to preserve setting, even when autokey turned off  */
-#define                AUTOKEY_MODE_NORMAL             3
-#define                AUTOKEY_MODE_EDITKEYS   5
+       AUTOKEY_MODE_NORMAL    = 3,
+       AUTOKEY_MODE_EDITKEYS  = 5
+} eAutokey_Mode;
 
 /* Auto-Keying flag
  * U.autokey_flag (not strictly used when autokeying only - is also used when keyframing these days)
  * note: AUTOKEY_FLAG_* is used with a macro, search for lines like IS_AUTOKEY_FLAG(INSERTAVAIL)
  */
 
 /* Auto-Keying flag
  * U.autokey_flag (not strictly used when autokeying only - is also used when keyframing these days)
  * note: AUTOKEY_FLAG_* is used with a macro, search for lines like IS_AUTOKEY_FLAG(INSERTAVAIL)
  */
-#define                AUTOKEY_FLAG_INSERTAVAIL        (1<<0)
-#define                AUTOKEY_FLAG_INSERTNEEDED       (1<<1)
-#define                AUTOKEY_FLAG_AUTOMATKEY         (1<<2)
-#define                AUTOKEY_FLAG_XYZ2RGB            (1<<3)
-
-/* toolsettings->autokey_flag */
-#define        AUTOKEY_FLAG_ONLYKEYINGSET      (1<<6)
-#define        AUTOKEY_FLAG_NOWARNING          (1<<7)
-#define        ANIMRECORD_FLAG_WITHNLA         (1<<10)
+typedef enum eAutokey_Flag {
+       AUTOKEY_FLAG_INSERTAVAIL        = (1 << 0),
+       AUTOKEY_FLAG_INSERTNEEDED       = (1 << 1),
+       AUTOKEY_FLAG_AUTOMATKEY         = (1 << 2),
+       AUTOKEY_FLAG_XYZ2RGB            = (1 << 3),
+       
+       /* toolsettings->autokey_flag */
+       AUTOKEY_FLAG_ONLYKEYINGSET      = (1 << 6),
+       AUTOKEY_FLAG_NOWARNING          = (1 << 7),
+       ANIMRECORD_FLAG_WITHNLA         = (1 << 10),
+} eAutokey_Flag;
 
 /* transopts */
 
 /* transopts */
-#define        USER_TR_TOOLTIPS                (1 << 0)
-#define        USER_TR_IFACE                   (1 << 1)
-/*#define USER_TR_MENUS                        (1 << 2)        deprecated*/
-/*#define USER_TR_FILESELECT   (1 << 3)        deprecated*/
-/*#define USER_TR_TEXTEDIT             (1 << 4)        deprecated*/
-#define USER_DOTRANSLATE               (1 << 5)
-#define USER_USETEXTUREFONT            (1 << 6)
-/*#define CONVERT_TO_UTF8                      (1 << 7)        deprecated*/
+typedef enum eUserpref_Translation_Flags {
+       USER_TR_TOOLTIPS                = (1 << 0),
+       USER_TR_IFACE                   = (1 << 1),
+/*     USER_TR_MENUS                   = (1 << 2)      deprecated */
+/*     USER_TR_FILESELECT      = (1 << 3)      deprecated */
+/*     USER_TR_TEXTEDIT                = (1 << 4)      deprecated */
+       USER_DOTRANSLATE                = (1 << 5),
+       USER_USETEXTUREFONT             = (1 << 6),
+/*     CONVERT_TO_UTF8                 = (1 << 7)      deprecated */
+} eUserpref_Translation_Flags;
 
 /* dupflag */
 
 /* dupflag */
-#define USER_DUP_MESH                  (1 << 0)
-#define USER_DUP_CURVE                 (1 << 1)
-#define USER_DUP_SURF                  (1 << 2)
-#define USER_DUP_FONT                  (1 << 3)
-#define USER_DUP_MBALL                 (1 << 4)
-#define USER_DUP_LAMP                  (1 << 5)
-#define USER_DUP_IPO                   (1 << 6)
-#define USER_DUP_MAT                   (1 << 7)
-#define USER_DUP_TEX                   (1 << 8)
-#define        USER_DUP_ARM                    (1 << 9)
-#define        USER_DUP_ACT                    (1 << 10)
-#define        USER_DUP_PSYS                   (1 << 11)
+typedef enum eDupli_ID_Flags {
+       USER_DUP_MESH                   = (1 << 0),
+       USER_DUP_CURVE                  = (1 << 1),
+       USER_DUP_SURF                   = (1 << 2),
+       USER_DUP_FONT                   = (1 << 3),
+       USER_DUP_MBALL                  = (1 << 4),
+       USER_DUP_LAMP                   = (1 << 5),
+       USER_DUP_IPO                    = (1 << 6),
+       USER_DUP_MAT                    = (1 << 7),
+       USER_DUP_TEX                    = (1 << 8),
+       USER_DUP_ARM                    = (1 << 9),
+       USER_DUP_ACT                    = (1 << 10),
+       USER_DUP_PSYS                   = (1 << 11)
+} eDupli_ID_Flags;
 
 /* gameflags */
 
 /* gameflags */
-// #define USER_DEPRECATED_FLAG        1
-// #define USER_DISABLE_SOUND          2 deprecated, don't use without checking for
-// backwards compatibilty in do_versions!
-#define USER_DISABLE_MIPMAP            4
-#define USER_DISABLE_VBO               8
-#define USER_DISABLE_AA                        16
+typedef enum eOpenGL_RenderingOptions {
+       /* USER_DEPRECATED_FLAG = (1 << 0), */
+       /* USER_DISABLE_SOUND           = (1 << 1), */ /* deprecated, don't use without checking for */
+                                            /* backwards compatibilty in do_versions! */
+       USER_DISABLE_MIPMAP             = (1 << 2),
+       USER_DISABLE_VBO                = (1 << 3),
+       USER_DISABLE_AA                 = (1 << 4),
+} eOpenGL_RenderingOptions;
 
 /* wm draw method */
 
 /* wm draw method */
-#define USER_DRAW_TRIPLE               0
-#define USER_DRAW_OVERLAP              1
-#define USER_DRAW_FULL                 2
-#define USER_DRAW_AUTOMATIC            3
-#define USER_DRAW_OVERLAP_FLIP 4
-
-/* text draw options*/
-#define USER_TEXT_DISABLE_AA   (1 << 0)
+typedef enum eWM_DrawMethod {
+       USER_DRAW_TRIPLE                = 0,
+       USER_DRAW_OVERLAP               = 1,
+       USER_DRAW_FULL                  = 2,
+       USER_DRAW_AUTOMATIC             = 3,
+       USER_DRAW_OVERLAP_FLIP  = 4,
+} eWM_DrawMethod;
+
+/* text draw options */
+typedef enum eText_Draw_Options {
+       USER_TEXT_DISABLE_AA    = (1 << 0),
+} eText_Draw_Options;
 
 /* tw_flag (transform widget) */
 
 /* gp_settings (Grease Pencil Settings) */
 
 /* tw_flag (transform widget) */
 
 /* gp_settings (Grease Pencil Settings) */
-#define GP_PAINT_DOSMOOTH              (1<<0)
-#define GP_PAINT_DOSIMPLIFY            (1<<1)
+typedef enum eGP_UserdefSettings {
+       GP_PAINT_DOSMOOTH               = (1 << 0),
+       GP_PAINT_DOSIMPLIFY             = (1 << 1),
+} eGP_UserdefSettings;
 
 /* color picker types */
 
 /* color picker types */
-#define USER_CP_CIRCLE         0
-#define USER_CP_SQUARE_SV      1
-#define USER_CP_SQUARE_HS      2
-#define USER_CP_SQUARE_HV      3
+typedef enum eColorPicker_Types {
+       USER_CP_CIRCLE          = 0,
+       USER_CP_SQUARE_SV       = 1,
+       USER_CP_SQUARE_HS       = 2,
+       USER_CP_SQUARE_HV       = 3,
+} eColorPicker_Types;
 
 /* timecode display styles */
 
 /* timecode display styles */
+typedef enum eTimecodeStyles {
        /* as little info as is necessary to show relevant info
         * with '+' to denote the frames 
         * i.e. HH:MM:SS+FF, MM:SS+FF, SS+FF, or MM:SS
         */
        /* as little info as is necessary to show relevant info
         * with '+' to denote the frames 
         * i.e. HH:MM:SS+FF, MM:SS+FF, SS+FF, or MM:SS
         */
-#define USER_TIMECODE_MINIMAL          0
+       USER_TIMECODE_MINIMAL           = 0,
+       
        /* reduced SMPTE - (HH:)MM:SS:FF */
        /* reduced SMPTE - (HH:)MM:SS:FF */
-#define USER_TIMECODE_SMPTE_MSF                1
+       USER_TIMECODE_SMPTE_MSF         = 1,
+       
        /* full SMPTE - HH:MM:SS:FF */
        /* full SMPTE - HH:MM:SS:FF */
-#define USER_TIMECODE_SMPTE_FULL       2
+       USER_TIMECODE_SMPTE_FULL        = 2,
+       
        /* milliseconds for sub-frames - HH:MM:SS.sss */
        /* milliseconds for sub-frames - HH:MM:SS.sss */
-#define USER_TIMECODE_MILLISECONDS     3
+       USER_TIMECODE_MILLISECONDS      = 3,
+       
        /* seconds only */
        /* seconds only */
-#define USER_TIMECODE_SECONDS_ONLY     4
+       USER_TIMECODE_SECONDS_ONLY      = 4,
+} eTimecodeStyles;
 
 /* theme drawtypes */
 
 /* theme drawtypes */
-#define TH_MINIMAL     0
-#define TH_ROUNDSHADED 1
-#define TH_ROUNDED     2
-#define TH_OLDSKOOL    3
-#define TH_SHADED      4
+/* XXX: These are probably only for the old UI engine? */
+typedef enum eTheme_DrawTypes {
+       TH_MINIMAL      = 0,
+       TH_ROUNDSHADED  = 1,
+       TH_ROUNDED      = 2,
+       TH_OLDSKOOL     = 3,
+       TH_SHADED       = 4
+} eTheme_DrawTypes;
 
 /* ndof_flag (3D mouse options) */
 
 /* ndof_flag (3D mouse options) */
-#define NDOF_SHOW_GUIDE     (1 << 0)
-#define NDOF_FLY_HELICOPTER (1 << 1)
-#define NDOF_LOCK_HORIZON   (1 << 2)
-/* the following might not need to be saved between sessions,
- * but they do need to live somewhere accessible... */
-#define NDOF_SHOULD_PAN     (1 << 3)
-#define NDOF_SHOULD_ZOOM    (1 << 4)
-#define NDOF_SHOULD_ROTATE  (1 << 5)
-/* orbit navigation modes
- * only two options, so it's sort of a hybrid bool/enum
- * if ((U.ndof_flag & NDOF_ORBIT_MODE) == NDOF_OM_OBJECT)... */
-
-// #define NDOF_ORBIT_MODE     (1 << 6)
-// #define NDOF_OM_TARGETCAMERA 0
-// #define NDOF_OM_OBJECT      NDOF_ORBIT_MODE
-
-/* actually... users probably don't care about what the mode
- * is called, just that it feels right */
-/* zoom is up/down if this flag is set (otherwise forward/backward) */
-#define NDOF_ZOOM_UPDOWN (1 << 7)
-#define NDOF_ZOOM_INVERT (1 << 8)
-#define NDOF_ROTATE_INVERT_AXIS (1 << 9)
-#define NDOF_TILT_INVERT_AXIS (1 << 10)
-#define NDOF_ROLL_INVERT_AXIS (1 << 11)
-#define NDOF_PANX_INVERT_AXIS (1 << 12)
-#define NDOF_PANY_INVERT_AXIS (1 << 13)
-#define NDOF_PANZ_INVERT_AXIS (1 << 14)
-#define NDOF_TURNTABLE (1 << 15)
+typedef enum eNdof_Flag {
+       NDOF_SHOW_GUIDE     = (1 << 0),
+       NDOF_FLY_HELICOPTER = (1 << 1),
+       NDOF_LOCK_HORIZON   = (1 << 2),
+
+       /* the following might not need to be saved between sessions,
+        * but they do need to live somewhere accessible... */
+       NDOF_SHOULD_PAN     = (1 << 3),
+       NDOF_SHOULD_ZOOM    = (1 << 4),
+       NDOF_SHOULD_ROTATE  = (1 << 5),
+
+       /* orbit navigation modes
+        * only two options, so it's sort of a hybrid bool/enum
+        * if ((U.ndof_flag & NDOF_ORBIT_MODE) == NDOF_OM_OBJECT)... */
+
+       // NDOF_ORBIT_MODE     = (1 << 6),
+       // #define NDOF_OM_TARGETCAMERA 0
+       // #define NDOF_OM_OBJECT      NDOF_ORBIT_MODE
+
+       /* actually... users probably don't care about what the mode
+        * is called, just that it feels right */
+       /* zoom is up/down if this flag is set (otherwise forward/backward) */
+       NDOF_ZOOM_UPDOWN        = (1 << 7),
+       NDOF_ZOOM_INVERT        = (1 << 8),
+       NDOF_ROTATE_INVERT_AXIS = (1 << 9),
+       NDOF_TILT_INVERT_AXIS   = (1 << 10),
+       NDOF_ROLL_INVERT_AXIS   = (1 << 11),
+       NDOF_PANX_INVERT_AXIS   = (1 << 12),
+       NDOF_PANY_INVERT_AXIS   = (1 << 13),
+       NDOF_PANZ_INVERT_AXIS   = (1 << 14),
+       NDOF_TURNTABLE          = (1 << 15),
+} eNdof_Flag;
 
 /* compute_device_type */
 
 /* compute_device_type */
-#define USER_COMPUTE_DEVICE_NONE       0
-#define USER_COMPUTE_DEVICE_OPENCL     1
-#define USER_COMPUTE_DEVICE_CUDA       2
+typedef enum eCompute_Device_Type {
+       USER_COMPUTE_DEVICE_NONE        = 0,
+       USER_COMPUTE_DEVICE_OPENCL      = 1,
+       USER_COMPUTE_DEVICE_CUDA        = 2,
+} eCompute_Device_Type;
 
 #ifdef __cplusplus
 }
 
 #ifdef __cplusplus
 }