Add details button to job manager; stretch jobs across the whole of the bottom of...
[dcpomatic.git] / src / wx / job_manager_view.h
index c88a1ce9aa9f2b3c6ba01e9e25283dfdb5f93436..d43e795ea59797da395a6486060f8b9b9dd3706a 100644 (file)
 */
 
 /** @file src/job_manager_view.h
- *  @brief Class generating a GTK widget to show the progress of jobs.
+ *  @brief Class which is a wxPanel for showing the progress of jobs.
  */
 
 #include <string>
 #include <boost/shared_ptr.hpp>
-#include <gtkmm.h>
+#include <wx/wx.h>
 
 class Job;
 
 /** @class JobManagerView
- *  @brief Class generating a GTK widget to show the progress of jobs.
+ *  @brief Class which is a wxPanel for showing the progress of jobs.
  */
-class JobManagerView
+class JobManagerView : public wxScrolledWindow
 {
 public:
-       JobManagerView ();
-
-       /** @return Our main widget, which contains everything else */
-       Gtk::Widget& widget () {
-               return _scroller;
-       }
+       JobManagerView (wxWindow *);
 
        void update ();
 
 private:
-       /** Scroller for all our contents */
-       Gtk::ScrolledWindow _scroller;
-       /** View for the jobs */
-       Gtk::TreeView _view;
-       /** Store for the jobs */
-       Glib::RefPtr<Gtk::TreeStore> _store;
-
-       /** The TreeModelColumnRecord for the store */
-       class StoreColumns : public Gtk::TreeModelColumnRecord
-       {
-       public:
-               StoreColumns ()
-               {
-                       add (name);
-                       add (job);
-                       add (progress);
-                       add (progress_unknown);
-                       add (text);
-                       add (informed_of_finish);
-               }
-
-               /** Job name */
-               Gtk::TreeModelColumn<std::string> name;
-               /** Job */
-               Gtk::TreeModelColumn<boost::shared_ptr<Job> > job;
-               /** Progress */
-               Gtk::TreeModelColumn<float> progress;
-               /** An increasing integer number if the progress is unknown */
-               Gtk::TreeModelColumn<int> progress_unknown;
-               /** Text to write into the progress bar */
-               Gtk::TreeModelColumn<std::string> text;
-               /** true if the job has been informed of its finish */
-               Gtk::TreeModelColumn<bool> informed_of_finish;
+       void periodic (wxTimerEvent &);
+       void details_clicked (wxCommandEvent &);
+
+       boost::shared_ptr<wxTimer> _timer;
+       wxPanel* _panel;
+       wxFlexGridSizer* _table;
+       struct JobRecord {
+               wxGauge* gauge;
+               wxStaticText* message;
+               wxButton* details;
+               bool finalised;
        };
-
-       /** The columns for the store */
-       StoreColumns _columns;
+               
+       std::map<boost::shared_ptr<Job>, JobRecord> _job_records;
 };