Created
December 18, 2012 05:14
-
-
Save mandel59/4325247 to your computer and use it in GitHub Desktop.
https://github.com/pavouk/lgi/blob/master/samples/mxwidgets.lua をMoonScriptに移植、一部改変したもの。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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