Скачиваний:
21
Добавлен:
01.05.2014
Размер:
6.11 Кб
Скачать
// Random.cpp : implementation file
//

#include "stdafx.h"
#include "CH_KS.h"
#include "Random.h"

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

/////////////////////////////////////////////////////////////////////////////
// Random dialog

Random::Random(CWnd* pParent /*=NULL*/)
	: CDialog(Random::IDD, pParent)
{
	//{{AFX_DATA_INIT(Random)
	m_amount = 500;
	m_sizex = SIZEX-1;
	m_sizey = SIZEY-1;
	m_left = 0;
	m_upper = 0;
	m_all_workspace = 0;
	m_string_amount = _T("500");
	m_string_sizex = _T("");
	m_string_sizey = _T("");
	m_string_left = _T("0");
	m_string_upper = _T("0");
	//}}AFX_DATA_INIT
}

void Random::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Random)
	DDX_Control(pDX, IDC_Y_UPPER_SPIN, m_y_upper_spin);
	DDX_Control(pDX, IDC_X_LEFT_SPIN, m_x_left_spin);
	DDX_Control(pDX, IDC_SIZEY_SPIN, m_sizey_spin);
	DDX_Control(pDX, IDC_SIZEX_SPIN, m_sizex_spin);
	DDX_Control(pDX, IDC_AMOUNT_SPIN, m_amount_spin);
	DDX_Radio(pDX, IDC_ALL_WORKSPACE, m_all_workspace);
	DDX_Text(pDX, IDC_AMOUNT, m_string_amount);
	DDX_Text(pDX, IDC_SIZEX, m_string_sizex);
	DDX_Text(pDX, IDC_SIZEY, m_string_sizey);
	DDX_Text(pDX, IDC_X_LEFT, m_string_left);
	DDX_Text(pDX, IDC_Y_UPPER, m_string_upper);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Random, CDialog)
	//{{AFX_MSG_MAP(Random)
	ON_BN_CLICKED(IDC_ALL_WORKSPACE, OnAllWorkspace)
	ON_BN_CLICKED(IDC_BOUNDS, OnBounds)
	ON_EN_CHANGE(IDC_X_LEFT, OnChangeXLeft)
	ON_EN_CHANGE(IDC_Y_UPPER, OnChangeYUpper)
	ON_EN_CHANGE(IDC_SIZEX, OnChangeSizex)
	ON_EN_CHANGE(IDC_SIZEY, OnChangeSizey)
	ON_EN_CHANGE(IDC_AMOUNT, OnChangeAmount)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Random message handlers

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

    m_amount_spin.SetBuddy(GetDlgItem(IDC_AMOUNT));
    m_amount_spin.SetRange(1, MAXPT - m_n);
    
    if (MAXPT - m_n < 500) {
      m_string_amount.Format("%d", MAXPT - m_n);
      m_amount = MAXPT - m_n;
    }

    m_x_left_spin.SetBuddy(GetDlgItem(IDC_X_LEFT));
    m_x_left_spin.SetRange(0, SIZEX-1);
	m_left = 0;

    m_y_upper_spin.SetBuddy(GetDlgItem(IDC_Y_UPPER));
    m_y_upper_spin.SetRange(0, SIZEY-1);
    m_upper = 0;

    m_sizex_spin.SetBuddy(GetDlgItem(IDC_SIZEX));
    m_sizex_spin.SetRange(1, SIZEX-1);
    m_string_sizex.Format("%d", SIZEX-1);
    m_sizex = SIZEX-1;

    m_sizey_spin.SetBuddy(GetDlgItem(IDC_SIZEY));
    m_sizey_spin.SetRange(1, SIZEY-1);
    m_string_sizey.Format("%d", SIZEY-1);
    m_sizey = SIZEY-1;

    OnAllWorkspace();

    UpdateData(FALSE);

    GotoDlgCtrl(GetDlgItem(IDC_AMOUNT));

    return FALSE;
}

void Random::OnAllWorkspace() 
{
    m_all_workspace = 0;
    
    GetDlgItem(IDC_X_LEFT)->EnableWindow(SW_HIDE);
    m_x_left_spin.EnableWindow(SW_HIDE);

	GetDlgItem(IDC_Y_UPPER)->EnableWindow(SW_HIDE);
    m_y_upper_spin.EnableWindow(SW_HIDE);

	GetDlgItem(IDC_SIZEX)->EnableWindow(SW_HIDE);
    m_sizex_spin.EnableWindow(SW_HIDE);

	GetDlgItem(IDC_SIZEY)->EnableWindow(SW_HIDE);
    m_sizey_spin.EnableWindow(SW_HIDE);

	UpdateData(FALSE);
}

void Random::OnBounds() 
{
	m_all_workspace = 1;

    GetDlgItem(IDC_X_LEFT)->EnableWindow(SW_SHOW);
    m_x_left_spin.EnableWindow(SW_SHOW);
    
    GetDlgItem(IDC_Y_UPPER)->EnableWindow(SW_SHOW);
    m_y_upper_spin.EnableWindow(SW_SHOW);
	    
    GetDlgItem(IDC_SIZEX)->EnableWindow(SW_SHOW);
    m_sizex_spin.EnableWindow(SW_SHOW);
	    
    GetDlgItem(IDC_SIZEY)->EnableWindow(SW_SHOW);
    m_sizey_spin.EnableWindow(SW_SHOW);

	UpdateData(FALSE);
}

void Random::OnChangeXLeft() 
{
	UpdateData(TRUE);

    m_string_left.Remove(0xA0);
    m_left = atoi(m_string_left);

    m_string_sizex.Remove(0xA0);
    m_sizex = atoi(m_string_sizex);
 
    if (m_left + m_sizex > SIZEX-1) {
      m_sizex = (SIZEX-1) - m_left;

      if (m_sizex < 1) {
        m_sizex = 1;
        m_left = (SIZEX-1) - m_sizex;
      }
    }

    m_string_left.Format("%d", m_left);
    m_string_sizex.Format("%d", m_sizex);

    UpdateData(FALSE);
}


void Random::OnChangeYUpper() 
{
	UpdateData(TRUE);

    m_string_upper.Remove(0xA0);
    m_upper = atoi(m_string_upper);

    m_string_sizey.Remove(0xA0);
    m_sizey = atoi(m_string_sizey);

 
    if (m_upper + m_sizey > SIZEY-1) {
      m_sizey = (SIZEY-1) - m_upper;

      if (m_sizey < 1) {
        m_sizey = 1;
        m_upper = (SIZEY-1) - m_sizey;
      }
    }

    m_string_upper.Format("%d", m_upper);
    m_string_sizey.Format("%d", m_sizey);

    UpdateData(FALSE);
}

void Random::OnChangeSizex() 
{
	UpdateData(TRUE);
 
    m_string_left.Remove(0xA0);
    m_left = atoi(m_string_left);

    m_string_sizex.Remove(0xA0);
    m_sizex = atoi(m_string_sizex);

    if (m_left + m_sizex > SIZEX-1) {
      m_left = (SIZEX-1) - m_sizex;

      if (m_left < 0) {
        m_left = 0;
        m_sizex = (SIZEX-1) - m_left;
      }
    }

    m_string_left.Format("%d", m_left);
    m_string_sizex.Format("%d", m_sizex);

    UpdateData(FALSE);
}

void Random::OnChangeSizey() 
{
	UpdateData(TRUE);

    m_string_upper.Remove(0xA0);
    m_upper = atoi(m_string_upper);

    m_string_sizey.Remove(0xA0);
    m_sizey = atoi(m_string_sizey);

    if (m_upper + m_sizey > SIZEY-1) {
      m_upper = (SIZEY-1) - m_sizey;

      if (m_upper < 0) {
        m_upper = 0;
        m_sizey = (SIZEY-1) - m_upper;
      }
    }

    m_string_upper.Format("%d", m_upper);
    m_string_sizey.Format("%d", m_sizey);

    UpdateData(FALSE);
}

void Random::OnChangeAmount() 
{
    UpdateData(TRUE);

    m_string_amount.Remove(0xA0);
    m_amount = atoi(m_string_amount);

    if (m_amount < 1) 
      m_amount = 1;
    
    if (m_amount > MAXPT - m_n)
      m_amount = MAXPT - m_n;

    m_string_amount.Format("%d", m_amount);

    UpdateData(FALSE);
}
Соседние файлы в папке Source