4
4
* Functions to draw the "Video Sequence Editor" window header
5
5
* and handle user events sent to it.
7
* $Id: header_seq.c,v 1.29 2006/07/07 09:39:37 ton Exp $
7
* $Id: header_seq.c 14772 2008-05-09 20:08:28Z campbellbarton $
9
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
9
* ***** BEGIN GPL LICENSE BLOCK *****
11
11
* This program is free software; you can redistribute it and/or
12
12
* modify it under the terms of the GNU General Public License
13
13
* as published by the Free Software Foundation; either version 2
14
* of the License, or (at your option) any later version. The Blender
15
* Foundation also sells licenses for use in proprietary software under
16
* the Blender License. See http://www.blender.org/BL/ for information
14
* of the License, or (at your option) any later version.
19
16
* This program is distributed in the hope that it will be useful,
20
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
114
112
block= uiNewBlock(&curarea->uiblocks, "seq_viewmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
115
113
uiBlockSetButmFunc(block, do_seq_viewmenu, NULL);
117
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Play Back Animation|Alt A", 0, yco-=20,
118
menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
119
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Play Back Animation in 3D View|Alt Shift A", 0, yco-=20,
120
menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
115
if (sseq->mainb == 0) {
116
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
117
"Play Back Animation "
118
"in all Sequence Areas|Alt A", 0, yco-=20,
119
menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
121
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
122
"Play Back Animation "
123
"in this window|Alt A", 0, yco-=20,
124
menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
126
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1,
127
"Play Back Animation in all "
128
"3D Views and Sequence Areas|Alt Shift A",
130
menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
122
132
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
125
135
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "View Selected|NumPad .", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
126
136
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
130
140
uiDefIconTextBut(block, BUTM, 1, (G.v2d->flag & V2D_VIEWLOCK)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
131
141
"Lock Time to Other Windows|", 0, yco-=20,
132
142
menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
134
144
/* Draw time or frames.*/
135
145
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
177
209
block= uiNewBlock(&curarea->uiblocks, "seq_selectmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
178
210
uiBlockSetButmFunc(block, do_seq_selectmenu, NULL);
212
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Strips to the Left", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
213
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Strips to the Right", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
214
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
215
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Surrounding Handles", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
216
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Left Handles", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
217
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Right Handles", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
218
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
180
219
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
181
220
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
182
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
221
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Linked|Ctrl L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
222
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All Strips|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
223
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All Markers|Ctrl A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
184
226
if(curarea->headertype==HEADERTOP) {
185
227
uiBlockSetDirection(block, UI_DOWN);
252
303
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Alpha Over Drop", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
253
304
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Wipe", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 9, "");
254
305
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Glow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
306
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
307
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Color Generator", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, "");
308
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Speed Control", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 13, "");
255
309
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
256
310
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Plugin...", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
384
470
block= uiNewBlock(&curarea->uiblocks, "seq_editmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
385
471
uiBlockSetButmFunc(block, do_seq_editmenu, NULL);
387
uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Strip Properties...|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
389
473
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grab/Move|G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
474
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grab/Extend from frame|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
390
475
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap to Current Frame|Shift S, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
392
477
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
394
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cut at Current Frame|K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
479
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cut (hard) at Current Frame|K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
480
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cut (soft) at Current Frame|Shift-K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 23, "");
481
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Separate Images to Strips|Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 16, "");
396
483
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
401
488
if (last_seq != NULL && last_seq->type != SEQ_MOVIE) {
402
489
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
404
if(last_seq->type >= SEQ_EFFECT) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Change Effect...|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
491
if(last_seq->type >= SEQ_EFFECT) {
492
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Change Effect...|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
493
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reassign Inputs|R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, "");
405
495
else if(last_seq->type == SEQ_IMAGE) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Change Image...|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
406
496
else uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Change Scene...|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
409
/* if (last_seq != NULL && last_seq->type == SEQ_MOVIE) {
410
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Set Filter Y|F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
498
if(last_seq->type==SEQ_IMAGE)
499
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Remap Paths...|Shift R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 15, "");
503
if (last_seq != NULL && last_seq->type == SEQ_MOVIE) {
504
/* uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Set Filter Y|F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, ""); */
505
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
506
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Remap Paths...|Shift R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 15, "");
414
510
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
415
511
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Meta Strip...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
524
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
525
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reload Strip Data...|Alt R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 17, "");
526
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
527
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Lock Strips...|Shift L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 18, "");
528
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Unlock Strips...|Alt-Shift L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 19, "");
529
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Mute Strips...|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 20, "");
530
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Unmute Strips...|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 21, "");
531
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Mute Deselected Strips...|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 22, "");
429
534
if(curarea->headertype==HEADERTOP) {
430
535
uiBlockSetDirection(block, UI_DOWN);
547
static void do_seq_markermenu(void *arg, int event)
549
SpaceSeq *sseq= curarea->spacedata.first;
566
transform_markers('g', 0);
569
sseq->flag ^= SEQ_MARKER_TRANS;
574
allqueue(REDRAWMARKER, 0);
577
static uiBlock *seq_markermenu(void *arg_unused)
580
short yco= 0, menuwidth=120;
582
SpaceSeq *sseq= curarea->spacedata.first;
584
block= uiNewBlock(&curarea->uiblocks, "ipo_markermenu",
585
UI_EMBOSSP, UI_HELV, curarea->headwin);
586
uiBlockSetButmFunc(block, do_seq_markermenu, NULL);
588
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Add Marker|Ctrl Alt M", 0, yco-=20,
589
menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
590
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate Marker|Ctrl Shift D", 0, yco-=20,
591
menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
592
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete Marker", 0, yco-=20,
593
menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
595
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
597
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "(Re)Name Marker|Ctrl M", 0, yco-=20,
598
menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
599
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grab/Move Marker|Ctrl G", 0, yco-=20,
600
menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
602
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
604
uiDefIconTextBut(block, BUTM, 1, (sseq->flag & SEQ_MARKER_TRANS)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
605
"Transform Markers", 0, yco-=20,
606
menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
608
if(curarea->headertype==HEADERTOP) {
609
uiBlockSetDirection(block, UI_DOWN);
611
uiBlockSetDirection(block, UI_TOP);
612
uiBlockFlipOrder(block);
615
uiTextBoundsBlock(block, 50);
443
620
void do_seq_buttons(short event)
446
SpaceSeq *sseq= curarea->spacedata.first;
449
625
if(ed==0) return;
454
seq_reset_imageofs(sseq);
456
G.v2d->cur= G.v2d->tot;
457
test_view2d(G.v2d, curarea->winx, curarea->winy);
458
view2d_do_locks(curarea, V2D_LOCK_COPY);
460
scrarea_queue_winredraw(curarea);
463
632
free_imbuf_seq();
509
678
xmax= GetButStringLength("View");
510
679
uiDefPulldownBut(block,seq_viewmenu, NULL, "View", xco, -2, xmax-3, 24, "");
513
xmax= GetButStringLength("Select");
514
uiDefPulldownBut(block,seq_selectmenu, NULL, "Select", xco, -2, xmax-3, 24, "");
517
xmax= GetButStringLength("Add");
518
uiDefPulldownBut(block, seq_addmenu, NULL, "Add", xco, -2, xmax-3, 24, "");
521
xmax= GetButStringLength("Strip");
522
uiDefPulldownBut(block, seq_editmenu, NULL, "Strip", xco, -2, xmax-3, 24, "");
681
if (sseq->mainb == 0) {
682
xmax= GetButStringLength("Select");
683
uiDefPulldownBut(block,seq_selectmenu, NULL, "Select", xco, -2, xmax-3, 24, "");
686
xmax= GetButStringLength("Marker");
687
uiDefPulldownBut(block,seq_markermenu, NULL, "Marker", xco, -2, xmax-3, 24, "");
690
xmax= GetButStringLength("Add");
691
uiDefPulldownBut(block, seq_addmenu, NULL, "Add", xco, -2, xmax-3, 24, "");
694
xmax= GetButStringLength("Strip");
695
uiDefPulldownBut(block, seq_editmenu, NULL, "Strip", xco, -2, xmax-3, 24, "");
525
699
/* end of pull down menus */
526
700
uiBlockSetEmboss(block, UI_EMBOSS);
533
707
"|Image Preview %x1"
534
708
"|Luma Waveform %x2"
535
"|Chroma Vectorscope %x3",
709
"|Chroma Vectorscope %x3"
536
711
xco,0,XIC+10,YIC, &sseq->mainb, 0.0, 3.0,
538
713
"Shows the sequence output image preview");
540
715
xco+= 8 + XIC+10;
542
/* CHANNEL shown in 3D preview */
543
717
if(sseq->mainb) {
720
/* CHANNEL shown in image preview */
722
if (G.scene->ed && ((Editing*)G.scene->ed)->metastack.first)
723
minchan = -BLI_countlist(&((Editing*)G.scene->ed)->metastack);
544
725
uiDefButS(block, NUM, B_REDR, "Chan:",
545
xco, 0, 3.5 * XIC,YIC,
546
&sseq->chanshown, 0, MAXSEQ, 0, 0,
547
"The channel number shown in the image preview. 0 is the result of all strips combined.");
726
xco, 0, 3.5 * XIC,YIC,
727
&sseq->chanshown, minchan, MAXSEQ, 0, 0,
728
"The channel number shown in the image preview. 0 is the result of all strips combined.");
549
730
xco+= 8 + XIC*3.5;
732
if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
733
uiDefButS(block, MENU, B_REDR,
741
xco,0,3.0 * XIC, YIC, &sseq->zebra,
744
"areas with zebra stripes");
748
uiDefButBitI(block, TOG, SEQ_DRAW_SAFE_MARGINS,
750
xco,0,XIC,YIC, &sseq->flag,
752
"Draw title safe margins in preview");
756
if (sseq->mainb == SEQ_DRAW_IMG_WAVEFORM) {
757
uiDefButBitI(block, TOG, SEQ_DRAW_COLOR_SEPERATED,
759
xco,0,XIC,YIC, &sseq->flag,
761
"Seperate color channels in preview");
765
/* ZOOM and BORDER */
766
uiDefIconButI(block, TOG, B_VIEW2DZOOM,
768
xco,0,XIC,YIC, &viewmovetemp,
770
"Zooms view in and out (Ctrl MiddleMouse)");
772
uiDefIconBut(block, BUT, B_IPOBORDER,
776
"Zooms view to fit area");
553
/* ZOOM and BORDER */
555
uiBlockBeginAlign(block);
556
uiDefIconButI(block, TOG, B_VIEW2DZOOM, ICON_VIEWZOOM, xco,0,XIC,YIC, &viewmovetemp, 0, 0, 0, 0, "Zooms view in and out (Ctrl MiddleMouse)");
557
uiDefIconBut(block, BUT, B_IPOBORDER, ICON_BORDERMOVE, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Zooms view to fit area");
558
uiBlockEndAlign(block);
563
uiDefBut(block, BUT, B_SEQCLEAR, "Refresh", xco+=XIC,0,3*XIC,YIC, 0, 0, 0, 0, 0, "Clears all buffered images in memory");
780
uiDefBut(block, BUT, B_SEQCLEAR, "Refresh", xco,0,3*XIC,YIC, 0, 0, 0, 0, 0, "Clears all buffered images in memory");
565
782
uiDrawBlock(block);