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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorPeter Schlaile <peter@schlaile.de>2007-12-26 19:07:16 +0300
committerPeter Schlaile <peter@schlaile.de>2007-12-26 19:07:16 +0300
commit237ba0291a31ce50f2a888cad03169022a39ad87 (patch)
treedb73f77460aa248321f8eb9086545ac3d9d34fd4 /source
parentdebf29022a1a720cc1ea324ca3d345f8663a84fc (diff)
== Sequencer ==
Moved N-keys dialog into panel (sub panel of "Scene") _much_ better :) Since UI-code isn't directly my main field of coding, please check thoroughly...
Diffstat (limited to 'source')
-rw-r--r--source/blender/include/BIF_butspace.h3
-rw-r--r--source/blender/include/BIF_editseq.h2
-rw-r--r--source/blender/include/butspace.h11
-rw-r--r--source/blender/src/butspace.c5
-rw-r--r--source/blender/src/buttons_scene.c505
-rw-r--r--source/blender/src/drawseq.c529
-rw-r--r--source/blender/src/editseq.c1
-rw-r--r--source/blender/src/header_buttonswin.c9
-rw-r--r--source/blender/src/header_seq.c5
-rw-r--r--source/blender/src/space.c18
10 files changed, 540 insertions, 548 deletions
diff --git a/source/blender/include/BIF_butspace.h b/source/blender/include/BIF_butspace.h
index df60a0c9a08..9d5e1961178 100644
--- a/source/blender/include/BIF_butspace.h
+++ b/source/blender/include/BIF_butspace.h
@@ -86,9 +86,10 @@ extern void validate_editbonebutton_cb(void *bonev, void *namev);
#define TAB_OBJECT_PARTICLE 2
#define TAB_SCENE_RENDER 0
-#define TAB_SCENE_WORLD 1
+#define TAB_SCENE_WORLD 1
#define TAB_SCENE_ANIM 2
#define TAB_SCENE_SOUND 3
+#define TAB_SCENE_SEQUENCER 4
/* buts->scaflag */
diff --git a/source/blender/include/BIF_editseq.h b/source/blender/include/BIF_editseq.h
index 13cb059d885..92046f74009 100644
--- a/source/blender/include/BIF_editseq.h
+++ b/source/blender/include/BIF_editseq.h
@@ -128,8 +128,6 @@ start and end are from the start and fixed length of the sequence.
(seq)->endstill = 0; \
}
*/
-/* drawseq.c */
-void do_seqbuttons(short);
#endif
diff --git a/source/blender/include/butspace.h b/source/blender/include/butspace.h
index 7b6213be38f..7eabc367782 100644
--- a/source/blender/include/butspace.h
+++ b/source/blender/include/butspace.h
@@ -64,6 +64,8 @@ extern void do_render_panels(unsigned short event);
extern void anim_panels(void);
extern void sound_panels(void);
extern void do_soundbuts(unsigned short event);
+extern void sequencer_panels(void);
+extern void do_sequencer_panels(unsigned short event);
/* object */
extern void object_panels(void);
@@ -298,7 +300,8 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la
#define B_AO_FALLOFF 1506
/* *********************** */
-#define B_RENDERBUTS 1700
+#define B_RENDERBUTS 1690
+#define B_SEQUENCERBUTS 1699
#define B_FS_PIC 1601
#define B_FS_BACKBUF 1602
@@ -347,6 +350,12 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la
#define B_ADD_RENDERLAYER 1645
#define B_SET_PASS 1646
+#define B_SEQ_BUT_PLUGIN 1691
+#define B_SEQ_BUT_RELOAD 1692
+#define B_SEQ_BUT_EFFECT 1693
+#define B_SEQ_BUT_RELOAD_ALL 1694
+#define B_SEQ_BUT_TRANSFORM 1695
+
/* *********************** */
#define B_ARMATUREBUTS 1800
#define B_POSE 1701
diff --git a/source/blender/src/butspace.c b/source/blender/src/butspace.c
index 2eddd362b62..e8062422e2a 100644
--- a/source/blender/src/butspace.c
+++ b/source/blender/src/butspace.c
@@ -572,6 +572,9 @@ void do_butspace(unsigned short event)
else if(event<=B_RENDERBUTS) {
do_render_panels(event); // buttons_scene.c
}
+ else if(event<=B_SEQUENCERBUTS) {
+ do_sequencer_panels(event);
+ }
else if(event<=B_COMMONEDITBUTS) {
do_common_editbuts(event);
}
@@ -725,6 +728,8 @@ void drawbutspace(ScrArea *sa, void *spacedata)
if(tab== TAB_SCENE_RENDER)
render_panels();
+ else if(tab == TAB_SCENE_SEQUENCER)
+ sequencer_panels();
else if(tab == TAB_SCENE_ANIM)
anim_panels();
else if(tab == TAB_SCENE_SOUND)
diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c
index 8fd74ddc08e..b6b8805ba5c 100644
--- a/source/blender/src/buttons_scene.c
+++ b/source/blender/src/buttons_scene.c
@@ -41,6 +41,7 @@
#include "DNA_space_types.h"
#include "DNA_scene_types.h"
#include "DNA_sound_types.h"
+#include "DNA_sequence_types.h"
#include "DNA_userdef_types.h"
#include "DNA_packedFile_types.h"
@@ -71,6 +72,7 @@
#include "BIF_screen.h"
#include "BIF_space.h"
#include "BIF_toolbox.h"
+#include "BIF_editseq.h"
#include "BIF_butspace.h"
@@ -84,6 +86,7 @@
#include "BKE_writeavi.h"
#include "BKE_writeffmpeg.h"
#include "BKE_image.h"
+#include "BKE_plugin_types.h"
#include "BLI_threads.h"
@@ -91,8 +94,11 @@
#include "BIF_writeimage.h"
#include "BIF_writeavicodec.h"
-#include "BSE_seqaudio.h"
#include "BSE_headerbuttons.h"
+#include "BSE_sequence.h"
+#include "BSE_seqeffects.h"
+#include "BSE_seqscopes.h"
+#include "BSE_seqaudio.h"
#include "RE_pipeline.h"
@@ -466,6 +472,503 @@ static void sound_panel_sound(bSound *sound)
}
}
+/* ************************* Sequencer *********************** */
+
+#define SEQ_PANEL_EDITING 1
+#define SEQ_PANEL_INPUT 2
+#define SEQ_PANEL_FILTER 4
+#define SEQ_PANEL_EFFECT 8
+#define SEQ_PANEL_PROXY 16
+
+static char* seq_panel_blend_modes()
+{
+ static char string[2048];
+ char formatstring[2048];
+
+ strcpy(formatstring, "Blend mode: %%t|%s %%x%d|%s %%x%d");
+ sprintf(string, formatstring,
+ "REPLACE", SEQ_BLEND_REPLACE,
+ "TODO: ALPHA OVER", SEQ_BLEND_ALPHA_OVER);
+ return string;
+
+}
+
+static void seq_panel_editing()
+{
+ Sequence *last_seq = get_last_seq();
+ char * seq_names[] = { "Image", "Meta", "Scene", "Movie",
+ "Snd RAM", "Snd HD",
+ "", "Effect" };
+ uiBlock *block;
+
+ block = uiNewBlock(&curarea->uiblocks, "seq_panel_editing",
+ UI_EMBOSS, UI_HELV, curarea->win);
+
+ if(uiNewPanel(curarea, block, "Edit", "Sequencer",
+ 10, 230, 318, 204) == 0) return;
+
+ uiDefBut(block, LABEL,
+ 0, (last_seq->type >= SEQ_EFFECT) ?
+ "Effect" : seq_names[last_seq->type],
+ 10,140,60,19, 0,
+ 0, 0, 0, 0, "");
+
+ uiDefBut(block, TEX,
+ B_NOP, "Name: ",
+ 70,140,180,19, last_seq->name+2,
+ 0.0, 21.0, 100, 0, "");
+
+ uiDefButI(block, MENU, B_SEQ_BUT_RELOAD, seq_panel_blend_modes(),
+ 10, 120, 120, 19, &last_seq->blend_mode,
+ 0,0,0,0, "Strip Blend Mode");
+
+ if (last_seq->blend_mode > 0) {
+ uiDefButF(block, NUM, B_SEQ_BUT_RELOAD, "Blend:",
+ 130, 120, 120, 19, &last_seq->blend_opacity,
+ 0.0, 100.0, 100.0, 0,
+ "Blend opacity");
+ }
+
+ uiDefButBitI(block, TOG, SEQ_MUTE,
+ B_SEQ_BUT_RELOAD_ALL, "Mute",
+ 10,100,60,19, &last_seq->flag,
+ 0.0, 1.0, 0, 0,
+ "Mute the current strip.");
+
+ uiDefButBitI(block, TOG, SEQ_LOCK,
+ B_NOP, "Lock",
+ 70,100,60,19, &last_seq->flag,
+ 0.0, 1.0, 0, 0,
+ "Lock strip, so that it can't be transformed.");
+
+ uiDefButBitI(block, TOG, SEQ_IPO_FRAME_LOCKED,
+ B_SEQ_BUT_RELOAD_ALL, "IPO Frame locked",
+ 130,100,120,19, &last_seq->flag,
+ 0.0, 1.0, 0, 0,
+ "Lock the IPO coordinates to the "
+ "global frame counter.");
+
+ if (!(last_seq->flag & SEQ_LOCK)) {
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_TRANSFORM, "Start",
+ 10, 80, 120, 20, &last_seq->start,
+ 0.0, MAXFRAMEF, 0.0, 0.0, "Start of strip");
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_TRANSFORM, "Chan",
+ 130, 80, 120, 20, &last_seq->machine,
+ 0.0, MAXSEQ, 0.0, 0.0, "Channel used (Y position)");
+
+ if (last_seq->type == SEQ_IMAGE) {
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_TRANSFORM, "Start-Still",
+ 10, 60, 120, 20, &last_seq->startstill,
+ 0.0, MAXFRAMEF, 0.0, 0.0, "Start still");
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_TRANSFORM, "End-Still",
+ 130, 60, 120, 19, &last_seq->endstill,
+ 0.0, MAXFRAMEF, 0.0, 0.0, "End still");
+ } else {
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_TRANSFORM, "Start-Ofs",
+ 10, 60, 120, 20, &last_seq->startofs,
+ 0.0, last_seq->len, 0.0, 0.0, "Start offset");
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_TRANSFORM, "End-Ofs",
+ 130, 60, 120, 19, &last_seq->endofs,
+ 0.0, last_seq->len, 0.0, 0.0, "End offset");
+ }
+ }
+}
+
+static void seq_panel_input()
+{
+ Sequence *last_seq = get_last_seq();
+ uiBlock *block;
+ block = uiNewBlock(&curarea->uiblocks, "seq_panel_input",
+ UI_EMBOSS, UI_HELV, curarea->win);
+
+ if(uiNewPanel(curarea, block, "Input", "Sequencer",
+ 10, 230, 318, 204) == 0) return;
+
+
+ uiDefButBitI(block, TOG, SEQ_USE_CROP,
+ B_SEQ_BUT_RELOAD, "Use Crop",
+ 10,100,240,19, &last_seq->flag,
+ 0.0, 1.0, 0, 0,
+ "Crop image before processing.");
+
+ if (last_seq->flag & SEQ_USE_CROP) {
+ if (!last_seq->strip->crop) {
+ last_seq->strip->crop =
+ MEM_callocN(sizeof(struct StripCrop),
+ "StripCrop");
+ }
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_RELOAD, "Top",
+ 10, 80, 120, 20, &last_seq->strip->crop->top,
+ 0.0, 4096, 0.0, 0.0, "Top of source image");
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_RELOAD, "Bottom",
+ 130, 80, 120, 20, &last_seq->strip->crop->bottom,
+ 0.0, 4096, 0.0, 0.0, "Bottom of source image");
+
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_RELOAD, "Left",
+ 10, 60, 120, 20, &last_seq->strip->crop->left,
+ 0.0, 4096, 0.0, 0.0, "Left");
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_RELOAD, "Right",
+ 130, 60, 120, 19, &last_seq->strip->crop->right,
+ 0.0, 4096, 0.0, 0.0, "Right");
+ }
+
+ uiDefButBitI(block, TOG, SEQ_USE_TRANSFORM,
+ B_SEQ_BUT_RELOAD, "Use Translate",
+ 10,40,240,19, &last_seq->flag,
+ 0.0, 1.0, 0, 0,
+ "Translate image before processing.");
+
+ if (last_seq->flag & SEQ_USE_TRANSFORM) {
+ if (!last_seq->strip->transform) {
+ last_seq->strip->transform =
+ MEM_callocN(sizeof(struct StripTransform),
+ "StripTransform");
+ }
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_RELOAD, "X-Ofs",
+ 10, 20, 120, 20, &last_seq->strip->transform->xofs,
+ 0.0, 4096, 0.0, 0.0, "X Offset");
+ uiDefButI(block, NUM,
+ B_SEQ_BUT_RELOAD, "Y-Ofs",
+ 130, 20, 120, 20, &last_seq->strip->transform->yofs,
+ 0.0, 4096, 0.0, 0.0, "Y Offset");
+ }
+
+
+ uiDefButI(block, NUM, B_SEQ_BUT_RELOAD, "Preseek:",
+ 10,0,150,19, &last_seq->anim_preseek,
+ 0.0, 50.0, 100,0,"On MPEG-seeking preseek this many frames");
+
+}
+
+static void seq_panel_filter_video()
+{
+ Sequence *last_seq = get_last_seq();
+ uiBlock *block;
+ block = uiNewBlock(&curarea->uiblocks, "seq_panel_filter",
+ UI_EMBOSS, UI_HELV, curarea->win);
+
+ if(uiNewPanel(curarea, block, "Filter", "Sequencer",
+ 10, 230, 318, 204) == 0) return;
+
+
+ uiBlockBeginAlign(block);
+
+
+ uiDefButBitI(block, TOG, SEQ_MAKE_PREMUL,
+ B_SEQ_BUT_RELOAD, "Convert to Premul",
+ 10,110,150,19, &last_seq->flag,
+ 0.0, 21.0, 100, 0,
+ "Converts RGB values to become premultiplied with Alpha");
+
+ uiDefButBitI(block, TOG, SEQ_FILTERY,
+ B_SEQ_BUT_RELOAD, "FilterY",
+ 10,90,75,19, &last_seq->flag,
+ 0.0, 21.0, 100, 0,
+ "For video movies to remove fields");
+
+ uiDefButBitI(block, TOG, SEQ_MAKE_FLOAT,
+ B_SEQ_BUT_RELOAD, "Make Float",
+ 85,90,75,19, &last_seq->flag,
+ 0.0, 21.0, 100, 0,
+ "Convert input to float data");
+
+ uiDefButBitI(block, TOG, SEQ_FLIPX,
+ B_SEQ_BUT_RELOAD, "FlipX",
+ 10,70,75,19, &last_seq->flag,
+ 0.0, 21.0, 100, 0,
+ "Flip on the X axis");
+ uiDefButBitI(block, TOG, SEQ_FLIPY,
+ B_SEQ_BUT_RELOAD, "FlipY",
+ 85,70,75,19, &last_seq->flag,
+ 0.0, 21.0, 100, 0,
+ "Flip on the Y axis");
+
+ uiDefButF(block, NUM, B_SEQ_BUT_RELOAD, "Mul:",
+ 10,50,150,19, &last_seq->mul,
+ 0.001, 5.0, 100, 0,
+ "Multiply colors");
+
+ uiDefButBitI(block, TOG, SEQ_REVERSE_FRAMES,
+ B_SEQ_BUT_RELOAD, "Reverse Frames",
+ 10,30,150,19, &last_seq->flag,
+ 0.0, 21.0, 100, 0,
+ "Reverse frame order");
+
+ uiDefButF(block, NUM, B_SEQ_BUT_RELOAD, "Strobe:",
+ 10,10,150,19, &last_seq->strobe,
+ 1.0, 30.0, 100, 0,
+ "Only display every nth frame");
+
+ uiBlockEndAlign(block);
+
+}
+
+
+static void seq_panel_filter_audio()
+{
+ Sequence *last_seq = get_last_seq();
+ uiBlock *block;
+ block = uiNewBlock(&curarea->uiblocks, "seq_panel_filter",
+ UI_EMBOSS, UI_HELV, curarea->win);
+
+ if(uiNewPanel(curarea, block, "Filter", "Sequencer",
+ 10, 230, 318, 204) == 0) return;
+
+ uiBlockBeginAlign(block);
+ uiDefButF(block, NUM, B_SEQ_BUT_RELOAD, "Gain (dB):", 10,50,150,19, &last_seq->level, -96.0, 6.0, 100, 0, "");
+ uiDefButF(block, NUM, B_SEQ_BUT_RELOAD, "Pan:", 10,30,150,19, &last_seq->pan, -1.0, 1.0, 100, 0, "");
+ uiBlockEndAlign(block);
+}
+
+static void seq_panel_effect()
+{
+ Sequence *last_seq = get_last_seq();
+ uiBlock *block;
+ block = uiNewBlock(&curarea->uiblocks, "seq_panel_effect",
+ UI_EMBOSS, UI_HELV, curarea->win);
+
+ if(uiNewPanel(curarea, block, "Effect", "Sequencer",
+ 10, 230, 318, 204) == 0) return;
+
+ if(last_seq->type == SEQ_PLUGIN) {
+ PluginSeq *pis;
+ VarStruct *varstr;
+ int a, xco, yco;
+
+ get_sequence_effect(last_seq);/* make sure, plugin is loaded */
+
+ pis= last_seq->plugin;
+ if(pis->vars==0) return;
+
+ varstr= pis->varstr;
+ if(varstr) {
+ for(a=0; a<pis->vars; a++, varstr++) {
+ xco= 150*(a/6)+10;
+ yco= 125 - 20*(a % 6)+1;
+ uiDefBut(block, varstr->type, B_SEQ_BUT_PLUGIN, varstr->name, xco,yco,150,19, &(pis->data[a]), varstr->min, varstr->max, 100, 0, varstr->tip);
+
+ }
+ }
+ return;
+ }
+
+ uiBlockBeginAlign(block);
+
+ if(last_seq->type==SEQ_WIPE){
+ WipeVars *wipe = (WipeVars *)last_seq->effectdata;
+ char formatstring[256];
+
+ strncpy(formatstring, "Transition Type %t|Single Wipe%x0|Double Wipe %x1|Iris Wipe %x4|Clock Wipe %x5", 255);
+ uiDefButS(block, MENU,B_SEQ_BUT_EFFECT, formatstring, 10,65,220,22, &wipe->wipetype, 0, 0, 0, 0, "What type of wipe should be performed");
+ uiDefButF(block, NUM,B_SEQ_BUT_EFFECT,"Blur:", 10,40,220,22, &wipe->edgeWidth,0.0,1.0, 1, 2, "The percent width of the blur edge");
+ switch(wipe->wipetype){ /*Skip Types that do not require angle*/
+ case DO_IRIS_WIPE:
+ case DO_CLOCK_WIPE:
+ break;
+
+ default:
+ uiDefButF(block, NUM,B_SEQ_BUT_EFFECT,"Angle:", 10,15,220,22, &wipe->angle,-90.0,90.0, 1, 2, "The Angle of the Edge");
+ }
+ uiDefButS(block, TOG,B_SEQ_BUT_EFFECT,"Wipe In", 10,-10,220,22, &wipe->forward,0,0, 0, 0, "Controls Primary Direction of Wipe");
+ } else if(last_seq->type==SEQ_GLOW){
+ GlowVars *glow = (GlowVars *)last_seq->effectdata;
+
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "Threshold:", 10,70,150,19, &glow->fMini, 0.0, 1.0, 0, 0, "Trigger Intensity");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "Clamp:", 10,50,150,19, &glow->fClamp, 0.0, 1.0, 0, 0, "Brightness limit of intensity");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "Boost factor:", 10,30,150,19, &glow->fBoost, 0.0, 10.0, 0, 0, "Brightness multiplier");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "Blur distance:", 10,10,150,19, &glow->dDist, 0.5, 20.0, 0, 0, "Radius of glow effect");
+ uiDefButI(block, NUM, B_NOP, "Quality:", 10,-5,150,19, &glow->dQuality, 1.0, 5.0, 0, 0, "Accuracy of the blur effect");
+ uiDefButI(block, TOG, B_NOP, "Only boost", 10,-25,150,19, &glow->bNoComp, 0.0, 0.0, 0, 0, "Show the glow buffer only");
+ }
+ else if(last_seq->type==SEQ_TRANSFORM){
+ TransformVars *transform = (TransformVars *)last_seq->effectdata;
+
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "xScale Start:", 10,70,150,19, &transform->ScalexIni, 0.0, 10.0, 0, 0, "X Scale Start");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "xScale End:", 160,70,150,19, &transform->ScalexFin, 0.0, 10.0, 0, 0, "X Scale End");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "yScale Start:", 10,50,150,19, &transform->ScaleyIni, 0.0, 10.0, 0, 0, "Y Scale Start");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "yScale End:", 160,50,150,19, &transform->ScaleyFin, 0.0, 10.0, 0, 0, "Y Scale End");
+
+ uiDefButI(block, ROW, B_SEQ_BUT_EFFECT, "Percent", 10, 30, 150, 19, &transform->percent, 0.0, 1.0, 0.0, 0.0, "Percent Translate");
+ uiDefButI(block, ROW, B_SEQ_BUT_EFFECT, "Pixels", 160, 30, 150, 19, &transform->percent, 0.0, 0.0, 0.0, 0.0, "Pixels Translate");
+ if(transform->percent==1){
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "x Start:", 10,10,150,19, &transform->xIni, -500.0, 500.0, 0, 0, "X Position Start");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "x End:", 160,10,150,19, &transform->xFin, -500.0, 500.0, 0, 0, "X Position End");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "y Start:", 10,-10,150,19, &transform->yIni, -500.0, 500.0, 0, 0, "Y Position Start");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "y End:", 160,-10,150,19, &transform->yFin, -500.0, 500.0, 0, 0, "Y Position End");
+ } else {
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "x Start:", 10,10,150,19, &transform->xIni, -10000.0, 10000.0, 0, 0, "X Position Start");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "x End:", 160,10,150,19, &transform->xFin, -10000.0, 10000.0, 0, 0, "X Position End");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "y Start:", 10,-10,150,19, &transform->yIni, -10000.0, 10000.0, 0, 0, "Y Position Start");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "y End:", 160,-10,150,19, &transform->yFin, -10000.0, 10000.0, 0, 0, "Y Position End");
+
+ }
+
+
+
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "rot Start:",10,-30,150,19, &transform->rotIni, 0.0, 360.0, 0, 0, "Rotation Start");
+ uiDefButF(block, NUM, B_SEQ_BUT_EFFECT, "rot End:",160,-30,150,19, &transform->rotFin, 0.0, 360.0, 0, 0, "Rotation End");
+
+ uiDefButI(block, ROW, B_SEQ_BUT_EFFECT, "No Interpolat", 10, -50, 100, 19, &transform->interpolation, 0.0, 0.0, 0.0, 0.0, "No interpolation");
+ uiDefButI(block, ROW, B_SEQ_BUT_EFFECT, "Bilinear", 101, -50, 100, 19, &transform->interpolation, 0.0, 1.0, 0.0, 0.0, "Bilinear interpolation");
+ uiDefButI(block, ROW, B_SEQ_BUT_EFFECT, "Bicubic", 202, -50, 100, 19, &transform->interpolation, 0.0, 2.0, 0.0, 0.0, "Bicubic interpolation");
+ } else if(last_seq->type==SEQ_COLOR) {
+ SolidColorVars *colvars = (SolidColorVars *)last_seq->effectdata;
+ uiDefButF(block, COL, B_SEQ_BUT_RELOAD, "",10,90,150,19, colvars->col, 0, 0, 0, 0, "");
+ } else if(last_seq->type==SEQ_SPEED){
+ SpeedControlVars *sp =
+ (SpeedControlVars *)last_seq->effectdata;
+
+ uiDefButF(block, NUM, B_SEQ_BUT_RELOAD, "Global Speed:", 10,70,150,19, &sp->globalSpeed, 0.0, 100.0, 0, 0, "Global Speed");
+
+ uiDefButBitI(block, TOG, SEQ_SPEED_INTEGRATE,
+ B_SEQ_BUT_RELOAD,
+ "IPO is velocity",
+ 10,50,150,19, &sp->flags,
+ 0.0, 1.0, 0, 0,
+ "Interpret the IPO value as a "
+ "velocity instead of a frame number");
+
+ uiDefButBitI(block, TOG, SEQ_SPEED_BLEND,
+ B_SEQ_BUT_RELOAD,
+ "Enable frame blending",
+ 10,30,150,19, &sp->flags,
+ 0.0, 1.0, 0, 0,
+ "Blend two frames into the "
+ "target for a smoother result");
+
+ uiDefButBitI(block, TOG, SEQ_SPEED_COMPRESS_IPO_Y,
+ B_SEQ_BUT_RELOAD,
+ "IPO value runs from [0..1]",
+ 10,10,150,19, &sp->flags,
+ 0.0, 1.0, 0, 0,
+ "Scale IPO value to get the "
+ "target frame number.");
+ }
+
+ uiBlockEndAlign(block);
+}
+
+static void seq_panel_proxy()
+{
+ Sequence *last_seq = get_last_seq();
+ uiBlock *block;
+ block = uiNewBlock(&curarea->uiblocks, "seq_panel_proxy",
+ UI_EMBOSS, UI_HELV, curarea->win);
+
+ if(uiNewPanel(curarea, block, "Proxy", "Sequencer",
+ 10, 230, 318, 204) == 0) return;
+
+ uiBlockBeginAlign(block);
+
+ uiDefButBitI(block, TOG, SEQ_USE_PROXY,
+ B_SEQ_BUT_RELOAD, "Use Proxy",
+ 10,140,150,19, &last_seq->flag,
+ 0.0, 21.0, 100, 0,
+ "Use a preview proxy for this strip");
+
+ if (last_seq->flag & SEQ_USE_PROXY) {
+
+
+ }
+
+ uiBlockEndAlign(block);
+}
+
+
+void sequencer_panels()
+{
+ Sequence *last_seq = get_last_seq();
+ int panels = 0;
+ int type;
+
+ if(last_seq == NULL) {
+ return;
+ }
+
+ type = last_seq->type;
+
+ panels = SEQ_PANEL_EDITING;
+
+ if (type == SEQ_MOVIE || type == SEQ_IMAGE || type == SEQ_SCENE
+ || type == SEQ_HD_SOUND) {
+ panels |= SEQ_PANEL_INPUT | SEQ_PANEL_FILTER | SEQ_PANEL_PROXY;
+ }
+
+ if (type == SEQ_RAM_SOUND) {
+ panels |= SEQ_PANEL_FILTER;
+ }
+
+ if (type == SEQ_PLUGIN || type >= SEQ_EFFECT) {
+ panels |= SEQ_PANEL_EFFECT | SEQ_PANEL_PROXY;
+ }
+
+ if (panels & SEQ_PANEL_EDITING) {
+ seq_panel_editing();
+ }
+
+ if (panels & SEQ_PANEL_INPUT) {
+ seq_panel_input();
+ }
+
+ if (panels & SEQ_PANEL_FILTER) {
+ if (type == SEQ_RAM_SOUND || type == SEQ_HD_SOUND) {
+ seq_panel_filter_audio();
+ } else {
+ seq_panel_filter_video();
+ }
+ }
+
+ if (panels & SEQ_PANEL_EFFECT) {
+ seq_panel_effect();
+ }
+
+ if (panels & SEQ_PANEL_PROXY) {
+ seq_panel_proxy();
+ }
+}
+
+
+void do_sequencer_panels(unsigned short event)
+{
+ Sequence *last_seq = get_last_seq();
+
+ switch(event) {
+ case B_SEQ_BUT_PLUGIN:
+ case B_SEQ_BUT_EFFECT:
+ update_changed_seq_and_deps(last_seq, 0, 1);
+ break;
+
+ case B_SEQ_BUT_RELOAD:
+ case B_SEQ_BUT_RELOAD_ALL:
+ update_seq_ipo_rect(last_seq);
+ update_seq_icu_rects(last_seq);
+
+ free_imbuf_seq(); // frees all
+
+ break;
+ case B_SEQ_BUT_TRANSFORM:
+ calc_sequence(last_seq);
+ break;
+ }
+
+ if (event == B_SEQ_BUT_RELOAD_ALL) {
+ allqueue(REDRAWALL, 0);
+ } else {
+ allqueue(REDRAWSEQ, 0);
+ }
+}
+
/* ************************* SCENE *********************** */
diff --git a/source/blender/src/drawseq.c b/source/blender/src/drawseq.c
index bcc47a7a1ca..b70a62cb65b 100644
--- a/source/blender/src/drawseq.c
+++ b/source/blender/src/drawseq.c
@@ -1052,529 +1052,7 @@ void seq_viewmove(SpaceSeq *sseq)
window_set_cursor(win, oldcursor);
}
-#define SEQ_BUT_PLUGIN 1
-#define SEQ_BUT_RELOAD 2
-#define SEQ_BUT_EFFECT 3
-#define SEQ_BUT_RELOAD_ALL 4
-#define SEQ_BUT_TRANSFORM 5
-void do_seqbuttons(short val)
-{
- Sequence *last_seq = get_last_seq();
-
- switch(val) {
- case SEQ_BUT_PLUGIN:
- case SEQ_BUT_EFFECT:
- update_changed_seq_and_deps(last_seq, 0, 1);
- break;
-
- case SEQ_BUT_RELOAD:
- case SEQ_BUT_RELOAD_ALL:
- update_seq_ipo_rect(last_seq);
- update_seq_icu_rects(last_seq);
-
- free_imbuf_seq(); // frees all
-
- break;
- case SEQ_BUT_TRANSFORM:
- calc_sequence(last_seq);
- break;
- }
-
- if (val == SEQ_BUT_RELOAD_ALL) {
- allqueue(REDRAWALL, 0);
- } else {
- allqueue(REDRAWSEQ, 0);
- }
-}
-
-#define SEQ_PANEL_EDITING 1
-#define SEQ_PANEL_INPUT 2
-#define SEQ_PANEL_FILTER 4
-#define SEQ_PANEL_EFFECT 8
-#define SEQ_PANEL_PROXY 16
-
-static char* seq_panal_blend_modes()
-{
- static char string[2048];
- char formatstring[2048];
-
- strcpy(formatstring, "Blend mode: %%t|%s %%x%d|%s %%x%d");
- sprintf(string, formatstring,
- "REPLACE", SEQ_BLEND_REPLACE,
- "TODO: ALPHA OVER", SEQ_BLEND_ALPHA_OVER);
- return string;
-
-}
-
-static void seq_panel_editing(short cntrl)
-{
- Sequence *last_seq = get_last_seq();
- char * seq_names[] = { "Image", "Meta", "Scene", "Movie",
- "Snd RAM", "Snd HD",
- "", "Effect" };
- uiBlock *block;
- block = uiNewBlock(&curarea->uiblocks, "seq_panel_editing",
- UI_EMBOSS, UI_HELV, curarea->win);
-
- uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl);
- uiSetPanelHandler(SEQ_HANDLER_PROPERTIES); // for close and esc
- if(uiNewPanel(curarea, block, "Edit", "Seq",
- 10, 230, 318, 204) == 0) return;
-
- uiDefBut(block, LABEL,
- 0, (last_seq->type >= SEQ_EFFECT) ?
- "Effect" : seq_names[last_seq->type],
- 10,140,60,19, 0,
- 0, 0, 0, 0, "");
-
- uiDefBut(block, TEX,
- B_NOP, "Name: ",
- 70,140,180,19, last_seq->name+2,
- 0.0, 21.0, 100, 0, "");
-
- uiDefButI(block, MENU, SEQ_BUT_RELOAD, seq_panal_blend_modes(),
- 10, 120, 120, 19, &last_seq->blend_mode,
- 0,0,0,0, "Strip Blend Mode");
-
- if (last_seq->blend_mode > 0) {
- uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Blend:",
- 130, 120, 120, 19, &last_seq->blend_opacity,
- 0.0, 100.0, 100.0, 0,
- "Blend opacity");
- }
-
- uiDefButBitI(block, TOG, SEQ_MUTE,
- SEQ_BUT_RELOAD_ALL, "Mute",
- 10,100,60,19, &last_seq->flag,
- 0.0, 1.0, 0, 0,
- "Mute the current strip.");
-
- uiDefButBitI(block, TOG, SEQ_LOCK,
- B_NOP, "Lock",
- 70,100,60,19, &last_seq->flag,
- 0.0, 1.0, 0, 0,
- "Lock strip, so that it can't be transformed.");
-
- uiDefButBitI(block, TOG, SEQ_IPO_FRAME_LOCKED,
- SEQ_BUT_RELOAD_ALL, "IPO Frame locked",
- 130,100,120,19, &last_seq->flag,
- 0.0, 1.0, 0, 0,
- "Lock the IPO coordinates to the "
- "global frame counter.");
-
- if (!(last_seq->flag & SEQ_LOCK)) {
- uiDefButI(block, NUM,
- SEQ_BUT_TRANSFORM, "Start",
- 10, 80, 120, 20, &last_seq->start,
- 0.0, MAXFRAMEF, 0.0, 0.0, "Start of strip");
- uiDefButI(block, NUM,
- SEQ_BUT_TRANSFORM, "Chan",
- 130, 80, 120, 20, &last_seq->machine,
- 0.0, MAXSEQ, 0.0, 0.0, "Channel used (Y position)");
-
- if (last_seq->type == SEQ_IMAGE) {
- uiDefButI(block, NUM,
- SEQ_BUT_TRANSFORM, "Start-Still",
- 10, 60, 120, 20, &last_seq->startstill,
- 0.0, MAXFRAMEF, 0.0, 0.0, "Start still");
- uiDefButI(block, NUM,
- SEQ_BUT_TRANSFORM, "End-Still",
- 130, 60, 120, 19, &last_seq->endstill,
- 0.0, MAXFRAMEF, 0.0, 0.0, "End still");
- } else {
- uiDefButI(block, NUM,
- SEQ_BUT_TRANSFORM, "Start-Ofs",
- 10, 60, 120, 20, &last_seq->startofs,
- 0.0, last_seq->len, 0.0, 0.0, "Start offset");
- uiDefButI(block, NUM,
- SEQ_BUT_TRANSFORM, "End-Ofs",
- 130, 60, 120, 19, &last_seq->endofs,
- 0.0, last_seq->len, 0.0, 0.0, "End offset");
- }
- }
-}
-
-static void seq_panel_input(short cntrl)
-{
- Sequence *last_seq = get_last_seq();
- uiBlock *block;
- block = uiNewBlock(&curarea->uiblocks, "seq_panel_input",
- UI_EMBOSS, UI_HELV, curarea->win);
-
- uiNewPanelTabbed("Edit", "Seq");
- uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl);
- uiSetPanelHandler(SEQ_HANDLER_PROPERTIES); // for close and esc
- if(uiNewPanel(curarea, block, "Input", "Seq",
- 10, 230, 318, 204) == 0) return;
-
-
- uiDefButBitI(block, TOG, SEQ_USE_CROP,
- SEQ_BUT_RELOAD, "Use Crop",
- 10,100,240,19, &last_seq->flag,
- 0.0, 1.0, 0, 0,
- "Crop image before processing.");
-
- if (last_seq->flag & SEQ_USE_CROP) {
- if (!last_seq->strip->crop) {
- last_seq->strip->crop =
- MEM_callocN(sizeof(struct StripCrop),
- "StripCrop");
- }
- uiDefButI(block, NUM,
- SEQ_BUT_RELOAD, "Top",
- 10, 80, 120, 20, &last_seq->strip->crop->top,
- 0.0, 4096, 0.0, 0.0, "Top of source image");
- uiDefButI(block, NUM,
- SEQ_BUT_RELOAD, "Bottom",
- 130, 80, 120, 20, &last_seq->strip->crop->bottom,
- 0.0, 4096, 0.0, 0.0, "Bottom of source image");
-
- uiDefButI(block, NUM,
- SEQ_BUT_RELOAD, "Left",
- 10, 60, 120, 20, &last_seq->strip->crop->left,
- 0.0, 4096, 0.0, 0.0, "Left");
- uiDefButI(block, NUM,
- SEQ_BUT_RELOAD, "Right",
- 130, 60, 120, 19, &last_seq->strip->crop->right,
- 0.0, 4096, 0.0, 0.0, "Right");
- }
-
- uiDefButBitI(block, TOG, SEQ_USE_TRANSFORM,
- SEQ_BUT_RELOAD, "Use Translate",
- 10,40,240,19, &last_seq->flag,
- 0.0, 1.0, 0, 0,
- "Translate image before processing.");
-
- if (last_seq->flag & SEQ_USE_TRANSFORM) {
- if (!last_seq->strip->transform) {
- last_seq->strip->transform =
- MEM_callocN(sizeof(struct StripTransform),
- "StripTransform");
- }
- uiDefButI(block, NUM,
- SEQ_BUT_RELOAD, "X-Ofs",
- 10, 20, 120, 20, &last_seq->strip->transform->xofs,
- 0.0, 4096, 0.0, 0.0, "X Offset");
- uiDefButI(block, NUM,
- SEQ_BUT_RELOAD, "Y-Ofs",
- 130, 20, 120, 20, &last_seq->strip->transform->yofs,
- 0.0, 4096, 0.0, 0.0, "Y Offset");
- }
-
-
- uiDefButI(block, NUM, SEQ_BUT_RELOAD, "Preseek:",
- 10,0,150,19, &last_seq->anim_preseek,
- 0.0, 50.0, 100,0,"On MPEG-seeking preseek this many frames");
-
-}
-
-static void seq_panel_filter_video(short cntrl)
-{
- Sequence *last_seq = get_last_seq();
- uiBlock *block;
- block = uiNewBlock(&curarea->uiblocks, "seq_panel_filter",
- UI_EMBOSS, UI_HELV, curarea->win);
-
- uiNewPanelTabbed("Edit", "Seq");
- uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl);
- uiSetPanelHandler(SEQ_HANDLER_PROPERTIES); // for close and esc
- if(uiNewPanel(curarea, block, "Filter", "Seq",
- 10, 230, 318, 204) == 0) return;
-
-
- uiBlockBeginAlign(block);
-
-
- uiDefButBitI(block, TOG, SEQ_MAKE_PREMUL,
- SEQ_BUT_RELOAD, "Convert to Premul",
- 10,110,150,19, &last_seq->flag,
- 0.0, 21.0, 100, 0,
- "Converts RGB values to become premultiplied with Alpha");
-
- uiDefButBitI(block, TOG, SEQ_FILTERY,
- SEQ_BUT_RELOAD, "FilterY",
- 10,90,75,19, &last_seq->flag,
- 0.0, 21.0, 100, 0,
- "For video movies to remove fields");
-
- uiDefButBitI(block, TOG, SEQ_MAKE_FLOAT,
- SEQ_BUT_RELOAD, "Make Float",
- 85,90,75,19, &last_seq->flag,
- 0.0, 21.0, 100, 0,
- "Convert input to float data");
-
- uiDefButBitI(block, TOG, SEQ_FLIPX,
- SEQ_BUT_RELOAD, "FlipX",
- 10,70,75,19, &last_seq->flag,
- 0.0, 21.0, 100, 0,
- "Flip on the X axis");
- uiDefButBitI(block, TOG, SEQ_FLIPY,
- SEQ_BUT_RELOAD, "FlipY",
- 85,70,75,19, &last_seq->flag,
- 0.0, 21.0, 100, 0,
- "Flip on the Y axis");
-
- uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Mul:",
- 10,50,150,19, &last_seq->mul,
- 0.001, 5.0, 100, 0,
- "Multiply colors");
-
- uiDefButBitI(block, TOG, SEQ_REVERSE_FRAMES,
- SEQ_BUT_RELOAD, "Reverse Frames",
- 10,30,150,19, &last_seq->flag,
- 0.0, 21.0, 100, 0,
- "Reverse frame order");
-
- uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Strobe:",
- 10,10,150,19, &last_seq->strobe,
- 1.0, 30.0, 100, 0,
- "Only display every nth frame");
-
- uiBlockEndAlign(block);
-
-}
-
-
-static void seq_panel_filter_audio(short cntrl)
-{
- Sequence *last_seq = get_last_seq();
- uiBlock *block;
- block = uiNewBlock(&curarea->uiblocks, "seq_panel_filter",
- UI_EMBOSS, UI_HELV, curarea->win);
-
- uiNewPanelTabbed("Edit", "Seq");
- uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl);
- uiSetPanelHandler(SEQ_HANDLER_PROPERTIES); // for close and esc
- if(uiNewPanel(curarea, block, "Filter", "Seq",
- 10, 230, 318, 204) == 0) return;
-
- uiBlockBeginAlign(block);
- uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Gain (dB):", 10,50,150,19, &last_seq->level, -96.0, 6.0, 100, 0, "");
- uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Pan:", 10,30,150,19, &last_seq->pan, -1.0, 1.0, 100, 0, "");
- uiBlockEndAlign(block);
-}
-
-static void seq_panel_effect(short cntrl)
-{
- Sequence *last_seq = get_last_seq();
- uiBlock *block;
- block = uiNewBlock(&curarea->uiblocks, "seq_panel_effect",
- UI_EMBOSS, UI_HELV, curarea->win);
-
- uiNewPanelTabbed("Edit", "Seq");
- uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl);
- uiSetPanelHandler(SEQ_HANDLER_PROPERTIES); // for close and esc
- if(uiNewPanel(curarea, block, "Effect", "Seq",
- 10, 230, 318, 204) == 0) return;
-
- if(last_seq->type == SEQ_PLUGIN) {
- PluginSeq *pis;
- VarStruct *varstr;
- int a, xco, yco;
-
- get_sequence_effect(last_seq);/* make sure, plugin is loaded */
-
- pis= last_seq->plugin;
- if(pis->vars==0) return;
-
- varstr= pis->varstr;
- if(varstr) {
- for(a=0; a<pis->vars; a++, varstr++) {
- xco= 150*(a/6)+10;
- yco= 125 - 20*(a % 6)+1;
- uiDefBut(block, varstr->type, SEQ_BUT_PLUGIN, varstr->name, xco,yco,150,19, &(pis->data[a]), varstr->min, varstr->max, 100, 0, varstr->tip);
-
- }
- }
- return;
- }
-
- uiBlockBeginAlign(block);
-
- if(last_seq->type==SEQ_WIPE){
- WipeVars *wipe = (WipeVars *)last_seq->effectdata;
- char formatstring[256];
-
- strncpy(formatstring, "Transition Type %t|Single Wipe%x0|Double Wipe %x1|Iris Wipe %x4|Clock Wipe %x5", 255);
- uiDefButS(block, MENU,SEQ_BUT_EFFECT, formatstring, 10,65,220,22, &wipe->wipetype, 0, 0, 0, 0, "What type of wipe should be performed");
- uiDefButF(block, NUM,SEQ_BUT_EFFECT,"Blur:", 10,40,220,22, &wipe->edgeWidth,0.0,1.0, 1, 2, "The percent width of the blur edge");
- switch(wipe->wipetype){ /*Skip Types that do not require angle*/
- case DO_IRIS_WIPE:
- case DO_CLOCK_WIPE:
- break;
-
- default:
- uiDefButF(block, NUM,SEQ_BUT_EFFECT,"Angle:", 10,15,220,22, &wipe->angle,-90.0,90.0, 1, 2, "The Angle of the Edge");
- }
- uiDefButS(block, TOG,SEQ_BUT_EFFECT,"Wipe In", 10,-10,220,22, &wipe->forward,0,0, 0, 0, "Controls Primary Direction of Wipe");
- } else if(last_seq->type==SEQ_GLOW){
- GlowVars *glow = (GlowVars *)last_seq->effectdata;
-
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Threshold:", 10,70,150,19, &glow->fMini, 0.0, 1.0, 0, 0, "Trigger Intensity");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Clamp:", 10,50,150,19, &glow->fClamp, 0.0, 1.0, 0, 0, "Brightness limit of intensity");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Boost factor:", 10,30,150,19, &glow->fBoost, 0.0, 10.0, 0, 0, "Brightness multiplier");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Blur distance:", 10,10,150,19, &glow->dDist, 0.5, 20.0, 0, 0, "Radius of glow effect");
- uiDefButI(block, NUM, B_NOP, "Quality:", 10,-5,150,19, &glow->dQuality, 1.0, 5.0, 0, 0, "Accuracy of the blur effect");
- uiDefButI(block, TOG, B_NOP, "Only boost", 10,-25,150,19, &glow->bNoComp, 0.0, 0.0, 0, 0, "Show the glow buffer only");
- }
- else if(last_seq->type==SEQ_TRANSFORM){
- TransformVars *transform = (TransformVars *)last_seq->effectdata;
-
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "xScale Start:", 10,70,150,19, &transform->ScalexIni, 0.0, 10.0, 0, 0, "X Scale Start");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "xScale End:", 160,70,150,19, &transform->ScalexFin, 0.0, 10.0, 0, 0, "X Scale End");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "yScale Start:", 10,50,150,19, &transform->ScaleyIni, 0.0, 10.0, 0, 0, "Y Scale Start");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "yScale End:", 160,50,150,19, &transform->ScaleyFin, 0.0, 10.0, 0, 0, "Y Scale End");
-
- uiDefButI(block, ROW, SEQ_BUT_EFFECT, "Percent", 10, 30, 150, 19, &transform->percent, 0.0, 1.0, 0.0, 0.0, "Percent Translate");
- uiDefButI(block, ROW, SEQ_BUT_EFFECT, "Pixels", 160, 30, 150, 19, &transform->percent, 0.0, 0.0, 0.0, 0.0, "Pixels Translate");
- if(transform->percent==1){
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x Start:", 10,10,150,19, &transform->xIni, -500.0, 500.0, 0, 0, "X Position Start");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x End:", 160,10,150,19, &transform->xFin, -500.0, 500.0, 0, 0, "X Position End");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "y Start:", 10,-10,150,19, &transform->yIni, -500.0, 500.0, 0, 0, "Y Position Start");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "y End:", 160,-10,150,19, &transform->yFin, -500.0, 500.0, 0, 0, "Y Position End");
- } else {
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x Start:", 10,10,150,19, &transform->xIni, -10000.0, 10000.0, 0, 0, "X Position Start");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x End:", 160,10,150,19, &transform->xFin, -10000.0, 10000.0, 0, 0, "X Position End");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "y Start:", 10,-10,150,19, &transform->yIni, -10000.0, 10000.0, 0, 0, "Y Position Start");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "y End:", 160,-10,150,19, &transform->yFin, -10000.0, 10000.0, 0, 0, "Y Position End");
-
- }
-
-
-
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "rot Start:",10,-30,150,19, &transform->rotIni, 0.0, 360.0, 0, 0, "Rotation Start");
- uiDefButF(block, NUM, SEQ_BUT_EFFECT, "rot End:",160,-30,150,19, &transform->rotFin, 0.0, 360.0, 0, 0, "Rotation End");
-
- uiDefButI(block, ROW, SEQ_BUT_EFFECT, "No Interpolat", 10, -50, 100, 19, &transform->interpolation, 0.0, 0.0, 0.0, 0.0, "No interpolation");
- uiDefButI(block, ROW, SEQ_BUT_EFFECT, "Bilinear", 101, -50, 100, 19, &transform->interpolation, 0.0, 1.0, 0.0, 0.0, "Bilinear interpolation");
- uiDefButI(block, ROW, SEQ_BUT_EFFECT, "Bicubic", 202, -50, 100, 19, &transform->interpolation, 0.0, 2.0, 0.0, 0.0, "Bicubic interpolation");
- } else if(last_seq->type==SEQ_COLOR) {
- SolidColorVars *colvars = (SolidColorVars *)last_seq->effectdata;
- uiDefButF(block, COL, SEQ_BUT_RELOAD, "",10,90,150,19, colvars->col, 0, 0, 0, 0, "");
- } else if(last_seq->type==SEQ_SPEED){
- SpeedControlVars *sp =
- (SpeedControlVars *)last_seq->effectdata;
-
- uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Global Speed:", 10,70,150,19, &sp->globalSpeed, 0.0, 100.0, 0, 0, "Global Speed");
-
- uiDefButBitI(block, TOG, SEQ_SPEED_INTEGRATE,
- SEQ_BUT_RELOAD,
- "IPO is velocity",
- 10,50,150,19, &sp->flags,
- 0.0, 1.0, 0, 0,
- "Interpret the IPO value as a "
- "velocity instead of a frame number");
-
- uiDefButBitI(block, TOG, SEQ_SPEED_BLEND,
- SEQ_BUT_RELOAD,
- "Enable frame blending",
- 10,30,150,19, &sp->flags,
- 0.0, 1.0, 0, 0,
- "Blend two frames into the "
- "target for a smoother result");
-
- uiDefButBitI(block, TOG, SEQ_SPEED_COMPRESS_IPO_Y,
- SEQ_BUT_RELOAD,
- "IPO value runs from [0..1]",
- 10,10,150,19, &sp->flags,
- 0.0, 1.0, 0, 0,
- "Scale IPO value to get the "
- "target frame number.");
- }
-
- uiBlockEndAlign(block);
-}
-
-static void seq_panel_proxy(short cntrl)
-{
- Sequence *last_seq = get_last_seq();
- uiBlock *block;
- block = uiNewBlock(&curarea->uiblocks, "seq_panel_proxy",
- UI_EMBOSS, UI_HELV, curarea->win);
-
- uiNewPanelTabbed("Edit", "Seq");
- uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl);
- uiSetPanelHandler(SEQ_HANDLER_PROPERTIES); // for close and esc
- if(uiNewPanel(curarea, block, "Proxy", "Seq",
- 10, 230, 318, 204) == 0) return;
-
- uiBlockBeginAlign(block);
-
- uiDefButBitI(block, TOG, SEQ_USE_PROXY,
- SEQ_BUT_RELOAD, "Use Proxy",
- 10,140,150,19, &last_seq->flag,
- 0.0, 21.0, 100, 0,
- "Use a preview proxy for this strip");
-
- if (last_seq->flag & SEQ_USE_PROXY) {
-
-
- }
-
- uiBlockEndAlign(block);
-}
-
-
-static void seq_panel_properties(short cntrl) // SEQ_HANDLER_PROPERTIES
-{
- Sequence *last_seq = get_last_seq();
- int panels = 0;
- int type;
-
- if(last_seq == NULL) {
- uiBlock *block;
- block = uiNewBlock(&curarea->uiblocks, "seq_panel_editing",
- UI_EMBOSS, UI_HELV, curarea->win);
-
- uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl);
- uiSetPanelHandler(SEQ_HANDLER_PROPERTIES);
- uiNewPanel(curarea, block, "Edit", "Seq",
- 10, 230, 318, 204);
- return;
- }
-
- type = last_seq->type;
-
- panels = SEQ_PANEL_EDITING;
-
- if (type == SEQ_MOVIE || type == SEQ_IMAGE || type == SEQ_SCENE
- || type == SEQ_HD_SOUND) {
- panels |= SEQ_PANEL_INPUT | SEQ_PANEL_FILTER | SEQ_PANEL_PROXY;
- }
-
- if (type == SEQ_RAM_SOUND) {
- panels |= SEQ_PANEL_FILTER;
- }
-
- if (type == SEQ_PLUGIN || type >= SEQ_EFFECT) {
- panels |= SEQ_PANEL_EFFECT | SEQ_PANEL_PROXY;
- }
-
- if (panels & SEQ_PANEL_EDITING) {
- seq_panel_editing(cntrl);
- }
-
- if (panels & SEQ_PANEL_INPUT) {
- seq_panel_input(cntrl);
- }
-
- if (panels & SEQ_PANEL_FILTER) {
- if (type == SEQ_RAM_SOUND || type == SEQ_HD_SOUND) {
- seq_panel_filter_audio(cntrl);
- } else {
- seq_panel_filter_video(cntrl);
- }
- }
-
- if (panels & SEQ_PANEL_EFFECT) {
- seq_panel_effect(cntrl);
- }
-
- if (panels & SEQ_PANEL_PROXY) {
- seq_panel_proxy(cntrl);
- }
-}
static void seq_blockhandlers(ScrArea *sa)
{
@@ -1585,13 +1063,6 @@ static void seq_blockhandlers(ScrArea *sa)
uiFreeBlocksWin(&sa->uiblocks, sa->win);
for(a=0; a<SPACE_MAXHANDLER; a+=2) {
- switch(sseq->blockhandler[a]) {
-
- case SEQ_HANDLER_PROPERTIES:
- seq_panel_properties(sseq->blockhandler[a+1]);
- break;
-
- }
/* clear action value for event */
sseq->blockhandler[a+1]= 0;
}
diff --git a/source/blender/src/editseq.c b/source/blender/src/editseq.c
index b97dbac32ec..f1e2f957610 100644
--- a/source/blender/src/editseq.c
+++ b/source/blender/src/editseq.c
@@ -899,6 +899,7 @@ void mouse_select_seq(void)
recurs_sel_seq(seq);
}
+ allqueue(REDRAWBUTSSCENE, 0);
force_draw(0);
if(get_last_seq()) allqueue(REDRAWIPO, 0);
diff --git a/source/blender/src/header_buttonswin.c b/source/blender/src/header_buttonswin.c
index 07a63a46903..4dc1124a8bd 100644
--- a/source/blender/src/header_buttonswin.c
+++ b/source/blender/src/header_buttonswin.c
@@ -436,6 +436,14 @@ static uiBlock *buts_view_scenemenu(void *arg_unused)
uiDefIconTextButC(block, BUTM, B_REDR, ICON_CHECKBOX_DEHLT, "Render|F10",
0, yco-=20, menuwidth, 19, &(G.buts->tab[CONTEXT_SCENE]), (float)TAB_SCENE_RENDER, 0.0, 0, 10, "");
}
+
+ if((G.buts->mainb == CONTEXT_SCENE) && (G.buts->tab[CONTEXT_SCENE]==TAB_SCENE_SEQUENCER)) {
+ uiDefIconTextButC(block, BUTM, B_REDR, ICON_CHECKBOX_HLT, "Sequencer",
+ 0, yco-=20, menuwidth, 19, &(G.buts->tab[CONTEXT_SCENE]), (float)TAB_SCENE_SEQUENCER, 0.0, 0, 10, "");
+ } else {
+ uiDefIconTextButC(block, BUTM, B_REDR, ICON_CHECKBOX_DEHLT, "Sequencer",
+ 0, yco-=20, menuwidth, 19, &(G.buts->tab[CONTEXT_SCENE]), (float)TAB_SCENE_SEQUENCER, 0.0, 0, 10, "");
+ }
if((G.buts->mainb == CONTEXT_SCENE) && (G.buts->tab[CONTEXT_SCENE]==TAB_SCENE_ANIM)) {
uiDefIconTextButC(block, BUTM, B_REDR, ICON_CHECKBOX_HLT, "Animation",
@@ -683,6 +691,7 @@ void buts_buttons(void)
case CONTEXT_SCENE:
uiBlockBeginAlign(block);
uiDefIconButC(block, ROW, B_CONTEXT_SWITCH, ICON_SCENE, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SCENE]), 1.0, (float)TAB_SCENE_RENDER, 0, 0, "Render buttons ");
+ uiDefIconButC(block, ROW, B_CONTEXT_SWITCH, ICON_SEQUENCE, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SCENE]), 1.0, (float)TAB_SCENE_SEQUENCER, 0, 0, "Sequencer buttons ");
uiDefIconButC(block, ROW, B_CONTEXT_SWITCH, ICON_ANIM, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SCENE]), 1.0, (float)TAB_SCENE_ANIM, 0, 0, "Anim/playback buttons");
uiDefIconButC(block, ROW, B_CONTEXT_SWITCH, ICON_SOUND, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SCENE]), 1.0, (float)TAB_SCENE_SOUND, 0, 0, "Sound block buttons");
diff --git a/source/blender/src/header_seq.c b/source/blender/src/header_seq.c
index e26ab4a157a..1880484a09f 100644
--- a/source/blender/src/header_seq.c
+++ b/source/blender/src/header_seq.c
@@ -393,8 +393,7 @@ static void do_seq_editmenu(void *arg, int event)
case 3: /* Separate Meta Strip */
un_meta();
break;
- case 4: /* Properties... */
- add_blockhandler(curarea, SEQ_HANDLER_PROPERTIES, UI_PNL_UNSTOW);
+ case 4: /* former Properties... */
break;
case 5: /* Duplicate */
add_duplicate_seq();
@@ -450,8 +449,6 @@ static uiBlock *seq_editmenu(void *arg_unused)
block= uiNewBlock(&curarea->uiblocks, "seq_editmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
uiBlockSetButmFunc(block, do_seq_editmenu, NULL);
- uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Strip Properties...|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
-
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grab/Move|G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grab/Extend from frame|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
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, "");
diff --git a/source/blender/src/space.c b/source/blender/src/space.c
index 5415f03701e..486ebfa7010 100644
--- a/source/blender/src/space.c
+++ b/source/blender/src/space.c
@@ -4543,9 +4543,6 @@ static void winqreadseqspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
}
switch(event) {
- case UI_BUT_EVENT:
- do_seqbuttons(val);
- break;
case LEFTMOUSE:
if(sseq->mainb || view2dmove(event)==0) {
@@ -6222,6 +6219,14 @@ void allqueue(unsigned short event, short val)
scrarea_queue_headredraw(sa);
}
break;
+ case REDRAWSEQ:
+ if(sa->spacetype==SPACE_SEQ) {
+ addqueue(sa->win, CHANGED, 1);
+ scrarea_queue_winredraw(sa);
+ scrarea_queue_headredraw(sa);
+ }
+ /* fall through, since N-keys moved to
+ Buttons */
case REDRAWBUTSSCENE:
if(sa->spacetype==SPACE_BUTS) {
buts= sa->spacedata.first;
@@ -6294,13 +6299,6 @@ void allqueue(unsigned short event, short val)
scrarea_queue_winredraw(sa);
}
break;
- case REDRAWSEQ:
- if(sa->spacetype==SPACE_SEQ) {
- addqueue(sa->win, CHANGED, 1);
- scrarea_queue_winredraw(sa);
- scrarea_queue_headredraw(sa);
- }
- break;
case REDRAWOOPS:
if(sa->spacetype==SPACE_OOPS) {
scrarea_queue_winredraw(sa);