Example #1
0
    def __init__(self):
        gobject.threads_init()
        gtk.HBox.__init__(self)

        self.connect("destroy", self._destroy_cb)

        self._ready = False
        self._paginator = None
        self._loaded_page = -1
        #self._old_scrollval = -1
        self._loaded_filename = None
        self._pagecount = -1
        self.__going_fwd = True
        self.__going_back = False
        self.__page_changed = False
        self._has_selection = False
        self.scale = 1.0
        self._epub = None
        self._findjob = None
        self.__in_search = False
        self.__search_fwd = True

        self._sw = gtk.ScrolledWindow()
        self._view = widgets._WebView()
        self._view.load_string(LOADING_HTML, 'text/html', 'utf-8', '/')
        settings = self._view.get_settings()
        settings.props.default_font_family = 'DejaVu LGC Serif'
        settings.props.enable_plugins = False
        settings.props.default_encoding = 'utf-8'
        self._view.connect('load-finished', self._view_load_finished_cb)
        self._view.connect('scroll-event', self._view_scroll_event_cb)
        self._view.connect('key-press-event', self._view_keypress_event_cb)
        self._view.connect('button-release-event',
                           self._view_buttonrelease_event_cb)
        self._view.connect('selection-changed',
                           self._view_selection_changed_cb)
        self._view.connect_after('populate-popup',
                                 self._view_populate_popup_cb)

        self._sw.add(self._view)
        self._sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_NEVER)
        self._v_vscrollbar = self._sw.get_vscrollbar()
        self._v_scrollbar_value_changed_cb_id = \
                self._v_vscrollbar.connect('value-changed', \
                self._v_scrollbar_value_changed_cb)
        self._scrollbar = gtk.VScrollbar()
        self._scrollbar.set_update_policy(gtk.UPDATE_DISCONTINUOUS)
        self._scrollbar_change_value_cb_id = \
                self._scrollbar.connect('change-value', \
                self._scrollbar_change_value_cb)
        self.pack_start(self._sw, expand=True, fill=True)
        self.pack_start(self._scrollbar, expand=False, fill=False)

        self._view.set_flags(gtk.CAN_DEFAULT | gtk.CAN_FOCUS)
Example #2
0
    def __init__(self, filelist):
        GObject.GObject.__init__(self)

        self._filelist = filelist
        self._filedict = {}
        self._pagemap = {}

        self._bookheight = 0
        self._count = 0
        self._pagecount = 0

        #TODO
        """
        self._screen = Gdk.Screen.get_default()
        self._old_fontoptions = self._screen.get_font_options()
        options = cairo.FontOptions()
        options.set_hint_style(cairo.HINT_STYLE_MEDIUM)
        options.set_antialias(cairo.ANTIALIAS_GRAY)
        options.set_subpixel_order(cairo.SUBPIXEL_ORDER_DEFAULT)
        options.set_hint_metrics(cairo.HINT_METRICS_DEFAULT)
        self._screen.set_font_options(options)
        """

        self._temp_win = Gtk.Window()
        self._temp_view = widgets._WebView(only_to_measure=True)

        settings = self._temp_view.get_settings()
        settings.props.default_font_family = 'DejaVu LGC Serif'
        settings.props.sans_serif_font_family = 'DejaVu LGC Sans'
        settings.props.serif_font_family = 'DejaVu LGC Serif'
        settings.props.monospace_font_family = 'DejaVu LGC Sans Mono'
        settings.props.enforce_96_dpi = True
        #FIXME: This does not seem to work
        #settings.props.auto_shrink_images = False
        settings.props.enable_plugins = False
        settings.props.default_font_size = 12
        settings.props.default_monospace_font_size = 10
        settings.props.default_encoding = 'utf-8'

        sw = Gtk.ScrolledWindow()
        sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER)
        self._dpi = 96
        self._single_page_height = _mm_to_pixel(PAGE_HEIGHT, self._dpi)
        sw.set_size_request(_mm_to_pixel(PAGE_WIDTH, self._dpi),
                            self._single_page_height)
        sw.add(self._temp_view)
        self._temp_win.add(sw)
        self._temp_view.connect('load-finished', self._page_load_finished_cb)

        self._temp_win.show_all()
        self._temp_win.unmap()

        self._temp_view.open(self._filelist[self._count])
Example #3
0
    def __init__(self, filelist):
        GObject.GObject.__init__(self)

        self._filelist = filelist
        self._filedict = {}
        self._pagemap = {}

        self._bookheight = 0
        self._count = 0
        self._pagecount = 0

        #TODO
        """
        self._screen = Gdk.Screen.get_default()
        self._old_fontoptions = self._screen.get_font_options()
        options = cairo.FontOptions()
        options.set_hint_style(cairo.HINT_STYLE_MEDIUM)
        options.set_antialias(cairo.ANTIALIAS_GRAY)
        options.set_subpixel_order(cairo.SUBPIXEL_ORDER_DEFAULT)
        options.set_hint_metrics(cairo.HINT_METRICS_DEFAULT)
        self._screen.set_font_options(options)
        """

        self._temp_win = Gtk.Window()
        self._temp_view = widgets._WebView(only_to_measure=True)

        settings = self._temp_view.get_settings()
        settings.props.default_font_family = 'DejaVu LGC Serif'
        settings.props.sans_serif_font_family = 'DejaVu LGC Sans'
        settings.props.serif_font_family = 'DejaVu LGC Serif'
        settings.props.monospace_font_family = 'DejaVu LGC Sans Mono'
        settings.props.enforce_96_dpi = True
        #FIXME: This does not seem to work
        #settings.props.auto_shrink_images = False
        settings.props.enable_plugins = False
        settings.props.default_font_size = 12
        settings.props.default_monospace_font_size = 10
        settings.props.default_encoding = 'utf-8'

        sw = Gtk.ScrolledWindow()
        sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER)
        self._dpi = 96
        self._single_page_height = _mm_to_pixel(PAGE_HEIGHT, self._dpi)
        sw.set_size_request(_mm_to_pixel(PAGE_WIDTH, self._dpi),
                self._single_page_height)
        sw.add(self._temp_view)
        self._temp_win.add(sw)
        self._temp_view.connect('load-finished', self._page_load_finished_cb)

        self._temp_win.show_all()
        self._temp_win.unmap()

        self._temp_view.open(self._filelist[self._count])
Example #4
0
    def __init__(self, filelist):
        GObject.GObject.__init__(self)

        self._filelist = filelist
        self._filedict = {}
        self._pagemap = {}

        self._bookheight = 0
        self._count = 0
        self._pagecount = 0

        # TODO
        """
        self._screen = Gdk.Screen.get_default()
        self._old_fontoptions = self._screen.get_font_options()
        options = cairo.FontOptions()
        options.set_hint_style(cairo.HINT_STYLE_MEDIUM)
        options.set_antialias(cairo.ANTIALIAS_GRAY)
        options.set_subpixel_order(cairo.SUBPIXEL_ORDER_DEFAULT)
        options.set_hint_metrics(cairo.HINT_METRICS_DEFAULT)
        self._screen.set_font_options(options)
        """

        self._temp_win = Gtk.Window()
        self._temp_view = widgets._WebView()

        settings = self._temp_view.get_settings()
        settings.props.default_font_family = 'DejaVu LGC Serif'
        settings.props.sans_serif_font_family = 'DejaVu LGC Sans'
        settings.props.serif_font_family = 'DejaVu LGC Serif'
        settings.props.monospace_font_family = 'DejaVu LGC Sans Mono'
        # FIXME: This does not seem to work
        # settings.props.auto_shrink_images = False
        settings.props.enable_plugins = False
        settings.props.default_font_size = 16
        settings.props.default_monospace_font_size = 13
        settings.props.default_charset = 'utf-8'

        self._dpi = Gdk.Screen.get_default().get_resolution()
        self._single_page_height = _mm_to_pixel(PAGE_HEIGHT, self._dpi)
        self._temp_view.set_size_request(_mm_to_pixel(PAGE_WIDTH, self._dpi),
                                         self._single_page_height)

        self._temp_win.add(self._temp_view)
        self._temp_view.connect('load-changed', self._page_load_changed_cb)

        self._temp_win.show_all()
        self._temp_win.unmap()

        self._temp_view.load_uri('file://' + self._filelist[self._count])
Example #5
0
    def __init__(self):
        GObject.threads_init()
        Gtk.HBox.__init__(self)

        self.connect("destroy", self._destroy_cb)

        self._ready = False
        self._paginator = None
        self._loaded_page = -1
        #self._old_scrollval = -1
        self._loaded_filename = None
        self.__going_fwd = True
        self.__going_back = False
        self.__page_changed = False
        self._has_selection = False
        self.scale = 1.0
        self._epub = None
        self._findjob = None
        self.__in_search = False
        self.__search_fwd = True

        self._sw = Gtk.ScrolledWindow()
        self._view = widgets._WebView()
        self._view.load_string(LOADING_HTML, 'text/html', 'utf-8', '/')
        settings = self._view.get_settings()
        settings.props.default_font_family = 'DejaVu LGC Serif'
        settings.props.enable_plugins = False
        settings.props.default_encoding = 'utf-8'
        self._view.connect('load-finished', self._view_load_finished_cb)
        self._view.connect('scroll-event', self._view_scroll_event_cb)
        self._view.connect('selection-changed',
                self._view_selection_changed_cb)
        self._view.connect_after('populate-popup',
                self._view_populate_popup_cb)

        self._sw.add(self._view)
        self._sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER)
        self._v_vscrollbar = self._sw.get_vscrollbar()
        self._v_vscrollbar.set_child_visible(False)

        self.pack_start(self._sw, True, True, 0)

        self._view.set_flags(Gtk.CAN_DEFAULT | Gtk.CAN_FOCUS)
Example #6
0
    def __init__(self):
        GObject.threads_init()
        Gtk.HBox.__init__(self)

        self.connect("destroy", self._destroy_cb)

        self._ready = False
        self._paginator = None
        self._loaded_page = -1
        self._file_loaded = True
        #self._old_scrollval = -1
        self._loaded_filename = None
        self._pagecount = -1
        self.__going_fwd = True
        self.__going_back = False
        self.__page_changed = False
        self._has_selection = False
        self.scale = 1.0
        self._epub = None
        self._findjob = None
        self.__in_search = False
        self.__search_fwd = True
        self._filelist = None
        self._internal_link = None

        self._sw = Gtk.ScrolledWindow()
        self._view = widgets._WebView()
        self._view.load_string(LOADING_HTML, 'text/html', 'utf-8', '/')
        settings = self._view.get_settings()
        settings.props.default_font_family = 'DejaVu LGC Serif'
        settings.props.enable_plugins = False
        settings.props.default_encoding = 'utf-8'
        self._view.connect('load-finished', self._view_load_finished_cb)
        self._view.connect('scroll-event', self._view_scroll_event_cb)
        self._view.connect('key-press-event', self._view_keypress_event_cb)
        self._view.connect('selection-changed',
                           self._view_selection_changed_cb)
        self._view.connect_after('populate-popup',
                                 self._view_populate_popup_cb)
        self._view.connect('touch-change-page', self.__touch_page_changed_cb)

        self._sw.add(self._view)
        self._v_vscrollbar = self._sw.get_vscrollbar()
        self._v_scrollbar_value_changed_cb_id = \
                self._v_vscrollbar.connect('value-changed', \
                self._v_scrollbar_value_changed_cb)
        self._scrollbar = Gtk.VScrollbar()
        self._scrollbar_change_value_cb_id = \
                self._scrollbar.connect('change-value', \
                self._scrollbar_change_value_cb)

        overlay = Gtk.Overlay()
        hbox = Gtk.HBox()
        overlay.add(hbox)
        hbox.add(self._sw)

        self._scrollbar.props.halign = Gtk.Align.END
        self._scrollbar.props.valign = Gtk.Align.FILL
        overlay.add_overlay(self._scrollbar)

        self.pack_start(overlay, True, True, 0)

        self._view.set_can_default(True)
        self._view.set_can_focus(True)

        def map_cp(widget):
            widget.setup_touch()
            widget.disconnect(self._setup_handle)

        self._setup_handle = self._view.connect('map', map_cp)
Example #7
0
    def __init__(self):
        GObject.threads_init()
        Gtk.HBox.__init__(self)

        self.connect("destroy", self._destroy_cb)

        self._ready = False
        self._paginator = None
        self._loaded_page = -1
        self._file_loaded = True
        #self._old_scrollval = -1
        self._loaded_filename = None
        self._pagecount = -1
        self.__going_fwd = True
        self.__going_back = False
        self.__page_changed = False
        self._has_selection = False
        self.scale = 1.0
        self._epub = None
        self._findjob = None
        self.__in_search = False
        self.__search_fwd = True
        self._filelist = None
        self._internal_link = None

        self._sw = Gtk.ScrolledWindow()
        self._view = widgets._WebView()
        self._view.load_string(LOADING_HTML, 'text/html', 'utf-8', '/')
        settings = self._view.get_settings()
        settings.props.default_font_family = 'DejaVu LGC Serif'
        settings.props.enable_plugins = False
        settings.props.default_encoding = 'utf-8'
        self._view.connect('load-finished', self._view_load_finished_cb)
        self._view.connect('scroll-event', self._view_scroll_event_cb)
        self._view.connect('key-press-event', self._view_keypress_event_cb)
        self._view.connect('selection-changed',
                self._view_selection_changed_cb)
        self._view.connect_after('populate-popup',
                self._view_populate_popup_cb)
        self._view.connect('touch-change-page', self.__touch_page_changed_cb)

        self._sw.add(self._view)
        self._v_vscrollbar = self._sw.get_vscrollbar()
        self._v_scrollbar_value_changed_cb_id = \
                self._v_vscrollbar.connect('value-changed', \
                self._v_scrollbar_value_changed_cb)
        self._scrollbar = Gtk.VScrollbar()
        self._scrollbar_change_value_cb_id = \
                self._scrollbar.connect('change-value', \
                self._scrollbar_change_value_cb)

        overlay = Gtk.Overlay()
        hbox = Gtk.HBox()
        overlay.add(hbox)
        hbox.add(self._sw)

        self._scrollbar.props.halign = Gtk.Align.END
        self._scrollbar.props.valign = Gtk.Align.FILL
        overlay.add_overlay(self._scrollbar)

        self.pack_start(overlay, True, True, 0)

        self._view.set_can_default(True)
        self._view.set_can_focus(True)

        def map_cp(widget):
            widget.setup_touch()
            widget.disconnect(self._setup_handle)

        self._setup_handle = self._view.connect('map', map_cp)
Example #8
0
    def __init__(self):
        GObject.threads_init()
        Gtk.HBox.__init__(self)

        self.connect("destroy", self._destroy_cb)

        self._ready = False
        self._paginator = None
        self._loaded_page = -1
        # self._old_scrollval = -1
        self._loaded_filename = None
        self._pagecount = -1
        self.__scroll_to_end = False
        self.__page_changed = False
        self._has_selection = False
        self._scrollval = 0.0
        self.scale = 1.0
        self._epub = None
        self._findjob = None
        self.__in_search = False
        self.__search_fwd = True
        self._filelist = None
        self._internal_link = None

        self._view = widgets._WebView()
        self._view.load_html(LOADING_HTML, '/')
        settings = self._view.get_settings()
        settings.props.default_font_family = 'DejaVu LGC Serif'
        settings.props.enable_plugins = False
        settings.props.default_charset = 'utf-8'
        self._view.connect('load-changed', self._view_load_changed_cb)
        self._view.connect('scrolled', self._view_scrolled_cb)
        self._view.connect('scrolled-top', self._view_scrolled_top_cb)
        self._view.connect('scrolled-bottom', self._view_scrolled_bottom_cb)
        self._view.connect('selection-changed',
                           self._view_selection_changed_cb)

        find = self._view.get_find_controller()
        find.connect('failed-to-find-text', self._find_failed_cb)

        self._eventbox = Gtk.EventBox()
        self._eventbox.connect('scroll-event', self._eventbox_scroll_event_cb)
        self._eventbox.add_events(Gdk.EventMask.SCROLL_MASK)
        self._eventbox.add(self._view)

        self._scrollbar = Gtk.VScrollbar()
        self._scrollbar_change_value_cb_id = self._scrollbar.connect(
            'change-value', self._scrollbar_change_value_cb)

        hbox = Gtk.HBox()
        hbox.pack_start(self._eventbox, True, True, 0)
        hbox.pack_end(self._scrollbar, False, True, 0)

        self.pack_start(hbox, True, True, 0)
        self._view.set_can_default(True)
        self._view.set_can_focus(True)

        def map_cp(widget):
            widget.setup_touch()
            widget.disconnect(self._setup_handle)

        self._setup_handle = self._view.connect('map', map_cp)