#!/usr/bin/python

# muaGUI.py by Nadeem Abdul Hamid, August 2006

"""
Module providing a GUI for a simple mail user agent (MUA)
"""

from Tkinter import *
import sys


class MUAApp(Frame):
    def __init__(self, sendHandler, master=None):
        Frame.__init__(self, master)
        self.sendHandler = sendHandler
        self.grid()
        self.createWidgets()
        self.master.title('Berry Python Mailer')


    def onQuit(self):
        self.quit()
        #self.destory()
        #sys.exit(0)


    def onSend(self):
        #body = self.messageText.get('0.0', END)
        self.sendHandler(self.getFrom(), self.getTo(),
                         self.getSubject(), self.getAttach(), self.getMessage())
        

    def onClear(self):
        self.messageText.delete('0.0', END)


    def getFrom(self):
        return self.fromEntry.get()


    def getTo(self):
        return self.toEntry.get()


    def getSubject(self):
        return self.subjectEntry.get()


    def getAttach(self):
        return self.attachEntry.get()


    def getMessage(self):
        return self.messageText.get('0.0', END).rstrip()
    

    def createWidgets(self):
        """
        Set up the frame widgets
        """
        fromFrame = Frame(self)
        toFrame = Frame(self)
        subjectFrame = Frame(self)
        attachFrame = Frame(self)

        self.fromEntry = Entry(fromFrame, width=50)
        self.toEntry = Entry(toFrame, width=50)
        self.subjectEntry = Entry(subjectFrame, width=50)
        self.attachEntry = Entry(attachFrame, width=50)
        self.messageText = Text(self)

        buttonFrame = Frame(self)
        self.sendButton = Button(buttonFrame, text='Send',
                                 command=self.onSend)
        self.clearButton = Button(buttonFrame, text='Clear',
                                  command=self.onClear)
        self.quitButton = Button(buttonFrame, text='Quit',
                                 command=self.onQuit)


        fromFrame.grid(sticky=W)
        Label(fromFrame, text='From:').grid(row=0,column=0,sticky=W)
        self.fromEntry.grid(row=0, column=1, sticky=E+W)

        toFrame.grid(sticky=W)
        Label(toFrame, text='To:').grid(row=0,column=0,sticky=W)
        self.toEntry.grid(row=0, column=1, sticky=E+W)

        subjectFrame.grid(sticky=W)
        Label(subjectFrame, text='Subject:').grid(row=0,column=0,sticky=W)
        self.subjectEntry.grid(row=0, column=1, sticky=E+W)
        
        attachFrame.grid(sticky=W)
        Label(attachFrame, text='Attach:').grid(row=0,column=0,sticky=W)
        self.attachEntry.grid(row=0, column=1, sticky=E+W)

        Label(self, text='Message:').grid(sticky=W)
        self.messageText.grid()
        
        buttonFrame.grid()
        self.sendButton.grid(row=0, column=0)
        self.clearButton.grid(row=0, column=1)
        self.quitButton.grid(row=0, column=2)




    

