print_dlg.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: print_dlg.cpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 21:04:01  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.10
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: print_dlg.cpp,v 1000.1 2004/06/01 21:04:01 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software / database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software / database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * Authors:  Peter Meric
  35.  *
  36.  * File Description:
  37.  *   CPrintDlg - Print options dialog
  38.  *
  39.  */
  40. #include <ncbi_pch.hpp>
  41. #include <gui/print/print_dlg.hpp>
  42. #include <gui/utils/message_box.hpp>
  43. #include <FL/Fl_File_Chooser.H>
  44. #include "print_options_dlg.hpp"
  45. BEGIN_NCBI_SCOPE
  46. #include "print_dlg_.cpp"
  47. CPrintDlg::CPrintDlg()
  48. {
  49.     m_Window.reset(x_Create());
  50.     Init();
  51. }
  52. CPrintDlg::CPrintDlg(const CPrintOptions& options)
  53. {
  54.     m_Window.reset(x_Create());
  55.     m_Options = options;
  56.     Init();
  57. }
  58. void CPrintDlg::Init(void)
  59. {
  60.     //
  61.     // initialise fields
  62.     //
  63.     m_Postscript->argument(CPrintOptions::ePostscript);
  64.     m_Pdf->argument(CPrintOptions::ePdf);
  65.     m_Svg->argument(CPrintOptions::eSvg);
  66.     if (m_Options.GetPrintOutput()) {
  67.         m_LocationPrint->setonly();
  68.     } else {
  69.         m_LocationFile->setonly();
  70.         m_Filename->value(m_Options.GetFilename().c_str());
  71.     }
  72. }
  73. void CPrintDlg::x_OnBrowse(void)
  74. {
  75.     const char* fname = fl_file_chooser("Save Print Output As?", "*", 0);
  76.     if (fname  &&  *fname) {
  77.         m_Filename->value(fname);
  78.     }
  79. }
  80. void CPrintDlg::x_OnOK()
  81. {
  82.     const string fname(m_Filename->value());
  83.     if (fname.length() == 0) {
  84.         const string mesg("Output filename must be supplied");
  85.         NcbiMessageBox(mesg);
  86.         return;
  87.     }
  88.     x_UpdateOptions();
  89.     CDialog::x_OnOK();
  90. }
  91. void CPrintDlg::x_OnSelectPrint(void)
  92. {
  93.     m_Filename->deactivate();
  94. }
  95. void CPrintDlg::x_OnSelectFile(void)
  96. {
  97.     m_Filename->activate();
  98. }
  99. void CPrintDlg::x_OnOptions(void)
  100. {
  101.     CPrintOptionsDlg dlg(m_Options);
  102.     if (dlg.ShowModal() == eOK) {
  103.         m_Options = dlg.GetOptions();
  104.     }
  105. }
  106. void CPrintDlg::x_UpdateOptions(void)
  107. {
  108.     if (m_LocationFile->value() == 1) {
  109.         m_Options.SetFilename(m_Filename->value());
  110.     } else {
  111.         m_Options.SetPrintOutput(true);
  112.     }
  113.     m_Options.SetOutputFormat
  114.         (static_cast<CPrintOptions::EOutputFormat>
  115.          (m_Format->mvalue()->argument()));
  116. }
  117. const CPrintOptions& CPrintDlg::GetOptions(void) const
  118. {
  119.     return m_Options;
  120. }
  121. END_NCBI_SCOPE
  122. /*
  123.  * ===========================================================================
  124.  * $Log: print_dlg.cpp,v $
  125.  * Revision 1000.1  2004/06/01 21:04:01  gouriano
  126.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.10
  127.  *
  128.  * Revision 1.10  2004/05/21 22:27:50  gorelenk
  129.  * Added PCH ncbi_pch.hpp
  130.  *
  131.  * Revision 1.9  2003/09/29 15:46:36  dicuccio
  132.  * Inherit dialogs from CDialog
  133.  *
  134.  * Revision 1.8  2003/08/15 17:02:16  meric
  135.  * Updates include paths for print-related files from gui/utils to gui/print
  136.  *
  137.  * Revision 1.7  2003/07/15 19:10:31  meric
  138.  * Removed raster output formats
  139.  *
  140.  * Revision 1.6  2003/06/19 00:58:30  dicuccio
  141.  * Minor reformatting.  Use explicit return value comapre (== eOK) for
  142.  * CPrintOptionsDlg::Show().  Added missing call to Init() in default ctor
  143.  *
  144.  * Revision 1.5  2003/06/17 19:54:40  meric
  145.  * Added direct printing support (via PDF)
  146.  *
  147.  * Revision 1.4  2003/06/17 19:46:53  dicuccio
  148.  * Fixed storage of integer type in widget - use argument() instead of user_data()
  149.  *
  150.  * Revision 1.3  2003/06/16 21:36:09  meric
  151.  * Fixed c'tor to set m_MainWin using return value of x_Create()
  152.  *
  153.  * Revision 1.2  2003/06/16 21:22:34  meric
  154.  * Added "launch viewer" check box
  155.  *
  156.  * Revision 1.1  2003/06/16 16:01:38  dicuccio
  157.  * Moved generic print code code from opengl/print to utils.
  158.  *
  159.  * Revision 1.2  2003/06/16 12:44:52  dicuccio
  160.  * Clean-up after initial commit
  161.  *
  162.  * Revision 1.1  2003 / 06 / 13 18:13:56  meric
  163.  * Initial version
  164.  *
  165.  *
  166.  * ===========================================================================
  167.  */