Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /view.rb

Parent Directory Parent Directory | Revision Log Revision Log


Revision 17 - (hide annotations) (download)
Sat Apr 7 15:02:50 2007 UTC (16 years, 11 months ago) by bluedwarf
File size: 3860 byte(s)
Changes the names of the system specific classes.

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     @mini_window = Edmaru::SYSTEM_MINI_WINDOW.new(self)
48 bluedwarf 15
49     init_windows
50    
51     element = ModeLineElement.new("buffer-name", -1, 1, 1, "*scratch*")
52     main_window.modeline.add_element(element)
53     main_window.modeline.show_element("buffer-name")
54 bluedwarf 1 end
55    
56     #The system specific initialization for this view.
57     #
58     #=== Warning
59 bluedwarf 5 #This method *SHOULD* be overrided in derived classes.
60 bluedwarf 3 def init_ui
61 bluedwarf 1 end
62    
63 bluedwarf 15 #The system specific initialization for windows that belongs to this view.
64     #
65     #=== Warning
66     #This method *SHOULD* be overrided in derived classes.
67     def init_windows
68     end
69    
70 bluedwarf 7 #The event manager linked to this view.
71     #
72     #=== Warning
73     #This method *MUST* *NOT* be overrided in derived classes.
74     def event_manager
75     @event_manager
76     end
77    
78 bluedwarf 6 #Total column size allocated for this view.
79     #
80     #=== Warning
81     #This method *SHOULD* be overrided in drived classes.
82     def allocated_column
83     0
84     end
85    
86     #Total numbe of lines allocated for this view.
87     #
88     #=== Warning
89     #This method *SHOULD* be overrided in drived classes.
90     def allocated_line
91     0
92     end
93    
94 bluedwarf 4 #The mini window displayed in the bottom of the screen.
95     #
96     #=== Warning
97     #This method *MUST* *NOT* be overrided in derived classes.
98     def mini_window
99     @mini_window
100     end
101    
102     #The main window.
103     #
104     #=== Warning
105     #This method *MUST* *NOT* be overrided in derived classes.
106     def main_window
107     @windows[0]
108     end
109    
110 bluedwarf 1 #Main loop to catch all events.
111     #
112     #=== Warning
113     #This method *SHOULD* be overrided in derived classes.
114     def main_loop
115     end
116    
117 bluedwarf 3 #Exit the running main loop.
118     #
119     #=== Warning
120     #This method *SHOULD* be overrided in derived classes.
121     #
122     #=== Note
123     #Some UI systems (such as Ncurses) don't exit the main loop as
124     #soon as this method is called.
125     def exit_main_loop
126     end
127    
128 bluedwarf 1 #Beep once.
129     #
130     #=== Warning
131     #This method *SHOULD* be overrided in derived classes.
132     def beep
133     false
134     end
135    
136     #Terminate this view instance.
137     #
138     #=== Warning
139 bluedwarf 7 #This method *MUST* *NOT* be overrided in derived classes.
140 bluedwarf 1 def terminate
141 bluedwarf 7 @windows.each{ |window|
142     window.terminate
143     }
144     @mini_window.terminate
145    
146     terminate_ui
147 bluedwarf 1 end
148 bluedwarf 7
149     #Free system specifiec resources.
150     #
151     #=== Warning
152     #This method *SHOULD* be overrided in derived classes.
153     def terminate_ui
154     end
155 bluedwarf 1 end
156     end

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