RecordProgressDialog.h
上传用户:weiliju62
上传日期:2007-01-06
资源大小:619k
文件大小:2k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. /*  cdrdao - write audio CD-Rs in disc-at-once mode
  2.  *
  3.  *  Copyright (C) 1998, 1999  Andreas Mueller <mueller@daneb.ping.de>
  4.  *
  5.  *  This program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2 of the License, or
  8.  *  (at your option) any later version.
  9.  *
  10.  *  This program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  *  GNU General Public License for more details.
  14.  *
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with this program; if not, write to the Free Software
  17.  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  */
  19. /*
  20.  * $Log$
  21.  */
  22. #ifndef __RECORD_PROGRESS_DIALOG_H__
  23. #define __RECORD_PROGRESS_DIALOG_H__
  24. #include <gtk--.h>
  25. #include <gtk/gtk.h>
  26. class TocEdit;
  27. class CdDevice;
  28. class RecordProgressDialogPool;
  29. class RecordProgressDialog : public Gtk_Dialog {
  30. public:
  31.   RecordProgressDialog(RecordProgressDialogPool *father);
  32.   ~RecordProgressDialog();
  33.   gint delete_event_impl(GdkEventAny*);
  34. private:
  35.   friend class RecordProgressDialogPool;
  36.   RecordProgressDialogPool *poolFather_;
  37.   int active_;
  38.   CdDevice *device_;
  39.   int finished_;
  40.   int actStatus_;
  41.   int actTrack_;
  42.   int actTotalProgress_;
  43.   int actBufferFill_;
  44.   int actCloseButtonLabel_;
  45.   Gtk_Button *closeButton_;
  46.   Gtk_Label *abortLabel_;
  47.   Gtk_Label *closeLabel_;
  48.   Gtk_Label *tocName_;
  49.   Gtk_Label *statusMsg_;;
  50.   Gtk_ProgressBar *totalProgress_;
  51.   Gtk_ProgressBar *bufferFillRate_;
  52.   RecordProgressDialog *poolNext_;
  53.   void update(unsigned long, TocEdit *);
  54.   void start(CdDevice *, TocEdit *);
  55.   void stop();
  56.   void closeAction();
  57.   void clear();
  58.   void setCloseButtonLabel(int l);
  59. };
  60. class RecordProgressDialogPool {
  61. public:
  62.   RecordProgressDialogPool();
  63.   ~RecordProgressDialogPool();
  64.   void update(unsigned long, TocEdit *);
  65.   
  66.   RecordProgressDialog *start(CdDevice *, TocEdit *);
  67.   void stop(RecordProgressDialog *);
  68. private:
  69.   RecordProgressDialog *activeDialogs_;
  70.   RecordProgressDialog *pool_;
  71. };
  72. #endif