#include "ViewManager.h"
|
#include <wx/charts/wxcharts.h>
|
#include <set>
|
#include "MyNetworkApi.h"
|
#include "JueJInSettingFrame.h"
|
#include "../common_nopch/Win32Util.h"
|
#include <thread>
|
#include "MyConfigUtil.h"
|
|
IMPLEMENT_VARIANT_OBJECT(MyColorText)
|
IMPLEMENT_VARIANT_OBJECT(MyButton)
|
|
ViewManager::ViewManager() {
|
this->topWidgets = new TopWidgets();
|
this->tickWidgets = new TickWidgets();
|
this->moneyWidgets = new MoneyWidgets();
|
this->positionWidgets = new PositionWidgets();
|
this->sellWidgets = new SellWidgets();
|
}
|
|
wxPanel* ViewManager::createSplitLine(wxWindow* parent)
|
{
|
wxPanel* splitterLine = new wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(-1, 1));
|
splitterLine->SetBackgroundColour(wxColour(225, 225, 225));
|
return splitterLine;
|
}
|
|
void ViewManager::initView(wxWindow* window) {
|
|
window->SetBackgroundColour(wxColor(255, 255, 255));
|
wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
|
|
wxSize size = window->GetSize();
|
cout << "size:" << size.GetWidth() << endl;
|
|
|
|
wxPanel* topPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, PANNEL_TOP_HEIGHT));
|
|
|
wxPanel* tickPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, size.GetWidth() < 100 ? PANNEL_TICK_HEIGHT : size.GetWidth() * 2 / 3));
|
|
|
wxPanel* moneyPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, PANNEL_MONEY_HEIGHT));
|
|
|
wxPanel* positionPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, -1));
|
|
|
wxPanel* sellPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, PANNEL_SELL_HEIGHT));
|
|
initMenu((wxFrame*)window);
|
|
sizer->Add(topPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2);
|
sizer->Add(createSplitLine(window), 0, wxEXPAND);
|
sizer->Add(tickPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2);
|
sizer->Add(createSplitLine(window), 0, wxEXPAND);
|
sizer->Add(moneyPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2);
|
sizer->Add(createSplitLine(window), 0, wxEXPAND);
|
sizer->Add(positionPanel, 1, wxEXPAND | wxLEFT | wxRIGHT, 2);
|
sizer->Add(createSplitLine(window), 0, wxEXPAND);
|
sizer->Add(sellPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2);
|
sizer->Add(createSplitLine(window), 0, wxEXPAND);
|
window->SetSizer(sizer);
|
this->initTopView(topPanel);
|
this->initTickView(tickPanel);
|
this->initMoneyView(moneyPanel);
|
this->initPositionView(positionPanel);
|
this->initSellView(sellPanel);
|
}
|
|
|
void ViewManager::ShowJueJinSetting(wxCommandEvent& event)
|
{
|
JueJInSettingFrame* jueJinFrame = new JueJInSettingFrame("¾ò½ð²ÎÊýÉèÖÃ");
|
jueJinFrame->ShowModal();
|
}
|
|
void ViewManager::initMenu(wxFrame* window)
|
{
|
// ³õʼ»¯²Ëµ¥
|
menuBar = new wxMenuBar();
|
|
// ´´½¨Îļþ²Ëµ¥
|
wxMenu* menuSetting = new wxMenu();
|
menuSetting->Append(10012, "&¾ò½ð²ÎÊýÉèÖÃ");
|
menuSetting->AppendSeparator();
|
|
// ½«Îļþ²Ëµ¥Ìí¼Óµ½²Ëµ¥À¸
|
menuBar->Append(menuSetting, "&ÉèÖÃ");
|
|
// ½«²Ëµ¥À¸ÉèÖÃΪ´°¿ÚµÄ²Ëµ¥À¸
|
window->SetMenuBar(menuBar);
|
|
window->Bind(wxEVT_MENU, &ViewManager::ShowJueJinSetting, this, 10012);
|
|
|
}
|
|
void ViewManager::initTopView(wxPanel* pancel)
|
{
|
wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL);
|
|
this->topWidgets->refreshBtn = new wxButton(pancel, wxID_ANY, "Ë¢ÐÂ", wxDefaultPosition, wxSize(50, -1));
|
this->topWidgets->msgLabel = new wxStaticText(pancel, wxID_ANY, "ÌáʾÓïÌáʾÓï", wxDefaultPosition);
|
this->topWidgets->codeEdit = new wxTextCtrl(pancel, wxID_ANY, "", wxDefaultPosition, wxSize(-1, 25));
|
this->topWidgets->backTestDate = new wxTextCtrl(pancel, wxID_ANY);
|
this->topWidgets->btnBackTest = new wxButton(pancel, wxID_ANY, "¿ªÊ¼»Ø²â");
|
|
|
topWidgets->codeInfoLabel = new wxRichTextCtrl(pancel, wxID_ANY, "", wxDefaultPosition, wxSize(-1, 90), wxTE_MULTILINE | wxTE_READONLY | wxBORDER_NONE);
|
wxFont font = topWidgets->codeInfoLabel->GetFont();
|
font.SetPointSize(10);
|
topWidgets->codeInfoLabel->SetFont(font);
|
|
|
wxBoxSizer* infoSizer = new wxBoxSizer(wxHORIZONTAL);
|
infoSizer->Add(topWidgets->codeInfoLabel, 1, wxEXPAND);
|
|
|
|
|
|
// °ó¶¨Ê¼þ
|
this->topWidgets->refreshBtn->Bind(wxEVT_BUTTON, &ViewManager::OnRefresh, this);
|
sizer->Add(this->topWidgets->codeEdit, 0, wxALL, 2);
|
sizer->Add(this->topWidgets->btnAddZX, 0, wxALL, 2);
|
sizer->Add(this->topWidgets->msgLabel, 1, wxALIGN_CENTER_VERTICAL);
|
sizer->Add(topWidgets->backTestDate, 0, wxALIGN_CENTER_VERTICAL);
|
sizer->Add(topWidgets->btnBackTest, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, 2);
|
sizer->Add(this->topWidgets->refreshBtn, 0, wxALL, 2);
|
wxBoxSizer* rootSizer = new wxBoxSizer(wxVERTICAL);
|
rootSizer->Add(infoSizer, 0, wxEXPAND, 2);
|
rootSizer->Add(sizer, 0, wxEXPAND, 2);
|
pancel->SetSizer(rootSizer);
|
}
|
|
|
class wxChartsPresentationDatasetTheme10 : public wxChartsDatasetTheme
|
{
|
public:
|
wxChartsPresentationDatasetTheme10() {
|
SetLineChartDatasetOptions(wxLineChartDatasetOptions(
|
wxColor(220, 0, 0),
|
wxColor(255, 255, 255),
|
// wxColor(220, 220, 220, 0x33)
|
wxColor(220, 0, 0, 0)
|
));
|
}
|
};
|
|
|
void ViewManager::initTickView(wxPanel* panel)
|
{
|
tickWidgets->tickChart = new TickChart(panel, wxID_ANY, 60, TIME_SPACE_BAR, "09:25:00", "15:00:00");
|
wxBoxSizer* panelSizer = new wxBoxSizer(wxVERTICAL);
|
panelSizer->Add(tickWidgets->tickChart, 1, wxEXPAND);
|
panel->SetSizer(panelSizer);
|
}
|
void ViewManager::initMoneyView(wxPanel* panel)
|
{
|
//wxStaticText* positionLabel;//³Ö²Ö½ð¶î
|
wxStaticText* frozenLabel; //¶³½á½ð¶î
|
wxStaticText* totalLabel; // ÕË»§×ܽð¶î
|
wxStaticText* todayCommissionLabel;// ½ñÈÕÊÖÐø·Ñ
|
wxStaticText* todayProfitLabel;// Ó¯Àû½ð¶î
|
wxStaticText* todayProfitRateLabel;// ½ñÈÕÓ¯Àû±È
|
wxStaticText* totalProfitLabel;// ÀÛ¼ÆÓ¯Àû
|
//
|
|
wxGridSizer* rootSizer = new wxGridSizer(2, 4, 10, 20);
|
|
wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL);
|
|
sizer->Add(new wxStaticText(panel, wxID_ANY, "¿ÉÓÃ×ʽð£º"));
|
moneyWidgets->availableLabel = new wxStaticText(panel, wxID_ANY, "--");
|
sizer->Add(moneyWidgets->availableLabel);
|
rootSizer->Add(sizer, 0, wxEXPAND);
|
|
sizer = new wxBoxSizer(wxHORIZONTAL);
|
sizer->Add(new wxStaticText(panel, wxID_ANY, "³Ö²Ö×ʽð£º"));
|
moneyWidgets->positionLabel = new wxStaticText(panel, wxID_ANY, "--");
|
sizer->Add(moneyWidgets->positionLabel);
|
rootSizer->Add(sizer, 0, wxEXPAND);
|
|
|
sizer = new wxBoxSizer(wxHORIZONTAL);
|
sizer->Add(new wxStaticText(panel, wxID_ANY, "¶³½á×ʽð£º"));
|
moneyWidgets->frozenLabel = new wxStaticText(panel, wxID_ANY, "--");
|
sizer->Add(moneyWidgets->frozenLabel);
|
rootSizer->Add(sizer, 0, wxEXPAND);
|
|
sizer = new wxBoxSizer(wxHORIZONTAL);
|
sizer->Add(new wxStaticText(panel, wxID_ANY, "ÕË»§×ܽð¶î£º"));
|
moneyWidgets->totalLabel = new wxStaticText(panel, wxID_ANY, "--");
|
sizer->Add(moneyWidgets->totalLabel);
|
rootSizer->Add(sizer, 0, wxEXPAND);
|
|
sizer = new wxBoxSizer(wxHORIZONTAL);
|
sizer->Add(new wxStaticText(panel, wxID_ANY, "½ñÈÕÊÖÐø·Ñ£º"));
|
moneyWidgets->todayCommissionLabel = new wxStaticText(panel, wxID_ANY, "--");
|
sizer->Add(moneyWidgets->todayCommissionLabel);
|
rootSizer->Add(sizer, 0, wxEXPAND);
|
|
sizer = new wxBoxSizer(wxHORIZONTAL);
|
sizer->Add(new wxStaticText(panel, wxID_ANY, "½ñÈÕÓ¯¿÷£º"));
|
moneyWidgets->todayProfitLabel = new wxStaticText(panel, wxID_ANY, "--");
|
sizer->Add(moneyWidgets->todayProfitLabel);
|
rootSizer->Add(sizer, 0, wxEXPAND);
|
|
sizer = new wxBoxSizer(wxHORIZONTAL);
|
sizer->Add(new wxStaticText(panel, wxID_ANY, "½ñÈÕÓ¯¿÷±È£º"));
|
moneyWidgets->todayProfitRateLabel = new wxStaticText(panel, wxID_ANY, "--");
|
sizer->Add(moneyWidgets->todayProfitRateLabel);
|
rootSizer->Add(sizer, 0, wxEXPAND);
|
|
sizer = new wxBoxSizer(wxHORIZONTAL);
|
sizer->Add(new wxStaticText(panel, wxID_ANY, "ÀÛ¼ÆÓ¯¿÷£º"));
|
moneyWidgets->totalProfitLabel = new wxStaticText(panel, wxID_ANY, "--");
|
sizer->Add(moneyWidgets->totalProfitLabel);
|
rootSizer->Add(sizer, 0, wxEXPAND);
|
|
panel->SetSizer(rootSizer);
|
|
}
|
|
class ButtonRenderer : public wxDataViewCustomRenderer
|
{
|
private:
|
MyButton info;
|
|
public:
|
ButtonRenderer(const wxString& varianttype = "wxObject")
|
: wxDataViewCustomRenderer(varianttype, wxDATAVIEW_CELL_ACTIVATABLE)
|
{
|
|
}
|
|
virtual bool Render(wxRect cell, wxDC* dc, int state)
|
{
|
// ÉèÖûæÖư´Å¥µÄλÖúʹóС
|
wxRect buttonRect(cell.GetPosition(), wxSize(40, 20));
|
dc->SetTextForeground(info.getTextColor());
|
// »æÖư´Å¥µÄÍâ¿ò
|
dc->SetPen(info.getBgColor());
|
dc->SetBrush(info.getBgColor());
|
dc->DrawRectangle(buttonRect);
|
// »æÖư´Å¥µÄÎı¾
|
dc->DrawLabel(info.getText(), buttonRect, wxALIGN_CENTER);
|
return false;
|
}
|
|
// µã»÷ʼþ´¦Àí·½·¨
|
bool ActivateCell(const wxRect& WXUNUSED(cell), wxDataViewModel* WXUNUSED(model), const wxDataViewItem& WXUNUSED(item), unsigned int WXUNUSED(col), const wxMouseEvent* mouseEvent) override {
|
// ´¦Àíµã»÷ʼþ
|
if (mouseEvent->LeftDown()) {
|
try {
|
thread t(Win32Util::addToTHS, info.getCode().ToStdString());
|
t.detach();
|
}
|
catch (...) {
|
|
}
|
}
|
return false; // ·µ»Ø true ±íʾÒѾ´¦ÀíÁ˵ã»÷ʼþ
|
}
|
|
virtual wxSize GetSize() const
|
{
|
// ·µ»Ø°´Å¥µÄ´óС
|
return wxSize(40, 20);
|
}
|
|
virtual bool SetValue(const wxVariant& value) {
|
info << value;
|
return true;
|
}
|
virtual bool GetValue(wxVariant& value) const {
|
|
return true;
|
}
|
};
|
|
|
|
class ColorTextRenderer : public wxDataViewCustomRenderer
|
{
|
private:
|
MyColorText colorText;
|
|
public:
|
ColorTextRenderer(const wxString& varianttype = wxS("wxObject"))
|
: wxDataViewCustomRenderer(varianttype, wxDATAVIEW_CELL_ACTIVATABLE)
|
{
|
|
}
|
|
virtual bool Render(wxRect cell, wxDC* dc, int state)
|
{
|
dc->SetTextForeground(colorText.getColor());
|
// »æÖư´Å¥µÄÍâ¿ò
|
dc->SetPen(wxColour(225, 225, 225));
|
dc->SetBrush(wxColour(225, 225, 225));
|
// »æÖư´Å¥µÄÎı¾
|
dc->DrawLabel(colorText.getText(), cell, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
|
return false;
|
}
|
|
|
virtual wxSize GetSize() const
|
{
|
// ·µ»Ø°´Å¥µÄ´óС
|
return wxSize(-1, -1);
|
}
|
|
virtual bool SetValue(const wxVariant& value) wxOVERRIDE {
|
cout << value.GetType() << endl;
|
//colorText = (ColorText) value.GetType();
|
colorText << value;
|
return true;
|
}
|
|
virtual bool GetValue(wxVariant& value) const wxOVERRIDE {
|
|
return true;
|
}
|
wxString GetAccessibleDescription() const wxOVERRIDE
|
{
|
return wxEmptyString;
|
}
|
|
};
|
|
|
void ViewManager::initPositionView(wxPanel* panel)
|
{
|
MyDataViewListCtrl* listCtrl = new MyDataViewListCtrl(
|
panel, wxID_ANY, wxDefaultPosition, wxSize(-1, -1),
|
wxLC_REPORT | wxBORDER_NONE);
|
// ÉèÖÃÕûÌåµÄ×ÖÌå´óС
|
wxFont font = listCtrl->GetFont();
|
font.SetPointSize(10);
|
listCtrl->SetFont(font);
|
|
|
|
const int COL_COUNT = 13;
|
std::string headers[COL_COUNT] = { "Ãû³Æ","ÕÇ·ù","Õý¹ÉÕÇ·ù","Õý¹ÉÂòÒ»","³Ö²Ö½ð¶î","Ó¯¿÷±È","µ¥±ÊÂô¶î","ÏÖ¼Û","³É±¾¼Û","¸ü¶à","³Ö²Ö","Ó¯¿÷","Õý¹ÉÃû³Æ" };
|
list<int> widths = MyConfigUtil::getPositionColumnWidth();
|
for (int i = 0; i < COL_COUNT; i++) {
|
int width = -1;
|
if (widths.size() > i) {
|
list<int>::iterator e = widths.begin();
|
std::advance(e, i);
|
width = *e;
|
}
|
cout << "³Ö²ÖÁпí¶È£º" << i << "-" << width << endl;
|
|
if (i != 9) {
|
auto ctr = new ColorTextRenderer();
|
listCtrl->AppendColumn(new wxDataViewColumn(headers[i], ctr, i, width < 0 ? 50 : width, i == 0 ? wxALIGN_LEFT : wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE));
|
}
|
else {
|
auto bc = new ButtonRenderer();
|
listCtrl->AppendColumn(new wxDataViewColumn(headers[i], bc, i, width < 0 ? 50 : width, i == 0 ? wxALIGN_LEFT : wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE));
|
}
|
}
|
listCtrl->HandleDataUpdate();
|
positionWidgets->listCtrlReport = listCtrl;
|
|
wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
|
sizer->Add(positionWidgets->listCtrlReport, 1, wxEXPAND);
|
panel->SetSizer(sizer);
|
}
|
|
void ViewManager::initSellView(wxPanel* panel)
|
{
|
const int moneys[] = { 80000,60000,40000,20000,15000,10000,8000,5000,3000,2000 };
|
//-------°´Å¥²Ù×÷ÇøÓò
|
const int COLUMN_SPACE = 8;
|
|
auto btnSizer = new wxBoxSizer(wxHORIZONTAL);
|
wxPanel* btnPannel = new wxPanel(panel, wxID_ANY, wxDefaultPosition, wxSize(-1, 70));
|
btnPannel->SetSizer(btnSizer);
|
|
sellWidgets->buyLock = new wxCheckBox(btnPannel, wxID_ANY, "ÂòËø¶¨");
|
sellWidgets->buyMoney = new wxTextCtrl(btnPannel, wxID_ANY, "", wxDefaultPosition, wxSize(90, -1), wxTE_PROCESS_ENTER);
|
sellWidgets->sellLock = new wxCheckBox(btnPannel, wxID_ANY, "ÂôËø¶¨");
|
sellWidgets->sellMoney = new wxTextCtrl(btnPannel, wxID_ANY, "", wxDefaultPosition, wxSize(90, -1), wxTE_PROCESS_ENTER);
|
auto bv = new wxBoxSizer(wxVERTICAL);
|
bv->Add(sellWidgets->buyLock, 0, wxTOP, 5);
|
bv->AddStretchSpacer();
|
bv->Add(sellWidgets->buyMoney, 0);
|
btnSizer->Add(bv, 0, wxEXPAND | wxLEFT, 5);
|
|
bv = new wxBoxSizer(wxVERTICAL);
|
bv->Add(sellWidgets->sellLock, 0, wxTOP, 5);
|
bv->AddStretchSpacer();
|
bv->Add(sellWidgets->sellMoney, 0);
|
btnSizer->Add(bv, 0, wxEXPAND | wxLEFT, COLUMN_SPACE);
|
|
|
|
// ¿ªÆô/¹Ø±Õ½»Ò×
|
sellWidgets->openTrade = new wxButton(btnPannel, wxID_ANY, "¿ªÆô½»Ò×", wxDefaultPosition, wxSize(80, -1));
|
sellWidgets->closeTrade = new wxButton(btnPannel, wxID_ANY, "¹Ø±Õ½»Ò×", wxDefaultPosition, wxSize(80, -1));
|
bv = new wxBoxSizer(wxVERTICAL);
|
bv->Add(sellWidgets->openTrade, 0);
|
bv->AddStretchSpacer();
|
bv->Add(sellWidgets->closeTrade, 0);
|
btnSizer->Add(bv, 0, wxEXPAND | wxLEFT, COLUMN_SPACE);
|
|
|
// ÏëÂòµ¥
|
sellWidgets->addWantBuy = new wxButton(btnPannel, wxID_ANY, "¼ÓÏë", wxDefaultPosition, wxSize(40, -1));
|
sellWidgets->removeWantBuy = new wxButton(btnPannel, wxID_ANY, "ÒÆÏë", wxDefaultPosition, wxSize(40, -1));
|
sellWidgets->wantBuyList = new wxButton(btnPannel, wxID_ANY, "Ïëµ¥", wxDefaultPosition, wxSize(40, -1));
|
bv = new wxBoxSizer(wxVERTICAL);
|
bv->Add(sellWidgets->addWantBuy, 0);
|
bv->AddStretchSpacer();
|
bv->Add(sellWidgets->removeWantBuy, 0);
|
btnSizer->Add(bv, 0, wxEXPAND | wxLEFT, COLUMN_SPACE);
|
btnSizer->Add(sellWidgets->wantBuyList, 0, wxEXPAND | wxLEFT, 3);
|
|
// Âô³ö°´Å¥
|
sellWidgets->sellBtn = new wxButton(btnPannel, wxID_ANY, "Âô³ö", wxDefaultPosition, wxSize(80, -1));
|
wxFont font(15, sellWidgets->sellBtn->GetFont().GetFamily(), wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD);
|
sellWidgets->sellBtn->SetFont(font);
|
btnSizer->Add(sellWidgets->sellBtn, 0, wxEXPAND | wxLEFT, 10);
|
|
// ×Ô¶¯³·µ¥/²ÎÊýÉèÖÃ
|
sellWidgets->autoCancel = new wxCheckBox(btnPannel, wxID_ANY, "×Ô¶¯³·µ¥");
|
sellWidgets->setting = new wxButton(btnPannel, wxID_ANY, "²ÎÊýÉèÖÃ", wxDefaultPosition, wxSize(80, -1));
|
bv = new wxBoxSizer(wxVERTICAL);
|
bv->Add(sellWidgets->autoCancel, 0);
|
bv->AddStretchSpacer();
|
bv->Add(sellWidgets->setting, 0);
|
btnSizer->Add(bv, 0, wxEXPAND | wxLEFT, COLUMN_SPACE);
|
|
// Âò¼Û/Âô¼ÛÉèÖà 0-¼Û¸ñÁý×Ó 1-µøÍ£¼Û 2-ÕÇÍ£¼Û 3-ÏÖ¼Û 4-Âò5¼Û
|
const wxString prices_buy[] = { "Áý×Ó¼Û", "µøÍ£¼Û","ÕÇÍ£¼Û","ÏÖ¼Û","Âò5¼Û" };
|
const wxString prices_sell[] = { "Áý×Ó¼Û", "µøÍ£¼Û","ÕÇÍ£¼Û","ÏÖ¼Û","Âô5¼Û" };
|
sellWidgets->sellPrice = new wxChoice(btnPannel, wxID_ANY, wxDefaultPosition, wxSize(90, -1));
|
sellWidgets->buyPrice = new wxChoice(btnPannel, wxID_ANY, wxDefaultPosition, wxSize(90, -1));
|
for (int i = 0; i < 5; i++) {
|
sellWidgets->sellPrice->Append(prices_sell[i]);
|
sellWidgets->buyPrice->Append(prices_buy[i]);
|
}
|
sellWidgets->sellPrice->SetSelection(0);
|
sellWidgets->buyPrice->SetSelection(2);
|
|
bv = new wxBoxSizer(wxVERTICAL);
|
bv->Add(new wxStaticText(btnPannel, wxID_ANY, "Âô¼ÛÉèÖÃ"), 0);
|
bv->AddStretchSpacer();
|
bv->Add(sellWidgets->sellPrice, 0);
|
btnSizer->Add(bv, 0, wxEXPAND | wxLEFT, 10);
|
|
bv = new wxBoxSizer(wxVERTICAL);
|
bv->Add(new wxStaticText(btnPannel, wxID_ANY, "Âò¼ÛÉèÖÃ"), 0);
|
bv->AddStretchSpacer();
|
bv->Add(sellWidgets->buyPrice, 0);
|
btnSizer->Add(bv, 0, wxEXPAND | wxLEFT, COLUMN_SPACE);
|
|
|
sellWidgets->showAllPosition = new wxCheckBox(btnPannel, wxID_ANY, "ÏÔʾÎÞ³Ö²Ö");
|
sellWidgets->showAllPosition->SetValue(TRUE);
|
btnSizer->Add(sellWidgets->showAllPosition, 0, wxLEFT, COLUMN_SPACE);
|
|
|
|
// ÂòÈë
|
btnSizer->AddStretchSpacer();
|
sellWidgets->buyBtn = new wxButton(btnPannel, wxID_ANY, "ÂòÈë", wxDefaultPosition, wxSize(80, -1));
|
sellWidgets->buyBtn->SetFont(font);
|
btnSizer->Add(sellWidgets->buyBtn, 0, wxEXPAND | wxLEFT, COLUMN_SPACE);
|
|
|
|
//------- Âô½ð¶îÇøÓò
|
const int sellNumCount = sizeof(moneys) / sizeof(moneys[0]);
|
for (int i = 0; i < sellNumCount; i++) {
|
sellWidgets->sellNums.push_back(new wxButton(panel, wxID_ANY, std::to_string(moneys[i]), wxDefaultPosition, wxSize(-1, 50)));
|
}
|
|
auto sellNumsSizer = new wxBoxSizer(wxHORIZONTAL);
|
|
for (std::list<wxButton*>::iterator e = sellWidgets->sellNums.begin(); e != sellWidgets->sellNums.end(); e++) {
|
(*e)->SetMinSize(wxSize(40,50));
|
sellNumsSizer->Add(*e, 1, wxEXPAND | wxALL, 2);
|
}
|
|
auto rootSizer = new wxBoxSizer(wxVERTICAL);
|
rootSizer->Add(btnPannel, 0, wxEXPAND | wxTOP, 5);
|
rootSizer->Add(sellNumsSizer, 1, wxEXPAND | wxTOP, 5);
|
panel->SetSizer(rootSizer);
|
}
|
|
|
|
void ViewManager::OnRefresh(wxCommandEvent& event)
|
{
|
MyNetworkApi::get_all_positions();
|
|
}
|