1 /*
2 ��示下载图表的滚动窗口
3 
4 2006/07/12
5 
6 */
7 
8 #include <wx/wx.h>
9 #include <wx/bitmap.h>
10 #include "common.h"
11 #include <vector>
12 
13 DECLARE_EVENT_TYPE( mgID_8K, -1 )
14 DECLARE_EVENT_TYPE( mgID_16K, -1 )
15 DECLARE_EVENT_TYPE( mgID_32K, -1 )
16 DECLARE_EVENT_TYPE( mgID_64K, -1 )
17 DECLARE_EVENT_TYPE( mgID_128K, -1 )
18 DECLARE_EVENT_TYPE( mgID_256K, -1 )
19 DECLARE_EVENT_TYPE( mgID_512K, -1 )
20 DECLARE_EVENT_TYPE( mgID_1M, -1 )
21 DECLARE_EVENT_TYPE( mgID_2M, -1 )
22 DECLARE_EVENT_TYPE( mgID_4M, -1 )
23 
24 class CShowTableWindow : public wxScrolledWindow
25 {
26 
27 public:
28     CShowTableWindow( wxWindow* parent );
29     void SetRange( llong to, llong from , int nsize, bindex data[] ); //设置文件范围
30     void SetUnit( int kbyte );	//设置显示单元
31     void SetData( int segs, bindex data[] );  //设置当前的完成数据
32 
33 protected:
34     virtual void OnDraw( wxDC& dc );
35     void DrawBlock( wxDC& dc, wxPoint& base, int line , int col, int color );
36     int GetBlockColor( int totalline, int totalcol, int line, int col );
37     void On8K( wxCommandEvent& event );
38     void On16K( wxCommandEvent& event );
39     void On32K( wxCommandEvent& event );
40     void On64K( wxCommandEvent& event );
41     void On128K( wxCommandEvent& event );
42     void On256K( wxCommandEvent& event );
43     void On512K( wxCommandEvent& event );
44     void On1M( wxCommandEvent& event );
45     void On2M( wxCommandEvent& event );
46     void On4M( wxCommandEvent& event );
47     void OnMouseEvent( wxMouseEvent& event );
48     void OnSize( wxSizeEvent& event );
49 
50 private:
51     wxBitmap m_GrayBlock;
52     wxBitmap m_YellowBlock[ 10 ];
53     wxBitmap m_GreenBlock;
54     //开始显示位置
55     llong m_from;
56     //结束显示位置
57     llong m_to;
58     //缺省的显示单元大小,单位K(1024字节)
59     int m_unit;
60     //数据块的数量
61     int m_nBlock;
62     //强制刷新
63     bool m_bForceUpdata;
64     //保存的用于刷新的数据
65     std::vector<bindex> m_DataList;
66 
67     DECLARE_EVENT_TABLE()
68 };
69 
70