wiki:HowToAddANewMode

How to add a new Mode to GeoGebra

geogebra.euclidian.EuclidianConstants.java

public static final int MODE_MIRROR_AT_CIRCLE = 54;

geogebra.kernel.Kernel.java

case EuclidianConstants.MODE_MIRROR_AT_CIRCLE:
return "MirrorAtCircle";

geogebra.euclidian.EuclidianController.java

  • add code to allowSelectionRectangle(), processSelectionRectangle() and mouseReleased() if appropriate

  • add to processMode():
    case EuclidianView.MODE_MIRROR_AT_CIRCLE:
    changedKernel = mirrorAtCircle(view.getTopHits(hits));
    break;
    
  • add method mirrorAtCircle(ArrayList hits)

geogebra.gui.toolbar.Toolbar.java

sb.append(EuclidianView.MODE_MIRROR_AT_CIRCLE);

geogebra.gui.toolbar.images

  • add mode_mirroratcircle_32.gif

geogebra.properties.menu.properties

MirrorAtCircle=Mirror point at circle
MirrorAtCircle.Help=Point and Circle
  • Make a new icon
    File -> Open Webpage -> http://www.geogebra.org/trac/export/8286/trunk/geogebra/icons/mode_rigidpolygon.ggb
    change it and save in SVN in trunk/geogebra/icons/
    export at 300dpi with no transparency
    downsample in eg IrfanView to 32x32 pixels
    save as eg geogebra.gui.toolbar.images.mode_mirroratcircle_32.gif
    

Finally, don't forget Options -> Restore Default Settings so that you can see the new Tool :)