# ----------------------------------------------------------------------
#  DEMO: notebook in [incr Widgets]
# ----------------------------------------------------------------------
package require Iwidgets 4.0

option add *textBackground seashell
option add *Scale.width 8
. configure -background white

iwidgets::optionmenu .pages -labeltext "Page:" -command {
    .nb view [.pages get]
}
pack .pages -padx 4 -pady 4
.pages insert end "Personal Info" "Favorite Color" "Blank Page"


iwidgets::notebook .nb -width 3i -height 2.6i
pack .nb -padx 4 -pady 4
 
# Page #1
# ----------------------------------------------------------------------
set page [.nb add -label "Personal Info"]

iwidgets::entryfield $page.name -labeltext "Name:" -labelpos nw
pack $page.name
iwidgets::entryfield $page.addr -labeltext "Address:" -labelpos nw
pack $page.addr
iwidgets::entryfield $page.addr2 -labeltext "City, State:" -labelpos nw
pack $page.addr2
iwidgets::entryfield $page.email -labeltext "E-mail:" -labelpos nw
pack $page.email


# Page #2
# ----------------------------------------------------------------------
set page [.nb add -label "Favorite Color"]

frame $page.sample -width 20 -height 20 \
    -borderwidth 2 -relief raised
pack $page.sample -fill both -pady 4
scale $page.r -label "Red" -orient horizontal \
    -from 0 -to 255 -command "set_color $page"
pack $page.r -fill x
scale $page.g -label "Green" -orient horizontal \
    -from 0 -to 255 -command "set_color $page"
pack $page.g -fill x
scale $page.b -label "Blue" -orient horizontal \
    -from 0 -to 255 -command "set_color $page"
pack $page.b -fill x

proc set_color {page {val 0}} {
    set r [$page.r get]
    set g [$page.g get]
    set b [$page.b get]
    set color [format "#%.2x%.2x%.2x" $r $g $b]
    $page.sample configure -background $color
}
set_color $page
 

# Page #3
# ----------------------------------------------------------------------
set page [.nb add -label "Blank Page"]

label $page.title -text "(put your widgets here)" \
    -background black -foreground white \
    -width 25 -height 3
pack $page.title -expand yes -fill both


.nb view "Personal Info"
