-;; Menu bar support.
-(if f90-xemacs-flag
- (defvar f90-xemacs-menu
- '("F90"
- ["Indent Subprogram" f90-indent-subprogram t]
- ["Mark Subprogram" f90-mark-subprogram t]
- ["Beginning of Subprogram" f90-beginning-of-subprogram t]
- ["End of Subprogram" f90-end-of-subprogram t]
- "-----"
- ["(Un)Comment Region" f90-comment-region t]
- ["Indent Region" indent-region t]
- ["Fill Region" f90-fill-region t]
- "-----"
- ["Break Line at Point" f90-break-line t]
- ["Join with Next Line" f90-join-lines t]
- ["Insert Newline" newline t]
- ["Insert Block End" f90-insert-end t]
- "-----"
- ["Upcase Keywords (buffer)" f90-upcase-keywords t]
- ["Upcase Keywords (region)" f90-upcase-region-keywords t]
- ["Capitalize Keywords (buffer)" f90-capitalize-keywords t]
- ["Capitalize Keywords (region)" f90-capitalize-region-keywords t]
- ["Downcase Keywords (buffer)" f90-downcase-keywords t]
- ["Downcase Keywords (region)" f90-downcase-region-keywords t]
- "-----"
- ["Toggle abbrev-mode" abbrev-mode t]
- ["Toggle auto-fill" auto-fill-mode t])
- "XEmacs menu for F90 mode.")
-
- ;; Emacs.
- (defvar f90-menu-bar-menu
- (let ((map (make-sparse-keymap "F90")))
- (define-key map [f90-imenu-menu]
- '("Add imenu Menu" . f90-add-imenu-menu))
- (define-key map [abbrev-mode]
- '("Toggle abbrev-mode" . abbrev-mode))
- (define-key map [auto-fill-mode]
- '("Toggle auto-fill" . auto-fill-mode))
- (define-key map [line1] '("--"))
- (define-key map [f90-change-case-menu]
- '("Change Keyword Case" . f90-change-case-menu))
- (define-key map [f90-font-lock-menu]
- '("Highlighting" . f90-font-lock-menu))
- (define-key map [line2] '("--"))
- (define-key map [f90-insert-end]
- '("Insert Block End" . f90-insert-end))
- (define-key map [f90-join-lines]
- '("Join with Next Line" . f90-join-lines))
- (define-key map [f90-break-line]
- '("Break Line at Point" . f90-break-line))
- (define-key map [line3] '("--"))
- (define-key map [f90-fill-region]
- '("Fill Region" . f90-fill-region))
- (put 'f90-fill-region 'menu-enable 'mark-active)
- (define-key map [indent-region]
- '("Indent Region" . indent-region))
- (define-key map [f90-comment-region]
- '("(Un)Comment Region" . f90-comment-region))
- (put 'f90-comment-region 'menu-enable 'mark-active)
- (define-key map [line4] '("--"))
- (define-key map [f90-end-of-subprogram]
- '("End of Subprogram" . f90-end-of-subprogram))
- (define-key map [f90-beginning-of-subprogram]
- '("Beginning of Subprogram" . f90-beginning-of-subprogram))
- (define-key map [f90-mark-subprogram]
- '("Mark Subprogram" . f90-mark-subprogram))
- (define-key map [f90-indent-subprogram]
- '("Indent Subprogram" . f90-indent-subprogram))
- map)
- "F90 mode top-level menu bar menu.")
-
- (define-key f90-mode-map [menu-bar f90-menu]
- (cons "F90" f90-menu-bar-menu))
-
- (defvar f90-change-case-menu
- (let ((map (make-sparse-keymap "Change Keyword Case")))
- (define-key map [dkr]
- '("Downcase Keywords (region)" . f90-downcase-region-keywords))
- (put 'f90-downcase-region-keywords 'menu-enable 'mark-active)
- (define-key map [ckr]
- '("Capitalize Keywords (region)" . f90-capitalize-region-keywords))
- (put 'f90-capitalize-region-keywords 'menu-enable 'mark-active)
- (define-key map [ukr]
- '("Upcase Keywords (region)" . f90-upcase-region-keywords))
- (put 'f90-upcase-region-keywords 'menu-enable 'mark-active)
- (define-key map [line] '("--"))
- (define-key map [dkb]
- '("Downcase Keywords (buffer)" . f90-downcase-keywords))
- (define-key map [ckb]
- '("Capitalize Keywords (buffer)" . f90-capitalize-keywords))
- (define-key map [ukb]
- '("Upcase Keywords (buffer)" . f90-upcase-keywords))
- map)
- "Submenu for change of case.")
-
- (defalias 'f90-change-case-menu f90-change-case-menu)
-
- ;; Font-lock-menu and function calls.
- (defalias 'f90-font-lock-on 'font-lock-mode)
- (put 'f90-font-lock-on 'menu-enable 'font-lock-mode)
- (put 'f90-font-lock-on 'menu-alias t)
-
- (defalias 'f90-font-lock-off 'font-lock-mode)
- (put 'f90-font-lock-off 'menu-enable '(not font-lock-mode))
- (put 'f90-font-lock-off 'menu-alias t)
-
- (defun f90-font-lock-1 ()
- "Set `font-lock-keywords' to `f90-font-lock-keywords-1'."
- (interactive)
- (font-lock-mode 1)
- (setq font-lock-keywords f90-font-lock-keywords-1)
- (font-lock-fontify-buffer))
-
- (defun f90-font-lock-2 ()
- "Set `font-lock-keywords' to `f90-font-lock-keywords-2'."
- (interactive)
- (font-lock-mode 1)
- (setq font-lock-keywords f90-font-lock-keywords-2)
- (font-lock-fontify-buffer))
-
- (defun f90-font-lock-3 ()
- "Set `font-lock-keywords' to `f90-font-lock-keywords-3'."
- (interactive)
- (font-lock-mode 1)
- (setq font-lock-keywords f90-font-lock-keywords-3)
- (font-lock-fontify-buffer))
-
- (defun f90-font-lock-4 ()
- "Set `font-lock-keywords' to `f90-font-lock-keywords-4'."
- (interactive)
- (font-lock-mode 1)
- (setq font-lock-keywords f90-font-lock-keywords-4)
- (font-lock-fontify-buffer))
-
- (defvar f90-font-lock-menu
- (let ((map (make-sparse-keymap "f90-font-lock-menu")))
- (define-key map [h4]
- '("Maximum highlighting (level 4)" . f90-font-lock-4))
- (define-key map [h3]
- '("Heavy highlighting (level 3)" . f90-font-lock-3))
- (define-key map [h2]
- '("Default highlighting (level 2)" . f90-font-lock-2))
- (define-key map [h1]
- '("Light highlighting (level 1)" . f90-font-lock-1))
- (define-key map [line] '("--"))
- (define-key map [floff]
- '("Turn off font-lock-mode" . f90-font-lock-on))
- (define-key map [flon]
- '("Turn on font-lock-mode" . f90-font-lock-off))
- map)
- "Submenu for highlighting using font-lock-mode.")
-
- (defalias 'f90-font-lock-menu f90-font-lock-menu)
-
- )