4 Website: http://www.vultaire.net/software/jben/
5 License: GNU General Public License (GPL) version 2
6 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)
8 File: panel_kanjidrill.h
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or
13 (at your option) any later version.
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
20 You should have received a copy of the GNU General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>
24 #ifndef panel_kanjidrill_h
25 #define panel_kanjidrill_h
27 /* Stock wxWidgets includes */
28 #include "wx/wxprec.h"
36 #include "redrawablepanel.h"
37 #include "wx/spinctrl.h"
38 #include "coveredtextbox.h"
42 class PanelKanjiDrill
: public RedrawablePanel
{
44 PanelKanjiDrill(wxWindow
*owner
);
46 void OnStart(wxCommandEvent
& ev
);
47 void OnStop(wxCommandEvent
& ev
);
49 bool TestInProgress();
50 void OnKanjiCountChange(wxSpinEvent
& ev
);
51 void OnRdoRandom(wxCommandEvent
& ev
);
52 void OnRdoStartIndex(wxCommandEvent
& ev
);
53 void OnCorrect(wxCommandEvent
& ev
);
54 void OnWrong(wxCommandEvent
& ev
);
56 void UpdateKanjiCountSpinner();
57 void UpdateStartIndexSpinner();
62 bool extraPractice
; /* After all kanji are tested once through, this var gets set */
65 unsigned int correct
, totalTested
, totalToTest
; /* "Final score: 56/76, 4 kanji not tested" */
66 vector
<wxChar
> testKanji
, missedKanji
;
68 int currentKanjiIndex
;
69 /* NOTE: Maybe add "list<int> correctKanji", and add option to save to a "mastered" kanji list? */
70 /* Pre-test controls */
72 wxSpinCtrl
*spnKanjiCount
;
73 wxRadioButton
*rdoRandom
, *rdoStartIndex
;
74 wxSpinCtrl
*spnStartIndex
;
75 wxRadioButton
*rdoKanjiReading
, *rdoKanjiWriting
;
77 /* Test mode controls */
79 CoveredTextBox
*txtKanji
, *txtOnyomi
, *txtKunyomi
, *txtEnglish
;
80 wxButton
*btnCorrect
, *btnWrong
, *btnStop
;
81 wxStaticText
*lblTestProgress
;