Revision: 39104
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39104
Author: campbellbarton
Date: 2011-08-06 16:00:00 +0000 (Sat, 06 Aug 2011)
Log Message:
-----------
rna/ui: avoid duplicate property gHash lookups by passing the property when its
already been found.
added _prop suffix to ui functions which take a prop rather then a propname,
may change this later since its not that nice but for gsoc branches this keeps
existing UI functions working the same.
Modified Paths:
--------------
trunk/blender/source/blender/editors/include/UI_interface.h
trunk/blender/source/blender/editors/interface/interface.c
trunk/blender/source/blender/editors/interface/interface_layout.c
trunk/blender/source/blender/editors/interface/interface_regions.c
trunk/blender/source/blender/editors/interface/interface_templates.c
trunk/blender/source/blender/editors/interface/interface_utils.c
Modified: trunk/blender/source/blender/editors/include/UI_interface.h
===================================================================
--- trunk/blender/source/blender/editors/include/UI_interface.h 2011-08-06
14:57:55 UTC (rev 39103)
+++ trunk/blender/source/blender/editors/include/UI_interface.h 2011-08-06
16:00:00 UTC (rev 39104)
@@ -410,6 +410,7 @@
uiBut *uiDefButC(uiBlock *block, int type, int retval, const char *str, int
x1, int y1, short x2, short y2, char *poin, float min, float max, float a1,
float a2, const char *tip);
uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, const char
*str, int x1, int y1, short x2, short y2, char *poin, float min, float max,
float a1, float a2, const char *tip);
uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int
x1, int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname,
int index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButR_prop(uiBlock *block, int type, int retval, const char *str,
int x1, int y1, short x2, short y2, struct PointerRNA *ptr, struct PropertyRNA
*prop, int index, float min, float max, float a1, float a2, const char *tip);
uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext,
const char *str, int x1, int y1, short x2, short y2, const char *tip);
uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int
opcontext, const char *str, int x1, int y1, short x2, short y2, void *poin,
float min, float max, float a1, float a2, const char *tip);
@@ -429,6 +430,7 @@
uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, int x1,
int y1, short x2, short y2, char *poin, float min, float max, float a1, float
a2, const char *tip);
uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int
icon, int x1, int y1, short x2, short y2, char *poin, float min, float max,
float a1, float a2, const char *tip);
uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x1,
int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int
index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButR_prop(uiBlock *block, int type, int retval, int icon, int
x1, int y1, short x2, short y2, struct PointerRNA *ptr, PropertyRNA *prop, int
index, float min, float max, float a1, float a2, const char *tip);
uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int
opcontext, int icon, int x1, int y1, short x2, short y2, const char *tip);
uiBut *uiDefIconTextBut(uiBlock *block,
@@ -447,6 +449,7 @@
uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, const
char *str, int x1, int y1, short x2, short y2, char *poin, float min, float
max, float a1, float a2, const char *tip);
uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int
icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float
min, float max, float a1, float a2, const char *tip);
uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const
char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, const
char *propname, int index, float min, float max, float a1, float a2, const char
*tip);
+uiBut *uiDefIconTextButR_prop(uiBlock *block, int type, int retval, int icon,
const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr,
struct PropertyRNA *prop, int index, float min, float max, float a1, float a2,
const char *tip);
uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int
opcontext, int icon, const char *str, int x1, int y1, short x2, short y2, const
char *tip);
/* for passing inputs to ButO buttons */
Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c 2011-08-06
14:57:55 UTC (rev 39103)
+++ trunk/blender/source/blender/editors/interface/interface.c 2011-08-06
16:00:00 UTC (rev 39104)
@@ -2830,6 +2830,16 @@
}
}
+static void ui_check_but_and_iconize(uiBut *but, int icon)
+{
+ if(icon) {
+ but->icon= (BIFIconID) icon;
+ but->flag|= UI_HAS_ICON;
+ }
+
+ ui_check_but(but);
+}
+
static uiBut *uiDefButBit(uiBlock *block, int type, int bit, int retval, const
char *str, int x1, int y1, short x2, short y2, void *poin, float min, float
max, float a1, float a2, const char *tip)
{
int bitIdx= findBitIndex(bit);
@@ -2874,31 +2884,29 @@
uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int
x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int
index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
-
but= ui_def_but_rna_propname(block, type, retval, str, x1, y1, x2, y2,
ptr, propname, index, min, max, a1, a2, tip);
- if(but)
- ui_check_but(but);
-
+ ui_check_but(but);
return but;
}
+uiBut *uiDefButR_prop(uiBlock *block, int type, int retval, const char *str,
int x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int
index, float min, float max, float a1, float a2, const char *tip)
+{
+ uiBut *but;
+ but= ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr,
prop, index, min, max, a1, a2, tip);
+ ui_check_but(but);
+ return but;
+}
uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext,
const char *str, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but;
-
but= ui_def_but_operator(block, type, opname, opcontext, str, x1, y1,
x2, y2, tip);
- if(but)
- ui_check_but(but);
-
+ ui_check_but(but);
return but;
}
uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int
opcontext, const char *str, int x1, int y1, short x2, short y2, void *poin,
float min, float max, float a1, float a2, const char *tip)
{
uiBut *but= ui_def_but_operator_text(block, type, opname, opcontext,
str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
-
- if(but)
- ui_check_but(but);
-
+ ui_check_but(but);
return but;
}
@@ -2906,12 +2914,7 @@
uiBut *uiDefIconBut(uiBlock *block, int type, int retval, int icon, int x1,
int y1, short x2, short y2, void *poin, float min, float max, float a1, float
a2, const char *tip)
{
uiBut *but= ui_def_but(block, type, retval, "", x1, y1, x2, y2, poin,
min, max, a1, a2, tip);
-
- but->icon= (BIFIconID) icon;
- but->flag|= UI_HAS_ICON;
-
- ui_check_but(but);
-
+ ui_check_but_and_iconize(but, icon);
return but;
}
static uiBut *uiDefIconButBit(uiBlock *block, int type, int bit, int retval,
int icon, int x1, int y1, short x2, short y2, void *poin, float min, float max,
float a1, float a2, const char *tip)
@@ -2959,29 +2962,22 @@
uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x1,
int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index,
float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
-
but= ui_def_but_rna_propname(block, type, retval, "", x1, y1, x2, y2,
ptr, propname, index, min, max, a1, a2, tip);
- if(but) {
- if(icon) {
- but->icon= (BIFIconID) icon;
- but->flag|= UI_HAS_ICON;
- }
- ui_check_but(but);
- }
-
+ ui_check_but_and_iconize(but, icon);
return but;
}
+uiBut *uiDefIconButR_prop(uiBlock *block, int type, int retval, int icon, int
x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int index,
float min, float max, float a1, float a2, const char *tip)
+{
+ uiBut *but;
+ but= ui_def_but_rna(block, type, retval, "", x1, y1, x2, y2, ptr, prop,
index, min, max, a1, a2, tip);
+ ui_check_but_and_iconize(but, icon);
+ return but;
+}
uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int
opcontext, int icon, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but;
-
but= ui_def_but_operator(block, type, opname, opcontext, "", x1, y1,
x2, y2, tip);
- if(but) {
- but->icon= (BIFIconID) icon;
- but->flag|= UI_HAS_ICON;
- ui_check_but(but);
- }
-
+ ui_check_but_and_iconize(but, icon);
return but;
}
@@ -2989,14 +2985,8 @@
uiBut *uiDefIconTextBut(uiBlock *block, int type, int retval, int icon, const
char *str, int x1, int y1, short x2, short y2, void *poin, float min, float
max, float a1, float a2, const char *tip)
{
uiBut *but= ui_def_but(block, type, retval, str, x1, y1, x2, y2, poin,
min, max, a1, a2, tip);
-
- but->icon= (BIFIconID) icon;
- but->flag|= UI_HAS_ICON;
-
+ ui_check_but_and_iconize(but, icon);
but->flag|= UI_ICON_LEFT;
-
- ui_check_but(but);
-
return but;
}
static uiBut *uiDefIconTextButBit(uiBlock *block, int type, int bit, int
retval, int icon, const char *str, int x1, int y1, short x2, short y2, void
*poin, float min, float max, float a1, float a2, const char *tip)
@@ -3044,31 +3034,25 @@
uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const
char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char
*propname, int index, float min, float max, float a1, float a2, const char
*tip)
{
uiBut *but;
-
but= ui_def_but_rna_propname(block, type, retval, str, x1, y1, x2, y2,
ptr, propname, index, min, max, a1, a2, tip);
- if(but) {
- if(icon) {
- but->icon= (BIFIconID) icon;
- but->flag|= UI_HAS_ICON;
- }
- but->flag|= UI_ICON_LEFT;
- ui_check_but(but);
- }
-
+ ui_check_but_and_iconize(but, icon);
+ but->flag|= UI_ICON_LEFT;
return but;
}
+uiBut *uiDefIconTextButR_prop(uiBlock *block, int type, int retval, int icon,
const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr,
PropertyRNA *prop, int index, float min, float max, float a1, float a2, const
char *tip)
+{
+ uiBut *but;
+ but= ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr,
prop, index, min, max, a1, a2, tip);
+ ui_check_but_and_iconize(but, icon);
+ but->flag|= UI_ICON_LEFT;
+ return but;
+}
uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int
opcontext, int icon, const char *str, int x1, int y1, short x2, short y2, const
char *tip)
{
uiBut *but;
-
but= ui_def_but_operator(block, type, opname, opcontext, str, x1, y1,
x2, y2, tip);
- if(but) {
- but->icon= (BIFIconID) icon;
- but->flag|= UI_HAS_ICON;
- but->flag|= UI_ICON_LEFT;
- ui_check_but(but);
- }
-
+ ui_check_but_and_iconize(but, icon);
+ but->flag|= UI_ICON_LEFT;
return but;
}
Modified: trunk/blender/source/blender/editors/interface/interface_layout.c
@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs