[more versatile tool functions
Andreas Röver <roever@users.sourceforge.net>**20060109152259
 
 now its possible to set variable and fixed cubes on the
 in and on the outside and to also decolorize cubes
 
 all this is done with a more versatile function in the voxel class
] {
hunk ./src/gui/Images.cpp 85
+
+#include "images/InOut_Color_Fixed_In.xpm"
+#include "images/InOut_Color_Fixed_Out.xpm"
+#include "images/InOut_Color_RemoveColor_In.xpm"
+#include "images/InOut_Color_RemoveColor_Out.xpm"
+#include "images/InOut_Color_Variable_In.xpm"
+#include "images/InOut_Color_Variable_Out.xpm"
+#include "images/InOut_Disabled_Fixed_In.xpm"
+#include "images/InOut_Disabled_Fixed_Out.xpm"
+#include "images/InOut_Disabled_RemoveColor_In.xpm"
+#include "images/InOut_Disabled_RemoveColor_Out.xpm"
+#include "images/InOut_Disabled_Variable_In.xpm"
+#include "images/InOut_Disabled_Variable_Out.xpm"
+#include "images/InOut_Monochrome_Fixed_In.xpm"
+#include "images/InOut_Monochrome_Fixed_Out.xpm"
+#include "images/InOut_Monochrome_RemoveColor_In.xpm"
+#include "images/InOut_Monochrome_RemoveColor_Out.xpm"
+#include "images/InOut_Monochrome_Variable_In.xpm"
+#include "images/InOut_Monochrome_Variable_Out.xpm"
hunk ./src/gui/Images.h 83
+
+extern char * InOut_Color_Fixed_In_xpm[];
+extern char * InOut_Color_Fixed_Out_xpm[];
+extern char * InOut_Color_RemoveColor_In_xpm[];
+extern char * InOut_Color_RemoveColor_Out_xpm[];
+extern char * InOut_Color_Variable_In_xpm[];
+extern char * InOut_Color_Variable_Out_xpm[];
+extern char * InOut_Disabled_Fixed_In_xpm[];
+extern char * InOut_Disabled_Fixed_Out_xpm[];
+extern char * InOut_Disabled_RemoveColor_In_xpm[];
+extern char * InOut_Disabled_RemoveColor_Out_xpm[];
+extern char * InOut_Disabled_Variable_In_xpm[];
+extern char * InOut_Disabled_Variable_Out_xpm[];
+extern char * InOut_Monochrome_Fixed_In_xpm[];
+extern char * InOut_Monochrome_Fixed_Out_xpm[];
+extern char * InOut_Monochrome_RemoveColor_In_xpm[];
+extern char * InOut_Monochrome_RemoveColor_Out_xpm[];
+extern char * InOut_Monochrome_Variable_In_xpm[];
+extern char * InOut_Monochrome_Variable_Out_xpm[];
hunk ./src/gui/WindowWidgets.cpp 257
-    new FlatButton(x+5, y+50, w-10, 20, "Make inside Variable", " Make the inside of the puzzle variable, so that it can contain holes ", cb_ToolTabTransform2_stub, 16);
+
+    new FlatButton(x+5, y+50, 35, 25, new Fl_Pixmap(InOut_Color_Fixed_In_xpm), new Fl_Pixmap(InOut_Disabled_Fixed_In_xpm), "Make inside fixed", cb_ToolTabTransform2_stub, 16);
+    new FlatButton(x+5, y+75, 35, 25, new Fl_Pixmap(InOut_Color_Fixed_Out_xpm), new Fl_Pixmap(InOut_Disabled_Fixed_Out_xpm), "Make outside fixed", cb_ToolTabTransform2_stub, 17);
+
+    new FlatButton(x+45, y+50, 35, 25, new Fl_Pixmap(InOut_Color_Variable_In_xpm), new Fl_Pixmap(InOut_Disabled_Variable_In_xpm), "Make inside variable", cb_ToolTabTransform2_stub, 18);
+    new FlatButton(x+45, y+75, 35, 25, new Fl_Pixmap(InOut_Color_Variable_Out_xpm), new Fl_Pixmap(InOut_Disabled_Variable_Out_xpm), "Make outside variable", cb_ToolTabTransform2_stub, 19);
+
+    new FlatButton(x+85, y+50, 35, 25, new Fl_Pixmap(InOut_Color_RemoveColor_In_xpm), new Fl_Pixmap(InOut_Disabled_RemoveColor_In_xpm), "Remove Colors from inside cubes", cb_ToolTabTransform2_stub, 20);
+    new FlatButton(x+85, y+75, 35, 25, new Fl_Pixmap(InOut_Color_RemoveColor_Out_xpm), new Fl_Pixmap(InOut_Disabled_RemoveColor_Out_xpm), "RemoveColors from outside cubes", cb_ToolTabTransform2_stub, 21);
hunk ./src/gui/WindowWidgets.cpp 290
-    case 16: space->makeInsideHoly(); break;
+    case 16: space->actionOnSpace(voxel_c::ACT_FIXED, true); break;
+    case 17: space->actionOnSpace(voxel_c::ACT_FIXED, false); break;
+    case 18: space->actionOnSpace(voxel_c::ACT_VARIABLE, true); break;
+    case 19: space->actionOnSpace(voxel_c::ACT_VARIABLE, false); break;
+    case 20: space->actionOnSpace(voxel_c::ACT_DECOLOR, true); break;
+    case 21: space->actionOnSpace(voxel_c::ACT_DECOLOR, false); break;
addfile ./src/gui/images/InOut_Color_Fixed_In.xpm
hunk ./src/gui/images/InOut_Color_Fixed_In.xpm 1
+/* XPM */
+static char *InOut_Color_Fixed_In_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 15 1",
+"  c black",
+". c gray42",
+"X c #0066CC",
+"o c #FF3333",
+"O c #CC6600",
+"+ c #FF9933",
+"@ c #FFCC00",
+"# c #868686",
+"$ c gray63",
+"% c #BBBBBB",
+"& c #99CCFF",
+"* c #FFCC99",
+"= c #FFFFCC",
+"- c #E4E4E4",
+"; c None",
+/* pixels */
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";                     ;;;;;;;;;;;",
+"; ----$----$----$---- ;;;;;;;;;;;",
+"; ----$----$----$---- ;;;;;;;;;;;",
+"; ----$----$----$---- ;;;;;;;;;;;",
+"; ----$----$----$---- ;;;;;;;;;;;",
+"; $$$$           $$$$ ;;;;;;  ;;;",
+"; ---- oooo oooo ---- ;;;;; =@ ;;",
+"; ---- oooo oooo ---- ;;;;  @@O ;",
+"; ---- oooo oooo ---- ;;;  & OO ;",
+"; ---- oooo oooo ---- ;; =@ X  ;;",
+"; $$$$           $$$$ ; =@@O  ;;;",
+"; ---- oooo oooo ----  =@@OO ;;;;",
+"; ---- oooo oooo ---- =@@OO ;;;;;",
+"; ---- oooo oooo --- =@@OO ;;;;;;",
+"; ---- oooo oooo -- =@@OO ;;;;;;;",
+"; $$$$           $ = @OO ;;;;;;;;",
+"; ----$----$----$- @@ O ;;;;;;;;;",
+"; ----$----$----$ * OO ;;;;;;;;;;",
+"; ----$----$---- *++  ;;;;;;;;;;;",
+"; ----$----$---- .+ - ;;;;;;;;;;;",
+";                  #  ;         ;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+};
addfile ./src/gui/images/InOut_Color_Fixed_Out.xpm
hunk ./src/gui/images/InOut_Color_Fixed_Out.xpm 1
+/* XPM */
+static char *InOut_Color_Fixed_Out_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 15 1",
+"  c black",
+". c gray42",
+"X c #0066CC",
+"o c #FF3333",
+"O c #CC6600",
+"+ c #FF9933",
+"@ c #FFCC00",
+"# c #868686",
+"$ c gray63",
+"% c #BBBBBB",
+"& c #99CCFF",
+"* c #FFCC99",
+"= c #FFFFCC",
+"- c #E4E4E4",
+"; c None",
+/* pixels */
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";                     ;;;;;;;;;;;",
+"; oooo oooo oooo oooo ;;;;;;;;;;;",
+"; oooo oooo oooo oooo ;;;;;;;;;;;",
+"; oooo oooo oooo oooo ;;;;;;;;;;;",
+"; oooo oooo oooo oooo ;;;;;;;;;;;",
+";                     ;;;;;;  ;;;",
+"; oooo ----$---- oooo ;;;;; =@ ;;",
+"; oooo ----$---- oooo ;;;;  @@O ;",
+"; oooo ----$---- oooo ;;;  & OO ;",
+"; oooo ----$---- oooo ;; =@ X  ;;",
+";      $$$$$$$$$      ; =@@O  ;;;",
+"; oooo ----$---- oooo  =@@OO ;;;;",
+"; oooo ----$---- oooo =@@OO ;;;;;",
+"; oooo ----$---- ooo =@@OO ;;;;;;",
+"; oooo ----$---- oo =@@OO ;;;;;;;",
+";                  = @OO ;;;;;;;;",
+"; oooo oooo oooo o @@ O ;;;;;;;;;",
+"; oooo oooo oooo# * OO ;;;;;;;;;;",
+"; oooo oooo oooo *++  ;;;;;;;;;;;",
+"; oooo oooo oooo .+ o ;;;;;;;;;;;",
+";                  #  ;         ;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+};
addfile ./src/gui/images/InOut_Color_RemoveColor_In.xpm
hunk ./src/gui/images/InOut_Color_RemoveColor_In.xpm 1
+/* XPM */
+static char *InOut_Color_RemoveColor_In_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 20 1",
+"  c black",
+". c gray42",
+"X c #993333",
+"o c #CC0000",
+"O c red",
+"+ c #9900FF",
+"@ c #CC66FF",
+"# c #FFCC00",
+"$ c #FFCC33",
+"% c #868686",
+"& c gray63",
+"* c #AEAEAE",
+"= c #BBBBBB",
+"- c #99CCFF",
+"; c #CCFFFF",
+": c #FFCCCC",
+"> c #E4E4E4",
+", c #F1F1F1",
+"< c gray100",
+"1 c None",
+/* pixels */
+"111111111111111111111111111111111",
+"1                     11     1111",
+"1 >>>>&>>>>&>>>>&>>>> 11 oOO 1111",
+"1 >>>>&>>>>&>>>>&>>>> 11     1111",
+"1 >>>>&>>>>&>>>>&>>>> 1 -;;<< 111",
+"1 >>>>&>>>>&>>>>&>> >  --;;;<< 11",
+"1 &&&&           % , %--;;;<<<< 1",
+"1 >>>> #### ####% ,,, %-;<<<<<  1",
+"1 >>>> #### #### ,**,, %      < 1",
+"1 >>>> #### ### .****,, -;;;<<< 1",
+"1 >>>> #### #### ..***,, ;;;;;< 1",
+"1 &&&&          % ..****, ;;;;< 1",
+"1 >>>> #### #### > ..**. : ;;;< 1",
+"1 >>>> #### #### >> ... $: ;;;< 1",
+"1 >>>> #### #### >>> . $$: ;;;< 1",
+"1 >>>> #### #### >>>> XX$ @ ;;< 1",
+"1 &&&&           &&&&%   + : ;< 1",
+"1 >>>>&>>>>&>>>>&>>>> -;; X$: < 1",
+"1 >>>>&>>>>&>>>>&>>>> --;; X$: %1",
+"1 >>>>&>>>>&>>>>&>>>> ---;; X$: 1",
+"1 >>>>&>>>>&>>>>&>>>>  ----; X$ 1",
+"1                     1     %  11",
+"111111111111111111111111111111111"
+};
addfile ./src/gui/images/InOut_Color_RemoveColor_Out.xpm
hunk ./src/gui/images/InOut_Color_RemoveColor_Out.xpm 1
+/* XPM */
+static char *InOut_Color_RemoveColor_Out_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 20 1",
+"  c black",
+". c gray42",
+"X c #993333",
+"o c #CC0000",
+"O c red",
+"+ c #9900FF",
+"@ c #CC66FF",
+"# c #FFCC00",
+"$ c #FFCC33",
+"% c #868686",
+"& c gray63",
+"* c #AEAEAE",
+"= c #BBBBBB",
+"- c #99CCFF",
+"; c #CCFFFF",
+": c #FFCCCC",
+"> c #E4E4E4",
+", c #F1F1F1",
+"< c gray100",
+"1 c None",
+/* pixels */
+"111111111111111111111111111111111",
+"1                     11     1111",
+"1 #### #### #### #### 11 oOO 1111",
+"1 #### #### #### #### 11     1111",
+"1 #### #### #### #### 1 -;;<< 111",
+"1 #### #### #### ## #  --;;;<< 11",
+"1                % , %--;;;<<<< 1",
+"1 #### >>>>&>>>>% ,,, %-;<<<<<  1",
+"1 #### >>>>&>>>> ,**,, %      < 1",
+"1 #### >>>>&>>> .****,, -;;;<<< 1",
+"1 #### >>>>&>>>> ..***,, ;;;;;< 1",
+"1      &&&&&&&&&% ..****, ;;;;< 1",
+"1 #### >>>>&>>>> # ..**. : ;;;< 1",
+"1 #### >>>>&>>>> ## ... $: ;;;< 1",
+"1 #### >>>>&>>>> ### . $$: ;;;< 1",
+"1 #### >>>>&>>>> #### XX$ @ ;;< 1",
+"1                    %   + : ;< 1",
+"1 #### #### #### #### -;; X$: < 1",
+"1 #### #### #### #### --;; X$: %1",
+"1 #### #### #### #### ---;; X$: 1",
+"1 #### #### #### ####  ----; X$ 1",
+"1                     1     %  11",
+"111111111111111111111111111111111"
+};
addfile ./src/gui/images/InOut_Color_Variable_In.xpm
hunk ./src/gui/images/InOut_Color_Variable_In.xpm 1
+/* XPM */
+static char *InOut_Color_Variable_In_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 15 1",
+"  c black",
+". c gray42",
+"X c #0066CC",
+"o c #CC6600",
+"O c #99FF00",
+"+ c #FF9933",
+"@ c #FFCC00",
+"# c #868686",
+"$ c gray63",
+"% c #BBBBBB",
+"& c #99CCFF",
+"* c #FFCC99",
+"= c #FFFFCC",
+"- c #E4E4E4",
+"; c None",
+/* pixels */
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";                     ;;;;;;;;;;;",
+"; ----$----$----$---- ;;;;;;;;;;;",
+"; ----$----$----$---- ;;;;;;;;;;;",
+"; ----$----$----$---- ;;;;;;;;;;;",
+"; ----$----$----$---- ;;;;;;;;;;;",
+"; $$$$           $$$$ ;;;;;;  ;;;",
+"; ---- OOOO OOOO ---- ;;;;; =@ ;;",
+"; ---- O  O O  O ---- ;;;;  @@o ;",
+"; ---- O  O O  O ---- ;;;  & oo ;",
+"; ---- OOOO OOOO ---- ;; =@ X  ;;",
+"; $$$$           $$$$ ; =@@o  ;;;",
+"; ---- OOOO OOOO ----  =@@oo ;;;;",
+"; ---- O  O O  O ---- =@@oo ;;;;;",
+"; ---- O  O O  O --- =@@oo ;;;;;;",
+"; ---- OOOO OOOO -- =@@oo ;;;;;;;",
+"; $$$$           $ = @oo ;;;;;;;;",
+"; ----$----$----$- @@ o ;;;;;;;;;",
+"; ----$----$----$ * oo ;;;;;;;;;;",
+"; ----$----$---- *++  ;;;;;;;;;;;",
+"; ----$----$---- .+ - ;;;;;;;;;;;",
+";                  #  ;         ;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+};
addfile ./src/gui/images/InOut_Color_Variable_Out.xpm
hunk ./src/gui/images/InOut_Color_Variable_Out.xpm 1
+/* XPM */
+static char *InOut_Color_Variable_Out_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 15 1",
+"  c black",
+". c gray42",
+"X c #0066CC",
+"o c #CC6600",
+"O c #99FF00",
+"+ c #FF9933",
+"@ c #FFCC00",
+"# c #868686",
+"$ c gray63",
+"% c #BBBBBB",
+"& c #99CCFF",
+"* c #FFCC99",
+"= c #FFFFCC",
+"- c #E4E4E4",
+"; c None",
+/* pixels */
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";                     ;;;;;;;;;;;",
+"; OOOO OOOO OOOO OOOO ;;;;;;;;;;;",
+"; O  O O  O O  O O  O ;;;;;;;;;;;",
+"; O  O O  O O  O O  O ;;;;;;;;;;;",
+"; OOOO OOOO OOOO OOOO ;;;;;;;;;;;",
+";                     ;;;;;;  ;;;",
+"; OOOO ----$---- OOOO ;;;;; =@ ;;",
+"; O  O ----$---- O  O ;;;;  @@o ;",
+"; O  O ----$---- O  O ;;;  & oo ;",
+"; OOOO ----$---- OOOO ;; =@ X  ;;",
+";      $$$$$$$$$      ; =@@o  ;;;",
+"; OOOO ----$---- OOOO  =@@oo ;;;;",
+"; O  O ----$---- O  O =@@oo ;;;;;",
+"; O  O ----$---- O   =@@oo ;;;;;;",
+"; OOOO ----$---- OO =@@oo ;;;;;;;",
+";                  = @oo ;;;;;;;;",
+"; OOOO OOOO OOOO O @@ o ;;;;;;;;;",
+"; O  O O  O O  O# * oo ;;;;;;;;;;",
+"; O  O O  O O  O *++  ;;;;;;;;;;;",
+"; OOOO OOOO OOOO .+ O ;;;;;;;;;;;",
+";                  #  ;         ;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+};
addfile ./src/gui/images/InOut_Disabled_Fixed_In.xpm
hunk ./src/gui/images/InOut_Disabled_Fixed_In.xpm 1
+/* XPM */
+static char *InOut_Disabled_Fixed_In_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 3 1",
+"  c #868686",
+". c #BBBBBB",
+"X c None",
+/* pixels */
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"X                     XXXXXXXXXXX",
+"X XXXXXXXXXXXXXXXXXXX XXXXXXXXXXX",
+"X XXXXXXXXXXXXXXXXXXX XXXXXXXXXXX",
+"X XXXXXXXXXXXXXXXXXXX XXXXXXXXXXX",
+"X XXXXXXXXXXXXXXXXXXX XXXXXXXXXXX",
+"X XXXX           XXXX XXXXXX  XXX",
+"X XXXX XXXX XXXX XXXX XXXXX XX XX",
+"X XXXX XXXX XXXX XXXX XXXX  XXX X",
+"X XXXX XXXX XXXX XXXX XXX  X XX X",
+"X XXXX XXXX XXXX XXXX XX XX X  XX",
+"X XXXX           XXXX X XXXX  XXX",
+"X XXXX XXXX XXXX XXXX  XXXXX XXXX",
+"X XXXX XXXX XXXX XXXX XXXXX XXXXX",
+"X XXXX XXXX XXXX XXX XXXXX XXXXXX",
+"X XXXX XXXX XXXX XX XXXXX XXXXXXX",
+"X XXXX           X X XXX XXXXXXXX",
+"X XXXXXXXXXXXXXXXX XX X XXXXXXXXX",
+"X XXXXXXXXXXXXXXX X XX XXXXXXXXXX",
+"X XXXXXXXXXXXXXX XXX  XXXXXXXXXXX",
+"X XXXXXXXXXXXXXX XX X XXXXXXXXXXX",
+"X                     X         X",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+};
addfile ./src/gui/images/InOut_Disabled_Fixed_Out.xpm
hunk ./src/gui/images/InOut_Disabled_Fixed_Out.xpm 1
+/* XPM */
+static char *InOut_Disabled_Fixed_Out_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 3 1",
+"  c #868686",
+". c #BBBBBB",
+"X c None",
+/* pixels */
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"X                     XXXXXXXXXXX",
+"X XXXX XXXX XXXX XXXX XXXXXXXXXXX",
+"X XXXX XXXX XXXX XXXX XXXXXXXXXXX",
+"X XXXX XXXX XXXX XXXX XXXXXXXXXXX",
+"X XXXX XXXX XXXX XXXX XXXXXXXXXXX",
+"X                     XXXXXX  XXX",
+"X XXXX XXXXXXXXX XXXX XXXXX XX XX",
+"X XXXX XXXXXXXXX XXXX XXXX  XXX X",
+"X XXXX XXXXXXXXX XXXX XXX  X XX X",
+"X XXXX XXXXXXXXX XXXX XX XX X  XX",
+"X      XXXXXXXXX      X XXXX  XXX",
+"X XXXX XXXXXXXXX XXXX  XXXXX XXXX",
+"X XXXX XXXXXXXXX XXXX XXXXX XXXXX",
+"X XXXX XXXXXXXXX XXX XXXXX XXXXXX",
+"X XXXX XXXXXXXXX XX XXXXX XXXXXXX",
+"X                  X XXX XXXXXXXX",
+"X XXXX XXXX XXXX X XX X XXXXXXXXX",
+"X XXXX XXXX XXXX  X XX XXXXXXXXXX",
+"X XXXX XXXX XXXX XXX  XXXXXXXXXXX",
+"X XXXX XXXX XXXX XX X XXXXXXXXXXX",
+"X                     X         X",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+};
addfile ./src/gui/images/InOut_Disabled_RemoveColor_In.xpm
hunk ./src/gui/images/InOut_Disabled_RemoveColor_In.xpm 1
+/* XPM */
+static char *InOut_Disabled_RemoveColor_In_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 3 1",
+"  c #868686",
+". c #BBBBBB",
+"X c None",
+/* pixels */
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"X                     XX     XXXX",
+"X XXXXXXXXXXXXXXXXXXX XX XXX XXXX",
+"X XXXXXXXXXXXXXXXXXXX XX     XXXX",
+"X XXXXXXXXXXXXXXXXXXX X XXXXX XXX",
+"X XXXXXXXXXXXXXXXXX X  XXXXXXX XX",
+"X XXXX           X X  XXXXXXXXX X",
+"X XXXX XXXX XXXX  XXX  XXXXXXX  X",
+"X XXXX XXXX XXXX XXXXX        X X",
+"X XXXX XXXX XXX XXXXXXX XXXXXXX X",
+"X XXXX XXXX XXXX XXXXXXX XXXXXX X",
+"X XXXX            XXXXXXX XXXXX X",
+"X XXXX XXXX XXXX X XXXXX X XXXX X",
+"X XXXX XXXX XXXX XX XXX XX XXXX X",
+"X XXXX XXXX XXXX XXX X XXX XXXX X",
+"X XXXX XXXX XXXX XXXX XXX X XXX X",
+"X XXXX           XXXX    X X XX X",
+"X XXXXXXXXXXXXXXXXXXX XXX XXX X X",
+"X XXXXXXXXXXXXXXXXXXX XXXX XXX  X",
+"X XXXXXXXXXXXXXXXXXXX XXXXX XXX X",
+"X XXXXXXXXXXXXXXXXXXX  XXXXX XX X",
+"X                     X        XX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+};
addfile ./src/gui/images/InOut_Disabled_RemoveColor_Out.xpm
hunk ./src/gui/images/InOut_Disabled_RemoveColor_Out.xpm 1
+/* XPM */
+static char *InOut_Disabled_RemoveColor_Out_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 3 1",
+"  c #868686",
+". c #BBBBBB",
+"X c None",
+/* pixels */
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"X                     XX     XXXX",
+"X XXXX XXXX XXXX XXXX XX XXX XXXX",
+"X XXXX XXXX XXXX XXXX XX     XXXX",
+"X XXXX XXXX XXXX XXXX X XXXXX XXX",
+"X XXXX XXXX XXXX XX X  XXXXXXX XX",
+"X                  X  XXXXXXXXX X",
+"X XXXX XXXXXXXXX  XXX  XXXXXXX  X",
+"X XXXX XXXXXXXXX XXXXX        X X",
+"X XXXX XXXXXXXX XXXXXXX XXXXXXX X",
+"X XXXX XXXXXXXXX XXXXXXX XXXXXX X",
+"X      XXXXXXXXX  XXXXXXX XXXXX X",
+"X XXXX XXXXXXXXX X XXXXX X XXXX X",
+"X XXXX XXXXXXXXX XX XXX XX XXXX X",
+"X XXXX XXXXXXXXX XXX X XXX XXXX X",
+"X XXXX XXXXXXXXX XXXX XXX X XXX X",
+"X                        X X XX X",
+"X XXXX XXXX XXXX XXXX XXX XXX X X",
+"X XXXX XXXX XXXX XXXX XXXX XXX  X",
+"X XXXX XXXX XXXX XXXX XXXXX XXX X",
+"X XXXX XXXX XXXX XXXX  XXXXX XX X",
+"X                     X        XX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+};
addfile ./src/gui/images/InOut_Disabled_Variable_In.xpm
hunk ./src/gui/images/InOut_Disabled_Variable_In.xpm 1
+/* XPM */
+static char *InOut_Disabled_Variable_In_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 3 1",
+"  c #868686",
+". c #BBBBBB",
+"X c None",
+/* pixels */
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"X                     XXXXXXXXXXX",
+"X XXXXXXXXXXXXXXXXXXX XXXXXXXXXXX",
+"X XXXXXXXXXXXXXXXXXXX XXXXXXXXXXX",
+"X XXXXXXXXXXXXXXXXXXX XXXXXXXXXXX",
+"X XXXXXXXXXXXXXXXXXXX XXXXXXXXXXX",
+"X XXXX           XXXX XXXXXX  XXX",
+"X XXXX XXXX XXXX XXXX XXXXX XX XX",
+"X XXXX X  X X  X XXXX XXXX  XXX X",
+"X XXXX X  X X  X XXXX XXX  X XX X",
+"X XXXX XXXX XXXX XXXX XX XX X  XX",
+"X XXXX           XXXX X XXXX  XXX",
+"X XXXX XXXX XXXX XXXX  XXXXX XXXX",
+"X XXXX X  X X  X XXXX XXXXX XXXXX",
+"X XXXX X  X X  X XXX XXXXX XXXXXX",
+"X XXXX XXXX XXXX XX XXXXX XXXXXXX",
+"X XXXX           X X XXX XXXXXXXX",
+"X XXXXXXXXXXXXXXXX XX X XXXXXXXXX",
+"X XXXXXXXXXXXXXXX X XX XXXXXXXXXX",
+"X XXXXXXXXXXXXXX XXX  XXXXXXXXXXX",
+"X XXXXXXXXXXXXXX XX X XXXXXXXXXXX",
+"X                     X         X",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+};
addfile ./src/gui/images/InOut_Disabled_Variable_Out.xpm
hunk ./src/gui/images/InOut_Disabled_Variable_Out.xpm 1
+/* XPM */
+static char *InOut_Disabled_Variable_Out_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 3 1",
+"  c #868686",
+". c #BBBBBB",
+"X c None",
+/* pixels */
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"X                     XXXXXXXXXXX",
+"X XXXX XXXX XXXX XXXX XXXXXXXXXXX",
+"X X  X X  X X  X X  X XXXXXXXXXXX",
+"X X  X X  X X  X X  X XXXXXXXXXXX",
+"X XXXX XXXX XXXX XXXX XXXXXXXXXXX",
+"X                     XXXXXX  XXX",
+"X XXXX XXXXXXXXX XXXX XXXXX XX XX",
+"X X  X XXXXXXXXX X  X XXXX  XXX X",
+"X X  X XXXXXXXXX X  X XXX  X XX X",
+"X XXXX XXXXXXXXX XXXX XX XX X  XX",
+"X      XXXXXXXXX      X XXXX  XXX",
+"X XXXX XXXXXXXXX XXXX  XXXXX XXXX",
+"X X  X XXXXXXXXX X  X XXXXX XXXXX",
+"X X  X XXXXXXXXX X   XXXXX XXXXXX",
+"X XXXX XXXXXXXXX XX XXXXX XXXXXXX",
+"X                  X XXX XXXXXXXX",
+"X XXXX XXXX XXXX X XX X XXXXXXXXX",
+"X X  X X  X X  X  X XX XXXXXXXXXX",
+"X X  X X  X X  X XXX  XXXXXXXXXXX",
+"X XXXX XXXX XXXX XX X XXXXXXXXXXX",
+"X                     X         X",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+};
addfile ./src/gui/images/InOut_Monochrome_Fixed_In.xpm
hunk ./src/gui/images/InOut_Monochrome_Fixed_In.xpm 1
+/* XPM */
+static char *InOut_Monochrome_Fixed_In_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 14 1",
+"  c black",
+". c #505050",
+"X c gray42",
+"o c gray47",
+"O c #FF6600",
+"+ c #868686",
+"@ c gray63",
+"# c #AEAEAE",
+"$ c #BBBBBB",
+"% c gray79",
+"& c gray80",
+"* c gray84",
+"= c gray100",
+"- c None",
+/* pixels */
+"---------------------------------",
+"-                     -----------",
+"- &&&&@&&&&@&&&&@&&&& -----------",
+"- &&&&@&&&&@&&&&@&&&& -----------",
+"- &&&&@&&&&@&&&&@&&&& -----------",
+"- &&&&@&&&&@&&&&@&&&& -----------",
+"- @@@@           @@@@ ------  ---",
+"- &&&& ==== ==== &&&& ----- =% --",
+"- &&&& ==== ==== &&&& ----  %%o -",
+"- &&&& ==== ==== &&&& ---  $ oo -",
+"- &&&& ==== ==== &&&& -- =% .  --",
+"- @@@@           @@@@ - =%%o  ---",
+"- &&&& ==== ==== &&&&  =%%oo ----",
+"- &&&& ==== ==== &&&& =%%oo -----",
+"- &&&& ==== ==== &&& =%%oo ------",
+"- &&&& ==== ==== && =%%oo -------",
+"- @@@@           @ = %oo --------",
+"- &&&&@&&&&@&&&&@& %% o ---------",
+"- &&&&@&&&&@&&&&@ * oo ----------",
+"- &&&&@&&&&@&&&& *##  -----------",
+"- &&&&@&&&&@&&&& X# & -----------",
+"-                  +  -         -",
+"---------------------------------"
+};
addfile ./src/gui/images/InOut_Monochrome_Fixed_Out.xpm
hunk ./src/gui/images/InOut_Monochrome_Fixed_Out.xpm 1
+/* XPM */
+static char *InOut_Monochrome_Fixed_Out_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 14 1",
+"  c black",
+". c #505050",
+"X c gray42",
+"o c gray47",
+"O c #FF6600",
+"+ c #868686",
+"@ c gray63",
+"# c #AEAEAE",
+"$ c #BBBBBB",
+"% c gray79",
+"& c gray80",
+"* c gray84",
+"= c gray100",
+"- c None",
+/* pixels */
+"---------------------------------",
+"-                     -----------",
+"- ==== ==== ==== ==== -----------",
+"- ==== ==== ==== ==== -----------",
+"- ==== ==== ==== ==== -----------",
+"- ==== ==== ==== ==== -----------",
+"-                     ------  ---",
+"- ==== &&&&@&&&& ==== ----- =% --",
+"- ==== &&&&@&&&& ==== ----  %%o -",
+"- ==== &&&&@&&&& ==== ---  $ oo -",
+"- ==== &&&&@&&&& ==== -- =% .  --",
+"-      @@@@@@@@@      - =%%o  ---",
+"- ==== &&&&@&&&& ====  =%%oo ----",
+"- ==== &&&&@&&&& ==== =%%oo -----",
+"- ==== &&&&@&&&& === =%%oo ------",
+"- ==== &&&&@&&&& == =%%oo -------",
+"-                  = %oo --------",
+"- ==== ==== ==== = %% o ---------",
+"- ==== ==== ====+ * oo ----------",
+"- ==== ==== ==== *##  -----------",
+"- ==== ==== ==== X# = -----------",
+"-                  +  -         -",
+"---------------------------------"
+};
addfile ./src/gui/images/InOut_Monochrome_RemoveColor_In.xpm
hunk ./src/gui/images/InOut_Monochrome_RemoveColor_In.xpm 1
+/* XPM */
+static char *InOut_Monochrome_RemoveColor_In_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 16 1",
+"  c black",
+". c #434343",
+"X c #505050",
+"o c gray40",
+"O c gray42",
+"+ c #FF6600",
+"@ c #868686",
+"# c #939393",
+"$ c gray63",
+"% c #AEAEAE",
+"& c #BBBBBB",
+"* c gray80",
+"= c gray84",
+"- c #F1F1F1",
+"; c gray100",
+": c None",
+/* pixels */
+":::::::::::::::::::::::::::::::::",
+":                     ::     ::::",
+": ****$****$****$**** :: .XX ::::",
+": ****$****$****$**** ::     ::::",
+": ****$****$****$**** : &--;; :::",
+": ****$****$****$** *  &&---;; ::",
+": $$$$           @ - @&&---;;;; :",
+": **** oooo oooo@ --- @&-;;;;;  :",
+": **** oooo oooo -%%-- @      ; :",
+": **** oooo ooo O%%%%-- &---;;; :",
+": **** oooo oooo OO%%%-- -----; :",
+": $$$$          @ OO%%%%- ----; :",
+": **** oooo oooo * OO%%O = ---; :",
+": **** oooo oooo ** OOO *= ---; :",
+": **** oooo oooo *** O **= ---; :",
+": **** oooo oooo **** XX* # --; :",
+": $$$$           $$$$@   . = -; :",
+": ****$****$****$**** &-- X*= ; :",
+": ****$****$****$**** &&-- X*= @:",
+": ****$****$****$**** &&&-- X*= :",
+": ****$****$****$****  &&&&- X* :",
+":                     :     @  ::",
+":::::::::::::::::::::::::::::::::"
+};
addfile ./src/gui/images/InOut_Monochrome_RemoveColor_Out.xpm
hunk ./src/gui/images/InOut_Monochrome_RemoveColor_Out.xpm 1
+/* XPM */
+static char *InOut_Monochrome_RemoveColor_Out_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 16 1",
+"  c black",
+". c #434343",
+"X c #505050",
+"o c gray40",
+"O c gray42",
+"+ c #FF6600",
+"@ c #868686",
+"# c #939393",
+"$ c gray63",
+"% c #AEAEAE",
+"& c #BBBBBB",
+"* c gray80",
+"= c gray84",
+"- c #F1F1F1",
+"; c gray100",
+": c None",
+/* pixels */
+":::::::::::::::::::::::::::::::::",
+":                     ::     ::::",
+": oooo oooo oooo oooo :: .XX ::::",
+": oooo oooo oooo oooo ::     ::::",
+": oooo oooo oooo oooo : &--;; :::",
+": oooo oooo oooo oo o  &&---;; ::",
+":                @ - @&&---;;;; :",
+": oooo ****$****@ --- @&-;;;;;  :",
+": oooo ****$**** -%%-- @      ; :",
+": oooo ****$*** O%%%%-- &---;;; :",
+": oooo ****$**** OO%%%-- -----; :",
+":      $$$$$$$$$@ OO%%%%- ----; :",
+": oooo ****$**** o OO%%O = ---; :",
+": oooo ****$**** oo OOO *= ---; :",
+": oooo ****$**** ooo O **= ---; :",
+": oooo ****$**** oooo XX* # --; :",
+":                    @   . = -; :",
+": oooo oooo oooo oooo &-- X*= ; :",
+": oooo oooo oooo oooo &&-- X*= @:",
+": oooo oooo oooo oooo &&&-- X*= :",
+": oooo oooo oooo oooo  &&&&- X* :",
+":                     :     @  ::",
+":::::::::::::::::::::::::::::::::"
+};
addfile ./src/gui/images/InOut_Monochrome_Variable_In.xpm
hunk ./src/gui/images/InOut_Monochrome_Variable_In.xpm 1
+/* XPM */
+static char *InOut_Monochrome_Variable_In_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 14 1",
+"  c black",
+". c #505050",
+"X c gray42",
+"o c gray47",
+"O c #FF6600",
+"+ c #868686",
+"@ c gray63",
+"# c #AEAEAE",
+"$ c #BBBBBB",
+"% c gray79",
+"& c gray80",
+"* c gray84",
+"= c gray100",
+"- c None",
+/* pixels */
+"---------------------------------",
+"-                     -----------",
+"- &&&&@&&&&@&&&&@&&&& -----------",
+"- &&&&@&&&&@&&&&@&&&& -----------",
+"- &&&&@&&&&@&&&&@&&&& -----------",
+"- &&&&@&&&&@&&&&@&&&& -----------",
+"- @@@@           @@@@ ------  ---",
+"- &&&& ==== ==== &&&& ----- =% --",
+"- &&&& =  = =  = &&&& ----  %%o -",
+"- &&&& =  = =  = &&&& ---  $ oo -",
+"- &&&& ==== ==== &&&& -- =% .  --",
+"- @@@@           @@@@ - =%%o  ---",
+"- &&&& ==== ==== &&&&  =%%oo ----",
+"- &&&& =  = =  = &&&& =%%oo -----",
+"- &&&& =  = =  = &&& =%%oo ------",
+"- &&&& ==== ==== && =%%oo -------",
+"- @@@@           @ = %oo --------",
+"- &&&&@&&&&@&&&&@& %% o ---------",
+"- &&&&@&&&&@&&&&@ * oo ----------",
+"- &&&&@&&&&@&&&& *##  -----------",
+"- &&&&@&&&&@&&&& X# & -----------",
+"-                  +  -         -",
+"---------------------------------"
+};
addfile ./src/gui/images/InOut_Monochrome_Variable_Out.xpm
hunk ./src/gui/images/InOut_Monochrome_Variable_Out.xpm 1
+/* XPM */
+static char *InOut_Monochrome_Variable_Out_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"33 23 14 1",
+"  c black",
+". c #505050",
+"X c gray42",
+"o c gray47",
+"O c #FF6600",
+"+ c #868686",
+"@ c gray63",
+"# c #AEAEAE",
+"$ c #BBBBBB",
+"% c gray79",
+"& c gray80",
+"* c gray84",
+"= c gray100",
+"- c None",
+/* pixels */
+"---------------------------------",
+"-                     -----------",
+"- ==== ==== ==== ==== -----------",
+"- =  = =  = =  = =  = -----------",
+"- =  = =  = =  = =  = -----------",
+"- ==== ==== ==== ==== -----------",
+"-                     ------  ---",
+"- ==== &&&&@&&&& ==== ----- =% --",
+"- =  = &&&&@&&&& =  = ----  %%o -",
+"- =  = &&&&@&&&& =  = ---  $ oo -",
+"- ==== &&&&@&&&& ==== -- =% .  --",
+"-      @@@@@@@@@      - =%%o  ---",
+"- ==== &&&&@&&&& ====  =%%oo ----",
+"- =  = &&&&@&&&& =  = =%%oo -----",
+"- =  = &&&&@&&&& =   =%%oo ------",
+"- ==== &&&&@&&&& == =%%oo -------",
+"-                  = %oo --------",
+"- ==== ==== ==== = %% o ---------",
+"- =  = =  = =  =+ * oo ----------",
+"- =  = =  = =  = *##  -----------",
+"- ==== ==== ==== X# = -----------",
+"-                  +  -         -",
+"---------------------------------"
+};
hunk ./src/lib/voxel.cpp 910
-
-void voxel_c::makeInsideHoly(void) {
+void voxel_c::actionOnSpace(int action, bool inside) {
hunk ./src/lib/voxel.cpp 915
-  for (unsigned int x = 1; x < getX()-1; x++)
-    for (unsigned int y = 1; y < getY()-1; y++)
-      for (unsigned int z = 1; z < getZ()-1; z++)
+  for (unsigned int x = 0; x < getX(); x++)
+    for (unsigned int y = 0; y < getY(); y++)
+      for (unsigned int z = 0; z < getZ(); z++)
hunk ./src/lib/voxel.cpp 919
-          if ((getState(x-1, y, z) == VX_EMPTY) || (getState(x+1, y, z) == VX_EMPTY) ||
-              (getState(x, y-1, z) == VX_EMPTY) || (getState(x, y+1, z) == VX_EMPTY) ||
-              (getState(x, y, z-1) == VX_EMPTY) || (getState(x, y, z+1) == VX_EMPTY))
-            setState(x, y, z, VX_FILLED);
-          else
-            setState(x, y, z, VX_VARIABLE);
+          if (inside ^
+              ((getState2(x-1, y, z) == VX_EMPTY) || (getState2(x+1, y, z) == VX_EMPTY) ||
+               (getState2(x, y-1, z) == VX_EMPTY) || (getState2(x, y+1, z) == VX_EMPTY) ||
+               (getState2(x, y, z-1) == VX_EMPTY) || (getState2(x, y, z+1) == VX_EMPTY)
+              )
+             )
+            switch(action) {
+              case ACT_FIXED: setState(x, y, z, VX_FILLED); break;
+              case ACT_VARIABLE: setState(x, y, z, VX_VARIABLE); break;
+              case ACT_DECOLOR: setColor(x, y, z, 0); break;
+            }
hunk ./src/lib/voxel.h 446
-  /**
-   * this function makes all voxels that are completely surrounded (6 neibor pieces)
-   * variable. This is useful, if you want to make invisible pieces contain holes
-   * it's not flawless, as it leaves pieces along inside holes static on
+  /* do something on the voxel space, what is done is defined with the enum
+   * fixed sets voxels to the fixed state, variable sets voxels to variable
+   * and decolor removes colors from voxels
+   * inside defines where to carry out the action, on inside cubes or on outside cubes
+   * inside cubes do have 6 nonempty cubes as neighbours
hunk ./src/lib/voxel.h 452
-  void makeInsideHoly(void);
+  enum {
+    ACT_FIXED,
+    ACT_VARIABLE,
+    ACT_DECOLOR
+  };
+  void actionOnSpace(int action, bool inside);
}
