Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Ruby/Tk code critique

Reply
Thread Tools

Ruby/Tk code critique

 
 
rubist __
Guest
Posts: n/a
 
      07-28-2006
I have a bunch of Tk buttons tied to code. They're wrapped in an array
to process later.

What I'd like to do is set each one to have a visual indicator that it
was used. So after it's clicked, it gets configured to have relief
"flat" or background "yellow" etc.

And then later, when a new row is being processed, I can iterate thru
button_array and reset their color/relief etc. -- this is to aid the
user in knowing which buttons they've already used.

The simple/ugly way I suppose would be to make each button be like:
TkButton.new(frame) {
text "bleh"
command proc {
self.configure("relief","flat")
run_code(:buttoncode)
}
}

What I'm looking for is basically an elegant way to do this. Rather than
modify each proc to add code to change the relief, I'd like an 'around'
method to put around run_code. Or in run_code if I could identify the
button that was clicked.

#Random status label changes
pru=proc{@status.configure('text'=>"Processing..." )}
prr=proc{@status.configure('text'=>"Ready...")}

## Proc for ETL tasks
retl = proc{run_code(:etl)}
etlre = proc{run_code(:etlreuse)}
idsre = proc{run_code(:idsreuse)}
edwre = proc{run_code(:edwreuse)}
sorre = proc{run_code(:sorreuse)}
#Buttons - ETL reuse
lxxs_4 = TkButton.new(reusefr) { text "Reuse-ETL"; command etlre}
lxxs_5 = TkButton.new(reusefr) { text "Reuse-IDS"; command idsre}
lxxs_6 = TkButton.new(reusefr) { text "Reuse-EDW"; command edwre}
lxxs_7 = TkButton.new(reusefr) { text "Reuse-SOR"; command sorre}

button_array = [lxxs_4, lxxs_5 etc.]

Incidentally, run_code looks like this:
def run_code(par)
@controller.dispatcher(par)
end


--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Hidetoshi NAGAI
Guest
Posts: n/a
 
      07-28-2006
Probably, using `bindtag' is not so bad idea.

From: rubist __ <(E-Mail Removed)>
Subject: Ruby/Tk code critique
Date: Sat, 29 Jul 2006 04:07:46 +0900
Message-ID: <(E-Mail Removed)>
> button_array = [lxxs_4, lxxs_5 etc.]


btag = TkBindTag.new
btag.bind('ButtonRelease-1', proc{|w| w['relief'] = 'flat'}, '%W')
button_array.each{|b| b.bindtags_unshift(btag) }

--
Hidetoshi NAGAI ((E-Mail Removed))

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Code critique (again) Ryan Stewart HTML 4 05-04-2004 06:44 AM
Code critique (no URL available) Ryan Stewart HTML 3 04-26-2004 09:39 PM
Code critique Martin Eisenberg C++ 27 04-09-2004 10:25 AM
Code Critique Please Rv5 C++ 3 11-16-2003 03:25 PM
Nasty code...but please critique it anyway :-) Michael Strorm C++ 26 11-10-2003 05:39 PM



Advertisments