Skip to content

Instantly share code, notes, and snippets.

@mandel59
Created December 18, 2012 05:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mandel59/4325247 to your computer and use it in GitHub Desktop.
Save mandel59/4325247 to your computer and use it in GitHub Desktop.
https://github.com/pavouk/lgi/blob/master/samples/mxwidgets.lua をMoonScriptに移植、一部改変したもの。
#!/usr/bin/env moon
lgi = require 'lgi'
import GObject from lgi
Mx = lgi.require 'Mx', '1.0'
app = Mx.Application application_name: 'App'
button = Mx.Button
label: 'Click me'
tooltip_text: 'Please click this button!'
on_clicked: do
i = 0
=>
i += 1
@label = "Thank you! #{i}"
return
combo = with Mx.ComboBox!
\append_text name for name in *{
'Africa'
'Antarctica'
'Asia'
'Australia'
'Europe'
'North America'
'South America'
}
.index = 0
.on_notify.index = =>
print "selected continent: #{@active_text}"
hbox = with Mx.BoxLayout!
\add button, combo
button = Mx.Button label: 'Button'
entry = Mx.Entry text: 'Entry'
combo = with Mx.ComboBox active_text: 'Combo Box'
\append_text 'Hello'
scrollbar = Mx.ScrollBar
adjustment: Mx.Adjustment
lower: 0, upper: 10
page_increment: 1, page_size: 1
progressbar = Mx.ProgressBar progress: 0.7
slider = Mx.Slider!
pathbar = with Mx.PathBar!
\push path for path in *{'', 'Path', 'Bar'}
expander = with Mx.Expander label: 'Expander'
\add_actor Mx.Label text: 'Hello'
toggle = Mx.Toggle!
togglebutton = Mx.Button label: 'Toggle', is_toggle: true
checkbutton = with Mx.Button is_toggle: true
\set_style_class 'check-box'
togglebutton\bind_property 'toggled', checkbutton, 'toggled',
GObject.BindingFlags.BIDIRECTIONAL
widgets = {
button, entry, combo
scrollbar, progressbar, slider
pathbar, expander, toggle
togglebutton, checkbutton
}
vscrollbar = Mx.ScrollBar
adjustment: Mx.Adjustment
lower: 0, upper: 10
page_increment: 1, page_size: 1
orientation: Mx.Orientation.VERTICAL
width: 22
window = with app\create_window!
.clutter_stage\set_size 640, 480
.toolbar\add_actor hbox
.clutter_stage\show!
.child = Mx.Frame
child: with Mx.Table column_spacing: 24, row_spacing: 24
for index, actor in ipairs widgets
\add_actor actor,
(math.floor (index - 1) / 3), (index - 1) % 3
.meta[actor].y_fill = false
.meta[checkbutton].x_fill = false
\add_actor vscrollbar, 0, 3
.meta[vscrollbar].row_span = 3
app\run!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment