summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-07-27 18:23:32 +0100
committerCarl Hetherington <cth@carlh.net>2012-07-27 18:23:32 +0100
commit0653191b6b860b9e5d061faa2af3dab8b08e5850 (patch)
tree8720c3f1b0a89f8e310a91eced8b33c8209f057d /src
parent9faaf5d9ee72023adad0e82d8dc3af71e71d041b (diff)
Scroll job manager view.
Diffstat (limited to 'src')
-rw-r--r--src/wx/job_manager_view.cc27
-rw-r--r--src/wx/job_manager_view.h5
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;