#!/usr/bin/env python
# coding=utf-8
#filename: install.py
#author chenlu

import sys
import gtk,gobject,commands
import os
import time
import threading


ToInstall = 0
InsPath = '/opt/'
Finsh=1
Flash=0

def installall():
	os.system("/opt/neoshineoffice/uninstall.sh >/dev/null 2>&1 &  " )
	
def progress_timeout(pbobj):
	new_val = pbobj.pbar.get_fraction() + 0.01
	if new_val > 1.0 :
		pbobj.label.set_text(u"" )
		pbobj.pbar.hide()
	 	pbobj.button1.show()
		pbobj.image5.show()
		pbobj.image1.show()
		pbobj.label2.show()
		return True	
	else :
		pbobj.pbar.set_fraction(new_val)
	return True

class WelComeDlg:

    def window1_destroy_event(self, widget, data=None):
         gtk.main_quit()

    def on_messagedialog1_close(self, widget, data=None):
	return True
    def on_messagedialog1_response(self, widget, data=None):
	print "@on_messagedialog1_response@"
	self.dialog1.destroy()
	
	
    def gtk_main_quit(self, widget, data=None):	
	prompt = gtk.MessageDialog(None, 0, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, u"退出安装程序将无法完成，是否退出？")
	prompt.set_title(u"中标普华 Office")
    	if prompt.run() == gtk.RESPONSE_YES:
		exit()
    	else:
		rval = True
    	prompt.destroy()
	return rval
    
    def on_button1_clicked(self,button):
	global ToInstall 
	ToInstall = 1	
	gtk.main_quit()
	
  


    def __init__(self):
         builder = gtk.Builder()
         builder.add_from_file("/opt/neoshineoffice/WelUI.glade") 

         self.window = builder.get_object("window1")
         self.button1 = builder.get_object("button1")

         iconsdir='/opt/neoshineoffice/icons'
         imagename='una.png'
         path=os.path.join(iconsdir,imagename);

         pixbuf=gtk.gdk.pixbuf_new_from_file(path)
         pixmap,mask = pixbuf.render_pixmap_and_mask()
         width,height = pixmap.get_size()
         del pixbuf
         self.window.set_app_paintable(True)
         self.window.window.set_back_pixmap(pixmap,False)
         builder.connect_signals(self)  

class InstallDlg:
    def on_window_destroy(self, widget, data=None):
 	 gtk.main_quit()	

    def gtk_main_quit(self, widget, data=None):
         return True
	 
    def on_button1_clicked(self,button):
	 gtk.main_quit()


    def destroy_progress(self, widget, data=None):
	gobject.source_remove(self.timer)
	self.timer = 0
	gtk.main_quit()
     
    def __init__(self,use_dbus=True):

         builder = gtk.Builder()
         builder.add_from_file("/opt/neoshineoffice/uninsUI.glade") 

         self.window = builder.get_object("window1")
	 self.pbar = builder.get_object("progressbar1")
	 self.label = builder.get_object("label1")
	 self.button1 = builder.get_object("button1")
	 self.label2 = builder.get_object("label2")
	 self.image5 = builder.get_object("image5")
	 self.image1 = builder.get_object("image1")
	 self.button1.hide()

	 self.image5.hide()
	 self.image1.hide()
	 self.label2.hide()

         iconsdir='/opt/neoshineoffice/icons'
         global Flash 
         if Flash == 1 :
         	imagename = 'una.png'
         else :
         	imagename='unb.png'
         path=os.path.join(iconsdir,imagename);

         pixbuf=gtk.gdk.pixbuf_new_from_file(path)
         pixmap,mask = pixbuf.render_pixmap_and_mask()
         width,height = pixmap.get_size()
         del pixbuf

         self.window.set_app_paintable(True)
         self.window.window.set_back_pixmap(pixmap,False)
	
	 self.timer = gobject.timeout_add (1000, progress_timeout, self)	
	 self.window.connect("destroy", self.destroy_progress)
	 builder.connect_signals(self) 
 

if __name__ == "__main__":

	if 0 != os.geteuid():
		os.system("echo 'Need run as root!'")
		exit()
	weldlg = WelComeDlg()
	weldlg.window.show()
	gtk.main()
	
	if ToInstall == 0:
		exit()

	installall()

	weldlg.window.hide()
	insDlg =InstallDlg()
	insDlg.window.show()

        gtk.main()



