Revision: 30263 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30263 Author: dfelinto Date: 2010-07-13 13:06:19 +0200 (Tue, 13 Jul 2010)
Log Message: ----------- Logic UI: HEADERS changes: adding option to change state + showing the name, type as label when not-expanded + renaming rna prop "states" (from state_number) + small UI changes + capitalizing Controller Type names (as we had in 2.49). Why? I'm not sure. Therefore let's stick to 2.49 way of doing it for a bit longer. * It would be really nice to have a drag&drop system for logic (instead of the move up/down button) * The controller header is so messy :/ definitively should find a better way to handle that (for one the "change state" operator doesn't need this up/down arrow. I'm (temporarly) using the old code for that, so this will wait for when we use proper rna ui here. * I wonder if it's possible to get the name of the logic type straight from the rna prop (instead of using sensor_name(sens->type) ) Modified Paths: -------------- trunk/blender/source/blender/editors/space_logic/logic_window.c trunk/blender/source/blender/makesrna/intern/rna_controller.c Modified: trunk/blender/source/blender/editors/space_logic/logic_window.c =================================================================== --- trunk/blender/source/blender/editors/space_logic/logic_window.c 2010-07-13 10:45:40 UTC (rev 30262) +++ trunk/blender/source/blender/editors/space_logic/logic_window.c 2010-07-13 11:06:19 UTC (rev 30263) @@ -678,7 +678,7 @@ case ACT_OBJECT: return "Motion"; case ACT_IPO: - return "Ipo"; + return "F-Curve"; case ACT_LAMP: return "Lamp"; case ACT_CAMERA: @@ -706,7 +706,7 @@ case ACT_VISIBILITY: return "Visibility"; case ACT_2DFILTER: - return "2D Filter"; + return "Filter 2D"; case ACT_PARENT: return "Parent"; case ACT_STATE: @@ -3185,13 +3185,19 @@ static void draw_sensor_header(uiLayout *layout, PointerRNA *ptr, PointerRNA *logic_ptr) { uiLayout *box, *row, *subrow; + bSensor *sens= (bSensor *)ptr->data; box= uiLayoutBox(layout); row= uiLayoutRow(box, 0); uiItemR(row, ptr, "expanded", UI_ITEM_R_NO_BG, "", 0); - uiItemR(row, ptr, "type", 0, "", 0); - uiItemR(row, ptr, "name", 0, "", 0); + if(RNA_boolean_get(ptr, "expanded")) { + uiItemR(row, ptr, "type", 0, "", 0); + uiItemR(row, ptr, "name", 0, "", 0); + } else { + uiItemL(row, sensor_name(sens->type), 0); + uiItemL(row, sens->name, 0); + } subrow= uiLayoutRow(row, 0); uiLayoutSetActive(subrow, ((RNA_boolean_get(logic_ptr, "sensors_show_active_states") @@ -3199,8 +3205,9 @@ uiItemR(subrow, ptr, "pinned", UI_ITEM_R_NO_BG, "", 0); if(RNA_boolean_get(ptr, "expanded")==0) { - uiItemEnumO(row, "LOGIC_OT_sensor_move", "", ICON_TRIA_UP, "direction", 1); // up - uiItemEnumO(row, "LOGIC_OT_sensor_move", "", ICON_TRIA_DOWN, "direction", 2); // down + subrow= uiLayoutRow(row, 1); + uiItemEnumO(subrow, "LOGIC_OT_sensor_move", "", ICON_TRIA_UP, "direction", 1); // up + uiItemEnumO(subrow, "LOGIC_OT_sensor_move", "", ICON_TRIA_DOWN, "direction", 2); // down } uiItemO(row, "", ICON_X, "LOGIC_OT_sensor_remove"); @@ -3525,27 +3532,35 @@ } /* Controller code */ -static void draw_controller_header(uiLayout *layout, PointerRNA *ptr) +static void draw_controller_header(uiLayout *layout, PointerRNA *ptr, int xco, int width, int yco) { - uiLayout *box, *row; + uiLayout *box, *row, *subrow; + bController *cont= (bController *)ptr->data; + char name[3]; //XXX provisorly for state number box= uiLayoutBox(layout); row= uiLayoutRow(box, 0); uiItemR(row, ptr, "expanded", UI_ITEM_R_NO_BG, "", 0); - uiItemR(row, ptr, "type", 0, "", 0); - uiItemR(row, ptr, "name", 0, "", 0); + if(RNA_boolean_get(ptr, "expanded")) { + uiItemR(row, ptr, "type", 0, "", 0); + uiItemR(row, ptr, "name", 0, "", 0); + } else { + uiItemL(row, controller_name(cont->type), 0); + uiItemL(row, cont->name, 0); + } - /* XXX provisory: state number */ - sprintf(name, "%d", RNA_int_get(ptr, "state_number")); - uiItemL(row, name, 0); + /* XXX provisory for Blender 2.50Beta */ + sprintf(name, "%d", RNA_int_get(ptr, "state")); + uiDefBlockBut(uiLayoutGetBlock(layout), controller_state_mask_menu, cont, name, (short)(xco+width-44), yco, 22+22, UI_UNIT_Y, "Set controller state index (from 1 to 30)"); uiItemR(row, ptr, "priority", 0, "", 0); if(RNA_boolean_get(ptr, "expanded")==0) { - uiItemEnumO(row, "LOGIC_OT_controller_move", "", ICON_TRIA_UP, "direction", 1); // up - uiItemEnumO(row, "LOGIC_OT_controller_move", "", ICON_TRIA_DOWN, "direction", 2); // down + subrow= uiLayoutRow(row, 1); + uiItemEnumO(subrow, "LOGIC_OT_controller_move", "", ICON_TRIA_UP, "direction", 1); // up + uiItemEnumO(subrow, "LOGIC_OT_controller_move", "", ICON_TRIA_DOWN, "direction", 2); // down } uiItemO(row, "", ICON_X, "LOGIC_OT_controller_remove"); } @@ -3613,13 +3628,19 @@ static void draw_actuator_header(uiLayout *layout, PointerRNA *ptr, PointerRNA *logic_ptr) { uiLayout *box, *row, *subrow; + bActuator *act= (bActuator *)ptr->data; box= uiLayoutBox(layout); row= uiLayoutRow(box, 0); uiItemR(row, ptr, "expanded", UI_ITEM_R_NO_BG, "", 0); - uiItemR(row, ptr, "type", 0, "", 0); - uiItemR(row, ptr, "name", 0, "", 0); + if(RNA_boolean_get(ptr, "expanded")) { + uiItemR(row, ptr, "type", 0, "", 0); + uiItemR(row, ptr, "name", 0, "", 0); + } else { + uiItemL(row, actuator_name(act->type), 0); + uiItemL(row, act->name, 0); + } subrow= uiLayoutRow(row, 0); uiLayoutSetActive(subrow, ((RNA_boolean_get(logic_ptr, "actuators_show_active_states") @@ -3627,8 +3648,9 @@ uiItemR(subrow, ptr, "pinned", UI_ITEM_R_NO_BG, "", 0); if(RNA_boolean_get(ptr, "expanded")==0) { - uiItemEnumO(row, "LOGIC_OT_actuator_move", "", ICON_TRIA_UP, "direction", 1); // up - uiItemEnumO(row, "LOGIC_OT_actuator_move", "", ICON_TRIA_DOWN, "direction", 2); // down + subrow= uiLayoutRow(row, 1); + uiItemEnumO(subrow, "LOGIC_OT_actuator_move", "", ICON_TRIA_UP, "direction", 1); // up + uiItemEnumO(subrow, "LOGIC_OT_actuator_move", "", ICON_TRIA_DOWN, "direction", 2); // down } uiItemO(row, "", ICON_X, "LOGIC_OT_actuator_remove"); } @@ -4532,8 +4554,9 @@ uiLayoutSetContextPointer(col, "controller", &ptr); /* should make UI template for controller header.. function will do for now */ - draw_controller_header(col, &ptr); - +// draw_controller_header(col, &ptr); + draw_controller_header(col, &ptr, xco, width, yco); //provisory for 2.50 beta + /* draw the brick contents */ draw_brick_controller(col, &ptr); Modified: trunk/blender/source/blender/makesrna/intern/rna_controller.c =================================================================== --- trunk/blender/source/blender/makesrna/intern/rna_controller.c 2010-07-13 10:45:40 UTC (rev 30262) +++ trunk/blender/source/blender/makesrna/intern/rna_controller.c 2010-07-13 11:06:19 UTC (rev 30263) @@ -32,12 +32,12 @@ #include "DNA_controller_types.h" EnumPropertyItem controller_type_items[] ={ - {CONT_LOGIC_AND, "LOGIC_AND", 0, "And", "Logic And"}, - {CONT_LOGIC_OR, "LOGIC_OR", 0, "Or", "Logic Or"}, - {CONT_LOGIC_NAND, "LOGIC_NAND", 0, "Nand", "Logic Nand"}, - {CONT_LOGIC_NOR, "LOGIC_NOR", 0, "Nor", "Logic Nor"}, - {CONT_LOGIC_XOR, "LOGIC_XOR", 0, "Xor", "Logic Xor"}, - {CONT_LOGIC_XNOR, "LOGIC_XNOR", 0, "Xnor", "Logic Xnor"}, + {CONT_LOGIC_AND, "LOGIC_AND", 0, "AND", "Logic And"}, + {CONT_LOGIC_OR, "LOGIC_OR", 0, "OR", "Logic Or"}, + {CONT_LOGIC_NAND, "LOGIC_NAND", 0, "NAND", "Logic Nand"}, + {CONT_LOGIC_NOR, "LOGIC_NOR", 0, "NOR", "Logic Nor"}, + {CONT_LOGIC_XOR, "LOGIC_XOR", 0, "XOR", "Logic Xor"}, + {CONT_LOGIC_XNOR, "LOGIC_XNOR", 0, "XNOR", "Logic Xnor"}, {CONT_EXPRESSION, "EXPRESSION", 0, "Expression", ""}, {CONT_PYTHON, "PYTHON", 0, "Python Script", ""}, {0, NULL, 0, NULL, NULL}}; @@ -185,15 +185,15 @@ /* State */ // array of OB_MAX_STATES - prop= RNA_def_property(srna, "state", PROP_BOOLEAN, PROP_LAYER_MEMBER); - RNA_def_property_array(prop, OB_MAX_STATES); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "", "Set Controller state index (1 to 30)"); - RNA_def_property_boolean_funcs(prop, "rna_Controller_state_get", "rna_Controller_state_set"); - RNA_def_property_update(prop, NC_LOGIC, NULL); + //prop= RNA_def_property(srna, "state", PROP_BOOLEAN, PROP_LAYER_MEMBER); + //RNA_def_property_array(prop, OB_MAX_STATES); + //RNA_def_property_clear_flag(prop, PROP_EDITABLE); + //RNA_def_property_ui_text(prop, "", "Set Controller state index (1 to 30)"); + //RNA_def_property_boolean_funcs(prop, "rna_Controller_state_get", "rna_Controller_state_set"); + //RNA_def_property_update(prop, NC_LOGIC, NULL); // number of the state - prop= RNA_def_property(srna, "state_number", PROP_INT, PROP_UNSIGNED); + prop= RNA_def_property(srna, "state", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "state_mask"); RNA_def_property_range(prop, 1, OB_MAX_STATES); RNA_def_property_ui_text(prop, "", "Set Controller state index (1 to 30)"); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs