122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
# File 'lib/textbringer/window.rb', line 122
def self.start
if @@started
raise EditorError, "Already started"
end
Curses.init_screen
Curses.noecho
Curses.raw
Curses.nonl
self.has_colors = Curses.has_colors?
if has_colors?
Curses.start_color
Curses.use_default_colors
load_faces
end
begin
window =
Textbringer::Window.new(Window.lines - 1, Window.columns, 0, 0)
window.buffer = Buffer.new_buffer("*scratch*")
@@list.push(window)
Window.current = window
@@echo_area = Textbringer::EchoArea.new(1, Window.columns,
Window.lines - 1, 0)
Buffer.minibuffer.keymap = MINIBUFFER_LOCAL_MAP
@@echo_area.buffer = Buffer.minibuffer
@@list.push(@@echo_area)
@@started = true
yield
ensure
@@list.each do |win|
win.close
end
@@list.clear
Curses.echo
Curses.noraw
Curses.nl
Curses.close_screen
@@started = false
end
end
|