Revision: 20929
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20929
Author:   ton
Date:     2009-06-16 15:09:36 +0200 (Tue, 16 Jun 2009)

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

Added SpaceLogic, to restore the old logic buttons into.
In future it can be used for a more advanced logic editor, with
states, behaviour, whatever. We'll see!

This commit only adds the backend for new space. Committed this
now as reference for when we need another space type. It's still
not well plugin-able (dynamic space types), but my idea is to just
have a new SpacePlugIn for this, with a neat small API to define
all relevant callbacks.

Also note the icon for the spacetype is wrong still.

Modified Paths:
--------------
    branches/blender2.5/blender/source/Makefile
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/blenloader/intern/writefile.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_screen.h
    branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h
    branches/blender2.5/blender/source/blender/editors/interface/resources.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_lib.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
    branches/blender2.5/blender/source/blender/editors/screen/area.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
    branches/blender2.5/blender/source/blender/makesdna/DNA_userdef_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_userdef.c

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/editors/space_logic/
    branches/blender2.5/blender/source/blender/editors/space_logic/Makefile
    branches/blender2.5/blender/source/blender/editors/space_logic/SConscript
    
branches/blender2.5/blender/source/blender/editors/space_logic/logic_buttons.c
    
branches/blender2.5/blender/source/blender/editors/space_logic/logic_header.c
    
branches/blender2.5/blender/source/blender/editors/space_logic/logic_intern.h
    branches/blender2.5/blender/source/blender/editors/space_logic/space_logic.c

Modified: branches/blender2.5/blender/source/Makefile
===================================================================
--- branches/blender2.5/blender/source/Makefile 2009-06-16 12:54:34 UTC (rev 
20928)
+++ branches/blender2.5/blender/source/Makefile 2009-06-16 13:09:36 UTC (rev 
20929)
@@ -226,6 +226,7 @@
 PULIB += $(OCGDIR)/blender/ed_nla/$(DEBUG_DIR)libed_nla.a
 PULIB += $(OCGDIR)/blender/ed_script/$(DEBUG_DIR)libed_script.a
 PULIB += $(OCGDIR)/blender/ed_text/$(DEBUG_DIR)libed_text.a
+PULIB += $(OCGDIR)/blender/ed_logic/$(DEBUG_DIR)libed_logic.a
 PULIB += $(OCGDIR)/blender/ed_sequencer/$(DEBUG_DIR)libed_sequencer.a
 PULIB += $(OCGDIR)/blender/ed_file/$(DEBUG_DIR)libed_file.a
 PULIB += $(OCGDIR)/blender/ed_info/$(DEBUG_DIR)libed_info.a

Modified: 
branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c     
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c     
2009-06-16 13:09:36 UTC (rev 20929)
@@ -4733,6 +4733,14 @@
                                }
                                snode->nodetree= snode->edittree= NULL;
                        }
+                       else if(sl->spacetype==SPACE_LOGIC) {
+                               SpaceLogic *slogic= (SpaceLogic *)sl;
+                               
+                               if(slogic->gpd) {
+                                       slogic->gpd= newdataadr(fd, 
slogic->gpd);
+                                       direct_link_gpencil(fd, slogic->gpd);
+                               }
+                       }
                        else if(sl->spacetype==SPACE_SEQ) {
                                SpaceSeq *sseq= (SpaceSeq *)sl;
                                if(sseq->gpd) {

Modified: 
branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c    
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c    
2009-06-16 13:09:36 UTC (rev 20929)
@@ -1884,6 +1884,9 @@
                                else if(sl->spacetype==SPACE_NODE){
                                        writestruct(wd, DATA, "SpaceNode", 1, 
sl);
                                }
+                               else if(sl->spacetype==SPACE_LOGIC){
+                                       writestruct(wd, DATA, "SpaceLogic", 1, 
sl);
+                               }
                                sl= sl->next;
                        }
                }

Modified: branches/blender2.5/blender/source/blender/editors/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/Makefile 2009-06-16 
12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/editors/Makefile 2009-06-16 
13:09:36 UTC (rev 20929)
@@ -29,6 +29,6 @@
 # Bounces make to subdirectories.
 
 SOURCEDIR = source/blender/editors
-DIRS = armature mesh animation object sculpt_paint datafiles transform screen 
curve gpencil physics preview uvedit space_outliner space_time space_view3d 
interface util  space_api space_graph space_image space_node space_buttons 
space_info space_file space_sound space_action space_nla space_script 
space_text space_sequencer
+DIRS = armature mesh animation object sculpt_paint datafiles transform screen 
curve gpencil physics preview uvedit space_outliner space_time space_view3d 
interface util  space_api space_graph space_image space_node space_buttons 
space_info space_file space_sound space_action space_nla space_script 
space_text space_sequencer space_logic
 
 include nan_subdirs.mk

Modified: branches/blender2.5/blender/source/blender/editors/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/SConscript       
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/editors/SConscript       
2009-06-16 13:09:36 UTC (rev 20929)
@@ -29,6 +29,7 @@
                        'space_script/SConscript',
                        'space_text/SConscript',
                        'space_sequencer/SConscript',
+                       'space_logic/SConscript',
                        'transform/SConscript',
                        'screen/SConscript',
                        'sculpt_paint/SConscript',

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h      
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h      
2009-06-16 13:09:36 UTC (rev 20929)
@@ -118,6 +118,7 @@
 int            ED_operator_ipo_active(struct bContext *C);
 int            ED_operator_sequencer_active(struct bContext *C);
 int            ED_operator_image_active(struct bContext *C);
+int            ED_operator_logic_active(struct bContext *C);
 
 int            ED_operator_object_active(struct bContext *C);
 int            ED_operator_editmesh(struct bContext *C);

Modified: 
branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h   
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h   
2009-06-16 13:09:36 UTC (rev 20929)
@@ -50,6 +50,7 @@
 void ED_spacetype_script(void);
 void ED_spacetype_text(void);
 void ED_spacetype_sequencer(void);
+void ED_spacetype_logic(void);
 
 /* calls for instancing and freeing spacetype static data 
    called in WM_init_exit */

Modified: 
branches/blender2.5/blender/source/blender/editors/interface/resources.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/resources.c    
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/editors/interface/resources.c    
2009-06-16 13:09:36 UTC (rev 20929)
@@ -156,6 +156,9 @@
                        case SPACE_NODE:
                                ts= &btheme->tnode;
                                break;
+                       case SPACE_LOGIC:
+                               ts= &btheme->tlogic;
+                               break;
                        default:
                                ts= &btheme->tv3d;
                                break;
@@ -398,6 +401,7 @@
        ui_theme_init_new_do(&btheme->toops);
        ui_theme_init_new_do(&btheme->ttime);
        ui_theme_init_new_do(&btheme->tnode);
+       ui_theme_init_new_do(&btheme->tlogic);
        
 }
 
@@ -608,6 +612,9 @@
        SETCOL(btheme->tnode.syntaxv, 142, 138, 145, 255);      /* generator */
        SETCOL(btheme->tnode.syntaxc, 120, 145, 120, 255);      /* group */
 
+       /* space logic */
+       btheme->tlogic= btheme->tv3d;
+       
 }
 
 
@@ -1233,6 +1240,12 @@
 
                        if(btheme->tui.wcol_num.outline[3]==0)
                                ui_widget_color_init(&btheme->tui);
+                       
+                       /* Logic editor theme, check for alpha==0 is safe, then 
color was never set */
+                       if(btheme->tlogic.syntaxn[3]==0) {
+                               /* re-uses syntax color storage */
+                               btheme->tlogic= btheme->tv3d;
+                       }
                }
        }
        

Modified: branches/blender2.5/blender/source/blender/editors/mesh/editmesh_lib.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh_lib.c      
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_lib.c      
2009-06-16 13:09:36 UTC (rev 20929)
@@ -51,11 +51,13 @@
 #include "BLI_editVert.h"
 
 #include "BKE_customdata.h"
+#include "BKE_context.h"
 #include "BKE_global.h"
 #include "BKE_mesh.h"
 #include "BKE_utildefines.h"
 
 #include "ED_mesh.h"
+#include "ED_screen.h"
 #include "ED_view3d.h"
 
 #include "mesh_intern.h"
@@ -2278,3 +2280,10 @@
        }
 }
 
+/* poll call for mesh operators requiring a view3d context */
+int EM_view3d_poll(bContext *C)
+{
+       if(ED_operator_editmesh(C) && ED_operator_view3d_active(C))
+               return 1;
+       return 0;
+}

Modified: 
branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c    
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c    
2009-06-16 13:09:36 UTC (rev 20929)
@@ -966,7 +966,7 @@
        /* api callbacks */
        ot->invoke= spin_mesh_invoke;
        ot->exec= spin_mesh_exec;
-       ot->poll= ED_operator_editmesh;
+       ot->poll= EM_view3d_poll;
        
        /* flags */
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1073,7 +1073,7 @@
        /* api callbacks */
        ot->invoke= screw_mesh_invoke;
        ot->exec= screw_mesh_exec;
-       ot->poll= ED_operator_editmesh;
+       ot->poll= EM_view3d_poll;
        
        /* flags */
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -4995,7 +4995,7 @@
        
        /* api callbacks */
        ot->invoke= mesh_rip_invoke;
-       ot->poll= ED_operator_editmesh; // XXX + v3d!
+       ot->poll= EM_view3d_poll;
        
        /* flags */
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h       
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h       
2009-06-16 13:09:36 UTC (rev 20929)
@@ -135,6 +135,7 @@
 extern struct EditFace *EM_face_from_faces(EditMesh *em, struct EditFace *efa1,
                                                                                
   struct EditFace *efa2, int i1, int i2, int i3, int i4);
 
+extern int EM_view3d_poll(struct bContext *C);
 
 /* ******************* editmesh_loop.c */
 

Modified: branches/blender2.5/blender/source/blender/editors/screen/area.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/area.c    
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/editors/screen/area.c    
2009-06-16 13:09:36 UTC (rev 20929)
@@ -1048,6 +1048,7 @@
                   "|Outliner %x3" //232
                   "|Buttons Window %x4" //251
                   "|Node Editor %x16"
+                  "|Logic Editor %x17"
                   "|%l" //254
                   
                   "|File Browser %x5" //290

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c      
2009-06-16 12:54:34 UTC (rev 20928)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c      
2009-06-16 13:09:36 UTC (rev 20929)
@@ -179,6 +179,11 @@
        return ed_spacetype_test(C, SPACE_IMAGE);
 }
 
+int ED_operator_logic_active(bContext *C)
+{
+       return ed_spacetype_test(C, SPACE_LOGIC);
+}
+
 int ED_operator_object_active(bContext *C)
 {
        return NULL != CTX_data_active_object(C);

Modified: 
branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c   
2009-06-16 12:54:34 UTC (rev 20928)

@@ 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