class GroupPage(gtk.VBox,gobject.GObject): __gsignals__={ 'group-page-hide': ( gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, () ), 'join-group' : ( gobject.SIGNAL_RUN_FIRST,gobject.TYPE_NONE, (gobject.TYPE_STRING,gobject.TYPE_BOOLEAN) ), 'open-link': ( gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_STRING,) ), } def __init__(self): gtk.VBox.__init__(self) gobject.GObject.__init__(self) self.set_homogeneous(False) self.toggle_enabled=True self.image = gtk.Image() #make an imagevbox = gtk.VBox(False,0) imagevbox.pack_start(self.image,False,False,0) #make an hbox to hold image and group info self.grouphbox=gtk.HBox(False,5) self.pack_start(self.grouphbox,False,False,0) self.grouphbox.pack_start(imagevbox,False,False,0) infovbox = gtk.VBox(False) self.grouphbox.pack_start(infovbox,False,False) self.name_label = gtk.Label() infovbox.pack_start(self.name_label,False,False,0) self.homepage_label = gtk.Label() if not links_unavailable: self.homepage_label.connect('activate-link', self.process_link ) infovbox.pack_start(self.homepage_label,False,False,0) self.description_label = gtk.Label() infovbox.pack_start(self.description_label,False,False,0) self.description_label.set_line_wrap(True) self.location_label = gtk.Label() infovbox.pack_start(self.location_label,False,False,0) #widget box for the horizontal stuff self.widgetbox = gtk.HBox(False) self.pack_start(self.widgetbox,False,False,0) #make a checkbutton if we are following self.joined_checkbutton = gtk.CheckButton(_("joined")) self.joined_checkbutton.connect('toggled', self.joined_toggled) self.widgetbox.pack_start(self.joined_checkbutton,False,False,0) #collapse button collapsebox = gtk.Alignment(xalign=1.0) self.collapse_button = DentButton(u'\u25b2') self.collapse_button.connect('clicked',self.collapse_clicked) collapsebox.add(self.collapse_button) self.widgetbox.pack_end(collapsebox,True,True,0) #collapsed widget box and name label self.widgetbox_collapsed = gtk.HBox(False) self.name_label_collapsed = gtk.Label() self.widgetbox_collapsed.pack_start(self.name_label_collapsed,False,False,0) #its expand button expandbox = gtk.Alignment(xalign=1.0) self.expand_button = DentButton(u'\u25bc') self.expand_button.connect('clicked',self.expand_clicked) expandbox.add(self.expand_button) self.widgetbox_collapsed.pack_end(expandbox,True,True,0) #pack it up self.pack_start(self.widgetbox_collapsed,False,False,0) #create a group dent scroller and add it to the group page self.dentScroller = DentScroller() self.pack_start(self.dentScroller) def set_group_data(self,data): self.joined_checkbutton.set_sensitive(True) self.group_id= data['id'] self.group_name = data['fullname'] self.name_label.set_text("%s" %(data['fullname']) ) self.name_label_collapsed.set_text("%s" %(data['fullname']) ) if data['location']!=None: self.location_label.set_text("%s: %s" %(_("Location"), data['location']) ) self.location_label.show() else: self.location_label.hide_all() if data['description']!=None: self.description_label.set_text("%s" %(data['description']) ) self.description_label.show() else: self.description_label.hide_all() if data['homepage']!=None: try: self.homepage_label.set_markup('<a href="%(homepage)s">%(homepage)s</a>' % ({'homepage':data['homepage']}) ) except: self.homepage_label.set_text("%s" %(data['homepage']) ) self.homepage_label.show() else: self.homepage_label.hide_all() #is the user a member? if data['member']=='true': self.set_is_member(True) def set_image(self,image): self.image.set_from_file(image) self.image.show() def set_is_member(self,bool): self.toggle_enabled=False self.is_joined=bool self.joined_checkbutton.set_active( bool ) self.toggle_enabled=True def clear(self): self.dentScroller.clear() self.image.hide() def joined_toggled(self,widget): if self.toggle_enabled: self.new_is_joined = self.joined_checkbutton.get_active() self.emit('join-group',self.group_id,self.new_is_joined) def close(self,button): #we don't need to talk to the controller #self.hide() self.emit('group-page-hide') def collapse_clicked(self,widget): self.grouphbox.hide() self.widgetbox.hide() self.widgetbox_collapsed.show() def expand_clicked(self,widget): self.grouphbox.show() self.widgetbox.show() self.widgetbox_collapsed.hide() def process_link(self, label, uri ): self.emit('open-link', uri ) return True
class UserPage(gtk.VBox,gobject.GObject): __gsignals__={ 'user-page-hide': ( gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, () ), 'follow-user' : ( gobject.SIGNAL_RUN_FIRST,gobject.TYPE_NONE, (gobject.TYPE_STRING,gobject.TYPE_BOOLEAN) ), 'direct-clicked': ( gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_STRING,) ), 'block-create': ( gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_STRING,) ), 'block-destroy': ( gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_STRING,) ), 'open-link': ( gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_STRING,) ), } def __init__(self): gtk.VBox.__init__(self) gobject.GObject.__init__(self) self.set_homogeneous(False) self.toggle_enabled=True self.block_sent=False #start doing the image stuff self.image = gtk.Image() #make an imagevbox = gtk.VBox(False,0) imagevbox.pack_start(self.image,False,False,0) labelvbox = gtk.VBox(False,0) #we need a grip of labels self.name_label = gtk.Label() labelvbox.pack_start(self.name_label,False,False,0) self.description_label = gtk.Label() labelvbox.pack_start(self.description_label,False,False,0) self.description_label.set_line_wrap(True) self.location_label = gtk.Label() self.url_label = gtk.Label() if not links_unavailable: self.url_label.connect('activate-link', self.process_link ) labelvbox.pack_start(self.location_label,False,False,0) labelvbox.pack_start(self.url_label,False,False,0) #make an hbox to hold the image and labels self.userhbox=gtk.HBox(False,5) #make an hbox to hold widgets self.widgetbox = gtk.HBox(False) #add the imagevbox self.userhbox.pack_start(imagevbox,False,False,0) self.userhbox.pack_start(labelvbox,False,False,0) self.pack_start(self.userhbox,False,False,0) self.pack_start(self.widgetbox,False,False,0) #make a checkbutton if we are following self.following_checkbutton = gtk.CheckButton(_("Following")) self.following_checkbutton.connect('toggled', self.following_toggled) self.widgetbox.pack_start(self.following_checkbutton,False,False,0) #how about a 'direct' button? self.direct_button = DentButton('direct') self.direct_button.connect('clicked',self.direct_clicked) self.widgetbox.pack_start(self.direct_button,False,False,0) #create stuff for blocking -- commented out 9.3.10 x1101 blockbox=gtk.HBox() #enabler self.enable_block_checkbutton = gtk.CheckButton(_("Enable Blocking")) self.enable_block_checkbutton.connect('toggled', self.block_enable_toggled) #the blocking buttons self.block_button = DentButton('block') self.block_button.connect('clicked',self.block_clicked) self.block_button.set_sensitive(False) blockbox.pack_start(self.block_button,False,False,0) blockbox.pack_start(self.enable_block_checkbutton,False,False,0) self.widgetbox.pack_start(blockbox,False,False,0) #the collapse button collapsebox = gtk.Alignment(xalign=1.0) self.collapse_button = DentButton(u'\u25b2') self.collapse_button.connect('clicked',self.collapse_clicked) collapsebox.add(self.collapse_button) self.widgetbox.pack_end(collapsebox,True,True,0) #the collapsed widget box and name label self.widgetbox_collapsed = gtk.HBox(False) self.name_label_collapsed = gtk.Label() self.widgetbox_collapsed.pack_start(self.name_label_collapsed,False,False,0) #its expand button expandbox = gtk.Alignment(xalign=1.0) self.expand_button = DentButton(u'\u25bc') self.expand_button.connect('clicked',self.expand_clicked) expandbox.add(self.expand_button) self.widgetbox_collapsed.pack_end(expandbox,True,True,0) #pack it up self.pack_start(self.widgetbox_collapsed,False,False,0) #create a user dent scroller and add it to the user page self.dentScroller = DentScroller() self.pack_start(self.dentScroller) def set_image(self,image): self.image.set_from_file(image) self.image.show() def set_user_data(self,data): self.screen_name = data['screen_name'] self.user_id=data['id'] self.name_label.set_text("%s (%s)" %(data['name'],data['screen_name']) ) self.name_label_collapsed.set_text("%s (%s)" %(data['name'],data['screen_name']) ) if data['location']!=None: self.location_label.set_text("%s: %s" % (_("Location"),data['location']) ) self.location_label.show() else: self.location_label.hide() if data['url']!=None: try: self.url_label.set_markup('<a href="%(url)s">%(url)s</a>' % ({'url':data['url']}) ) except: self.url_label.set_text("%s" %(data['url']) ) else: self.url_label.hide() self.description_label.set_text("%s" %(data['description']) ) if data['following']=='true': self.set_is_friend(True) else: self.set_is_friend(False) #enable the stuff self.enable() def set_is_friend(self,bool): self.toggle_enabled=False self.is_friend=bool self.following_checkbutton.set_active( bool ) self.toggle_enabled=True def following_toggled(self,widget): if self.toggle_enabled: self.new_is_friend = self.following_checkbutton.get_active() self.emit('follow-user',self.screen_name,self.new_is_friend) def clear(self): self.dentScroller.clear() #self.image.hide() def close(self,button): self.emit('user-page-hide') def direct_clicked(self,button): self.emit('direct-clicked',self.screen_name) def disable(self): self.following_checkbutton.set_sensitive(False) self.direct_button.set_sensitive(False) self.enable_block_checkbutton.set_sensitive(False) self.enable_block_checkbutton.set_active(False) #reset the block sent self.block_sent=False def enable(self): self.following_checkbutton.set_sensitive(True) self.direct_button.set_sensitive(True) self.enable_block_checkbutton.set_sensitive(True) def block_enable_toggled(self,widget): value = widget.get_active() if not self.block_sent: self.block_button.set_sensitive(value) def block_clicked(self,widget): #keep track of the block being sent self.block_sent=True #disable the button widget.set_sensitive(False) self.emit('block-create',self.user_id) def collapse_clicked(self,widget): self.userhbox.hide() self.widgetbox.hide() self.widgetbox_collapsed.show() def expand_clicked(self,widget): self.userhbox.show() self.widgetbox.show() self.widgetbox_collapsed.hide() def process_link(self, label, uri ): self.emit('open-link', uri ) return True
def __init__(self): gtk.VBox.__init__(self) gobject.GObject.__init__(self) self.set_homogeneous(False) self.toggle_enabled=True self.image = gtk.Image() #make an imagevbox = gtk.VBox(False,0) imagevbox.pack_start(self.image,False,False,0) #make an hbox to hold image and group info self.grouphbox=gtk.HBox(False,5) self.pack_start(self.grouphbox,False,False,0) self.grouphbox.pack_start(imagevbox,False,False,0) infovbox = gtk.VBox(False) self.grouphbox.pack_start(infovbox,False,False) self.name_label = gtk.Label() infovbox.pack_start(self.name_label,False,False,0) self.homepage_label = gtk.Label() if not links_unavailable: self.homepage_label.connect('activate-link', self.process_link ) infovbox.pack_start(self.homepage_label,False,False,0) self.description_label = gtk.Label() infovbox.pack_start(self.description_label,False,False,0) self.description_label.set_line_wrap(True) self.location_label = gtk.Label() infovbox.pack_start(self.location_label,False,False,0) #widget box for the horizontal stuff self.widgetbox = gtk.HBox(False) self.pack_start(self.widgetbox,False,False,0) #make a checkbutton if we are following self.joined_checkbutton = gtk.CheckButton(_("joined")) self.joined_checkbutton.connect('toggled', self.joined_toggled) self.widgetbox.pack_start(self.joined_checkbutton,False,False,0) #collapse button collapsebox = gtk.Alignment(xalign=1.0) self.collapse_button = DentButton(u'\u25b2') self.collapse_button.connect('clicked',self.collapse_clicked) collapsebox.add(self.collapse_button) self.widgetbox.pack_end(collapsebox,True,True,0) #collapsed widget box and name label self.widgetbox_collapsed = gtk.HBox(False) self.name_label_collapsed = gtk.Label() self.widgetbox_collapsed.pack_start(self.name_label_collapsed,False,False,0) #its expand button expandbox = gtk.Alignment(xalign=1.0) self.expand_button = DentButton(u'\u25bc') self.expand_button.connect('clicked',self.expand_clicked) expandbox.add(self.expand_button) self.widgetbox_collapsed.pack_end(expandbox,True,True,0) #pack it up self.pack_start(self.widgetbox_collapsed,False,False,0) #create a group dent scroller and add it to the group page self.dentScroller = DentScroller() self.pack_start(self.dentScroller)
def __init__(self): gtk.VBox.__init__(self) gobject.GObject.__init__(self) self.set_homogeneous(False) self.toggle_enabled=True self.block_sent=False #start doing the image stuff self.image = gtk.Image() #make an imagevbox = gtk.VBox(False,0) imagevbox.pack_start(self.image,False,False,0) labelvbox = gtk.VBox(False,0) #we need a grip of labels self.name_label = gtk.Label() labelvbox.pack_start(self.name_label,False,False,0) self.description_label = gtk.Label() labelvbox.pack_start(self.description_label,False,False,0) self.description_label.set_line_wrap(True) self.location_label = gtk.Label() self.url_label = gtk.Label() if not links_unavailable: self.url_label.connect('activate-link', self.process_link ) labelvbox.pack_start(self.location_label,False,False,0) labelvbox.pack_start(self.url_label,False,False,0) #make an hbox to hold the image and labels self.userhbox=gtk.HBox(False,5) #make an hbox to hold widgets self.widgetbox = gtk.HBox(False) #add the imagevbox self.userhbox.pack_start(imagevbox,False,False,0) self.userhbox.pack_start(labelvbox,False,False,0) self.pack_start(self.userhbox,False,False,0) self.pack_start(self.widgetbox,False,False,0) #make a checkbutton if we are following self.following_checkbutton = gtk.CheckButton(_("Following")) self.following_checkbutton.connect('toggled', self.following_toggled) self.widgetbox.pack_start(self.following_checkbutton,False,False,0) #how about a 'direct' button? self.direct_button = DentButton('direct') self.direct_button.connect('clicked',self.direct_clicked) self.widgetbox.pack_start(self.direct_button,False,False,0) #create stuff for blocking -- commented out 9.3.10 x1101 blockbox=gtk.HBox() #enabler self.enable_block_checkbutton = gtk.CheckButton(_("Enable Blocking")) self.enable_block_checkbutton.connect('toggled', self.block_enable_toggled) #the blocking buttons self.block_button = DentButton('block') self.block_button.connect('clicked',self.block_clicked) self.block_button.set_sensitive(False) blockbox.pack_start(self.block_button,False,False,0) blockbox.pack_start(self.enable_block_checkbutton,False,False,0) self.widgetbox.pack_start(blockbox,False,False,0) #the collapse button collapsebox = gtk.Alignment(xalign=1.0) self.collapse_button = DentButton(u'\u25b2') self.collapse_button.connect('clicked',self.collapse_clicked) collapsebox.add(self.collapse_button) self.widgetbox.pack_end(collapsebox,True,True,0) #the collapsed widget box and name label self.widgetbox_collapsed = gtk.HBox(False) self.name_label_collapsed = gtk.Label() self.widgetbox_collapsed.pack_start(self.name_label_collapsed,False,False,0) #its expand button expandbox = gtk.Alignment(xalign=1.0) self.expand_button = DentButton(u'\u25bc') self.expand_button.connect('clicked',self.expand_clicked) expandbox.add(self.expand_button) self.widgetbox_collapsed.pack_end(expandbox,True,True,0) #pack it up self.pack_start(self.widgetbox_collapsed,False,False,0) #create a user dent scroller and add it to the user page self.dentScroller = DentScroller() self.pack_start(self.dentScroller)