#pragma once
|
#include <wx/wx.h>
|
#include <wx/listctrl.h>
|
#include <wx/dataview.h>
|
#include <list>
|
#include "ViewManager.h"
|
#include "DataStruct.h"
|
#include "TickDataRequestStrategy.h"
|
#include "JueJinDataUtil.h"
|
#include "BlinkingMessageDialog.h"
|
|
|
|
class MainFrame:public wxFrame
|
{
|
private:
|
ViewManager* viewManager;
|
std::list<PositionInfo> orginPositionList;
|
std::list<PositionInfo> positionList;
|
wxString selectPositionId;// Ñ¡ÖеijֲÖID
|
long msgExpireTime;
|
TickDataRequestStrategy* tickDataRequestStrategy;
|
bool killed;
|
BlinkingMessageDialog* blinkingMessageDialog;
|
int requestCount;
|
|
public:
|
// Constructor
|
MainFrame(const wxString& title, wxPoint position=wxDefaultPosition, wxSize size= wxDefaultSize);
|
// Event handlers
|
void OnQuit(wxCommandEvent& event);
|
void OnAbout(wxCommandEvent& event);
|
void OnTextEnter(wxCommandEvent& event);
|
private:
|
// This class handles events
|
DECLARE_EVENT_TABLE()
|
|
/// <summary>
|
/// °ó¶¨Ê¼þ
|
/// </summary>
|
void bindEvent();
|
|
/// <summary>
|
/// ³õʼ»¯Êý¾Ý
|
/// </summary>
|
void initData();
|
|
/// <summary>
|
/// ³õʼ»¯ÈÎÎñ
|
/// </summary>
|
void initTask();
|
|
|
/// <summary>
|
/// »ñÈ¡³Ö²Ö
|
/// </summary>
|
void requestPositions();
|
|
/// <summary>
|
/// »ñÈ¡×ʽð
|
/// </summary>
|
void requestMoney();
|
|
/// <summary>
|
/// ¿ªÊ¼³Ö²ÖÈÎÎñ
|
/// </summary>
|
/// <param name="context"></param>
|
static void startRequestPositionsTask(MainFrame *context);
|
|
|
/// <summary>
|
/// »ñÈ¡³Ö²ÖÈÎÎñ
|
/// </summary>
|
/// <param name="context"></param>
|
static void startRequestMoneyTask(MainFrame* context);
|
|
/// <summary>
|
/// ÏÔʾÐÅÏ¢
|
/// </summary>
|
/// <param name="msg"></param>
|
/// <param name="type"></param>
|
void showMsg(wxString msg, MsgTypeEnum type);
|
|
/// <summary>
|
/// Çå³ýÐÅÏ¢
|
/// </summary>
|
/// <param name="context"></param>
|
static void clearMsg(MainFrame* context);
|
|
/// <summary>
|
/// ÔËÐоò½ð²ßÂÔ
|
/// </summary>
|
/// <param name="context"></param>
|
static void runJueJinStrategy(MainFrame* context);
|
|
/// <summary>
|
/// ¾ò½ðÐÐÇéÊý¾Ý»Øµ÷
|
/// </summary>
|
/// <param name="tick"></param>
|
/// <param name="context"></param>
|
static void tickDataCallback(Tick *tick, void* context);
|
|
/// <summary>
|
/// »ñȡѡÖеijֲÖ
|
/// </summary>
|
/// <returns></returns>
|
PositionInfo getSeclectedPosition();
|
|
|
/// <summary>
|
/// Tick »Øµ÷
|
/// </summary>
|
/// <param name="info"></param>
|
/// <param name="xStartTime"></param>
|
/// <param name="xEndTime"></param>
|
static void OnTickCallBack(CodeBasicInfo info, wxString xStartTime, wxString xEndTime, std::list<TickTradeData> buyPoints, std::list<TickTradeData> sellPoints, float costRate, void* context);
|
|
protected:
|
LRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
|
|
|
private:
|
/// <summary>
|
/// Ë¢ÐÂʼþ
|
/// </summary>
|
/// <param name="event"></param>
|
void OnBtnRefreshClick(wxCommandEvent& event);
|
/// <summary>
|
/// ÂòÈëµã»÷ʼþ
|
/// </summary>
|
/// <param name="event"></param>
|
void OnBtnBuyClick(wxCommandEvent& event);
|
|
/// <summary>
|
/// Âô³ö
|
/// </summary>
|
/// <param name="event"></param>
|
void OnBtnSellClick(wxCommandEvent& event);
|
|
void OnPositionSelectionChanged(wxDataViewEvent& event);
|
|
/// <summary>
|
/// »Ø²â
|
/// </summary>
|
/// <param name="event"></param>
|
void OnBtnBackTest(wxCommandEvent& event);
|
|
/// <summary>
|
/// ´°¿Ú¹Ø±Õ
|
/// </summary>
|
/// <param name="event"></param>
|
void OnClose(wxCloseEvent& event);
|
|
|
};
|