Develop and Download Open Source Software

Browse Subversion Repository

Contents of /view.rb

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9 - (show 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
2 require "event_manager.rb"
3 require "window.rb"
4
5 module Edmaru
6
7 #Abstract class to implement system specific view.
8 module View
9
10 #Construct a view instance.
11 #
12 #=== Warning
13 #This method *MUST* *NOT* be overrided in derived classes.
14 #
15 #=== Argument
16 #_event_manager_ :: An instance of Edmaru::EventManager to handler
17 #all events raised from this view.
18 #
19 #=== Return
20 #An initialized instance of View.
21 def initialize(event_manager, buffer_manager)
22 @event_manager = event_manager
23 @buffer_manager = buffer_manager
24
25 init_ui
26
27 #Show default windows.
28 @windows = Array.new
29 @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 @mini_window =
37 Edmaru::mini_window_class.new(self, 0,
38 allocated_line - 1,
39 allocated_column)
40 end
41
42 #The system specific initialization for this view.
43 #
44 #=== Warning
45 #This method *SHOULD* be overrided in derived classes.
46 def init_ui
47 end
48
49 #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 #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 #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 #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 #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 #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 #This method *MUST* *NOT* be overrided in derived classes.
119 def terminate
120 @windows.each{ |window|
121 window.terminate
122 }
123 @mini_window.terminate
124
125 terminate_ui
126 end
127
128 #Free system specifiec resources.
129 #
130 #=== Warning
131 #This method *SHOULD* be overrided in derived classes.
132 def terminate_ui
133 end
134 end
135 end

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