diff options
author | Ton Roosendaal <ton@blender.org> | 2009-06-08 14:38:28 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-06-08 14:38:28 +0400 |
commit | 559ab6a835f1445c1877f1418a8b35cfcc9fb751 (patch) | |
tree | 2607b471f212ce858427e35aed63e68ad003bc89 /source | |
parent | ca6a8a233b653e4545427b00fe265566da924522 (diff) |
2.5
Sequencer: added Nkey + UI region, with two empty panels to fill!
Diffstat (limited to 'source')
3 files changed, 87 insertions, 0 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h index df6a848696f..6f34aac0080 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.h +++ b/source/blender/editors/space_sequencer/sequencer_intern.h @@ -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 */ diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index b131061782a..600ef87e1b3 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -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); diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index 76273f24441..855bb49cb03 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -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; |