From 3ef188e6075649f4c72e3e7588d8966e1071f2ff Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 05 七月 2024 15:50:40 +0800
Subject: [PATCH] update .gitignore

---
 CBTrade/ViewManager.cpp |  295 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 193 insertions(+), 102 deletions(-)

diff --git a/CBTrade/ViewManager.cpp b/CBTrade/ViewManager.cpp
index d818484..de415c7 100644
--- a/CBTrade/ViewManager.cpp
+++ b/CBTrade/ViewManager.cpp
@@ -1,7 +1,14 @@
 #include "ViewManager.h"
 #include <wx/charts/wxcharts.h>
-#include <gmapi.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();
@@ -9,7 +16,6 @@
 	this->moneyWidgets = new MoneyWidgets();
 	this->positionWidgets = new PositionWidgets();
 	this->sellWidgets = new SellWidgets();
-	set_token("123123");
 }
 
 wxPanel* ViewManager::createSplitLine(wxWindow* parent)
@@ -24,40 +30,72 @@
 	window->SetBackgroundColour(wxColor(255, 255, 255));
 	wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
 
-
-	wxPanel* topPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(MAIN_WINDOW_WIDTH, PANNEL_TOP_HEIGHT));
+	wxSize size = window->GetSize();
+	cout << "size:"<< size.GetWidth() << endl;
 
 
-	wxPanel* tickPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(MAIN_WINDOW_WIDTH, PANNEL_TICK_HEIGHT));
+
+	wxPanel* topPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, PANNEL_TOP_HEIGHT));
 
 
-	wxPanel* moneyPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(MAIN_WINDOW_WIDTH, PANNEL_MONEY_HEIGHT));
+	wxPanel* tickPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1,size.GetWidth()<100? PANNEL_TICK_HEIGHT: size.GetWidth()*2/3));
 
 
-	wxPanel* positionPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(MAIN_WINDOW_WIDTH, PANNEL_POSITION_HEIGHT));
+	wxPanel* moneyPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, PANNEL_MONEY_HEIGHT));
 
 
-	wxPanel* sellPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(MAIN_WINDOW_WIDTH, PANNEL_SELL_HEIGHT));
+	wxPanel* positionPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, -1));
 
 
-	sizer->Add(topPanel, 0, wxLEFT | wxRIGHT, 2);
+	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, wxLEFT | wxRIGHT, 2);
+	sizer->Add(tickPanel, 0, wxEXPAND|wxLEFT | wxRIGHT, 2);
 	sizer->Add(createSplitLine(window), 0, wxEXPAND);
-	sizer->Add(moneyPanel, 0, wxLEFT | wxRIGHT, 2);
+	sizer->Add(moneyPanel, 0, wxEXPAND|wxLEFT | wxRIGHT, 2);
 	sizer->Add(createSplitLine(window), 0, wxEXPAND);
-	sizer->Add(positionPanel, 0, wxLEFT | wxRIGHT, 2);
+	sizer->Add(positionPanel, 1, wxEXPAND |wxLEFT | wxRIGHT, 2);
 	sizer->Add(createSplitLine(window), 0, wxEXPAND);
-	sizer->Add(sellPanel, 0, wxLEFT | wxRIGHT, 2);
+	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)
 {
@@ -65,10 +103,19 @@
 
 	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, "000333", wxDefaultPosition, wxSize(60, 25));
+	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, "开始回测");
 
+	
+
+	// 绑定事件
+	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);
 	pancel->SetSizer(sizer);
 }
@@ -78,8 +125,6 @@
 {
 public:
 	wxChartsPresentationDatasetTheme10() {
-		
-
 		SetLineChartDatasetOptions(wxLineChartDatasetOptions(
 			wxColor(220, 0, 0),
 			wxColor(255, 255, 255),
@@ -92,51 +137,19 @@
 
 void ViewManager::initTickView(wxPanel* panel)
 {
+	wxString st = "";
+	tickWidgets->tickChart = new TickChart(panel, wxID_ANY,60,TIME_SPACE_BAR,"09:25:00","15:00:00");
+	tickWidgets->codeInfoLabel = new wxRichTextCtrl(panel, wxID_ANY, st, wxDefaultPosition,wxSize(-1,90), wxTE_MULTILINE| wxTE_READONLY| wxBORDER_NONE);
+	wxFont font = tickWidgets->codeInfoLabel->GetFont();
+	font.SetPointSize(10);
+	tickWidgets->codeInfoLabel->SetFont(font);
 
-	if (1 > 0) {
-		return;
-	}
+	wxBoxSizer* panelSizer = new wxBoxSizer(wxVERTICAL);
+	wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
+	sizer->Add(tickWidgets->codeInfoLabel,1, wxEXPAND);
 
-	// 设置主题
-
-	wxChartsDefaultTheme->SetDatasetTheme(wxChartsDatasetId::CreateImplicitId(0), wxSharedPtr<wxChartsDatasetTheme>(new wxChartsPresentationDatasetTheme10()));
-
-
-	wxVector<wxString> labels;
-	labels.push_back("January");
-	labels.push_back("February");
-	labels.push_back("March");
-	labels.push_back("April");
-	labels.push_back("May");
-	labels.push_back("June");
-	labels.push_back("July");
-	wxChartsCategoricalData::ptr chartData = wxChartsCategoricalData::make_shared(labels);
-
-	// Add the first dataset
-	wxVector<wxDouble> points1;
-	points1.push_back(3);
-	points1.push_back(-2.5);
-	points1.push_back(-1.2);
-	points1.push_back(3);
-	points1.push_back(6);
-	points1.push_back(5);
-	points1.push_back(1);
-	wxChartsDoubleDataset::ptr dataset1(new wxChartsDoubleDataset("id0", points1));
-
-	chartData->AddDataset(dataset1);
-
-
-	// Create the line chart widget from the constructed data
-	const wxLineChartOptions *options = new wxLineChartOptions();
-	wxLineChartCtrl* lineChartCtrl = new wxLineChartCtrl(panel, wxID_ANY, chartData,
-		wxCHARTSLINETYPE_STRAIGHT, *options, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE);
-	lineChartCtrl->SetBackgroundColour(*wxBLACK);
-
-
-
-	wxBoxSizer* panelSizer = new wxBoxSizer(wxHORIZONTAL);
-	panelSizer->Add(lineChartCtrl, 1, wxEXPAND);
-	//panelSizer->Add(legendCtrl, 1, wxEXPAND);
+	panelSizer->Add(sizer, 0, wxEXPAND, 2);
+	panelSizer->Add(tickWidgets->tickChart, 1, wxEXPAND);
 	panel->SetSizer(panelSizer);
 }
 void ViewManager::initMoneyView(wxPanel* panel)
@@ -208,8 +221,11 @@
 
 class ButtonRenderer : public wxDataViewCustomRenderer
 {
+private:
+	MyButton info;
+
 public:
-	ButtonRenderer(const wxString& varianttype = "string")
+	ButtonRenderer(const wxString& varianttype = "wxObject")
 		: wxDataViewCustomRenderer(varianttype, wxDATAVIEW_CELL_ACTIVATABLE)
 	{
 
@@ -219,17 +235,13 @@
 	{
 		// 设置绘制按钮的位置和大小
 		wxRect buttonRect(cell.GetPosition(), wxSize(40, 20));
-		dc->SetTextForeground(wxColour(64, 64, 64));
+		dc->SetTextForeground(info.getTextColor());
 		// 绘制按钮的外框
-		dc->SetPen(wxColour(225, 225, 225));
-
-		dc->SetBrush(wxColour(225, 225, 225));
+		dc->SetPen(info.getBgColor());
+		dc->SetBrush(info.getBgColor());
 		dc->DrawRectangle(buttonRect);
-
 		// 绘制按钮的文本
-		dc->DrawLabel("查看", buttonRect, wxALIGN_CENTER);
-
-
+		dc->DrawLabel(info.getText(), buttonRect, wxALIGN_CENTER);
 		return false;
 	}
 
@@ -237,7 +249,13 @@
 	bool ActivateCell(const wxRect& WXUNUSED(cell), wxDataViewModel* WXUNUSED(model), const wxDataViewItem& WXUNUSED(item), unsigned int WXUNUSED(col), const wxMouseEvent* mouseEvent) override {
 		// 处理点击事件
 		if (mouseEvent->LeftDown()) {
-			wxMessageBox("单元格被点击");
+			try {
+				thread t(Win32Util::addToTHS, info.getCode().ToStdString());
+				t.detach();
+			}
+			catch (...) {
+			
+			}
 		}
 		return false; // 返回 true 表示已经处理了点击事件
 	}
@@ -249,7 +267,7 @@
 	}
 
 	virtual bool SetValue(const wxVariant& value) {
-
+		info << value;
 		return true;
 	}
 	virtual bool GetValue(wxVariant& value) const {
@@ -258,48 +276,113 @@
 	}
 };
 
+
+
+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)
 {
 	wxDataViewListCtrl* listCtrl = new wxDataViewListCtrl(
 		panel, wxID_ANY, wxDefaultPosition, wxSize(-1, -1),
 		wxLC_REPORT | wxBORDER_NONE);
+	// 设置整体的字体大小  
+	wxFont font  = listCtrl->GetFont();
+	font.SetPointSize(10);
+	listCtrl->SetFont(font);
 
-	listCtrl->Bind(wxEVT_DATAVIEW_SELECTION_CHANGED, &ViewManager::OnPositionSelectionChanged, this);
 
-	const int COL_COUNT = 10;
-	std::string headers[COL_COUNT] = { "名称","涨幅","现价","L1现手","剩余持仓","持仓金额","盈亏","盈亏比","正股名称","更多" };
-	int colWidths[COL_COUNT] = { 70,50 ,60 ,50 ,70 ,100 ,90 ,50 ,80 ,50 };
 
+	const int COL_COUNT = 13;
+	std::string headers[COL_COUNT] = { "名称","涨幅","现价","现手","正股涨幅","正股买一","持仓金额","成本价","盈亏比","更多","持仓","盈亏","正股名称" };
+	list<int> widths= MyConfigUtil::getPositionColumnWidth();
 	for (int i = 0; i < COL_COUNT; i++) {
-		if (i < COL_COUNT - 1) {
-			listCtrl->AppendTextColumn(headers[i], wxDATAVIEW_CELL_INERT, colWidths[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, 9, colWidths[i], wxALIGN_LEFT, wxDATAVIEW_COL_RESIZABLE));
+			listCtrl->AppendColumn(new wxDataViewColumn(headers[i], bc,i, width < 0? 50:width, i == 0 ? wxALIGN_LEFT : wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE));
 		}
 	}
 
-	for (int i = 0; i < 5; i++) {
+	for (int i = 0; i < 1; i++) {
 		wxVector<wxVariant> data;
 		data.push_back(wxVariant("美的转债"));
-		data.push_back(wxVariant("10.2%"));
+		data.push_back(wxVariant("10.20%"));
 		data.push_back(wxVariant("123.123"));
 		data.push_back(wxVariant("452"));
-		data.push_back(wxVariant("30"));
-		data.push_back(wxVariant("2000.00元"));
-		data.push_back(wxVariant("+20000.10元"));
+		data.push_back(wxVariant("10.02%"));
+		data.push_back(wxVariant("12312万"));
+	
+		data.push_back(wxVariant("100000.00"));
+		data.push_back(wxVariant("123.123"));
+
 		data.push_back(wxVariant("1.01%"));
 		data.push_back(wxVariant("美的集团"));
+		
 		data.push_back("");
+		data.push_back(wxVariant("1000"));
+		data.push_back(wxVariant("+20000.10"));
 		listCtrl->AppendItem(data);
 	}
 	listCtrl->Refresh();
-
-
-
 	positionWidgets->listCtrlReport = listCtrl;
-
 
 
 	wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
@@ -314,13 +397,13 @@
 	const int COLUMN_SPACE = 8;
 
 	auto btnSizer = new wxBoxSizer(wxHORIZONTAL);
-	wxPanel* btnPannel = new wxPanel(panel, wxID_ANY, wxDefaultPosition, wxSize(-1, 55));
+	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(60, -1));
+	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(60, -1));
+	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();
@@ -336,8 +419,8 @@
 
 
 	// 开启/关闭交易
-	sellWidgets->openTrade = new wxButton(btnPannel, wxID_ANY, "开启交易", wxDefaultPosition, wxSize(60, -1));
-	sellWidgets->closeTrade = new wxButton(btnPannel, wxID_ANY, "关闭交易", wxDefaultPosition, wxSize(60, -1));
+	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();
@@ -364,23 +447,23 @@
 
 	// 自动撤单/参数设置
 	sellWidgets->autoCancel = new wxCheckBox(btnPannel, wxID_ANY, "自动撤单");
-	sellWidgets->setting = new wxButton(btnPannel, wxID_ANY, "参数设置", wxDefaultPosition, wxSize(70, -1));
+	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(70, -1));
-	sellWidgets->buyPrice = new wxChoice(btnPannel, wxID_ANY, wxDefaultPosition, wxSize(70, -1));
+	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(1);
+	sellWidgets->sellPrice->SetSelection(0);
 	sellWidgets->buyPrice->SetSelection(2);
 
 	bv = new wxBoxSizer(wxVERTICAL);
@@ -396,9 +479,15 @@
 	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(50, -1));
+	sellWidgets->buyBtn = new wxButton(btnPannel, wxID_ANY, "买入", wxDefaultPosition, wxSize(80, -1));
 	sellWidgets->buyBtn->SetFont(font);
 	btnSizer->Add(sellWidgets->buyBtn, 0, wxEXPAND | wxLEFT, COLUMN_SPACE);
 
@@ -407,7 +496,7 @@
 	//------- 卖金额区域
 	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, 30)));
+		sellWidgets->sellNums.push_back(new wxButton(panel, wxID_ANY, std::to_string(moneys[i]), wxDefaultPosition, wxSize(-1, 50)));
 	}
 
 	auto sellNumsSizer = new wxBoxSizer(wxHORIZONTAL);
@@ -421,8 +510,10 @@
 	panel->SetSizer(rootSizer);
 }
 
-void ViewManager::OnPositionSelectionChanged(wxDataViewEvent& event)
+
+
+void ViewManager::OnRefresh(wxCommandEvent& event)
 {
-	event.Skip();
-	//event.Veto();
+	MyNetworkApi::get_all_positions();
+
 }

--
Gitblit v1.8.0