From bb2c767359a9a908387f7357c052573ff6b5cbd8 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Mon, 3 Jan 2011 14:25:19 +0330 Subject: [PATCH] dpaste plugin keymap and menus done --- src/plugins/dpaste.el | 63 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/src/plugins/dpaste.el b/src/plugins/dpaste.el index a5c4030..5fe2bf3 100644 --- a/src/plugins/dpaste.el +++ b/src/plugins/dpaste.el @@ -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) + ) + ) + ) + +