This is the source for the Image Region Palette.

ImageRegionPaletteFactors  
        := 
{
ScaleFactor -> 
            3/4, 
MoveFactor  -> 
            1/16
};

 
       
\(\(ImageRegionPaletteTemplate\  
        := \ 
{
{\ 
            {"↖", UpLeft}, {"↑", Up}, 
            {"↗", UpRight}, 
            {"IN", In}\ }, 
{\ 
            {"←", Left}, {"R", Reset}, 
            {"→", Right}, 
            {".", Null}\ }, 
{\ 
            {"↙", DownLeft}, {"↓", Down}, 
            {"↘", DownRight}, 
            {"OUT", Out}\ }
};\)

 
      (*\ SETUP\ COMMAND\ TEMPLATES\ *) \)
ImageRegionPaletteCommand  
        := 
{
Reset  ->  
              {{0, 1}, {0, 1}}, 
Null  ->  
              {{x1, x2}, {y1, y2}}, 
Up  ->  
              {{x1, x2}, 
                {y1 + ys*MoveFactor, 
                  y2 + ys*MoveFactor}}, 
Down  ->  
              {{x1, x2}, 
                {y1 - ys*MoveFactor, 
                  y2 - ys*MoveFactor}}, 
Right  ->  
              {{x1 + xs*MoveFactor, x2 + xs*MoveFactor}, 
                {y1, y2}}, 
Left  ->  
              {{x1 - xs*MoveFactor, x2 - xs*MoveFactor}, 
                {y1, y2}}, 
UpRight  ->  
              {{x1 + xs*MoveFactor, x2 + xs*MoveFactor}, 
                {y1 + ys*MoveFactor, 
                  y2 + ys*MoveFactor}}, 
UpLeft  ->  
              {{x1 - xs*MoveFactor, x2 - xs*MoveFactor}, 
                {y1 + ys*MoveFactor, 
                  y2 + ys*MoveFactor}}, 
DownRight  
              ->  
              {{x1 + xs*MoveFactor, x2 + xs*MoveFactor}, 
                {y1 - ys*MoveFactor, 
                  y2 - ys*MoveFactor}}, 
DownLeft  
              ->  
              {{x1 - xs*MoveFactor, x2 - xs*MoveFactor}, 
                {y1 - ys*MoveFactor, 
                  y2 - ys*MoveFactor}}, 
In -> 
              {{((x1 - 0.5)/ScaleFactor) + 0.5, 
                  ((x2 - 0.5)/ScaleFactor) + 0.5}, 
                {((y1 - 0.5)/ScaleFactor) + 0.5, 
                  ((y2 - 0.5)/ScaleFactor) + 
                    0.5}}, 
Out -> 
              {{((x1 - 0.5)*ScaleFactor) + 0.5, 
                  ((x2 - 0.5)*ScaleFactor) + 0.5}, 
                {((y1 - 0.5)*ScaleFactor) + 0.5, 
                  ((y2 - 0.5)*ScaleFactor) + 
                    0.5}}
}  /.  
          ImageRegionPaletteFactors;

ImageRegionPaletteButton[title_String, 
          command_]  :=  
        ToExpression[
          "ButtonBox[\""  <> title  <> 
            "\",ButtonFunction:>Module[{l,x1,x2,y1,y2,xs,ys},\

l=Options[NotebookSelection[InputNotebook[]],ImageRegion][[\
1,2]];
x1=l[[1,1]]; x2=l[[1,2]];y1=l[[2,1]];y2=l[[2,2]];\

xs=(x2-x1); \
ys=(y2-y1);
SetOptions[NotebookSelection[InputNotebook[]],\
ImageRegion->"  <> 
            ToString[command /. ImageRegionPaletteCommand, InputForm]  <> 
            "]; SetSelectedNotebook[InputNotebook[]]; \
FrontEndExecute[FrontEnd`FrontEndToken[\"GraphicsRender\"]]],ButtonEvaluator\
->Automatic,Active->True,ButtonStyle->None]", InputForm];

CellPrint[
      Cell[BoxData[
          GridBox[Apply[ImageRegionPaletteButton, ImageRegionPaletteTemplate, 
              {2}], ColumnSpacings -> 0,  RowSpacings -> 0]], 
        CellMargins -> {{0, 0}, {0, 0}}, CellFrameMargins -> 0, 
        Background -> GrayLevel[0]]]

Select the above cell and click on menu item: File->Generate Palette From Selection

Plot3D[Sin[x y], {x, 0, 4}, {y, 0, 3}]

Plot3D[Sin[x y], {x, 0, 2}, {y, 0, 3}]