FreeburnCommandDialog.h
上传用户:cnxinhai
上传日期:2013-08-06
资源大小:265k
文件大小:5k
源码类别:

DVD

开发平台:

Visual C++

  1. /* This is the class description for the Executing Command Output Dialog.
  2.  *
  3.  * Copyright (C) 2001, 2002  Adam Schlag
  4.  */
  5. /*
  6.  * FreeBurn Software License
  7.  * (based on the Apache Software License)
  8.  * 
  9.  * Version 1.1
  10.  * 
  11.  * Copyright (c) 2001, 2002 The FreeBurn Project. All rights reserved.
  12.  * 
  13.  * Redistribution and use in source and binary forms, with or without 
  14.  * modification, are permitted provided that the following conditions are met:
  15.  * 
  16.  * 1. Redistributions of source code must retain the above copyright 
  17.  * notice, this list of conditions and the following disclaimer.
  18.  * 
  19.  * 2. Redistributions in binary form must reproduce the above copyright 
  20.  * notice, this list of conditions and the following disclaimer in the 
  21.  * documentation and/or other materials provided with the distribution.
  22.  * 
  23.  * 3. The end-user documentation included with the redistribution, if any, must 
  24.  * include the following acknowledgment:
  25.  * 
  26.  *  "This product includes software developed by the FreeBurn 
  27.  *     Project (http://freeburn.sourceforge.net/)."
  28.  * 
  29.  * Alternately, this acknowledgment may appear in the software itself, 
  30.  * if and wherever such third-party acknowledgments normally appear.
  31.  * 
  32.  * 4. The names "FreeBurn" and "FreeBurn Project" must not be 
  33.  * used to endorse or promote products derived from this software 
  34.  * without prior written permission. For written permission, please 
  35.  * contact aschlag@users.sourceforge.net.
  36.  * 
  37.  * 5. Products derived from this software may not be called "FreeBurn", 
  38.  * nor may "FreeBurn" appear in their name, without prior written 
  39.  * permission of the FreeBurn Project.
  40.  * 
  41.  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED 
  42.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
  43.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
  44.  * DISCLAIMED. IN NO EVENT SHALL THE FREEBURN PROJECT OR ITS 
  45.  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
  46.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
  47.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
  48.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
  49.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
  50.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
  51.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
  52.  * SUCH DAMAGE.
  53.  * 
  54.  * This software consists of voluntary contributions made by many 
  55.  * individuals on behalf of the FreeBurn Project. For more 
  56.  * information on the FreeBurn Project and FreeBurn, please see 
  57.  * <http://freeburn.sourceforge.net/>.
  58.  * 
  59.  * This software is distributed with software that is released under the GNU 
  60.  * General Public License (GPL).  You can find the terms of this license in the
  61.  * file GPL.txt distributed in this package.  You can find information on the
  62.  * software distributed with this package in the file PROGRAMS.txt.
  63.  */
  64. class CFreeburnCommandDialog : public FXDialogBox 
  65. {
  66.     FXDECLARE(CFreeburnCommandDialog)
  67.   
  68. public:
  69.     // The new message ID's used in the dialog
  70.     enum{
  71.         ID_SAVELOG=FXDialogBox::ID_LAST,
  72.         ID_LOGTEXT,
  73.         ID_LAST
  74.     };
  75.     
  76.     // message handlers for hiding/showing the output log
  77.     long saveOutputLog  (FXObject*, FXSelector, void*);    
  78.     // the constructor and destructor we'll use
  79.     CFreeburnCommandDialog(FXWindow* owner);
  80.     virtual ~CFreeburnCommandDialog();
  81.     
  82.     // over-ride the Dialog execute so we can do some of our own stuff...
  83.     //FXuint execute(FXuint placement);
  84.     
  85.     // method to set the save icon to use in the dialog
  86.     void setSaveIcon(FXIcon* saveIcon);
  87.     
  88.     // methods for setting the text for the command string and output
  89.     void setCommandLabelText(FXString& commandString);
  90.     void sendOutputText     (FXString& outputString);
  91.     
  92.     // method to run when output is complete
  93.     void outputComplete();
  94. protected:    
  95.   
  96. private:
  97.     // default constructors used by FOX
  98.     CFreeburnCommandDialog(){}
  99.     CFreeburnCommandDialog(const CFreeburnCommandDialog&);
  100.     
  101.     // label to show the command being executed
  102.     FXLabel* m_CommandLabel;
  103.     
  104.     // label to show the current line of output
  105.     FXLabel* m_OutputLabel;
  106.     
  107.     // text area to contain the entire contents of the output
  108.     FXText* m_OutputText;
  109.     
  110.     // buttons for hiding and showing the output log window
  111.     FXButton* m_ShowLogButton;
  112.     FXButton* m_HideLogButton;
  113.     
  114.     // button for saving the output log to a text file
  115.     FXButton* m_SaveLogButton;
  116.     
  117.     // OK button to close the dialog when complete.
  118.     FXButton* m_OkButton;
  119. };
  120.