Welcome to mirror list, hosted at ThFree Co, Russian Federation.

nla_intern.h « space_nla « editors « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: dd322dd2ad1ca8c843d5a024900d3034675c2c4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
/*
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 * The Original Code is Copyright (C) 2009 Blender Foundation, Joshua Leung.
 * All rights reserved.
 */

/** \file
 * \ingroup spnla
 */

#pragma once

/* internal exports only */

/* **************************************** */
/* Macros, etc. only used by NLA */

/* **************************************** */
/* space_nla.c / nla_buttons.c */

bool nla_panel_context(const bContext *C,
                       PointerRNA *adt_ptr,
                       PointerRNA *nlt_ptr,
                       PointerRNA *strip_ptr);

void nla_buttons_register(ARegionType *art);

/* **************************************** */
/* nla_draw.c */

void draw_nla_main_data(bAnimContext *ac, SpaceNla *snla, ARegion *region);
void draw_nla_channel_list(const bContext *C, bAnimContext *ac, ARegion *region);

/* **************************************** */
/* nla_select.c */

/* defines for left-right select tool */
enum eNlaEdit_LeftRightSelect_Mode {
  NLAEDIT_LRSEL_TEST = -1,
  NLAEDIT_LRSEL_NONE,
  NLAEDIT_LRSEL_LEFT,
  NLAEDIT_LRSEL_RIGHT,
};

/* --- */

void NLA_OT_select_all(wmOperatorType *ot);
void NLA_OT_select_box(wmOperatorType *ot);
void NLA_OT_select_leftright(wmOperatorType *ot);
void NLA_OT_click_select(wmOperatorType *ot);

/* **************************************** */
/* nla_edit.c */

/* defines for snap strips */
enum eNlaEdit_Snap_Mode {
  NLAEDIT_SNAP_CFRA = 1,
  NLAEDIT_SNAP_NEAREST_FRAME,
  NLAEDIT_SNAP_NEAREST_SECOND,
  NLAEDIT_SNAP_NEAREST_MARKER,
};

/* --- */

/**
 * NLA Editor internal API function for exiting tweak-mode.
 */
bool nlaedit_disable_tweakmode(bAnimContext *ac, bool do_solo);

void NLA_OT_tweakmode_enter(wmOperatorType *ot);
void NLA_OT_tweakmode_exit(wmOperatorType *ot);

/* --- */

void NLA_OT_previewrange_set(wmOperatorType *ot);

void NLA_OT_view_all(wmOperatorType *ot);
void NLA_OT_view_selected(wmOperatorType *ot);
void NLA_OT_view_frame(wmOperatorType *ot);

void NLA_OT_actionclip_add(wmOperatorType *ot);
void NLA_OT_transition_add(wmOperatorType *ot);
void NLA_OT_soundclip_add(wmOperatorType *ot);

void NLA_OT_meta_add(wmOperatorType *ot);
void NLA_OT_meta_remove(wmOperatorType *ot);

void NLA_OT_duplicate(wmOperatorType *ot);
void NLA_OT_delete(wmOperatorType *ot);
void NLA_OT_split(wmOperatorType *ot);

void NLA_OT_mute_toggle(wmOperatorType *ot);

void NLA_OT_swap(wmOperatorType *ot);
void NLA_OT_move_up(wmOperatorType *ot);
void NLA_OT_move_down(wmOperatorType *ot);

void NLA_OT_action_sync_length(wmOperatorType *ot);

void NLA_OT_make_single_user(wmOperatorType *ot);

void NLA_OT_apply_scale(wmOperatorType *ot);
void NLA_OT_clear_scale(wmOperatorType *ot);

void NLA_OT_snap(wmOperatorType *ot);

void NLA_OT_fmodifier_add(wmOperatorType *ot);
void NLA_OT_fmodifier_copy(wmOperatorType *ot);
void NLA_OT_fmodifier_paste(wmOperatorType *ot);

/* **************************************** */
/* nla_channels.c */

/**
 * Helper - add NLA Tracks alongside existing ones.
 */
bool nlaedit_add_tracks_existing(bAnimContext *ac, bool above_sel);
/**
 * helper - add NLA Tracks to empty (and selected) AnimData blocks.
 */
bool nlaedit_add_tracks_empty(bAnimContext *ac);

/* --- */

void NLA_OT_channels_click(wmOperatorType *ot);

void NLA_OT_action_pushdown(wmOperatorType *ot);
void NLA_OT_action_unlink(wmOperatorType *ot);

void NLA_OT_tracks_add(wmOperatorType *ot);
void NLA_OT_tracks_delete(wmOperatorType *ot);

void NLA_OT_selected_objects_add(wmOperatorType *ot);

/* **************************************** */
/* nla_ops.c */

/**
 * Tweak-mode is NOT enabled.
 */
bool nlaop_poll_tweakmode_off(bContext *C);
/**
 * Tweak-mode IS enabled.
 */
bool nlaop_poll_tweakmode_on(bContext *C);

/**
 * Is tweak-mode enabled - for use in NLA operator code.
 */
bool nlaedit_is_tweakmode_on(bAnimContext *ac);

/* --- */

void nla_operatortypes(void);
void nla_keymap(wmKeyConfig *keyconf);