markers in the sequencer
- added a new redraw type - REDRAWMARKER, at the moment this draws the same windows as REDRAWANIM, but this may not always be true, and it is more explicit whats happening, This replaced 5 or so draw calls in quite a few places.
This commit is contained in:
@@ -253,6 +253,8 @@
|
||||
#define REDRAWANIM 0x4037
|
||||
#define REDRAWNODE 0x4038
|
||||
#define RECALC_COMPOSITE 0x4039
|
||||
#define REDRAWMARKER 0x4040 /* all views that display markers */
|
||||
|
||||
|
||||
#endif /* !__MYDEVICE_H__ */
|
||||
|
||||
|
||||
@@ -945,7 +945,7 @@ static void draw_extra_seqinfo(void)
|
||||
}
|
||||
} else { /* single image */
|
||||
if (last_seq->strip) {
|
||||
sprintf(str, "Single: %s", last_seq->strip->stripdata->name);
|
||||
sprintf(str, "Single: %s len: %d", last_seq->strip->stripdata->name, last_seq->enddisp-last_seq->startdisp);
|
||||
glRasterPos3f(xco, yco, 0.0);
|
||||
BMF_DrawString(G.font, str);
|
||||
xco += xfac*BMF_GetStringWidth(G.font, str) +30.0*xfac;
|
||||
@@ -1443,6 +1443,9 @@ void drawseqspace(ScrArea *sa, void *spacedata)
|
||||
|
||||
draw_extra_seqinfo();
|
||||
|
||||
/* Draw markers */
|
||||
draw_markers_timespace();
|
||||
|
||||
/* restore viewport */
|
||||
mywinset(sa->win);
|
||||
|
||||
|
||||
@@ -127,7 +127,7 @@ static void draw_cfra_time(SpaceTime *stime)
|
||||
|
||||
ui_rasterpos_safe(x * xscale, y * yscale, 1.0);
|
||||
BIF_DrawString(G.fonts, str, 0);
|
||||
|
||||
printf("%f -- %f\n", xscale, yscale);
|
||||
glScalef(xscale, yscale, 1.0);
|
||||
}
|
||||
|
||||
|
||||
@@ -2253,11 +2253,7 @@ static void mouse_action (int selectmode)
|
||||
|
||||
std_rmouse_transform(transform_markers);
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2680,10 +2676,7 @@ void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
column_select_action_keys(val);
|
||||
}
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
|
||||
case MKEY:
|
||||
@@ -2706,11 +2699,7 @@ void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
rename_marker();
|
||||
else
|
||||
break;
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -2734,11 +2723,8 @@ void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
else if (G.qual & LR_ALTKEY) /* clear preview range */
|
||||
anim_previewrange_clear();
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
allqueue(REDRAWBUTSALL, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
break;
|
||||
|
||||
case SKEY:
|
||||
|
||||
@@ -1203,11 +1203,7 @@ void borderselect_nla(void)
|
||||
}
|
||||
}
|
||||
BIF_undo_push("Border select NLA");
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1262,11 +1258,7 @@ static void mouse_nla(int selectmode)
|
||||
|
||||
std_rmouse_transform(transform_markers);
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
else {
|
||||
/* Try action ipo selection */
|
||||
@@ -1725,11 +1717,7 @@ void winqreadnlaspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
shift_nlastrips_up();
|
||||
else {
|
||||
nextprev_marker(1);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1742,11 +1730,7 @@ void winqreadnlaspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
shift_nlastrips_down();
|
||||
else {
|
||||
nextprev_marker(-1);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1758,11 +1742,7 @@ void winqreadnlaspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
}
|
||||
else if (G.qual & LR_CTRLKEY) {
|
||||
deselect_markers(1, 0);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
else{
|
||||
if (mval[0]>=NLAWIDTH)
|
||||
@@ -1831,11 +1811,7 @@ void winqreadnlaspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
rename_marker();
|
||||
else
|
||||
break;
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
|
||||
case NKEY:
|
||||
@@ -1856,11 +1832,7 @@ void winqreadnlaspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
anim_previewrange_set();
|
||||
else if (G.qual & LR_ALTKEY) /* clear preview range */
|
||||
anim_previewrange_clear();
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWBUTSALL, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
|
||||
case SKEY:
|
||||
@@ -1908,11 +1880,7 @@ void winqreadnlaspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
|
||||
remove_marker();
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -83,6 +83,7 @@
|
||||
#include "BIF_editview.h"
|
||||
#include "BIF_scrarea.h"
|
||||
#include "BIF_editsound.h"
|
||||
#include "BIF_imasel.h"
|
||||
|
||||
#include "BSE_edit.h"
|
||||
#include "BSE_sequence.h"
|
||||
@@ -90,6 +91,7 @@
|
||||
#include "BSE_filesel.h"
|
||||
#include "BSE_drawipo.h"
|
||||
#include "BSE_seqaudio.h"
|
||||
#include "BSE_time.h"
|
||||
|
||||
#include "BDR_editobject.h"
|
||||
|
||||
@@ -144,7 +146,6 @@ void clear_last_seq(Sequence *seq)
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* seq funcs's for transforming internally
|
||||
notice the difference between start/end and left/right.
|
||||
|
||||
@@ -664,9 +665,33 @@ void mouse_select_seq(void)
|
||||
{
|
||||
Sequence *seq,*neighbor;
|
||||
int hand,seldir;
|
||||
TimeMarker *marker;
|
||||
|
||||
marker=find_nearest_marker(1);
|
||||
|
||||
if (marker) {
|
||||
int oldflag;
|
||||
/* select timeline marker */
|
||||
if ((G.qual & LR_SHIFTKEY)==0) {
|
||||
oldflag= marker->flag;
|
||||
deselect_markers(0, 0);
|
||||
|
||||
if (oldflag & SELECT)
|
||||
marker->flag &= ~SELECT;
|
||||
else
|
||||
marker->flag |= SELECT;
|
||||
}
|
||||
else {
|
||||
marker->flag |= SELECT;
|
||||
}
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
force_draw(0);
|
||||
|
||||
BIF_undo_push("Select Strips, Sequencer");
|
||||
|
||||
} else {
|
||||
|
||||
seq= find_nearest_seq(&hand);
|
||||
|
||||
if(!(G.qual & LR_SHIFTKEY)&&!(G.qual & LR_ALTKEY)&&!(G.qual & LR_CTRLKEY)) deselect_all_seq();
|
||||
|
||||
if(seq) {
|
||||
@@ -750,7 +775,6 @@ void mouse_select_seq(void)
|
||||
|
||||
recurs_sel_seq(seq);
|
||||
}
|
||||
|
||||
force_draw(0);
|
||||
|
||||
if(get_last_seq()) allqueue(REDRAWIPO, 0);
|
||||
@@ -759,6 +783,25 @@ void mouse_select_seq(void)
|
||||
std_rmouse_transform(transform_seq);
|
||||
}
|
||||
|
||||
/* marker transform */
|
||||
if (marker) {
|
||||
short mval[2], xo, yo;
|
||||
getmouseco_areawin(mval);
|
||||
xo= mval[0];
|
||||
yo= mval[1];
|
||||
|
||||
while(get_mbut()&R_MOUSE) {
|
||||
getmouseco_areawin(mval);
|
||||
if(abs(mval[0]-xo)+abs(mval[1]-yo) > 4) {
|
||||
transform_markers('g', 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
return;
|
||||
}
|
||||
BIF_wait_for_statechange();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Sequence *alloc_sequence(ListBase *lb, int cfra, int machine)
|
||||
{
|
||||
@@ -1684,7 +1727,10 @@ void add_sequence(int type)
|
||||
|
||||
switch(event) {
|
||||
case 1:
|
||||
|
||||
/* Image Dosnt work at the moment - TODO */
|
||||
//if(G.qual & LR_CTRLKEY)
|
||||
// activate_imageselect(FILE_SPECIAL, "Select Images", last_imagename, add_image_strips);
|
||||
//else
|
||||
activate_fileselect(FILE_SPECIAL, "Select Images", last_imagename, add_image_strips);
|
||||
break;
|
||||
case 105:
|
||||
@@ -3052,7 +3098,7 @@ void seq_separate_images(void)
|
||||
Sequence *seq, *seq_new, *seq_next;
|
||||
Strip *strip_new;
|
||||
StripElem *se, *se_new;
|
||||
int start, start_ofs, cfra, frame_end;
|
||||
int start_ofs, cfra, frame_end;
|
||||
static int step= 1;
|
||||
|
||||
add_numbut(0, NUM|INT, "Image Duration:", 1, 256, &step, NULL);
|
||||
|
||||
@@ -219,11 +219,7 @@ void winqreadsoundspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
case AKEY: /* select/deselect all */
|
||||
deselect_markers(1, 0);
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
|
||||
case BKEY: /* borderselect markers */
|
||||
@@ -234,11 +230,7 @@ void winqreadsoundspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
if (G.qual & LR_SHIFTKEY) {
|
||||
duplicate_marker();
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -252,11 +244,7 @@ void winqreadsoundspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
else
|
||||
add_marker(CFRA);
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
|
||||
case TKEY: /* toggle time display */
|
||||
@@ -273,12 +261,7 @@ void winqreadsoundspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
case XKEY:
|
||||
if (okee("Erase selected")) {
|
||||
remove_marker();
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -282,11 +282,7 @@ void transform_markers(int mode, int smode) // mode and smode unused here, for c
|
||||
BIF_undo_push("Move Markers");
|
||||
}
|
||||
MEM_freeN(oldframe);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
|
||||
/* select/deselect all TimeMarkers
|
||||
@@ -387,11 +383,7 @@ void borderselect_markers(void)
|
||||
borderselect_markers_func(rectf.xmin, rectf.xmax, selectmode);
|
||||
|
||||
BIF_undo_push("Border Select Markers");
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -919,11 +911,7 @@ void winqreadtimespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
case AKEY:
|
||||
/* deselect all TimeMarkers */
|
||||
deselect_markers(1, 0);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
case BKEY:
|
||||
/* borderselect markers */
|
||||
@@ -954,11 +942,7 @@ void winqreadtimespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
rename_marker();
|
||||
else
|
||||
add_marker(CFRA);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
case PKEY: /* preview-range stuff */
|
||||
if (G.qual & LR_CTRLKEY) /* set preview range */
|
||||
@@ -989,11 +973,7 @@ void winqreadtimespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
if( okee("Erase selected")==0 ) break;
|
||||
|
||||
remove_marker();
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -499,11 +499,7 @@ static void do_action_selectmenu(void *arg, int event)
|
||||
|
||||
case ACTMENU_SEL_ALL_MARKERS: /* select/deselect all markers */
|
||||
deselect_markers(1, 0);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
|
||||
case ACTMENU_SEL_INVERSE_KEYS: /* invert selection status of keys */
|
||||
@@ -515,11 +511,7 @@ static void do_action_selectmenu(void *arg, int event)
|
||||
|
||||
case ACTMENU_SEL_INVERSE_MARKERS: /* invert selection of markers */
|
||||
deselect_markers(0, 2);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1062,11 +1054,7 @@ static void do_action_markermenu(void *arg, int event)
|
||||
break;
|
||||
}
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
|
||||
static uiBlock *action_markermenu(void *arg_unused)
|
||||
|
||||
@@ -796,14 +796,11 @@ static void do_ipo_selectmenu(void *arg, int event)
|
||||
break;
|
||||
case 2:
|
||||
borderselect_markers();
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
case 3:
|
||||
deselect_markers(1, 0);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -858,11 +855,7 @@ static void do_ipo_markermenu(void *arg, int event)
|
||||
break;
|
||||
}
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
|
||||
static uiBlock *ipo_markermenu(void *arg_unused)
|
||||
|
||||
@@ -202,11 +202,7 @@ static void do_nla_selectmenu(void *arg, int event)
|
||||
break;
|
||||
case 3: /* Select/Deselect All Markers */
|
||||
deselect_markers(1, 0);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
case 4: /* Borderselect markers */
|
||||
borderselect_markers();
|
||||
@@ -405,11 +401,7 @@ static void do_nla_markermenu(void *arg, int event)
|
||||
break;
|
||||
}
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
|
||||
static uiBlock *nla_markermenu(void *arg_unused)
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
#include "BSE_drawipo.h"
|
||||
#include "BSE_headerbuttons.h"
|
||||
#include "BSE_sequence.h"
|
||||
|
||||
#include "BSE_time.h"
|
||||
#include "blendef.h"
|
||||
#include "mydevice.h"
|
||||
|
||||
@@ -507,6 +507,65 @@ static uiBlock *seq_editmenu(void *arg_unused)
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_seq_markermenu(void *arg, int event)
|
||||
{
|
||||
switch(event)
|
||||
{
|
||||
case 1:
|
||||
add_marker(CFRA);
|
||||
break;
|
||||
case 2:
|
||||
duplicate_marker();
|
||||
break;
|
||||
case 3:
|
||||
remove_marker();
|
||||
break;
|
||||
case 4:
|
||||
rename_marker();
|
||||
break;
|
||||
case 5:
|
||||
transform_markers('g', 0);
|
||||
break;
|
||||
}
|
||||
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
|
||||
static uiBlock *seq_markermenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "ipo_markermenu",
|
||||
UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_seq_markermenu, NULL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Add Marker|Ctrl Alt M", 0, yco-=20,
|
||||
menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate Marker|Ctrl Shift D", 0, yco-=20,
|
||||
menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete Marker", 0, yco-=20,
|
||||
menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "(Re)Name Marker|Ctrl M", 0, yco-=20,
|
||||
menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grab/Move Marker|Ctrl G", 0, yco-=20,
|
||||
menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
void do_seq_buttons(short event)
|
||||
{
|
||||
@@ -582,6 +641,10 @@ void seq_buttons()
|
||||
uiDefPulldownBut(block,seq_selectmenu, NULL, "Select", xco, -2, xmax-3, 24, "");
|
||||
xco+=xmax;
|
||||
|
||||
xmax= GetButStringLength("Marker");
|
||||
uiDefPulldownBut(block,seq_markermenu, NULL, "Marker", xco, -2, xmax-3, 24, "");
|
||||
xco+=xmax;
|
||||
|
||||
xmax= GetButStringLength("Add");
|
||||
uiDefPulldownBut(block, seq_addmenu, NULL, "Add", xco, -2, xmax-3, 24, "");
|
||||
xco+= xmax;
|
||||
|
||||
@@ -269,11 +269,7 @@ static void do_sound_markermenu(void *arg, int event)
|
||||
break;
|
||||
}
|
||||
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
|
||||
static uiBlock *sound_markermenu(void *arg_unused)
|
||||
|
||||
@@ -2749,11 +2749,7 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
break;
|
||||
case RIGHTMOUSE:
|
||||
mouse_select_ipo();
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
case MIDDLEMOUSE:
|
||||
if(in_ipo_buttons()) {
|
||||
@@ -2801,11 +2797,7 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
case AKEY:
|
||||
if (G.qual & LR_CTRLKEY) {
|
||||
deselect_markers(1, 0);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
else if (G.qual==0) {
|
||||
if(in_ipo_buttons()) {
|
||||
@@ -2834,15 +2826,18 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
move_to_frame();
|
||||
break;
|
||||
case DKEY:
|
||||
if (G.qual==LR_SHIFTKEY)
|
||||
if (G.qual==LR_SHIFTKEY) {
|
||||
add_duplicate_editipo();
|
||||
else if (G.qual == (LR_CTRLKEY|LR_SHIFTKEY))
|
||||
} else if (G.qual == (LR_CTRLKEY|LR_SHIFTKEY)) {
|
||||
duplicate_marker();
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
break;
|
||||
case GKEY:
|
||||
if (G.qual & LR_CTRLKEY)
|
||||
if (G.qual & LR_CTRLKEY) {
|
||||
transform_markers('g', 0);
|
||||
else if (G.qual==0)
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
} else if (G.qual==0)
|
||||
transform_ipo('g');
|
||||
break;
|
||||
case HKEY:
|
||||
@@ -2866,21 +2861,17 @@ static void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
}
|
||||
break;
|
||||
case MKEY:
|
||||
if (G.qual==LR_SHIFTKEY) {
|
||||
if (G.qual==0) {
|
||||
add_marker(CFRA);
|
||||
} else if (G.qual==LR_SHIFTKEY) {
|
||||
ipo_mirror_menu();
|
||||
break;
|
||||
}
|
||||
if (G.qual == 0)
|
||||
add_marker(CFRA);
|
||||
else if (G.qual == LR_CTRLKEY)
|
||||
} else if (G.qual == LR_CTRLKEY) {
|
||||
rename_marker();
|
||||
else
|
||||
} else {
|
||||
break;
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
}
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
case NKEY:
|
||||
toggle_blockhandler(sa, IPO_HANDLER_PROPERTIES, UI_PNL_TO_MOUSE);
|
||||
@@ -4552,8 +4543,12 @@ static void winqreadseqspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
}
|
||||
break;
|
||||
case DKEY:
|
||||
if (G.qual == (LR_CTRLKEY|LR_SHIFTKEY))
|
||||
duplicate_marker();
|
||||
else if ((G.qual==LR_SHIFTKEY)) {
|
||||
if(sseq->mainb) break;
|
||||
if((G.qual==LR_SHIFTKEY)) add_duplicate_seq();
|
||||
add_duplicate_seq();
|
||||
}
|
||||
break;
|
||||
case EKEY:
|
||||
if(sseq->mainb) break;
|
||||
@@ -4565,9 +4560,12 @@ static void winqreadseqspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
set_filter_seq();
|
||||
break;
|
||||
case GKEY:
|
||||
if (G.qual & LR_CTRLKEY)
|
||||
transform_markers('g', 0);
|
||||
else if (G.qual==0) {
|
||||
if(sseq->mainb) break;
|
||||
if((G.qual==0))
|
||||
transform_seq('g', 0);
|
||||
}
|
||||
break;
|
||||
case KKEY:
|
||||
if((G.qual==0)) { /* Cut at current frame */
|
||||
@@ -4580,19 +4578,28 @@ static void winqreadseqspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
}
|
||||
break;
|
||||
case MKEY:
|
||||
if(G.qual==LR_ALTKEY)
|
||||
if(G.qual==LR_ALTKEY) {
|
||||
un_meta();
|
||||
else if((G.qual==0)){
|
||||
break; /*dont redraw timeline etc */
|
||||
} else if((G.qual==0)){
|
||||
if ((last_seq) &&
|
||||
(last_seq->type == SEQ_RAM_SOUND
|
||||
|| last_seq->type == SEQ_HD_SOUND))
|
||||
{
|
||||
last_seq->flag ^= SEQ_MUTE;
|
||||
doredraw = 1;
|
||||
}
|
||||
else
|
||||
} else {
|
||||
make_meta();
|
||||
}
|
||||
break; /*dont redraw timeline etc */
|
||||
} else if ((G.qual==(LR_CTRLKEY|LR_ALTKEY) )) {
|
||||
add_marker(CFRA);
|
||||
} else if ((G.qual==LR_CTRLKEY)) {
|
||||
rename_marker();
|
||||
} else {
|
||||
break; /* do nothing */
|
||||
}
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
break;
|
||||
case NKEY:
|
||||
if(G.qual==0) {
|
||||
@@ -6179,6 +6186,11 @@ void allqueue(unsigned short event, short val)
|
||||
scrarea_queue_winredraw(sa);
|
||||
if(val) scrarea_queue_headredraw(sa);
|
||||
}
|
||||
case REDRAWMARKER: /* markers may not always match animation */
|
||||
if ELEM6(sa->spacetype, SPACE_TIME, SPACE_IPO, SPACE_ACTION, SPACE_NLA, SPACE_SOUND, SPACE_SEQ) {
|
||||
scrarea_queue_winredraw(sa);
|
||||
if(val) scrarea_queue_headredraw(sa);
|
||||
}
|
||||
}
|
||||
}
|
||||
sa= sa->next;
|
||||
|
||||
@@ -2614,11 +2614,7 @@ void autokeyframe_ob_cb_func(Object *ob, int tmode)
|
||||
}
|
||||
|
||||
remake_object_ipos(ob);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allspace(REMAKEIPO, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2700,11 +2696,7 @@ void autokeyframe_pose_cb_func(Object *ob, int tmode, short targetless_ik)
|
||||
}
|
||||
|
||||
remake_action_ipos (act);
|
||||
allspace(REMAKEIPO, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWTIME, 0);
|
||||
allqueue(REDRAWMARKER, 0);
|
||||
}
|
||||
else {
|
||||
/* tag channels that should have unkeyed data */
|
||||
|
||||
Reference in New Issue
Block a user