def tsGetStdioPositionAndSize(self):
        '''
        Return position and size of window used for redirected output.
        '''
        if not self.ts_PyOnDemandStdioWindow:
 
            # Establish defaults until attributes finalized
            theRedirectedPos = wxPoint(-1, -1)
            theRedirectedSize = wxSize(450, 300)

        else:

            try:
                self.Display = wxDisplay(self)
                theClientArea = self.Display.theRedirectedStdioArea

                theRedirectedSize = wxSize(theClientArea.width,
                                           theClientArea.height)

                theRedirectedPos = wxPoint(
                    theClientArea.x,
                    theClientArea.y)
            except Exception, getError:
                theRedirectedPos = wxPoint(-1, -1)
                theRedirectedSize = wxSize(450, 300)
                self.logger.debug(
                    '  GetStdioPositionAndSize Exception. %s' % getError)
                msg = 'GetStdioPositionAndSize Exception: %s' % str(getError)
                raise tse.ProgramException(tse.APPLICATION_TRAP, msg)
    def tsInstallTheTerminalAccess(self, indent, theClass, applicationId):
        '''
        Establish those display areas reserved for task bar and stdio
        redirection. Create links to the internal information needed
        to monitor and control the physical screen and virtual windows
        of the Graphical Text User Interface.
        '''

        # Setup display features access

        if Object.TheDisplay is None:

            # Start Curses interface.
            reserveTaskBarAreaFlag = True
            reserveRedirectAreaFlag = True # Should default be True or False?
            reserveAreaFlags = {
                'ReserveTaskBarArea': reserveTaskBarAreaFlag,
                'ReserveRedirectArea': reserveRedirectAreaFlag}

            try:

                parent = self
                self.display = wxDisplay(parent, reserveAreaFlags)
                fmt = '%s%s.tsInstallTheTerminalAccess ' + \
                      'to %s for class %s (%s)'
                msg = fmt % (indent,
                             __title__,
                             self.display,
                             theClass,
                             applicationId)
                self.logger.debug(msg)

            except Exception, e:

                self.display = None
                msg = '%s.tsInstallTheTerminalAccess: Exception = %s' % \
                      (__title__, e)
                self.logger.error(msg)
                raise tse.ProgramException(tse.APPLICATION_TRAP, msg)
            Object.TheDisplay = self.display

            try:

                self.terminal = self.display.TheTerminal

            except AttributeError, e:

                self.terminal = None
                msg = 'tsInstallTheTerminalAccess: Exception = %s' % e
                raise tse.ProgramException(tse.APPLICATION_TRAP, msg)