#!/usr/bin/python3
# vim:tabstop=2:softtabstop=0:shiftwidth=2:syntax=sh
#=============================================================================|
#                *** PROPRIETARY RIGHTS NOTICE ***                            |
#   This material contains proprietary information of MULI Holdings P/L,      |
#   Wahroonga, NSW, Australia and/or its licensor, embodying                  |
#   "CONFIDENTIAL INFORMATION" ideas and expressions, no part of which may    |
#   be reproduced or transmitted without permission of MULI Management P/L.   |
#      ***  COPYRIGHT  1982 - 2013  ***  MULI Holdings P/L  ***               |
#                          All rights reserved.                               |
#=============================================================================|
#=.
#=> N-001	ChaoMa	01.08.17	Add zoom_in, zoom_out, zoom_fit
#=> N-000	ChaoMa	28.07.17	Initial version
#=.
###############################################################################

from gi import require_version
require_version('Gtk', '3.0')
require_version('EvinceDocument', '3.0')
require_version('EvinceView', '3.0')

from gi.repository import Gtk
from gi.repository import EvinceDocument
from gi.repository import EvinceView
import sys



uri = sys.argv[1]
EvinceDocument.init()
document = EvinceDocument.Document.factory_get_document("file:///" + uri)

model = EvinceView.DocumentModel()
model.set_document(document)
model.set_sizing_mode(EvinceView.SizingMode.FIT_WIDTH)

view = EvinceView.View()
view.set_model(model)

scroller = Gtk.ScrolledWindow()
scroller.add(view)

def zoom_in_cb(extra):
    model.set_sizing_mode(EvinceView.SizingMode.FREE)
    view.zoom_in()

def zoom_out_cb(extra):
    model.set_sizing_mode(EvinceView.SizingMode.FREE)
    view.zoom_out()

def zoom_fit_cb(extra):
    model.set_sizing_mode(EvinceView.SizingMode.FIT_WIDTH)

zoom_in = Gtk.ToolButton(Gtk.STOCK_ZOOM_IN)
zoom_in.connect("clicked", zoom_in_cb)

zoom_out = Gtk.ToolButton(Gtk.STOCK_ZOOM_OUT)
zoom_out.connect("clicked", zoom_out_cb)

zoom_fit = Gtk.ToolButton(Gtk.STOCK_ZOOM_FIT)
zoom_fit.connect("clicked", zoom_fit_cb)

hbox = Gtk.HBox()
hbox.pack_start(zoom_in, False, True, 0)
hbox.pack_start(zoom_out, False, True, 0)
hbox.pack_start(zoom_fit, False, True, 0)

vbox = Gtk.VBox()
vbox.pack_start(hbox, False, True, 0)
vbox.pack_start(scroller, True, True, 0)

window = Gtk.Window()
window.set_default_size(1400, 900)
window.set_position(Gtk.WindowPosition.CENTER)
window.connect("delete-event", Gtk.main_quit)
window.add(vbox)

window.show_all()
Gtk.main()
