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

DVD

开发平台:

Visual C++

  1. /* This is the class definition for the New Disc 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. #include <fx.h>
  65. #include "FreeBurn.h"
  66. #include "FreeburnNewDiscDialog.h"
  67. #include "FreeburnDefs.h"
  68. #include "FreeburnNewDiscDialogText.h"
  69. FXIMPLEMENT(CFreeburnNewDiscDialog,FXDialogBox,NULL,0)
  70. // Construct new disc dialog box
  71. CFreeburnNewDiscDialog::CFreeburnNewDiscDialog(FXWindow* owner, FXDataTarget* sizeTypeTarget, FXDataTarget* discTypeTarget):
  72.   FXDialogBox(owner,fbNewDiscDialogTitleText,DECOR_TITLE|DECOR_BORDER, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4)
  73. {
  74.     // set up the main container for the dialog
  75.     FXVerticalFrame* newDiscFrame = new FXVerticalFrame(this, LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y);
  76.     
  77.     // add the title label
  78.     new FXLabel(newDiscFrame, fbNewDiscDialogTitleLabelText, NULL, LAYOUT_LEFT);
  79.     
  80.     // add a horizontal ridge separator
  81.     new FXHorizontalSeparator(newDiscFrame, SEPARATOR_RIDGE|LAYOUT_FILL_X);
  82.     // add a horizontal frame for the disc selection types
  83.     FXHorizontalFrame* discSelectorFrame = new FXHorizontalFrame(newDiscFrame, LAYOUT_FILL_X|LAYOUT_FILL_Y);
  84.     
  85.     // the vertical frame containing the size type selector
  86.     FXVerticalFrame* discSizeFrame = new FXVerticalFrame(discSelectorFrame, LAYOUT_FILL_X|LAYOUT_FILL_Y);
  87.     // add the label describing the disc size type options
  88.     new FXLabel(discSizeFrame, fbNewDiscDialogSizeTypeLabelText, NULL, LAYOUT_LEFT);
  89.     
  90.     // add a option menu to specify the disc size type
  91.     discSizePopup = new FXPopup(this);
  92.     new FXOption(discSizePopup, fbNewDiscDialog74650Text, NULL, sizeTypeTarget, FXDataTarget::ID_OPTION+_74_650_DISC,
  93.         JUSTIFY_HZ_APART|ICON_AFTER_TEXT);
  94.     new FXOption(discSizePopup, fbNewDiscDialog80700Text, NULL, sizeTypeTarget, FXDataTarget::ID_OPTION+_80_700_DISC,
  95.         JUSTIFY_HZ_APART|ICON_AFTER_TEXT);
  96.     FXOptionMenu* discOptions = new FXOptionMenu(discSizeFrame, discSizePopup, 
  97.         LAYOUT_TOP|FRAME_RAISED|FRAME_THICK|JUSTIFY_HZ_APART|ICON_AFTER_TEXT);
  98.     discOptions->setTarget(sizeTypeTarget);
  99.     discOptions->setSelector(FXDataTarget::ID_VALUE);
  100.     
  101.     // add the vertical frame containing the disc type selector
  102.     FXVerticalFrame* discTypeFrame = new FXVerticalFrame(discSelectorFrame, LAYOUT_FILL_X|LAYOUT_FILL_Y);
  103.     // add the label describing the disc size type options
  104.     new FXLabel(discTypeFrame, fbNewDiscDialogDiscTypeLabelText, NULL, LAYOUT_LEFT);
  105.     
  106.     // add a option menu to specify the disc size type
  107.     discTypePopup = new FXPopup(this);
  108.     new FXOption(discTypePopup, fbNewDiscDialogAudioTypeText, NULL, discTypeTarget, 
  109.         FXDataTarget::ID_OPTION+CD_DA, JUSTIFY_HZ_APART|ICON_AFTER_TEXT);
  110.     new FXOption(discTypePopup, fbNewDiscDialogDataTypeText,  NULL, discTypeTarget, 
  111.         FXDataTarget::ID_OPTION+CD_ROM, JUSTIFY_HZ_APART|ICON_AFTER_TEXT);
  112.     new FXOption(discTypePopup, fbNewDiscDialogXATypeText,    NULL, discTypeTarget, 
  113.         FXDataTarget::ID_OPTION+CDROM_XA, JUSTIFY_HZ_APART|ICON_AFTER_TEXT);
  114.     FXOptionMenu* typeOptions = new FXOptionMenu(discTypeFrame, discTypePopup, 
  115.         LAYOUT_TOP|FRAME_RAISED|FRAME_THICK|JUSTIFY_HZ_APART|ICON_AFTER_TEXT);
  116.     typeOptions->setTarget(discTypeTarget);
  117.     typeOptions->setSelector(FXDataTarget::ID_VALUE);
  118.     // set up the buttons for canceling or accepting changes
  119.     new FXHorizontalSeparator(newDiscFrame, SEPARATOR_GROOVE|LAYOUT_FILL_X);
  120.     FXHorizontalFrame* buttonFrame = new FXHorizontalFrame(newDiscFrame, LAYOUT_BOTTOM|LAYOUT_FILL_X|PACK_UNIFORM_WIDTH);
  121.     new FXButton(buttonFrame, fbNewDiscDialogOkButtonText,     NULL, this, FXDialogBox::ID_ACCEPT,
  122.         BUTTON_DEFAULT|LAYOUT_RIGHT|FRAME_RAISED|FRAME_THICK, 0, 0, 0, 0, 20, 20);
  123.     new FXButton(buttonFrame, fbNewDiscDialogCancelButtonText, NULL, this, FXDialogBox::ID_CANCEL,
  124.         LAYOUT_RIGHT|FRAME_RAISED|FRAME_THICK,                0, 0, 0, 0, 20, 20);  
  125. }
  126. // Clean up 
  127. CFreeburnNewDiscDialog::~CFreeburnNewDiscDialog()
  128. {
  129.     // delete the popup menus
  130.     delete discSizePopup;
  131.     delete discTypePopup;
  132. }