static void menu_cb_removePoints (RealTierEditor me, EDITOR_ARGS_DIRECT) { Editor_save (me, U"Remove point(s)"); if (my d_startSelection == my d_endSelection) AnyTier_removePointNear (my data, my d_startSelection); else AnyTier_removePointsBetween (my data, my d_startSelection, my d_endSelection); RealTierEditor_updateScaling (me); FunctionEditor_redraw (me); Editor_broadcastDataChanged (me); }
static void menu_cb_addPointAtCursor (RealTierEditor me, EDITOR_ARGS_DIRECT) { if (NUMdefined (my v_minimumLegalValue ()) && my ycursor < my v_minimumLegalValue ()) Melder_throw (U"Cannot add a point below ", my v_minimumLegalValue (), my v_rightTickUnits (), U"."); if (NUMdefined (my v_maximumLegalValue ()) && my ycursor > my v_maximumLegalValue ()) Melder_throw (U"Cannot add a point above ", my v_maximumLegalValue (), my v_rightTickUnits (), U"."); Editor_save (me, U"Add point"); RealTier_addPoint ((RealTier) my data, 0.5 * (my d_startSelection + my d_endSelection), my ycursor); RealTierEditor_updateScaling (me); FunctionEditor_redraw (me); Editor_broadcastDataChanged (me); }