1
1
#| nokogiri-widgets/frame-style.jl -- theme chooser widget
3
$Id: frame-style.jl,v 1.7 2000/11/27 18:13:51 jsh Exp $
3
$Id: frame-style.jl,v 1.9 2003/01/12 20:30:49 jsh Exp $
5
5
Copyright (C) 2000 John Harper <john@dcs.warwick.ac.uk>
36
37
(hbox (gtk-hbox-new nil 0))
37
38
(combo (gtk-combo-new))
38
39
(doc-label (gtk-label-new doc))
39
(readme-text (gtk-text-new))
40
(readme-text-view (gtk-text-view-new))
40
41
(readme-scroller (gtk-scrolled-window-new))
41
(value (car options)))
46
(define (timer-callback)
48
(setq value (intern (gtk-entry-get-text (gtk-combo-entry combo))))
49
;; ugh. the gtk2 combo seems pretty fucked; this
50
;; didn't used to be necessary
51
(when (and (not (eq value last-value)) (memq value options))
52
(setq last-value value)
53
(update-readme value readme-text-view path)
54
(call-callback changed-callback)))
43
56
(gtk-box-set-spacing hbox box-spacing)
44
57
(gtk-box-set-spacing vbox box-spacing)
45
(gtk-container-add readme-scroller readme-text)
58
(gtk-container-add readme-scroller readme-text-view)
46
59
(gtk-box-pack-start hbox doc-label)
47
60
(gtk-box-pack-start hbox combo t t)
48
61
(gtk-box-pack-start vbox readme-scroller t t)
49
62
(gtk-box-pack-start vbox hbox nil nil)
50
63
(gtk-label-set-justify doc-label 'left)
51
;;(gtk-text-set-word-wrap readme-text 1)
52
(gtk-editable-set-editable readme-text nil)
53
(gtk-entry-set-editable (gtk-combo-entry combo) nil)
64
;;(gtk-text-view-set-wrap-mode readme-text-view 'word)
65
(gtk-text-view-set-editable readme-text-view nil)
66
(gtk-editable-set-editable (gtk-combo-entry combo) nil)
54
67
(gtk-scrolled-window-set-policy readme-scroller 'automatic 'automatic)
56
69
(gtk-combo-set-popdown-strings combo (mapcar symbol-name options))
58
71
(gtk-entry-set-text (gtk-combo-entry combo) (symbol-name value)))
60
(gtk-signal-connect (gtk-combo-entry combo) "changed"
62
(setq value (intern (gtk-entry-get-text
63
(gtk-combo-entry combo))))
64
(update-readme value readme-text path)
65
(call-callback changed-callback)))
73
(g-signal-connect (gtk-combo-entry combo) "changed"
77
(setq timer (make-timer timer-callback nil 200)))))
67
(update-readme value readme-text path)
79
(update-readme value readme-text-view path)
68
80
(gtk-widget-show-all vbox)
80
92
(define-widget-type 'frame-style make-frame-style-item)
81
93
(widget-accepts-doc-string 'frame-style)
83
(define (gtk-text-set widget string)
84
(gtk-text-set-point widget 0)
85
(gtk-text-forward-delete widget (gtk-text-get-length widget))
86
(gtk-text-insert widget nil nil nil string (length string))
87
(gtk-text-set-point widget 0))
95
(define (text-view-set view string)
96
(let ((buffer (gtk-text-view-get-buffer view))
97
(iter (gtk-text-iter-new)))
98
(gtk-text-buffer-set-text buffer string (length string))
99
(gtk-text-buffer-get-start-iter buffer iter)
100
(gtk-text-buffer-place-cursor buffer iter)))
89
(define (update-readme value text-widget theme-path)
102
(define (update-readme value text-view theme-path)
91
104
(let ((theme (symbol-name value)))
92
105
(mapc (lambda (dir)
113
126
(setq text (get-output-stream-string text))
114
127
(when (string-match "\\s+$" text)
115
128
(setq text (substring text 0 (match-start))))
116
(gtk-text-set text-widget text))
129
(text-view-set text-view text))
117
130
(close-file file)))
118
(gtk-text-set text-widget ""))
131
(text-view-set text-view ""))
119
132
(throw 'out t))))
121
(gtk-text-set text-widget "")))))
134
(text-view-set text-view "")))))