diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-07-27 18:23:32 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-07-27 18:23:32 +0100 |
| commit | 0653191b6b860b9e5d061faa2af3dab8b08e5850 (patch) | |
| tree | 8720c3f1b0a89f8e310a91eced8b33c8209f057d /src | |
| parent | 9faaf5d9ee72023adad0e82d8dc3af71e71d041b (diff) | |
Scroll job manager view.
Diffstat (limited to 'src')
| -rw-r--r-- | src/wx/job_manager_view.cc | 27 | ||||
| -rw-r--r-- | src/wx/job_manager_view.h | 5 |
2 files changed, 19 insertions, 13 deletions
diff --git a/src/wx/job_manager_view.cc b/src/wx/job_manager_view.cc index fa08a01bf..f385fb269 100644 --- a/src/wx/job_manager_view.cc +++ b/src/wx/job_manager_view.cc @@ -33,11 +33,18 @@ using namespace boost; /** Must be called in the GUI thread */ JobManagerView::JobManagerView (wxWindow* parent) - : wxPanel (parent) + : wxScrolledWindow (parent) { - _sizer = new wxFlexGridSizer (3, 6, 6); - _sizer->AddGrowableCol (1, 1); - SetSizer (_sizer); + _panel = new wxPanel (this); + wxSizer* sizer = new wxBoxSizer (wxVERTICAL); + sizer->Add (_panel, 1, wxEXPAND); + SetSizer (sizer); + + _table = new wxFlexGridSizer (3, 6, 6); + _table->AddGrowableCol (1, 1); + _panel->SetSizer (_table); + + SetScrollRate (0, 32); Connect (wxID_ANY, wxEVT_TIMER, wxTimerEventHandler (JobManagerView::periodic), 0, this); _timer.reset (new wxTimer (this)); @@ -63,16 +70,13 @@ JobManagerView::update () for (list<shared_ptr<Job> >::iterator i = jobs.begin(); i != jobs.end(); ++i) { if (_job_records.find (*i) == _job_records.end ()) { - add_label_to_sizer (_sizer, this, (*i)->name ()); - JobRecord r; - r.gauge = new wxGauge (this, wxID_ANY, 100); - _sizer->Add (r.gauge, 1, wxEXPAND); + r.gauge = new wxGauge (_panel, wxID_ANY, 100); + _table->Add (r.gauge, 1, wxEXPAND | wxLEFT | wxRIGHT); r.informed_of_finish = false; - r.message = add_label_to_sizer (_sizer, this, "", 1); + r.message = add_label_to_sizer (_table, _panel, "", 1); _job_records[*i] = r; - _sizer->Layout (); } string const st = (*i)->status (); @@ -109,5 +113,6 @@ JobManagerView::update () } } - _sizer->Layout (); + _table->Layout (); + FitInside (); } diff --git a/src/wx/job_manager_view.h b/src/wx/job_manager_view.h index 96a37693c..5a3ae61cb 100644 --- a/src/wx/job_manager_view.h +++ b/src/wx/job_manager_view.h @@ -30,7 +30,7 @@ class Job; /** @class JobManagerView * @brief Class which is a wxPanel for showing the progress of jobs. */ -class JobManagerView : public wxPanel +class JobManagerView : public wxScrolledWindow { public: JobManagerView (wxWindow *); @@ -41,7 +41,8 @@ private: void periodic (wxTimerEvent &); boost::shared_ptr<wxTimer> _timer; - wxFlexGridSizer* _sizer; + wxPanel* _panel; + wxFlexGridSizer* _table; struct JobRecord { wxGauge* gauge; wxStaticText* message; |
