File: rep-ui

package info (click to toggle)
rep-gtk 0.15-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 728 kB
  • ctags: 349
  • sloc: ansic: 3,577; sh: 2,430; lisp: 1,102; makefile: 159
file content (59 lines) | stat: -rwxr-xr-x 1,381 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/sh
exec rep "$0" "$@"
!#

(require 'gtk)
(require 'libglade)

(defvar xml nil)

(defun output (data)
  (let
      ((text-widget (glade-xml-get-widget xml "text1")))
    (when (integerp data)
      (setq data (make-string 1 data)))
    (gtk-text-insert text-widget nil nil nil data (length data))))

(defun entry-key-press (widget event)
  (when (string= (gdk-event-string event) "\r")
    ;; RET
    (let
	((input (gtk-entry-get-text widget))
	 error result string)
      (output (format nil "\n%s\n" input))
      (setq result (condition-case data
		       (let
			   ((standard-output output))
			 (eval (read-from-string input)))
		     (error
		      (setq error t)
		      data)))
      (let
	  ((print-escape t))
	(setq string (format nil "%s %S\n"
			     (if error "error-->" "  =>") result)))
      (output string)
      (gtk-entry-set-text widget ""))))

(defun window-closed (widget)
  (gtk-main-quit))

(setq xml (or (glade-xml-new
	       (local-file-name
		(expand-file-name "./rep-ui.glade"
				  (file-name-directory load-filename))))
	      (error "something bad happened")))

;; focus the entry
(let
    ((entry (glade-xml-get-widget xml "entry1")))
  (gtk-widget-grab-focus entry));

(output (format nil "[ rep %s -- %s ]\n\n" rep-version rep-build-id))

(glade-xml-signal-autoconnect xml)
(gtk-main)

;; Local variables:
;; major-mode: lisp-mode
;; End: