117 lines
2.6 KiB
Text
117 lines
2.6 KiB
Text
/* Window_management.wren */
|
|
|
|
var GTK_WINDOW_TOPLEVEL = 0
|
|
var GTK_ORIENTATION_VERTICAL = 1
|
|
var GTK_BUTTONBOX_CENTER = 5
|
|
|
|
foreign class GtkWindow {
|
|
construct new(type) {}
|
|
|
|
foreign title=(title)
|
|
foreign setDefaultSize(width, height)
|
|
|
|
foreign add(widget)
|
|
foreign connectDestroy()
|
|
|
|
foreign showAll()
|
|
foreign iconify()
|
|
foreign deiconify()
|
|
foreign maximize()
|
|
foreign unmaximize()
|
|
foreign move(x, y)
|
|
foreign resize(width, height)
|
|
foreign hide()
|
|
foreign destroy()
|
|
}
|
|
|
|
foreign class GtkButtonBox {
|
|
construct new(orientation) {}
|
|
|
|
foreign spacing=(interval)
|
|
foreign layout=(layoutStyle)
|
|
|
|
foreign add(button)
|
|
}
|
|
|
|
foreign class GtkButton {
|
|
construct newWithLabel(label) {}
|
|
|
|
foreign connectClicked()
|
|
}
|
|
|
|
class Gdk {
|
|
foreign static flush()
|
|
}
|
|
|
|
class C {
|
|
foreign static sleep(secs)
|
|
}
|
|
|
|
var Window = GtkWindow.new(GTK_WINDOW_TOPLEVEL)
|
|
Window.title = "Window management"
|
|
Window.setDefaultSize(400, 400)
|
|
Window.connectDestroy()
|
|
|
|
class GtkCallbacks {
|
|
static btnClicked(label) {
|
|
if (label == "Minimize") {
|
|
Window.iconify()
|
|
} else if (label == "Unminimize") {
|
|
Window.deiconify()
|
|
} else if (label == "Maximize") {
|
|
Window.maximize()
|
|
} else if (label == "Unmaximize") {
|
|
Window.unmaximize()
|
|
} else if (label == "Move") {
|
|
Window.move(0, 0) // move to top left hand corner of display
|
|
} else if (label == "Resize") {
|
|
Window.resize(600, 600)
|
|
} else if (label == "Hide") {
|
|
Window.hide()
|
|
Gdk.flush()
|
|
C.sleep(5) // wait 5 seconds
|
|
Window.showAll()
|
|
} else if (label == "Close") {
|
|
Window.destroy()
|
|
}
|
|
}
|
|
}
|
|
|
|
var buttonBox = GtkButtonBox.new(GTK_ORIENTATION_VERTICAL)
|
|
buttonBox.spacing = 20
|
|
buttonBox.layout = GTK_BUTTONBOX_CENTER
|
|
Window.add(buttonBox)
|
|
|
|
var btnMin = GtkButton.newWithLabel("Minimize")
|
|
btnMin.connectClicked()
|
|
buttonBox.add(btnMin)
|
|
|
|
var btnUnmin = GtkButton.newWithLabel("Unminimize")
|
|
btnUnmin.connectClicked()
|
|
buttonBox.add(btnUnmin)
|
|
|
|
var btnMax = GtkButton.newWithLabel("Maximize")
|
|
btnMax.connectClicked()
|
|
buttonBox.add(btnMax)
|
|
|
|
var btnUnmax = GtkButton.newWithLabel("Unmaximize")
|
|
btnUnmax.connectClicked()
|
|
buttonBox.add(btnUnmax)
|
|
|
|
var btnMove = GtkButton.newWithLabel("Move")
|
|
btnMove.connectClicked()
|
|
buttonBox.add(btnMove)
|
|
|
|
var btnResize = GtkButton.newWithLabel("Resize")
|
|
btnResize.connectClicked()
|
|
buttonBox.add(btnResize)
|
|
|
|
var btnHide = GtkButton.newWithLabel("Hide")
|
|
btnHide.connectClicked()
|
|
buttonBox.add(btnHide)
|
|
|
|
var btnClose = GtkButton.newWithLabel("Close")
|
|
btnClose.connectClicked()
|
|
buttonBox.add(btnClose)
|
|
|
|
Window.showAll()
|