import wx

class LoginDlg(wx.Dialog):

    def __init__(self):
        wx.Dialog.__init__(self, None, -1, 'Login', size=(190,150))

        # widgets
        userLbl = wx.StaticText(self, wx.ID_ANY, 'Username:', size=(50, -1))
        self.userTxt = wx.TextCtrl(self, wx.ID_ANY, '')
        passwordLbl = wx.StaticText(self, wx.ID_ANY, 'Password:', size=(50, -1))
        self.passwordTxt = wx.TextCtrl(self, wx.ID_ANY, '', style=wx.TE_PROCESS_ENTER|wx.TE_PASSWORD)
        loginBtn = wx.Button(self, wx.ID_YES, 'Login')
        cancelBtn = wx.Button(self, wx.ID_ANY, 'Cancel')
        
        # sizer / layout 
        userSizer     = wx.BoxSizer(wx.HORIZONTAL)
        passwordSizer = wx.BoxSizer(wx.HORIZONTAL)
        btnSizer      = wx.BoxSizer(wx.HORIZONTAL)
        mainSizer     = wx.BoxSizer(wx.VERTICAL)

        userSizer.Add(userLbl, 0, wx.ALL, 5)
        userSizer.Add(self.userTxt, 0, wx.ALL, 5)
        passwordSizer.Add(passwordLbl, 0, wx.LEFT|wx.RIGHT, 5)
        passwordSizer.Add(self.passwordTxt, 0, wx.LEFT, 5)
        btnSizer.Add(loginBtn, 0, wx.ALL, 5)
        btnSizer.Add(cancelBtn, 0, wx.ALL, 5)
        mainSizer.Add(userSizer, 0, wx.ALL, 0)
        mainSizer.Add(passwordSizer, 0, wx.ALL, 0)
        mainSizer.Add(btnSizer, 0, wx.ALL, 5)

        # Logged in variable
        self.loggedIn = False

        self.SetSizer(mainSizer)
        self.Fit()
        self.Layout()

if __name__ == '__main__':
    app = wx.PySimpleApp()
    dialog = LoginDlg()
    result = dialog.ShowModal()
    dialog.Destroy()
