FG42/src/lib/menu.el

60 lines
2.7 KiB
EmacsLisp

;; Shitty - My personal emacs IDE configuration
;; Copyright (C) 2010 Sameer Rahmani <lxsameer@gnu.org>
;;
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
(defun cmenu () "draw c project menu"
;; C/C++ submenus
(define-key global-map [Ctrl-x p c k ] 'kmodule)
(define-key global-map [menu-bar file new-proj cproj kmodule] '("Kernel Module" . kmodule))
(define-key global-map [menu-bar file new-proj cproj separator2] '("--"))
(define-key global-map [Ctrl-x p c n ] 'make-cpp)
(define-key global-map [menu-bar file new-proj cproj cpp-make] '("Make project (C++)" . make-cpp))
(define-key global-map [Ctrl-x p c m ] 'make-c)
(define-key global-map [menu-bar file new-proj cproj c-make] '("Make project (C)" . make-c))
(define-key global-map [menu-bar file new-proj cproj separator1] '("--"))
(define-key global-map [Ctrl-x p c p ] 'generic-cpp)
(define-key global-map [menu-bar file new-proj cproj cppgeneric] '("Generic project (C++)" . generic-cpp))
(define-key global-map [Ctrl-x p c g] 'generic-c)
(define-key global-map [menu-bar file new-proj cproj cgeneric] '("Generic project (C)" . generic-c))
)
(defun init-menu () "Initializing Shit IDE menu"
(log "Initinalizing Menus . . .")
;; New Project Menu
(define-key-after global-map [menu-bar file new-proj] (cons "New Project" (make-sparse-keymap "new project")) 'new-file)
;; New Project sub menus
(define-key-after global-map [menu-bar file new-proj cproj] (cons "C/C++" (make-sparse-keymap "c-cpp-proj")))
(define-key-after global-map [menu-bar file new-proj pyproj] (cons "Python" (make-sparse-keymap "python-proj")) 'cproj)
(define-key-after global-map [menu-bar file new-proj elproj] (cons "Elisp" (make-sparse-keymap "el-proj")) 'phpproj)
(define-key-after global-map [menu-bar file new-proj jproj] (cons "Java" (make-sparse-keymap "j-proj")) 'elproj)
(define-key-after global-map [menu-bar file new-proj jsproj] (cons "JS" (make-sparse-keymap "js-proj")) 'jproj)
(define-key-after global-map [menu-bar file new-proj phpproj] (cons "PHP" (make-sparse-keymap "php-proj")) 'pyproj)
(cmenu)
(pymenu)
)
(init-menu)