Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /view.rb

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18 - (hide 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 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     #_event_manager_ :: An instance of Edmaru::EventManager to handler
35     #all events raised from this view.
36     #
37 bluedwarf 1 #=== Return
38     #An initialized instance of View.
39 bluedwarf 9 def initialize(event_manager, buffer_manager)
40 bluedwarf 2 @event_manager = event_manager
41 bluedwarf 9 @buffer_manager = buffer_manager
42 bluedwarf 6
43     init_ui
44    
45 bluedwarf 4 @windows = Array.new
46 bluedwarf 17 @windows.push(Edmaru::SYSTEM_WINDOW.new(self))
47 bluedwarf 18 @focused_window = @windows[0]
48 bluedwarf 17 @mini_window = Edmaru::SYSTEM_MINI_WINDOW.new(self)
49 bluedwarf 15
50     init_windows
51    
52     element = ModeLineElement.new("buffer-name", -1, 1, 1, "*scratch*")
53 bluedwarf 18 @windows[0].modeline.add_element(element)
54     @windows[0].modeline.show_element("buffer-name")
55 bluedwarf 1 end
56    
57     #The system specific initialization for this view.
58     #
59     #=== Warning
60 bluedwarf 5 #This method *SHOULD* be overrided in derived classes.
61 bluedwarf 3 def init_ui
62 bluedwarf 1 end
63    
64 bluedwarf 15 #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 bluedwarf 7 #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 bluedwarf 18 #The mini window displayed in the bottom of the screen.
80 bluedwarf 6 #
81     #=== Warning
82 bluedwarf 18 #This method *MUST* *NOT* be overrided in derived classes.
83     def mini_window
84     @mini_window
85 bluedwarf 6 end
86    
87 bluedwarf 18 #The focused window.
88 bluedwarf 6 #
89     #=== Warning
90 bluedwarf 4 #This method *MUST* *NOT* be overrided in derived classes.
91 bluedwarf 18 def focused_window
92     @focused_window
93 bluedwarf 4 end
94    
95 bluedwarf 18
96     #Cause the specfieid window have focus.
97 bluedwarf 4 #
98     #=== Warning
99     #This method *MUST* *NOT* be overrided in derived classes.
100 bluedwarf 18 def focused_window=(window)
101     @focused_window = window
102 bluedwarf 4 end
103    
104 bluedwarf 1 #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 bluedwarf 3 #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 bluedwarf 1 #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 bluedwarf 7 #This method *MUST* *NOT* be overrided in derived classes.
134 bluedwarf 1 def terminate
135 bluedwarf 7 @windows.each{ |window|
136     window.terminate
137     }
138     @mini_window.terminate
139    
140     terminate_ui
141 bluedwarf 1 end
142 bluedwarf 7
143     #Free system specifiec resources.
144     #
145     #=== Warning
146     #This method *SHOULD* be overrided in derived classes.
147     def terminate_ui
148     end
149 bluedwarf 1 end
150     end

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