+;; layout
+(setq layout
+ (make-glyph
+ `[layout :descriptor "The Layout"
+ :orientation vertical
+ :justify left
+ :border [string :data "Hello There Mrs"]
+ :items ([layout :orientation horizontal
+ :items (,radio-button1 ,radio-button2)]
+ ,edit-field ,toggle-button ,label ,str)]))
+;(set-glyph-face layout 'gui-element)
+(set-extent-begin-glyph
+ (make-extent (point) (point)) layout)
+
+;; another test layout
+(set-extent-begin-glyph
+ (make-extent (point) (point))
+ (setq layout-2
+ (make-glyph `[layout :descriptor "The Layout"
+ :orientation vertical
+ :items ([progress-gauge :value 0 :width 10 :height 2
+ :descriptor "ok"])])))
+
+(set-glyph-image layout-2 `[layout :descriptor "The Layout"
+ :orientation vertical
+ :items ([progress-gauge :value 4 :width 10 :height 2
+ :descriptor "ok"])])
+(setq test-toggle-widget nil)
+
+(defun test-toggle (widget)
+ (set-extent-begin-glyph
+ (make-extent (point) (point))
+ (make-glyph (vector 'button
+ :descriptor "ok"
+ :style 'toggle
+ :selected `(funcall test-toggle-value
+ ,widget)
+ :callback `(funcall test-toggle-action
+ ,widget)))))
+
+(defun test-toggle-action (widget &optional event)
+ (if widget
+ (message "Widget is t")
+ (message "Widget is nil")))
+
+(defun test-toggle-value (widget)
+ (setq widget (not widget))
+ (not widget))