published by the Free Software Foundation.\r
"""\r
\r
+import logging\r
\r
-import pygtk\r
-pygtk.require("2.0")\r
+import pango\r
import gtk\r
\r
+import hildonize\r
+import gtk_toolbox\r
+\r
\r
try:\r
_\r
_ = lambda x: x\r
\r
\r
-class SimpleList(gtk.ScrolledWindow):\r
+_moduleLogger = logging.getLogger(__name__)\r
+\r
+\r
+class SimpleList(object):\r
"""\r
Stellt eine einfache Liste mit Laufbalken dar. Das wird mit\r
den Objekten ScrolledWindow und TreeView erreicht.\r
"""\r
Initialisieren\r
"""\r
-\r
- gtk.ScrolledWindow.__init__(self)\r
self._selectedItem = None # (<Position>, <Key>, <Value>)\r
\r
- # Liste\r
- self._itemlist = gtk.ListStore(str, str)\r
-\r
- # ScrolledWindow\r
- self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)\r
- self.set_shadow_type(gtk.SHADOW_IN)\r
-\r
# Treeview\r
+ self._itemlist = gtk.ListStore(str, str)\r
self._itemView = gtk.TreeView(self._itemlist)\r
self._itemView.set_headers_visible(False)\r
- self._itemView.get_selection().set_mode(gtk.SELECTION_BROWSE)\r
+ self._itemView.get_selection().set_mode(gtk.SELECTION_SINGLE)\r
self._itemView.connect("cursor-changed", self._on_cursor_changed)\r
self._itemView.connect("row-activated", self._on_row_activated)\r
self._itemView.show()\r
\r
# Value-Spalte hinzufügen\r
self._valueCell = gtk.CellRendererText()\r
+ self._valueCell.set_property("ellipsize", pango.ELLIPSIZE_END)\r
self._valueColumn = gtk.TreeViewColumn("Caption")\r
self._valueColumn.pack_start(self._valueCell, True)\r
self._valueColumn.add_attribute(self._valueCell, "text", self.VALUE_IDX)\r
# wie ich das möchte. Deshalb habe ich die Suche abgeschaltet.\r
self._itemView.set_enable_search(False)\r
\r
- # Anzeigen\r
- self.add(self._itemView)\r
- self.show()\r
+ self._maemo5HackVBox = gtk.VBox()\r
+ self._maemo5HackVBox.pack_start(self._itemView)\r
+ self._maemo5HackViewport = gtk.Viewport()\r
+ self._maemo5HackViewport.add(self._maemo5HackVBox)\r
+\r
+ # ScrolledWindow\r
+ self._scrolledWindow = gtk.ScrolledWindow()\r
+ self._scrolledWindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)\r
+ self._scrolledWindow.set_shadow_type(gtk.SHADOW_IN)\r
+ self._scrolledWindow.add(self._maemo5HackViewport)\r
+\r
+ self._scrolledWindow = hildonize.hildonize_scrollwindow(self._scrolledWindow)\r
+ self._scrolledWindow.show()\r
+\r
+ @property\r
+ def widget(self):\r
+ return self._scrolledWindow\r
\r
def append_item(self, value, key = ""):\r
"""\r
"""\r
\r
self._itemView.connect("cursor-changed", function)\r
+ self._itemView.connect("row-activated", function)\r
\r
+ @gtk_toolbox.log_exception(_moduleLogger)\r
def _on_row_activated(self, treeview, path, view_column, data = None):\r
"""\r
- Setzt den Wert von self._selectedItems. Dieser Wert kann\r
- mit der Methode "get_selection_data" abgerufen werden.\r
+ Sets the value of self._selectedItems. This value can\r
+ be retrieved using the method "get_selection_data.\r
"""\r
\r
iter = self._itemlist.get_iter(path)\r
self._itemlist.get_value(iter, self.VALUE_IDX) # Value\r
)\r
\r
+ @gtk_toolbox.log_exception(_moduleLogger)\r
def _on_cursor_changed(self, widget, data1 = None, data2 = None):\r
"""\r
- Setzt den Wert von self._selectedItems. Dieser Wert kann\r
- mit der Methode "get_selection_data" abgerufen werden.\r
+ Sets the value of self._selectedItems. This value can\r
+ be retrieved using the method "get_selection_data.\r
"""\r
\r
selection = widget.get_selection()\r