From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13354 invoked by alias); 1 Apr 2002 22:37:48 -0000 Mailing-List: contact insight-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: insight-owner@sources.redhat.com Received: (qmail 13342 invoked from network); 1 Apr 2002 22:37:46 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sources.redhat.com with SMTP; 1 Apr 2002 22:37:46 -0000 Received: from makita.cygnus.com (makita.cygnus.com [205.180.230.78]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id OAA06217 for ; Mon, 1 Apr 2002 14:37:45 -0800 (PST) Received: from localhost (keiths@localhost) by makita.cygnus.com (8.8.8+Sun/8.6.4) with ESMTP id OAA22030 for ; Mon, 1 Apr 2002 14:37:45 -0800 (PST) X-Authentication-Warning: makita.cygnus.com: keiths owned process doing -bs Date: Mon, 01 Apr 2002 14:37:00 -0000 From: Keith Seitz X-X-Sender: To: Insight Maling List Subject: Re: [RFA] iwidgets: update and add "-fraction" option In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2002-q2/txt/msg00003.txt.bz2 On Mon, 1 Apr 2002, Keith Seitz wrote: > 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've committed this change. ChangeLog 2002-04-01 Keith Seitz * 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: iwidgets3.0.0/generic/feedback.itk =================================================================== RCS file: /cvs/src/src/itcl/iwidgets3.0.0/generic/feedback.itk,v retrieving revision 1.1 retrieving revision 1.2 diff -p -r1.1 -r1.2 *** iwidgets3.0.0/generic/feedback.itk 2000/02/07 00:19:46 1.1 --- iwidgets3.0.0/generic/feedback.itk 2002/04/01 22:36:16 1.2 *************** *** 9,15 **** # ---------------------------------------------------------------------- # AUTHOR: Kris Raney EMAIL: kraney@spd.dsccc.com # ! # @(#) $Id: feedback.itk,v 1.2 1999/01/27 18:56:33 jingham 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 {} *************** proc ::iwidgets::feedback {pathName args *** 109,115 **** # ------------------------------------------------------------------ # CONSTRUCTOR # ------------------------------------------------------------------ ! body iwidgets::Feedback::constructor {args} { itk_component add trough { frame $itk_interior.trough -relief sunken } { --- 110,116 ---- # ------------------------------------------------------------------ # CONSTRUCTOR # ------------------------------------------------------------------ ! itcl::body iwidgets::Feedback::constructor {args} { itk_component add trough { frame $itk_interior.trough -relief sunken } { *************** body iwidgets::Feedback::constructor {ar *** 138,150 **** grid rowconfigure $itk_interior 1 -weight 1 grid columnconfigure $itk_interior 0 -weight 1 eval itk_initialize $args } # ------------------------------------------------------------------ # DESTRUCTOR # ------------------------------------------------------------------ ! body iwidgets::Feedback::destructor {} { } # ------------------------------------------------------------------ --- 139,153 ---- grid rowconfigure $itk_interior 1 -weight 1 grid columnconfigure $itk_interior 0 -weight 1 + bind $itk_component(hull) [itcl::code $this _display] + eval itk_initialize $args } # ------------------------------------------------------------------ # DESTRUCTOR # ------------------------------------------------------------------ ! itcl::body iwidgets::Feedback::destructor {} { } # ------------------------------------------------------------------ *************** body iwidgets::Feedback::destructor {} { *** 156,166 **** # # Set the total number of steps. # ------------------------------------------------------------------ ! configbody iwidgets::Feedback::steps { step 0 } # ------------------------------------------------------------------ # METHODS # ------------------------------------------------------------------ --- 159,186 ---- # # Set the total number of steps. # ------------------------------------------------------------------ ! itcl::configbody iwidgets::Feedback::steps { step 0 } # ------------------------------------------------------------------ + # 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 # ------------------------------------------------------------------ *************** configbody iwidgets::Feedback::steps { *** 170,182 **** # Displays the bar in the trough with the width set using the current number # of steps. # ----------------------------------------------------------------------------- ! body iwidgets::Feedback::_display {} { set troughwidth [winfo width $itk_component(trough)] ! set _barwidth [expr $troughwidth.0/$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 } --- 190,205 ---- # Displays the bar in the trough with the width set using the current number # of steps. # ----------------------------------------------------------------------------- ! 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 } *************** body iwidgets::Feedback::_display {} { *** 186,192 **** # # Resets the status bar to 0 # ------------------------------------------------------------------ ! body iwidgets::Feedback::reset {} { set _stepval 0 _display } --- 209,215 ---- # # Resets the status bar to 0 # ------------------------------------------------------------------ ! itcl::body iwidgets::Feedback::reset {} { set _stepval 0 _display } *************** body iwidgets::Feedback::reset {} { *** 196,207 **** # # Increase the value of the status bar by inc. Default to 1 # ------------------------------------------------------------------ ! body iwidgets::Feedback::step {{inc 1}} { if {$_stepval >= $itk_option(-steps)} { return } incr _stepval $inc _display } --- 219,233 ---- # # Increase the value of the status bar by inc. Default to 1 # ------------------------------------------------------------------ ! itcl::body iwidgets::Feedback::step {{inc 1}} { if {$_stepval >= $itk_option(-steps)} { return } incr _stepval $inc + if {$_stepval > $itk_option(-steps)} { + set _stepval $itk_option(-steps) + } _display }