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:
Diffstat (limited to 'source/blender/editors/space_logic/logic_window.c')
-rw-r--r--source/blender/editors/space_logic/logic_window.c86
1 files changed, 60 insertions, 26 deletions
diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c
index 4ab2511fcd2..005ebfb5b88 100644
--- a/source/blender/editors/space_logic/logic_window.c
+++ b/source/blender/editors/space_logic/logic_window.c
@@ -678,7 +678,7 @@ static char *actuator_name(int type)
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 @@ static char *actuator_name(int type)
case ACT_VISIBILITY:
return "Visibility";
case ACT_2DFILTER:
- return "2D Filter";
+ return "Filter 2D";
case ACT_PARENT:
return "Parent";
case ACT_STATE:
@@ -912,8 +912,15 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
ob= G.main->object.first;
nr= 0;
+
+ /* make the active object always the first one of the list */
+ if (obact) {
+ idar[0]= (ID *)obact;
+ nr++;
+ }
+
while(ob) {
- if( ob->scavisflag ) {
+ if( (ob->scavisflag) && (ob != obact)) {
idar[nr]= (ID *)ob;
nr++;
}
@@ -3178,13 +3185,19 @@ static int is_sensor_linked(uiBlock *block, bSensor *sens)
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")
@@ -3192,8 +3205,9 @@ static void draw_sensor_header(uiLayout *layout, PointerRNA *ptr, PointerRNA *lo
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");
@@ -3518,27 +3532,35 @@ void draw_brick_sensor(uiLayout *layout, PointerRNA *ptr, bContext *C)
}
/* 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");
}
@@ -3606,13 +3628,19 @@ void draw_brick_controller(uiLayout *layout, PointerRNA *ptr)
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")
@@ -3620,8 +3648,9 @@ static void draw_actuator_header(uiLayout *layout, PointerRNA *ptr, PointerRNA *
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");
}
@@ -4249,7 +4278,7 @@ static void draw_actuator_sound(uiLayout *layout, PointerRNA *ptr, bContext *C)
{
uiLayout *row, *col;
- uiTemplateID(layout, C, ptr, "sound", NULL, "SOUND_OT_open", NULL);
+ uiTemplateID(layout, C, ptr, "sound", NULL, "SOUND_OT_open", NULL, NULL);
if (!RNA_pointer_get(ptr, "sound").data)
{
uiItemL(layout, "Select a sound from the list or load a new one", 0);
@@ -4377,6 +4406,7 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
{
SpaceLogic *slogic= CTX_wm_space_logic(C);
Object *ob= CTX_data_active_object(C);
+ Object *act_ob= ob;
ID **idar;
PointerRNA logic_ptr, settings_ptr;
@@ -4470,7 +4500,8 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
row = uiLayoutRow(split, 1);
uiDefButBitS(block, TOG, OB_SHOWCONT, B_REDR, ob->id.name+2,(short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide controllers");
- uiItemMenuEnumO(row, "LOGIC_OT_controller_add", "type", "Add Controller", 0);
+ if (ob == act_ob)
+ uiItemMenuEnumO(row, "LOGIC_OT_controller_add", "type", "Add Controller", 0);
if (RNA_boolean_get(&settings_ptr, "show_state_panel")) {
@@ -4523,8 +4554,9 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
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);
@@ -4563,7 +4595,8 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
row = uiLayoutRow(layout, 1);
uiDefButBitS(block, TOG, OB_SHOWSENS, B_REDR, ob->id.name+2,(short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide sensors");
- uiItemMenuEnumO(row, "LOGIC_OT_sensor_add", "type", "Add Sensor", 0);
+ if (ob == act_ob)
+ uiItemMenuEnumO(row, "LOGIC_OT_sensor_add", "type", "Add Sensor", 0);
if ((ob->scaflag & OB_SHOWSENS) == 0) continue;
@@ -4628,7 +4661,8 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
row = uiLayoutRow(layout, 1);
uiDefButBitS(block, TOG, OB_SHOWACT, B_REDR, ob->id.name+2,(short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide actuators");
- uiItemMenuEnumO(row, "LOGIC_OT_actuator_add", "type", "Add Actuator", 0);
+ if (ob == act_ob)
+ uiItemMenuEnumO(row, "LOGIC_OT_actuator_add", "type", "Add Actuator", 0);
if ((ob->scaflag & OB_SHOWACT) == 0) continue;