]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - contrib/bobtoolz/dialogs/PolygonDialog.cpp
Wean off #define
[xonotic/netradiant.git] / contrib / bobtoolz / dialogs / PolygonDialog.cpp
1 /*
2    BobToolz plugin for GtkRadiant
3    Copyright (C) 2001 Gordon Biggans
4
5    This library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    This library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with this library; if not, write to the Free Software
17    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  */
19
20 // PolygonDialog.cpp : implementation file
21 //
22
23 #include "../StdAfx.h"
24 #include "PolygonDialog.h"
25 #include "../shapes.h"
26
27 /////////////////////////////////////////////////////////////////////////////
28 // CPolygonDialog dialog
29
30
31 CPolygonDialog::CPolygonDialog( CWnd* pParent /*=NULL*/ )
32         : CDialog( CPolygonDialog::IDD, pParent ){
33         //{{AFX_DATA_INIT(CPolygonDialog)
34         m_nSideCount = 3;
35         m_bInverse = FALSE;
36         m_bBorder = FALSE;
37         m_nBorderSize = 8;
38         m_bAlignTop = FALSE;
39         //}}AFX_DATA_INIT
40 }
41
42 void CPolygonDialog::DoDataExchange( CDataExchange* pDX ){
43         CDialog::DoDataExchange( pDX );
44         //{{AFX_DATA_MAP(CPolygonDialog)
45         DDX_Text( pDX, IDC_EDIT1, m_nSideCount );
46         DDV_MinMaxUInt( pDX, m_nSideCount, 3, MAX_POLYGON_FACES );
47         DDX_Check( pDX, IDC_INVERSE_CHK, m_bInverse );
48         DDX_Check( pDX, IDC_BORDER_CHK, m_bBorder );
49         DDX_Text( pDX, IDC_BORDER_EDIT, m_nBorderSize );
50         DDV_MinMaxUInt( pDX, m_nBorderSize, 1, 1024 );
51         DDX_Check( pDX, IDC_ALIGN_CHK, m_bAlignTop );
52         //}}AFX_DATA_MAP
53 }
54
55
56 BEGIN_MESSAGE_MAP( CPolygonDialog, CDialog )
57 //{{AFX_MSG_MAP(CPolygonDialog)
58 ON_BN_CLICKED( IDC_BORDER_CHK, OnBorderChkClicked )
59 ON_BN_CLICKED( IDC_INVERSE_CHK, OnInverseChkClickrd )
60 //}}AFX_MSG_MAP
61 END_MESSAGE_MAP()
62
63 /////////////////////////////////////////////////////////////////////////////
64 // CPolygonDialog message handlers
65
66 BOOL CPolygonDialog::OnInitDialog(){
67         CDialog::OnInitDialog();
68
69         EnableBordered( !GetChkBool( IDC_INVERSE_CHK ) );
70         EnableBorderEdit( !GetChkBool( IDC_INVERSE_CHK ) && GetChkBool( IDC_BORDER_CHK ) );
71
72         return TRUE;  // return TRUE unless you set the focus to a control
73                       // EXCEPTION: OCX Property Pages should return FALSE
74 }
75
76 void CPolygonDialog::EnableBordered( BOOL bEnable ){
77         CWnd* dtlChk = GetDlgItem( IDC_BORDER_CHK );
78         if ( dtlChk ) {
79                 dtlChk->EnableWindow( bEnable );
80         }
81 }
82
83 void CPolygonDialog::EnableBorderEdit( BOOL bEnable ){
84         CWnd* dtlChk = GetDlgItem( IDC_BORDER_EDIT );
85         if ( dtlChk ) {
86                 dtlChk->EnableWindow( bEnable );
87         }
88 }
89
90 void CPolygonDialog::OnBorderChkClicked(){
91         EnableBorderEdit( !GetChkBool( IDC_INVERSE_CHK ) && GetChkBool( IDC_BORDER_CHK ) );
92 }
93
94 void CPolygonDialog::OnInverseChkClickrd(){
95         EnableBordered( !GetChkBool( IDC_INVERSE_CHK ) );
96         EnableBorderEdit( !GetChkBool( IDC_INVERSE_CHK ) && GetChkBool( IDC_BORDER_CHK ) );
97 }
98
99 BOOL CPolygonDialog::GetChkBool( int nID ){
100         CButton* btn = (CButton*)GetDlgItem( nID );
101         if ( btn ) {
102                 return btn->GetCheck();
103         }
104         return FALSE;
105 }