##################################################### # This file demonstrates the Calendar control being # integrated within a Tk widget ##################################################### use strict; use Tcl::Tk qw(:widgets :misc); my $interp = new Tcl::Tk; # in case we want to do some debugging tkbind '.', '', 'console show'; my $t = text(".t", -height=>1, -width=>20,-font => "-*-Arial Unicode MS--R---*-350-*-*-*-*-*-*")->pack; $t->insert("end", "thishishis\x{5678}\x{265c}\x{265d}\x{265e}\x{2345}\x{2346}\x{2347}"); # optcl load happens here $interp->Eval('package require optcl'); my $cd = '***'; label(".cd", -bd=>1, -relief=>'sunken', -textvariable=>\$cd) ->pack(qw/-side bottom -fill x/); sub new_activex { my ($nam, $type) = @_; my $obj = $interp->call('optcl::new', -window=>$nam, $type); return ((bless \$nam, "Tcl::Tk::Widget"),$obj); } # create the calendar object my ($wcal, $acal) = new_activex('.cal', 'MSCAL.Calendar'); my ($wcombo,$acombo) = new_activex('.acombo', 'Forms.ComboBox.1'); my ($wspin,$aspin) = new_activex('.aspin', 'Forms.SpinButton.1'); tkpack ".cal", ".acombo", ".aspin"; #$wcal->config(qw/-width 300 -height 300/); #$wcombo->configure(qw/-width 300 -height 20/); $interp->call($$wcal,qw/configure -width 300 -height 300/); $interp->call($$wcombo,qw/configure -width 300 -height 20/); $interp->call($acombo,'AddItem',$_) for qw/one two three five/; $interp->call($acombo, ':', 'Text', 'Bla-bla-bla-bla'); # make a button to view the type information of # the calendar #button ".b", -text=>'TypeInfo', -command=>{tlview::viewtype [optcl::class $cal]} #pack .b -side bottom -anchor se MainLoop;