gui
[lbook_fbreader.git] / fbreader / src / optionsDialog / OptionsDialog.h
blobcc1e7ba3b537c6bef8a1552adb39765dff1afe5f
1 /*
2 * Copyright (C) 2004-2008 Geometer Plus <contact@geometerplus.com>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 * 02110-1301, USA.
20 #ifndef __OPTIONSDIALOG_H__
21 #define __OPTIONSDIALOG_H__
23 #include <shared_ptr.h>
25 class FBReader;
27 class ZLOptionsDialog;
28 class ZLDialogContent;
29 class OptionsPage;
30 class ScrollingOptionsPage;
31 class KeyBindingsPage;
32 class ConfigPage;
33 class ZLPaintContext;
34 class ProgramCollection;
36 class ZLBooleanOptionEntry;
37 class ZLSpinOptionEntry;
38 class ZLOption;
40 class OptionsDialog {
42 public:
43 OptionsDialog(FBReader &fbreader);
44 ~OptionsDialog();
46 ZLOptionsDialog &dialog();
48 private:
49 void createIntegrationTab(shared_ptr<ProgramCollection> collection, const ZLResourceKey &key, std::vector<std::pair<ZLResourceKey,ZLOptionEntry*> > &additionalOptions);
50 void createIndicatorTab(FBReader &fbreader);
51 void storeTemporaryOption(ZLOption *option);
53 private:
54 shared_ptr<ZLOptionsDialog> myDialog;
55 shared_ptr<ScrollingOptionsPage> myScrollingPage;
56 shared_ptr<OptionsPage> myFormatPage;
57 shared_ptr<OptionsPage> myStylePage;
58 shared_ptr<KeyBindingsPage> myKeyBindingsPage;
59 shared_ptr<ConfigPage> myConfigPage;
60 std::vector<shared_ptr<ZLOption> > myTemporaryOptions;
63 inline ZLOptionsDialog &OptionsDialog::dialog() { return *myDialog; }
65 #endif /* __OPTIONSDIALOG_H__ */