Gnocl Cookbook‎ > ‎

Tearing off Notebook Pages



# test-notebook-tearoff.tcl
#!/bin/sh \
exec tclsh "$0" "$@"

package require Gnocl

#---------------
#
#---------------
#
proc addStuff {} {

    set b(1) [gnocl::button -text "HELLO" -onClicked {puts "HI-DI-HI"}]
    set b(2) [gnocl::button -text "GOOD-BYE" -onClicked {puts "H0-DI-H0"}]

    set notebook1 [gnocl::notebook \
        -startWidget "$b(1)" \
        -endWidget "$b(2)" \
        -scrollable 1 \
        -tabPosition left \
        -groupId 1 \
        -onCreateWindow {
            # this option in necessary to handle the creation of tear-off windows
            %w configure -title "TEAR OFF NOTEBOOK"
             } ]


    proc addFirst {nb} {
   
        if { ![gnocl::winfo exists $nb] } { return }
   
        $nb addPage [gnocl::label \
            -text "First Page" \
            -onDestroy "addFirst $nb"] "%__First"
    }

    proc addSecond {nb} {
   
        if { ![gnocl::winfo exists $nb] } { return }
   
        $nb addPage [gnocl::label \
            -text "Second Page" \
            -onDestroy "addSecond $nb" ] "%__Second"
    }

    proc addThird {nb} {

        if { ![gnocl::winfo exists $nb] } { return }

        $nb addPage [gnocl::label \
            -text "Third Page" \
            -onDestroy "addThird $nb"] "%__Third"
    }

    proc addFourth {nb} {
   
        if { ![gnocl::winfo exists $nb] } { return }
   
        $nb addPage [gnocl::label \
            -text "Fourth Page" \
            -onDestroy "addFourth $nb"] "%__Fourth"
   
    }

    foreach  a [list First Second Third Fourth] {    add$a $notebook1 }

    return $notebook1

}

gnocl::window \
    -title "Notebook1" \
    -child [addStuff] \
    -setSize 0.3 \
    -onDestroy exit







Comments