1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Copyright 2011-2013 Alexis Laferrière <alexis.laf@xymus.net>
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 # General Mnit application structure
23 # An App instance serves as base to every Mnit projects.
25 # This class is redefed by plateforme modules and so
26 # App can be specialized directly in the user app.
32 # Display to use by apps
33 # Is null if the display is not available or not yet ready
34 var display
: nullable D
protected writable = null
37 var quit
: Bool writable = false
39 # App is visible? (vs minimized or in background)
40 fun visible
: Bool is abstract
42 # Invoqued at each frame
43 # Usually you want to redef frame_core instead of this
46 var display
= self.display
47 if display
!= null then
54 # Main frame method to redef
55 # Is called between readying display and flipping it
56 fun frame_core
( display
: D
) do end
58 # Receive and deal with all inputs
59 fun input
( event
: InputEvent ): Bool
64 # Internal method to generate inputs
65 protected fun generate_input
is abstract
68 # Usually you want to redef frame_core instead of this