]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - contrib/bobtoolz/dialogs/PolygonDialog.cpp
my own uncrustify run
[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 #ifdef _DEBUG
28 #define new DEBUG_NEW
29 #undef THIS_FILE
30 static char THIS_FILE[] = __FILE__;
31 #endif
32
33 /////////////////////////////////////////////////////////////////////////////
34 // CPolygonDialog dialog
35
36
37 CPolygonDialog::CPolygonDialog( CWnd* pParent /*=NULL*/ )
38         : CDialog( CPolygonDialog::IDD, pParent ){
39         //{{AFX_DATA_INIT(CPolygonDialog)
40         m_nSideCount = 3;
41         m_bInverse = FALSE;
42         m_bBorder = FALSE;
43         m_nBorderSize = 8;
44         m_bAlignTop = FALSE;
45         //}}AFX_DATA_INIT
46 }
47
48 void CPolygonDialog::DoDataExchange( CDataExchange* pDX ){
49         CDialog::DoDataExchange( pDX );
50         //{{AFX_DATA_MAP(CPolygonDialog)
51         DDX_Text( pDX, IDC_EDIT1, m_nSideCount );
52         DDV_MinMaxUInt( pDX, m_nSideCount, 3, MAX_POLYGON_FACES );
53         DDX_Check( pDX, IDC_INVERSE_CHK, m_bInverse );
54         DDX_Check( pDX, IDC_BORDER_CHK, m_bBorder );
55         DDX_Text( pDX, IDC_BORDER_EDIT, m_nBorderSize );
56         DDV_MinMaxUInt( pDX, m_nBorderSize, 1, 1024 );
57         DDX_Check( pDX, IDC_ALIGN_CHK, m_bAlignTop );
58         //}}AFX_DATA_MAP
59 }
60
61
62 BEGIN_MESSAGE_MAP( CPolygonDialog, CDialog )
63 //{{AFX_MSG_MAP(CPolygonDialog)
64 ON_BN_CLICKED( IDC_BORDER_CHK, OnBorderChkClicked )
65 ON_BN_CLICKED( IDC_INVERSE_CHK, OnInverseChkClickrd )
66 //}}AFX_MSG_MAP
67 END_MESSAGE_MAP()
68
69 /////////////////////////////////////////////////////////////////////////////
70 // CPolygonDialog message handlers
71
72 BOOL CPolygonDialog::OnInitDialog(){
73         CDialog::OnInitDialog();
74
75         EnableBordered( !GetChkBool( IDC_INVERSE_CHK ) );
76         EnableBorderEdit( !GetChkBool( IDC_INVERSE_CHK ) && GetChkBool( IDC_BORDER_CHK ) );
77
78         return TRUE;  // return TRUE unless you set the focus to a control
79                       // EXCEPTION: OCX Property Pages should return FALSE
80 }
81
82 void CPolygonDialog::EnableBordered( BOOL bEnable ){
83         CWnd* dtlChk = GetDlgItem( IDC_BORDER_CHK );
84         if ( dtlChk ) {
85                 dtlChk->EnableWindow( bEnable );
86         }
87 }
88
89 void CPolygonDialog::EnableBorderEdit( BOOL bEnable ){
90         CWnd* dtlChk = GetDlgItem( IDC_BORDER_EDIT );
91         if ( dtlChk ) {
92                 dtlChk->EnableWindow( bEnable );
93         }
94 }
95
96 void CPolygonDialog::OnBorderChkClicked(){
97         EnableBorderEdit( !GetChkBool( IDC_INVERSE_CHK ) && GetChkBool( IDC_BORDER_CHK ) );
98 }
99
100 void CPolygonDialog::OnInverseChkClickrd(){
101         EnableBordered( !GetChkBool( IDC_INVERSE_CHK ) );
102         EnableBorderEdit( !GetChkBool( IDC_INVERSE_CHK ) && GetChkBool( IDC_BORDER_CHK ) );
103 }
104
105 BOOL CPolygonDialog::GetChkBool( int nID ){
106         CButton* btn = (CButton*)GetDlgItem( nID );
107         if ( btn ) {
108                 return btn->GetCheck();
109         }
110         return FALSE;
111 }