ScummVM API documentation
save_dialog.h
1 
2 /* ScummVM - Graphic Adventure Engine
3  *
4  * ScummVM is the legal property of its developers, whose names
5  * are too numerous to list here. Please refer to the COPYRIGHT
6  * file distributed with this source distribution.
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 #ifndef BAGEL_DIALOGS_SAVE_DIALOG_H
24 #define BAGEL_DIALOGS_SAVE_DIALOG_H
25 
26 #include "bagel/spacebar/boflib/gui/dialog.h"
27 #include "bagel/spacebar/boflib/gui/list_box.h"
28 #include "bagel/spacebar/boflib/gui/scroll_bar.h"
29 #include "bagel/spacebar/boflib/gui/button.h"
30 #include "bagel/spacebar/boflib/gui/edit_text.h"
31 
32 #include "engines/savestate.h"
33 
34 namespace Bagel {
35 namespace SpaceBar {
36 
37 #define NUM_BUTTONS 6
38 
39 class CBagSaveDialog : public CBofDialog {
40 public:
42 
43  virtual ErrorCode attach();
44  virtual ErrorCode detach();
45 
46  byte *getSaveGameBuffer(int &nLength) {
47  nLength = _nBufSize;
48  return _pSaveBuf;
49  }
50 
51  void setSaveGameBuffer(byte *pBuf, int nLength) {
52  _pSaveBuf = pBuf;
53  _nBufSize = nLength;
54  }
55 
56  void onInitDialog() override;
57 
58 protected:
59  void onPaint(CBofRect *pRect) override;
60  void onBofButton(CBofObject *pObject, int nFlags) override;
61  void onBofListBox(CBofObject *pObject, int nItemIndex) override;
62  void onKeyHit(uint32 lKey, uint32 nRepCount) override;
63 
64  void saveAndClose();
65 
66  CBofBmpButton *_pButtons[NUM_BUTTONS];
67  CBofScrollBar *_pScrollBar;
68 
69  CBofEditText *_pEditText;
70  CBofListBox *_pListBox;
71  int _nSelectedItem;
72  byte *_pSaveBuf;
73  int _nBufSize;
74  CBofPalette *_pSavePalette;
75  SaveStateList _savesList;
76 };
77 
78 } // namespace SpaceBar
79 } // namespace Bagel
80 
81 #endif
Definition: scroll_bar.h:44
Definition: button.h:110
Definition: object.h:28
Definition: edit_text.h:32
Definition: rect.h:35
Definition: save_dialog.h:39
Definition: palette.h:64
Definition: afxwin.h:27
Definition: dialog.h:39
Definition: list_box.h:50