* Added some properties of uiLayout that can be set. I've added
  some API code for more than the two I've implementeds, so
  ignore those for now.

  * layout.active = False will gray out buttons inside a layout.
  * layout.enabled = False will gray out and completely disable
    the buttons inside a layout.

* Also some function renames.
This commit is contained in:
Brecht Van Lommel 2009-05-28 23:37:55 +00:00
parent a591a47c43
commit 46b91bf162
14 changed files with 248 additions and 39 deletions

@ -328,7 +328,7 @@ static int poselib_add_menu_invoke (bContext *C, wmOperator *op, wmEvent *evt)
/* start building */
pup= uiPupMenuBegin(C, op->type->name, 0);
layout= uiPupMenuLayout(pup);
uiLayoutContext(layout, WM_OP_EXEC_DEFAULT);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
/* add new (adds to the first unoccupied frame) */
uiItemIntO(layout, "Add New", 0, "POSELIB_OT_pose_add", "frame", poselib_get_free_index(ob->poselib));
@ -462,7 +462,7 @@ static int poselib_stored_pose_menu_invoke (bContext *C, wmOperator *op, wmEvent
/* start building */
pup= uiPupMenuBegin(C, op->type->name, 0);
layout= uiPupMenuLayout(pup);
uiLayoutContext(layout, WM_OP_EXEC_DEFAULT);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
/* add each marker to this menu */
for (marker=act->markers.first, i=0; marker; marker= marker->next, i++)

@ -131,6 +131,7 @@ typedef struct uiLayout uiLayout;
#define UI_BUT_ANIMATED (1<<20)
#define UI_BUT_ANIMATED_KEY (1<<21)
#define UI_BUT_DRIVEN (1<<22)
#define UI_BUT_INACTIVE (1<<23)
#define UI_PANEL_WIDTH 340
#define UI_COMPACT_PANEL_WIDTH 160
@ -534,20 +535,38 @@ uiBut *uiDefMenuTogR(uiBlock *block, struct PointerRNA *ptr, char *propname, cha
#define UI_LAYOUT_PANEL 0
#define UI_LAYOUT_HEADER 1
#define UI_LAYOUT_MENU 2
#define UI_UNIT_X 20
#define UI_UNIT_Y 20
#define UI_UNIT_X 20
#define UI_UNIT_Y 20
#define UI_LAYOUT_ALIGN_LEFT 0
#define UI_LAYOUT_ALIGN_CENTER 1
#define UI_LAYOUT_ALIGN_RIGHT 2
uiLayout *uiBlockLayout(uiBlock *block, int dir, int type, int x, int y, int size, int em, struct uiStyle *style);
void uiBlockSetCurLayout(uiBlock *block, uiLayout *layout);
void uiBlockLayoutResolve(const struct bContext *C, uiBlock *block, int *x, int *y);
void uiLayoutContext(uiLayout *layout, int opcontext);
void uiLayoutFunc(uiLayout *layout, uiMenuHandleFunc handlefunc, void *argv);
uiBlock *uiLayoutBlock(uiLayout *layout);
uiBlock *uiLayoutGetBlock(uiLayout *layout);
void uiLayoutSetOperatorContext(uiLayout *layout, int opcontext);
void uiLayoutSetFunc(uiLayout *layout, uiMenuHandleFunc handlefunc, void *argv);
void uiLayoutSetContextPointer(uiLayout *layout, char *name, struct PointerRNA *ptr);
void uiLayoutSetActive(uiLayout *layout, int active);
void uiLayoutSetEnabled(uiLayout *layout, int enabled);
void uiLayoutSetRedAlert(uiLayout *layout, int redalert);
void uiLayoutSetAlignment(uiLayout *layout, int alignment);
void uiLayoutSetKeepAspect(uiLayout *layout, int keepaspect);
void uiLayoutSetScale(uiLayout *layout, float scale);
int uiLayoutGetActive(uiLayout *layout);
int uiLayoutGetEnabled(uiLayout *layout);
int uiLayoutGetRedAlert(uiLayout *layout);
int uiLayoutGetAlignment(uiLayout *layout);
int uiLayoutGetKeepAspect(uiLayout *layout);
float uiLayoutGetScale(uiLayout *layout);
/* layout specifiers */
uiLayout *uiLayoutRow(uiLayout *layout, int align);
uiLayout *uiLayoutColumn(uiLayout *layout, int align);

@ -130,8 +130,14 @@ struct uiLayout {
ListBase items;
int x, y, w, h;
int space;
int align;
float scale;
short space;
char align;
char active;
char enabled;
char redalert;
char keepaspect;
char alignment;
};
typedef struct uiLayoutItemFlow {
@ -946,7 +952,7 @@ static void menu_item_enum_opname_menu(bContext *C, uiLayout *layout, void *arg)
{
MenuItemLevel *lvl= (MenuItemLevel*)(((uiBut*)arg)->func_argN);
uiLayoutContext(layout, WM_OP_EXEC_REGION_WIN);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_REGION_WIN);
uiItemsEnumO(layout, lvl->opname, lvl->propname);
}
@ -977,7 +983,7 @@ static void menu_item_enum_rna_menu(bContext *C, uiLayout *layout, void *arg)
{
MenuItemLevel *lvl= (MenuItemLevel*)(((uiBut*)arg)->func_argN);
uiLayoutContext(layout, lvl->opcontext);
uiLayoutSetOperatorContext(layout, lvl->opcontext);
uiItemsEnumR(layout, &lvl->rnapoin, lvl->propname);
}
@ -1435,6 +1441,9 @@ uiLayout *uiLayoutRow(uiLayout *layout, int align)
litem->item.type= ITEM_LAYOUT_ROW;
litem->root= layout->root;
litem->align= align;
litem->active= 1;
litem->enabled= 1;
litem->context= layout->context;
litem->space= (align)? 0: layout->root->style->buttonspacex;
BLI_addtail(&layout->items, litem);
@ -1451,6 +1460,9 @@ uiLayout *uiLayoutColumn(uiLayout *layout, int align)
litem->item.type= ITEM_LAYOUT_COLUMN;
litem->root= layout->root;
litem->align= align;
litem->active= 1;
litem->enabled= 1;
litem->context= layout->context;
litem->space= (litem->align)? 0: layout->root->style->buttonspacey;
BLI_addtail(&layout->items, litem);
@ -1467,6 +1479,9 @@ uiLayout *uiLayoutColumnFlow(uiLayout *layout, int number, int align)
flow->litem.item.type= ITEM_LAYOUT_COLUMN_FLOW;
flow->litem.root= layout->root;
flow->litem.align= align;
flow->litem.active= 1;
flow->litem.enabled= 1;
flow->litem.context= layout->context;
flow->litem.space= (flow->litem.align)? 0: layout->root->style->columnspace;
flow->number= number;
BLI_addtail(&layout->items, flow);
@ -1483,6 +1498,9 @@ uiLayout *uiLayoutBox(uiLayout *layout)
box= MEM_callocN(sizeof(uiLayoutItemBx), "uiLayoutItemBx");
box->litem.item.type= ITEM_LAYOUT_BOX;
box->litem.root= layout->root;
box->litem.active= 1;
box->litem.enabled= 1;
box->litem.context= layout->context;
box->litem.space= layout->root->style->columnspace;
BLI_addtail(&layout->items, box);
@ -1501,6 +1519,9 @@ uiLayout *uiLayoutFree(uiLayout *layout, int align)
litem->item.type= ITEM_LAYOUT_FREE;
litem->root= layout->root;
litem->align= align;
litem->active= 1;
litem->enabled= 1;
litem->context= layout->context;
BLI_addtail(&layout->items, litem);
uiBlockSetCurLayout(layout->root->block, litem);
@ -1512,7 +1533,7 @@ uiBlock *uiLayoutFreeBlock(uiLayout *layout)
{
uiBlock *block;
block= uiLayoutBlock(layout);
block= uiLayoutGetBlock(layout);
uiLayoutFree(layout, 0);
return block;
@ -1532,6 +1553,66 @@ uiLayout *uiLayoutSplit(uiLayout *layout)
return litem;
}
void uiLayoutSetActive(uiLayout *layout, int active)
{
layout->active= active;
}
void uiLayoutSetEnabled(uiLayout *layout, int enabled)
{
layout->enabled= enabled;
}
void uiLayoutSetRedAlert(uiLayout *layout, int redalert)
{
layout->redalert= redalert;
}
void uiLayoutSetKeepAspect(uiLayout *layout, int keepaspect)
{
layout->keepaspect= keepaspect;
}
void uiLayoutSetAlignment(uiLayout *layout, int alignment)
{
layout->alignment= alignment;
}
void uiLayoutSetScale(uiLayout *layout, float scale)
{
layout->scale= scale;
}
int uiLayoutGetActive(uiLayout *layout)
{
return layout->active;
}
int uiLayoutGetEnabled(uiLayout *layout)
{
return layout->enabled;
}
int uiLayoutGetRedAlert(uiLayout *layout)
{
return layout->redalert;
}
int uiLayoutGetKeepAspect(uiLayout *layout)
{
return layout->keepaspect;
}
int uiLayoutGetAlignment(uiLayout *layout)
{
return layout->alignment;
}
float uiLayoutGetScale(uiLayout *layout)
{
return layout->scale;
}
/********************** Layout *******************/
static void ui_item_estimate(uiItem *item)
@ -1585,7 +1666,8 @@ static void ui_item_align(uiLayout *litem, int nr)
if(item->type == ITEM_BUTTON) {
bitem= (uiButtonItem*)item;
if(ui_but_can_align(bitem->but))
bitem->but->alignnr= nr;
if(!bitem->but->alignnr)
bitem->but->alignnr= nr;
}
else if(item->type == ITEM_LAYOUT_FREE);
else if(item->type == ITEM_LAYOUT_BOX) {
@ -1599,6 +1681,21 @@ static void ui_item_align(uiLayout *litem, int nr)
}
}
static void ui_item_flag(uiLayout *litem, int flag)
{
uiItem *item;
uiButtonItem *bitem;
for(item=litem->items.last; item; item=item->prev) {
if(item->type == ITEM_BUTTON) {
bitem= (uiButtonItem*)item;
bitem->but->flag |= flag;
}
else
ui_item_flag((uiLayout*)item, flag);
}
}
static void ui_item_layout(uiItem *item)
{
uiItem *subitem;
@ -1611,6 +1708,10 @@ static void ui_item_layout(uiItem *item)
if(litem->align)
ui_item_align(litem, ++litem->root->block->alignnr);
if(!litem->active)
ui_item_flag(litem, UI_BUT_INACTIVE);
if(!litem->enabled)
ui_item_flag(litem, UI_BUT_DISABLED);
switch(litem->item.type) {
case ITEM_LAYOUT_COLUMN:
@ -1694,6 +1795,9 @@ uiLayout *uiBlockLayout(uiBlock *block, int dir, int type, int x, int y, int siz
layout->y= y;
layout->root= root;
layout->space= style->templatespace;
layout->active= 1;
layout->enabled= 1;
layout->context= NULL;
if(type == UI_LAYOUT_MENU)
layout->space= 0;
@ -1714,7 +1818,7 @@ uiLayout *uiBlockLayout(uiBlock *block, int dir, int type, int x, int y, int siz
return layout;
}
uiBlock *uiLayoutBlock(uiLayout *layout)
uiBlock *uiLayoutGetBlock(uiLayout *layout)
{
return layout->root->block;
}
@ -1739,12 +1843,12 @@ void ui_layout_add_but(uiLayout *layout, uiBut *but)
}
}
void uiLayoutContext(uiLayout *layout, int opcontext)
void uiLayoutSetOperatorContext(uiLayout *layout, int opcontext)
{
layout->root->opcontext= opcontext;
}
void uiLayoutFunc(uiLayout *layout, uiMenuHandleFunc handlefunc, void *argv)
void uiLayoutSetFunc(uiLayout *layout, uiMenuHandleFunc handlefunc, void *argv)
{
layout->root->handlefunc= handlefunc;
layout->root->argv= argv;

@ -1819,7 +1819,7 @@ uiPopupBlockHandle *ui_popup_menu_create(bContext *C, ARegion *butregion, uiBut
pup= MEM_callocN(sizeof(uiPopupMenu), "menu dummy");
pup->block= uiBeginBlock(C, NULL, "ui_popup_menu_create", UI_EMBOSSP);
pup->layout= uiBlockLayout(pup->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_MENU, 0, 0, 200, 0, style);
uiLayoutContext(pup->layout, WM_OP_INVOKE_REGION_WIN);
uiLayoutSetOperatorContext(pup->layout, WM_OP_INVOKE_REGION_WIN);
/* create in advance so we can let buttons point to retval already */
pup->block->handle= MEM_callocN(sizeof(uiPopupBlockHandle), "uiPopupBlockHandle");
@ -1851,7 +1851,7 @@ uiPopupMenu *uiPupMenuBegin(bContext *C, const char *title, int icon)
pup->block= uiBeginBlock(C, NULL, "uiPupMenuBegin", UI_EMBOSSP);
pup->layout= uiBlockLayout(pup->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_MENU, 0, 0, 200, 0, style);
uiLayoutContext(pup->layout, WM_OP_EXEC_REGION_WIN);
uiLayoutSetOperatorContext(pup->layout, WM_OP_EXEC_REGION_WIN);
/* create in advance so we can let buttons point to retval already */
pup->block->handle= MEM_callocN(sizeof(uiPopupBlockHandle), "uiPopupBlockHandle");

@ -730,7 +730,7 @@ uiLayout *uiTemplateModifier(uiLayout *layout, PointerRNA *ptr)
return NULL;
}
uiBlockSetButLock(uiLayoutBlock(layout), (ob && ob->id.lib), ERROR_LIBDATA_MESSAGE);
uiBlockSetButLock(uiLayoutGetBlock(layout), (ob && ob->id.lib), ERROR_LIBDATA_MESSAGE);
/* find modifier and draw it */
cageIndex = modifiers_getCageIndex(ob, &lastCageIndex);
@ -935,7 +935,7 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
proxy_protected= 0;
/* unless button has own callback, it adds this callback to button */
block= uiLayoutBlock(layout);
block= uiLayoutGetBlock(layout);
uiBlockSetHandleFunc(block, do_constraint_panels, NULL);
uiBlockSetFunc(block, constraint_active_func, ob, con);
@ -2110,7 +2110,7 @@ uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr)
return NULL;
}
uiBlockSetButLock(uiLayoutBlock(layout), (ob && ob->id.lib), ERROR_LIBDATA_MESSAGE);
uiBlockSetButLock(uiLayoutGetBlock(layout), (ob && ob->id.lib), ERROR_LIBDATA_MESSAGE);
/* hrms, the temporal constraint should not draw! */
if(con->type==CONSTRAINT_TYPE_KINEMATIC) {

@ -1144,7 +1144,7 @@ static void widget_state_menu_item(uiWidgetType *wt, int state)
{
wt->wcol= *(wt->wcol_theme);
if(state & UI_BUT_DISABLED) {
if(state & (UI_BUT_DISABLED|UI_BUT_INACTIVE)) {
wt->wcol.text[0]= 0.5f*(wt->wcol.text[0]+wt->wcol.text_sel[0]);
wt->wcol.text[1]= 0.5f*(wt->wcol.text[1]+wt->wcol.text_sel[1]);
wt->wcol.text[2]= 0.5f*(wt->wcol.text[2]+wt->wcol.text_sel[2]);
@ -1877,7 +1877,7 @@ void ui_draw_but(ARegion *ar, uiStyle *style, uiBut *but, rcti *rect)
wt->draw(&wt->wcol, rect, state, roundboxalign);
wt->text(fstyle, &wt->wcol, but, rect);
if(state & UI_BUT_DISABLED)
if(state & (UI_BUT_DISABLED|UI_BUT_INACTIVE))
if(but->dt!=UI_EMBOSSP)
widget_disabled(&disablerect);
}

@ -2611,7 +2611,7 @@ static int parent_set_invoke(bContext *C, wmOperator *op, wmEvent *event)
uiPopupMenu *pup= uiPupMenuBegin(C, "Set Parent To", 0);
uiLayout *layout= uiPupMenuLayout(pup);
uiLayoutContext(layout, WM_OP_EXEC_DEFAULT);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_OBJECT);
/* ob becomes parent, make the associated menus */

@ -1977,7 +1977,7 @@ static void testfunc(bContext *C, void *argv, int arg)
static void newlevel1(bContext *C, uiLayout *layout, void *arg)
{
uiLayoutFunc(layout, testfunc, NULL);
uiLayoutSetFunc(layout, testfunc, NULL);
uiItemV(layout, "First", ICON_PROP_ON, 1);
uiItemV(layout, "Second", ICON_PROP_CON, 2);
@ -1990,7 +1990,7 @@ static int testing123(bContext *C, wmOperator *op, wmEvent *event)
uiPopupMenu *pup= uiPupMenuBegin(C, "Hello world", 0);
uiLayout *layout= uiPupMenuLayout(pup);
uiLayoutContext(layout, WM_OP_EXEC_DEFAULT);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
uiItemO(layout, NULL, ICON_PROP_ON, "SCREEN_OT_region_flip");
uiItemO(layout, NULL, ICON_PROP_CON, "SCREEN_OT_screen_full_area");
uiItemO(layout, NULL, ICON_SMOOTHCURVE, "SCREEN_OT_region_foursplit");

@ -262,18 +262,18 @@ uiBlock *info_externalfiles(bContext *C, ARegion *ar, void *arg_unused)
static void info_filemenu(bContext *C, uiLayout *layout, void *arg_unused)
{
uiLayoutContext(layout, WM_OP_EXEC_AREA);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_AREA);
uiItemO(layout, NULL, 0, "WM_OT_read_homefile");
uiLayoutContext(layout, WM_OP_INVOKE_AREA);
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_AREA);
uiItemO(layout, NULL, 0, "WM_OT_open_mainfile");
// uiDefIconTextBlockBut(block, info_openrecentmenu, NULL, ICON_RIGHTARROW_THIN, "Open Recent",0, yco-=20, 120, 19, "");
// uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Recover Last Session", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
uiItemS(layout);
uiLayoutContext(layout, WM_OP_EXEC_AREA);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_AREA);
uiItemO(layout, NULL, 0, "WM_OT_save_mainfile");
uiLayoutContext(layout, WM_OP_INVOKE_AREA);
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_AREA);
uiItemO(layout, NULL, 0, "WM_OT_save_as_mainfile");
#if 0

@ -146,7 +146,7 @@ static uiBlock *seq_viewmenu(bContext *C, ARegion *ar, void *arg_unused)
//static uiBlock *seq_selectmenu(bContext *C, ARegion *ar, void *arg_unused)
static void seq_selectmenu(bContext *C, uiLayout *layout, void *arg_unused)
{
uiLayoutContext(layout, WM_OP_INVOKE_REGION_WIN);
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_REGION_WIN);
uiItemEnumO(layout, "Strips to the Left", 0, "SEQUENCER_OT_select_active_side", "side", SEQ_SIDE_LEFT);
uiItemEnumO(layout, "Strips to the Right", 0, "SEQUENCER_OT_select_active_side", "side", SEQ_SIDE_RIGHT);
@ -212,7 +212,7 @@ static uiBlock *seq_markermenu(bContext *C, ARegion *ar, void *arg_unused)
//static uiBlock *seq_addmenu_effectmenu(bContext *C, ARegion *ar, void *arg_unused)
static void seq_addmenu_effectmenu(bContext *C, uiLayout *layout, void *arg_unused)
{
uiLayoutContext(layout, WM_OP_INVOKE_REGION_WIN);
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_REGION_WIN);
uiItemEnumO(layout, NULL, 0, "SEQUENCER_OT_effect_strip_add", "type", SEQ_ADD);
uiItemEnumO(layout, NULL, 0, "SEQUENCER_OT_effect_strip_add", "type", SEQ_SUB);
@ -238,7 +238,7 @@ static void seq_addmenu(bContext *C, uiLayout *layout, void *arg_unused)
uiItemMenuF(layout, "Effects...", 0, seq_addmenu_effectmenu);
uiItemS(layout);
uiLayoutContext(layout, WM_OP_INVOKE_REGION_WIN);
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_REGION_WIN);
#ifdef WITH_FFMPEG
uiItemBooleanO(layout, "Audio (RAM)", 0, "SEQUENCER_OT_sound_strip_add", "hd", FALSE);
@ -262,7 +262,7 @@ static void seq_editmenu(bContext *C, uiLayout *layout, void *arg_unused)
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
uiLayoutContext(layout, WM_OP_INVOKE_REGION_WIN);
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_REGION_WIN);
uiItemEnumO(layout, NULL, 0, "TFM_OT_transform", "mode", TFM_TRANSLATION);
uiItemEnumO(layout, NULL, 0, "TFM_OT_transform", "mode", TFM_TIME_EXTEND);

@ -1689,7 +1689,7 @@ static void view3d_panel_operator_redo(const bContext *C, Panel *pa)
PointerRNA ptr;
uiBlock *block;
block= uiLayoutBlock(pa->layout);
block= uiLayoutGetBlock(pa->layout);
/* only for operators that are registered and did an undo push */
for(op= wm->operators.last; op; op= op->prev)

@ -680,7 +680,7 @@ static void view3d_viewmenu(bContext *C, uiLayout *layout, void *arg_unused)
uiItemS(layout);
uiLayoutContext(layout, WM_OP_INVOKE_REGION_WIN);
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_REGION_WIN);
uiItemO(layout, NULL, 0, "VIEW3D_OT_clipping");
uiItemO(layout, NULL, 0, "VIEW3D_OT_zoom_border");

@ -127,7 +127,7 @@ static void view3d_panel_operator_redo(const bContext *C, Panel *pa)
PointerRNA ptr;
uiBlock *block;
block= uiLayoutBlock(pa->layout);
block= uiLayoutGetBlock(pa->layout);
/* only for operators that are registered and did an undo push */
for(op= wm->operators.last; op; op= op->prev)

@ -30,6 +30,8 @@
#include "rna_internal.h"
#include "RNA_enum_types.h"
#include "UI_interface.h"
#ifdef RNA_RUNTIME
#include "MEM_guardedalloc.h"
@ -44,8 +46,6 @@
#include "BKE_report.h"
#include "BKE_screen.h"
#include "UI_interface.h"
#include "WM_api.h"
#include "WM_types.h"
@ -408,16 +408,102 @@ static StructRNA* rna_Menu_refine(struct PointerRNA *mtr)
return (hdr->type)? hdr->type->py_srna: &RNA_Menu;
}
static int rna_UILayout_active_get(struct PointerRNA *ptr)
{
return uiLayoutGetActive(ptr->data);
}
static void rna_UILayout_active_set(struct PointerRNA *ptr, int value)
{
return uiLayoutSetActive(ptr->data, value);
}
static int rna_UILayout_enabled_get(struct PointerRNA *ptr)
{
return uiLayoutGetEnabled(ptr->data);
}
static void rna_UILayout_enabled_set(struct PointerRNA *ptr, int value)
{
return uiLayoutSetEnabled(ptr->data, value);
}
static int rna_UILayout_red_alert_get(struct PointerRNA *ptr)
{
return uiLayoutGetRedAlert(ptr->data);
}
static void rna_UILayout_red_alert_set(struct PointerRNA *ptr, int value)
{
return uiLayoutSetRedAlert(ptr->data, value);
}
static int rna_UILayout_keep_aspect_get(struct PointerRNA *ptr)
{
return uiLayoutGetKeepAspect(ptr->data);
}
static void rna_UILayout_keep_aspect_set(struct PointerRNA *ptr, int value)
{
return uiLayoutSetKeepAspect(ptr->data, value);
}
static int rna_UILayout_alignment_get(struct PointerRNA *ptr)
{
return uiLayoutGetAlignment(ptr->data);
}
static void rna_UILayout_alignment_set(struct PointerRNA *ptr, int value)
{
return uiLayoutSetAlignment(ptr->data, value);
}
static float rna_UILayout_scale_get(struct PointerRNA *ptr)
{
return uiLayoutGetScale(ptr->data);
}
static void rna_UILayout_scale_set(struct PointerRNA *ptr, float value)
{
return uiLayoutSetScale(ptr->data, value);
}
#else
static void rna_def_ui_layout(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
static EnumPropertyItem alignment_items[] = {
{UI_LAYOUT_ALIGN_LEFT, "LEFT", "Left", ""},
{UI_LAYOUT_ALIGN_CENTER, "CENTER", "Center", ""},
{UI_LAYOUT_ALIGN_RIGHT, "RIGHT", "RIght", ""},
{0, NULL, NULL, NULL}};
srna= RNA_def_struct(brna, "UILayout", NULL);
RNA_def_struct_sdna(srna, "uiLayout");
RNA_def_struct_ui_text(srna, "UI Layout", "User interface layout in a panel or header.");
prop= RNA_def_property(srna, "active", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_funcs(prop, "rna_UILayout_active_get", "rna_UILayout_active_set");
prop= RNA_def_property(srna, "enabled", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_funcs(prop, "rna_UILayout_enabled_get", "rna_UILayout_enabled_set");
prop= RNA_def_property(srna, "red_alert", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_funcs(prop, "rna_UILayout_red_alert_get", "rna_UILayout_red_alert_set");
prop= RNA_def_property(srna, "alignment", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_items(prop, alignment_items);
RNA_def_property_enum_funcs(prop, "rna_UILayout_alignment_get", "rna_UILayout_alignment_set", NULL);
prop= RNA_def_property(srna, "keep_aspect", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_funcs(prop, "rna_UILayout_keep_aspect_get", "rna_UILayout_keep_aspect_set");
prop= RNA_def_property(srna, "scale", PROP_FLOAT, PROP_UNSIGNED);
RNA_def_property_float_funcs(prop, "rna_UILayout_scale_get", "rna_UILayout_scale_set", NULL);
RNA_api_ui_layout(srna);
}