clog/source/clog-navigator.lisp
2021-02-17 13:46:47 -05:00

65 lines
1.9 KiB
Common Lisp

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; CLOG - The Common Lisp Omnificent GUI ;;;;
;;;; (c) 2020-2021 David Botton ;;;;
;;;; License BSD 3 Clause ;;;;
;;;; ;;;;
;;;; clog-navigator.lisp ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(cl:in-package :clog)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Implementation - clog-navigator
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defclass clog-navigator (clog-obj)()
(:documentation "CLOG Navigator Objects encapsulate the navigator."))
;;;;;;;;;;;;;;;;;;;;;;;;;
;; make-clog-navigator ;;
;;;;;;;;;;;;;;;;;;;;;;;;;
(defun make-clog-navigator (connection-id)
"Construct a new clog-navigator. (Private)"
(make-instance 'clog-navigator :connection-id connection-id :html-id "navigator"))
;;;;;;;;;;;;;;;;;;;;;;
;; cookie-enabled-p ;;
;;;;;;;;;;;;;;;;;;;;;;
(defgeneric cookie-enabled-p (clog-navigator)
(:documentation "Get if cookie enabled."))
(defmethod cookie-enabled-p ((obj clog-navigator))
(js-true-p (query obj "cookieEnabled")))
;;;;;;;;;;;;;;
;; language ;;
;;;;;;;;;;;;;;
(defgeneric language (clog-navigator)
(:documentation "Get user prefered language."))
(defmethod language ((obj clog-navigator))
(query obj "language"))
;;;;;;;;;;;;;;;;
;; user-agent ;;
;;;;;;;;;;;;;;;;
(defgeneric user-agent (clog-navigator)
(:documentation "Get user agent."))
(defmethod user-agent ((obj clog-navigator))
(query obj "userAgent"))
;;;;;;;;;;;;
;; vendor ;;
;;;;;;;;;;;;
(defgeneric vendor (clog-navigator)
(:documentation "Get browser vendor."))
(defmethod vendor ((obj clog-navigator))
(query obj "vendor"))