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.
31 # Display to use by apps
32 # Is null if the display is not available or not yet ready
33 var display
: nullable D
= null is protected writable
36 var quit
: Bool = false is writable
38 # App is visible? (vs minimized or in background)
39 fun visible
: Bool is abstract
41 # Invoqued at each frame
42 # Usually you want to redef frame_core instead of this
45 var display
= self.display
46 if display
!= null then
53 # Main frame method to redef
54 # Is called between readying display and flipping it
55 fun frame_core
( display
: D
) do end
57 # Receive and deal with all inputs
58 fun input
( event
: InputEvent ): Bool
63 # Internal method to generate inputs
64 protected fun generate_input
66 if "NIT_TESTING".environ
== "true" then exit
0
67 print
"Compiled without platform"
72 # Usually you want to redef frame_core instead of this