'recent_scrolledwindow',
'message_scrolledwindow',
'contacts_scrolledwindow',
+ ):
+ hildonize.hildonize_scrollwindow(self._widgetTree.get_widget(scrollingWidget))
+ for scrollingWidget in (
"phoneSelectionMessage_scrolledwindow",
"phonetypes_scrolledwindow",
"smsMessage_scrolledwindow",
"smsMessage_scrolledEntry",
):
- hildonize.set_thumb_scrollbar(self._widgetTree.get_widget(scrollingWidget))
+ hildonize.hildonize_scrollwindow_with_viewport(self._widgetTree.get_widget(scrollingWidget))
- hildonize.hildonize_menu(self._window, self._widgetTree.get_widget("dialpad_menubar"))
+ replacementButtons = [gtk.Button("Test")]
+ menu = hildonize.hildonize_menu(
+ self._window,
+ self._widgetTree.get_widget("dialpad_menubar"),
+ replacementButtons
+ )
- if hildonize.IS_HILDON:
+ if hildonize.IS_HILDON_SUPPORTED:
self._window.connect("key-press-event", self._on_key_press)
self._window.connect("window-state-event", self._on_window_state_change)
else:
logging.warning("No hildonization support")
-
hildonize.set_application_title(self._window, "%s" % constants.__pretty_app_name__)
- callbackMapping = {
- "on_dialpad_quit": self._on_close,
- }
- self._widgetTree.signal_autoconnect(callbackMapping)
-
self._window.connect("destroy", self._on_close)
self._window.set_default_size(800, 300)
self._window.show_all()
self._errorDisplay.push_exception()
alarm_handler = None
logging.warning("No notification support")
- if hildonize.IS_HILDON:
+ if hildonize.IS_HILDON_SUPPORTED:
try:
import led_handler
self._ledHandler = led_handler.LedHandler()
"on_refresh": self._on_menu_refresh,
"on_rotate": self._on_menu_rotate,
"on_clearcookies_clicked": self._on_clearcookies_clicked,
- "on_notebook_switch_page": self._on_notebook_switch_page,
"on_about_activate": self._on_about_activate,
}
- self._widgetTree.signal_autoconnect(callbackMapping)
+ if hildonize.GTK_MENU_USED:
+ self._widgetTree.signal_autoconnect(callbackMapping)
+ self._notebook.connect("switch-page", self._on_notebook_switch_page)
+ self._widgetTree.get_widget("clearcookies").connect("clicked", self._on_clearcookies_clicked)
with gtk_toolbox.gtk_lock():
self._originalCurrentLabels = [
def _on_paste(self, *args):
try:
contents = self._clipboard.wait_for_text()
- self._dialpads[self._selectedBackendId].set_number(contents)
+ if contents is not None:
+ self._dialpads[self._selectedBackendId].set_number(contents)
except Exception, e:
self._errorDisplay.push_exception()
#with gtk_toolbox.flock(_lock_file, 0):
gtk.gdk.threads_init()
- if hildonize.IS_HILDON:
+ if hildonize.IS_HILDON_SUPPORTED:
gtk.set_application_name(constants.__pretty_app_name__)
handle = Dialcentral()
gtk.main()
</child>
</widget>
</child>
- <child>
- <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
- <property name="visible">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="quit_menu_item">
- <property name="label">gtk-quit</property>
- <property name="visible">True</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_dialpad_quit"/>
- </widget>
- </child>
</widget>
</child>
</widget>
<signal name="activate" handler="on_paste"/>
</widget>
</child>
- <child>
- <widget class="GtkImageMenuItem" id="delete_menu_item">
- <property name="label">Clear Number</property>
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Clear Number</property>
- <property name="use_stock">False</property>
- <signal name="activate" handler="on_clear_number"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image4">
- <property name="visible">True</property>
- <property name="stock">gtk-delete</property>
- </widget>
- </child>
- </widget>
- </child>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkMenuItem" id="rotateMenuItem">
- <property name="label" translatable="yes">_Rotate</property>
<property name="visible">True</property>
+ <property name="label" translatable="yes">_Rotate</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_rotate"/>
</widget>
<property name="tab_pos">left</property>
<property name="show_border">False</property>
<property name="homogeneous">True</property>
- <signal name="switch_page" handler="on_notebook_switch_page"/>
<child>
<widget class="GtkVBox" id="keypad_vbox">
<property name="visible">True</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
- <signal name="clicked" handler="on_dial_clicked"/>
<accelerator key="Return" signal="clicked"/>
<child>
<widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <signal name="clicked" handler="on_sms_clicked"/>
<accelerator key="Return" signal="clicked"/>
<child>
<widget class="GtkHBox" id="hbox2">
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="recent_scrolledwindow">
+ <widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">never</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkTreeView" id="recentview">
+ <widget class="GtkScrolledWindow" id="recent_scrolledwindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="rules_hint">True</property>
- <property name="enable_grid_lines">horizontal</property>
- <property name="enable_tree_lines">True</property>
- <signal name="row_activated" handler="on_recentview_row_activated"/>
+ <property name="hscrollbar_policy">never</property>
+ <child>
+ <widget class="GtkTreeView" id="recentview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="rules_hint">True</property>
+ <property name="enable_grid_lines">horizontal</property>
+ <property name="enable_tree_lines">True</property>
+ </widget>
+ </child>
</widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
</widget>
<packing>
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="message_scrolledwindow">
+ <widget class="GtkVBox" id="vbox3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">automatic</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkTreeView" id="messages_view">
+ <widget class="GtkScrolledWindow" id="message_scrolledwindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="rules_hint">True</property>
- <property name="enable_grid_lines">horizontal</property>
- <property name="enable_tree_lines">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <child>
+ <widget class="GtkTreeView" id="messages_view">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="rules_hint">True</property>
+ <property name="enable_grid_lines">horizontal</property>
+ <property name="enable_tree_lines">True</property>
+ </widget>
+ </child>
</widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
</widget>
<packing>
</packing>
</child>
<child>
- <widget class="GtkTable" id="contacts_table">
+ <widget class="GtkVBox" id="vbox5">
<property name="visible">True</property>
- <property name="n_rows">2</property>
+ <property name="orientation">vertical</property>
<child>
<widget class="GtkComboBox" id="addressbook_combo">
<property name="visible">True</property>
- <signal name="changed" handler="on_addressbook_combo_changed"/>
</widget>
<packing>
- <property name="y_options">GTK_FILL</property>
+ <property name="expand">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<property name="fixed_height_mode">True</property>
<property name="enable_grid_lines">horizontal</property>
<property name="enable_tree_lines">True</property>
- <signal name="row_activated" handler="on_contactsview_row_activated"/>
</widget>
</child>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="position">1</property>
</packing>
</child>
</widget>
<packing>
<property name="position">3</property>
- <property name="tab_expand">True</property>
- <property name="tab_fill">False</property>
</packing>
</child>
<child>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="focus_on_click">False</property>
- <signal name="clicked" handler="on_clearcookies_clicked"/>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
- <signal name="clicked" handler="on_loginclose_clicked"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="can_default">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
- <signal name="clicked" handler="on_loginbutton_clicked"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="visible">True</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkScrolledWindow" id="phoneSelectionMessage_scrolledwindow">
+ <widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">automatic</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkViewport" id="phoneSelectionMessage_viewport">
+ <widget class="GtkScrolledWindow" id="phoneSelectionMessage_scrolledwindow">
<property name="visible">True</property>
- <property name="resize_mode">queue</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
<child>
- <widget class="GtkLabel" id="phoneSelectionMessage">
+ <widget class="GtkViewport" id="phoneSelectionMessage_viewport">
<property name="visible">True</property>
- <property name="use_markup">True</property>
- <property name="wrap">True</property>
+ <property name="resize_mode">queue</property>
+ <child>
+ <widget class="GtkLabel" id="phoneSelectionMessage">
+ <property name="visible">True</property>
+ <property name="use_markup">True</property>
+ <property name="wrap">True</property>
+ </widget>
+ </child>
</widget>
</child>
</widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
</widget>
<packing>
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="phonetypes_scrolledwindow">
+ <widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">automatic</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkTreeView" id="phonetypes">
+ <widget class="GtkScrolledWindow" id="phonetypes_scrolledwindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="rules_hint">True</property>
- <property name="enable_search">False</property>
- <signal name="row_activated" handler="on_phonetype_select"/>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <child>
+ <widget class="GtkTreeView" id="phonetypes">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="rules_hint">True</property>
+ <property name="enable_search">False</property>
+ </widget>
+ </child>
</widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
</widget>
<packing>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <signal name="clicked" handler="on_phonetype_select"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
- <signal name="clicked" handler="on_phonetype_cancel"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkScrolledWindow" id="smsMessage_scrolledwindow">
+ <widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">automatic</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkViewport" id="smsMessage_viewport">
+ <widget class="GtkScrolledWindow" id="smsMessage_scrolledwindow">
<property name="visible">True</property>
- <property name="resize_mode">queue</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
<child>
- <widget class="GtkLabel" id="smsMessage">
+ <widget class="GtkViewport" id="smsMessage_viewport">
<property name="visible">True</property>
- <property name="use_markup">True</property>
- <property name="wrap">True</property>
+ <property name="resize_mode">queue</property>
+ <child>
+ <widget class="GtkLabel" id="smsMessage">
+ <property name="visible">True</property>
+ <property name="use_markup">True</property>
+ <property name="wrap">True</property>
+ </widget>
+ </child>
</widget>
</child>
</widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
</widget>
<packing>
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="smsMessage_scrolledEntry">
+ <widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">automatic</property>
+ <property name="orientation">vertical</property>
<child>
- <widget class="GtkTextView" id="smsEntry">
+ <widget class="GtkScrolledWindow" id="smsMessage_scrolledEntry">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="wrap_mode">word</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <child>
+ <widget class="GtkTextView" id="smsEntry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="wrap_mode">word</property>
+ </widget>
+ </child>
</widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
</widget>
<packing>
self._serviceCombo.add_attribute(cell, 'text', 1)
self._serviceCombo.set_active(0)
- callbackMapping = {
- "on_loginbutton_clicked": self._on_loginbutton_clicked,
- "on_loginclose_clicked": self._on_loginclose_clicked,
- }
- widgetTree.signal_autoconnect(callbackMapping)
+ widgetTree.get_widget("loginbutton").connect("clicked", self._on_loginbutton_clicked)
+ widgetTree.get_widget("logins_close_button").connect("clicked", self._on_loginclose_clicked)
def request_credentials(self,
parentWindow = None,
self._smsDialog = SmsEntryDialog(widgetTree)
self._numberdisplay = widgetTree.get_widget("numberdisplay")
+ self._smsButton = widgetTree.get_widget("sms")
self._dialButton = widgetTree.get_widget("dial")
self._backButton = widgetTree.get_widget("back")
self._phonenumber = ""
self._prettynumber = ""
callbackMapping = {
- "on_dial_clicked": self._on_dial_clicked,
- "on_sms_clicked": self._on_sms_clicked,
"on_digit_clicked": self._on_digit_clicked,
- "on_clear_number": self._on_clear_number,
}
widgetTree.signal_autoconnect(callbackMapping)
+ self._dialButton.connect("clicked", self._on_dial_clicked)
+ self._smsButton.connect("clicked", self._on_sms_clicked)
self._originalLabel = self._backButton.get_label()
self._backTapHandler = gtk_toolbox.TapOrHold(self._backButton)
except Exception, e:
self._errorDisplay.push_exception()
- def _on_clear_number(self, *args):
- try:
- self.clear()
- except Exception, e:
- self._errorDisplay.push_exception()
-
def _on_digit_clicked(self, widget):
try:
self.set_number(self._phonenumber + widget.get_name()[-1])
try:
- import hildon
+ import hildon as _hildon
+ hildon = _hildon # Dumb but gets around pyflakiness
except (ImportError, OSError):
hildon = FakeHildonModule
-IS_HILDON = hildon is not FakeHildonModule
+IS_HILDON_SUPPORTED = hildon is not FakeHildonModule
class FakeHildonProgram(object):
pass
-if IS_HILDON:
- def get_app_class():
- return hildon.Program
-else:
- def get_app_class():
- return FakeHildonProgram
+def _hildon_get_app_class():
+ return hildon.Program
+
+
+def _null_get_app_class():
+ return FakeHildonProgram
-if IS_HILDON:
- def set_application_title(window, title):
- pass
+if IS_HILDON_SUPPORTED:
+ get_app_class = _hildon_get_app_class
else:
- def set_application_title(window, title):
- window.set_title(title)
+ get_app_class = _null_get_app_class
+
+
+def _hildon_set_application_title(window, title):
+ pass
-if IS_HILDON:
- def hildonize_window(app, window):
- oldWindow = window
- newWindow = hildon.Window()
- oldWindow.get_child().reparent(newWindow)
- app.add_window(newWindow)
- return newWindow
+def _null_set_application_title(window, title):
+ window.set_title(title)
+
+
+if IS_HILDON_SUPPORTED:
+ set_application_title = _hildon_set_application_title
else:
- def hildonize_window(app, window):
- return window
-
-
-if IS_HILDON:
- def hildonize_menu(window, gtkMenu):
- hildonMenu = gtk.Menu()
- for child in gtkMenu.get_children():
- child.reparent(hildonMenu)
- window.set_menu(hildonMenu)
- gtkMenu.destroy()
- return hildonMenu
+ set_application_title = _null_set_application_title
+
+
+def _hildon_hildonize_window(app, window):
+ oldWindow = window
+ newWindow = hildon.Window()
+ oldWindow.get_child().reparent(newWindow)
+ app.add_window(newWindow)
+ return newWindow
+
+
+def _null_hildonize_window(app, window):
+ return window
+
+
+if IS_HILDON_SUPPORTED:
+ hildonize_window = _hildon_hildonize_window
else:
- def hildonize_menu(window, gtkMenu):
- return gtkMenu
+ hildonize_window = _null_hildonize_window
+
+
+def _fremantle_hildonize_menu(window, gtkMenu, buttons):
+ appMenu = hildon.AppMenu()
+ for button in buttons:
+ appMenu.append(button)
+ window.set_app_menu(appMenu)
+ gtkMenu.get_parent().remove(gtkMenu)
+ return appMenu
+
+def _hildon_hildonize_menu(window, gtkMenu, ignoredButtons):
+ hildonMenu = gtk.Menu()
+ for child in gtkMenu.get_children():
+ child.reparent(hildonMenu)
+ window.set_menu(hildonMenu)
+ gtkMenu.destroy()
+ return hildonMenu
-if IS_HILDON:
- def set_cell_thumb_selectable(renderer):
- renderer.set_property("scale", 1.5)
+
+def _null_hildonize_menu(window, gtkMenu, ignoredButtons):
+ return gtkMenu
+
+
+try:
+ hildon.AppMenu
+ GTK_MENU_USED = False
+ hildonize_menu = _fremantle_hildonize_menu
+except AttributeError:
+ GTK_MENU_USED = True
+ if IS_HILDON_SUPPORTED:
+ hildonize_menu = _hildon_hildonize_menu
+ else:
+ hildonize_menu = _null_hildonize_menu
+
+
+def _hildon_set_cell_thumb_selectable(renderer):
+ renderer.set_property("scale", 1.5)
+
+
+def _null_set_cell_thumb_selectable(renderer):
+ pass
+
+
+if IS_HILDON_SUPPORTED:
+ set_cell_thumb_selectable = _hildon_set_cell_thumb_selectable
else:
- def set_cell_thumb_selectable(renderer):
- pass
+ set_cell_thumb_selectable = _null_set_cell_thumb_selectable
+
+def _hildon_hildonize_text_entry(textEntry):
+ textEntry.set_property('hildon-input-mode', 7)
-if IS_HILDON:
- def hildonize_text_entry(textEntry):
- textEntry.set_property('hildon-input-mode', 7)
+
+def _null_hildonize_text_entry(textEntry):
+ pass
+
+
+if IS_HILDON_SUPPORTED:
+ hildonize_text_entry = _hildon_hildonize_text_entry
else:
- def hildonize_text_entry(textEntry):
- pass
+ hildonize_text_entry = _null_hildonize_text_entry
+
+
+def _hildon_mark_window_rotatable(window):
+ # gtk documentation is unclear whether this does a "=" or a "|="
+ window.set_flags(hildon.HILDON_PORTRAIT_MODE_SUPPORT)
+
+
+def _null_mark_window_rotatable(window):
+ pass
try:
hildon.HILDON_PORTRAIT_MODE_SUPPORT
-
- def mark_window_rotatable(window):
- # gtk documentation is unclear whether this does a "=" or a "|="
- window.set_flags(hildon.HILDON_PORTRAIT_MODE_SUPPORT)
+ mark_window_rotatable = _hildon_mark_window_rotatable
except AttributeError:
- def mark_window_rotatable(window):
- pass
+ mark_window_rotatable = _null_mark_window_rotatable
+
+
+def _hildon_window_to_portrait(window):
+ # gtk documentation is unclear whether this does a "=" or a "|="
+ window.set_flags(hildon.HILDON_PORTRAIT_MODE_SUPPORT)
+
+
+def _hildon_window_to_landscape(window):
+ # gtk documentation is unclear whether this does a "=" or a "&= ~"
+ window.unset_flags(hildon.HILDON_PORTRAIT_MODE_REQUEST)
+
+
+def _null_window_to_portrait(window):
+ pass
+
+
+def _null_window_to_landscape(window):
+ pass
try:
hildon.HILDON_PORTRAIT_MODE_SUPPORT
hildon.HILDON_PORTRAIT_MODE_REQUEST
- def window_to_portrait(window):
- # gtk documentation is unclear whether this does a "=" or a "|="
- window.set_flags(hildon.HILDON_PORTRAIT_MODE_SUPPORT)
-
- def window_to_landscape(window):
- # gtk documentation is unclear whether this does a "=" or a "&= ~"
- window.unset_flags(hildon.HILDON_PORTRAIT_MODE_REQUEST)
+ window_to_portrait = _hildon_window_to_portrait
+ window_to_landscape = _hildon_window_to_landscape
except AttributeError:
- def window_to_portrait(window):
- pass
-
- def window_to_landscape(window):
- pass
+ window_to_portrait = _null_window_to_portrait
+ window_to_landscape = _null_window_to_landscape
def get_device_orientation():
raise RuntimeError("Unknown orientation: %s" % orientation)
-if IS_HILDON:
- def hildonize_password_entry(textEntry):
- textEntry.set_property('hildon-input-mode', 7 | (1 << 29))
+def _hildon_hildonize_password_entry(textEntry):
+ textEntry.set_property('hildon-input-mode', 7 | (1 << 29))
+
+
+def _null_hildonize_password_entry(textEntry):
+ pass
+
+
+if IS_HILDON_SUPPORTED:
+ hildonize_password_entry = _hildon_hildonize_password_entry
else:
- def hildonize_password_entry(textEntry):
- pass
+ hildonize_password_entry = _null_hildonize_password_entry
+
+def _hildon_hildonize_combo_entry(comboEntry):
+ comboEntry.set_property('hildon-input-mode', 1 << 4)
-if IS_HILDON:
- def hildonize_combo_entry(comboEntry):
- comboEntry.set_property('hildon-input-mode', 1 << 4)
+
+def _null_hildonize_combo_entry(textEntry):
+ pass
+
+
+if IS_HILDON_SUPPORTED:
+ hildonize_combo_entry = _hildon_hildonize_combo_entry
else:
- def hildonize_combo_entry(textEntry):
- pass
+ hildonize_combo_entry = _null_hildonize_combo_entry
-try:
- hildon.PannableArea
- None.TODO
- def set_thumb_scrollbar(scrolledWindow):
- pannableWindow = hildon.PannableArea()
+def _fremantle_hildonize_scrollwindow(scrolledWindow):
+ pannableWindow = hildon.PannableArea()
+
+ child = scrolledWindow.get_child()
+ scrolledWindow.remove(child)
+ pannableWindow.add(child)
+
+ parent = scrolledWindow.get_parent()
+ parent.remove(scrolledWindow)
+ parent.add(pannableWindow)
+
+ return pannableWindow
+
+
+def _hildon_hildonize_scrollwindow(scrolledWindow):
+ hildon.hildon_helper_set_thumb_scrollbar(scrolledWindow, True)
+ return scrolledWindow
- child = scrolledWindow.get_child()
- scrolledWindow.remove(child)
- pannableWindow.add(child)
- parent = scrolledWindow.get_parent()
- parent.remove(scrolledWindow)
- parent.add(pannableWindow)
+def _null_hildonize_scrollwindow(scrolledWindow):
+ return scrolledWindow
- return pannableWindow
+
+try:
+ hildon.PannableArea
+ hildonize_scrollwindow = _fremantle_hildonize_scrollwindow
+ hildonize_scrollwindow_with_viewport = _hildon_hildonize_scrollwindow
except AttributeError:
try:
- hildon.hildon_helper_set_thumb_scrollbar
- def set_thumb_scrollbar(scrolledWindow):
- hildon.hildon_helper_set_thumb_scrollbar(scrolledWindow, True)
- return scrolledWindow
+ hildon.hildon_helper_hildonize_scrollwindow
+ hildonize_scrollwindow = _hildon_hildonize_scrollwindow
+ hildonize_scrollwindow_with_viewport = _hildon_hildonize_scrollwindow
except AttributeError:
- def set_thumb_scrollbar(scrolledWindow):
- return scrolledWindow
+ hildonize_scrollwindow = _null_hildonize_scrollwindow
+ hildonize_scrollwindow_with_viewport = _null_hildonize_scrollwindow
+
+
+def _hildon_request_number(parent, title, range, default):
+ spinner = hildon.NumberEditor(*range)
+ spinner.set_value(default)
+
+ dialog = gtk.Dialog(
+ title,
+ parent,
+ gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT,
+ (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL),
+ )
+ dialog.set_default_response(gtk.RESPONSE_CANCEL)
+ dialog.get_child().add(spinner)
+
+ try:
+ dialog.show_all()
+ response = dialog.run()
+ finally:
+ dialog.hide()
+
+ if response == gtk.RESPONSE_OK:
+ return spinner.get_value()
+ elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
+ raise RuntimeError("User cancelled request")
+ else:
+ raise RuntimeError("Unrecognized response %r", response)
+
+
+def _null_request_number(parent, title, range, default):
+ adjustment = gtk.Adjustment(default, range[0], range[1], 1, 5, 0)
+ spinner = gtk.SpinButton(adjustment, 0, 0)
+ spinner.set_wrap(False)
+
+ dialog = gtk.Dialog(
+ title,
+ parent,
+ gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT,
+ (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL),
+ )
+ dialog.set_default_response(gtk.RESPONSE_CANCEL)
+ dialog.get_child().add(spinner)
+
+ try:
+ dialog.show_all()
+ response = dialog.run()
+ finally:
+ dialog.hide()
+
+ if response == gtk.RESPONSE_OK:
+ return spinner.get_value_as_int()
+ elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
+ raise RuntimeError("User cancelled request")
+ else:
+ raise RuntimeError("Unrecognized response %r", response)
try:
hildon.NumberEditor # TODO deprecated in fremantle
- def request_number(parent, title, range, default):
- spinner = hildon.NumberEditor(*range)
- spinner.set_value(default)
-
- dialog = gtk.Dialog(
- title,
- parent,
- gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT,
- (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL),
- )
- dialog.set_default_response(gtk.RESPONSE_CANCEL)
- dialog.get_child().add(spinner)
-
- try:
- dialog.show_all()
- response = dialog.run()
- finally:
- dialog.hide()
-
- if response == gtk.RESPONSE_OK:
- return spinner.get_value()
- elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
- raise RuntimeError("User cancelled request")
- else:
- raise RuntimeError("Unrecognized response %r", response)
+ request_number = _hildon_request_number
except AttributeError:
- def request_number(parent, title, range, default):
- adjustment = gtk.Adjustment(default, range[0], range[1], 1, 5, 0)
- spinner = gtk.SpinButton(adjustment, 0, 0)
- spinner.set_wrap(False)
-
- dialog = gtk.Dialog(
- title,
- parent,
- gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT,
- (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL),
- )
- dialog.set_default_response(gtk.RESPONSE_CANCEL)
- dialog.get_child().add(spinner)
-
- try:
- dialog.show_all()
- response = dialog.run()
- finally:
- dialog.hide()
-
- if response == gtk.RESPONSE_OK:
- return spinner.get_value_as_int()
- elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
- raise RuntimeError("User cancelled request")
- else:
- raise RuntimeError("Unrecognized response %r", response)
+ request_number = _null_request_number
* Tweaked sizes of stuff on recent tab
* Starting some work on rotation support for fremantle
* Made startup more error resistant
+* Fremantle: Making various areas pannable
* Bug Fix: some dependencies for Diablo
* Bug Fix: Error on refreshing tabs when not logged in
* Bug Fix: #4471 Notification Checkbox Won't Stay Checked (hour roll over error)