=={{header|Nim}}==
==={{libheader|Gtk2}}===
<lang nim>import os
import gdk2, glib2, gtk2,
os
proc thisDestroy(widget: pWidget,PWidget; data: pgpointerPgpointer) {.cdecl.} =
main_quit()
proc thisMax(widget: pWidget, data: pgpointer){.cdecl.} = ▼
maximize(get_parent_window(widget)) ▼
proc thisUnmax(widget: pWidget, data: pgpointer){.cdecl.} = ▼
unmaximize(get_parent_window(widget)) ▼
proc thisIcon(widget: pWidget, data: pgpointer){.cdecl.} = ▼
iconify(get_parent_window(widget)) ▼
proc thisDeicon(widget: pWidget, data: pgpointer){.cdecl.} = ▼
deiconify(get_parent_window(widget)) ▼
proc thisHide(widget: pWidget, data: pgpointer){.cdecl.} = ▼
hide(get_parent_window(widget)) ▼
show(get_parent_window(widget)) ▼
proc thisShow(widget: pWidget, data: pgpointer){.cdecl.} = ▼
show(get_parent_window(widget)) ▼
▲proc thisMax(widget: pWidget,PWidget; data: pgpointerPgpointer) {.cdecl.} =
var isshifted: bool = false ▼
▲ hide(widget.get_parent_window( widget) .maximize()
proc thisMove(widget: pWidget, data: pgpointer){.cdecl.} = ▼
▲proc thisUnmax(widget: pWidget,PWidget; data: pgpointerPgpointer) {.cdecl.} =
▲ show(widget.get_parent_window( widget) .unmaximize()
▲proc thisIcon(widget: pWidget,PWidget; data: pgpointerPgpointer) {.cdecl.} =
▲ deiconify(widget.get_parent_window( widget) .iconify()
▲proc thisDeicon(widget: pWidget,PWidget; data: pgpointerPgpointer) {.cdecl.} =
▲ show(widget.get_parent_window( widget) .deiconify()
▲proc thisHide(widget: pWidget,PWidget; data: pgpointerPgpointer) {.cdecl.} =
▲ maximize(widget.get_parent_window( widget) .hide()
▲ unmaximize(widget.get_parent_window( widget) .show()
▲proc thisShow(widget: pWidget,PWidget; data: pgpointerPgpointer) {.cdecl.} =
▲ iconify(widget.get_parent_window( widget) .show()
▲var isshifted: boolisShifted = false
▲proc thisMove(widget: pWidget,PWidget; data: pgpointerPgpointer) {.cdecl.} =
var w, h: gint
get_size(widget.get_parent_window(widget), Addr.get_size(addr(w), Addraddr(h))
if isshifted:
move(widget.get_parent_window(widget), .move(w - 10, h - 10)
else:
move(widget.get_parent_window(widget), .move(w + 10, h + 10)
isshiftedisShifted = not isshiftedisShifted
nim_init()
varlet window = window_new(gtk2.WINDOW_TOPLEVEL)
discard window.allow_grow(window)
window.set_title(window,"Window management")
let
var stackbox = vbox_new(TRUEtrue, 10)
var bmax = button_new("maximize") ▼
var bunmax bMax = button_new("unmaximizemaximize")
var bicon bUnmax = button_new("iconizeunmaximize")
var bdeicon bIcon = button_new("deiconizeiconize")
var bhide bDeicon = button_new("hidedeiconize")
var bshow bHide = button_new("showhide")
var bmove bShow = button_new("moveshow")
var bquit bMove = button_new("Quitmove")
▲var bmax bQuit = button_new(" maximizeQuit")
pack_start(stackbox, bmax, TRUE, TRUE, 0)
pack_start(stackbox, bunmax, TRUE, TRUE, 0)
pack_start(stackbox, bicon, TRUE, TRUE, 0)
pack_start(stackbox, bdeicon, TRUE, TRUE, 0)
pack_start(stackbox, bhide, TRUE, TRUE, 0)
pack_start(stackbox, bshow, TRUE, TRUE, 0)
pack_start(stackbox, bmove, TRUE, TRUE, 0)
pack_start(stackbox, bquit, TRUE, TRUE, 0)
set_border_width(Window, 5) ▼
discard signal_connect(window, "destroy",
SIGNAL_FUNC(thisDestroy), nil) ▼
stackbox.pack_start(bMax, true, true, 0)
discard signal_connect(bicon, "clicked", ▼
stackbox.pack_start(bUnmax, true, true, 0)
SIGNAL_FUNC(thisIcon), nil)
stackbox.pack_start(bIcon, true, true, 0)
discard signal_connect(bdeicon, "clicked", ▼
stackbox.pack_start(bDeicon, true, true, 0)
SIGNAL_FUNC(thisDeicon), nil)
stackbox.pack_start(bHide, true, true, 0)
discard signal_connect(bmax, "clicked", ▼
stackbox.pack_start(bShow, true, true, 0)
SIGNAL_FUNC(thisMax), nil)
stackbox.pack_start(bMove, true, true, 0)
discard signal_connect(bunmax, "clicked",
stackbox.pack_start(bQuit, true, true, 0)
SIGNAL_FUNC(thisUnmax), nil)
▲window.set_border_width( Window, 5)
discard signal_connect(bhide, "clicked",
▲window.add( window, stackbox)
SIGNAL_FUNC(thisHide), nil)
discard signal_connect(bshow, "clicked",
discard window.signal_connect("destroy", SIGNAL_FUNC(thisShowthisDestroy), nil)
discard bIcon.signal_connect(bmove, "clicked", SIGNAL_FUNC(thisIcon), nil)
discard bDeicon.signal_connect("clicked", SIGNAL_FUNC(thismovethisDeicon), nil)
discard bMax.signal_connect(bquit, "clicked", SIGNAL_FUNC(thisMax), nil)
discard bUnmax.signal_connect("clicked", SIGNAL_FUNC(thisDestroythisUnmax), nil)
▲discard bHide.signal_connect( bicon, "clicked", SIGNAL_FUNC(thisHide), nil)
▲discard bShow.signal_connect( bdeicon, "clicked", SIGNAL_FUNC(thisShow), nil)
▲discard bMove.signal_connect( bmax, "clicked", SIGNAL_FUNC(thismove), nil)
▲discard bQuit.signal_connect("clicked", SIGNAL_FUNC(thisDestroy), nil)
main()</lang>
==={{libheader|IUP}}===
<lang nim>import iup
|