widgets/button/widget.ss
#lang scheme

(require "../../mred-plugin.ss"
         "../../default-values.ss"
         scheme/gui/base)

(make-plugin
 [type 'button]
 [tooltip "Button"]
 [button-group "Controls"]
 [widget-class button%]
 [parent-class container-classes]
 [necessary '(label parent callback)] ; necessary properties
 [options '(id callback)]
 ( ; widget properties
  [label (label-bitmap-values "Button")]
  ;[parent #f] ; NO! do NOT use the parent property!
  [callback (prop:code (lambda (button control-event) (void)))]
  ; optional
  [style (prop:some-of '(border deleted) '())]
  [font (font-values)]
  [enabled #t]
  [vert-margin 2]
  [horiz-margin 2]
  [min-width 0]
  [min-height 0]
  [stretchable-width #f]
  [stretchable-height #f]
  ))