Revision: 15196
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15196
Author:   blendix
Date:     2008-06-11 12:10:31 +0200 (Wed, 11 Jun 2008)

Log Message:
-----------

2.5 Branch
==========

* Changed wmOperatorType, removing init/exit callbacks and adding cancel
  callback, removed default storage in favor of properties. Defined return
  values for exec/invoke/modal/cancel.
* Don't allocate operator on the stack, and removed operator copy for
  handlers. Now it frees based on return values from callbacks, and just
  keeps a wmOperator on the heap. Also it now registers after the operator
  is fully finished, to get the correct final properties.
* Changed OP_get_* functions to return 1 if the property is found and 0
  otherwise, gives more readable code in my opinion. Added OP_verify_*
  functions to quickly check if the property is available and set if it's
  not, that's common for exec/invoke.
* Removed WM_operatortypelist_append in favor of WM_operatortype_append
  which takes a function pointer instead of a list, avoids macro's and
  duplicating code.
* Fix a crash where the handler would still be used while it was freed by
  the operator.

* Spacetypes now have operatortypes() and keymap() callbacks to abstract
  them a bit more.
* Renamed C->curarea to C->area for consistency. Removed View3D/View2D/
  SpaceIpo from bContext, seems bad to keep these.
* Set context variables like window/screen/area/region to NULL again when
  leaving that context, instead of leaving the pointers there.

* Added if(G.f & G_DEBUG) for many of the prints, makes output a bit
  cleaner and easier to debug.
* Fixed priority of the editors/interface module in scons, would otherwise
  give link errors.

* Added start of generic view2d api.
* Added space_time with some basic drawing and a single operator to change
  the frame.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
    branches/blender2.5/blender/source/blender/blenkernel/BKE_screen.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c
    branches/blender2.5/blender/source/blender/editors/Makefile
    branches/blender2.5/blender/source/blender/editors/SConscript
    branches/blender2.5/blender/source/blender/editors/include/ED_area.h
    branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
    branches/blender2.5/blender/source/blender/editors/interface/SConscript
    branches/blender2.5/blender/source/blender/editors/screen/area.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    branches/blender2.5/blender/source/blender/editors/screen/spacetypes.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
    
branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h
    branches/blender2.5/blender/source/blender/windowmanager/WM_api.h
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm.c
    
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_files.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_gesture.c
    
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c
    
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_subwindow.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_window.c
    branches/blender2.5/blender/source/blender/windowmanager/wm.h
    branches/blender2.5/blender/source/blender/windowmanager/wm_subwindow.h

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/editors/include/BIF_view2d.h
    branches/blender2.5/blender/source/blender/editors/interface/view2d.c
    branches/blender2.5/blender/source/blender/editors/space_time/
    branches/blender2.5/blender/source/blender/editors/space_time/Makefile
    branches/blender2.5/blender/source/blender/editors/space_time/SConscript
    branches/blender2.5/blender/source/blender/editors/space_time/space_time.c
    branches/blender2.5/blender/source/blender/editors/space_time/time_intern.h
    branches/blender2.5/blender/source/blender/editors/space_time/time_ops.c

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h  
2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h  
2008-06-11 10:10:31 UTC (rev 15196)
@@ -69,20 +69,9 @@
        struct wmWindowManager *wm;
        struct wmWindow *window;
        struct bScreen *screen;
-       struct ScrArea *curarea;
+       struct ScrArea *area;
        struct ARegion *region;
        
-       /* fast spacedata lookups */
-       struct View3D *vd;
-       struct View2D *v2d;
-       struct SpaceIpo *sipo;
-       struct SpaceButs *buts;
-       struct SpaceImage *sima;
-       struct SpaceOops *soops;
-       struct SpaceSound *ssound;
-       struct SpaceAction *saction;
-       struct SpaceNla *snla;
-       
        /* data context */
        struct Scene *scene;
        struct Object *obact;
@@ -90,11 +79,10 @@
        
        /* edit data context */
        struct EditMesh *editMesh;
-       struct  ListBase edbo;                  /* Armature Editmode bones */
+       struct ListBase edbo;                   /* Armature Editmode bones */
        
 } bContext;
 
-
 typedef struct Global {
 
        /* active pointers */

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_screen.h  
2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_screen.h  
2008-06-11 10:10:31 UTC (rev 15196)
@@ -8,11 +8,7 @@
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
-<<<<<<< .mine
- * of the License, or (at your option) any later version.
-=======
  * of the License, or (at your option) any later version. 
->>>>>>> .r13159
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -40,6 +36,8 @@
 struct bScreen;
 struct ARegion;
 struct wmNotifier;
+struct wmWindowManager;
+struct ListBase;
 
 /* spacetype has everything stored to get an editor working, it gets 
initialized via 
 spacetypes_init() in editors/area/spacetypes.c   */
@@ -52,14 +50,25 @@
        int                             spaceid;                                
        /* unique space identifier */
        int                             iconid;                                 
        /* icon lookup for menus */
        
-       struct SpaceLink        *(*new)(void);                                  
                /* calls init too */
-       void            (*free)(struct SpaceLink *sl);                          
        /* not free sl itself */
+       /* calls init too */
+       struct SpaceLink        *(*new)(void);
+       /* not free spacelink itself */
+       void            (*free)(struct SpaceLink *);
        
-       void            (*init)(struct ScrArea *);                              
                /* init is to cope with internal contextual changes, adds 
handlers, sets screarea regions */
-       void            (*refresh)(struct bContext *, struct ScrArea *);        
/* refresh is for external bContext changes */
+       /* init is to cope with internal contextual changes, adds handlers,
+        * sets screarea regions */
+       void            (*init)(struct wmWindowManager *, struct ScrArea *);
+       /* refresh is for external bContext changes */
+       void            (*refresh)(struct bContext *, struct ScrArea *);
        
-       struct SpaceLink        *(*duplicate)(struct SpaceLink *sl);            
/* after a spacedata copy, an init should result in exact same situation */
-       
+       /* after a spacedata copy, an init should result in exact same 
situation */
+       struct SpaceLink        *(*duplicate)(struct SpaceLink *);
+
+       /* register operator types on startup */
+       void            (*operatortypes)(void);
+       /* add default items to keymap */
+       void            (*keymap)(struct wmWindowManager *);
+
        /* read and write... */
        
 } SpaceType;
@@ -80,6 +89,7 @@
 void free_screen(struct bScreen *sc); 
 
 struct SpaceType *BKE_spacetype_from_id(int spaceid);
+const struct ListBase *BKE_spacetypes_list(void);
 void BKE_spacetype_register(struct SpaceType *st);
 void BKE_spacedata_freelist(ListBase *lb);
 void BKE_spacedata_copylist(ListBase *lb1, ListBase *lb2);

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c       
2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c       
2008-06-11 10:10:31 UTC (rev 15196)
@@ -51,6 +51,11 @@
        return NULL;
 }
 
+const ListBase *BKE_spacetypes_list()
+{
+       return &spacetypes;
+}
+
 void BKE_spacetype_register(SpaceType *st)
 {
        BLI_addtail(&spacetypes, st);

Modified: branches/blender2.5/blender/source/blender/editors/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/Makefile 2008-06-11 
09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/editors/Makefile 2008-06-11 
10:10:31 UTC (rev 15196)
@@ -29,6 +29,6 @@
 # Bounces make to subdirectories.
 
 SOURCEDIR = source/blender/editors
-DIRS = datafiles screen space_view3d interface
+DIRS = datafiles screen space_time space_view3d interface
 
 include nan_subdirs.mk

Modified: branches/blender2.5/blender/source/blender/editors/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/SConscript       
2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/editors/SConscript       
2008-06-11 10:10:31 UTC (rev 15196)
@@ -6,6 +6,7 @@
                        'interface/SConscript',
                        'mesh/SConscript',
                        'object/SConscript',
+                       'space_time/SConscript',
                        'space_view3d/SConscript',
                        'transform/SConscript',
                        'screen/SConscript'])

Added: branches/blender2.5/blender/source/blender/editors/include/BIF_view2d.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/BIF_view2d.h     
                        (rev 0)
+++ branches/blender2.5/blender/source/blender/editors/include/BIF_view2d.h     
2008-06-11 10:10:31 UTC (rev 15196)
@@ -0,0 +1,63 @@
+/**
+ * $Id:
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ * 
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef BIF_VIEW2D_H
+#define BIF_VIEW2D_H
+
+/* start of a generic 2d view with should allow drawing grids,
+ * panning, zooming, scrolling, .. */
+
+#define V2D_UNIT_SECONDS       0
+#define V2D_UNIT_FRAMES                1
+
+#define V2D_GRID_CLAMP         0
+#define V2D_GRID_NOCLAMP       1
+
+#define V2D_IS_CLIPPED 12000
+
+#define V2D_HORIZONTAL_LINES   1
+#define V2D_VERTICAL_LINES             2
+#define V2D_HORIZONTAL_AXIS            4
+#define V2D_VERTICAL_AXIS              8
+
+struct View2D;
+struct bContext;
+
+void BIF_view2d_ortho(const struct bContext *C, struct View2D *v2d);
+
+/* grid drawing */
+void BIF_view2d_calc_grid(const struct bContext *C, struct View2D *v2d, int 
unit, int type, int winx, int winy);
+void BIF_view2d_draw_grid(const struct bContext *C, struct View2D *v2d, int 
flag);
+
+/* coordinate conversion */
+void BIF_view2d_region_to_view(struct View2D *v2d, short x, short y, float 
*viewx, float *viewy);
+void BIF_view2d_view_to_region(struct View2D *v2d, float x, float y, short 
*regionx, short *regiony);
+void BIF_view2d_to_region_no_clip(struct View2D *v2d, float x, float y, short 
*regionx, short *region_y);
+
+#endif /* BIF_VIEW2D_H */
+

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_area.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_area.h        
2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_area.h        
2008-06-11 10:10:31 UTC (rev 15196)
@@ -25,20 +25,15 @@
  *
  * ***** END GPL LICENSE BLOCK *****
  */
+
 #ifndef ED_AREA_H
 #define ED_AREA_H
 
 /* the pluginnable API for export to editors */
 
-
 /* calls for registering default spaces */
+void ED_spacetype_time(void);
 void ED_spacetype_view3d(void);
 
-/* calls for registering operator types */
-void ED_operatortypes_screen(void);
-
-
 #endif /* ED_AREA_H */
 
-
-

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h      
2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h      
2008-06-11 10:10:31 UTC (rev 15196)
@@ -44,6 +44,7 @@
 
 /* spaces */
 void   ED_spacetypes_init(void);
+void   ED_spacetypes_keymap(struct wmWindowManager *wm);
 
 /* areas */
 void   ED_area_initialize(struct wmWindowManager *wm, struct wmWindow *win, 
struct ScrArea *sa);
@@ -57,7 +58,8 @@
 bScreen *ED_screen_duplicate(struct wmWindow *win, bScreen *sc);
 void   ED_screen_set_subwinactive(struct wmWindow *win);
 
-void   ed_screen_keymap(struct wmWindowManager *wm);
+void   ED_operatortypes_screen(void);
+void   ED_keymap_screen(struct wmWindowManager *wm);
 
 /* operators; context poll callbacks */
 int            ED_operator_screenactive(bContext *C);

Modified: 
branches/blender2.5/blender/source/blender/editors/interface/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/SConscript     
2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/editors/interface/SConscript     
2008-06-11 10:10:31 UTC (rev 15196)
@@ -4,6 +4,6 @@
 sources = env.Glob('*.c')
 
 incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
-incs += ' #/intern/guardedalloc'
+incs += ' ../../windowmanager #/intern/guardedalloc'
 

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to