blob: b684a11e899f950deacb28e9c97924e57e534dc5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# META NAME Kiosk
# META DESCRIPTION all windows in fullscreen mode
# META DESCRIPTION main window invisible
# META DESCRIPTION no keybindings
# META AUTHOR IOhannes m zmölnig <zmoelnig@iem.at>
package require Tcl 8.5
package require Tk
package require pdwindow 0.1
namespace eval ::kiosk:: {
variable showmenu False
variable fullscreen True
variable hidemain True
variable windowtitle "FOO"
}
## hide the Pd window
if { $::kiosk::hidemain } {
set ::stderr 1
wm state .pdwindow withdraw
}
# this is just an empty menu
menu .kioskmenu
proc ::kiosk::makekiosk {mywin} {
puts "makekiosk $mywin"
#remove menu
if { $::kiosk::showmenu } { } {
$mywin configure -menu .kioskmenu;
}
# make fullscreen
if { $::kiosk::fullscreen } {
wm attributes $mywin -fullscreen 1
}
if { info exists ::kiosk::windowtitle $::kiosk::windowtitle } {
}
# it seems like this is getting not called for initially opened windows
# i guess it is like that:
# pd starts up
# pd sends initial data to the GUI
# the guiplugins are invoked (too late to do anything with existing windows)
#proc ::pd_bindings::patch_bindings {mytoplevel} {
#puts "foo $mytoplevel"
# wm attributes $mytoplevel -fullscreen 1
#}
foreach kioskwin [array names ::loaded] {
::kiosk::makekiosk $kioskwin
}
#bind PatchWindow <FocusIn> {
# makekiosk %W;
#}
|