gui/gui-lib/mred/private/wx/win32/check-box.rkt
2014-12-02 02:33:07 -05:00

36 lines
821 B
Racket

#lang racket/base
(require racket/class
"../../syntax.rkt"
"button.rkt"
"item.rkt"
"utils.rkt"
"const.rkt")
(provide
(protect-out check-box%))
(define BM_GETCHECK #x00F0)
(define BM_SETCHECK #x00F1)
(defclass check-box% base-button%
(inherit auto-size
get-hwnd)
(super-new)
(define/override (get-flags) (bitwise-ior BS_AUTOCHECKBOX))
(define/override (get-button-background)
(GetSysColor COLOR_BTNFACE))
(define/override (auto-size-button font label)
(auto-size font label 0 0 20 0))
(define/override (size->screen v) (->screen v))
(define/public (set-value v)
(void (SendMessageW (get-hwnd) BM_SETCHECK (if v 1 0) 0)))
(define/public (get-value)
(positive? (bitwise-and #x3 (SendMessageW (get-hwnd) BM_GETCHECK 0 0)))))