{"size": 1708, "ext": "scrbl", "max_stars_repo_path": "gui-doc/scribblings/framework/menu.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/menu.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/menu.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": 36.3404255319, "max_line_length": 102, "alphanum_fraction": 0.7271662763}
#lang scribble/doc
@(require scribble/manual scribble/extract)
@(require (for-label framework))
@(require (for-label scheme/gui))
@title{Menu}

@definterface[menu:can-restore<%> (selectable-menu-item<%>)]{
  Classes created with this mixin remember their keybindings so the keybindings
  can be removed and then restored.

  @defmethod*[(((restore-keybinding) void?))]{
    Sets the keyboard shortcut to the setting it had when the class was
    created.
  }
}

@defmixin[menu:can-restore-mixin (selectable-menu-item<%>) (menu:can-restore<%>)]{
}

@definterface[menu:can-restore-underscore<%> (labelled-menu-item<%>)]{
  These menus can save and restore the underscores (indicated via the
  @litchar{&} characters in the original labels) in their labels.

  If the preference @racket['framework:menu-bindings] is @racket[#f], calls
  @method[menu:can-restore-underscore<%> erase-underscores] during
  initialization.

  @defmethod*[(((erase-underscores) void?))]{
    Erases the underscores in the label of this menu, but remembers them so
    they can be restores with @method[menu:can-restore-underscore<%>
    restore-underscores].
  }

  @defmethod*[(((restore-underscores) void?))]{
    Restores underscores in the menu's label to their original state.
  }
}

@defmixin[menu:can-restore-underscore-mixin (labelled-menu-item<%>) (menu:can-restore-underscore<%>)]{
}

@defclass[menu:can-restore-menu-item% (menu:can-restore-mixin menu-item%) ()]{}
@defclass[menu:can-restore-checkable-menu-item% (menu:can-restore-mixin checkable-menu-item%) ()]{}
@defclass[menu:can-restore-underscore-menu% (menu:can-restore-underscore-mixin menu%) ()]{}

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