aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2022-12-30 10:02:56 +0100
committerLoic Guegan <manzerbredes@mailbox.org>2022-12-30 10:02:56 +0100
commit2fd237a78ffd78e198bfb68ba2fc9fa296a1fe9f (patch)
tree6c2edffe679111af657dd80c3afe6c665fec8540 /src
parentd23718225af6da861ff061b3400c8cefef29c2de (diff)
Improve UI
Diffstat (limited to 'src')
-rw-r--r--src/MainWindow.cpp4
-rw-r--r--src/game_tab/right_panel/GameTabRightPanel.cpp16
-rw-r--r--src/game_tab/right_panel/GameTabRightPanel.hpp1
-rw-r--r--src/game_tab/right_panel/editor/EditorCanvas.cpp58
-rw-r--r--src/game_tab/right_panel/editor/EditorCanvas.hpp1
-rw-r--r--src/gui.cpp26
-rw-r--r--src/gui.h26
7 files changed, 104 insertions, 28 deletions
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index 9f69109..22b579f 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -58,8 +58,8 @@ MainWindow::MainWindow()
// Temporary TO REMOVE JUST FOR TESTS:
- //BaseTab *bt = new BaseTab((wxFrame *)notebook, "/home/loic/pgn/wijk_2003_annotated.pgn");
- //this->AddPage(bt,bt);
+ /*BaseTab *bt = new BaseTab((wxFrame *)notebook, "/home/loic/pgn/wijk_2003_annotated.pgn");
+ this->AddPage(bt,bt);*/
}
void MainWindow::AddPage(wxWindow* window, TabInfos* infos){
diff --git a/src/game_tab/right_panel/GameTabRightPanel.cpp b/src/game_tab/right_panel/GameTabRightPanel.cpp
index 99ab4fd..013bc13 100644
--- a/src/game_tab/right_panel/GameTabRightPanel.cpp
+++ b/src/game_tab/right_panel/GameTabRightPanel.cpp
@@ -40,6 +40,13 @@ GameTabRightPanel::GameTabRightPanel(wxFrame *parent, std::shared_ptr<Game> game
this->Bind(wxEVT_BUTTON, &GameTabRightPanel::OnDelete, this, DELETE_BTN);
this->Bind(wxEVT_BUTTON, &GameTabRightPanel::OnLiveAnalysis, this,
LIVE_ANALYSIS_GAME_BUTTON);
+ nag_panel->Bind(wxEVT_BUTTON, [p=this](wxCommandEvent &e){
+ HalfMove *m = p->game->GetCurrentMove();
+ if (m != NULL) {
+ m->nag=p->GetNagFromStr(((wxButton*)e.GetEventObject())->GetLabel().ToStdString());
+ p->editor_canvas->Refresh();
+ }
+ });
ApplyPreferences();
}
@@ -204,4 +211,13 @@ void GameTabRightPanel::OnNextMove(wxCommandEvent &event) {
game->Next();
Notify();
NotifyBoard();
+}
+
+std::string GameTabRightPanel::GetNagFromStr(std::string str){
+ // TODO: Bind more NAG!
+ if(str=="!")
+ return "$1";
+ if(str=="?")
+ return "$2";
+ return "";
} \ No newline at end of file
diff --git a/src/game_tab/right_panel/GameTabRightPanel.hpp b/src/game_tab/right_panel/GameTabRightPanel.hpp
index 20593ed..0a353b6 100644
--- a/src/game_tab/right_panel/GameTabRightPanel.hpp
+++ b/src/game_tab/right_panel/GameTabRightPanel.hpp
@@ -40,4 +40,5 @@ public:
void OnLiveAnalysis(wxCommandEvent &event);
void ApplyPreferences();
void OnLiveEngineClose(wxCloseEvent &e);
+ std::string GetNagFromStr(std::string str);
}; \ No newline at end of file
diff --git a/src/game_tab/right_panel/editor/EditorCanvas.cpp b/src/game_tab/right_panel/editor/EditorCanvas.cpp
index 07a2f56..acc5741 100644
--- a/src/game_tab/right_panel/editor/EditorCanvas.cpp
+++ b/src/game_tab/right_panel/editor/EditorCanvas.cpp
@@ -5,6 +5,7 @@ EditorCanvas::EditorCanvas(wxFrame *parent)
hide_icon = LoadPNG("hide", wxSize(CGEditor::status.MoveIconWidth,
CGEditor::status.MoveIconWidth));
t.ResizePieces(CGEditor::status.MoveIconWidth);
+ default_font=wxFont(*wxNORMAL_FONT).MakeBold();
}
void EditorCanvas::OnPaint(wxPaintEvent &event) {
@@ -40,6 +41,7 @@ void EditorCanvas::DrawElement(const cgeditor::Element &e) {
// TODO: Optimize brush!!!! Always instanciated at each call
dc->SetPen(wxNullPen);
dc->SetBrush(*wxRED_BRUSH);
+ dc->SetFont(default_font);
if (e.prop & cgeditor::Property::Rectangle) {
if (e.prop & cgeditor::Property::Scrollbarbg) {
dc->SetBrush(*wxCYAN_BRUSH);
@@ -93,19 +95,69 @@ void EditorCanvas::DrawElement(const cgeditor::Element &e) {
dc->DrawRectangle(recToDraw);
dc->DrawText(wxString(e.text), wxPoint(e.x, Middle(e).y));
} else {
+ std::string text=e.text;
if (e.prop & cgeditor::Property::Move) {
if (e.prop & cgeditor::Property::Current) {
wxRect recToDraw(e.x, e.y, e.width, e.height);
dc->SetBrush(wxBrush(wxColour(216, 216, 216)));
dc->DrawRectangle(recToDraw);
}
+ if(e.prop & cgeditor::Property::Nag){
+ if(text=="$0")
+ text="";
+ else if(text=="$1")
+ text="!";
+ else if(text=="$2")
+ text="?";
+ else if(text=="$3")
+ text="!!";
+ else if(text=="$4")
+ text="??";
+ else if(text=="$5")
+ text="!?";
+ else if(text=="$6")
+ text="?!";
+ else if(text=="$10")
+ text="=";
+ else if(text=="$13")
+ text="∞";
+ else if(text=="$14")
+ text="⩲ ";
+ else if(text=="$15")
+ text="⩱";
+ else if(text=="$16")
+ text="±";
+ else if(text=="$17")
+ text="∓";
+ else if(text=="$18")
+ text="+-";
+ else if(text=="$19")
+ text="-+";
+ else if(text=="$22"||text=="$23")
+ text="⨀";
+ else if(text=="$26"||text=="$27")
+ text="○";
+ else if(text=="$32"||text=="$33")
+ text="⟳";
+ else if(text=="$36"||text=="$37")
+ text="↑";
+ else if(text=="$40"||text=="$41")
+ text="→";
+ else if(text=="$44" || text=="$45")
+ text="⯹";
+ else if(text=="$138" || text=="$139")
+ text="⨁";
+ else
+ text="NA";
+ }
+ // Draw move text
if (CGEditor::status.UseMoveIcons) {
- dc->DrawText(wxString(e.text), wxPoint(e.x, Middle(e).y));
+ dc->DrawText(wxString(text), wxPoint(e.x, Middle(e).y));
} else {
- dc->DrawText(wxString(e.text), Middle(e));
+ dc->DrawText(wxString(text), Middle(e));
}
} else {
- dc->DrawText(wxString(e.text), Middle(e));
+ dc->DrawText(wxString(text), Middle(e));
}
}
}
diff --git a/src/game_tab/right_panel/editor/EditorCanvas.hpp b/src/game_tab/right_panel/editor/EditorCanvas.hpp
index c2f35c8..0858dbb 100644
--- a/src/game_tab/right_panel/editor/EditorCanvas.hpp
+++ b/src/game_tab/right_panel/editor/EditorCanvas.hpp
@@ -19,6 +19,7 @@ class EditorCanvas : public wxPanel, public cgeditor::CGEditor {
wxPoint Middle(cgeditor::Element e);
wxBitmap hide_icon;
Theme t;
+ wxFont default_font;
public:
EditorCanvas(wxFrame *parent);
diff --git a/src/gui.cpp b/src/gui.cpp
index abad5b2..de87bcc 100644
--- a/src/gui.cpp
+++ b/src/gui.cpp
@@ -443,41 +443,45 @@ TabGameRightPanel::TabGameRightPanel( wxWindow* parent, wxWindowID id, const wxP
comment_input = new wxTextCtrl( editor_page, COMMENT_INPUT_BOX, wxEmptyString, wxDefaultPosition, wxSize( -1,200 ), wxTE_MULTILINE );
editor_page_sizer->Add( comment_input, 0, wxALL|wxEXPAND, 5 );
+ nag_panel = new wxPanel( editor_page, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxGridSizer* nag_sizer;
nag_sizer = new wxGridSizer( 2, 8, 0, 0 );
- nag_1 = new wxButton( editor_page, wxID_ANY, wxT("!"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ nag_1 = new wxButton( nag_panel, wxID__ANY, wxT("!"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
nag_sizer->Add( nag_1, 0, wxALL|wxEXPAND, 5 );
- nag_2 = new wxButton( editor_page, wxID_ANY, wxT("?"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ nag_2 = new wxButton( nag_panel, wxID_ANY, wxT("?"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
nag_sizer->Add( nag_2, 0, wxALL|wxEXPAND, 5 );
- nag_3 = new wxButton( editor_page, wxID_ANY, wxT("!!"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ nag_3 = new wxButton( nag_panel, wxID_ANY, wxT("!!"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
nag_sizer->Add( nag_3, 0, wxALL|wxEXPAND, 5 );
- nag_4 = new wxButton( editor_page, wxID_ANY, wxT("??"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ nag_4 = new wxButton( nag_panel, wxID_ANY, wxT("??"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
nag_sizer->Add( nag_4, 0, wxALL|wxEXPAND, 5 );
- nag_5 = new wxButton( editor_page, wxID_ANY, wxT("!?"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ nag_5 = new wxButton( nag_panel, wxID_ANY, wxT("!?"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
nag_sizer->Add( nag_5, 0, wxALL|wxEXPAND, 5 );
- nag_6 = new wxButton( editor_page, wxID_ANY, wxT("?!"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ nag_6 = new wxButton( nag_panel, wxID_ANY, wxT("?!"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
nag_sizer->Add( nag_6, 0, wxALL|wxEXPAND, 5 );
- nag_10 = new wxButton( editor_page, wxID_ANY, wxT("="), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ nag_10 = new wxButton( nag_panel, wxID_ANY, wxT("="), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
nag_sizer->Add( nag_10, 0, wxALL|wxEXPAND, 5 );
- nag_18 = new wxButton( editor_page, wxID_ANY, wxT("+-"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ nag_18 = new wxButton( nag_panel, wxID_ANY, wxT("+-"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
nag_sizer->Add( nag_18, 0, wxALL|wxEXPAND, 5 );
- nag_19 = new wxButton( editor_page, wxID_ANY, wxT("-+"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ nag_19 = new wxButton( nag_panel, wxID_ANY, wxT("-+"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
nag_sizer->Add( nag_19, 0, wxALL|wxEXPAND, 5 );
- nag_del = new wxButton( editor_page, wxID_ANY, wxT("DEL"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ nag_del = new wxButton( nag_panel, wxID_ANY, wxT("DEL"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
nag_sizer->Add( nag_del, 0, wxALL|wxEXPAND, 5 );
- editor_page_sizer->Add( nag_sizer, 1, wxEXPAND, 5 );
+ nag_panel->SetSizer( nag_sizer );
+ nag_panel->Layout();
+ nag_sizer->Fit( nag_panel );
+ editor_page_sizer->Add( nag_panel, 1, wxEXPAND | wxALL, 5 );
editor_page->SetSizer( editor_page_sizer );
diff --git a/src/gui.h b/src/gui.h
index f426772..705c8a7 100644
--- a/src/gui.h
+++ b/src/gui.h
@@ -52,18 +52,19 @@
#define ZOOM_OUT_BTN 1007
#define SWAP_BTN 1008
#define COMMENT_INPUT_BOX 1009
-#define UPDATE_BTN 1010
-#define DELETE_BTN 1011
-#define LIVE_ANALYSIS_GAME_BUTTON 1012
-#define ID_SEARCH_TERMS 1013
-#define ID_APPLY_FILTER_BUTTON 1014
-#define ID_TABGAMES_GAME_LIST 1015
-#define ID_DELETE_BUTTON 1016
-#define ID_IMPORT_GAME_BUTTON 1017
-#define ID_LOAD_BUTTON 1018
-#define ID_IMPORT_SELECTION 1019
-#define ID_IMPORT_DB 1020
-#define ID_SAVE_BUTTON 1021
+#define wxID__ANY 1010
+#define UPDATE_BTN 1011
+#define DELETE_BTN 1012
+#define LIVE_ANALYSIS_GAME_BUTTON 1013
+#define ID_SEARCH_TERMS 1014
+#define ID_APPLY_FILTER_BUTTON 1015
+#define ID_TABGAMES_GAME_LIST 1016
+#define ID_DELETE_BUTTON 1017
+#define ID_IMPORT_GAME_BUTTON 1018
+#define ID_LOAD_BUTTON 1019
+#define ID_IMPORT_SELECTION 1020
+#define ID_IMPORT_DB 1021
+#define ID_SAVE_BUTTON 1022
///////////////////////////////////////////////////////////////////////////////
/// Class MainFrame
@@ -285,6 +286,7 @@ class TabGameRightPanel : public wxPanel
wxStaticLine* m_staticline1;
wxStaticText* comment_label;
wxTextCtrl* comment_input;
+ wxPanel* nag_panel;
wxButton* nag_1;
wxButton* nag_2;
wxButton* nag_3;