[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19651] branches/blender2.5/blender/source /blender/editors: UI:
Brecht Van Lommel
brecht at blender.org
Sat Apr 11 03:52:27 CEST 2009
Revision: 19651
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19651
Author: blendix
Date: 2009-04-11 03:52:27 +0200 (Sat, 11 Apr 2009)
Log Message:
-----------
UI:
* Template slots are no longer specified per item, but are
a state now, set with uiTemplateSlot.
* Some renaming of Layout functions for consistency.
* Fix for roundbox in stack template, now is always behind
the other buttons.
* Improved python API for layout:
http://www.pasteall.org/5008/python
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/include/UI_interface.h
branches/blender2.5/blender/source/blender/editors/interface/interface.c
branches/blender2.5/blender/source/blender/editors/interface/interface_api.c
branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h
branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c
branches/blender2.5/blender/source/blender/editors/interface/interface_utils.c
branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_object.c
branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_scene.c
branches/blender2.5/blender/source/blender/editors/space_text/text_header.c
Modified: branches/blender2.5/blender/source/blender/editors/include/UI_interface.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/UI_interface.h 2009-04-11 01:45:05 UTC (rev 19650)
+++ branches/blender2.5/blender/source/blender/editors/include/UI_interface.h 2009-04-11 01:52:27 UTC (rev 19651)
@@ -43,10 +43,12 @@
struct AutoComplete;
struct bContext;
struct Panel;
+struct PanelType;
struct PointerRNA;
struct PropertyRNA;
struct ReportList;
struct rcti;
+struct uiFontStyle;
typedef struct uiBut uiBut;
typedef struct uiBlock uiBlock;
@@ -582,6 +584,7 @@
void uiTemplateLeftRight(uiLayout *layout);
void uiTemplateColumn(uiLayout *layout);
+void uiTemplateColumnFlow(uiLayout *layout, int columns);
uiLayout *uiTemplateStack(uiLayout *layout);
/* horizontal header templates */
@@ -592,22 +595,24 @@
void uiTemplateHeaderID(uiLayout *layout, struct PointerRNA *ptr, char *propname, int flag, uiIDPoinFunc func);
void uiTemplateSetColor(uiLayout *layout, int color);
+void uiTemplateSlot(uiLayout *layout, int slot);
+
/* items */
-void uiItemO(uiLayout *layout, int slot, const char *name, int icon, char *opname);
-void uiItemEnumO(uiLayout *layout, int slot, const char *name, int icon, char *opname, char *propname, int value);
-void uiItemsEnumO(uiLayout *layout, int slot, char *opname, char *propname);
-void uiItemBooleanO(uiLayout *layout, int slot, const char *name, int icon, char *opname, char *propname, int value);
-void uiItemIntO(uiLayout *layout, int slot, const char *name, int icon, char *opname, char *propname, int value);
-void uiItemFloatO(uiLayout *layout, int slot, const char *name, int icon, char *opname, char *propname, float value);
-void uiItemStringO(uiLayout *layout, int slot, const char *name, int icon, char *opname, char *propname, char *value);
-void uiItemFullO(uiLayout *layout, int slot, const char *name, int icon, char *idname, struct IDProperty *properties, int context);
+void uiItemO(uiLayout *layout, const char *name, int icon, char *opname);
+void uiItemEnumO(uiLayout *layout, const char *name, int icon, char *opname, char *propname, int value);
+void uiItemsEnumO(uiLayout *layout, char *opname, char *propname);
+void uiItemBooleanO(uiLayout *layout, const char *name, int icon, char *opname, char *propname, int value);
+void uiItemIntO(uiLayout *layout, const char *name, int icon, char *opname, char *propname, int value);
+void uiItemFloatO(uiLayout *layout, const char *name, int icon, char *opname, char *propname, float value);
+void uiItemStringO(uiLayout *layout, const char *name, int icon, char *opname, char *propname, char *value);
+void uiItemFullO(uiLayout *layout, const char *name, int icon, char *idname, struct IDProperty *properties, int context);
-void uiItemR(uiLayout *layout, int slot, const char *name, int icon, struct PointerRNA *ptr, char *propname);
-void uiItemFullR(uiLayout *layout, int slot, const char *name, int icon, struct PointerRNA *ptr, char *propname, int index);
+void uiItemR(uiLayout *layout, const char *name, int icon, struct PointerRNA *ptr, char *propname);
+void uiItemFullR(uiLayout *layout, const char *name, int icon, struct PointerRNA *ptr, char *propname, int index);
-void uiItemLabel(uiLayout *layout, int slot, const char *name, int icon);
+void uiItemL(uiLayout *layout, const char *name, int icon);
-void uiItemMenu(uiLayout *layout, int slot, const char *name, int icon, uiMenuCreateFunc func);
+void uiItemM(uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func);
/* utilities */
#define UI_PANEL_WIDTH 340
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-04-11 01:45:05 UTC (rev 19650)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-04-11 01:52:27 UTC (rev 19651)
@@ -201,7 +201,7 @@
/* ******************* block calc ************************* */
-static void ui_block_translate(uiBlock *block, int x, int y)
+void ui_block_translate(uiBlock *block, int x, int y)
{
uiBut *bt;
@@ -2253,8 +2253,6 @@
but->icon = 0;
but->dt= block->dt;
- BLI_addtail(&block->buttons, but);
-
but->retval= retval;
if( strlen(str)>=UI_MAX_NAME_STR-1 ) {
but->str= MEM_callocN( strlen(str)+2, "uiDefBut");
@@ -2323,9 +2321,6 @@
but->flag |= UI_ICON_LEFT;
}
- if(but->type==ROUNDBOX)
- but->flag |= UI_NO_HILITE;
-
but->flag |= (block->flag & UI_BUT_ALIGN);
if(block->flag & UI_BLOCK_NO_HILITE)
but->flag |= UI_NO_HILITE;
@@ -2336,6 +2331,13 @@
}
}
+ if(but->type == ROUNDBOX) {
+ but->flag |= UI_NO_HILITE;
+ BLI_addhead(&block->buttons, but);
+ }
+ else
+ BLI_addtail(&block->buttons, but);
+
return but;
}
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_api.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_api.c 2009-04-11 01:45:05 UTC (rev 19650)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_api.c 2009-04-11 01:52:27 UTC (rev 19651)
@@ -32,36 +32,65 @@
#include "RNA_define.h"
#include "RNA_types.h"
+#include "UI_interface.h"
+
+static void api_ui_item_common(FunctionRNA *func)
+{
+ RNA_def_string(func, "text", "", 0, "", "Override automatic text of the item.");
+ RNA_def_int(func, "icon", 0, 0, INT_MAX, "", "Override automatic icon of the item.", 0, INT_MAX);
+}
+
void RNA_api_ui_layout(StructRNA *srna)
{
FunctionRNA *func;
+ PropertyRNA *parm;
+ static EnumPropertyItem slot_items[]= {
+ {0, "DEFAULT", "Default", ""},
+ {UI_TSLOT_COLUMN_1, "COLUMN_1", "Column 1", ""},
+ {UI_TSLOT_COLUMN_2, "COLUMN_2", "Column 2", ""},
+ {UI_TSLOT_COLUMN_3, "COLUMN_3", "Column 3", ""},
+ {UI_TSLOT_COLUMN_4, "COLUMN_4", "Column 4", ""},
+ {UI_TSLOT_COLUMN_5, "COLUMN_5", "Column 5", ""},
+ {UI_TSLOT_LR_LEFT, "LEFT", "Left", ""},
+ {UI_TSLOT_LR_RIGHT, "RIGHT", "Right", ""},
+ {0, NULL, NULL, NULL}
+ };
+
/* templates */
func= RNA_def_function(srna, "template_column", "uiTemplateColumn");
func= RNA_def_function(srna, "template_left_right", "uiTemplateLeftRight");
+
+ func= RNA_def_function(srna, "template_column_flow", "uiTemplateColumnFlow");
+ parm= RNA_def_int(func, "columns", 0, 0, INT_MAX, "", "Number of columns.", 0, INT_MAX);
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+
func= RNA_def_function(srna, "template_stack", "uiTemplateStack");
+ parm= RNA_def_pointer(func, "sub_layout", "UILayout", "", "Sub-layout to put stack items in.");
+ RNA_def_function_return(func, parm);
func= RNA_def_function(srna, "template_header_menus", "uiTemplateHeaderMenus");
func= RNA_def_function(srna, "template_header_buttons", "uiTemplateHeaderButtons");
//func= RNA_def_function(srna, "template_header_ID", "uiTemplateHeaderID");
+ func= RNA_def_function(srna, "template_slot", "uiTemplateSlot");
+ parm= RNA_def_enum(func, "slot", slot_items, 0, "", "Where in the template to put the following items.");
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+
/* items */
func= RNA_def_function(srna, "itemR", "uiItemR");
- RNA_def_int(func, "slot", 0, 0, 5, "", "", 0, 5);
- RNA_def_string(func, "name", "", 0, "", "");
- RNA_def_int(func, "icon", 0, 0, INT_MAX, "", "", 0, INT_MAX);
- RNA_def_pointer(func, "data", "AnyType", "", "");
- RNA_def_string(func, "property", "", 0, "", "");
+ api_ui_item_common(func);
+ parm= RNA_def_pointer(func, "data", "AnyType", "", "Data from which to take property.");
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ parm= RNA_def_string(func, "property", "", 0, "", "Identifier of property in data.");
+ RNA_def_property_flag(parm, PROP_REQUIRED);
func= RNA_def_function(srna, "itemO", "uiItemO");
- RNA_def_int(func, "slot", 0, 0, 5, "", "", 0, 5);
- RNA_def_string(func, "name", "", 0, "", "");
- RNA_def_int(func, "icon", 0, 0, INT_MAX, "", "", 0, INT_MAX);
- RNA_def_string(func, "operator", "", 0, "", "");
+ api_ui_item_common(func);
+ parm= RNA_def_string(func, "operator", "", 0, "", "Identifier of the operator.");
+ RNA_def_property_flag(parm, PROP_REQUIRED);
- func= RNA_def_function(srna, "itemL", "uiItemLabel");
- RNA_def_int(func, "slot", 0, 0, 5, "", "", 0, 5);
- RNA_def_string(func, "name", "", 0, "", "");
- RNA_def_int(func, "icon", 0, 0, INT_MAX, "", "", 0, INT_MAX);
+ func= RNA_def_function(srna, "itemL", "uiItemL");
+ api_ui_item_common(func);
}
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2009-04-11 01:45:05 UTC (rev 19650)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2009-04-11 01:52:27 UTC (rev 19651)
@@ -2832,6 +2832,9 @@
for(but=block->buttons.first; but; but= but->next) {
/* give precedence to already activated buttons */
+ if(but->flag & UI_NO_HILITE)
+ continue;
+
if(ui_but_contains_pt(but, mx, my))
if(!butover || (!butover->active && but->active))
butover= but;
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h 2009-04-11 01:45:05 UTC (rev 19650)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h 2009-04-11 01:52:27 UTC (rev 19651)
@@ -310,6 +310,7 @@
extern void ui_update_block_buts_hsv(uiBlock *block, float *hsv);
extern void ui_bounds_block(uiBlock *block);
+extern void ui_block_translate(uiBlock *block, int x, int y);
/* interface_regions.c */
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c 2009-04-11 01:45:05 UTC (rev 19650)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c 2009-04-11 01:52:27 UTC (rev 19651)
@@ -95,6 +95,7 @@
typedef enum uiTemplateType {
TEMPLATE_COLUMN,
+ TEMPLATE_COLUMN_FLOW,
TEMPLATE_LR,
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list