+(defcustom stgit-show-worktree-mode 'center
+ "This variable controls where the \"Index\" and \"Work tree\"
+will be shown on in the buffer.
+
+It can be set to 'top (above all patches), 'center (show between
+applied and unapplied patches), and 'bottom (below all patches).
+
+See also `stgit-show-worktree'."
+ :type '(radio (const :tag "above all patches (top)" top)
+ (const :tag "between applied and unapplied patches (center)"
+ center)
+ (const :tag "below all patches (bottom)" bottom))
+ :group 'stgit)
+
+(defcustom stgit-default-show-worktree
+ nil
+ "Set to non-nil to by default show the working tree in a new stgit buffer.
+
+This value is used as the default value for `stgit-show-worktree'."
+ :type 'boolean
+ :group 'stgit)
+
+(defvar stgit-show-worktree nil
+ "If nil, inhibit showing work tree and index in the stgit buffer.
+
+See also `stgit-show-worktree-mode'.")
+
+(defvar stgit-show-ignored nil
+ "If nil, inhibit showing files ignored by git.")
+
+(defvar stgit-show-unknown nil
+ "If nil, inhibit showing files not registered with git.")
+
+(defun stgit-toggle-worktree (&optional arg)
+ "Toggle the visibility of the work tree.
+With arg, show the work tree if arg is positive.
+
+Its initial setting is controlled by `stgit-default-show-worktree'.
+
+`stgit-show-worktree-mode' controls where on screen the index and
+work tree will show up."
+ (interactive)
+ (setq stgit-show-worktree
+ (if (numberp arg)
+ (> arg 0)
+ (not stgit-show-worktree)))
+ (stgit-reload))
+
+(defun stgit-toggle-ignored (&optional arg)
+ "Toggle the visibility of files ignored by git in the work
+tree. With ARG, show these files if ARG is positive.
+
+Use \\[stgit-toggle-worktree] to show the work tree."
+ (interactive)
+ (setq stgit-show-ignored
+ (if (numberp arg)
+ (> arg 0)
+ (not stgit-show-ignored)))
+ (stgit-reload))
+
+(defun stgit-toggle-unknown (&optional arg)
+ "Toggle the visibility of files not registered with git in the
+work tree. With ARG, show these files if ARG is positive.
+
+Use \\[stgit-toggle-worktree] to show the work tree."
+ (interactive)
+ (setq stgit-show-unknown
+ (if (numberp arg)
+ (> arg 0)
+ (not stgit-show-unknown)))
+ (stgit-reload))
+