ui icon indicating copy to clipboard operation
ui copied to clipboard

Clearer UI syntax

Open dudejj opened this issue 1 year ago • 5 comments

UI code as shown in demo example is more or less confusing, notably for beginner. Same demo can be created like this, which syntax may be much more attractive and easier to grasp:

struct App {
mut:
	window     &ui.Window = unsafe { nil }
	first_name string
	last_name  string
}

fn main() {
	mut app := &App{}

	// components
	txtbox1 := ui.textbox(
		max_len: 20
		width: 200
		placeholder: 'First name'
		text: &app.first_name
	)

	txtbox2 := ui.textbox(
		max_len: 50
		width: 200
		placeholder: 'Last name'
		text: &app.last_name
	)

	// containers
	col := ui.column(
		width: 200
		spacing: 13
		children: [txtbox1, txtbox2]
	)

	row := ui.row(
		margin: ui.Margin{10, 10, 10, 10}
		children: [col]
	)

	// window
	app.window = ui.window(
		width: 600
		height: 400
		title: 'V UI Demo'
		children: [row]
	)

	ui.run(app.window)
}

Maybe clearer yet could be adding widgets and containers like this (which don't work at the moment):

col.children << [txtbox1, txtbox2] row.children << [col] app.window.children << [row]

dudejj avatar Apr 19 '24 10:04 dudejj

A style where people might deem more comfortable for writing code on a single line and saving some space, can be seen with MUI. Of course it's going to come down to preferences. But it does show that the VUI can be built on top of and further tailored to particular tastes with other libraries.

Regardless, do think this is an interesting idea, to increase clarity.

Wajinn avatar Jul 13 '24 12:07 Wajinn

Before reaching for the stars, does text input work as expected on all "supported" platforms in the meantime? Last time I tried Android was a problem.

xandro0777 avatar Jul 14 '24 08:07 xandro0777

...does text input work as expected on all "supported" platforms in the meantime? Last time I tried Android was a problem.

The comments do not appear related to this issue. Perhaps open a new issue or one at VAB, with an example and specific details.

Wajinn avatar Sep 16 '24 19:09 Wajinn