diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-05-29 03:37:55 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-05-29 03:37:55 +0400 |
commit | 46b91bf16286104488c98b04208e8715a04f48b7 (patch) | |
tree | 0c8df8218285fcbd3dd7aac758b20cd2c7ad6f65 /source/blender/makesrna/intern/rna_ui.c | |
parent | a591a47c4337b62304a1d69b0e7de009bf3742bd (diff) |
UI:
* 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.
Diffstat (limited to 'source/blender/makesrna/intern/rna_ui.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_ui.c | 90 |
1 files changed, 88 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c index 252e8cee27a..9d3d961c18f 100644 --- a/source/blender/makesrna/intern/rna_ui.c +++ b/source/blender/makesrna/intern/rna_ui.c @@ -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); } |