lib/android: revamp entrypoint
[nit.git] / lib / app / ui.nit
index c23d9cd..0c7d524 100644 (file)
@@ -18,9 +18,8 @@ module ui
 import app_base
 
 # Platform variations
-# TODO: move on the platform once qualified names are understand in the condition
 import linux::ui is conditional(linux)
-import android::ui is conditional(android) # FIXME it should be conditional to `android::platform`
+import android::ui is conditional(android)
 import ios::ui is conditional(ios)
 
 redef class App
@@ -118,6 +117,9 @@ class CompositeControl
        # Is `item` in `self`?
        fun has(item: Control): Bool do return items.has(item)
 
+       # Remove all items from `self`
+       fun clear do for item in items.to_a do remove item
+
        redef fun on_create do for i in items do i.on_create
 
        redef fun on_start do for i in items do i.on_start
@@ -158,6 +160,28 @@ abstract class TextView
        #
        # By default, or if set to `null`, no text is shown.
        var text: nullable Text is writable, abstract, autoinit
+
+       # Set the relative size of the text
+       #
+       # A value of 1.0, the default, use the platform default text size.
+       # Values under 1.0 set a smaller text size, and over 1.0 a larger size.
+       #
+       # Implementation varies per platform, and some controls may be unaffected
+       # depending on the customization options of each platform.
+       # For consistent results, it is recommended to use only on instances
+       # of `Label` and `size` should be either 0.5, 1.0 or 1.5.
+       fun size=(size: nullable Float) is autoinit do end
+
+       # Align the text horizontally
+       #
+       # Use 0.0 to align left (the default), 0.5 to align in the center and
+       # 1.0 to align on the right.
+       #
+       # Implementation varies per platform, and some controls may be unaffected
+       # depending on the customization options of each platform.
+       # For consistent results, it is recommended to use only on instances
+       # of `Label` and `size` should be either 0.0, 0.5 or 1.0.
+       fun align=(center: nullable Float) is autoinit do end
 end
 
 # A control for the user to enter custom `text`
@@ -178,6 +202,14 @@ class Label
        super TextView
 end
 
+# Toggle control with two states and a label
+class CheckBox
+       super TextView
+
+       # Is this control in the checked/on state?
+       var is_checked = false is writable
+end
+
 # A `Button` press event
 class ButtonPressEvent
        super AppEvent