7df1f1f28cb23950a04f81f03ff36006fcc59e96
[blender.git] / source / blender / editors / include / ED_numinput.h
1 /**
2  * $Id$
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19  *
20  * Contributor(s): none yet.
21  *
22  * ***** END GPL LICENSE BLOCK *****
23  */
24
25 #ifndef ED_NUMINPUT_H
26 #define ED_NUMINPUT_H
27
28
29 typedef struct NumInput {
30         short  idx;
31         short  idx_max;
32         short  flag;        /* Different flags to indicate different behaviors                                */
33         char   inv[3];      /* If the value is inverted or not                                                */
34         float  val[3];      /* Direct value of the input                                                      */
35         int    ctrl[3];     /* Control to indicate what to do with the numbers that are typed                 */
36         float  increment;
37 } NumInput ;
38
39 /* NUMINPUT FLAGS */
40 #define NUM_NULL_ONE            2
41 #define NUM_NO_NEGATIVE         4
42 #define NUM_NO_ZERO                     8
43 #define NUM_NO_FRACTION         16
44 #define NUM_AFFECT_ALL          32
45
46 /*********************** NumInput ********************************/
47
48 void initNumInput(NumInput *n);
49 void outputNumInput(NumInput *n, char *str);
50 short hasNumInput(NumInput *n);
51 void applyNumInput(NumInput *n, float *vec);
52 char handleNumInput(NumInput *n, struct wmEvent *event);
53
54 #define NUM_MODAL_INCREMENT_UP   18
55 #define NUM_MODAL_INCREMENT_DOWN 19
56
57 #endif