{"size": 1527, "ext": "scrbl", "max_stars_repo_path": "gui-doc/scribblings/framework/mode.scrbl", "max_stars_repo_name": "jjsimpso/gui", "max_stars_repo_stars_event_min_datetime": "2015-03-17T22:11:52.000Z", "max_stars_repo_stars_event_max_datetime": "2022-03-12T15:09:34.000Z", "max_issues_repo_path": "gui-doc/scribblings/framework/mode.scrbl", "max_issues_repo_name": "jjsimpso/gui", "max_issues_repo_issues_event_min_datetime": "2015-01-09T15:53:25.000Z", "max_issues_repo_issues_event_max_datetime": "2022-03-31T16:21:29.000Z", "max_forks_repo_path": "gui-doc/scribblings/framework/mode.scrbl", "max_forks_repo_name": "jjsimpso/gui", "max_forks_repo_forks_event_min_datetime": "2015-01-08T13:03:07.000Z", "max_forks_repo_forks_event_max_datetime": "2022-03-26T21:49:09.000Z"}
{"max_stars_count": 65, "max_issues_count": 231, "max_forks_count": 89, "avg_line_length": 33.1956521739, "max_line_length": 78, "alphanum_fraction": 0.5959397511}
#lang scribble/doc
@(require scribble/manual scribble/extract
          (for-label framework scheme/gui)
          (for-syntax "mode-helpers.rkt"))
@title{Mode}

@(begin
(require framework/private/mode (for-syntax scheme/base))

(define-syntax (docs stx)
  (syntax-case stx ()
   [(_ spec ...)
   #`(begin
    @definterface[mode:surrogate-text<%> ()]{
      @defmethod[(on-enable-surrogate [txt (is-a?/c text%)]) any]{
        Called by @method[mode:host-text<%> set-surrogate] to notify the
        surrogate that it has just become active.
      }
      @defmethod[(on-disable-surrogate [txt (is-a?/c text%)]) any]{
        Called by @method[mode:host-text<%> set-surrogate] to notify the
        surrogate that it has just been disabled.
      }
    }
    @defclass[mode:surrogate-text% object% (mode:surrogate-text<%>)]{
      @#,@(map spec->surrogate-method (syntax->list #'(spec ...)))
    }
    @definterface[mode:host-text<%> ()]{
      @defmethod[(get-surrogate)
                 (or/c false/c (is-a?/c mode:surrogate-text<%>))]{
       Returns the currently active surrogate.
      }
      @defmethod[(set-surrogate
                  [surrogate (or/c false/c (is-a?/c mode:surrogate-text<%>))])
                 void?]{
        Sets the current surrogate to @racket[surrogate].
      }
    }
    @defmixin[mode:host-text-mixin () (mode:host-text<%>)]{
      @#,@(map spec->host-method (syntax->list #'(spec ...)))
    })]))

(surrogate-methods docs)
)

@(include-previously-extracted "main-extracts.rkt" #rx"^mode:")
