 a735c7a6ce
			
		
	
	
		a735c7a6ce
		
	
	
	
	
		
			
			doesn't affect that much the code, it just remove unused modules and make it look better.
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| import time
 | |
| 
 | |
| from gi.repository import Gtk
 | |
| 
 | |
| from sugar3.graphics import style
 | |
| from sugar3.graphics.icon import CellRendererIcon
 | |
| from sugar3.graphics.xocolor import XoColor
 | |
| from sugar3.graphics.scrollingdetector import ScrollingDetector
 | |
| from sugar3.graphics.palettewindow import TreeViewInvoker
 | |
| import common
 | |
| 
 | |
| 
 | |
| def _scroll_start_cb(event, treeview, invoker):
 | |
|     print "Scroll starts"
 | |
|     invoker.detach()
 | |
| 
 | |
| 
 | |
| def _scroll_end_cb(event, treeview, invoker):
 | |
|     print "Scroll ends"
 | |
|     invoker.attach_treeview(treeview)
 | |
| 
 | |
| 
 | |
| test = common.Test()
 | |
| test.show()
 | |
| 
 | |
| model = Gtk.ListStore(str)
 | |
| 
 | |
| data_dir = os.getenv('GTK_DATA_PREFIX', '/usr/')
 | |
| 
 | |
| iconlist = os.listdir(os.path.join(data_dir,
 | |
|                       'share/icons/sugar/scalable/actions/'))
 | |
| print "Displaying %s icons" % len(iconlist)
 | |
| for icon in iconlist:
 | |
|     icon = os.path.basename(icon)
 | |
|     icon = icon[:icon.find('.')]
 | |
|     model.append([icon])
 | |
| 
 | |
| scrolled = Gtk.ScrolledWindow()
 | |
| scrolled.set_size_request(800, 800)
 | |
| treeview = Gtk.TreeView()
 | |
| 
 | |
| treeview.set_model(model)
 | |
| scrolled.add(treeview)
 | |
| test.pack_start(scrolled, True, True, 0)
 | |
| test.show_all()
 | |
| 
 | |
| col = Gtk.TreeViewColumn()
 | |
| treeview.append_column(col)
 | |
| 
 | |
| xo_color = XoColor('#FF0000,#00FF00')
 | |
| cell_icon = CellRendererIcon()
 | |
| cell_icon.props.width = style.GRID_CELL_SIZE
 | |
| cell_icon.props.height = style.GRID_CELL_SIZE
 | |
| cell_icon.props.size = style.STANDARD_ICON_SIZE
 | |
| cell_icon.props.xo_color = xo_color
 | |
| 
 | |
| col.pack_start(cell_icon, expand=False)
 | |
| col.add_attribute(cell_icon, 'icon-name', 0)
 | |
| cell_text = Gtk.CellRendererText()
 | |
| col.pack_start(cell_text, expand=True)
 | |
| col.add_attribute(cell_text, 'text', 0)
 | |
| 
 | |
| invoker = TreeViewInvoker()
 | |
| invoker.attach_treeview(treeview)
 | |
| 
 | |
| detector = ScrollingDetector(scrolled)
 | |
| detector.connect('scroll-start', _scroll_start_cb, treeview, invoker)
 | |
| detector.connect('scroll-end', _scroll_end_cb, treeview, invoker)
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     time_ini = time.time()
 | |
|     common.main(test)
 |