~siretart/ubuntu/utopic/blender/libav10

« back to all changes in this revision

Viewing changes to source/blender/editors/space_nla/nla_ops.c

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2012-07-23 08:54:18 UTC
  • mfrom: (14.2.16 sid)
  • mto: (14.2.19 sid)
  • mto: This revision was merged to the branch mainline in revision 42.
  • Revision ID: package-import@ubuntu.com-20120723085418-9foz30v6afaf5ffs
Tags: 2.63a-2
* debian/: Cycles support added (Closes: #658075)
  For now, this top feature has been enabled only
  on [any-amd64 any-i386] architectures because
  of OpenImageIO failing on all others
* debian/: scripts installation path changed
  from /usr/lib to /usr/share:
  + debian/patches/: patchset re-worked for path changing
  + debian/control: "Breaks" field added on yafaray-exporter

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
 * $Id: nla_ops.c 30445 2010-07-17 18:02:10Z campbellbarton $
3
 
 *
 
1
/*
4
2
 * ***** BEGIN GPL LICENSE BLOCK *****
5
3
 *
6
4
 * This program is free software; you can redistribute it and/or
26
24
 * ***** END GPL LICENSE BLOCK *****
27
25
 */
28
26
 
 
27
/** \file blender/editors/space_nla/nla_ops.c
 
28
 *  \ingroup spnla
 
29
 */
 
30
 
 
31
 
29
32
#include <string.h>
30
33
#include <stdio.h>
31
34
 
32
35
#include "DNA_scene_types.h"
33
36
 
34
 
#include "MEM_guardedalloc.h"
35
37
 
36
38
#include "BLI_blenlib.h"
37
39
#include "BLI_math.h"
38
40
#include "BLI_rand.h"
39
41
 
40
 
#include "BKE_animsys.h"
41
 
#include "BKE_nla.h"
42
42
#include "BKE_context.h"
43
 
#include "BKE_report.h"
44
43
#include "BKE_screen.h"
45
44
 
46
45
#include "ED_anim_api.h"
 
46
#include "ED_markers.h"
47
47
#include "ED_screen.h"
48
48
#include "ED_transform.h"
49
49
 
126
126
        WM_operatortype_append(NLA_OT_click_select);
127
127
        WM_operatortype_append(NLA_OT_select_border);
128
128
        WM_operatortype_append(NLA_OT_select_all_toggle);
 
129
        WM_operatortype_append(NLA_OT_select_leftright);
 
130
        
 
131
        /* view */
 
132
        WM_operatortype_append(NLA_OT_view_all);
 
133
        WM_operatortype_append(NLA_OT_view_selected);
129
134
        
130
135
        /* edit */
131
136
        WM_operatortype_append(NLA_OT_tweakmode_enter);
133
138
        
134
139
        WM_operatortype_append(NLA_OT_actionclip_add);
135
140
        WM_operatortype_append(NLA_OT_transition_add);
 
141
        WM_operatortype_append(NLA_OT_soundclip_add);
136
142
        
137
143
        WM_operatortype_append(NLA_OT_meta_add);
138
144
        WM_operatortype_append(NLA_OT_meta_remove);
143
149
        
144
150
        WM_operatortype_append(NLA_OT_mute_toggle);
145
151
        
 
152
        WM_operatortype_append(NLA_OT_swap);
146
153
        WM_operatortype_append(NLA_OT_move_up);
147
154
        WM_operatortype_append(NLA_OT_move_down);
148
155
        
160
167
 
161
168
/* ************************** registration - keymaps **********************************/
162
169
 
163
 
static void nla_keymap_channels (wmKeyConfig *keyconf, wmKeyMap *keymap)
 
170
static void nla_keymap_channels(wmKeyMap *keymap)
164
171
{
 
172
        wmKeyMapItem *kmi;
 
173
 
165
174
        /* NLA-specific (different to standard channels keymap) -------------------------- */
166
175
        /* selection */
167
176
                /* click-select */
168
177
                // XXX for now, only leftmouse.... 
169
 
        WM_keymap_add_item(keymap, "NLA_OT_channels_click", LEFTMOUSE, KM_PRESS, 0, 0);
170
 
        RNA_boolean_set(WM_keymap_add_item(keymap, "NLA_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", 1);
 
178
        kmi = WM_keymap_add_item(keymap, "NLA_OT_channels_click", LEFTMOUSE, KM_PRESS, 0, 0);
 
179
        RNA_boolean_set(kmi->ptr, "extend", FALSE);
 
180
        kmi = WM_keymap_add_item(keymap, "NLA_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
 
181
        RNA_boolean_set(kmi->ptr, "extend", TRUE);
171
182
        
172
183
        /* channel operations */
173
184
                /* add tracks */
174
 
        WM_keymap_add_item(keymap, "NLA_OT_tracks_add", AKEY, KM_PRESS, KM_SHIFT, 0);
175
 
        RNA_boolean_set(WM_keymap_add_item(keymap, "NLA_OT_tracks_add", AKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "above_selected", 1);
 
185
        kmi = WM_keymap_add_item(keymap, "NLA_OT_tracks_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 
186
        RNA_boolean_set(kmi->ptr, "above_selected", FALSE);
 
187
        kmi = WM_keymap_add_item(keymap, "NLA_OT_tracks_add", AKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
 
188
        RNA_boolean_set(kmi->ptr, "above_selected", TRUE);
176
189
        
177
190
                /* delete tracks */
178
191
        WM_keymap_add_item(keymap, "NLA_OT_delete_tracks", XKEY, KM_PRESS, 0, 0);
179
192
        WM_keymap_add_item(keymap, "NLA_OT_delete_tracks", DELKEY, KM_PRESS, 0, 0);
180
 
        
181
 
        /* General Animation Channels keymap (see anim_channels.c) ----------------------- */
182
 
        /* selection */
183
 
                /* borderselect - not in tweakmode */ 
184
 
        WM_keymap_add_item(keymap, "ANIM_OT_channels_select_border", BKEY, KM_PRESS, 0, 0);
185
 
                
186
 
                /* deselect all - not in tweakmode */
187
 
        WM_keymap_add_item(keymap, "ANIM_OT_channels_select_all_toggle", AKEY, KM_PRESS, 0, 0);
188
 
        RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_select_all_toggle", IKEY, KM_PRESS, KM_CTRL, 0)->ptr, "invert", 1);
189
 
        
190
 
        /* settings */
191
 
        WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
192
 
        WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_enable", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
193
 
        WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_disable", WKEY, KM_PRESS, KM_ALT, 0);
194
 
        
195
 
        /* settings - specialised hotkeys */
196
 
        WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0);
197
 
        
198
 
        /* expand/collapse */
199
 
        WM_keymap_add_item(keymap, "ANIM_OT_channels_expand", PADPLUSKEY, KM_PRESS, 0, 0);
200
 
        WM_keymap_add_item(keymap, "ANIM_OT_channels_collapse", PADMINUS, KM_PRESS, 0, 0);
201
 
        
202
 
        RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_expand", PADPLUSKEY, KM_PRESS, KM_CTRL, 0)->ptr, "all", 1);
203
 
        RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_collapse", PADMINUS, KM_PRESS, KM_CTRL, 0)->ptr, "all", 1);
204
193
}
205
194
 
206
195
static void nla_keymap_main (wmKeyConfig *keyconf, wmKeyMap *keymap)
209
198
        
210
199
        /* selection */
211
200
                /* click select */
212
 
        WM_keymap_add_item(keymap, "NLA_OT_click_select", SELECTMOUSE, KM_PRESS, 0, 0);
213
 
        kmi= WM_keymap_add_item(keymap, "NLA_OT_click_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
214
 
                RNA_boolean_set(kmi->ptr, "extend", 1);
215
 
        kmi= WM_keymap_add_item(keymap, "NLA_OT_click_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
216
 
                RNA_enum_set(kmi->ptr, "left_right", NLAEDIT_LRSEL_TEST);       
 
201
        kmi = WM_keymap_add_item(keymap, "NLA_OT_click_select", SELECTMOUSE, KM_PRESS, 0, 0);
 
202
                RNA_boolean_set(kmi->ptr, "extend", FALSE);
 
203
        kmi = WM_keymap_add_item(keymap, "NLA_OT_click_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 
204
                RNA_boolean_set(kmi->ptr, "extend", TRUE);
 
205
                
 
206
                /* select left/right */
 
207
        kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 
208
                RNA_boolean_set(kmi->ptr, "extend", FALSE);
 
209
                RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_TEST);
 
210
        kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
 
211
                RNA_boolean_set(kmi->ptr, "extend", TRUE);
 
212
                RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_TEST);
 
213
        
 
214
        kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", LEFTBRACKETKEY, KM_PRESS, 0, 0);
 
215
                RNA_boolean_set(kmi->ptr, "extend", FALSE);
 
216
                RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_LEFT);
 
217
        kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
 
218
                RNA_boolean_set(kmi->ptr, "extend", FALSE);
 
219
                RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_RIGHT);
 
220
                
217
221
        
218
222
                /* deselect all */
219
 
        WM_keymap_add_item(keymap, "NLA_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
220
 
        RNA_boolean_set(WM_keymap_add_item(keymap, "NLA_OT_select_all_toggle", IKEY, KM_PRESS, KM_CTRL, 0)->ptr, "invert", 1);
 
223
                /* TODO: uniformize with other select_all ops? */
 
224
        kmi = WM_keymap_add_item(keymap, "NLA_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
 
225
                RNA_boolean_set(kmi->ptr, "invert", FALSE);
 
226
        kmi = WM_keymap_add_item(keymap, "NLA_OT_select_all_toggle", IKEY, KM_PRESS, KM_CTRL, 0);
 
227
                RNA_boolean_set(kmi->ptr, "invert", TRUE);
221
228
        
222
229
                /* borderselect */
223
 
        WM_keymap_add_item(keymap, "NLA_OT_select_border", BKEY, KM_PRESS, 0, 0);
224
 
        RNA_boolean_set(WM_keymap_add_item(keymap, "NLA_OT_select_border", BKEY, KM_PRESS, KM_ALT, 0)->ptr, "axis_range", 1);
 
230
        kmi = WM_keymap_add_item(keymap, "NLA_OT_select_border", BKEY, KM_PRESS, 0, 0);
 
231
                RNA_boolean_set(kmi->ptr, "axis_range", FALSE);
 
232
        kmi = WM_keymap_add_item(keymap, "NLA_OT_select_border", BKEY, KM_PRESS, KM_ALT, 0);
 
233
                RNA_boolean_set(kmi->ptr, "axis_range", TRUE);
225
234
        
 
235
        /* view*/
 
236
                /* auto-set range */
 
237
        //WM_keymap_add_item(keymap, "NLA_OT_previewrange_set", PKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
 
238
        WM_keymap_add_item(keymap, "NLA_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 
239
        WM_keymap_add_item(keymap, "NLA_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
226
240
        
227
241
        /* editing */
228
242
                /* tweakmode 
235
249
                /* add strips */
236
250
        WM_keymap_add_item(keymap, "NLA_OT_actionclip_add", AKEY, KM_PRESS, KM_SHIFT, 0);
237
251
        WM_keymap_add_item(keymap, "NLA_OT_transition_add", TKEY, KM_PRESS, KM_SHIFT, 0);
 
252
        WM_keymap_add_item(keymap, "NLA_OT_soundclip_add", KKEY, KM_PRESS, KM_SHIFT, 0);
238
253
        
239
254
                /* meta-strips */
240
255
        WM_keymap_add_item(keymap, "NLA_OT_meta_add", GKEY, KM_PRESS, KM_SHIFT, 0);
253
268
                /* toggles */
254
269
        WM_keymap_add_item(keymap, "NLA_OT_mute_toggle", HKEY, KM_PRESS, 0, 0);
255
270
        
 
271
                /* swap */
 
272
        WM_keymap_add_item(keymap, "NLA_OT_swap", FKEY, KM_PRESS, KM_ALT, 0);
 
273
                
256
274
                /* move up */
257
275
        WM_keymap_add_item(keymap, "NLA_OT_move_up", PAGEUPKEY, KM_PRESS, 0, 0);
258
276
                /* move down */
271
289
        
272
290
        /* transform system */
273
291
        transform_keymap_for_space(keyconf, keymap, SPACE_NLA);
 
292
        
 
293
        /* special markers hotkeys for anim editors: see note in definition of this function */
 
294
        ED_marker_keymap_animedit_conflictfree(keymap);
274
295
}
275
296
 
276
297
/* --------------- */
280
301
        wmKeyMap *keymap;
281
302
        
282
303
        /* keymap for all regions */
283
 
        keymap= WM_keymap_find(keyconf, "NLA Generic", SPACE_NLA, 0);
 
304
        keymap = WM_keymap_find(keyconf, "NLA Generic", SPACE_NLA, 0);
284
305
        WM_keymap_add_item(keymap, "NLA_OT_properties", NKEY, KM_PRESS, 0, 0);
285
306
        
286
307
        /* channels */
290
311
         *
291
312
         * However, those operations which involve clicking on channels and/or the placement of them in the view are implemented here instead
292
313
         */
293
 
        keymap= WM_keymap_find(keyconf, "NLA Channels", SPACE_NLA, 0);
294
 
        nla_keymap_channels(keyconf, keymap);
 
314
        keymap = WM_keymap_find(keyconf, "NLA Channels", SPACE_NLA, 0);
 
315
        nla_keymap_channels(keymap);
295
316
        
296
317
        /* data */
297
 
        keymap= WM_keymap_find(keyconf, "NLA Editor", SPACE_NLA, 0);
 
318
        keymap = WM_keymap_find(keyconf, "NLA Editor", SPACE_NLA, 0);
298
319
        nla_keymap_main(keyconf, keymap);
299
320
}
300
321