Skip to content

pisaiah/ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iUI

0.0.20 GitHub vlang

Cross-platform GUI library for V. Inspired by the syntax of Java's Swing & my take on WinUI-3 Style.

Example: (examples/demo/)

Example

fn main() {
	mut window := ui.Window.new(
		title: 'My App'
		width: 640
		height: 480
	)

	// Create Button
	mut btn := ui.Button.new(text: 'My Button')
	btn.subscribe_event('mouse_up', on_click_event)

	// Add Button to Window & Run
	window.add_child(btn)
	window.gg.run()
}

fn on_click_event(e &ui.MouseEvent) {
	println('Button clicked!')
}

Install

Install via VPM:

v install https://github.com/pisaiah/ui

then

import iui as ui

Components, Containers, & Layouts

Components Containers Panel Layouts
Button Window Flow Layout
Checkbox Panel Border Layout
Hyperlink Tabbox Box Layout
Image Modal Grid Layout
InternalFrame Page Card Layout
Label ButtonGroup
Menubar ScrollView
MenuItem Splitview
NavPaneItem TitleGroup
ProgressBar Popup
Selectbox DesktopPane
Slider NavPane
Switch
Textbox
TextField
Treeview
  • Components are the elements of the UI (buttons, inputs, etc).
  • Containers are components that are designed to contain other components (known as children).
  • Layouts define how the Panel container positions it's children.

More details about Layout: A Visual Guide to Layout Managers - docs.oracle.com

Themes

Light:
- Default, Minty, Ocean, Seven.
Dark:
- Dark (with Blue/Red/Green/or RGB Accent), Seven Dark.

Included Examples

BorderLayout DemoInternal FramesNavigation Pane
Border Layout Demo Internal Frames Navigation Pane
NotepadCalculatorClockVideo Player
See: Notepad Calculator Clock Video Player (requires libmpv)
Mines(Tic Tac Toe)^2Snake
Code: 1-Minesweeper
Demo: Play online (via WASM)
2-Tic-Tac-Toe-Squared
Play online (WASM)
3-Snake

Used in

image

License

This project is licensed under MIT OR Boost.


Veasel (v mascot) on a Swing