
@MACRO makeNoCopyString[str.len] = WITH_VAR_STACK(scheme_make_sized_char_string(<str>, <len>, 0))

@MACRO gtSTRINGENOUGH[who] = if (SCHEME_CHAR_STRTAG_VAL(p[0+POFFSET]) < (x2 + x3)) WITH_VAR_STACK(scheme_arg_mismatch(<who>, "string too short: ", p[0+POFFSET]));

@ s "get-extent" : void GetExtent(wxDC!,double,double,nndouble?=NULL,nndouble?=NULL,nndouble?=NULL,nndouble?=NULL,nndouble?=NULL,nndouble?=NULL); : : /CHECKDCOK[0.METHODNAME("snip%","get-extent")]
@ s "partial-offset" : double PartialOffset(wxDC!,double,double,nnlong); : : /CHECKDCOK[0.METHODNAME("snip%","partial-offset")]
@ s "draw" : void Draw(wxDC!,double,double,double,double,double,double,double,double,SYM[caret]); : : /CHECKDCOK[0.METHODNAME("snip%","draw")]
@ s "split" : void Split(nnlong,wxSnip!*,wxSnip!*);
@ s "merge-with" : wxSnip^ MergeWith(wxSnip!);
@ s "get-text" : mzstring/makeNoCopyString[r._x3] GetText(nnlong,nnlong,bool=FALSE,-long*=NULL);
@ s "get-text!" : void GetTextBang(wmzstring/makeNoCopyString[x0.x2+x3],nnlong,nnlong,nnlong); : : /gtSTRINGENOUGH[METHODNAME("snip%","get-text!")]
@ s "copy" : wxSnip! Copy();
@ s "size-cache-invalid" : void SizeCacheInvalid();

@ s "on-event" : void OnEvent(wxDC!,double,double,double,double,wxMouseEvent!); : : /CHECKDCOK[0.METHODNAME("snip%","on-event")]
@ s "on-char" : void OnChar(wxDC!,double,double,double,double,wxKeyEvent!); : : /CHECKDCOK[0.METHODNAME("snip%","on-char")]
@ s "adjust-cursor" : wxCursor^ AdjustCursor(wxDC!,double,double,double,double,wxMouseEvent!); : : /CHECKDCOK[0.METHODNAME("snip%","adjust-cursor")]
@ s "own-caret" : void OwnCaret(bool); 
@ s "blink-caret" : void BlinkCaret(wxDC!,double,double); 

@ s "do-edit-operation" : void DoEdit(SYM[editOp],bool=TRUE,long=0);
@ s "can-do-edit-operation?" : bool CanEdit(SYM[editOp],bool=TRUE);
@ s "match?" : bool Match(wxSnip!);

@ s "write" : void Write(wxMediaStreamOut!);

@ s "resize" : bool Resize(nndouble, nndouble);

@ s "set-admin" : void SetAdmin(wxSnipAdmin^);

@ s "get-num-scroll-steps" : nnlong GetNumScrollSteps()
@ s "find-scroll-step" :  nnlong FindScrollStep(double)
@ s "get-scroll-step-offset" : nndouble GetScrollStepOffset(nnlong)

@ s "set-unmodified" : void SetUnmodified()
