Develop and Download Open Source Software

Browse Subversion Repository

Contents of /view.rb

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18 - (show annotations) (download)
Sun Apr 8 11:00:15 2007 UTC (16 years, 11 months ago) by bluedwarf
File size: 3766 byte(s)
Added some actions.

1 # view.rb: the module definition of Edmaru::View.
2 #
3 # Copyright (C) 2007 Takashi Nakamoto
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License version 2 as
7 # published by the Free Software Foundation.
8 #
9 # This program is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 # 02110-1301 USA.
18 #
19
20 require "event_manager.rb"
21 require "window.rb"
22
23 module Edmaru
24
25 #Abstract class to implement system specific view.
26 module View
27
28 #Construct a view instance.
29 #
30 #=== Warning
31 #This method *MUST* *NOT* be overrided in derived classes.
32 #
33 #=== Argument
34 #_event_manager_ :: An instance of Edmaru::EventManager to handler
35 #all events raised from this view.
36 #
37 #=== Return
38 #An initialized instance of View.
39 def initialize(event_manager, buffer_manager)
40 @event_manager = event_manager
41 @buffer_manager = buffer_manager
42
43 init_ui
44
45 @windows = Array.new
46 @windows.push(Edmaru::SYSTEM_WINDOW.new(self))
47 @focused_window = @windows[0]
48 @mini_window = Edmaru::SYSTEM_MINI_WINDOW.new(self)
49
50 init_windows
51
52 element = ModeLineElement.new("buffer-name", -1, 1, 1, "*scratch*")
53 @windows[0].modeline.add_element(element)
54 @windows[0].modeline.show_element("buffer-name")
55 end
56
57 #The system specific initialization for this view.
58 #
59 #=== Warning
60 #This method *SHOULD* be overrided in derived classes.
61 def init_ui
62 end
63
64 #The system specific initialization for windows that belongs to this view.
65 #
66 #=== Warning
67 #This method *SHOULD* be overrided in derived classes.
68 def init_windows
69 end
70
71 #The event manager linked to this view.
72 #
73 #=== Warning
74 #This method *MUST* *NOT* be overrided in derived classes.
75 def event_manager
76 @event_manager
77 end
78
79 #The mini window displayed in the bottom of the screen.
80 #
81 #=== Warning
82 #This method *MUST* *NOT* be overrided in derived classes.
83 def mini_window
84 @mini_window
85 end
86
87 #The focused window.
88 #
89 #=== Warning
90 #This method *MUST* *NOT* be overrided in derived classes.
91 def focused_window
92 @focused_window
93 end
94
95
96 #Cause the specfieid window have focus.
97 #
98 #=== Warning
99 #This method *MUST* *NOT* be overrided in derived classes.
100 def focused_window=(window)
101 @focused_window = window
102 end
103
104 #Main loop to catch all events.
105 #
106 #=== Warning
107 #This method *SHOULD* be overrided in derived classes.
108 def main_loop
109 end
110
111 #Exit the running main loop.
112 #
113 #=== Warning
114 #This method *SHOULD* be overrided in derived classes.
115 #
116 #=== Note
117 #Some UI systems (such as Ncurses) don't exit the main loop as
118 #soon as this method is called.
119 def exit_main_loop
120 end
121
122 #Beep once.
123 #
124 #=== Warning
125 #This method *SHOULD* be overrided in derived classes.
126 def beep
127 false
128 end
129
130 #Terminate this view instance.
131 #
132 #=== Warning
133 #This method *MUST* *NOT* be overrided in derived classes.
134 def terminate
135 @windows.each{ |window|
136 window.terminate
137 }
138 @mini_window.terminate
139
140 terminate_ui
141 end
142
143 #Free system specifiec resources.
144 #
145 #=== Warning
146 #This method *SHOULD* be overrided in derived classes.
147 def terminate_ui
148 end
149 end
150 end

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26