Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /view.rb

Parent Directory Parent Directory | Revision Log Revision Log


Revision 20 - (hide annotations) (download)
Sun Apr 8 18:25:08 2007 UTC (16 years, 11 months ago) by bluedwarf
File size: 3934 byte(s)
New configuration system.

1 bluedwarf 12 # view.rb: the module definition of Edmaru::View.
2 bluedwarf 10 #
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 bluedwarf 1
20 bluedwarf 4 require "event_manager.rb"
21     require "window.rb"
22    
23 bluedwarf 1 module Edmaru
24    
25     #Abstract class to implement system specific view.
26     module View
27    
28 bluedwarf 6 #Construct a view instance.
29 bluedwarf 1 #
30     #=== Warning
31     #This method *MUST* *NOT* be overrided in derived classes.
32     #
33 bluedwarf 2 #=== Argument
34 bluedwarf 20 #_config_ :: An instance of Edmaru::ConfigurationManager.
35     #_event_manager_ :: An instance of Edmaru::EventManager to handle all events raised from this view.
36     #_buffer_manager_ :: An instance of Edmaru::BufferManager.
37 bluedwarf 2 #
38 bluedwarf 1 #=== Return
39     #An initialized instance of View.
40 bluedwarf 20 def initialize(config, event_manager, buffer_manager)
41     @config = config
42 bluedwarf 2 @event_manager = event_manager
43 bluedwarf 9 @buffer_manager = buffer_manager
44 bluedwarf 6
45     init_ui
46    
47 bluedwarf 4 @windows = Array.new
48 bluedwarf 20 @windows.push(Edmaru::SYSTEM_WINDOW.new(self, @config))
49 bluedwarf 18 @focused_window = @windows[0]
50 bluedwarf 20 @mini_window = Edmaru::SYSTEM_MINI_WINDOW.new(self, @config)
51 bluedwarf 15
52     init_windows
53    
54     element = ModeLineElement.new("buffer-name", -1, 1, 1, "*scratch*")
55 bluedwarf 18 @windows[0].modeline.add_element(element)
56     @windows[0].modeline.show_element("buffer-name")
57 bluedwarf 1 end
58    
59     #The system specific initialization for this view.
60     #
61     #=== Warning
62 bluedwarf 5 #This method *SHOULD* be overrided in derived classes.
63 bluedwarf 3 def init_ui
64 bluedwarf 1 end
65    
66 bluedwarf 15 #The system specific initialization for windows that belongs to this view.
67     #
68     #=== Warning
69     #This method *SHOULD* be overrided in derived classes.
70     def init_windows
71     end
72    
73 bluedwarf 7 #The event manager linked to this view.
74     #
75     #=== Warning
76     #This method *MUST* *NOT* be overrided in derived classes.
77     def event_manager
78     @event_manager
79     end
80    
81 bluedwarf 18 #The mini window displayed in the bottom of the screen.
82 bluedwarf 6 #
83     #=== Warning
84 bluedwarf 18 #This method *MUST* *NOT* be overrided in derived classes.
85     def mini_window
86     @mini_window
87 bluedwarf 6 end
88    
89 bluedwarf 18 #The focused window.
90 bluedwarf 6 #
91     #=== Warning
92 bluedwarf 4 #This method *MUST* *NOT* be overrided in derived classes.
93 bluedwarf 18 def focused_window
94     @focused_window
95 bluedwarf 4 end
96    
97 bluedwarf 18
98     #Cause the specfieid window have focus.
99 bluedwarf 4 #
100     #=== Warning
101     #This method *MUST* *NOT* be overrided in derived classes.
102 bluedwarf 18 def focused_window=(window)
103     @focused_window = window
104 bluedwarf 4 end
105    
106 bluedwarf 1 #Main loop to catch all events.
107     #
108     #=== Warning
109     #This method *SHOULD* be overrided in derived classes.
110     def main_loop
111     end
112    
113 bluedwarf 3 #Exit the running main loop.
114     #
115     #=== Warning
116     #This method *SHOULD* be overrided in derived classes.
117     #
118     #=== Note
119     #Some UI systems (such as Ncurses) don't exit the main loop as
120     #soon as this method is called.
121     def exit_main_loop
122     end
123    
124 bluedwarf 1 #Beep once.
125     #
126     #=== Warning
127     #This method *SHOULD* be overrided in derived classes.
128     def beep
129     false
130     end
131    
132     #Terminate this view instance.
133     #
134     #=== Warning
135 bluedwarf 7 #This method *MUST* *NOT* be overrided in derived classes.
136 bluedwarf 1 def terminate
137 bluedwarf 7 @windows.each{ |window|
138     window.terminate
139     }
140     @mini_window.terminate
141    
142     terminate_ui
143 bluedwarf 1 end
144 bluedwarf 7
145     #Free system specifiec resources.
146     #
147     #=== Warning
148     #This method *SHOULD* be overrided in derived classes.
149     def terminate_ui
150     end
151 bluedwarf 1 end
152     end

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