-
Notifications
You must be signed in to change notification settings - Fork 5
/
MiningPage.cpp
73 lines (56 loc) · 1.95 KB
/
MiningPage.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/******************************************************************************
* wxVcashGUI: a GUI for Vcash, a decentralized currency
* for the internet (https://vcash.info).
*
* Copyright (c) The Vcash Developers
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
******************************************************************************/
#include <wx/wxprec.h>
#ifndef WX_PRECOMP
#include <wx/button.h>
#include <wx/sizer.h>
#endif
#include "MiningPage.h"
#include "VcashApp.h"
#define startT wxT("Start")
#define stopT wxT("Stop")
using namespace wxGUI;
MiningPage::MiningPage(VcashApp &vcashApp, wxWindow &parent)
: isMining(false)
, wxPanel(&parent) {
vcashApp.view.miningPage = this;
mining = new wxButton(this, wxID_ANY, startT);
setMining(isMining);
hash = new wxStaticText(this, wxID_ANY, wxT(""));
wxSizer *pageSizer = new wxBoxSizer(wxVERTICAL);
pageSizer->AddStretchSpacer(2);
pageSizer->Add(mining, wxSizerFlags().Center());
pageSizer->AddStretchSpacer(1);
pageSizer->Add(hash, wxSizerFlags().Center());
pageSizer->AddStretchSpacer(2);
SetSizerAndFit(pageSizer);
mining->Bind(wxEVT_BUTTON, [this, &vcashApp](wxCommandEvent &) {
toogleMining();
vcashApp.controller.onMiningPressed(isMining);
});
}
void MiningPage::setMining(bool b) {
isMining = b;
mining->SetLabelText(isMining ? stopT : startT);
mining->SetToolTip(isMining ? wxT("Stop mining") : wxT("Start mining"));
}
bool MiningPage::getMining() {
return isMining;
}
void MiningPage::toogleMining() {
setMining(!getMining());
}
void MiningPage::setHash(const std::string &hashRate) {
bool noHash = hashRate.empty() || hashRate[0] == '0';
hash->SetLabel(noHash ? wxT("") : wxString("Hash rate: "+hashRate));
this->Fit();
}