mirror of
https://github.com/leozide/leocad
synced 2024-11-17 07:47:55 +01:00
125 lines
4.1 KiB
C++
125 lines
4.1 KiB
C++
// PrefSht.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "resource.h"
|
|
#include "PrefSht.h"
|
|
#include "defines.h"
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char BASED_CODE THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
#define IDW_BUTTON 5000
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPreferencesSheet
|
|
|
|
IMPLEMENT_DYNAMIC(CPreferencesSheet, CPropertySheet)
|
|
|
|
CPreferencesSheet::CPreferencesSheet(CWnd* pWndParent)
|
|
: CPropertySheet(IDS_PROPSHT_CAPTION, pWndParent)
|
|
{
|
|
AddPage(&m_PageGeneral);
|
|
AddPage(&m_PageDetail);
|
|
AddPage(&m_PageDrawing);
|
|
AddPage(&m_PageScene);
|
|
AddPage(&m_PagePrint);
|
|
AddPage(&m_PageKeyboard);
|
|
SetActivePage(AfxGetApp()->GetProfileInt("Settings", "Page", 0));
|
|
}
|
|
|
|
CPreferencesSheet::~CPreferencesSheet()
|
|
{
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CPreferencesSheet, CPropertySheet)
|
|
//{{AFX_MSG_MAP(CPreferencesSheet)
|
|
// NOTE - the ClassWizard will add and remove mapping macros here.
|
|
//}}AFX_MSG_MAP
|
|
ON_BN_CLICKED(IDW_BUTTON, OnDefault)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPreferencesSheet message handlers
|
|
|
|
BOOL CPreferencesSheet::PreTranslateMessage(MSG* pMsg)
|
|
{
|
|
if (LOWORD(pMsg->wParam) == IDOK)
|
|
AfxGetApp()->WriteProfileInt("Settings", "Page", GetActiveIndex());
|
|
|
|
return m_tabCtrl.TranslatePropSheetMsg(pMsg) ? TRUE :
|
|
CPropertySheet::PreTranslateMessage(pMsg);
|
|
}
|
|
|
|
BOOL CPreferencesSheet::OnInitDialog()
|
|
{
|
|
BOOL bResult = CPropertySheet::OnInitDialog();
|
|
|
|
// get HWND of tab control and subclass it
|
|
HWND hWnd = (HWND)SendMessage(PSM_GETTABCONTROL);
|
|
m_tabCtrl.SubclassDlgItem(::GetDlgCtrlID(hWnd), this);
|
|
|
|
CRect rectWnd;
|
|
CWnd *pWnd = GetDlgItem(ID_APPLY_NOW);
|
|
pWnd->GetWindowRect(rectWnd);
|
|
pWnd->ShowWindow(FALSE);
|
|
ScreenToClient(rectWnd);
|
|
|
|
hWnd = CreateWindow(_T("BUTTON"), _T("Make Default"),BS_PUSHBUTTON|WS_CHILD|WS_VISIBLE|WS_TABSTOP,
|
|
rectWnd.left, rectWnd.top, rectWnd.Width(), rectWnd.Height(), m_hWnd, (HMENU)IDW_BUTTON, AfxGetInstanceHandle(), NULL);
|
|
::SendMessage(hWnd, WM_SETFONT, (WPARAM)GetFont()->GetSafeHandle(), TRUE);
|
|
::SetWindowPos (hWnd, ::GetDlgItem(m_hWnd, IDCANCEL), 0,0,0,0, SWP_NOMOVE|SWP_NOSIZE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
void CPreferencesSheet::OnDefault()
|
|
{
|
|
if (m_PageGeneral.m_hWnd)
|
|
m_PageGeneral.UpdateData();
|
|
if (m_PageDetail.m_hWnd)
|
|
m_PageDetail.UpdateData();
|
|
if (m_PageDrawing.m_hWnd)
|
|
m_PageDrawing.UpdateData();
|
|
if (m_PageScene.m_hWnd)
|
|
m_PageScene.UpdateData();
|
|
if (m_PagePrint.m_hWnd)
|
|
m_PagePrint.UpdateData();
|
|
if (m_PageKeyboard.m_hWnd)
|
|
m_PageKeyboard.UpdateData();
|
|
|
|
char str[LC_MAXPATH], st1[256], st2[256];
|
|
int i, j;
|
|
float f, cr1[4], cr2[4], cr3[4], cr4[4], cr5[4];
|
|
unsigned long l;
|
|
unsigned short s1, s2;
|
|
|
|
m_PageGeneral.GetOptions(&i, &j, str, st1);
|
|
AfxGetApp()->WriteProfileInt("Settings", "Autosave", i);
|
|
AfxGetApp()->WriteProfileInt("Default", "Mouse", j);
|
|
AfxGetApp()->WriteProfileString("Default", "Projects", str);
|
|
AfxGetApp()->WriteProfileString("Default", "User", st1);
|
|
m_PageDetail.GetOptions(&l, &f);
|
|
AfxGetApp()->WriteProfileInt("Default", "Detail", l);
|
|
AfxGetApp()->WriteProfileInt("Default", "Line", (int)(f*100));
|
|
m_PageDrawing.GetOptions(&l, &s1, &s2);
|
|
AfxGetApp()->WriteProfileInt("Default", "Snap", l);
|
|
AfxGetApp()->WriteProfileInt("Default", "Angle", s1);
|
|
AfxGetApp()->WriteProfileInt("Default", "Grid", s2);
|
|
m_PageScene.GetOptions(&l, &f, str, cr1, cr2, cr3, cr4, cr5);
|
|
AfxGetApp()->WriteProfileInt("Default", "Scene", l);
|
|
AfxGetApp()->WriteProfileInt("Default", "Density", (int)(f*100));
|
|
AfxGetApp()->WriteProfileString("Default", "BMP", str);
|
|
AfxGetApp()->WriteProfileInt("Default", "Background", RGB(cr1[0]*255, cr1[1]*255, cr1[2]*255));
|
|
AfxGetApp()->WriteProfileInt("Default", "Fog", RGB(cr2[0]*255, cr2[1]*255, cr2[2]*255));
|
|
AfxGetApp()->WriteProfileInt("Default", "Ambient", RGB(cr3[0]*255, cr3[1]*255, cr3[2]*255));
|
|
AfxGetApp()->WriteProfileInt("Default", "Gradient1", RGB(cr4[0]*255, cr4[1]*255, cr4[2]*255));
|
|
AfxGetApp()->WriteProfileInt("Default", "Gradient2", RGB(cr5[0]*255, cr5[1]*255, cr5[2]*255));
|
|
m_PagePrint.GetOptions(st1, st2);
|
|
AfxGetApp()->WriteProfileString("Default", "Header", st1);
|
|
AfxGetApp()->WriteProfileString("Default", "Footer", st2);
|
|
}
|