#ifndef SRC_WX_STATUS_H_ #define SRC_WX_STATUS_H_ #include #include #define DEFAULT_WINDOW_WIDTH 350 #define DEFAULT_WINDOW_HEIGHT 25 #define SPEED_HISTORY_LENGTH 240 class StatusPane; class StatusTimer : public wxTimer { public: StatusTimer(StatusPane* pane); virtual ~StatusTimer() {}; void Notify(); void Start(); private: StatusPane* pane; }; class StatusPane : public wxPanel { public: StatusPane(wxFrame* parent); virtual ~StatusPane(); void PaintEvent(wxPaintEvent& evt); void PaintNow(); void Render( wxDC& dc ); private: char machineInfoText[4096]; char statusMachineText[4096]; char statusDeviceText[4096]; wxLongLong lastSpeedUpdate; char speedHistory[SPEED_HISTORY_LENGTH]; wxBitmap bitmapFDD[2]; wxBitmap bitmapCDROM[2]; wxBitmap bitmapHDD[2]; DECLARE_EVENT_TABLE() }; #define STATUS_WINDOW_ID 1000 class StatusFrame : public wxFrame { public: StatusFrame(wxWindow* parent); virtual ~StatusFrame(); void OnQuit(); private: void OnCommand(wxCommandEvent &event); void OnMoveWindow(wxMoveEvent& event); StatusPane* statusPane; StatusTimer* statusTimer; void UpdateToolbar(); DECLARE_EVENT_TABLE() }; #endif /* SRC_WX_STATUS_H_ */