This is the mail archive of the
insight@sources.redhat.com
mailing list for the Insight project.
Re: [RFA] iwidgets: update and add "-fraction" option
- From: Keith Seitz <keiths at redhat dot com>
- To: Insight Maling List <insight at sources dot redhat dot com>
- Date: Fri, 22 Mar 2002 09:30:53 -0800 (PST)
- Subject: Re: [RFA] iwidgets: update and add "-fraction" option
On Fri, 22 Mar 2002, Keith Seitz wrote:
> I really hated the way this widget worked, so I:
>
> 1) merged with current sources (formatting changes, really)
> 2) Added a sanity check in iwidgets::Feedback::step
> 3) Added a new "-fraction" option so that we could tell it to display
> a fraction instead of just stepping it.
>
> I will submit the "-fraction" patch to the iwidgets maintainers.
>
> (Is Ian still around? Shall we nominate a new or more tcl/tk/tix/itcl
> maintainer(s)?)
Hmmm. I'll bet someone wants to see the patch! :-)
ChangeLog
2002-03-22 Keith Seitz <keiths@redhat.com>
* iwidgets3.0.0/generic/feedback.itk: Import version 1.5.
(iwidgets::Feedback): Define new option, "-fraction".
(fraction): New configbody.
(step): Cap the step increment at the total number of
requested steps.
Patch
Index: itcl/iwidgets3.0.0/generic/feedback.itk
===================================================================
RCS file: /cvs/src/src/itcl/iwidgets3.0.0/generic/feedback.itk,v
retrieving revision 1.1.1.2
diff -p -r1.1.1.2 feedback.itk
*** itcl/iwidgets3.0.0/generic/feedback.itk 2001/09/09 19:49:08 1.1.1.2
--- itcl/iwidgets3.0.0/generic/feedback.itk 2002/03/22 17:14:55
***************
*** 9,15 ****
# ----------------------------------------------------------------------
# AUTHOR: Kris Raney EMAIL: kraney@spd.dsccc.com
#
! # @(#) $Id: feedback.itk,v 1.2.172.1 2001/05/18 02:21:48 mdejong Exp $
# ----------------------------------------------------------------------
# Copyright (c) 1996 DSC Technologies Corporation
# ======================================================================
--- 9,15 ----
# ----------------------------------------------------------------------
# AUTHOR: Kris Raney EMAIL: kraney@spd.dsccc.com
#
! # @(#) $Id: feedback.itk,v 1.5 2001/08/15 18:32:18 smithc Exp $
# ----------------------------------------------------------------------
# Copyright (c) 1996 DSC Technologies Corporation
# ======================================================================
*************** itk::usual Feedback {
*** 78,90 ****
# ------------------------------------------------------------------
# FEEDBACK
# ------------------------------------------------------------------
! class iwidgets::Feedback {
inherit iwidgets::Labeledwidget
constructor {args} {}
destructor {}
itk_option define -steps steps Steps 10
public {
method reset {}
--- 78,91 ----
# ------------------------------------------------------------------
# FEEDBACK
# ------------------------------------------------------------------
! itcl::class iwidgets::Feedback {
inherit iwidgets::Labeledwidget
constructor {args} {}
destructor {}
itk_option define -steps steps Steps 10
+ itk_option define -fraction fraction Fraction 0
public {
method reset {}
*************** itcl::configbody iwidgets::Feedback::ste
*** 163,168 ****
--- 164,186 ----
}
# ------------------------------------------------------------------
+ # OPTION: -fraction
+ #
+ # Configure the widget to display the given fractional completion
+ # ------------------------------------------------------------------
+ itcl::configbody iwidgets::Feedback::fraction {
+
+ set newval [expr {ceil($itk_option(-steps) * $itk_option(-fraction))}]
+ if {$newval > $itk_option(-steps)} {
+ set newval $itk_option(-steps)
+ }
+ if {$newval != $_stepval} {
+ set _stepval $newval
+ _display
+ }
+ }
+
+ # ------------------------------------------------------------------
# METHODS
# ------------------------------------------------------------------
*************** itcl::configbody iwidgets::Feedback::ste
*** 175,187 ****
itcl::body iwidgets::Feedback::_display {} {
update idletasks
set troughwidth [winfo width $itk_component(trough)]
! set _barwidth [expr \
! (1.0*$troughwidth-(2.0*[$itk_component(trough) cget -borderwidth])) / \
! $itk_option(-steps)]
! set fraction [expr int((1.0*$_stepval)/$itk_option(-steps)*100.0)]
$itk_component(percentage) config -text "$fraction%"
! $itk_component(bar) config -width [expr $_barwidth*$_stepval]
update
}
--- 193,205 ----
itcl::body iwidgets::Feedback::_display {} {
update idletasks
set troughwidth [winfo width $itk_component(trough)]
! set _barwidth [expr {
! (1.0*$troughwidth-(2.0*[$itk_component(trough) cget -borderwidth])) /
! $itk_option(-steps)}]
! set fraction [expr {int((1.0*$_stepval)/$itk_option(-steps)*100.0)}]
$itk_component(percentage) config -text "$fraction%"
! $itk_component(bar) config -width [expr {$_barwidth*$_stepval}]
update
}
*************** itcl::body iwidgets::Feedback::step {{in
*** 208,212 ****
--- 226,233 ----
}
incr _stepval $inc
+ if {$_stepval > $itk_option(-steps)} {
+ set _stepval $itk_option(-steps)
+ }
_display
}