2.5
Sequencer: added Nkey + UI region, with two empty panels to fill!
This commit is contained in:
@@ -37,9 +37,14 @@ struct Sequence;
|
||||
struct bContext;
|
||||
struct rctf;
|
||||
struct SpaceSeq;
|
||||
struct ScrArea;
|
||||
struct ARegion;
|
||||
struct ARegionType;
|
||||
struct Scene;
|
||||
|
||||
/* space_sequencer.c */
|
||||
struct ARegion *sequencer_has_buttons_region(struct ScrArea *sa);
|
||||
|
||||
/* sequencer_header.c */
|
||||
void sequencer_header_buttons(const struct bContext *C, struct ARegion *ar);
|
||||
|
||||
@@ -140,5 +145,10 @@ struct ImBuf *make_vectorscope_view_from_ibuf(struct ImBuf * ibuf);
|
||||
struct ImBuf *make_zebra_view_from_ibuf(struct ImBuf * ibuf, float perc);
|
||||
struct ImBuf *make_histogram_view_from_ibuf(struct ImBuf * ibuf);
|
||||
|
||||
/* sequencer_buttons.c */
|
||||
|
||||
void SEQUENCER_OT_properties(struct wmOperatorType *ot);
|
||||
void sequencer_buttons_register(struct ARegionType *art);
|
||||
|
||||
#endif /* ED_SEQUENCER_INTERN_H */
|
||||
|
||||
|
||||
@@ -99,6 +99,7 @@ void sequencer_operatortypes(void)
|
||||
WM_operatortype_append(SEQUENCER_OT_sound_strip_add);
|
||||
WM_operatortype_append(SEQUENCER_OT_image_strip_add);
|
||||
WM_operatortype_append(SEQUENCER_OT_effect_strip_add);
|
||||
WM_operatortype_append(SEQUENCER_OT_properties);
|
||||
}
|
||||
|
||||
|
||||
@@ -107,6 +108,8 @@ void sequencer_keymap(wmWindowManager *wm)
|
||||
ListBase *keymap= WM_keymap_listbase(wm, "Sequencer", SPACE_SEQ, 0);
|
||||
wmKeymapItem *kmi;
|
||||
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 0, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_select_invert", IKEY, KM_PRESS, KM_CTRL, 0);
|
||||
|
||||
|
||||
@@ -61,6 +61,36 @@
|
||||
|
||||
#include "sequencer_intern.h" // own include
|
||||
|
||||
/* ******************** manage regions ********************* */
|
||||
|
||||
ARegion *sequencer_has_buttons_region(ScrArea *sa)
|
||||
{
|
||||
ARegion *ar, *arnew;
|
||||
|
||||
for(ar= sa->regionbase.first; ar; ar= ar->next)
|
||||
if(ar->regiontype==RGN_TYPE_UI)
|
||||
return ar;
|
||||
|
||||
/* add subdiv level; after header */
|
||||
for(ar= sa->regionbase.first; ar; ar= ar->next)
|
||||
if(ar->regiontype==RGN_TYPE_HEADER)
|
||||
break;
|
||||
|
||||
/* is error! */
|
||||
if(ar==NULL) return NULL;
|
||||
|
||||
arnew= MEM_callocN(sizeof(ARegion), "buttons for sequencer");
|
||||
|
||||
BLI_insertlinkafter(&sa->regionbase, ar, arnew);
|
||||
arnew->regiontype= RGN_TYPE_UI;
|
||||
arnew->alignment= RGN_ALIGN_RIGHT;
|
||||
|
||||
arnew->flag = RGN_FLAG_HIDDEN;
|
||||
|
||||
return arnew;
|
||||
}
|
||||
|
||||
|
||||
/* ******************** default callbacks for sequencer space ***************** */
|
||||
|
||||
static SpaceLink *sequencer_new(const bContext *C)
|
||||
@@ -82,6 +112,14 @@ static SpaceLink *sequencer_new(const bContext *C)
|
||||
ar->regiontype= RGN_TYPE_HEADER;
|
||||
ar->alignment= RGN_ALIGN_BOTTOM;
|
||||
|
||||
/* buttons/list view */
|
||||
ar= MEM_callocN(sizeof(ARegion), "buttons for sequencer");
|
||||
|
||||
BLI_addtail(&sseq->regionbase, ar);
|
||||
ar->regiontype= RGN_TYPE_UI;
|
||||
ar->alignment= RGN_ALIGN_RIGHT;
|
||||
ar->flag = RGN_FLAG_HIDDEN;
|
||||
|
||||
/* main area */
|
||||
ar= MEM_callocN(sizeof(ARegion), "main area for sequencer");
|
||||
|
||||
@@ -201,6 +239,30 @@ static void sequencer_main_area_listener(ARegion *ar, wmNotifier *wmn)
|
||||
}
|
||||
}
|
||||
|
||||
/* *********************** buttons region ************************ */
|
||||
|
||||
/* add handlers, stuff you only do once or on area/region changes */
|
||||
static void sequencer_buttons_area_init(wmWindowManager *wm, ARegion *ar)
|
||||
{
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
}
|
||||
|
||||
static void sequencer_buttons_area_draw(const bContext *C, ARegion *ar)
|
||||
{
|
||||
ED_region_panels(C, ar, 1, NULL);
|
||||
}
|
||||
|
||||
static void sequencer_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
|
||||
{
|
||||
/* context changes */
|
||||
switch(wmn->category) {
|
||||
|
||||
}
|
||||
}
|
||||
/* ************************************* */
|
||||
|
||||
/* only called once, from space/spacetypes.c */
|
||||
void ED_spacetype_sequencer(void)
|
||||
{
|
||||
@@ -226,6 +288,18 @@ void ED_spacetype_sequencer(void)
|
||||
|
||||
BLI_addhead(&st->regiontypes, art);
|
||||
|
||||
/* regions: listview/buttons */
|
||||
art= MEM_callocN(sizeof(ARegionType), "spacetype sequencer region");
|
||||
art->regionid = RGN_TYPE_UI;
|
||||
art->minsizex= 220; // XXX
|
||||
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_FRAMES;
|
||||
art->listener= sequencer_buttons_area_listener;
|
||||
art->init= sequencer_buttons_area_init;
|
||||
art->draw= sequencer_buttons_area_draw;
|
||||
BLI_addhead(&st->regiontypes, art);
|
||||
|
||||
sequencer_buttons_register(art);
|
||||
|
||||
/* regions: header */
|
||||
art= MEM_callocN(sizeof(ARegionType), "spacetype sequencer region");
|
||||
art->regionid = RGN_TYPE_HEADER;
|
||||
|
||||
Reference in New Issue
Block a user