// dlginputtext.cpp : implementation file
//
#include "stdafx.h"
#include "ACP_Base.h"
#include "ITF.h"

#include "DlgInput.hpp"

#include "..\Main\Inc\_EditID.h"
#include "TUT.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgInputText dialog


CDlgInputText::CDlgInputText(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgInputText::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgInputText)
	m_Data_EditText = _T("");
	//}}AFX_DATA_INIT
    m_oCstMessage = "";
    m_oCstTitle = "";
	m_csDefaultValue = "";
    m_xPoint . x = 0;
    m_xPoint . y = 0;
	m_bSelect = FALSE;
}


void CDlgInputText::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgInputText)
	DDX_Text(pDX, IDC_EDIT_TEXT, m_Data_EditText);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgInputText, CDialog)
	//{{AFX_MSG_MAP(CDlgInputText)
    ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgInputText set data methods

void CDlgInputText::SetMessage(char *_szMessage)
{
    m_oCstMessage = _szMessage;
}

char * CDlgInputText::GetInputText()
{
    return (char*)(LPCTSTR)m_Data_EditText;
}

void CDlgInputText::SetTitle(char *_szTitle)
{
    m_oCstTitle = _szTitle;
}

void CDlgInputText::SetPos(POINT *_pPoint)
{
    memcpy ( &m_xPoint, _pPoint, sizeof POINT ) ;
}

void CDlgInputText::SetSelect(BOOL _bSelect /*=TRUE*/ )
{
	m_bSelect = _bSelect;
}

void CDlgInputText::SetDefaultValue(char *_szValue)
{
	m_csDefaultValue = _szValue;
}

/////////////////////////////////////////////////////////////////////////////
// CDlgInputText message handlers

BOOL CDlgInputText::OnInitDialog()
{
	CDialog::OnInitDialog();

    SetWindowText(m_oCstTitle);
    GetDlgItem(IDC_STATIC_TEXT)->SetWindowText(m_oCstMessage);
	m_Data_EditText = m_csDefaultValue;
	GetDlgItem(IDC_EDIT_TEXT) -> SetWindowText( m_Data_EditText );
	if( m_bSelect )
	{
		((CEdit*)GetDlgItem(IDC_EDIT_TEXT)) -> SetSel( 0, -1 );	// select text
	}

    CRect oRect;
    CSize oScreenSize( GetSystemMetrics( SM_CXSCREEN ), GetSystemMetrics( SM_CYSCREEN ) ) ;

    GetClientRect(&oRect);
    oRect += m_xPoint;
    // dialog must be in screen
    if ( oRect . right >= oScreenSize . cx )
    {
        oRect . OffsetRect ( -(oRect . right - oScreenSize . cx + 10), 0 );
    }
    if ( oRect . bottom >= oScreenSize . cy )
    {
        oRect . OffsetRect ( 0, -(oRect . bottom - oScreenSize . cy + 10) );
    }
    MoveWindow( &oRect ) ;

    // register controls for TUT
    TUT_M_vGetTutDll();
    TUT_M_vRegisterControlID( IDC_EDIT_TEXT, "TAC_INPUT_TEXT",  TUT_e_TextEdit );
    TUT_M_vRegisterControlID( IDOK,          "TAC_INPUT_OK",    TUT_e_Button );
    TUT_M_vRegisterControlID( IDCANCEL,      "TAC_INPUT_CANCEL",TUT_e_Button );
    //

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgInputText::OnOK()
{
	// TODO: Add extra validation here
    UpdateData(TRUE);
    if( !m_Data_EditText.IsEmpty() )
	    CDialog::OnOK();
}

void CDlgInputText::OnDestroy()
{
    TUT_M_vGetTutDll();
    TUT_M_vUnregisterControlID( IDC_EDIT_TEXT );
    TUT_M_vUnregisterControlID( IDOK          );
    TUT_M_vUnregisterControlID( IDCANCEL      );

    CDialog::OnDestroy();
}
