import de.unixwork.ui.UiInteger
import de.unixwork.ui.UiString
-import de.unixwork.ui.kotlin.Toplevel
-import de.unixwork.ui.kotlin.simpleWindow
+import de.unixwork.ui.UiObject
+import de.unixwork.ui.kotlin.*
class ConfigWindow {
- val window: Toplevel
+ val window: UiObject
val dateFormat: UiString
val dateFormatToday: UiString
init {
window = simpleWindow("")
- window.ui.setSize(600, 500)
- window.ui.addCloseHandler {
+ window.setSize(600, 500)
+ window.addCloseHandler {
App.configWindow = null
}
- dateFormat = window.ui.string()
- dateFormatToday = window.ui.string()
- defaultUpdateInterval = window.ui.integer()
- minUpdateWaitTime = window.ui.integer()
- autoUpdateStartDelay = window.ui.integer()
- maxItemAge = window.ui.integer()
+ dateFormat = window.string()
+ dateFormatToday = window.string()
+ defaultUpdateInterval = window.integer()
+ minUpdateWaitTime = window.integer()
+ autoUpdateStartDelay = window.integer()
+ maxItemAge = window.integer()
- message = window.ui.string()
+ message = window.string()
window {
tabview(margin = 12, fill = true) {
package de.unixwork.rssreader
import de.unixwork.ui.Text.passwordfield
+import de.unixwork.ui.UiObject
import de.unixwork.ui.UiInteger
import de.unixwork.ui.UiList
import de.unixwork.ui.UiString
import de.unixwork.ui.UiText
-import de.unixwork.ui.kotlin.Toplevel
+import de.unixwork.ui.kotlin.*
import de.unixwork.ui.kotlin.openFileDialog
-class FeedConfig(toplevel: Toplevel) {
- val window = toplevel
+class FeedConfig(obj: UiObject) {
+ val window = obj
var feedCollection: FeedCollection? = null
}
init {
- groups = window.ui.list<FeedGroup>()
- name = window.ui.string()
- urls = window.ui.text()
- readstatus = window.ui.list()
- user = window.ui.string()
- password = window.ui.string()
- cert = window.ui.string()
- customUpdateInterval = window.ui.integer()
- updateInterval = window.ui.integer()
- autoDeleteOptions = window.ui.list()
- maxItemAge = window.ui.integer()
- itemContent = window.ui.list()
+ groups = window.list<FeedGroup>()
+ name = window.string()
+ urls = window.text()
+ readstatus = window.list()
+ user = window.string()
+ password = window.string()
+ cert = window.string()
+ customUpdateInterval = window.integer()
+ updateInterval = window.integer()
+ autoDeleteOptions = window.list()
+ maxItemAge = window.integer()
+ itemContent = window.list()
// data
maxItemAge.setIntValue(100)
colspan = 2,
onActivate = { event ->
if(event.intValue == 2) {
- window.ui.setState(FeedConfig.AUTO_DELETE_ITEMS)
+ window.setState(FeedConfig.AUTO_DELETE_ITEMS)
} else {
- window.ui.unsetState(FeedConfig.AUTO_DELETE_ITEMS)
+ window.unsetState(FeedConfig.AUTO_DELETE_ITEMS)
}
}
) { elm, col ->
feedName.setString(item.feedName)
if(!item.author.isNullOrEmpty()) {
author.setString(item.author)
- window.window.ui.setState(MainWindow.ITEM_HAS_AUTHOR)
+ window.window.setState(MainWindow.ITEM_HAS_AUTHOR)
} else {
- window.window.ui.unsetState(MainWindow.ITEM_HAS_AUTHOR)
+ window.window.unsetState(MainWindow.ITEM_HAS_AUTHOR)
}
if(!item.link.isNullOrEmpty() && !currentFeed?.addUrlParam.isNullOrEmpty()) {
var newurl = item.link
category.setString(item.category ?: "")
if(!item.category.isNullOrEmpty()) {
category.setString(item.category)
- window.window.ui.setState(MainWindow.ITEM_HAS_CATEGORY)
+ window.window.setState(MainWindow.ITEM_HAS_CATEGORY)
} else {
- window.window.ui.unsetState(MainWindow.ITEM_HAS_CATEGORY)
+ window.window.unsetState(MainWindow.ITEM_HAS_CATEGORY)
}
if(item.isBookmark) {
starred.setIntValue(0)
}
- window.window.ui.setState(MainWindow.ITEM_SELETED)
+ window.window.setState(MainWindow.ITEM_SELETED)
val browserSetting = browserSetting.intValue()
if(browserSetting == 0) {
} else {
val content = item.getContent()
webview.loadContent(item.link, content.text, content.type, "utf-8")
- window.window.ui.unsetState(MainWindow.ITEM_INTERNAL_BROWSER)
+ window.window.unsetState(MainWindow.ITEM_INTERNAL_BROWSER)
}
}
}
package de.unixwork.rssreader
+import de.unixwork.ui.UiObject
import de.unixwork.ui.ColumnType
import de.unixwork.ui.LabelStyle
import de.unixwork.ui.LinkButtonType
import de.unixwork.ui.UiList
import de.unixwork.ui.UiString
import de.unixwork.ui.UiText
-import de.unixwork.ui.kotlin.Toplevel
-import de.unixwork.ui.kotlin.dialog
-import de.unixwork.ui.kotlin.dialogWindow
-import de.unixwork.ui.kotlin.menuBuilder
-import de.unixwork.ui.kotlin.menuItem
-import de.unixwork.ui.kotlin.openFileDialog
-import de.unixwork.ui.kotlin.separator
-import de.unixwork.ui.kotlin.setDefaultWindowSize
-import de.unixwork.ui.kotlin.splitViewWindow
+import de.unixwork.ui.kotlin.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
const val ITEM_INTERNAL_BROWSER = 1002
}
- val window : Toplevel
+ val window : UiObject
val sourceList = FeedSourceList()
val feedList = FeedList(this)
if(evt.sublistIndex >= 0 && evt.rowIndex >= 0) {
val feedCollection = sourceList.groups[evt.sublistIndex].feeds[evt.rowIndex]
dialog(
- parent = window.ui,
+ parent = window,
title = "Delete Feed",
content = "Delete ${feedCollection.name}?",
button1Label = "Cancel",
var move:UiInteger? = null
var groups:UiList<FeedGroup>? = null
val dialog = dialogWindow(
- parent = window.ui,
+ parent = window,
title = "Delete",
lbutton1 = "Cancel",
rbutton4 = "Delete",
ev.`object`.close()
})
{
- move = ui.integer()
- groups = ui.list<FeedGroup>()
+ move = integer()
+ groups = list<FeedGroup>()
groups.addAll(sourceList.groups.filter { it != feedGroup })
grid(margin = 12, columnspacing = 8, rowspacing = 8, fill = true) {
}
}
- window.ui.windowData = this
+ window.windowData = this
- window.ui.attach(sourceList)
- window.ui.attach(feedList)
+ window.attach(sourceList)
+ window.attach(feedList)
}
fun reload() {
fun createFeedDialog() {
var feedConfig: FeedConfig? = null
val w = dialogWindow(
- parent = window.ui,
+ parent = window,
title = "Add Feed",
defaultButton = 1,
lbutton1 = "Add",
fun createCategoryDialog() {
var name: UiString? = null
val w = dialogWindow(
- parent = window.ui,
+ parent = window,
title = "Add Folder",
defaultButton = 1,
lbutton1 = "Add",
ev.`object`.close()
})
{
- name = ui.string()
+ name = string()
grid(
margin = 12,
fun editFeedDialog(collection: FeedCollection) {
var feedConfig: FeedConfig? = null
val w = dialogWindow(
- parent = window.ui,
+ parent = window,
title = "Edit Feed",
defaultButton = 1,
lbutton1 = "Save",
+++ /dev/null
-package de.unixwork.ui.kotlin
-
-import de.unixwork.ui.Alignment
-import de.unixwork.ui.Button
-import de.unixwork.ui.Container
-import de.unixwork.ui.ContainerBuilder
-import de.unixwork.ui.ContainerUI
-import de.unixwork.ui.Entry
-import de.unixwork.ui.EventHandler
-import de.unixwork.ui.FrameBuilder
-import de.unixwork.ui.LabelBuilder
-import de.unixwork.ui.LabelStyle
-import de.unixwork.ui.ListValueConverter
-import de.unixwork.ui.ListView
-import de.unixwork.ui.SubListValueConverter
-import de.unixwork.ui.Text
-import de.unixwork.ui.TextFieldBuilder
-import de.unixwork.ui.ToggleBuilder
-import de.unixwork.ui.UiInteger
-import de.unixwork.ui.UiList
-import de.unixwork.ui.UiObject
-import de.unixwork.ui.UiSourceList
-import de.unixwork.ui.UiString
-import de.unixwork.ui.UiWidget
-import de.unixwork.ui.WebView
-import de.unixwork.ui.Label
-import de.unixwork.ui.LinkButtonType
-import de.unixwork.ui.ListSaveHandler
-import de.unixwork.ui.ListStyleProvider
-import de.unixwork.ui.ListViewBuilder
-import de.unixwork.ui.Menu
-import de.unixwork.ui.TabViewType
-import de.unixwork.ui.TableModel
-import de.unixwork.ui.TableViewBuilder
-import de.unixwork.ui.UiDouble
-import de.unixwork.ui.UiRange
-import de.unixwork.ui.UiText
-import java.awt.TextArea
-
-class Toplevel(obj: UiObject) {
- val ui: UiObject = obj
-
- fun show() {
- ui.show()
- }
-
- fun close() {
- ui.close()
- }
-
- operator fun invoke(block: Toplevel.() -> Unit) {
- block()
- }
-
- private fun createContainer(
- container: ContainerBuilder,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- defhexpand: Boolean = false,
- defvexpand: Boolean = false,
- defhfill: Boolean = false,
- defvfill: Boolean = false,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- spacing: Int = -1,
- columnspacing: Int = -1,
- rowspacing: Int = -1,
- visibilityStates: IntArray? = null,
- ui: ContainerUI? = null
- ): UiWidget {
- if(fill) {
- container.fill(true)
- }
- if(hexpand) {
- container.hexpand(true)
- }
- if(vexpand) {
- container.vexpand(true)
- }
- if(hfill) {
- container.hfill(true)
- }
- if(vfill) {
- container.vfill(true)
- }
- if(overrideDefaults) {
- container.overrideDefaults(true)
- }
- if(margin > 0) {
- container.margin(margin)
- }
- if(marginLeft > 0) {
- container.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- container.marginRight(marginRight)
- }
- if(marginTop > 0) {
- container.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- container.marginBottom(marginBottom)
- }
- if(defhexpand) {
- container.defaultHExpand(true)
- }
- if(defvexpand) {
- container.defaultVExpand(true)
- }
- if(defhfill) {
- container.defaultHfill(true)
- }
- if(defvfill) {
- container.defaultVfill(true)
- }
- if(colspan > 0) {
- container.colspan(colspan)
- }
- if(rowspan > 0) {
- container.rowspan(rowspan)
- }
- if(spacing > 0) {
- container.spacing(spacing)
- }
- if(columnspacing > 0) {
- container.columnspacing(columnspacing)
- }
- if(rowspacing > 0) {
- container.rowspacing(rowspacing)
- }
- if(visibilityStates != null) {
- container.visibilityStates(visibilityStates)
- }
-
- return container.create(ui)
- }
-
- fun hbox(
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- spacing: Int = -1,
- visibilityStates: IntArray? = null,
- ui: ContainerUI? = null
- ): UiWidget {
- return createContainer(
- container = Container.hbox(this@Toplevel.ui),
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- spacing = spacing,
- visibilityStates = visibilityStates,
- ui = ui
- )
- }
-
-
- fun vbox(
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- spacing: Int = -1,
- visibilityStates: IntArray? = null,
- ui: ContainerUI? = null
- ): UiWidget {
- return createContainer(
- container = Container.vbox(this@Toplevel.ui),
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- spacing = spacing,
- visibilityStates = visibilityStates,
- ui = ui
- )
- }
-
-
- fun grid(
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- defhexpand: Boolean = false,
- defvexpand: Boolean = false,
- defhfill: Boolean = false,
- defvfill: Boolean = false,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- spacing: Int = -1,
- columnspacing: Int = -1,
- rowspacing: Int = -1,
- visibilityStates: IntArray? = null,
- ui: ContainerUI? = null
- ): UiWidget {
- return createContainer(
- container = Container.grid(this@Toplevel.ui),
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- defhexpand = defhexpand,
- defhfill = defhfill,
- defvexpand = defvexpand,
- defvfill = defvfill,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- spacing = spacing,
- columnspacing = columnspacing,
- rowspacing = rowspacing,
- visibilityStates = visibilityStates,
- ui = ui
- )
- }
-
- fun row(
- ui: ContainerUI? = null
- ) {
- ui?.callback()
- Container.newline(this@Toplevel.ui)
- }
-
- fun tab(
- label: String? = null,
- ui: ContainerUI? = null
- ) {
- val tab = Container.tab(this@Toplevel.ui, label)
- ui?.callback()
- tab.close()
- }
-
- private fun createFrame(
- container: FrameBuilder,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- padding: Int = -1,
- spacing: Int = -1,
- columnspacing: Int = -1,
- rowspacing: Int = -1,
- expanded: Boolean = false,
- label: String? = null,
- ui: ContainerUI? = null
- ): UiWidget {
- if(fill) {
- container.fill(true)
- }
- if(hexpand) {
- container.hexpand(true)
- }
- if(vexpand) {
- container.vexpand(true)
- }
- if(hfill) {
- container.hfill(true)
- }
- if(vfill) {
- container.vfill(true)
- }
- if(overrideDefaults) {
- container.overrideDefaults(true)
- }
- if(margin > 0) {
- container.margin(margin)
- }
- if(marginLeft > 0) {
- container.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- container.marginRight(marginRight)
- }
- if(marginTop > 0) {
- container.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- container.marginBottom(marginBottom)
- }
- if(colspan > 0) {
- container.colspan(colspan)
- }
- if(rowspan > 0) {
- container.rowspan(rowspan)
- }
- if(padding > 0) {
- container.padding(padding)
- }
- if(spacing > 0) {
- container.spacing(spacing)
- }
- if(columnspacing > 0) {
- container.columnspacing(columnspacing)
- }
- if(rowspacing > 0) {
- container.rowspacing(rowspacing)
- }
- if(expanded) {
- container.isexpanded(true)
- }
- if(label != null) {
- container.label(label)
- }
-
- return container.create(ui)
- }
-
- fun frame(
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- padding: Int = -1,
- spacing: Int = -1,
- columnspacing: Int = -1,
- rowspacing: Int = -1,
- label: String? = null,
- ui: ContainerUI? = null
- ): UiWidget {
- return createFrame(
- container = Container.frame(this@Toplevel.ui),
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- padding = padding,
- spacing = spacing,
- columnspacing = columnspacing,
- rowspacing = rowspacing,
- label = label,
- ui = ui
- )
- }
-
- fun expander(
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- padding: Int = -1,
- spacing: Int = -1,
- columnspacing: Int = -1,
- rowspacing: Int = -1,
- expanded: Boolean = false,
- label: String? = null,
- ui: ContainerUI? = null
- ): UiWidget {
- return createFrame(
- container = Container.expander(this@Toplevel.ui),
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- padding = padding,
- spacing = spacing,
- columnspacing = columnspacing,
- rowspacing = rowspacing,
- expanded = expanded,
- label = label,
- ui = ui
- )
- }
-
- fun tabview(
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- padding: Int = -1,
- spacing: Int = -1,
- columnspacing: Int = -1,
- rowspacing: Int = -1,
- type: TabViewType = TabViewType.DEFAULT,
- varname: String? = null,
- value: UiInteger? = null,
- onChange: EventHandler? = null,
- ui: ContainerUI? = null
- ): UiWidget {
- val container = Container.tabview(this@Toplevel.ui)
- if(fill) {
- container.fill(true)
- }
- if(hexpand) {
- container.hexpand(true)
- }
- if(vexpand) {
- container.vexpand(true)
- }
- if(hfill) {
- container.hfill(true)
- }
- if(vfill) {
- container.vfill(true)
- }
- if(overrideDefaults) {
- container.overrideDefaults(true)
- }
- if(margin > 0) {
- container.margin(margin)
- }
- if(marginLeft > 0) {
- container.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- container.marginRight(marginRight)
- }
- if(marginTop > 0) {
- container.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- container.marginBottom(marginBottom)
- }
- if(name != null) {
- container.name(name)
- }
- if(styleClass != null) {
- container.styleClass(styleClass)
- }
- if(colspan > 0) {
- container.colspan(colspan)
- }
- if(rowspan > 0) {
- container.rowspan(rowspan)
- }
- if(padding > 0) {
- container.margin(padding)
- }
- if(spacing > 0) {
- container.spacing(spacing)
- }
- if(columnspacing > 0) {
- container.columnspacing(columnspacing)
- }
- if(rowspacing > 0) {
- container.rowspacing(rowspacing)
- }
- container.type(type)
- if(varname != null) {
- container.varname(varname)
- }
- if(value != null) {
- container.value(value)
- }
- if(onChange != null) {
- container.onChange(onChange)
- }
- return container.create(ui)
- }
-
- private fun createSplitpane(
- horizontal: Boolean,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- spacing: Int = -1,
- initialPosition: Int = 0,
- positionProperty: String? = null,
- value: UiInteger? = null,
- varname: String? = null,
- maxPanes: Int = 0,
- ui: ContainerUI? = null
- ): UiWidget {
- val container = if(horizontal) {
- Container.hsplitview(this@Toplevel.ui)
- } else {
- Container.vsplitview(this@Toplevel.ui)
- }
-
- if(fill) {
- container.fill(true)
- }
- if(hexpand) {
- container.hexpand(true)
- }
- if(vexpand) {
- container.vexpand(true)
- }
- if(hfill) {
- container.hfill(true)
- }
- if(vfill) {
- container.vfill(true)
- }
- if(overrideDefaults) {
- container.overrideDefaults(true)
- }
- if(margin > 0) {
- container.margin(margin)
- }
- if(marginLeft > 0) {
- container.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- container.marginRight(marginRight)
- }
- if(marginTop > 0) {
- container.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- container.marginBottom(marginBottom)
- }
- if(colspan > 0) {
- container.colspan(colspan)
- }
- if(rowspan > 0) {
- container.rowspan(rowspan)
- }
- if(spacing > 0) {
- container.spacing(spacing)
- }
- if(initialPosition > 0) {
- container.initialPosition(initialPosition)
- }
- if(positionProperty != null) {
- container.positionProperty(positionProperty)
- }
- if(value != null) {
- container.value(value)
- }
- if(varname != null) {
- container.varname(varname)
- }
- if(maxPanes > 0) {
- container.maxPanes(maxPanes)
- }
- if(name != null) {
- container.name(name)
- }
- if(styleClass != null) {
- container.styleClass(styleClass)
- }
-
- return container.create(ui)
- }
-
- fun hsplitpane(
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- spacing: Int = -1,
- initialPosition: Int = 0,
- positionProperty: String? = null,
- value: UiInteger? = null,
- varname: String? = null,
- maxPanes: Int = 0,
- ui: ContainerUI? = null
- ): UiWidget {
- return createSplitpane(
- horizontal = true,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- spacing = spacing,
- initialPosition = initialPosition,
- positionProperty = positionProperty,
- value = value,
- varname = varname,
- maxPanes = maxPanes,
- ui = ui
- )
- }
-
- fun vsplitpane(
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- spacing: Int = -1,
- initialPosition: Int = 0,
- positionProperty: String? = null,
- value: UiInteger? = null,
- varname: String? = null,
- maxPanes: Int = 0,
- ui: ContainerUI? = null
- ): UiWidget {
- return createSplitpane(
- horizontal = false,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- spacing = spacing,
- initialPosition = initialPosition,
- positionProperty = positionProperty,
- value = value,
- varname = varname,
- maxPanes = maxPanes,
- ui = ui
- )
- }
-
- fun sidebar(
- name: String? = null,
- styleClass: String? = null,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- spacing: Int = -1,
- ui: ContainerUI? = null
- ): UiWidget {
- val container = Container.sidebar(this@Toplevel.ui)
- if(margin > 0) {
- container.margin(margin)
- }
- if(marginLeft > 0) {
- container.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- container.marginRight(marginRight)
- }
- if(marginTop > 0) {
- container.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- container.marginBottom(marginBottom)
- }
- if(spacing > 0) {
- container.spacing(spacing)
- }
- if(name != null) {
- container.name(name)
- }
- if(styleClass != null) {
- container.styleClass(styleClass)
- }
-
- return container.create(ui)
- }
-
- fun leftPanel(
- name: String? = null,
- styleClass: String? = null,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- spacing: Int = -1,
- ui: ContainerUI? = null
- ): UiWidget {
- val container = Container.leftPanel(this@Toplevel.ui)
- if(margin > 0) {
- container.margin(margin)
- }
- if(marginLeft > 0) {
- container.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- container.marginRight(marginRight)
- }
- if(marginTop > 0) {
- container.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- container.marginBottom(marginBottom)
- }
- if(spacing > 0) {
- container.spacing(spacing)
- }
- if(name != null) {
- container.name(name)
- }
- if(styleClass != null) {
- container.styleClass(styleClass)
- }
-
- return container.create(ui)
- }
-
- fun rightPanel(
- name: String? = null,
- styleClass: String? = null,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- spacing: Int = -1,
- ui: ContainerUI? = null
- ): UiWidget {
- val container = Container.rightPanel(this@Toplevel.ui)
- if(margin > 0) {
- container.margin(margin)
- }
- if(marginLeft > 0) {
- container.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- container.marginRight(marginRight)
- }
- if(marginTop > 0) {
- container.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- container.marginBottom(marginBottom)
- }
- if(spacing > 0) {
- container.spacing(spacing)
- }
- if(name != null) {
- container.name(name)
- }
- if(styleClass != null) {
- container.styleClass(styleClass)
- }
-
- return container.create(ui)
- }
-
- fun button(
- label: String? = null,
- icon: String? = null,
- tooltip: String? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onClick: EventHandler? = null
- ): UiWidget {
- val button = Button.button(ui)
- label?.let {
- button.label(it)
- }
- icon?.let {
- button.icon(it)
- }
- tooltip?.let {
- button.tooltip(it)
- }
- if(fill) {
- button.fill(fill);
- }
- if(hexpand) {
- button.hexpand(true)
- }
- if(vexpand) {
- button.vexpand(true)
- }
- if(hfill) {
- button.hfill(true)
- }
- if(vfill) {
- button.vfill(true)
- }
- if(colspan > 0) {
- button.colspan(colspan)
- }
- if(rowspan > 0) {
- button.rowspan(rowspan)
- }
- if(overrideDefaults) {
- button.overrideDefaults(true)
- }
- if(margin > 0) {
- button.margin(margin)
- }
- if(marginLeft > 0) {
- button.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- button.marginRight(marginRight)
- }
- if(marginTop > 0) {
- button.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- button.marginBottom(marginBottom)
- }
- name?.let {
- button.name(name)
- }
- styleClass?.let {
- button.styleClass(it)
- }
- states?.let {
- button.states(*it)
- }
- onClick?.let {
- button.onClick(onClick)
- }
- return button.create()
- }
-
- private fun createToggleButton(
- button: ToggleBuilder,
- label: String? = null,
- icon: String? = null,
- tooltip: String? = null,
- varname: String? = null,
- value: UiInteger? = null,
- enableState: Int = 0,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- label?.let {
- button.label(it)
- }
- tooltip?.let {
- button.tooltip(it)
- }
- varname?.let {
- button.varname(it)
- }
- value?.let {
- button.value(it)
- }
- if(enableState > 0) {
- button.enableState(enableState)
- }
- if(fill) {
- button.fill(fill);
- }
- if(hexpand) {
- button.hexpand(true)
- }
- if(vexpand) {
- button.vexpand(true)
- }
- if(hfill) {
- button.hfill(true)
- }
- if(vfill) {
- button.vfill(true)
- }
- if(colspan > 0) {
- button.colspan(colspan)
- }
- if(rowspan > 0) {
- button.rowspan(rowspan)
- }
- if(overrideDefaults) {
- button.overrideDefaults(true)
- }
- if(margin > 0) {
- button.margin(margin)
- }
- if(marginLeft > 0) {
- button.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- button.marginRight(marginRight)
- }
- if(marginTop > 0) {
- button.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- button.marginBottom(marginBottom)
- }
- name?.let {
- button.name(it)
- }
- styleClass?.let {
- button.styleClass(it)
- }
- states?.let {
- button.states(*it)
- }
- onChange?.let {
- button.onChange(onChange)
- }
- return button.create()
- }
-
- fun togglebutton(
- label: String? = null,
- icon: String? = null,
- tooltip: String? = null,
- varname: String? = null,
- value: UiInteger? = null,
- enableState: Int = 0,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- return createToggleButton(
- button = Button.toggleButton(ui),
- label = label,
- icon = icon,
- tooltip = tooltip,
- varname = varname,
- value = value,
- enableState = enableState,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- states = states,
- onChange = onChange
- )
- }
-
- fun checkbox(
- label: String? = null,
- icon: String? = null,
- tooltip: String? = null,
- varname: String? = null,
- value: UiInteger? = null,
- enableState: Int = 0,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- return createToggleButton(
- button = Button.checkbox(ui),
- label = label,
- icon = icon,
- tooltip = tooltip,
- varname = varname,
- value = value,
- enableState = enableState,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- states = states,
- onChange = onChange
- )
- }
-
- fun switch(
- label: String? = null,
- icon: String? = null,
- tooltip: String? = null,
- varname: String? = null,
- value: UiInteger? = null,
- enableState: Int = 0,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- return createToggleButton(
- button = Button.switchButton(ui),
- label = label,
- icon = icon,
- tooltip = tooltip,
- varname = varname,
- value = value,
- enableState = enableState,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- states = states,
- onChange = onChange
- )
- }
-
- fun radiobutton(
- label: String? = null,
- icon: String? = null,
- tooltip: String? = null,
- varname: String? = null,
- value: UiInteger? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- return createToggleButton(
- button = Button.radioButton(ui),
- label = label,
- icon = icon,
- tooltip = tooltip,
- varname = varname,
- value = value,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- states = states,
- onChange = onChange
- )
- }
-
- fun linkbutton(
- label: String? = null,
- uri: String? = null,
- varname: String? = null,
- value: UiString? = null,
- nofollow: Boolean = false,
- type: LinkButtonType? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onClick: EventHandler? = null
- ): UiWidget {
- val button = Button.linkButton(ui)
- label?.let {
- button.label(it)
- }
- uri?.let {
- button.uri(it)
- }
- varname?.let {
- button.varname(it)
- }
- value?.let {
- button.value(it)
- }
- if(nofollow) {
- button.nofollow(nofollow)
- }
- if(type != null) {
- button.type(type)
- }
- if(onClick != null) {
- button.onClick(onClick)
- }
- if(fill) {
- button.fill(fill);
- }
- if(hexpand) {
- button.hexpand(true)
- }
- if(vexpand) {
- button.vexpand(true)
- }
- if(hfill) {
- button.hfill(true)
- }
- if(vfill) {
- button.vfill(true)
- }
- if(colspan > 0) {
- button.colspan(colspan)
- }
- if(rowspan > 0) {
- button.rowspan(rowspan)
- }
- if(overrideDefaults) {
- button.overrideDefaults(true)
- }
- if(margin > 0) {
- button.margin(margin)
- }
- if(marginLeft > 0) {
- button.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- button.marginRight(marginRight)
- }
- if(marginTop > 0) {
- button.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- button.marginBottom(marginBottom)
- }
- name?.let {
- button.name(name)
- }
- styleClass?.let {
- button.styleClass(it)
- }
- states?.let {
- button.states(*it)
- }
- return button.create()
- }
-
- fun <T>table(
- model: TableModel,
- varname: String? = null,
- value: UiList<T>? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- contextmenu: Menu? = null,
- onActivate: EventHandler? = null,
- onSelection: EventHandler? = null,
- onDragStart: EventHandler? = null,
- onDragComplete: EventHandler? = null,
- onDrop: EventHandler? = null,
- onSave: ListSaveHandler? = null,
- getstyle: ListStyleProvider<T>? = null,
- getvalue: ListValueConverter<T>? = null
- ): UiWidget {
- val table = ListView.table<T>(ui)
- table.model(model)
- varname?.let {
- table.varname(varname)
- }
- value?.let {
- table.value(value)
- }
- if(fill) {
- table.fill(true)
- }
- if(hexpand) {
- table.hexpand(true)
- }
- if(vexpand) {
- table.vexpand(true)
- }
- if(hfill) {
- table.hfill(true)
- }
- if(vfill) {
- table.vfill(true)
- }
- if(overrideDefaults) {
- table.overrideDefaults(true)
- }
- if(margin > 0) {
- table.margin(margin)
- }
- if(marginLeft > 0) {
- table.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- table.marginRight(marginRight)
- }
- if(marginTop > 0) {
- table.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- table.marginBottom(marginBottom)
- }
- if(colspan > 0) {
- table.colspan(colspan)
- }
- if(rowspan > 0) {
- table.rowspan(rowspan)
- }
- name?.let {
- table.name(it)
- }
- styleClass?.let {
- table.styleClass(it)
- }
- states?.let {
- table.states(*it)
- }
- contextmenu?.let {
- table.contextmenu(it)
- }
- onActivate?.let {
- table.onActivate(it)
- }
- onSelection?.let {
- table.onSelection(it)
- }
- onDragStart?.let {
- table.onDragStart(it)
- }
- onDragComplete?.let {
- table.onDragComplete(it)
- }
- onDrop?.let {
- table.onDrop(it)
- }
- onSave?.let {
- table.onSave(it)
- }
- getstyle?.let {
- table.getstyle(it)
- }
- getvalue?.let {
- table.getvalue(it)
- }
- return table.create()
- }
-
- fun <T>createListView(
- list: ListViewBuilder<T>,
- varname: String? = null,
- value: UiList<T>? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- contextmenu: Menu? = null,
- onActivate: EventHandler? = null,
- onSelection: EventHandler? = null,
- onDragStart: EventHandler? = null,
- onDragComplete: EventHandler? = null,
- onDrop: EventHandler? = null,
- getvalue: ListValueConverter<T>? = null
- ): UiWidget {
- varname?.let {
- list.varname(varname)
- }
- value?.let {
- list.value(value)
- }
- if(fill) {
- list.fill(true)
- }
- if(hexpand) {
- list.hexpand(true)
- }
- if(vexpand) {
- list.vexpand(true)
- }
- if(hfill) {
- list.hfill(true)
- }
- if(vfill) {
- list.vfill(true)
- }
- if(overrideDefaults) {
- list.overrideDefaults(true)
- }
- if(margin > 0) {
- list.margin(margin)
- }
- if(marginLeft > 0) {
- list.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- list.marginRight(marginRight)
- }
- if(marginTop > 0) {
- list.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- list.marginBottom(marginBottom)
- }
- if(colspan > 0) {
- list.colspan(colspan)
- }
- if(rowspan > 0) {
- list.rowspan(rowspan)
- }
- name?.let {
- list.name(it)
- }
- styleClass?.let {
- list.styleClass(it)
- }
- states?.let {
- list.states(*it)
- }
- contextmenu?.let {
- list.contextmenu(it)
- }
- onActivate?.let {
- list.onActivate(it)
- }
- onSelection?.let {
- list.onSelection(it)
- }
- onDragStart?.let {
- list.onDragStart(it)
- }
- onDragComplete?.let {
- list.onDragComplete(it)
- }
- onDrop?.let {
- list.onDrop(it)
- }
- getvalue?.let {
- list.getvalue(it)
- }
- return list.create()
- }
-
- fun <T>listview(
- varname: String? = null,
- value: UiList<T>? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- contextmenu: Menu? = null,
- onActivate: EventHandler? = null,
- onSelection: EventHandler? = null,
- onDragStart: EventHandler? = null,
- onDragComplete: EventHandler? = null,
- onDrop: EventHandler? = null,
- getvalue: ListValueConverter<T>? = null
- ): UiWidget {
- val list = ListView.list<T>(ui)
- return createListView(
- list = list,
- varname = varname,
- value = value,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- states = states,
- contextmenu = contextmenu,
- onActivate = onActivate,
- onSelection = onSelection,
- onDragStart = onDragStart,
- onDragComplete = onDragComplete,
- onDrop = onDrop,
- getvalue = getvalue
- )
- }
-
- fun <T>dropdown(
- varname: String? = null,
- value: UiList<T>? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onActivate: EventHandler? = null,
- getvalue: ListValueConverter<T>? = null
- ): UiWidget {
- val list = ListView.dropdown<T>(ui)
- return createListView(
- list = list,
- varname = varname,
- value = value,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- states = states,
- onActivate = onActivate,
- getvalue = getvalue
- )
- }
-
- fun <T>sourcelist(
- varname: String? = null,
- sourceList: UiSourceList? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- contextmenu: Menu? = null,
- headerIsItem: Boolean = false,
- onActivate: EventHandler? = null,
- onButtonClick: EventHandler? = null,
- getvalue: SubListValueConverter<T>? = null
- ): UiWidget {
- val list = ListView.sourcelist<T>(ui)
- varname?.let {
- list.varname(varname)
- }
- sourceList?.let {
- list.dynamicSublists(sourceList)
- }
- if(fill) {
- list.fill(true)
- }
- if(hexpand) {
- list.hexpand(true)
- }
- if(vexpand) {
- list.vexpand(true)
- }
- if(hfill) {
- list.hfill(true)
- }
- if(vfill) {
- list.vfill(true)
- }
- if(overrideDefaults) {
- list.overrideDefaults(true)
- }
- if(margin > 0) {
- list.margin(margin)
- }
- if(marginLeft > 0) {
- list.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- list.marginRight(marginRight)
- }
- if(marginTop > 0) {
- list.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- list.marginBottom(marginBottom)
- }
- if(colspan > 0) {
- list.colspan(colspan)
- }
- if(rowspan > 0) {
- list.rowspan(rowspan)
- }
- name?.let {
- list.name(it)
- }
- styleClass?.let {
- list.styleClass(it)
- }
- contextmenu?.let {
- list.contextmenu(it)
- }
- if(headerIsItem) {
- list.headerIsItem(true)
- }
- onActivate?.let {
- list.onActivate(it)
- }
- onButtonClick?.let {
- list.onButtonClick(it)
- }
- getvalue?.let {
- list.getvalue(it)
- }
- return list.create()
- }
-
- fun textarea(
- varname: String? = null,
- value: UiText? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- val textarea = Text.textarea(ui)
- varname?.let {
- textarea.varname(it)
- }
- value?.let {
- textarea.value(it)
- }
- if(fill) {
- textarea.fill(fill);
- }
- if(hexpand) {
- textarea.hexpand(true)
- }
- if(vexpand) {
- textarea.vexpand(true)
- }
- if(hfill) {
- textarea.hfill(true)
- }
- if(vfill) {
- textarea.vfill(true)
- }
- if(colspan > 0) {
- textarea.colspan(colspan)
- }
- if(rowspan > 0) {
- textarea.rowspan(rowspan)
- }
- if(overrideDefaults) {
- textarea.overrideDefaults(true)
- }
- if(margin > 0) {
- textarea.margin(margin)
- }
- if(marginLeft > 0) {
- textarea.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- textarea.marginRight(marginRight)
- }
- if(marginTop > 0) {
- textarea.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- textarea.marginBottom(marginBottom)
- }
- name?.let {
- textarea.name(it)
- }
- styleClass?.let {
- textarea.styleClass(it)
- }
- states?.let {
- textarea.states(*it)
- }
- onChange?.let {
- textarea.onChange(onChange)
- }
- return textarea.create()
- }
-
- private fun createTextField(
- textfield: TextFieldBuilder,
- varname: String? = null,
- value: UiString? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- varname?.let {
- textfield.varname(it)
- }
- value?.let {
- textfield.value(it)
- }
- if(fill) {
- textfield.fill(fill);
- }
- if(hexpand) {
- textfield.hexpand(true)
- }
- if(vexpand) {
- textfield.vexpand(true)
- }
- if(hfill) {
- textfield.hfill(true)
- }
- if(vfill) {
- textfield.vfill(true)
- }
- if(colspan > 0) {
- textfield.colspan(colspan)
- }
- if(rowspan > 0) {
- textfield.rowspan(rowspan)
- }
- if(overrideDefaults) {
- textfield.overrideDefaults(true)
- }
- if(margin > 0) {
- textfield.margin(margin)
- }
- if(marginLeft > 0) {
- textfield.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- textfield.marginRight(marginRight)
- }
- if(marginTop > 0) {
- textfield.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- textfield.marginBottom(marginBottom)
- }
- name?.let {
- textfield.name(it)
- }
- styleClass?.let {
- textfield.styleClass(it)
- }
- states?.let {
- textfield.states(*it)
- }
- onChange?.let {
- textfield.onChange(onChange)
- }
- return textfield.create()
- }
-
- fun textfield(
- varname: String? = null,
- value: UiString? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- val textfield = Text.textfield(ui)
- return createTextField(
- textfield = textfield,
- varname = varname,
- value = value,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- states = states,
- onChange = onChange
- )
- }
-
- fun passwordField(
- varname: String? = null,
- value: UiString? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- val textfield = Text.passwordfield(ui)
- return createTextField(
- textfield = textfield,
- varname = varname,
- value = value,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- states = states,
- onChange = onChange
- )
- }
-
- fun framelessTextfield(
- varname: String? = null,
- value: UiString? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- val textfield = Text.framelessTextfield(ui)
- return createTextField(
- textfield = textfield,
- varname = varname,
- value = value,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- margin = margin,
- marginLeft = marginLeft,
- marginRight = marginRight,
- marginTop = marginTop,
- marginBottom = marginBottom,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass,
- states = states,
- onChange = onChange
- )
- }
-
- fun spinbox(
- varname: String? = null,
- intValue: UiInteger? = null,
- doubleValue: UiDouble? = null,
- rangeValue: UiRange? = null,
- min: Double = 0.0,
- max: Double = 0.0,
- step: Double = 0.0,
- digits: Int = 0,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- states: IntArray? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- val spinbox = Entry.spinbox(ui)
- varname?.let {
- spinbox.varname(it)
- }
- intValue?.let {
- spinbox.intValue(it)
- }
- doubleValue?.let {
- spinbox.doubleValue(it)
- }
- rangeValue?.let {
- spinbox.rangeValue(it)
- }
- if(min != 0.0) {
- spinbox.min(min)
- }
- if(max != 0.0) {
- spinbox.max(max)
- }
- if(step != 0.0) {
- spinbox.step(step)
- }
- if(digits != 0) {
- spinbox.digits(digits)
- }
- if(fill) {
- spinbox.fill(fill);
- }
- if(hexpand) {
- spinbox.hexpand(true)
- }
- if(vexpand) {
- spinbox.vexpand(true)
- }
- if(hfill) {
- spinbox.hfill(true)
- }
- if(vfill) {
- spinbox.vfill(true)
- }
- if(colspan > 0) {
- spinbox.colspan(colspan)
- }
- if(rowspan > 0) {
- spinbox.rowspan(rowspan)
- }
- if(overrideDefaults) {
- spinbox.overrideDefaults(true)
- }
- if(margin > 0) {
- spinbox.margin(margin)
- }
- if(marginLeft > 0) {
- spinbox.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- spinbox.marginRight(marginRight)
- }
- if(marginTop > 0) {
- spinbox.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- spinbox.marginBottom(marginBottom)
- }
- name?.let {
- spinbox.name(it)
- }
- styleClass?.let {
- spinbox.styleClass(it)
- }
- states?.let {
- spinbox.states(*it)
- }
- onChange?.let {
- spinbox.onChange(onChange)
- }
- return spinbox.create()
- }
-
- fun webview(
- varname: String? = null,
- value: WebView? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- margin: Int = -1,
- marginLeft: Int = -1,
- marginRight: Int = -1,
- marginTop: Int = -1,
- marginBottom: Int = -1,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- onChange: EventHandler? = null
- ): UiWidget {
- val webview = WebView.webview(ui)
- varname?.let {
- webview.varname(it)
- }
- value?.let {
- webview.value(it)
- }
- if(fill) {
- webview.fill(fill);
- }
- if(hexpand) {
- webview.hexpand(true)
- }
- if(vexpand) {
- webview.vexpand(true)
- }
- if(hfill) {
- webview.hfill(true)
- }
- if(vfill) {
- webview.vfill(true)
- }
- if(colspan > 0) {
- webview.colspan(colspan)
- }
- if(rowspan > 0) {
- webview.rowspan(rowspan)
- }
- if(overrideDefaults) {
- webview.overrideDefaults(true)
- }
- if(margin > 0) {
- webview.margin(margin)
- }
- if(marginLeft > 0) {
- webview.marginLeft(marginLeft)
- }
- if(marginRight > 0) {
- webview.marginRight(marginRight)
- }
- if(marginTop > 0) {
- webview.marginTop(marginTop)
- }
- if(marginBottom > 0) {
- webview.marginBottom(marginBottom)
- }
- name?.let {
- webview.name(it)
- }
- styleClass?.let {
- webview.styleClass(it)
- }
- return webview.create()
- }
-
- private fun createLabel(
- label: LabelBuilder,
- labelStr: String? = null,
- align: Alignment? = null,
- style: LabelStyle? = null,
- varname: String? = null,
- value: UiString? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null,
- ): UiWidget {
- labelStr?.let {
- label.label(it)
- }
- align?.let {
- label.align(it)
- }
- style?.let {
- label.style(it)
- }
- varname?.let {
- label.varname(it)
- }
- value?.let {
- label.value(it)
- }
- if(fill) {
- label.fill(fill);
- }
- if(hexpand) {
- label.hexpand(true)
- }
- if(vexpand) {
- label.vexpand(true)
- }
- if(hfill) {
- label.hfill(true)
- }
- if(vfill) {
- label.vfill(true)
- }
- if(colspan > 0) {
- label.colspan(colspan)
- }
- if(rowspan > 0) {
- label.rowspan(rowspan)
- }
- if(overrideDefaults) {
- label.overrideDefaults(true)
- }
- name?.let {
- label.name(it)
- }
- styleClass?.let {
- label.styleClass(it)
- }
-
- return label.create()
- }
-
- fun label(
- label: String? = null,
- align: Alignment? = null,
- style: LabelStyle? = null,
- varname: String? = null,
- value: UiString? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null
- ): UiWidget {
- val labelBuilder = Label.label(ui)
- return createLabel(
- label = labelBuilder,
- labelStr = label,
- align = align,
- style = style,
- varname = varname,
- value = value,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass
- )
- }
-
- fun llabel(
- label: String? = null,
- style: LabelStyle? = null,
- varname: String? = null,
- value: UiString? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null
- ): UiWidget {
- val labelBuilder = Label.llabel(ui)
- return createLabel(
- label = labelBuilder,
- labelStr = label,
- style = style,
- varname = varname,
- value = value,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass
- )
- }
-
- fun rlabel(
- label: String? = null,
- style: LabelStyle? = null,
- varname: String? = null,
- value: UiString? = null,
- fill: Boolean = false,
- hexpand: Boolean = false,
- vexpand: Boolean = false,
- hfill: Boolean = false,
- vfill: Boolean = false,
- overrideDefaults: Boolean = false,
- colspan: Int = -1,
- rowspan: Int = -1,
- name: String? = null,
- styleClass: String? = null
- ): UiWidget {
- val labelBuilder = Label.rlabel(ui)
- return createLabel(
- label = labelBuilder,
- labelStr = label,
- style = style,
- varname = varname,
- value = value,
- fill = fill,
- hexpand = hexpand,
- vexpand = vexpand,
- hfill = hfill,
- vfill = vfill,
- overrideDefaults = overrideDefaults,
- colspan = colspan,
- rowspan = rowspan,
- name = name,
- styleClass = styleClass
- )
- }
-}
\ No newline at end of file
--- /dev/null
+package de.unixwork.ui.kotlin
+
+import de.unixwork.ui.*
+
+operator fun UiObject.invoke(block: UiObject.() -> Unit) {
+ block()
+}
+
+private fun UiObject.createContainer(
+ container: ContainerBuilder,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ defhexpand: Boolean = false,
+ defvexpand: Boolean = false,
+ defhfill: Boolean = false,
+ defvfill: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ spacing: Int = -1,
+ columnspacing: Int = -1,
+ rowspacing: Int = -1,
+ visibilityStates: IntArray? = null,
+ ui: ContainerUI? = null
+): UiWidget {
+ if(fill) {
+ container.fill(true)
+ }
+ if(hexpand) {
+ container.hexpand(true)
+ }
+ if(vexpand) {
+ container.vexpand(true)
+ }
+ if(hfill) {
+ container.hfill(true)
+ }
+ if(vfill) {
+ container.vfill(true)
+ }
+ if(overrideDefaults) {
+ container.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ container.margin(margin)
+ }
+ if(marginLeft > 0) {
+ container.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ container.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ container.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ container.marginBottom(marginBottom)
+ }
+ if(defhexpand) {
+ container.defaultHExpand(true)
+ }
+ if(defvexpand) {
+ container.defaultVExpand(true)
+ }
+ if(defhfill) {
+ container.defaultHfill(true)
+ }
+ if(defvfill) {
+ container.defaultVfill(true)
+ }
+ if(colspan > 0) {
+ container.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ container.rowspan(rowspan)
+ }
+ if(spacing > 0) {
+ container.spacing(spacing)
+ }
+ if(columnspacing > 0) {
+ container.columnspacing(columnspacing)
+ }
+ if(rowspacing > 0) {
+ container.rowspacing(rowspacing)
+ }
+ if(visibilityStates != null) {
+ container.visibilityStates(visibilityStates)
+ }
+
+ return container.create(ui)
+}
+
+fun UiObject.hbox(
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ spacing: Int = -1,
+ visibilityStates: IntArray? = null,
+ ui: ContainerUI? = null
+): UiWidget {
+ return createContainer(
+ container = Container.hbox(this),
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ spacing = spacing,
+ visibilityStates = visibilityStates,
+ ui = ui
+ )
+}
+
+
+fun UiObject.vbox(
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ spacing: Int = -1,
+ visibilityStates: IntArray? = null,
+ ui: ContainerUI? = null
+): UiWidget {
+ return createContainer(
+ container = Container.vbox(this),
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ spacing = spacing,
+ visibilityStates = visibilityStates,
+ ui = ui
+ )
+}
+
+
+fun UiObject.grid(
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ defhexpand: Boolean = false,
+ defvexpand: Boolean = false,
+ defhfill: Boolean = false,
+ defvfill: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ spacing: Int = -1,
+ columnspacing: Int = -1,
+ rowspacing: Int = -1,
+ visibilityStates: IntArray? = null,
+ ui: ContainerUI? = null
+): UiWidget {
+ return createContainer(
+ container = Container.grid(this),
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ defhexpand = defhexpand,
+ defhfill = defhfill,
+ defvexpand = defvexpand,
+ defvfill = defvfill,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ spacing = spacing,
+ columnspacing = columnspacing,
+ rowspacing = rowspacing,
+ visibilityStates = visibilityStates,
+ ui = ui
+ )
+}
+
+fun UiObject.row(
+ ui: ContainerUI? = null
+) {
+ ui?.callback()
+ Container.newline(this)
+}
+
+fun UiObject.tab(
+ label: String? = null,
+ ui: ContainerUI? = null
+) {
+ val tab = Container.tab(this, label)
+ ui?.callback()
+ tab.close()
+}
+
+private fun UiObject.createFrame(
+ container: FrameBuilder,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ padding: Int = -1,
+ spacing: Int = -1,
+ columnspacing: Int = -1,
+ rowspacing: Int = -1,
+ expanded: Boolean = false,
+ label: String? = null,
+ ui: ContainerUI? = null
+): UiWidget {
+ if(fill) {
+ container.fill(true)
+ }
+ if(hexpand) {
+ container.hexpand(true)
+ }
+ if(vexpand) {
+ container.vexpand(true)
+ }
+ if(hfill) {
+ container.hfill(true)
+ }
+ if(vfill) {
+ container.vfill(true)
+ }
+ if(overrideDefaults) {
+ container.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ container.margin(margin)
+ }
+ if(marginLeft > 0) {
+ container.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ container.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ container.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ container.marginBottom(marginBottom)
+ }
+ if(colspan > 0) {
+ container.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ container.rowspan(rowspan)
+ }
+ if(padding > 0) {
+ container.padding(padding)
+ }
+ if(spacing > 0) {
+ container.spacing(spacing)
+ }
+ if(columnspacing > 0) {
+ container.columnspacing(columnspacing)
+ }
+ if(rowspacing > 0) {
+ container.rowspacing(rowspacing)
+ }
+ if(expanded) {
+ container.isexpanded(true)
+ }
+ if(label != null) {
+ container.label(label)
+ }
+
+ return container.create(ui)
+}
+
+fun UiObject.frame(
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ padding: Int = -1,
+ spacing: Int = -1,
+ columnspacing: Int = -1,
+ rowspacing: Int = -1,
+ label: String? = null,
+ ui: ContainerUI? = null
+): UiWidget {
+ return createFrame(
+ container = Container.frame(this),
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ padding = padding,
+ spacing = spacing,
+ columnspacing = columnspacing,
+ rowspacing = rowspacing,
+ label = label,
+ ui = ui
+ )
+}
+
+fun UiObject.expander(
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ padding: Int = -1,
+ spacing: Int = -1,
+ columnspacing: Int = -1,
+ rowspacing: Int = -1,
+ expanded: Boolean = false,
+ label: String? = null,
+ ui: ContainerUI? = null
+): UiWidget {
+ return createFrame(
+ container = Container.expander(this),
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ padding = padding,
+ spacing = spacing,
+ columnspacing = columnspacing,
+ rowspacing = rowspacing,
+ expanded = expanded,
+ label = label,
+ ui = ui
+ )
+}
+
+fun UiObject.tabview(
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ padding: Int = -1,
+ spacing: Int = -1,
+ columnspacing: Int = -1,
+ rowspacing: Int = -1,
+ type: TabViewType = TabViewType.DEFAULT,
+ varname: String? = null,
+ value: UiInteger? = null,
+ onChange: EventHandler? = null,
+ ui: ContainerUI? = null
+): UiWidget {
+ val container = Container.tabview(this)
+ if(fill) {
+ container.fill(true)
+ }
+ if(hexpand) {
+ container.hexpand(true)
+ }
+ if(vexpand) {
+ container.vexpand(true)
+ }
+ if(hfill) {
+ container.hfill(true)
+ }
+ if(vfill) {
+ container.vfill(true)
+ }
+ if(overrideDefaults) {
+ container.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ container.margin(margin)
+ }
+ if(marginLeft > 0) {
+ container.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ container.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ container.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ container.marginBottom(marginBottom)
+ }
+ if(name != null) {
+ container.name(name)
+ }
+ if(styleClass != null) {
+ container.styleClass(styleClass)
+ }
+ if(colspan > 0) {
+ container.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ container.rowspan(rowspan)
+ }
+ if(padding > 0) {
+ container.margin(padding)
+ }
+ if(spacing > 0) {
+ container.spacing(spacing)
+ }
+ if(columnspacing > 0) {
+ container.columnspacing(columnspacing)
+ }
+ if(rowspacing > 0) {
+ container.rowspacing(rowspacing)
+ }
+ container.type(type)
+ if(varname != null) {
+ container.varname(varname)
+ }
+ if(value != null) {
+ container.value(value)
+ }
+ if(onChange != null) {
+ container.onChange(onChange)
+ }
+ return container.create(ui)
+}
+
+private fun UiObject.createSplitpane(
+ horizontal: Boolean,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ spacing: Int = -1,
+ initialPosition: Int = 0,
+ positionProperty: String? = null,
+ value: UiInteger? = null,
+ varname: String? = null,
+ maxPanes: Int = 0,
+ ui: ContainerUI? = null
+): UiWidget {
+ val container = if(horizontal) {
+ Container.hsplitview(this)
+ } else {
+ Container.vsplitview(this)
+ }
+
+ if(fill) {
+ container.fill(true)
+ }
+ if(hexpand) {
+ container.hexpand(true)
+ }
+ if(vexpand) {
+ container.vexpand(true)
+ }
+ if(hfill) {
+ container.hfill(true)
+ }
+ if(vfill) {
+ container.vfill(true)
+ }
+ if(overrideDefaults) {
+ container.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ container.margin(margin)
+ }
+ if(marginLeft > 0) {
+ container.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ container.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ container.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ container.marginBottom(marginBottom)
+ }
+ if(colspan > 0) {
+ container.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ container.rowspan(rowspan)
+ }
+ if(spacing > 0) {
+ container.spacing(spacing)
+ }
+ if(initialPosition > 0) {
+ container.initialPosition(initialPosition)
+ }
+ if(positionProperty != null) {
+ container.positionProperty(positionProperty)
+ }
+ if(value != null) {
+ container.value(value)
+ }
+ if(varname != null) {
+ container.varname(varname)
+ }
+ if(maxPanes > 0) {
+ container.maxPanes(maxPanes)
+ }
+ if(name != null) {
+ container.name(name)
+ }
+ if(styleClass != null) {
+ container.styleClass(styleClass)
+ }
+
+ return container.create(ui)
+}
+
+fun UiObject.hsplitpane(
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ spacing: Int = -1,
+ initialPosition: Int = 0,
+ positionProperty: String? = null,
+ value: UiInteger? = null,
+ varname: String? = null,
+ maxPanes: Int = 0,
+ ui: ContainerUI? = null
+): UiWidget {
+ return createSplitpane(
+ horizontal = true,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ spacing = spacing,
+ initialPosition = initialPosition,
+ positionProperty = positionProperty,
+ value = value,
+ varname = varname,
+ maxPanes = maxPanes,
+ ui = ui
+ )
+}
+
+fun UiObject.vsplitpane(
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ spacing: Int = -1,
+ initialPosition: Int = 0,
+ positionProperty: String? = null,
+ value: UiInteger? = null,
+ varname: String? = null,
+ maxPanes: Int = 0,
+ ui: ContainerUI? = null
+): UiWidget {
+ return createSplitpane(
+ horizontal = false,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ spacing = spacing,
+ initialPosition = initialPosition,
+ positionProperty = positionProperty,
+ value = value,
+ varname = varname,
+ maxPanes = maxPanes,
+ ui = ui
+ )
+}
+
+fun UiObject.sidebar(
+ name: String? = null,
+ styleClass: String? = null,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ spacing: Int = -1,
+ ui: ContainerUI? = null
+): UiWidget {
+ val container = Container.sidebar(this)
+ if(margin > 0) {
+ container.margin(margin)
+ }
+ if(marginLeft > 0) {
+ container.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ container.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ container.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ container.marginBottom(marginBottom)
+ }
+ if(spacing > 0) {
+ container.spacing(spacing)
+ }
+ if(name != null) {
+ container.name(name)
+ }
+ if(styleClass != null) {
+ container.styleClass(styleClass)
+ }
+
+ return container.create(ui)
+}
+
+fun UiObject.leftPanel(
+ name: String? = null,
+ styleClass: String? = null,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ spacing: Int = -1,
+ ui: ContainerUI? = null
+): UiWidget {
+ val container = Container.leftPanel(this)
+ if(margin > 0) {
+ container.margin(margin)
+ }
+ if(marginLeft > 0) {
+ container.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ container.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ container.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ container.marginBottom(marginBottom)
+ }
+ if(spacing > 0) {
+ container.spacing(spacing)
+ }
+ if(name != null) {
+ container.name(name)
+ }
+ if(styleClass != null) {
+ container.styleClass(styleClass)
+ }
+
+ return container.create(ui)
+}
+
+fun UiObject.rightPanel(
+ name: String? = null,
+ styleClass: String? = null,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ spacing: Int = -1,
+ ui: ContainerUI? = null
+): UiWidget {
+ val container = Container.rightPanel(this)
+ if(margin > 0) {
+ container.margin(margin)
+ }
+ if(marginLeft > 0) {
+ container.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ container.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ container.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ container.marginBottom(marginBottom)
+ }
+ if(spacing > 0) {
+ container.spacing(spacing)
+ }
+ if(name != null) {
+ container.name(name)
+ }
+ if(styleClass != null) {
+ container.styleClass(styleClass)
+ }
+
+ return container.create(ui)
+}
+
+fun UiObject.button(
+ label: String? = null,
+ icon: String? = null,
+ tooltip: String? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onClick: EventHandler? = null
+): UiWidget {
+ val button = Button.button(this)
+ label?.let {
+ button.label(it)
+ }
+ icon?.let {
+ button.icon(it)
+ }
+ tooltip?.let {
+ button.tooltip(it)
+ }
+ if(fill) {
+ button.fill(fill);
+ }
+ if(hexpand) {
+ button.hexpand(true)
+ }
+ if(vexpand) {
+ button.vexpand(true)
+ }
+ if(hfill) {
+ button.hfill(true)
+ }
+ if(vfill) {
+ button.vfill(true)
+ }
+ if(colspan > 0) {
+ button.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ button.rowspan(rowspan)
+ }
+ if(overrideDefaults) {
+ button.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ button.margin(margin)
+ }
+ if(marginLeft > 0) {
+ button.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ button.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ button.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ button.marginBottom(marginBottom)
+ }
+ name?.let {
+ button.name(name)
+ }
+ styleClass?.let {
+ button.styleClass(it)
+ }
+ states?.let {
+ button.states(*it)
+ }
+ onClick?.let {
+ button.onClick(onClick)
+ }
+ return button.create()
+}
+
+private fun UiObject.createToggleButton(
+ button: ToggleBuilder,
+ label: String? = null,
+ icon: String? = null,
+ tooltip: String? = null,
+ varname: String? = null,
+ value: UiInteger? = null,
+ enableState: Int = 0,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ label?.let {
+ button.label(it)
+ }
+ tooltip?.let {
+ button.tooltip(it)
+ }
+ varname?.let {
+ button.varname(it)
+ }
+ value?.let {
+ button.value(it)
+ }
+ if(enableState > 0) {
+ button.enableState(enableState)
+ }
+ if(fill) {
+ button.fill(fill);
+ }
+ if(hexpand) {
+ button.hexpand(true)
+ }
+ if(vexpand) {
+ button.vexpand(true)
+ }
+ if(hfill) {
+ button.hfill(true)
+ }
+ if(vfill) {
+ button.vfill(true)
+ }
+ if(colspan > 0) {
+ button.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ button.rowspan(rowspan)
+ }
+ if(overrideDefaults) {
+ button.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ button.margin(margin)
+ }
+ if(marginLeft > 0) {
+ button.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ button.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ button.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ button.marginBottom(marginBottom)
+ }
+ name?.let {
+ button.name(it)
+ }
+ styleClass?.let {
+ button.styleClass(it)
+ }
+ states?.let {
+ button.states(*it)
+ }
+ onChange?.let {
+ button.onChange(onChange)
+ }
+ return button.create()
+}
+
+fun UiObject.togglebutton(
+ label: String? = null,
+ icon: String? = null,
+ tooltip: String? = null,
+ varname: String? = null,
+ value: UiInteger? = null,
+ enableState: Int = 0,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ return createToggleButton(
+ button = Button.toggleButton(this),
+ label = label,
+ icon = icon,
+ tooltip = tooltip,
+ varname = varname,
+ value = value,
+ enableState = enableState,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ states = states,
+ onChange = onChange
+ )
+}
+
+fun UiObject.checkbox(
+ label: String? = null,
+ icon: String? = null,
+ tooltip: String? = null,
+ varname: String? = null,
+ value: UiInteger? = null,
+ enableState: Int = 0,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ return createToggleButton(
+ button = Button.checkbox(this),
+ label = label,
+ icon = icon,
+ tooltip = tooltip,
+ varname = varname,
+ value = value,
+ enableState = enableState,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ states = states,
+ onChange = onChange
+ )
+}
+
+fun UiObject.switch(
+ label: String? = null,
+ icon: String? = null,
+ tooltip: String? = null,
+ varname: String? = null,
+ value: UiInteger? = null,
+ enableState: Int = 0,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ return createToggleButton(
+ button = Button.switchButton(this),
+ label = label,
+ icon = icon,
+ tooltip = tooltip,
+ varname = varname,
+ value = value,
+ enableState = enableState,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ states = states,
+ onChange = onChange
+ )
+}
+
+fun UiObject.radiobutton(
+ label: String? = null,
+ icon: String? = null,
+ tooltip: String? = null,
+ varname: String? = null,
+ value: UiInteger? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ return createToggleButton(
+ button = Button.radioButton(this),
+ label = label,
+ icon = icon,
+ tooltip = tooltip,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ states = states,
+ onChange = onChange
+ )
+}
+
+fun UiObject.linkbutton(
+ label: String? = null,
+ uri: String? = null,
+ varname: String? = null,
+ value: UiString? = null,
+ nofollow: Boolean = false,
+ type: LinkButtonType? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onClick: EventHandler? = null
+): UiWidget {
+ val button = Button.linkButton(this)
+ label?.let {
+ button.label(it)
+ }
+ uri?.let {
+ button.uri(it)
+ }
+ varname?.let {
+ button.varname(it)
+ }
+ value?.let {
+ button.value(it)
+ }
+ if(nofollow) {
+ button.nofollow(nofollow)
+ }
+ if(type != null) {
+ button.type(type)
+ }
+ if(onClick != null) {
+ button.onClick(onClick)
+ }
+ if(fill) {
+ button.fill(fill);
+ }
+ if(hexpand) {
+ button.hexpand(true)
+ }
+ if(vexpand) {
+ button.vexpand(true)
+ }
+ if(hfill) {
+ button.hfill(true)
+ }
+ if(vfill) {
+ button.vfill(true)
+ }
+ if(colspan > 0) {
+ button.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ button.rowspan(rowspan)
+ }
+ if(overrideDefaults) {
+ button.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ button.margin(margin)
+ }
+ if(marginLeft > 0) {
+ button.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ button.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ button.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ button.marginBottom(marginBottom)
+ }
+ name?.let {
+ button.name(name)
+ }
+ styleClass?.let {
+ button.styleClass(it)
+ }
+ states?.let {
+ button.states(*it)
+ }
+ return button.create()
+}
+
+fun <T>UiObject.table(
+ model: TableModel,
+ varname: String? = null,
+ value: UiList<T>? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ contextmenu: Menu? = null,
+ onActivate: EventHandler? = null,
+ onSelection: EventHandler? = null,
+ onDragStart: EventHandler? = null,
+ onDragComplete: EventHandler? = null,
+ onDrop: EventHandler? = null,
+ onSave: ListSaveHandler? = null,
+ getstyle: ListStyleProvider<T>? = null,
+ getvalue: ListValueConverter<T>? = null
+): UiWidget {
+ val table = ListView.table<T>(this)
+ table.model(model)
+ varname?.let {
+ table.varname(varname)
+ }
+ value?.let {
+ table.value(value)
+ }
+ if(fill) {
+ table.fill(true)
+ }
+ if(hexpand) {
+ table.hexpand(true)
+ }
+ if(vexpand) {
+ table.vexpand(true)
+ }
+ if(hfill) {
+ table.hfill(true)
+ }
+ if(vfill) {
+ table.vfill(true)
+ }
+ if(overrideDefaults) {
+ table.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ table.margin(margin)
+ }
+ if(marginLeft > 0) {
+ table.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ table.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ table.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ table.marginBottom(marginBottom)
+ }
+ if(colspan > 0) {
+ table.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ table.rowspan(rowspan)
+ }
+ name?.let {
+ table.name(it)
+ }
+ styleClass?.let {
+ table.styleClass(it)
+ }
+ states?.let {
+ table.states(*it)
+ }
+ contextmenu?.let {
+ table.contextmenu(it)
+ }
+ onActivate?.let {
+ table.onActivate(it)
+ }
+ onSelection?.let {
+ table.onSelection(it)
+ }
+ onDragStart?.let {
+ table.onDragStart(it)
+ }
+ onDragComplete?.let {
+ table.onDragComplete(it)
+ }
+ onDrop?.let {
+ table.onDrop(it)
+ }
+ onSave?.let {
+ table.onSave(it)
+ }
+ getstyle?.let {
+ table.getstyle(it)
+ }
+ getvalue?.let {
+ table.getvalue(it)
+ }
+ return table.create()
+}
+
+fun <T>UiObject.createListView(
+ list: ListViewBuilder<T>,
+ varname: String? = null,
+ value: UiList<T>? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ contextmenu: Menu? = null,
+ onActivate: EventHandler? = null,
+ onSelection: EventHandler? = null,
+ onDragStart: EventHandler? = null,
+ onDragComplete: EventHandler? = null,
+ onDrop: EventHandler? = null,
+ getvalue: ListValueConverter<T>? = null
+): UiWidget {
+ varname?.let {
+ list.varname(varname)
+ }
+ value?.let {
+ list.value(value)
+ }
+ if(fill) {
+ list.fill(true)
+ }
+ if(hexpand) {
+ list.hexpand(true)
+ }
+ if(vexpand) {
+ list.vexpand(true)
+ }
+ if(hfill) {
+ list.hfill(true)
+ }
+ if(vfill) {
+ list.vfill(true)
+ }
+ if(overrideDefaults) {
+ list.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ list.margin(margin)
+ }
+ if(marginLeft > 0) {
+ list.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ list.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ list.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ list.marginBottom(marginBottom)
+ }
+ if(colspan > 0) {
+ list.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ list.rowspan(rowspan)
+ }
+ name?.let {
+ list.name(it)
+ }
+ styleClass?.let {
+ list.styleClass(it)
+ }
+ states?.let {
+ list.states(*it)
+ }
+ contextmenu?.let {
+ list.contextmenu(it)
+ }
+ onActivate?.let {
+ list.onActivate(it)
+ }
+ onSelection?.let {
+ list.onSelection(it)
+ }
+ onDragStart?.let {
+ list.onDragStart(it)
+ }
+ onDragComplete?.let {
+ list.onDragComplete(it)
+ }
+ onDrop?.let {
+ list.onDrop(it)
+ }
+ getvalue?.let {
+ list.getvalue(it)
+ }
+ return list.create()
+}
+
+fun <T>UiObject.listview(
+ varname: String? = null,
+ value: UiList<T>? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ contextmenu: Menu? = null,
+ onActivate: EventHandler? = null,
+ onSelection: EventHandler? = null,
+ onDragStart: EventHandler? = null,
+ onDragComplete: EventHandler? = null,
+ onDrop: EventHandler? = null,
+ getvalue: ListValueConverter<T>? = null
+): UiWidget {
+ val list = ListView.list<T>(this)
+ return createListView(
+ list = list,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ states = states,
+ contextmenu = contextmenu,
+ onActivate = onActivate,
+ onSelection = onSelection,
+ onDragStart = onDragStart,
+ onDragComplete = onDragComplete,
+ onDrop = onDrop,
+ getvalue = getvalue
+ )
+}
+
+fun <T>UiObject.dropdown(
+ varname: String? = null,
+ value: UiList<T>? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onActivate: EventHandler? = null,
+ getvalue: ListValueConverter<T>? = null
+): UiWidget {
+ val list = ListView.dropdown<T>(this)
+ return createListView(
+ list = list,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ states = states,
+ onActivate = onActivate,
+ getvalue = getvalue
+ )
+}
+
+fun <T>UiObject.sourcelist(
+ varname: String? = null,
+ sourceList: UiSourceList? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ contextmenu: Menu? = null,
+ headerIsItem: Boolean = false,
+ onActivate: EventHandler? = null,
+ onButtonClick: EventHandler? = null,
+ getvalue: SubListValueConverter<T>? = null
+): UiWidget {
+ val list = ListView.sourcelist<T>(this)
+ varname?.let {
+ list.varname(varname)
+ }
+ sourceList?.let {
+ list.dynamicSublists(sourceList)
+ }
+ if(fill) {
+ list.fill(true)
+ }
+ if(hexpand) {
+ list.hexpand(true)
+ }
+ if(vexpand) {
+ list.vexpand(true)
+ }
+ if(hfill) {
+ list.hfill(true)
+ }
+ if(vfill) {
+ list.vfill(true)
+ }
+ if(overrideDefaults) {
+ list.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ list.margin(margin)
+ }
+ if(marginLeft > 0) {
+ list.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ list.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ list.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ list.marginBottom(marginBottom)
+ }
+ if(colspan > 0) {
+ list.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ list.rowspan(rowspan)
+ }
+ name?.let {
+ list.name(it)
+ }
+ styleClass?.let {
+ list.styleClass(it)
+ }
+ contextmenu?.let {
+ list.contextmenu(it)
+ }
+ if(headerIsItem) {
+ list.headerIsItem(true)
+ }
+ onActivate?.let {
+ list.onActivate(it)
+ }
+ onButtonClick?.let {
+ list.onButtonClick(it)
+ }
+ getvalue?.let {
+ list.getvalue(it)
+ }
+ return list.create()
+}
+
+fun UiObject.textarea(
+ varname: String? = null,
+ value: UiText? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ val textarea = Text.textarea(this)
+ varname?.let {
+ textarea.varname(it)
+ }
+ value?.let {
+ textarea.value(it)
+ }
+ if(fill) {
+ textarea.fill(fill);
+ }
+ if(hexpand) {
+ textarea.hexpand(true)
+ }
+ if(vexpand) {
+ textarea.vexpand(true)
+ }
+ if(hfill) {
+ textarea.hfill(true)
+ }
+ if(vfill) {
+ textarea.vfill(true)
+ }
+ if(colspan > 0) {
+ textarea.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ textarea.rowspan(rowspan)
+ }
+ if(overrideDefaults) {
+ textarea.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ textarea.margin(margin)
+ }
+ if(marginLeft > 0) {
+ textarea.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ textarea.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ textarea.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ textarea.marginBottom(marginBottom)
+ }
+ name?.let {
+ textarea.name(it)
+ }
+ styleClass?.let {
+ textarea.styleClass(it)
+ }
+ states?.let {
+ textarea.states(*it)
+ }
+ onChange?.let {
+ textarea.onChange(onChange)
+ }
+ return textarea.create()
+}
+
+private fun UiObject.createTextField(
+ textfield: TextFieldBuilder,
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ varname?.let {
+ textfield.varname(it)
+ }
+ value?.let {
+ textfield.value(it)
+ }
+ if(fill) {
+ textfield.fill(fill);
+ }
+ if(hexpand) {
+ textfield.hexpand(true)
+ }
+ if(vexpand) {
+ textfield.vexpand(true)
+ }
+ if(hfill) {
+ textfield.hfill(true)
+ }
+ if(vfill) {
+ textfield.vfill(true)
+ }
+ if(colspan > 0) {
+ textfield.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ textfield.rowspan(rowspan)
+ }
+ if(overrideDefaults) {
+ textfield.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ textfield.margin(margin)
+ }
+ if(marginLeft > 0) {
+ textfield.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ textfield.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ textfield.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ textfield.marginBottom(marginBottom)
+ }
+ name?.let {
+ textfield.name(it)
+ }
+ styleClass?.let {
+ textfield.styleClass(it)
+ }
+ states?.let {
+ textfield.states(*it)
+ }
+ onChange?.let {
+ textfield.onChange(onChange)
+ }
+ return textfield.create()
+}
+
+fun UiObject.textfield(
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ val textfield = Text.textfield(this)
+ return createTextField(
+ textfield = textfield,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ states = states,
+ onChange = onChange
+ )
+}
+
+fun UiObject.passwordField(
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ val textfield = Text.passwordfield(this)
+ return createTextField(
+ textfield = textfield,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ states = states,
+ onChange = onChange
+ )
+}
+
+fun UiObject.framelessTextfield(
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ val textfield = Text.framelessTextfield(this)
+ return createTextField(
+ textfield = textfield,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ margin = margin,
+ marginLeft = marginLeft,
+ marginRight = marginRight,
+ marginTop = marginTop,
+ marginBottom = marginBottom,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ states = states,
+ onChange = onChange
+ )
+}
+
+fun UiObject.spinbox(
+ varname: String? = null,
+ intValue: UiInteger? = null,
+ doubleValue: UiDouble? = null,
+ rangeValue: UiRange? = null,
+ min: Double = 0.0,
+ max: Double = 0.0,
+ step: Double = 0.0,
+ digits: Int = 0,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ states: IntArray? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ val spinbox = Entry.spinbox(this)
+ varname?.let {
+ spinbox.varname(it)
+ }
+ intValue?.let {
+ spinbox.intValue(it)
+ }
+ doubleValue?.let {
+ spinbox.doubleValue(it)
+ }
+ rangeValue?.let {
+ spinbox.rangeValue(it)
+ }
+ if(min != 0.0) {
+ spinbox.min(min)
+ }
+ if(max != 0.0) {
+ spinbox.max(max)
+ }
+ if(step != 0.0) {
+ spinbox.step(step)
+ }
+ if(digits != 0) {
+ spinbox.digits(digits)
+ }
+ if(fill) {
+ spinbox.fill(fill);
+ }
+ if(hexpand) {
+ spinbox.hexpand(true)
+ }
+ if(vexpand) {
+ spinbox.vexpand(true)
+ }
+ if(hfill) {
+ spinbox.hfill(true)
+ }
+ if(vfill) {
+ spinbox.vfill(true)
+ }
+ if(colspan > 0) {
+ spinbox.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ spinbox.rowspan(rowspan)
+ }
+ if(overrideDefaults) {
+ spinbox.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ spinbox.margin(margin)
+ }
+ if(marginLeft > 0) {
+ spinbox.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ spinbox.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ spinbox.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ spinbox.marginBottom(marginBottom)
+ }
+ name?.let {
+ spinbox.name(it)
+ }
+ styleClass?.let {
+ spinbox.styleClass(it)
+ }
+ states?.let {
+ spinbox.states(*it)
+ }
+ onChange?.let {
+ spinbox.onChange(onChange)
+ }
+ return spinbox.create()
+}
+
+fun UiObject.webview(
+ varname: String? = null,
+ value: WebView? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ margin: Int = -1,
+ marginLeft: Int = -1,
+ marginRight: Int = -1,
+ marginTop: Int = -1,
+ marginBottom: Int = -1,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ onChange: EventHandler? = null
+): UiWidget {
+ val webview = WebView.webview(this)
+ varname?.let {
+ webview.varname(it)
+ }
+ value?.let {
+ webview.value(it)
+ }
+ if(fill) {
+ webview.fill(fill);
+ }
+ if(hexpand) {
+ webview.hexpand(true)
+ }
+ if(vexpand) {
+ webview.vexpand(true)
+ }
+ if(hfill) {
+ webview.hfill(true)
+ }
+ if(vfill) {
+ webview.vfill(true)
+ }
+ if(colspan > 0) {
+ webview.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ webview.rowspan(rowspan)
+ }
+ if(overrideDefaults) {
+ webview.overrideDefaults(true)
+ }
+ if(margin > 0) {
+ webview.margin(margin)
+ }
+ if(marginLeft > 0) {
+ webview.marginLeft(marginLeft)
+ }
+ if(marginRight > 0) {
+ webview.marginRight(marginRight)
+ }
+ if(marginTop > 0) {
+ webview.marginTop(marginTop)
+ }
+ if(marginBottom > 0) {
+ webview.marginBottom(marginBottom)
+ }
+ name?.let {
+ webview.name(it)
+ }
+ styleClass?.let {
+ webview.styleClass(it)
+ }
+ return webview.create()
+}
+
+private fun UiObject.createLabel(
+ label: LabelBuilder,
+ labelStr: String? = null,
+ align: Alignment? = null,
+ style: LabelStyle? = null,
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+): UiWidget {
+ labelStr?.let {
+ label.label(it)
+ }
+ align?.let {
+ label.align(it)
+ }
+ style?.let {
+ label.style(it)
+ }
+ varname?.let {
+ label.varname(it)
+ }
+ value?.let {
+ label.value(it)
+ }
+ if(fill) {
+ label.fill(fill);
+ }
+ if(hexpand) {
+ label.hexpand(true)
+ }
+ if(vexpand) {
+ label.vexpand(true)
+ }
+ if(hfill) {
+ label.hfill(true)
+ }
+ if(vfill) {
+ label.vfill(true)
+ }
+ if(colspan > 0) {
+ label.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ label.rowspan(rowspan)
+ }
+ if(overrideDefaults) {
+ label.overrideDefaults(true)
+ }
+ name?.let {
+ label.name(it)
+ }
+ styleClass?.let {
+ label.styleClass(it)
+ }
+
+ return label.create()
+}
+
+fun UiObject.label(
+ label: String? = null,
+ align: Alignment? = null,
+ style: LabelStyle? = null,
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null
+): UiWidget {
+ val labelBuilder = Label.label(this)
+ return createLabel(
+ label = labelBuilder,
+ labelStr = label,
+ align = align,
+ style = style,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass
+ )
+}
+
+fun UiObject.llabel(
+ label: String? = null,
+ style: LabelStyle? = null,
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null
+): UiWidget {
+ val labelBuilder = Label.llabel(this)
+ return createLabel(
+ label = labelBuilder,
+ labelStr = label,
+ style = style,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass
+ )
+}
+
+fun UiObject.rlabel(
+ label: String? = null,
+ style: LabelStyle? = null,
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null
+): UiWidget {
+ val labelBuilder = Label.rlabel(this)
+ return createLabel(
+ label = labelBuilder,
+ labelStr = label,
+ style = style,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass
+ )
+}
import de.unixwork.ui.EventHandler
import de.unixwork.ui.UiObject
-fun window(title: String, width: Int = 0, height: Int = 0, ui: (Toplevel.() -> Unit)? = null): Toplevel {
+fun window(title: String, width: Int = 0, height: Int = 0, ui: (UiObject.() -> Unit)? = null): UiObject {
val obj = UiObject.createWindow(title)
if(width > 0 && height > 0) {
obj.setSize(width, height)
}
- val toplevel = Toplevel(obj)
- ui?.invoke(toplevel)
- return toplevel
+ ui?.invoke(obj)
+ return obj
}
-fun simpleWindow(title: String, width: Int = 0, height: Int = 0, ui: (Toplevel.() -> Unit)? = null): Toplevel {
+fun simpleWindow(title: String, width: Int = 0, height: Int = 0, ui: (UiObject.() -> Unit)? = null): UiObject {
val obj = UiObject.createSimpleWindow(title)
if(width > 0 && height > 0) {
obj.setSize(width, height)
}
- val toplevel = Toplevel(obj)
- ui?.invoke(toplevel)
- return toplevel
+ ui?.invoke(obj)
+ return obj
}
-fun sidebarWindow(title: String, width: Int = 0, height: Int = 0, ui: (Toplevel.() -> Unit)? = null): Toplevel {
+fun sidebarWindow(title: String, width: Int = 0, height: Int = 0, ui: (UiObject.() -> Unit)? = null): UiObject {
val obj = UiObject.createSidebarWindow(title)
if(width > 0 && height > 0) {
obj.setSize(width, height)
}
- val toplevel = Toplevel(obj)
- ui?.invoke(toplevel)
- return toplevel
+ ui?.invoke(obj)
+ return obj
}
-fun splitViewWindow(title: String, sidebar: Boolean = false, width: Int = 0, height: Int = 0, ui: (Toplevel.() -> Unit)? = null): Toplevel {
+fun splitViewWindow(title: String, sidebar: Boolean = false, width: Int = 0, height: Int = 0, ui: (UiObject.() -> Unit)? = null): UiObject {
val obj = UiObject.createSplitViewWindow(title, sidebar)
if(width > 0 && height > 0) {
obj.setSize(width, height)
}
- val toplevel = Toplevel(obj)
- ui?.invoke(toplevel)
- return toplevel
+ ui?.invoke(obj)
+ return obj
}
fun dialog(
width: Int = 0,
height: Int = 0,
onClick: EventHandler? = null,
- ui: (Toplevel.() -> Unit)?): Toplevel
+ ui: (UiObject.() -> Unit)?): UiObject
{
val builder = DialogWindowBuilder(parent)
title?.let {
builder.onClick(it)
}
- val toplevel = Toplevel(builder.create())
- ui?.invoke(toplevel)
- return toplevel
+ val obj = builder.create()
+ ui?.invoke(obj)
+ return obj
}
fun openFileDialog(
}
val win = window("Test Window") {
- val mystr = ui.string()
+ val mystr = string()
grid {
vbox(vexpand = true, vfill = true) {
button("B1") {