aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/MainWindow.cpp28
-rw-r--r--src/MainWindow.hpp3
-rw-r--r--src/preferences/BoardPrefs.hpp1
-rw-r--r--src/preferences/EditorPrefs.hpp44
-rw-r--r--src/preferences/EditorPrefsPanelBF.cpp18
-rw-r--r--src/preferences/EditorPrefsPanelBF.h38
-rw-r--r--src/preferences/preferences.hpp3
7 files changed, 125 insertions, 10 deletions
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index a1afc7b..83fd964 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -2,7 +2,6 @@
#include "ChessArbiter.hpp"
#include "pgnp.hpp"
#include "preferences/preferences.hpp"
-#include <wx/preferences.h>
wxDEFINE_EVENT(REFRESH_TAB_TITLE, wxCommandEvent);
@@ -10,7 +9,8 @@ wxDEFINE_EVENT(REFRESH_TAB_TITLE, wxCommandEvent);
MainWindow::MainWindow()
: wxFrame(NULL, wxID_ANY, "OChess: The Open Chess software",
- wxDefaultPosition, wxSize(1500, 1000)) {
+ wxDefaultPosition, wxSize(1500, 1000)),
+ prefsEditor(NULL) {
CreateStatusBar();
SetStatusText("OChess");
@@ -46,6 +46,7 @@ MainWindow::MainWindow()
Bind(wxEVT_AUINOTEBOOK_PAGE_CHANGED, &MainWindow::OnPageChange, this,
wxID_ANY);
Bind(REFRESH_TAB_TITLE, &MainWindow::OnRefreshTabTitle, this, wxID_ANY);
+ Bind(wxEVT_CLOSE_WINDOW, &MainWindow::OnClose, this);
}
class AdvancePage : public wxPreferencesPage {
@@ -65,9 +66,13 @@ public:
};
void MainWindow::OnSettings(wxCommandEvent &event) {
- wxPreferencesEditor *edt = new wxPreferencesEditor("Preferences");
- edt->AddPage(new BoardPrefs());
- edt->Show(this);
+ if (prefsEditor != NULL) {
+ delete prefsEditor;
+ }
+ prefsEditor = new wxPreferencesEditor("Preferences");
+ prefsEditor->AddPage(new BoardPrefs());
+ prefsEditor->AddPage(new EditorPrefs());
+ prefsEditor->Show(this);
}
void MainWindow::ApplyPreferences() {
@@ -79,6 +84,13 @@ void MainWindow::ApplyPreferences() {
void MainWindow::OnExit(wxCommandEvent &event) { Close(true); }
+void MainWindow::OnClose(wxCloseEvent &e) {
+ if (prefsEditor != NULL) {
+ prefsEditor->Dismiss();
+ }
+ e.Skip();
+}
+
void MainWindow::OnOpen(wxCommandEvent &event) {
wxFileDialog openFileDialog(this, _("Open file"), "", "",
"PGN files (*.pgn)|*.pgn",
@@ -97,9 +109,9 @@ void MainWindow::OnOpen(wxCommandEvent &event) {
fen = pgn.GetTagValue("FEN");
}
HalfMove *m = new HalfMove(pgnp_moves, fen);
- Game *g=new Game(m,fen);
- for(std::string &s:pgn.GetTagList()){
- g->SetTag(s,pgn.GetTagValue(s));
+ Game *g = new Game(m, fen);
+ for (std::string &s : pgn.GetTagList()) {
+ g->SetTag(s, pgn.GetTagValue(s));
}
NewGame(g);
} catch (std::exception &e) {
diff --git a/src/MainWindow.hpp b/src/MainWindow.hpp
index 78d481e..31e63d8 100644
--- a/src/MainWindow.hpp
+++ b/src/MainWindow.hpp
@@ -3,6 +3,7 @@
#include <wx/aui/auibook.h>
#include <wx/filedlg.h>
#include <wx/textdlg.h>
+#include <wx/preferences.h>
wxDECLARE_EVENT(REFRESH_TAB_TITLE, wxCommandEvent);
@@ -10,8 +11,10 @@ class MainWindow : public wxFrame {
wxAuiNotebook *notebook;
wxMenu *menuGame;
wxMenuBar *menuBar;
+ wxPreferencesEditor *prefsEditor;
void OnExit(wxCommandEvent &event);
+ void OnClose(wxCloseEvent &e);
void OnNewGame(wxCommandEvent &event);
void OnOpen(wxCommandEvent &event);
void OnPageChange(wxAuiNotebookEvent &event);
diff --git a/src/preferences/BoardPrefs.hpp b/src/preferences/BoardPrefs.hpp
index eff3b58..21fe1ce 100644
--- a/src/preferences/BoardPrefs.hpp
+++ b/src/preferences/BoardPrefs.hpp
@@ -96,7 +96,6 @@ public:
virtual bool TransferDataFromWindow() {
ApplyPreferences();
- MAINWIN->ApplyPreferences();
return (true);
}
};
diff --git a/src/preferences/EditorPrefs.hpp b/src/preferences/EditorPrefs.hpp
new file mode 100644
index 0000000..dab05ca
--- /dev/null
+++ b/src/preferences/EditorPrefs.hpp
@@ -0,0 +1,44 @@
+#include "EditorPrefsPanelBF.h"
+#include "game_tab/board/BoardCanvas.hpp"
+#include "ochess.hpp"
+#include <wx/combobox.h>
+#include <wx/dir.h>
+#include <wx/filename.h>
+#include <wx/preferences.h>
+#include <wx/spinctrl.h>
+#include <wx/stdpaths.h>
+
+class EditorPrefsPanel : public EditorPrefsPanelBF {
+
+public:
+ EditorPrefsPanel(wxWindow *parent) : EditorPrefsPanelBF(parent) {
+
+ // Bind(wxEVT_SPINCTRL, &BoardPrefsPanel::OnConfChange, this, wxID_ANY);
+ }
+ void OnConfChange(wxCommandEvent &event) {
+ }
+
+ virtual bool TransferDataToWindow() {
+ return true;
+ }
+
+ void ApplyPreferences() {
+
+ }
+
+ virtual bool TransferDataFromWindow() {
+
+ return (true);
+ }
+};
+
+class EditorPrefs : public wxPreferencesPage {
+public:
+ virtual wxString GetName() const { return "Editor"; }
+ virtual wxBitmap GetLargeIcon() {
+ return wxArtProvider::GetBitmap(wxART_HELP, wxART_TOOLBAR);
+ }
+ virtual wxWindow *CreateWindow(wxWindow *parent) {
+ return new EditorPrefsPanel(parent);
+ }
+}; \ No newline at end of file
diff --git a/src/preferences/EditorPrefsPanelBF.cpp b/src/preferences/EditorPrefsPanelBF.cpp
new file mode 100644
index 0000000..08a1b50
--- /dev/null
+++ b/src/preferences/EditorPrefsPanelBF.cpp
@@ -0,0 +1,18 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version 3.10.1-40-g8042f487)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO *NOT* EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#include "EditorPrefsPanelBF.h"
+
+///////////////////////////////////////////////////////////////////////////
+
+EditorPrefsPanelBF::EditorPrefsPanelBF( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
+{
+}
+
+EditorPrefsPanelBF::~EditorPrefsPanelBF()
+{
+}
diff --git a/src/preferences/EditorPrefsPanelBF.h b/src/preferences/EditorPrefsPanelBF.h
new file mode 100644
index 0000000..8736a59
--- /dev/null
+++ b/src/preferences/EditorPrefsPanelBF.h
@@ -0,0 +1,38 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version 3.10.1-40-g8042f487)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO *NOT* EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <wx/artprov.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/panel.h>
+#include <wx/gdicmn.h>
+#include <wx/font.h>
+#include <wx/colour.h>
+#include <wx/settings.h>
+#include <wx/string.h>
+
+///////////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class EditorPrefsPanelBF
+///////////////////////////////////////////////////////////////////////////////
+class EditorPrefsPanelBF : public wxPanel
+{
+ private:
+
+ protected:
+
+ public:
+
+ EditorPrefsPanelBF( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
+
+ ~EditorPrefsPanelBF();
+
+};
+
diff --git a/src/preferences/preferences.hpp b/src/preferences/preferences.hpp
index d5dd603..2566111 100644
--- a/src/preferences/preferences.hpp
+++ b/src/preferences/preferences.hpp
@@ -1,2 +1,3 @@
#pragma once
-#include "BoardPrefs.hpp" \ No newline at end of file
+#include "BoardPrefs.hpp"
+#include "EditorPrefs.hpp"