aboutsummaryrefslogtreecommitdiff
path: root/kiosk-plugin.tcl
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;
#}