From a63f51764ffbaa652b3726646c8a5ee819e6955b Mon Sep 17 00:00:00 2001 From: Anna Date: Wed, 7 Apr 2010 14:17:57 -0400 Subject: [PATCH] Added some keybindings, cleaned up others, made the update button work correctly --- mytwitter.py | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/mytwitter.py b/mytwitter.py index 35dc07d..f035bbe 100755 --- a/mytwitter.py +++ b/mytwitter.py @@ -29,11 +29,6 @@ class TwitWindow: self.tweet_view = Pmw.ScrolledFrame(self.tkroot, hscrollmode='none', horizflex='elastic') self.tweet_view.pack(expand=Tkinter.YES, fill=Tkinter.BOTH) - # Bind scrollwheel to move the tweets. Might as well allow scrollwheel - # from anywhere, so we'll bind to tkroot - self.tkroot.bind("", self.scroll_wheel); - self.tkroot.bind("", self.scroll_wheel); - # Create labels and text widgets for i in range(0, self.num_entries): self.labels.append(Tkinter.Label(self.tweet_view.interior())) @@ -48,10 +43,21 @@ class TwitWindow: self.update_box.pack(expand=False, fill=Tkinter.X) self.update_entry = Tkinter.Entry(self.update_box) self.update_entry.pack(expand=Tkinter.YES, fill=Tkinter.X, side=Tkinter.LEFT) - self.update_entry.bind('', self.update_status) self.update_button = Tkinter.Button(self.update_box, text="Update", command=self.update_status) self.update_button.pack(expand=Tkinter.NO, side=Tkinter.RIGHT) + ### Set up bindings + + # Bind scrollwheel to move the tweets. Might as well allow scrollwheel + # from anywhere, so we'll bind to tkroot + self.tkroot.bind("", self.scroll_wheel); + self.tkroot.bind("", self.scroll_wheel); + + self.update_entry.bind('', self.update_status_callback) + self.tkroot.bind("", self.page_up); + self.tkroot.bind("", self.page_down); + + # Init the twitter API and start up the main loop self.api = twitter.Api(username=self.username, password=self.password) self.update_window() @@ -73,11 +79,18 @@ class TwitWindow: self.timer = self.tkroot.after(300000, self.update_window) - def update_status(self, event): + + def update_status(self): text = self.update_entry.get() self.update_entry.delete(0, Tkinter.END) self.api.PostUpdate(text) self.update_window() + + + # Just calls update_status, here so that things + # that pass an event can be used + def update_status_callback(self, event): + self.update_status() def scroll_wheel(self, event): @@ -87,6 +100,12 @@ class TwitWindow: self.tweet_view.yview('scroll', 5, 'units'); + def page_up(self, event): + self.tweet_view.yview('scroll', -15, 'units'); + + def page_down(self, event): + self.tweet_view.yview('scroll', 15, 'units'); + ### end class TwitWindow