Update...

Here is the PERL code I now have:

    $rawtable{$tlabel}->notify_install("<<Edit-begin>>");
    $rawtable{$tlabel}->notify_install("<<Edit-end>>");
    $rawtable{$tlabel}->notify_install("<<Edit-accept>>");
    
    # List of lists: {column style element ...} specifying elements
    # the user can click on or select with the selection rectangle
    my $listlist = "";
    foreach my $coltag (@taglist)
    {
        $listlist .= sprintf("%s['%s', 'style1', 'elemRectangle', 'elemText']", 
(($listlist eq "") ? "" : ","), $coltag);
    }
    $listlist = "[".$listlist."]";
    printf "List of Lists: %s\n", $listlist;
    Tkx::TreeCtrl__SetSensitive ($rawtable{$tlabel}, "{COL1 style1 
elemRectangle elemText}");
    
    # List of lists: {column style element ...} specifying text elements
    # the user can edit
    Tkx::TreeCtrl__SetEditable ($rawtable{$tlabel}, "{COL1 style1 elemText}");
    
    # During editing, hide the text and selection-rectangle elements.
        $rawtable{$tlabel}->g_bind ("<<Edit-begin>>", [\&begin_edit, 
Tkx::Ev('%I', '%C'), $rawtable{$tlabel}]);

        $rawtable{$tlabel}->g_bind ("<<Edit-accept>>", [\&accept_edit, 
Tkx::Ev('%I', '%C', '%E', '%t'), $rawtable{$tlabel}]);

        $rawtable{$tlabel}->g_bind ("<<Edit-end>>", [\&end_edit, Tkx::Ev('%I', 
'%C'), $rawtable{$tlabel}]);
    #
    return 1;
    #
} #end of display_rawdata

sub begin_edit
{
    my $eitem = shift;
    my $ecolumn = shift;
    my $ewidget = shift;
    #
    # example format: $gcanvas{$tabname}{statsheet}->item_element_configure 
($itemv, $gcanvas{$tabname}{colids}[$colid], "elemText", -text => $coldata);
    #
    $ewidget->item_element_configure ($eitem, $ecolumn, "elemText", -draw => 
'no');
    $ewidget->item_element_configure ($eitem, $ecolumn, "elemRect", -draw => 
'no');
    #
    return 1;
}# end of begin_edit

sub end_edit
{
    my $eitem = shift;
    my $ecolumn = shift;
    my $ewidget = shift;
    #
    # example format: $gcanvas{$tabname}{statsheet}->item_element_configure 
($itemv, $gcanvas{$tabname}{colids}[$colid], "elemText", -text => $coldata);
    #
    $ewidget->item_element_configure ($eitem, $ecolumn, "elemText", -draw => 
'yes');
    $ewidget->item_element_configure ($eitem, $ecolumn, "elemRect", -draw => 
'yes');
    #
    return 1;
}#end of end_edit


sub accept_edit #(item col elem txt)
{
    foreach (@_){printf "ACCEPT_EDIT Args: %s\n", $_;}
    my $eitem = shift;
    my $ecolumn = shift;
    my $eelement = shift;
    my $etext = shift;
    my $ewidget = shift;
    #
    my $curval = $ewidget->item_element_cget ($eitem, $ecolumn, $eelement, 
"-text");
    printf "CURVAL: %s\n", $curval;
    if ($etext eq "" || $etext eq $curval) { return 1; }
    #

#       $self _select $item setname $txt

    $ewidget->item_element_configure ($eitem, $ecolumn, $eelement, -text => 
$etext);
#    }
    #
    return 1;
    #
}


Questions:

First from the exanmple of ppm_repolist.tcl what does the command 
"$self _select $item setname $txt" do?  And thus its PERL equivalent if its 
really needed?

And it appears that the tcl command "set ::TreeCtrl::Priv(DirCnt,$tree) 0" is 
the key to enable the actual editing... any advice on what the PERL syntax for 
this would be?

Again thanks for the support and your patience,
gary


--- On Fri, 9/16/11, vadrer <m...@vadrer.org> wrote:

> From: vadrer <m...@vadrer.org>
> Subject: Re: treectrl widget
> To: "Jeff Hobbs" <je...@activestate.com>
> Cc: "gary sachs" <conversecoroll...@yahoo.com>, tcltk@perl.org
> Date: Friday, September 16, 2011, 4:41 PM
> On Fri, 2011-09-16 at 09:42 -0700,
> Jeff Hobbs wrote:
> > On 15/09/2011 4:36 PM, gary sachs wrote:
> > > Using AS PERL 5.12
> > > TCl 8.5.9
> > > Windows XP SP3
> > >
> > > I have been working with the TREECRTL widget in
> PERL/Tkx for a while now and have good luck. But now I would
> like to be able to set up a table of data for graphing and
> have the ability to edit a "cell" in that table. Does any
> one have a PERL example for TREECTRL showing how to enable a
> "cell" for editting?
> > 
> > I don't have a Perl based example, but you can find a
> Tcl example (with 
> > necessary bindings and command calls) at 
> >
> <AP_Install>/lib/ActivePerl/PPM/tcl/ppm_repolist.tcl. 
> Search for 'edit'.
> 
> I can cook Tcl::Tk example (rather than Tkx, which is not
> my area of
> expertise)
> 
> let me know if this is of any interest.
> 
> Regards,
> Vadim.
> 
>

Reply via email to