- _table = new wxFlexGridSizer (5, 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));
- _timer->Start (1000);
-
- update ();
-}
+ _gauge = new wxGauge (panel, wxID_ANY, 100);
+ /* This seems to be required to allow the gauge to shrink under OS X */
+ _gauge->SetMinSize (wxSize (0, -1));
+ table->Insert (n, _gauge, 1, wxEXPAND | wxLEFT | wxRIGHT);
+ ++n;
+
+ _message = new wxStaticText (panel, wxID_ANY, std_to_wx (""));
+ table->Insert (n, _message, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
+ ++n;
+
+ _cancel = new wxButton (panel, wxID_ANY, _("Cancel"));
+ _cancel->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::cancel_clicked, this);
+ table->Insert (n, _cancel, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
+ ++n;
+
+ if (pause) {
+ _pause = new wxButton (_panel, wxID_ANY, _("Pause"));
+ _pause->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::pause_clicked, this);
+ table->Insert (n, _pause, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
+ ++n;
+ }
+
+ _details = new wxButton (_panel, wxID_ANY, _("Details..."));
+ _details->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::details_clicked, this);
+ _details->Enable (false);
+ table->Insert (n, _details, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
+ ++n;
+
+ job->Progress.connect (boost::bind (&JobRecord::progress, this));
+ job->Finished.connect (boost::bind (&JobRecord::finished, this));
+
+ table->Layout ();
+ panel->FitInside ();
+ }