Show
Ignore:
Timestamp:
11/30/06 13:59:48 (7 years ago)
Author:
barz
Message:

MacOSX aqua support and grabber-macosx added

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • vic/branches/mpeg4/tcl/ui-ctrlmenu.tcl

    r3941 r3946  
    122122        set w .menu 
    123123        create_toplevel $w "vic menu" 
    124         wm withdraw $w 
     124        #wm withdraw $w 
    125125        catch "wm resizable $w false false" 
    126126 
     
    213213        frame $w.nb.frame.b 
    214214 
    215         button $w.nb.frame.b.stats -text "Global Stats" -borderwidth 2 \ 
    216                 -anchor c -font $f -command create_global_window 
    217         button $w.nb.frame.b.members -text Members -borderwidth 2 \ 
    218                 -anchor c -font $f -command "toggle_window .srclist" 
     215        if {[string equal [tk windowingsystem] "aqua"]} { 
     216                button $w.nb.frame.b.stats -text "Global Stats" -padx 10 \ 
     217                         -anchor c -font $f -command create_global_window 
     218                button $w.nb.frame.b.members -text Members -padx 10 \ 
     219                        -anchor c -font $f -command "toggle_window .srclist" 
     220        } else { 
     221                button $w.nb.frame.b.stats -text "Global Stats" -borderwidth 2 \ 
     222                        -anchor c -font $f -command create_global_window 
     223                button $w.nb.frame.b.members -text Members -borderwidth 2 \ 
     224                        -anchor c -font $f -command "toggle_window .srclist" 
     225        } 
    219226 
    220227        pack $w.nb.frame.b.stats $w.nb.frame.b.members \ 
     
    367374                } 
    368375 
    369                  
    370376                if { $grabq != "" } { 
    371377                        $V(grabber) q $grabq 
     
    388394proc close_device {} { 
    389395        global V 
    390         delete $V(encoder) 
    391         delete $V(grabber) 
    392         unset V(grabber) V(encoder) 
     396        # XXX: bypassing the pure virtual funtion call problem under macosx 
     397        # need to figure out where is the bug 
     398        if { ![string equal [tk windowingsystem] "aqua"]} {  
     399            delete $V(encoder) 
     400            delete $V(grabber) 
     401            unset V(grabber)  
     402            unset V(encoder) 
     403        } 
    393404        if [info exists V(capwin)] { 
    394405                # delete the C++ object, then destrory the tk window 
     
    707718 
    708719        set m $w.menu 
    709         menubutton $w -menu $m -text Device... \ 
     720        if {[string equal [tk windowingsystem] "aqua"]} { 
     721            menubutton $w -menu $m -text Device -width 8 -pady 4 
     722        } else { 
     723            menubutton $w -menu $m -text Device... \ 
    710724                -relief raised -width 10 -font $f 
     725        } 
    711726        menu $m 
    712727 
     
    790805        } 
    791806        radiobutton $w.b0 -text $n0 -relief $reliefn0 -font $f -anchor w \ 
    792                 -variable videoFormat -value $n0 -padx 0 -pady 0 \ 
     807                -variable videoFormat -value $n0 -padx 2 -pady 4 \ 
    793808                -command "select_format $n0" -state disabled 
    794809        radiobutton $w.b1 -text $n1 -relief $reliefn1 -font $f -anchor w \ 
    795                 -variable videoFormat -value $n1 -padx 0 -pady 0 \ 
     810                -variable videoFormat -value $n1 -padx 2 -pady 4 \ 
    796811                -command "select_format $n1" -state disabled 
    797812        pack $w.b0 $w.b1 -fill x  
     
    886901        set f [smallfont] 
    887902        # create the menubutton but don't defer the menu creation until later 
    888         menubutton $w -menu $w.menu -text Port... \ 
     903        if {[string equal [tk windowingsystem] "aqua"]} { 
     904            menubutton $w -menu $w.menu -text Port -width 8 -pady 4 \ 
     905                -state disabled 
     906        } else { 
     907            menubutton $w -menu $w.menu -text Port... \ 
    889908                -relief raised -width 10 -font $f -state disabled 
     909        } 
    890910        global portButton inputPort 
    891911        set portButton $w 
     
    902922        foreach port $portnames { 
    903923                $m add radiobutton -label $port \ 
    904                         -command "grabber port $port" \ 
     924                        -command "grabber port \"$port\"" \ 
    905925                        -value $port -variable inputPort -font $f 
    906926        } 
     
    925945 
    926946        set m $w.menu 
    927         menubutton $w -text Signal... -menu $m -relief raised \ 
     947        if {[string equal [tk windowingsystem] "aqua"]} { 
     948            menubutton $w -text Signal -menu $m -width 8 -pady 4 \ 
     949                -state disabled 
     950        } else { 
     951            menubutton $w -text Signal... -menu $m -relief raised \ 
    928952                -width 10 -font $f -state disabled 
     953        } 
    929954        menu $m 
    930955        $m add radiobutton -label "auto" -command restart \ 
     
    958983        set f [smallfont] 
    959984        set m $w.menu 
    960         menubutton $w -text Options... -menu $m -relief raised -width 10 \ 
     985        if {[string equal [tk windowingsystem] "aqua"]} { 
     986            menubutton $w -text Options -menu $m -width 8 -pady 4 
     987        } else { 
     988            menubutton $w -text Options... -menu $m -relief raised -width 10 \ 
    961989                -font $f 
     990        } 
    962991        menu $m 
    963992        $m add checkbutton -label "Sending Slides" \ 
     
    967996                $m add checkbutton -label "Use Hardware Encode" \ 
    968997                -variable useHardwareComp -font $f -command restart 
    969                 if {$tcl_platform(platform) == "windows"} { 
     998        if { $tcl_platform(platform) == "windows" || [string equal [tk windowingsystem] "aqua"] } { 
    970999                        $m add checkbutton -label "Configure on Transmit" \ 
    971                         -variable configOnTransmit -font $f 
     1000                        -variable configOnTransmit -font $f \ 
     1001                        -command  "grabber useconfig \$configOnTransmit" 
    9721002                } 
    9731003} 
     
    9761006        set f [smallfont] 
    9771007        set m $w.menu 
    978         menubutton $w -text Tile... -menu $m -relief raised -width 10 \ 
    979                 -font $f 
     1008        if {[string equal [tk windowingsystem] "aqua"]} { 
     1009            menubutton $w -text Tile -menu $m -width 8 -pady 4 
     1010        } else { 
     1011            menubutton $w -text Tile... -menu $m -relief raised -width 10 \ 
     1012                        -font $f 
     1013        } 
    9801014        menu $m 
    9811015        $m add radiobutton -label Single -command "redecorate 1" \ 
     
    9921026        set f [smallfont] 
    9931027        set m $w.menu 
    994         menubutton $w -text Options... -menu $m -relief raised -width 10 \ 
     1028        if {[string equal [tk windowingsystem] "aqua"]} { 
     1029            menubutton $w -text Options -menu $m -width 8 -pady 4 
     1030        } else { 
     1031            menubutton $w -text Options... -menu $m -relief raised -width 10 \ 
    9951032                -font $f 
     1033        } 
    9961034        menu $m 
    9971035        $m add checkbutton -label "Mute New Sources" \ 
     
    14761514        global V configOnTransmit tcl_platform 
    14771515 
    1478         if {$tcl_platform(platform) == "windows"} { 
     1516        if { $tcl_platform(platform) == "windows" || [string equal [tk windowingsystem] "aqua"] } { 
    14791517                $grabber useconfig $configOnTransmit 
    14801518        } 
     
    15051543        $grabber transmitter $V(session) 
    15061544        global qscale inputSize fps_slider bps_slider videoDevice 
     1545        global inputPort inputType portButton typeButton 
     1546        # MacOS-X requires port and input type to be set before decimate 
     1547        # is called otherwise the channel device's input may be busy 
     1548        if {[string equal [tk windowingsystem] "aqua"]} { 
     1549            if { [$portButton cget -state] == "normal" } { 
     1550                  $grabber port $inputPort 
     1551            } 
     1552            if { [$typeButton cget -state] == "normal" } { 
     1553                  $grabber type $inputType 
     1554            } 
     1555        } 
    15071556        $grabber fps [$fps_slider get] 
    15081557        $grabber bps [$bps_slider get] 
     
    15121561                $cmd [$qscale get] 
    15131562        } 
    1514         global inputPort inputType portButton typeButton 
    1515         if { [$portButton cget -state] == "normal" } { 
     1563        if !{[string equal [tk windowingsystem] "aqua"]} { 
     1564            if { [$portButton cget -state] == "normal" } { 
    15161565                $grabber port $inputPort 
    1517         } 
    1518         if { [$typeButton cget -state] == "normal" } { 
     1566            } 
     1567            if { [$typeButton cget -state] == "normal" } { 
    15191568                $grabber type $inputType 
     1569            } 
    15201570        } 
    15211571        setFillRate