;;
;; .happyemacs
;;
;;
;; This file stores the default user preferences.  Copy it into your
;; home directory in order to customize the bindings and behavior.


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; key bindings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(global-set-key [f1] 'tuareg-eval-buffer)
(global-set-key [f2] 'autoh-header-maj)
(global-set-key [f3] 'call-verif)
(global-set-key [f4] 'call-verif-rep)
(global-set-key [f5]  (lambda ()
			(interactive)
			(switch-to-buffer-other-window( other-buffer))))
(global-set-key [f6] (lambda ()
		       (interactive)
		       (switch-to-buffer (other-buffer))))
(global-set-key [f7] 'speedbar)
(global-set-key [f8] 'compile)
(global-set-key [f9] 'reindent-file)
(global-set-key [f10] 'reindent-rep)
(global-set-key [f11] 'insert-std-vertical-comments)
(global-set-key [f12] 'kill-this-buffer)

(global-set-key [end] 'end-of-line)
(global-set-key [home] 'beginning-of-line)

;;copy region...(selected with ctrl_espace)
;;scrolling horizontal
(global-set-key [?\C-\;] 'copy-region-as-kill)
;;(global-set-key "\C->" 'scroll-left)
;;(global-set-key "\C-<" 'scroll-right)
(global-set-key "o" 'toggle-slow-scroll-mode)
(global-set-key [?\C-,] 'scroll-up-slowly)
(global-set-key [?\C-.] 'scroll-down-slowly)
(global-set-key "\C-cc" 'compile)
(global-set-key "\C-ck" 'compile)
(global-set-key "\C-ch" 'update-std-header)
(global-set-key "\C-ct" 'do_insert_time)
(global-set-key "\C-cH" 'std-file-header)
(global-set-key "\C-cb" 'switch-to-buffer-header)

;;touche del et suppr
(global-set-key [delete] 'delete-char)
;;(global-set-key "\C-h" 'delete-backward-char)
(global-set-key "\C-cg" 'goto-line)
(global-set-key [(control c) r] 'revert-buffer)

;;calculator
(global-set-key [(control return)] 'calculator)

;;redo
(load "/usr/share/emacs/site-lisp/happycoders-emacs/redo.el")
(global-set-key [?\C--] 'redo)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Quit this buffer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun quit-this-buffer ()
  "Exit current buffer by selecting some other buffer."
  (interactive)
  (switch-to-buffer (prog1 (other-buffer (current-buffer))
		      (bury-buffer (current-buffer)))))

(global-set-key "\C-cq" 'quit-this-buffer)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; colors
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(set-background-color "black")
(set-foreground-color "white")
(set-cursor-color "Steelblue")



;; Disable toolbar (tool-bar mode) and set
;; automatic zone-mode (screensaver)
(when (>= emacs-major-version 21)
  (tool-bar-mode -1)
  (blink-cursor-mode nil)
  (require 'zone)
  (setq zone-idle 300)
  (zone-when-idle 300))

;;-> backspace on a selected region -> deletion
(delete-selection-mode t)

;;scroll line per line (1 line instead of 3)
(setq scroll-step 1)

;;display line and column number in toolbar
(setq line-number-mode t)
(setq column-number-mode t)

;;show_paren mode
(show-paren-mode t)

;; don't make backup files
;(setq make-backup-files nil)

;; display clock
(display-time)

;; Use visible beel instead of beep
(setq visible-bell 't)

;;(dysplay question in 'y/n' instead of 'yes/no')
(fset 'yes-or-no-p 'y-or-n-p)

;; Save all my backup files in a specific directory
;(defun make-backup-file-name (file)
; (concat "~/.autosave/" (file-name-nondirectory file)))

;; Change startup message...
(defcustom hinitial-scratch-message (purecopy "\
;; Welcome on Happycoders Emacs Config
;;
;;
;;
;;
;; If you are looking for emacs help, look at the emacs wiki :
;; http://www.emacswiki.org/cgi-bin/wiki.pl
;;
;; Main Configuration Keys bindings:
;; [F1]		Tuareg - Eval buffer
;; [F2]		[Old binding, do not use]
;; [F3]		[Old binding, do not use]
;; [F4]		[Old binding, do not use]
;; [F5]		Switch other buffer (2 windows)
;; [F6]		Switch other buffer
;; [F7]		SpeedBar
;; [F8]		Compile
;; [F9]		Reindent current-file
;; [F10]	Reindent a Directory
;; [F11]	Add vertical Comment
;; [F12]	Close current buffer
;; C-c g	Goto-line
;; C-c q	Quit current buffer
;; C-enter	Calculator
;; C--		undo
;; C-c r	revert buffer
;; M-x dos2unix	convert a Dos format to unix format
;; M-x setget to create {set,get}_var function (on the line)
;;	      set a //setget commentary to specify where to put the
;;	      the function, else, it would go after the first public:
;; M-x counter-reinitialize to give the parameters for counter
;; M-x counter-insert to use the counter
;;
;; Copyright (c) 2001-2004 - Happycoders
")
  "Initial message displayed in *scratch* buffer at startup.
If this is nil, no message will be displayed."
  :type 'string)

(with-current-buffer (get-buffer "*scratch*")
  (erase-buffer)
  (when hinitial-scratch-message
    (insert hinitial-scratch-message))
  (set-buffer-modified-p nil))

;; load .myemacs
(if (file-readable-p "~/.myemacs")
    (load-file "~/.myemacs")
  )
