Revision: 22376
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22376
Author:   gsrb3d
Date:     2009-08-11 19:51:45 +0200 (Tue, 11 Aug 2009)

Log Message:
-----------
SVN maintenance.

Modified Paths:
--------------
    
branches/blender2.5/blender/source/blender/editors/animation/anim_channels_defines.c

Property Changed:
----------------
    
branches/blender2.5/blender/source/blender/editors/animation/anim_channels_defines.c

Modified: 
branches/blender2.5/blender/source/blender/editors/animation/anim_channels_defines.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/animation/anim_channels_defines.c
        2009-08-11 17:44:58 UTC (rev 22375)
+++ 
branches/blender2.5/blender/source/blender/editors/animation/anim_channels_defines.c
        2009-08-11 17:51:45 UTC (rev 22376)
@@ -1,1946 +1,1946 @@
-/**
- * $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) 2009 Blender Foundation, Joshua Leung
- * All rights reserved.
- *
- * Contributor(s): Joshua Leung
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-#include <float.h>
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "MEM_guardedalloc.h"
-
-#include "BLI_blenlib.h"
-#include "BLI_arithb.h"
-
-#include "DNA_listBase.h"
-#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_object_types.h"
-#include "DNA_particle_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_meta_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_windowmanager_types.h"
-#include "DNA_world_types.h"
-
-#include "RNA_access.h"
-#include "RNA_define.h"
-
-#include "BKE_animsys.h"
-#include "BKE_action.h"
-#include "BKE_depsgraph.h"
-#include "BKE_fcurve.h"
-#include "BKE_key.h"
-#include "BKE_material.h"
-#include "BKE_object.h"
-#include "BKE_context.h"
-#include "BKE_utildefines.h"
-
-#include "UI_interface.h"
-#include "UI_interface_icons.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
-
-#include "ED_anim_api.h"
-#include "ED_keyframes_edit.h" // XXX move the select modes out of there!
-#include "ED_screen.h"
-#include "ED_space_api.h"
-
-#include "BIF_gl.h"
-
-#include "WM_api.h"
-#include "WM_types.h"
-
-/* *********************************************** */
-// XXX constant defines to be moved elsewhere?
-
-/* extra padding for lengths (to go under scrollers) */
-#define EXTRA_SCROLL_PAD       100.0f
-
-/* size of indent steps */
-#define INDENT_STEP_SIZE       7
-
-/* macros used for type defines */
-       /* get the pointer used for some flag */
-#define GET_ACF_FLAG_PTR(ptr) \
-       { \
-               *type= sizeof((ptr)); \
-               return &(ptr); \
-       } 
-
-
-/* XXX */
-extern void gl_round_box(int mode, float minx, float miny, float maxx, float 
maxy, float rad);
-extern void gl_round_box_shade(int mode, float minx, float miny, float maxx, 
float maxy, float rad, float shadetop, float shadedown);
-
-
-/* *********************************************** */
-/* Generic Functions (Type independent) */
-
-/* Draw Backdrop ---------------------------------- */
-
-/* backdrop for top-level widgets (Scene and Object only) */
-static void acf_generic_root_backdrop(bAnimContext *ac, bAnimListElem *ale, 
float yminc, float ymaxc)
-{
-       bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale);
-       View2D *v2d= &ac->ar->v2d;
-       short expanded= ANIM_channel_setting_get(ac, ale, 
ACHANNEL_SETTING_EXPAND) != 0;
-       short offset= (acf->get_offset) ? acf->get_offset(ac, ale) : 0;
-       
-       /* darker blue for top-level widgets */
-       UI_ThemeColor(TH_DOPESHEET_CHANNELOB);
-       
-       /* rounded corners on LHS only - top only when expanded, but bottom too 
when collapsed */
-       uiSetRoundBox((expanded)? (1):(1|8));
-       gl_round_box(GL_POLYGON, offset,  yminc, 
v2d->cur.xmax+EXTRA_SCROLL_PAD, ymaxc, 8);
-}
-
-/* backdrop for data expanders under top-level Scene/Object */
-static void acf_generic_dataexpand_backdrop(bAnimContext *ac, bAnimListElem 
*ale, float yminc, float ymaxc)
-{
-       bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale);
-       View2D *v2d= &ac->ar->v2d;
-       short offset= (acf->get_offset) ? acf->get_offset(ac, ale) : 0;
-       
-       /* lighter color than top-level widget */
-       UI_ThemeColor(TH_DOPESHEET_CHANNELSUBOB);
-       
-       /* no rounded corner - just rectangular box */
-       glRectf(offset, yminc,  v2d->cur.xmax+EXTRA_SCROLL_PAD, ymaxc);
-}
-
-/* backdrop for generic channels */
-static void acf_generic_channel_backdrop(bAnimContext *ac, bAnimListElem *ale, 
float yminc, float ymaxc)
-{
-       bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale);
-       View2D *v2d= &ac->ar->v2d;
-       SpaceAction *saction = NULL;
-       bActionGroup *grp = NULL;
-       short indent= (acf->get_indent_level) ? acf->get_indent_level(ac, ale) 
: 0;
-       short offset= (acf->get_offset) ? acf->get_offset(ac, ale) : 0;
-       
-       /* get context info needed... */
-       if ((ac->sa) && (ac->sa->spacetype == SPACE_ACTION))
-               saction= (SpaceAction *)ac->sa->spacedata.first;
-               
-       if (ale->type == ANIMTYPE_FCURVE) {
-               FCurve *fcu= (FCurve *)ale->data;
-               grp= fcu->grp;
-       }
-       
-       /* set color for normal channels 
-        *      - use 3 shades of color group/standard color for 3 indention 
level
-        *      - only use group colors if allowed to, and if actually feasible
-        */
-       if ( (saction && !(saction->flag & SACTION_NODRAWGCOLORS)) && 
-                ((grp) && (grp->customCol)) ) 
-       {
-               char cp[3];
-               
-               if (indent == 2) {
-                       VECCOPY(cp, grp->cs.solid);
-               }
-               else if (indent == 1) {
-                       VECCOPY(cp, grp->cs.select);
-               }
-               else {
-                       VECCOPY(cp, grp->cs.active);
-               }
-               
-               glColor3ub(cp[0], cp[1], cp[2]);
-       }
-       else // FIXME: what happens when the indention is 1 greater than what 
it should be (due to grouping)?
-               UI_ThemeColorShade(TH_HEADER, ((indent==0)?20: (indent==1)?-20: 
-40));
-       
-       /* no rounded corners - just rectangular box */
-       glRectf(offset, yminc,  v2d->cur.xmax+EXTRA_SCROLL_PAD, ymaxc);
-}
-
-/* Indention + Offset ------------------------------------------- */
-
-/* indention level is always the value in the name */
-static short acf_generic_indention_0(bAnimContext *ac, bAnimListElem *ale)
-{
-       return 0;
-}
-static short acf_generic_indention_1(bAnimContext *ac, bAnimListElem *ale)
-{
-       return 1;
-}
-#if 0 // XXX not used
-static short acf_generic_indention_2(bAnimContext *ac, bAnimListElem *ale)
-{
-       return 2;
-}
-#endif
-
-/* indention which varies with the grouping status */
-static short acf_generic_indention_flexible(bAnimContext *ac, bAnimListElem 
*ale)
-{
-       short indent= 0;
-       
-       if (ale->id) {
-               /* special exception for materials and particles */
-               if (ELEM(GS(ale->id->name),ID_MA,ID_PA))
-                       indent++;
-       }
-       
-       /* grouped F-Curves need extra level of indention */
-       if (ale->type == ANIMTYPE_FCURVE) {
-               FCurve *fcu= (FCurve *)ale->data;
-               
-               // TODO: we need some way of specifying that the indention 
color should be one less...
-               if (fcu->grp)
-                       indent++;
-       }
-       
-       /* no indention */
-       return indent;
-}
-
-/* basic offset for channels derived from indention */
-static short acf_generic_basic_offset(bAnimContext *ac, bAnimListElem *ale)
-{
-       bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale);
-       
-       if (acf && acf->get_indent_level)
-               return acf->get_indent_level(ac, ale) * INDENT_STEP_SIZE;
-       else
-               return 0;
-}
-
-/* offset for groups + grouped entities */
-static short acf_generic_group_offset(bAnimContext *ac, bAnimListElem *ale)
-{
-       short offset= acf_generic_basic_offset(ac, ale);
-       
-       if (ale->id) {
-               /* special exception for materials and particles */
-               if (ELEM(GS(ale->id->name),ID_MA,ID_PA)) 
-                       offset += 21;
-                       
-               /* if not in Action Editor mode, groupings must carry some 
offset too... */
-               else if (ac->datatype != ANIMCONT_ACTION)
-                       offset += 14;
-       }
-       
-       /* offset is just the normal type - i.e. based on indention */
-       return offset;
-}
-
-/* Name ------------------------------------------- */
-
-/* name for ID block entries */
-static void acf_generic_idblock_name(bAnimListElem *ale, char *name)
-{
-       ID *id= (ID *)ale->data;        /* data pointed to should be an ID 
block */
-       
-       /* just copy the name... */
-       if (id && name)
-               sprintf(name, id->name+2);
-}
-
-/* Settings ------------------------------------------- */
-
-/* check if some setting exists for this object-based data-expander (category 
only) */
-static short acf_generic_dsexpand_setting_valid(bAnimContext *ac, 
bAnimListElem *ale, int setting)
-{
-       switch (setting) {
-               /* only expand supported */
-               case ACHANNEL_SETTING_EXPAND:
-                       return 1;
-                       
-               default:
-                       return 0;
-       }
-}
-
-/* get pointer to the setting (category only) */
-static void *acf_generic_dsexpand_setting_ptr(bAnimListElem *ale, int setting, 
short *type)
-{
-       Object *ob= (Object *)ale->data;
-       
-       /* clear extra return data first */
-       *type= 0;
-       
-       switch (setting) {
-               case ACHANNEL_SETTING_EXPAND: /* expanded */
-                       GET_ACF_FLAG_PTR(ob->nlaflag); // XXX
-               
-               default: /* unsupported */
-                       return NULL;
-       }
-}
-
-/* check if some setting exists for this object-based data-expander (datablock 
only) */
-static short acf_generic_dataexpand_setting_valid(bAnimContext *ac, 
bAnimListElem *ale, int setting)
-{
-       switch (setting) {
-               /* expand is always supported */
-               case ACHANNEL_SETTING_EXPAND:
-                       return 1;
-                       
-               /* mute is only supported for NLA */
-               case ACHANNEL_SETTING_MUTE:
-                       return ((ac) && (ac->spacetype == SPACE_NLA));
-                       
-               /* other flags are never supported */
-               default:
-                       return 0;
-       }
-}
-
-/* *********************************************** */
-/* Type Specific Functions + Defines */
-
-/* Scene ------------------------------------------- */
-
-// TODO: just get this from RNA?
-static int acf_scene_icon(bAnimListElem *ale)
-{
-       return ICON_SCENE_DATA;
-}
-
-/* check if some setting exists for this channel */
-static short acf_scene_setting_valid(bAnimContext *ac, bAnimListElem *ale, int 
setting)
-{
-       switch (setting) {
-               /* muted only in NLA */
-               case ACHANNEL_SETTING_MUTE: 
-                       return ((ac) && (ac->spacetype == SPACE_NLA));
-               

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