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`
18 app_namespace
"org.nitlanguage.ui_example"
21 android_manifest_activity
"android:theme=\"@android
:style
/Theme.Material\
""
25 import app
::data_store
26 import android
::aware
# for android_api_target
28 # Window showing off some the available controls
33 var layout
= new ListLayout(parent
=self)
36 var some_label
= new Label(parent
=layout
, text
="Sample Window using a ListLayout.")
39 var checkbox
= new CheckBox(parent
=layout
, text
="A CheckBox")
41 # Horizontal organization
42 var h_layout
= new HorizontalLayout(parent
=layout
)
44 # Description for the `user_input`
45 var user_input_label
= new Label(parent
=h_layout
, text
="Input some text:", align
=0.5)
47 # Field for the user to enter data
48 var user_input
= new TextInput(parent
=h_layout
, text
="Default text")
50 # Button to open a new window with a ListLayout
51 var button_window
= new Button(parent
=layout
, text
="Open a new window")
54 var example_url
= "http://nitlanguage.org/"
56 # Button to open the browser
57 var button_browser
= new Button(parent
=layout
, text
="Open {example_url}")
59 redef fun on_event
(event
)
61 if event
isa ButtonPressEvent then
62 if event
.sender
== button_browser
then
63 example_url
.open_in_browser
64 else if event
.sender
== button_window
then
65 app
.push_window
new SecondWindow
67 else if event
isa ToggleEvent then
68 if event
.sender
== checkbox
then checkbox
.text
= if checkbox
.is_checked
then "Checked" else "Unchecked"
73 # Another window with a small `VerticalLayout`
78 var layout
= new VerticalLayout(parent
=self)
81 var a_label
= new Label(parent
=layout
, text
="This window uses a VerticalLayout.")
84 var another_label
= new Label(parent
=layout
, text
="Close it by tapping the back button.")
87 redef fun root_window
do return new UiExampleWindow