Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /view.rb

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9 - (hide annotations) (download)
Thu Apr 5 11:26:23 2007 UTC (16 years, 11 months ago) by bluedwarf
File size: 3151 byte(s)
Association buffer with window.

1 bluedwarf 1
2 bluedwarf 4 require "event_manager.rb"
3     require "window.rb"
4    
5 bluedwarf 1 module Edmaru
6    
7     #Abstract class to implement system specific view.
8     module View
9    
10 bluedwarf 6 #Construct a view instance.
11 bluedwarf 1 #
12     #=== Warning
13     #This method *MUST* *NOT* be overrided in derived classes.
14     #
15 bluedwarf 2 #=== Argument
16     #_event_manager_ :: An instance of Edmaru::EventManager to handler
17     #all events raised from this view.
18     #
19 bluedwarf 1 #=== Return
20     #An initialized instance of View.
21 bluedwarf 9 def initialize(event_manager, buffer_manager)
22 bluedwarf 2 @event_manager = event_manager
23 bluedwarf 9 @buffer_manager = buffer_manager
24 bluedwarf 6
25     init_ui
26    
27     #Show default windows.
28 bluedwarf 4 @windows = Array.new
29 bluedwarf 9 @windows.push(Edmaru::window_class.new(self, 0, 0,
30     allocated_column,
31     allocated_line - 1))
32     #Set the default buffer.
33     @windows[0].buffer = @buffer_manager.get("*scratch*")
34     @windows[0].buffer.append("OK")
35    
36 bluedwarf 6 @mini_window =
37     Edmaru::mini_window_class.new(self, 0,
38     allocated_line - 1,
39     allocated_column)
40 bluedwarf 1 end
41    
42     #The system specific initialization for this view.
43     #
44     #=== Warning
45 bluedwarf 5 #This method *SHOULD* be overrided in derived classes.
46 bluedwarf 3 def init_ui
47 bluedwarf 1 end
48    
49 bluedwarf 7 #The event manager linked to this view.
50     #
51     #=== Warning
52     #This method *MUST* *NOT* be overrided in derived classes.
53     def event_manager
54     @event_manager
55     end
56    
57 bluedwarf 6 #Total column size allocated for this view.
58     #
59     #=== Warning
60     #This method *SHOULD* be overrided in drived classes.
61     def allocated_column
62     0
63     end
64    
65     #Total numbe of lines allocated for this view.
66     #
67     #=== Warning
68     #This method *SHOULD* be overrided in drived classes.
69     def allocated_line
70     0
71     end
72    
73 bluedwarf 4 #The mini window displayed in the bottom of the screen.
74     #
75     #=== Warning
76     #This method *MUST* *NOT* be overrided in derived classes.
77     def mini_window
78     @mini_window
79     end
80    
81     #The main window.
82     #
83     #=== Warning
84     #This method *MUST* *NOT* be overrided in derived classes.
85     def main_window
86     @windows[0]
87     end
88    
89 bluedwarf 1 #Main loop to catch all events.
90     #
91     #=== Warning
92     #This method *SHOULD* be overrided in derived classes.
93     def main_loop
94     end
95    
96 bluedwarf 3 #Exit the running main loop.
97     #
98     #=== Warning
99     #This method *SHOULD* be overrided in derived classes.
100     #
101     #=== Note
102     #Some UI systems (such as Ncurses) don't exit the main loop as
103     #soon as this method is called.
104     def exit_main_loop
105     end
106    
107 bluedwarf 1 #Beep once.
108     #
109     #=== Warning
110     #This method *SHOULD* be overrided in derived classes.
111     def beep
112     false
113     end
114    
115     #Terminate this view instance.
116     #
117     #=== Warning
118 bluedwarf 7 #This method *MUST* *NOT* be overrided in derived classes.
119 bluedwarf 1 def terminate
120 bluedwarf 7 @windows.each{ |window|
121     window.terminate
122     }
123     @mini_window.terminate
124    
125     terminate_ui
126 bluedwarf 1 end
127 bluedwarf 7
128     #Free system specifiec resources.
129     #
130     #=== Warning
131     #This method *SHOULD* be overrided in derived classes.
132     def terminate_ui
133     end
134 bluedwarf 1 end
135     end

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