dpaste plugin keymap and menus done

This commit is contained in:
Sameer Rahmani 2011-01-03 14:25:19 +03:30
parent e7967e3b08
commit bb2c767359
1 changed files with 63 additions and 0 deletions

View File

@ -53,3 +53,66 @@ binding for Kuso IDE dpaste plugin"
:type 'boolean
:tag '"dpaste.com plugins")
;; ----------------------------------------------------------------------
;; Functions
;; ----------------------------------------------------------------------
(defun init-keymap ()
"Initialize the keymap for dpaste plugin."
(define-key kuso-dpaste-map (kbd "\C-x p d") 'dpaste-region)
(define-key kuso-dpaste-map (kbd "\C-x p d") 'dpaste-buffer)
)
(defun init-menus ()
"Initialize menu entry for dpaste plugin."
(define-key-after global-map [menu-bar edit sep1] '("--") 'paste-from-menu)
(define-key-after global-map [menu-bar edit dpastereg] '("Dpaste Selected" . dpaste-region) 'sep1)
(define-key-after global-map [menu-bar edit dpastebuf] '("Dpaste Buffer" . dpaste-buffer) 'dpastereg)
(define-key global-map [menu-bar edit sep2] '("--") 'dpastebuf)
)
(defun destruct-menus ()
"Remove menus from menubar"
(global-unset-key [menu-bar edit sep1])
(global-unset-key [menu-bar edit sep2])
(global-unset-key [menu-bar edit dpastereg])
(global-unset-key [menu-bar edit dpastebuf])
)
;; ----------------------------------------------------------------------
;; Minor Modes
;; ----------------------------------------------------------------------
(define-minor-mode kuso-dpaste-mode
"Toggle Kuso dpaste plugin mode.
This mode provide an easy way to dpaste a buffer or a snippet of text in
http://www.dpaste.com/
By marking a region and C-x p d this plugin dpaste the code and put the url
in killring and also message the url. You can also use C-x p f to dpaste
the current buffer."
:lighter nil
:keymap kuso-dpaste-map
:global t
:group 'kuso-group
(if kuso-cplugin-mode
;; kuso-cplugin-mode is not loaded
(let ()
;; before initiazing mode
(run-hooks 'kuso-dpaste-preinit-hook)
(init-keymap)
(init-menus
;; after mode was initialized
(run-hooks 'kuso-dpaste-postinit-hook)
)
;; kuso-mode already loaded
(let ()
;; before deactivating mode
(run-hooks 'kuso-dpaste-prerm-hook)
(destruct-menus)
;; after deactivating mode
(run-hooks 'kuso-dpaste-postrm-hook)
)
)
)