#!/usr/bin/env python
# template.py 
import wx
import os
app = wx.App(False) 

# events
def button_clicked(top_panel):
    top_panel.SetBackgroundColour("#FFE0E0")
    return

def picker_changed(frame, filepicker, textbox):
    path = filepicker.GetPath()
    print(filepicker.GetPath())
    path = "/home/dk/haftar.txt"
    frame.SetTitle(path)
    fh = open(path,'r')
    textbox.SetValue(fh.read())
    fh.close()
    return

def trayicon_clicked(frame):
    frame.Raise()
    return

def every_second(top_panel):
    top_panel.SetBackgroundColour("#FFE0E0")
    return

# frame
frame_xpos = 100
frame_ypos = 200
frame_width = 640
frame_height = 1000
frame_title = "Title"
frame_icon = "./python/icon.png"
frame = wx.Frame(None, -1)
frame.SetTitle(frame_title)
frame.SetPosition(wx.Point(frame_xpos, frame_ypos))
frame.SetSize(wx.Size(frame_width, frame_height))
frame.SetIcon(wx.Icon(frame_icon))

# tray icon
trayicon = wx.TaskBarIcon()
trayicon.SetIcon(wx.Icon(frame_icon))
trayicon.Bind(wx.EVT_TASKBAR_LEFT_DOWN, trayicon_clicked(frame))

# top panel
top_panel_color = "#E0FFE0"
top_panel = wx.Panel(frame, -1)
top_panel.SetBackgroundColour(top_panel_color)

# sizers
vbox = wx.BoxSizer(wx.VERTICAL)
hbox = wx.BoxSizer(wx.HORIZONTAL)

# text box
textbox_width= 620
textbox_height = 400
textbox_text = ""
textbox = wx.TextCtrl(top_panel, -1, style=wx.TE_MULTILINE)
textbox.SetSize(wx.Size(textbox_width, textbox_height))
textbox.SetValue(textbox_text)
hbox.Add(textbox, 1, wx.EXPAND|wx.ALL, 0)
vbox.Add(textbox, 1, wx.EXPAND|wx.ALL, 10)

# file picker
filepicker_width = 300
filepicker_height = 28
filepicker_wildcard = "*"
filepicker_dir = "/home/dk/"
filepicker = wx.FilePickerCtrl(top_panel, -1)
filepicker.SetSize(wx.Size(filepicker_width, filepicker_height))
filepicker.SetInitialDirectory(filepicker_dir)
filepicker.Bind(wx.EVT_FILEPICKER_CHANGED, picker_changed(frame, filepicker, textbox))
vbox.Add(filepicker, 0, wx.ALL, 10)

# button
button_label = "OK"
button = wx.Button(top_panel, -1)
button.SetLabel(button_label)
button.Bind(wx.EVT_BUTTON, button_clicked(top_panel))
vbox.Add(button, 0, wx.ALL, 10)

# move image file into panel
photo_frame_width = 620
photo_frame_height = 430
photo = wx.Bitmap("./python/obummer.jpg", wx.BITMAP_TYPE_JPEG)
if photo.IsOk() == False:
    print(".jpg is corrupt")
photo_frame = wx.Panel(top_panel, -1)
photo_frame.SetSize(wx.Size(photo_frame_width, photo_frame_height))
photo_frame.SetBackgroundColour("#000000")
photo_frame = wx.StaticBitmap(photo_frame, -1, photo)
vbox.Add(photo_frame, 0, wx.ALL, 10)

# timer
timer_refresh = 1000
timer = wx.Timer()
timer.Start(timer_refresh)
timer.Bind(wx.EVT_TIMER, every_second(top_panel))
    
# layout
frame.SetSizer(hbox)
frame.SetSizer(vbox)
frame.SetAutoLayout(True)
frame.Show(True) 
app.MainLoop()
