File: KeypadDialog.h

package info (click to toggle)
descent3 1.5.0%2Bds-2
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid
  • size: 35,256 kB
  • sloc: cpp: 416,147; ansic: 3,233; sh: 10; makefile: 8
file content (140 lines) | stat: -rw-r--r-- 3,992 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
* Descent 3
* Copyright (C) 2024 Parallax Software
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.

--- HISTORICAL COMMENTS FOLLOW ---

 * $Logfile: /DescentIII/Main/editor/KeypadDialog.h $
 * $Revision: 1.1.1.1 $
 * $Date: 2003-08-26 03:57:38 $
 * $Author: kevinb $
 *
 * Generic keypad dialog base class
 *
 * $Log: not supported by cvs2svn $
 *
 * 8     5/02/99 9:23p Matt
 * Notify the level keypad when the level has changed, and then re-init
 * the combo boxes.
 *
 * 7     4/03/99 7:54p Matt
 * Finished implementing spiffy keypad update system.
 *
 * 6     3/10/99 7:17p Samir
 * added function that updates keypads.
 *
 * 5     10/01/98 10:48a Samir
 * hopefully fixced scrolling problem.
 *
 * 4     4/16/98 6:39p Kevin
 * made CKeypadDialog::Activate static.
 *
 * 3     10/02/97 6:47p Samir
 * Made m_Active static, so deactivating one keypad deactivates all.
 *
 * 2     8/25/97 12:04p Samir
 * Fixed some scrolling problems.
 *
 * 7     2/21/97 5:04p Samir
 * Set active flag to false when destroying to prevent corruption of
 * memory for some reason.
 *
 * 6     2/20/97 6:05p Samir
 * Allow for clean activation and deactivation of surfaces in editor when
 * going into fullscreen mode.
 *
 * 5     2/20/97 5:39p Samir
 * Added Deactivate virtual function.
 *
 * 4     2/19/97 2:15p Samir
 * Added a RunKeypadFunction where children can inherits this function to
 * add keypad control.
 *
 * 3     1/27/97 11:38a Samir
 * Added horizontal scrolling of keypad modeless dialog.
 *
 * $NoKeywords: $
 */

#ifndef M_KEYPAD_DIALOG_H
#define M_KEYPAD_DIALOG_H

/////////////////////////////////////////////////////////////////////////////
// CKeypadDialog dialog

class CKeypadDialog : public CDialog {
  // Construction
public:
  CKeypadDialog(UINT id, CWnd *pParent = NULL); // standard constructor

  BOOL Create();

  // Dialog Data
  //{{AFX_DATA(CKeypadDialog)
  enum { IDD = IDD_KEYPAD_DLGBAR };
  // NOTE: the ClassWizard will add data members here
  //}}AFX_DATA

  // Overrides
  // ClassWizard generated virtual function overrides
  //{{AFX_VIRTUAL(CKeypadDialog)
protected:
  virtual void DoDataExchange(CDataExchange *pDX); // DDX/DDV support
  virtual void PostNcDestroy();
  //}}AFX_VIRTUAL

protected:
  static BOOL m_Active; // is keypad active?

public:
  virtual void RunKeypadFunction(int code){};
  virtual void UpdateKeypad(int mask){};

  static void Deactivate() { CKeypadDialog::m_Active = FALSE; }; // called when shutting down keypad.
  static void Activate() { CKeypadDialog::m_Active = TRUE; };

  // Implementation
protected:
  CWnd *m_wndParent; // Parent window to dialog

  virtual void OnCancel();

  // Generated message map functions
  //{{AFX_MSG(CKeypadDialog)
  afx_msg void OnSize(UINT nType, int cx, int cy);
  afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar);
  afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar);
  afx_msg void OnDestroy();
  virtual BOOL OnInitDialog();
  //}}AFX_MSG
  DECLARE_MESSAGE_MAP()

private:
  UINT m_IDD;
  bool m_sized;
  int m_fullwidth, m_fullheight, m_hpos, m_vpos;
  void InitScrollBars(int vis_w, int vis_h);
};

// Keypad update flags
#define KUF_CURROOM_CHANGED (1 << 0)
#define KUF_CURFACE_CHANGED (1 << 1)
#define KUF_CURPORTAL_CHANGED (1 << 2)
#define KUF_CUROBJ_CHANGED (1 << 3)
#define KUF_CUROBJ_NAME_CHANGED (1 << 4)
#define KUF_LEVEL_LOADED (1 << 5)

#endif