Blender V2.61 - r43446

DNA_userdef_types.h

Go to the documentation of this file.
00001 /*
00002  * ***** BEGIN GPL LICENSE BLOCK *****
00003  *
00004  * This program is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU General Public License
00006  * as published by the Free Software Foundation; either version 2
00007  * of the License, or (at your option) any later version.
00008  *
00009  * This program is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  * GNU General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU General Public License
00015  * along with this program; if not, write to the Free Software Foundation,
00016  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00017  *
00018  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
00019  * All rights reserved.
00020  *
00021  * The Original Code is: all of this file.
00022  *
00023  * Contributor(s): none yet.
00024  *
00025  * ***** END GPL LICENSE BLOCK *****
00026  */
00027 
00034 #ifndef DNA_USERDEF_TYPES_H
00035 #define DNA_USERDEF_TYPES_H
00036 
00037 #include "DNA_listBase.h"
00038 #include "DNA_texture_types.h" /* ColorBand */
00039 
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043 
00044 /* themes; defines in BIF_resource.h */
00045 struct ColorBand;
00046 
00047 /* ************************ style definitions ******************** */
00048 
00049 #define MAX_STYLE_NAME  64
00050 #define MAX_FONT_NAME   256
00051 
00052 /* default uifont_id offered by Blender */
00053 #define UIFONT_DEFAULT  0
00054 /*#define UIFONT_BITMAP 1*/ /*UNUSED*/
00055 /* free slots */
00056 #define UIFONT_CUSTOM1  2
00057 #define UIFONT_CUSTOM2  3
00058 
00059 /* default fonts to load/initalize */
00060 /* first font is the default (index 0), others optional */
00061 typedef struct uiFont {
00062     struct uiFont *next, *prev;
00063     char filename[256];
00064     short blf_id;       /* from blfont lib */
00065     short uifont_id;    /* own id */
00066     short r_to_l;       /* fonts that read from left to right */
00067     short pad;
00068     
00069 } uiFont;
00070 
00071 /* this state defines appearance of text */
00072 typedef struct uiFontStyle {
00073     short uifont_id;        /* saved in file, 0 is default */
00074     short points;           /* actual size depends on 'global' dpi */
00075     short kerning;          /* unfitted or default kerning value. */
00076     char pad[6];
00077     short italic, bold;     /* style hint */
00078     short shadow;           /* value is amount of pixels blur */
00079     short shadx, shady;     /* shadow offset in pixels */
00080     short align;            /* text align hint */
00081     float shadowalpha;      /* total alpha */
00082     float shadowcolor;      /* 1 value, typically white or black anyway */
00083     
00084 } uiFontStyle;
00085 
00086 /* uiFontStyle->align */
00087 #define UI_STYLE_TEXT_LEFT      0
00088 #define UI_STYLE_TEXT_CENTER    1
00089 #define UI_STYLE_TEXT_RIGHT     2
00090 
00091 
00092 /* this is fed to the layout engine and widget code */
00093 
00094 typedef struct uiStyle {
00095     struct uiStyle *next, *prev;
00096     
00097     char name[64];          /* MAX_STYLE_NAME */
00098     
00099     uiFontStyle paneltitle;
00100     uiFontStyle grouplabel;
00101     uiFontStyle widgetlabel;
00102     uiFontStyle widget;
00103     
00104     float panelzoom;
00105     
00106     short minlabelchars;    /* in characters */
00107     short minwidgetchars;   /* in characters */
00108 
00109     short columnspace;
00110     short templatespace;
00111     short boxspace;
00112     short buttonspacex;
00113     short buttonspacey;
00114     short panelspace;
00115     short panelouter;
00116 
00117     short pad;
00118 } uiStyle;
00119 
00120 typedef struct uiWidgetColors {
00121     char outline[4];
00122     char inner[4];
00123     char inner_sel[4];
00124     char item[4];
00125     char text[4];
00126     char text_sel[4];
00127     short shaded;
00128     short shadetop, shadedown;
00129     short alpha_check;
00130 } uiWidgetColors;
00131 
00132 typedef struct uiWidgetStateColors {
00133     char inner_anim[4];
00134     char inner_anim_sel[4];
00135     char inner_key[4];
00136     char inner_key_sel[4];
00137     char inner_driven[4];
00138     char inner_driven_sel[4];
00139     float blend, pad;
00140 } uiWidgetStateColors;
00141 
00142 typedef struct uiPanelColors {
00143     char header[4];
00144     short show_header;
00145     short pad;
00146 } uiPanelColors;
00147 
00148 typedef struct ThemeUI {
00149     
00150     /* Interface Elements (buttons, menus, icons) */
00151     uiWidgetColors wcol_regular, wcol_tool, wcol_text;
00152     uiWidgetColors wcol_radio, wcol_option, wcol_toggle;
00153     uiWidgetColors wcol_num, wcol_numslider;
00154     uiWidgetColors wcol_menu, wcol_pulldown, wcol_menu_back, wcol_menu_item;
00155     uiWidgetColors wcol_box, wcol_scroll, wcol_progress, wcol_list_item;
00156     
00157     uiWidgetStateColors wcol_state;
00158 
00159     uiPanelColors panel;
00160 
00161     char iconfile[80];  // FILE_MAXFILE length
00162     float icon_alpha;
00163 
00164     float pad;
00165 } ThemeUI;
00166 
00167 /* try to put them all in one, if needed a special struct can be created as well
00168  * for example later on, when we introduce wire colors for ob types or so...
00169  */
00170 typedef struct ThemeSpace {
00171     /* main window colors */
00172     char back[4];
00173     char title[4];
00174     char text[4];
00175     char text_hi[4];
00176     
00177     /* header colors */
00178     char header[4];
00179     char header_title[4];
00180     char header_text[4];
00181     char header_text_hi[4];
00182 
00183     /* button/tool regions */
00184     char button[4];
00185     char button_title[4];
00186     char button_text[4];    
00187     char button_text_hi[4];
00188     
00189     /* listview regions */
00190     char list[4];
00191     char list_title[4];
00192     char list_text[4];
00193     char list_text_hi[4];
00194     
00195     /* float panel */
00196     char panel[4];
00197     char panel_title[4];    
00198     char panel_text[4]; 
00199     char panel_text_hi[4];
00200     
00201     char shade1[4];
00202     char shade2[4];
00203     
00204     char hilite[4];
00205     char grid[4]; 
00206     
00207     char wire[4], select[4];
00208     char lamp[4], speaker[4], pad2[4];
00209     char active[4], group[4], group_active[4], transform[4];
00210     char vertex[4], vertex_select[4];
00211     char edge[4], edge_select[4];
00212     char edge_seam[4], edge_sharp[4], edge_facesel[4], edge_crease[4];
00213     char face[4], face_select[4];   // solid faces
00214     char face_dot[4];               // selected color
00215     char extra_edge_len[4], extra_face_angle[4], extra_face_area[4], pad3[4];
00216     char normal[4];
00217     char vertex_normal[4];
00218     char bone_solid[4], bone_pose[4];
00219     char strip[4], strip_select[4];
00220     char cframe[4];
00221     
00222     char nurb_uline[4], nurb_vline[4];
00223     char act_spline[4], nurb_sel_uline[4], nurb_sel_vline[4], lastsel_point[4];
00224     
00225     char handle_free[4], handle_auto[4], handle_vect[4], handle_align[4], handle_auto_clamped[4];
00226     char handle_sel_free[4], handle_sel_auto[4], handle_sel_vect[4], handle_sel_align[4], handle_sel_auto_clamped[4];
00227     
00228     char ds_channel[4], ds_subchannel[4]; // dopesheet
00229     
00230     char console_output[4], console_input[4], console_info[4], console_error[4];
00231     char console_cursor[4];
00232     
00233     char vertex_size, outline_width, facedot_size;
00234     char noodle_curving;
00235 
00236     char syntaxl[4], syntaxn[4], syntaxb[4]; // syntax for textwindow and nodes
00237     char syntaxv[4], syntaxc[4];
00238     
00239     char movie[4], image[4], scene[4], audio[4];        // for sequence editor
00240     char effect[4], plugin[4], transition[4], meta[4];
00241     char editmesh_active[4]; 
00242 
00243     char handle_vertex[4];
00244     char handle_vertex_select[4];
00245     
00246     char handle_vertex_size;
00247     
00248     char marker_outline[4], marker[4], act_marker[4], sel_marker[4], dis_marker[4], lock_marker[4];
00249     char bundle_solid[4];
00250     char path_before[4], path_after[4];
00251     char camera_path[4];
00252     char hpad[7];
00253     
00254     char preview_back[4];
00255     
00256 } ThemeSpace;
00257 
00258 
00259 /* set of colors for use as a custom color set for Objects/Bones wire drawing */
00260 typedef struct ThemeWireColor {
00261     char    solid[4];
00262     char    select[4];
00263     char    active[4];
00264     
00265     short   flag;
00266     short   pad;
00267 } ThemeWireColor; 
00268 
00269 /* flags for ThemeWireColor */
00270 #define TH_WIRECOLOR_CONSTCOLS  (1<<0)
00271 #define TH_WIRECOLOR_TEXTCOLS   (1<<1)
00272 
00273 /* A theme */
00274 typedef struct bTheme {
00275     struct bTheme *next, *prev;
00276     char name[32];
00277     
00278     ThemeUI tui;
00279     
00280     /* Individual Spacetypes */
00281     ThemeSpace tbuts;   
00282     ThemeSpace tv3d;
00283     ThemeSpace tfile;
00284     ThemeSpace tipo;
00285     ThemeSpace tinfo;
00286     ThemeSpace tact;
00287     ThemeSpace tnla;
00288     ThemeSpace tseq;
00289     ThemeSpace tima;
00290     ThemeSpace text;
00291     ThemeSpace toops;
00292     ThemeSpace ttime;
00293     ThemeSpace tnode;
00294     ThemeSpace tlogic;
00295     ThemeSpace tuserpref;   
00296     ThemeSpace tconsole;
00297     ThemeSpace tclip;
00298     
00299     /* 20 sets of bone colors for this theme */
00300     ThemeWireColor tarm[20];
00301     /*ThemeWireColor tobj[20];*/
00302     
00303     int active_theme_area, pad;
00304     
00305 } bTheme;
00306 
00307 /* for the moment only the name. may want to store options with this later */
00308 typedef struct bAddon {
00309     struct bAddon *next, *prev;
00310     char module[64];
00311 } bAddon;
00312 
00313 typedef struct SolidLight {
00314     int flag, pad;
00315     float col[4], spec[4], vec[4];
00316 } SolidLight;
00317 
00318 typedef struct UserDef {
00319     int flag, dupflag;
00320     int savetime;
00321     char tempdir[160];  /* FILE_MAXDIR length */
00322     char fontdir[160];
00323     char renderdir[240]; /* FILE_MAX length */
00324     char textudir[160];
00325     char plugtexdir[160];
00326     char plugseqdir[160];
00327     char pythondir[160];
00328     char sounddir[160];
00329     char image_editor[240]; /* 240 = FILE_MAX */
00330     char anim_player[240];  /* 240 = FILE_MAX */
00331     int anim_player_preset;
00332     
00333     short v2d_min_gridsize;     /* minimum spacing between gridlines in View2D grids */
00334     short timecode_style;       /* style of timecode display */
00335     
00336     short versions;
00337     short dbl_click_time;
00338     
00339     int gameflags;
00340     int wheellinescroll;
00341     int uiflag, language;
00342     short userpref, viewzoom;
00343     
00344     int mixbufsize;
00345     int audiodevice;
00346     int audiorate;
00347     int audioformat;
00348     int audiochannels;
00349 
00350     int scrollback; /* console scrollback limit */
00351     int dpi;        /* range 48-128? */
00352     short encoding;
00353     short transopts;
00354     short menuthreshold1, menuthreshold2;
00355     
00356     struct ListBase themes;
00357     struct ListBase uifonts;
00358     struct ListBase uistyles;
00359     struct ListBase keymaps  DNA_DEPRECATED; /* deprecated in favor of user_keymaps */
00360     struct ListBase user_keymaps;
00361     struct ListBase addons;
00362     char keyconfigstr[64];
00363     
00364     short undosteps;
00365     short undomemory;
00366     short gp_manhattendist, gp_euclideandist, gp_eraser;
00367     short gp_settings;
00368     short tb_leftmouse, tb_rightmouse;
00369     struct SolidLight light[3];
00370     short tw_hotspot, tw_flag, tw_handlesize, tw_size;
00371     short textimeout,texcollectrate;
00372     short wmdrawmethod; /* removed wmpad */
00373     short dragthreshold;
00374     int memcachelimit;
00375     int prefetchframes;
00376     short frameserverport;
00377     short pad_rot_angle;    /*control the rotation step of the view when PAD2,PAD4,PAD6&PAD8 is use*/
00378     short obcenter_dia;
00379     short rvisize;          /* rotating view icon size */
00380     short rvibright;        /* rotating view icon brightness */
00381     short recent_files;     /* maximum number of recently used files to remember  */
00382     short smooth_viewtx;    /* miliseconds to spend spinning the view */
00383     short glreslimit;
00384     short curssize;
00385     short color_picker_type;
00386     short ipo_new;          /* interpolation mode for newly added F-Curves */
00387     short keyhandles_new;   /* handle types for newly added keyframes */
00388 
00389     short scrcastfps;       /* frame rate for screencast to be played back */
00390     short scrcastwait;      /* milliseconds between screencast snapshots */
00391     
00392     short widget_unit;      /* defaults to 20 for 72 DPI setting */
00393     short anisotropic_filter;
00394     /*short pad[3];         */
00395 
00396     float ndof_sensitivity; /* overall sensitivity of 3D mouse */
00397     int ndof_flag;          /* flags for 3D mouse */
00398 
00399     char versemaster[160];
00400     char verseuser[160];
00401     float glalphaclip;
00402     
00403     short autokey_mode;     /* autokeying mode */
00404     short autokey_flag;     /* flags for autokeying */
00405     
00406     short text_render, pad9[3];     /*options for text rendering*/
00407 
00408     struct ColorBand coba_weight;   /* from texture.h */
00409 
00410     float sculpt_paint_overlay_col[3];
00411 
00412     short tweak_threshold;
00413     short pad3;
00414 
00415     char author[80];    /* author name for file formats supporting it */
00416 
00417     int compute_device_type;
00418     int compute_device_id;
00419 } UserDef;
00420 
00421 extern UserDef U; /* from blenkernel blender.c */
00422 
00423 /* ***************** USERDEF ****************** */
00424 
00425 /* userpref/section */
00426 #define USER_SECTION_INTERFACE  0
00427 #define USER_SECTION_EDIT       1
00428 #define USER_SECTION_FILE       2
00429 #define USER_SECTION_SYSTEM     3
00430 #define USER_SECTION_THEME      4
00431 #define USER_SECTION_INPUT      5
00432 #define USER_SECTION_ADDONS     6
00433 
00434 /* flag */
00435 #define USER_AUTOSAVE           (1 << 0)
00436 /*#define USER_AUTOGRABGRID     (1 << 1)    deprecated */
00437 /*#define USER_AUTOROTGRID      (1 << 2)    deprecated */
00438 /*#define USER_AUTOSIZEGRID     (1 << 3)    deprecated */
00439 #define USER_SCENEGLOBAL        (1 << 4)
00440 #define USER_TRACKBALL          (1 << 5)
00441 /*#define USER_DUPLILINK        (1 << 6)    deprecated */
00442 /*#define USER_FSCOLLUM         (1 << 7)    deprecated */
00443 #define USER_MAT_ON_OB          (1 << 8)
00444 /*#define USER_NO_CAPSLOCK      (1 << 9)*/ /* not used anywhere */
00445 /*#define USER_VIEWMOVE         (1 << 10)*/ /* not used anywhere */
00446 #define USER_TOOLTIPS           (1 << 11)
00447 #define USER_TWOBUTTONMOUSE     (1 << 12)
00448 #define USER_NONUMPAD           (1 << 13)
00449 #define USER_LMOUSESELECT       (1 << 14)
00450 #define USER_FILECOMPRESS       (1 << 15)
00451 #define USER_SAVE_PREVIEWS      (1 << 16)
00452 #define USER_CUSTOM_RANGE       (1 << 17)
00453 #define USER_ADD_EDITMODE       (1 << 18)
00454 #define USER_ADD_VIEWALIGNED    (1 << 19)
00455 #define USER_RELPATHS           (1 << 20)
00456 #define USER_RELEASECONFIRM     (1 << 21)
00457 #define USER_SCRIPT_AUTOEXEC_DISABLE    (1 << 22)
00458 #define USER_FILENOUI           (1 << 23)
00459 #define USER_NONEGFRAMES        (1 << 24)
00460 #define USER_TXT_TABSTOSPACES_DISABLE   (1 << 25)
00461 #define USER_TOOLTIPS_PYTHON    (1 << 26)
00462 
00463 /* helper macro for checking frame clamping */
00464 #define FRAMENUMBER_MIN_CLAMP(cfra)                                           \
00465     {                                                                         \
00466         if ((U.flag & USER_NONEGFRAMES) && (cfra < 0))                        \
00467             cfra = 0;                                                         \
00468     }
00469 
00470 /* viewzom */
00471 #define USER_ZOOM_CONT          0
00472 #define USER_ZOOM_SCALE         1
00473 #define USER_ZOOM_DOLLY         2
00474 
00475 /* uiflag */
00476 // old flag for #define USER_KEYINSERTACT       (1 << 0)
00477 // old flag for #define USER_KEYINSERTOBJ       (1 << 1)
00478 #define USER_WHEELZOOMDIR       (1 << 2)
00479 #define USER_FILTERFILEEXTS     (1 << 3)
00480 #define USER_DRAWVIEWINFO       (1 << 4)
00481 #define USER_PLAINMENUS         (1 << 5)        // old EVTTOCONSOLE print ghost events, here for tuhopuu compat. --phase
00482                                 // old flag for hide pulldown was here 
00483 /*#define USER_FLIPFULLSCREEN       (1 << 7)*/ /* deprecated */
00484 #define USER_ALLWINCODECS       (1 << 8)
00485 #define USER_MENUOPENAUTO       (1 << 9)
00486 /*#define USER_PANELPINNED      (1 << 10)       deprecated */
00487 #define USER_AUTOPERSP          (1 << 11)
00488 #define USER_LOCKAROUND         (1 << 12)
00489 #define USER_GLOBALUNDO         (1 << 13)
00490 #define USER_ORBIT_SELECTION    (1 << 14)
00491 // old flag for #define USER_KEYINSERTAVAI      (1 << 15)
00492 #define USER_ORBIT_ZBUF         (1 << 15)
00493 #define USER_HIDE_DOT           (1 << 16)
00494 #define USER_SHOW_ROTVIEWICON   (1 << 17)
00495 #define USER_SHOW_VIEWPORTNAME  (1 << 18)
00496 #define USER_CAM_LOCK_NO_PARENT (1 << 19)
00497 #define USER_ZOOM_TO_MOUSEPOS   (1 << 20)
00498 #define USER_SHOW_FPS           (1 << 21)
00499 #define USER_MMB_PASTE          (1 << 22)
00500 #define USER_MENUFIXEDORDER     (1 << 23)
00501 #define USER_CONTINUOUS_MOUSE   (1 << 24)
00502 #define USER_ZOOM_INVERT        (1 << 25)
00503 #define USER_ZOOM_HORIZ     (1 << 26) /* for CONTINUE and DOLLY zoom */
00504 #define USER_SPLASH_DISABLE     (1 << 27)
00505 #define USER_HIDE_RECENT        (1 << 28)
00506 #define USER_SHOW_THUMBNAILS    (1 << 29)
00507 
00508 /* Auto-Keying mode */
00509     /* AUTOKEY_ON is a bitflag */
00510 #define     AUTOKEY_ON              1
00511     /* AUTOKEY_ON + 2**n...  (i.e. AUTOKEY_MODE_NORMAL = AUTOKEY_ON + 2) to preserve setting, even when autokey turned off  */
00512 #define     AUTOKEY_MODE_NORMAL     3
00513 #define     AUTOKEY_MODE_EDITKEYS   5
00514 
00515 /* Auto-Keying flag
00516  * U.autokey_flag (not strictly used when autokeying only - is also used when keyframing these days)
00517  * note: AUTOKEY_FLAG_* is used with a macro, search for lines like IS_AUTOKEY_FLAG(INSERTAVAIL)
00518  */
00519 #define     AUTOKEY_FLAG_INSERTAVAIL    (1<<0)
00520 #define     AUTOKEY_FLAG_INSERTNEEDED   (1<<1)
00521 #define     AUTOKEY_FLAG_AUTOMATKEY     (1<<2)
00522 #define     AUTOKEY_FLAG_XYZ2RGB        (1<<3)
00523 
00524 /* toolsettings->autokey_flag */
00525 #define     AUTOKEY_FLAG_ONLYKEYINGSET  (1<<6)
00526 #define     ANIMRECORD_FLAG_WITHNLA     (1<<10)
00527 
00528 /* transopts */
00529 #define USER_TR_TOOLTIPS        (1 << 0)
00530 #define USER_TR_IFACE           (1 << 1)
00531 /*#define USER_TR_MENUS         (1 << 2)    deprecated*/
00532 /*#define USER_TR_FILESELECT    (1 << 3)    deprecated*/
00533 /*#define USER_TR_TEXTEDIT      (1 << 4)    deprecated*/
00534 #define USER_DOTRANSLATE        (1 << 5)
00535 #define USER_USETEXTUREFONT     (1 << 6)
00536 /*#define CONVERT_TO_UTF8           (1 << 7)    deprecated*/
00537 
00538 /* dupflag */
00539 #define USER_DUP_MESH           (1 << 0)
00540 #define USER_DUP_CURVE          (1 << 1)
00541 #define USER_DUP_SURF           (1 << 2)
00542 #define USER_DUP_FONT           (1 << 3)
00543 #define USER_DUP_MBALL          (1 << 4)
00544 #define USER_DUP_LAMP           (1 << 5)
00545 #define USER_DUP_IPO            (1 << 6)
00546 #define USER_DUP_MAT            (1 << 7)
00547 #define USER_DUP_TEX            (1 << 8)
00548 #define USER_DUP_ARM            (1 << 9)
00549 #define USER_DUP_ACT            (1 << 10)
00550 #define USER_DUP_PSYS           (1 << 11)
00551 
00552 /* gameflags */
00553 // #define USER_DEPRECATED_FLAG 1
00554 // #define USER_DISABLE_SOUND       2 deprecated, don't use without checking for
00555 // backwards compatibilty in do_versions!
00556 #define USER_DISABLE_MIPMAP     4
00557 #define USER_DISABLE_VBO        8
00558 #define USER_DISABLE_AA         16
00559 
00560 /* wm draw method */
00561 #define USER_DRAW_TRIPLE        0
00562 #define USER_DRAW_OVERLAP       1
00563 #define USER_DRAW_FULL          2
00564 #define USER_DRAW_AUTOMATIC     3
00565 #define USER_DRAW_OVERLAP_FLIP  4
00566 
00567 /* text draw options*/
00568 #define USER_TEXT_DISABLE_AA    (1 << 0)
00569 
00570 /* tw_flag (transform widget) */
00571 
00572 /* gp_settings (Grease Pencil Settings) */
00573 #define GP_PAINT_DOSMOOTH       (1<<0)
00574 #define GP_PAINT_DOSIMPLIFY     (1<<1)
00575 
00576 /* color picker types */
00577 #define USER_CP_CIRCLE      0
00578 #define USER_CP_SQUARE_SV   1
00579 #define USER_CP_SQUARE_HS   2
00580 #define USER_CP_SQUARE_HV   3
00581 
00582 /* timecode display styles */
00583     /* as little info as is necessary to show relevant info
00584      * with '+' to denote the frames 
00585      * i.e. HH:MM:SS+FF, MM:SS+FF, SS+FF, or MM:SS
00586      */
00587 #define USER_TIMECODE_MINIMAL       0
00588     /* reduced SMPTE - (HH:)MM:SS:FF */
00589 #define USER_TIMECODE_SMPTE_MSF     1
00590     /* full SMPTE - HH:MM:SS:FF */
00591 #define USER_TIMECODE_SMPTE_FULL    2
00592     /* milliseconds for sub-frames - HH:MM:SS.sss */
00593 #define USER_TIMECODE_MILLISECONDS  3
00594     /* seconds only */
00595 #define USER_TIMECODE_SECONDS_ONLY  4
00596 
00597 /* theme drawtypes */
00598 #define TH_MINIMAL      0
00599 #define TH_ROUNDSHADED  1
00600 #define TH_ROUNDED      2
00601 #define TH_OLDSKOOL     3
00602 #define TH_SHADED       4
00603 
00604 /* ndof_flag (3D mouse options) */
00605 #define NDOF_SHOW_GUIDE     (1 << 0)
00606 #define NDOF_FLY_HELICOPTER (1 << 1)
00607 #define NDOF_LOCK_HORIZON   (1 << 2)
00608 /* the following might not need to be saved between sessions,
00609  * but they do need to live somewhere accessible... */
00610 #define NDOF_SHOULD_PAN     (1 << 3)
00611 #define NDOF_SHOULD_ZOOM    (1 << 4)
00612 #define NDOF_SHOULD_ROTATE  (1 << 5)
00613 /* orbit navigation modes
00614  * only two options, so it's sort of a hyrbrid bool/enum
00615  * if ((U.ndof_flag & NDOF_ORBIT_MODE) == NDOF_OM_OBJECT)... */
00616 /*
00617 #define NDOF_ORBIT_MODE     (1 << 6)
00618 #define NDOF_OM_TARGETCAMERA 0
00619 #define NDOF_OM_OBJECT      NDOF_ORBIT_MODE
00620 */
00621 /* actually... users probably don't care about what the mode
00622  * is called, just that it feels right */
00623 /* zoom is up/down if this flag is set (otherwise forward/backward) */
00624 #define NDOF_ZOOM_UPDOWN (1 << 7)
00625 #define NDOF_ZOOM_INVERT (1 << 8)
00626 #define NDOF_ROTATE_INVERT_AXIS (1 << 9)
00627 #define NDOF_TILT_INVERT_AXIS (1 << 10)
00628 #define NDOF_ROLL_INVERT_AXIS (1 << 11)
00629 #define NDOF_PANX_INVERT_AXIS (1 << 12)
00630 #define NDOF_PANY_INVERT_AXIS (1 << 13)
00631 #define NDOF_PANZ_INVERT_AXIS (1 << 14)
00632 
00633 /* compute_device_type */
00634 #define USER_COMPUTE_DEVICE_NONE    0
00635 #define USER_COMPUTE_DEVICE_OPENCL  1
00636 #define USER_COMPUTE_DEVICE_CUDA    2
00637 
00638 #ifdef __cplusplus
00639 }
00640 #endif
00641 
00642 #endif