Guest User

Untitled

a guest
May 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. defgeneric optional-arg-form (input &key gensym-name))
  2. (defmethod optional-arg-form ((input (eql nil)) &key (gensym-name "G"))
  3. `(,(gensym gensym-name) t))
  4. (defmethod optional-arg-form ((input symbol) &key (gensym-name "G"))
  5. `(,(gensym gensym-name) (eql ,input)))
  6. (defmethod optional-arg-form ((input list) &key (gensym-name "G"))
  7. (declare (ignore gensym-name))
  8. input)
  9.  
  10. (defmacro define-key-down-event ((key &optional state &rest keys) &body body)
  11. `(defmethod handle-key-down-event
  12. (,(optional-arg-form key :gensym-name "KEY-")
  13. ,(optional-arg-form state :gensym-name "STATE-") &key ,@keys)
  14. ,@body))
Add Comment
Please, Sign In to add comment