2.5
authorTon Roosendaal <ton@blender.org>
Mon, 22 Dec 2008 10:09:56 +0000 (10:09 +0000)
committerTon Roosendaal <ton@blender.org>
Mon, 22 Dec 2008 10:09:56 +0000 (10:09 +0000)
Small area/space api fix: space->new() callbacks now require
Context pointer. Too many cases you want to initialize stuff...

Also: added dummy draw function for NLA channel region, was
too ugly.

18 files changed:
source/blender/blenkernel/BKE_screen.h
source/blender/editors/screen/area.c
source/blender/editors/space_action/space_action.c
source/blender/editors/space_api/spacetypes.c
source/blender/editors/space_buttons/space_buttons.c
source/blender/editors/space_file/space_file.c
source/blender/editors/space_image/space_image.c
source/blender/editors/space_info/space_info.c
source/blender/editors/space_ipo/space_ipo.c
source/blender/editors/space_nla/space_nla.c
source/blender/editors/space_node/space_node.c
source/blender/editors/space_outliner/space_outliner.c
source/blender/editors/space_script/space_script.c
source/blender/editors/space_sequencer/space_sequencer.c
source/blender/editors/space_sound/space_sound.c
source/blender/editors/space_text/space_text.c
source/blender/editors/space_time/space_time.c
source/blender/editors/space_view3d/space_view3d.c

index acb9814b64a89948f4202db7eebc584de2d6e63f..35bc40ded4c35b6770b074f978b91f380fb78043 100644 (file)
@@ -57,7 +57,7 @@ typedef struct SpaceType {
        int                             iconid;                                         /* icon lookup for menus */
        
        /* initial allocation, after this WM will call init() too */
-       struct SpaceLink        *(*new)(void);
+       struct SpaceLink        *(*new)(const struct bContext *C);
        /* not free spacelink itself */
        void            (*free)(struct SpaceLink *);
        
index f90c247d69df45731de07dabf1d6a360d0a107d2..1c47d9302a1e93a9e1819cc49542c939cb5df80b 100644 (file)
@@ -620,7 +620,7 @@ void area_newspace(bContext *C, ScrArea *sa, int type)
                else {
                        /* new space */
                        if(st) {
-                               sl= st->new();
+                               sl= st->new(C);
                                BLI_addhead(&sa->spacedata, sl);
                                
                                /* swap regions */
index a8e7a94cb19c7f3d7b4f759a4ba401a3e6cb4847..7d6a4804dec79f836df87d7a9646bdfaf1d11151 100644 (file)
@@ -66,7 +66,7 @@
 
 /* ******************** default callbacks for action space ***************** */
 
-static SpaceLink *action_new(void)
+static SpaceLink *action_new(const bContext *C)
 {
        ARegion *ar;
        SpaceAction *saction;
@@ -105,7 +105,7 @@ static SpaceLink *action_new(void)
        ar->v2d.tot.ymax= 0.0f;
        
        ar->v2d.cur.xmin= -2.0f;
-       ar->v2d.cur.ymin= -2000.0f; /* ideally this would be the size of the region, but since we don't know that, set for 1:1 */
+       ar->v2d.cur.ymin= -2000.0f; /* ideally this would be the size of the region */
        ar->v2d.cur.xmax= 100.0f;
        ar->v2d.cur.ymax= 0.0f;
        
index e2f9ead8e595a63dd818e77376a188825d57770a..ebfab2a83188081eb8044a23a3d34659a2d7e4eb 100644 (file)
@@ -116,7 +116,7 @@ void ED_spacetypes_keymap(wmWindowManager *wm)
 /* ****************************** space template *********************** */
 
 /* allocate and init some vars */
-static SpaceLink *xxx_new(void)
+static SpaceLink *xxx_new(const bContext *C)
 {
        return NULL;
 }
index 6819a28406d71ee7b2da41f6f7a5d06a17ba00d2..088664f53430bba308ea1a524f81e49585237644 100644 (file)
@@ -62,7 +62,7 @@
 
 /* ******************** default callbacks for buttons space ***************** */
 
-static SpaceLink *buttons_new(void)
+static SpaceLink *buttons_new(const bContext *C)
 {
        ARegion *ar;
        SpaceButs *sbuts;
index 5e19a993b732c38c3ba34aa77af1b79d5fb87c76..3d20dbe39a11af02b0c9c1cd8556ac994c0bdd5d 100644 (file)
@@ -64,7 +64,7 @@
 
 /* ******************** default callbacks for file space ***************** */
 
-static SpaceLink *file_new(void)
+static SpaceLink *file_new(const bContext *C)
 {
        ARegion *ar;
        SpaceFile *sfile;
index 41389f442d24ec8ac580c30e4bc2065d06119973..3ac6d3f870bf67781a4ecf9e74382cf8d4cc6fc6 100644 (file)
@@ -63,7 +63,7 @@
 
 /* ******************** default callbacks for image space ***************** */
 
-static SpaceLink *image_new(void)
+static SpaceLink *image_new(const bContext *C)
 {
        ARegion *ar;
        SpaceImage *simage;
index ae6b4333150d08727cb2fb6ea9519e8843c74002..7ee6d67f7a8e8f01862e581b1419a146eb8003c3 100644 (file)
@@ -62,7 +62,7 @@
 
 /* ******************** default callbacks for info space ***************** */
 
-static SpaceLink *info_new(void)
+static SpaceLink *info_new(const bContext *C)
 {
        ARegion *ar;
        SpaceInfo *sinfo;
index 23723062479ca6d8606ec68f0febcab3e3d9b62a..99b0ebcf03c2b1a7bd18e43bbfd6ad8ce7373983 100644 (file)
@@ -62,8 +62,9 @@
 
 /* ******************** default callbacks for ipo space ***************** */
 
-static SpaceLink *ipo_new(void)
+static SpaceLink *ipo_new(const bContext *C)
 {
+       Scene *scene= CTX_data_scene(C);
        ARegion *ar;
        SpaceIpo *sipo;
        
@@ -97,7 +98,7 @@ static SpaceLink *ipo_new(void)
        
        ar->v2d.tot.xmin= 0.0f;
        ar->v2d.tot.ymin= -10.0f;
-       ar->v2d.tot.xmax= 250.0;
+       ar->v2d.tot.xmax= scene->r.efra;
        ar->v2d.tot.ymax= 10.0f;
        
        ar->v2d.cur= ar->v2d.tot;
index 58f7b92e8721620ec65a3fc302b42e379cf8c177..1be1908b6819cdb48c03e7cd914236aa16cfb892 100644 (file)
@@ -63,7 +63,7 @@
 
 /* ******************** default callbacks for nla space ***************** */
 
-static SpaceLink *nla_new(void)
+static SpaceLink *nla_new(const bContext *C)
 {
        ARegion *ar;
        SpaceNla *snla;
@@ -142,6 +142,28 @@ static SpaceLink *nla_duplicate(SpaceLink *sl)
        return (SpaceLink *)snlan;
 }
 
+static void nla_channel_area_draw(const bContext *C, ARegion *ar)
+{
+       /* draw entirely, view changes should be handled here */
+       // SpaceNla *snla= (SpaceNla*)CTX_wm_space_data(C);
+       // View2D *v2d= &ar->v2d;
+       float col[3];
+       
+       /* clear and setup matrix */
+       UI_GetThemeColor3fv(TH_BACK, col);
+       glClearColor(col[0], col[1], col[2], 0.0);
+       glClear(GL_COLOR_BUFFER_BIT);
+       
+       // UI_view2d_view_ortho(C, v2d);
+       
+       /* data... */
+       
+       
+       /* reset view matrix */
+       //UI_view2d_view_restore(C);
+       
+       /* scrollers? */
+}
 
 
 /* add handlers, stuff you only do once or on area/region changes */
@@ -265,7 +287,7 @@ void ED_spacetype_nla(void)
        art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D;
        
        //art->init= nla_channel_area_init;
-       //art->draw= nla_channel_area_draw;
+       art->draw= nla_channel_area_draw;
        
        BLI_addhead(&st->regiontypes, art);
        
index 642fe92d29b332c9d723a4c078ae05e6de03009d..2cba586b0a94950c146bf8d54a2d95cbf07cc683 100644 (file)
@@ -61,7 +61,7 @@
 
 /* ******************** default callbacks for node space ***************** */
 
-static SpaceLink *node_new(void)
+static SpaceLink *node_new(const bContext *C)
 {
        ARegion *ar;
        SpaceNode *snode;
index ba694754e13543f82c02c4c15124a4ffcfe74bca..dd80b0d7a0ed867452ff253d68c35bf6f5c42d5f 100644 (file)
@@ -532,7 +532,7 @@ static void outliner_header_area_free(ARegion *ar)
 
 /* ******************** default callbacks for outliner space ***************** */
 
-static SpaceLink *outliner_new(void)
+static SpaceLink *outliner_new(const bContext *C)
 {
        ARegion *ar;
        SpaceOops *soutliner;
index 6693d71b507ef43e89b50bbd9d87497eff7038cd..d9fd4159fb1068b1422455b45641c90a95cd0a4e 100644 (file)
@@ -62,7 +62,7 @@
 
 /* ******************** default callbacks for script space ***************** */
 
-static SpaceLink *script_new(void)
+static SpaceLink *script_new(const bContext *C)
 {
        ARegion *ar;
        SpaceScript *sscript;
index 2452b103a56a6e83ff9c7c720b7c988d273ba5d0..08f700d1cf9434c370f39757f60d3353717f5837 100644 (file)
@@ -62,8 +62,9 @@
 
 /* ******************** default callbacks for sequencer space ***************** */
 
-static SpaceLink *sequencer_new(void)
+static SpaceLink *sequencer_new(const bContext *C)
 {
+       Scene *scene= CTX_data_scene(C);
        ARegion *ar;
        SpaceSeq *sseq;
        
@@ -87,11 +88,11 @@ static SpaceLink *sequencer_new(void)
        ar->regiontype= RGN_TYPE_WINDOW;
        
        
-       /* seq space goes from (0,8) to (250, 0) */
+       /* seq space goes from (0,8) to (0, efra) */
        
        ar->v2d.tot.xmin= 0.0f;
        ar->v2d.tot.ymin= 0.0f;
-       ar->v2d.tot.xmax= 250.0f;
+       ar->v2d.tot.xmax= scene->r.efra;
        ar->v2d.tot.ymax= 8.0f;
        
        ar->v2d.cur= ar->v2d.tot;
index 82ed6082a38c98b8d9987c982b798d06080815d0..1b275e51e321250e9b980624400dc22bc1f072f4 100644 (file)
@@ -63,7 +63,7 @@
 
 /* ******************** default callbacks for sound space ***************** */
 
-static SpaceLink *sound_new(void)
+static SpaceLink *sound_new(const bContext *C)
 {
        ARegion *ar;
        SpaceSound *ssound;
index bab9ce3c143fbd1eb0525a83783655060e47b633..14caafe722ee3b605615df91dcdb292f0d64ec0c 100644 (file)
@@ -63,7 +63,7 @@
 
 /* ******************** default callbacks for text space ***************** */
 
-static SpaceLink *text_new(void)
+static SpaceLink *text_new(const bContext *C)
 {
        ARegion *ar;
        SpaceText *stext;
index fdba1829410ea61b366f1a3b6446dd2d4211b207..81c5334ef31a0dc0bc647216cb814aeaa9f0e4d8 100644 (file)
@@ -205,8 +205,9 @@ static void time_header_area_draw(const bContext *C, ARegion *ar)
 
 /* ******************** default callbacks for time space ***************** */
 
-static SpaceLink *time_new(void)
+static SpaceLink *time_new(const bContext *C)
 {
+       Scene *scene= CTX_data_scene(C);
        ARegion *ar;
        SpaceTime *stime;
 
@@ -229,10 +230,9 @@ static SpaceLink *time_new(void)
        BLI_addtail(&stime->regionbase, ar);
        ar->regiontype= RGN_TYPE_WINDOW;
        
-       /* XXX here sfra and efra was used.... */
-       ar->v2d.tot.xmin= (float)(- 4);
+       ar->v2d.tot.xmin= (float)(SFRA - 4);
        ar->v2d.tot.ymin= 0.0f;
-       ar->v2d.tot.xmax= (float)(250 +  4);
+       ar->v2d.tot.xmax= (float)(EFRA + 4);
        ar->v2d.tot.ymax= 50.0f;
        
        ar->v2d.cur= ar->v2d.tot;
index e20490c0c075dabc2507d1d0d308ccd88cee5b93..96116af1c06b6d6b59c8542c37f4e4fa8b99cb12 100644 (file)
@@ -60,8 +60,9 @@
 
 /* ******************** default callbacks for view3d space ***************** */
 
-static SpaceLink *view3d_new(void)
+static SpaceLink *view3d_new(const bContext *C)
 {
+       Scene *scene= CTX_data_scene(C);
        ARegion *ar;
        View3D *vd;
        
@@ -69,9 +70,9 @@ static SpaceLink *view3d_new(void)
        vd->spacetype= SPACE_VIEW3D;
        vd->blockscale= 0.7f;
        vd->lay= vd->layact= 1;
-       if(G.scene) {
-               vd->lay= vd->layact= G.scene->lay;
-               vd->camera= G.scene->camera;
+       if(scene) {
+               vd->lay= vd->layact= scene->lay;
+               vd->camera= scene->camera;
        }
        vd->scenelock= 1;
        vd->grid= 1.0f;