X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Fwx%2Fjob_view.h;h=d58a90831e37ae075faa54f730fcc338f07e508a;hp=97c09dfbdee7d2e728846d5bd0b4f483018f63c1;hb=6ea0becd89bb223f26196aa9db13371990f5a1a8;hpb=f29f405000752ad568de1e304640a4edac8214bc diff --git a/src/wx/job_view.h b/src/wx/job_view.h index 97c09dfbd..d58a90831 100644 --- a/src/wx/job_view.h +++ b/src/wx/job_view.h @@ -1,22 +1,26 @@ /* - Copyright (C) 2012-2015 Carl Hetherington + Copyright (C) 2012-2017 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ +#ifndef DCPOMATIC_JOB_VIEW_H +#define DCPOMATIC_JOB_VIEW_H + #include #include #include @@ -30,32 +34,59 @@ class wxBoxSizer; class wxGauge; class wxStaticText; class wxButton; +class wxSizer; +class wxCheckBox; class JobView : public boost::noncopyable { public: JobView (boost::shared_ptr job, wxWindow* parent, wxWindow* container, wxFlexGridSizer* table); + virtual ~JobView () {} + + virtual int insert_position () const = 0; + virtual void job_list_changed () {} + void setup (); void maybe_pulse (); + void insert (int pos); + void detach (); + + boost::shared_ptr job () const { + return _job; + } + +protected: + virtual void finished (); + + boost::shared_ptr _job; + wxFlexGridSizer* _table; + /** sizer for buttons (cancel, details, pause etc.) */ + wxBoxSizer* _buttons; + /** sizer for the guage 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; + wxCheckBox* _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