Fix missing directory in CMakeLists.txt
[blender.git] / source / blender / editors / space_nla / nla_intern.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2009 Blender Foundation, Joshua Leung.
17  * All rights reserved.
18  */
19
20 /** \file
21  * \ingroup spnla
22  */
23
24 #pragma once
25
26 /* internal exports only */
27
28 /* **************************************** */
29 /* Macros, etc. only used by NLA */
30
31 /* **************************************** */
32 /* space_nla.c / nla_buttons.c */
33
34 bool nla_panel_context(const bContext *C,
35                        PointerRNA *adt_ptr,
36                        PointerRNA *nlt_ptr,
37                        PointerRNA *strip_ptr);
38
39 void nla_buttons_register(ARegionType *art);
40
41 /* **************************************** */
42 /* nla_draw.c */
43
44 void draw_nla_main_data(bAnimContext *ac, SpaceNla *snla, ARegion *region);
45 void draw_nla_channel_list(const bContext *C, bAnimContext *ac, ARegion *region);
46
47 /* **************************************** */
48 /* nla_select.c */
49
50 /* defines for left-right select tool */
51 enum eNlaEdit_LeftRightSelect_Mode {
52   NLAEDIT_LRSEL_TEST = -1,
53   NLAEDIT_LRSEL_NONE,
54   NLAEDIT_LRSEL_LEFT,
55   NLAEDIT_LRSEL_RIGHT,
56 };
57
58 /* --- */
59
60 void NLA_OT_select_all(wmOperatorType *ot);
61 void NLA_OT_select_box(wmOperatorType *ot);
62 void NLA_OT_select_leftright(wmOperatorType *ot);
63 void NLA_OT_click_select(wmOperatorType *ot);
64
65 /* **************************************** */
66 /* nla_edit.c */
67
68 /* defines for snap strips */
69 enum eNlaEdit_Snap_Mode {
70   NLAEDIT_SNAP_CFRA = 1,
71   NLAEDIT_SNAP_NEAREST_FRAME,
72   NLAEDIT_SNAP_NEAREST_SECOND,
73   NLAEDIT_SNAP_NEAREST_MARKER,
74 };
75
76 /* --- */
77
78 bool nlaedit_disable_tweakmode(bAnimContext *ac, bool do_solo);
79
80 void NLA_OT_tweakmode_enter(wmOperatorType *ot);
81 void NLA_OT_tweakmode_exit(wmOperatorType *ot);
82
83 /* --- */
84
85 void NLA_OT_previewrange_set(wmOperatorType *ot);
86
87 void NLA_OT_view_all(wmOperatorType *ot);
88 void NLA_OT_view_selected(wmOperatorType *ot);
89 void NLA_OT_view_frame(wmOperatorType *ot);
90
91 void NLA_OT_actionclip_add(wmOperatorType *ot);
92 void NLA_OT_transition_add(wmOperatorType *ot);
93 void NLA_OT_soundclip_add(wmOperatorType *ot);
94
95 void NLA_OT_meta_add(wmOperatorType *ot);
96 void NLA_OT_meta_remove(wmOperatorType *ot);
97
98 void NLA_OT_duplicate(wmOperatorType *ot);
99 void NLA_OT_delete(wmOperatorType *ot);
100 void NLA_OT_split(wmOperatorType *ot);
101
102 void NLA_OT_mute_toggle(wmOperatorType *ot);
103
104 void NLA_OT_swap(wmOperatorType *ot);
105 void NLA_OT_move_up(wmOperatorType *ot);
106 void NLA_OT_move_down(wmOperatorType *ot);
107
108 void NLA_OT_action_sync_length(wmOperatorType *ot);
109
110 void NLA_OT_make_single_user(wmOperatorType *ot);
111
112 void NLA_OT_apply_scale(wmOperatorType *ot);
113 void NLA_OT_clear_scale(wmOperatorType *ot);
114
115 void NLA_OT_snap(wmOperatorType *ot);
116
117 void NLA_OT_fmodifier_add(wmOperatorType *ot);
118 void NLA_OT_fmodifier_copy(wmOperatorType *ot);
119 void NLA_OT_fmodifier_paste(wmOperatorType *ot);
120
121 /* **************************************** */
122 /* nla_channels.c */
123
124 bool nlaedit_add_tracks_existing(bAnimContext *ac, bool above_sel);
125 bool nlaedit_add_tracks_empty(bAnimContext *ac);
126
127 /* --- */
128
129 void NLA_OT_channels_click(wmOperatorType *ot);
130
131 void NLA_OT_action_pushdown(wmOperatorType *ot);
132 void NLA_OT_action_unlink(wmOperatorType *ot);
133
134 void NLA_OT_tracks_add(wmOperatorType *ot);
135 void NLA_OT_tracks_delete(wmOperatorType *ot);
136
137 void NLA_OT_selected_objects_add(wmOperatorType *ot);
138
139 /* **************************************** */
140 /* nla_ops.c */
141
142 bool nlaop_poll_tweakmode_off(bContext *C);
143 bool nlaop_poll_tweakmode_on(bContext *C);
144
145 bool nlaedit_is_tweakmode_on(bAnimContext *ac);
146
147 /* --- */
148
149 void nla_operatortypes(void);
150 void nla_keymap(wmKeyConfig *keyconf);