X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fjob_view.h;h=74518c9babc639722cbeca7a441a7f8c380dc44c;hb=HEAD;hp=96233f7322b5e78b1d113eb7c1ba870e750eff49;hpb=a5e041b46b675c1f42fc83920be45345662e0376;p=dcpomatic.git diff --git a/src/wx/job_view.h b/src/wx/job_view.h index 96233f732..74518c9ba 100644 --- a/src/wx/job_view.h +++ b/src/wx/job_view.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2015 Carl Hetherington + Copyright (C) 2012-2017 Carl Hetherington This file is part of DCP-o-matic. @@ -18,45 +18,81 @@ */ -#include -#include + +#ifndef DCPOMATIC_JOB_VIEW_H +#define DCPOMATIC_JOB_VIEW_H + + #include + +class CheckBox; class Job; -class wxScrolledWindow; -class wxWindow; -class wxFlexGridSizer; -class wxCommandEvent; class wxBoxSizer; +class wxButton; +class wxCommandEvent; +class wxFlexGridSizer; class wxGauge; +class wxScrolledWindow; +class wxSizer; class wxStaticText; -class wxButton; +class wxWindow; + -class JobView : public boost::noncopyable +class JobView { public: - JobView (boost::shared_ptr job, wxWindow* parent, wxWindow* container, wxFlexGridSizer* table, bool top); + JobView (std::shared_ptr job, wxWindow* parent, wxWindow* container, wxFlexGridSizer* table); + virtual ~JobView () {} + + JobView (JobView const&) = delete; + JobView& operator= (JobView const&) = delete; + virtual int insert_position () const = 0; + virtual void job_list_changed () {} + + void setup (); void maybe_pulse (); + void insert (int pos); + void detach (); + + std::shared_ptr job () const { + return _job; + } + +protected: + virtual void finished (); + + std::shared_ptr _job; + wxFlexGridSizer* _table; + /** sizer for buttons (cancel, details, pause etc.) */ + wxBoxSizer* _buttons; + /** sizer for the gauge and the message underneath it */ + wxBoxSizer* _gauge_message; private: + virtual void finish_setup (wxWindow *, wxSizer *) {} + void progress (); - void finished (); void details_clicked (wxCommandEvent &); void cancel_clicked (wxCommandEvent &); - void pause_clicked (wxCommandEvent &); + void notify_clicked (); - boost::shared_ptr _job; wxWindow* _parent; - wxBoxSizer* _gauge_message; + wxWindow* _container; wxGauge* _gauge; wxStaticText* _message; wxButton* _cancel; - wxButton* _pause; wxButton* _details; + CheckBox* _notify; + /** sizer for all right-hand-size controls */ + wxBoxSizer* _controls; std::string _last_message; boost::signals2::scoped_connection _progress_connection; boost::signals2::scoped_connection _finished_connection; }; + + +#endif