1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 # User interface example using `app::ui`
19 app_namespace
"org.nitlanguage.ui_example"
22 android_manifest_activity
"android:theme=\"@android
:style
/Theme.Material\
""
26 import app
::data_store
27 import android
::aware
# for android_api_target
29 # Window showing off some the available controls
34 var layout
= new ListLayout(parent
=self)
37 var some_label
= new Label(parent
=layout
, text
="Sample Window using a ListLayout.")
40 var checkbox
= new CheckBox(parent
=layout
, text
="A CheckBox")
42 # Horizontal organization
43 var h_layout
= new HorizontalLayout(parent
=layout
)
45 # Description for the `user_input`
46 var user_input_label
= new Label(parent
=h_layout
, text
="Input some text:", align
=0.5)
48 # Field for the user to enter data
49 var user_input
= new TextInput(parent
=h_layout
, text
="Default text")
51 # Button to open a new window with a ListLayout
52 var button_window
= new Button(parent
=layout
, text
="Open a new window")
55 var example_url
= "http://nitlanguage.org/"
57 # Button to open the browser
58 var button_browser
= new Button(parent
=layout
, text
="Open {example_url}")
60 redef fun on_event
(event
)
62 if event
isa ButtonPressEvent then
63 if event
.sender
== button_browser
then
64 example_url
.open_in_browser
65 else if event
.sender
== button_window
then
66 app
.push_window
new SecondWindow
68 else if event
isa ToggleEvent then
69 if event
.sender
== checkbox
then checkbox
.text
= if checkbox
.is_checked
then "Checked" else "Unchecked"
74 # Another window with a small `VerticalLayout`
79 var layout
= new VerticalLayout(parent
=self)
82 var a_label
= new Label(parent
=layout
, text
="This window uses a VerticalLayout.")
85 var another_label
= new Label(parent
=layout
, text
="Close it by tapping the back button.")
88 redef fun root_window
do return new UiExampleWindow