Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-05-27 04:03:49 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-05-27 04:03:49 +0400
commit1b1667018e3e960d21ec0c802290a5e49ffe2a90 (patch)
treecc64d18d4f6cad2b436f9ae0b00365b12923797b /source/blender/editors/interface/interface_layout.c
parentb89fb7d8fdea03549f0108554c5631b19f4be770 (diff)
UI:
* Added Constraints template and Add Constraint operator. * Added toggle=True/False parameter to uiItemR, to get a toggle button (actual button) rather than an "option" button (checkbox) * Added OPTION/OPTIONN button type, to distinguish with TOG/TOGN. RNA: * Make all modifier pointers editable, including correct updates. * Added notifiers and updates to constraints. * Fix a stack corruption, pointed out by Andrea, and potentially causing crashes.
Diffstat (limited to 'source/blender/editors/interface/interface_layout.c')
-rw-r--r--source/blender/editors/interface/interface_layout.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 3fa0a8849fe..1b633c0fd77 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -672,7 +672,7 @@ static void ui_item_rna_size(uiLayout *layout, char *name, int icon, PropertyRNA
*r_h= h;
}
-void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int index, int value, int expand, int slider)
+void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int index, int value, int expand, int slider, int toggle)
{
uiBlock *block= layout->root->block;
uiBut *but;
@@ -734,10 +734,13 @@ void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, Proper
if(slider && but->type==NUM)
but->type= NUMSLI;
+
+ if(toggle && but->type==OPTION)
+ but->type= TOG;
}
}
-void uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, char *propname, int expand, int slider)
+void uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, char *propname, int expand, int slider, int toggle)
{
PropertyRNA *prop;
@@ -752,7 +755,7 @@ void uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, char *prop
return;
}
- uiItemFullR(layout, name, icon, ptr, prop, RNA_NO_INDEX, 0, expand, slider);
+ uiItemFullR(layout, name, icon, ptr, prop, RNA_NO_INDEX, 0, expand, slider, toggle);
}
void uiItemEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, int value)
@@ -770,7 +773,7 @@ void uiItemEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr,
return;
}
- uiItemFullR(layout, name, icon, ptr, prop, RNA_ENUM_VALUE, value, 0, 0);
+ uiItemFullR(layout, name, icon, ptr, prop, RNA_ENUM_VALUE, value, 0, 0, 0);
}
void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname)
@@ -1595,7 +1598,7 @@ static void ui_item_align(uiLayout *litem, int nr)
}
}
-static void ui_item_layout(uiItem *item, int align)
+static void ui_item_layout(uiItem *item)
{
uiItem *subitem;
@@ -1605,7 +1608,7 @@ static void ui_item_layout(uiItem *item, int align)
if(litem->items.first == NULL)
return;
- if(litem->align && !align)
+ if(litem->align)
ui_item_align(litem, ++litem->root->block->alignnr);
switch(litem->item.type) {
@@ -1635,14 +1638,14 @@ static void ui_item_layout(uiItem *item, int align)
}
for(subitem=litem->items.first; subitem; subitem=subitem->next)
- ui_item_layout(subitem, litem->align || align);
+ ui_item_layout(subitem);
}
}
static void ui_layout_items(const bContext *C, uiBlock *block, uiLayout *layout)
{
ui_item_estimate(&layout->item);
- ui_item_layout(&layout->item, 0);
+ ui_item_layout(&layout->item);
}
static void ui_layout_end(const bContext *C, uiBlock *block, uiLayout *layout, int *x, int *y)