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
path: root/source
diff options
context:
space:
mode:
authorMatt Ebb <matt@mke3.net>2005-10-05 17:08:07 +0400
committerMatt Ebb <matt@mke3.net>2005-10-05 17:08:07 +0400
commit9b010e476295e4b59038cf4095d220f8dad1d850 (patch)
tree07753bc5d938c41e13f58ab2c83a5d3271ce55b1 /source
parentd6f1390a3231b5f39cfde9d8582e663d0c453d75 (diff)
* Added a Select -> Inverse for object mode, available
in the 3d view header and toolbox.
Diffstat (limited to 'source')
-rw-r--r--source/blender/include/BIF_editview.h5
-rw-r--r--source/blender/include/BSE_headerbuttons.h1
-rw-r--r--source/blender/src/editview.c25
-rw-r--r--source/blender/src/header_view3d.c8
-rw-r--r--source/blender/src/toolbox.c13
5 files changed, 42 insertions, 10 deletions
diff --git a/source/blender/include/BIF_editview.h b/source/blender/include/BIF_editview.h
index ef4c417188f..c98057c80bc 100644
--- a/source/blender/include/BIF_editview.h
+++ b/source/blender/include/BIF_editview.h
@@ -42,8 +42,9 @@ void arrows_move_cursor(unsigned short event);
void borderselect(void);
void circle_select(void);
void deselectall(void);
-void selectall_type(short obtype);
-void selectall_layer(unsigned int layernum);
+void selectswap(void);
+void selectall_type(short obtype);
+void selectall_layer(unsigned int layernum);
void draw_sel_circle(short *mval, short *mvalo, float rad, float rado, int selecting);
void fly(void);
int gesture(void);
diff --git a/source/blender/include/BSE_headerbuttons.h b/source/blender/include/BSE_headerbuttons.h
index 091d80b6438..a42cfe0801f 100644
--- a/source/blender/include/BSE_headerbuttons.h
+++ b/source/blender/include/BSE_headerbuttons.h
@@ -124,6 +124,7 @@ void do_info_add_lampmenu(void *arg, int event);
void do_info_addmenu(void *arg, int event);
/* header_view3d.c */
+void do_view3d_select_objectmenu(void *arg, int event);
void do_view3d_select_object_groupedmenu(void *arg, int event);
void do_view3d_select_object_linkedmenu(void *arg, int event);
void do_view3d_select_object_layermenu(void *arg, int event);
diff --git a/source/blender/src/editview.c b/source/blender/src/editview.c
index 7db0747e503..3bab4124201 100644
--- a/source/blender/src/editview.c
+++ b/source/blender/src/editview.c
@@ -893,6 +893,31 @@ void deselectall(void) /* is toggle */
BIF_undo_push("(De)select all");
}
+/* inverts object selection */
+void selectswap(void)
+{
+ Base *base;
+ int a=0;
+
+ base= FIRSTBASE;
+ while(base) {
+ if(base->lay & G.vd->lay) {
+ if TESTBASE(base) base->flag &= ~SELECT;
+ else base->flag |= SELECT;
+ base->object->flag= base->flag;
+ }
+ base= base->next;
+ }
+
+ allqueue(REDRAWVIEW3D, 0);
+ allqueue(REDRAWDATASELECT, 0);
+ allqueue(REDRAWNLA, 0);
+
+ countall();
+ BIF_undo_push("Select Inverse");
+}
+
+
/* selects all objects of a particular type, on currently visible layers */
void selectall_type(short obtype)
{
diff --git a/source/blender/src/header_view3d.c b/source/blender/src/header_view3d.c
index 370c51b9a22..2294e7e002e 100644
--- a/source/blender/src/header_view3d.c
+++ b/source/blender/src/header_view3d.c
@@ -750,7 +750,7 @@ static uiBlock *view3d_select_object_groupedmenu(void *arg_unused)
return block;
}
-static void do_view3d_select_objectmenu(void *arg, int event)
+void do_view3d_select_objectmenu(void *arg, int event)
{
switch(event) {
@@ -760,6 +760,9 @@ static void do_view3d_select_objectmenu(void *arg, int event)
case 1: /* Select/Deselect All */
deselectall();
break;
+ case 2: /* inverse */
+ selectswap();
+ break;
}
allqueue(REDRAWVIEW3D, 0);
}
@@ -776,7 +779,8 @@ static uiBlock *view3d_select_objectmenu(void *arg_unused)
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Inverse", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
uiDefIconTextBlockBut(block, view3d_select_object_layermenu, NULL, ICON_RIGHTARROW_THIN, "Select All by Layer", 0, yco-=20, 120, 19, "");
uiDefIconTextBlockBut(block, view3d_select_object_typemenu, NULL, ICON_RIGHTARROW_THIN, "Select All by Type", 0, yco-=20, 120, 19, "");
diff --git a/source/blender/src/toolbox.c b/source/blender/src/toolbox.c
index d270f3184ff..10877d21fd6 100644
--- a/source/blender/src/toolbox.c
+++ b/source/blender/src/toolbox.c
@@ -1633,15 +1633,16 @@ static TBitem tb_object_select_grouped[]= {
{ -1, "", 0, do_view3d_select_object_groupedmenu}};
static TBitem tb_object_select[]= {
-{ 0, "Border Select|B", 'b', NULL},
+{ 0, "Border Select|B", 0, NULL},
{ 0, "SEPR", 0, NULL},
-{ 0, "Select/Deselect All|A", 'a', NULL},
+{ 0, "Select/Deselect All|A", 1, NULL},
+{ 0, "Inverse", 2, NULL},
{ 0, "Select All by Layer", 0, tb_object_select_layer},
{ 0, "Select All by Type", 0, tb_object_select_type},
{ 0, "SEPR", 0, NULL},
{ 0, "Linked", 0, tb_object_select_linked},
{ 0, "Grouped", 0, tb_object_select_grouped},
-{ -1, "", 0, tb_do_hotkey}};
+{ -1, "", 0, do_view3d_select_objectmenu}};
static TBitem tb_mesh_select[]= {
{ 0, "Border Select|B", 0, NULL},
@@ -1671,9 +1672,9 @@ static TBitem tb_curve_select[]= {
{ -1, "", 0, do_view3d_select_curvemenu}};
static TBitem tb__select[]= {
-{ 0, "Border Select|B", 'b', NULL},
-{ 0, "(De)select All|A", 'a', NULL},
-{ -1, "", 0, tb_do_hotkey}};
+{ 0, "Border Select|B", 'b', NULL},
+{ 0, "(De)select All|A", 'a', NULL},
+{ -1, "", 0, tb_do_hotkey}};
/* *************Edit ********** */