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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: gbench.hpp,v $
  4.  * PRODUCTION Revision 1000.3  2004/06/01 20:48:11  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.19
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef GUI_GBENCH___GBENCH__HPP
  10. #define GUI_GBENCH___GBENCH__HPP
  11. /*  $Id: gbench.hpp,v 1000.3 2004/06/01 20:48:11 gouriano Exp $
  12.  * ===========================================================================
  13.  *
  14.  *                            PUBLIC DOMAIN NOTICE
  15.  *               National Center for Biotechnology Information
  16.  *
  17.  *  This software/database is a "United States Government Work" under the
  18.  *  terms of the United States Copyright Act.  It was written as part of
  19.  *  the author's official duties as a United States Government employee and
  20.  *  thus cannot be copyrighted.  This software/database is freely available
  21.  *  to the public for use. The National Library of Medicine and the U.S.
  22.  *  Government have not placed any restriction on its use or reproduction.
  23.  *
  24.  *  Although all reasonable efforts have been taken to ensure the accuracy
  25.  *  and reliability of the software and data, the NLM and the U.S.
  26.  *  Government do not and cannot warrant the performance or results that
  27.  *  may be obtained by using this software or data. The NLM and the U.S.
  28.  *  Government disclaim all warranties, express or implied, including
  29.  *  warranties of performance, merchantability or fitness for any particular
  30.  *  purpose.
  31.  *
  32.  *  Please cite the author in any work or product based on this material.
  33.  *
  34.  * ===========================================================================
  35.  *
  36.  * Authors:  Mike DiCuccio
  37.  *
  38.  * File Description:
  39.  *    CGBenchApp -- main application class for GBENCH
  40.  */
  41. #include <corelib/ncbiapp.hpp>
  42. #include <serial/object.hpp>
  43. #include <gui/plugin/PluginMessage.hpp>
  44. #include <gui/widgets/fl/resource_manager.hpp>
  45. BEGIN_NCBI_SCOPE
  46. USING_SCOPE(objects);
  47. class CAboutDlg;
  48. class CMainWindow;
  49. class CDiagConsole;
  50. class CDispatcher;
  51. class CGBenchApp : public CNcbiApplication
  52. {
  53. public:
  54.     // default ctor
  55.     CGBenchApp(void);
  56.     // menu commands
  57.     void OnHelpAbout(void);
  58.     void OnHelpIndex(void);
  59.     // process a single message from the message queue
  60.     void ProcessMessage(void);
  61.     // raise the main application window to the foreground
  62.     static void Raise();
  63. private:
  64.     // our GUI components
  65.     CMainWindow*        m_MainWin;
  66.     auto_ptr<CAboutDlg> m_AboutDlg;
  67.     // application-wide resource manager
  68.     CRef<CResourceManager> m_ResourceMgr;
  69.     void    Init(void);
  70.     int     Run (void);
  71.     void    Exit(void);
  72.     // Load our config file.
  73.     // override inherited since we want to look a few different places
  74.     // for the config file and use our own default name.
  75.     virtual bool LoadConfig(CNcbiRegistry& reg, const string* conf);
  76.     // Load plugins in a given path specification.
  77.     // The path specification is a ':' separated list of directories.
  78.     // There are two 'special' directories:
  79.     //  <std>    - refers to the application installation directory;
  80.     //             if not found, use environment variable $NCBI_NGW_HOME.
  81.     //  <home>   - refers to user's private plugin cache, located in
  82.     //             $HOME/.ngw/plugins.
  83.     void    x_LoadPlugins(const string& path);
  84.     // access our resource manager
  85.     CResourceManager& x_GetResourceMgr();
  86. };
  87. END_NCBI_SCOPE
  88. #endif  // GUI_GBENCH___GBENCH__HPP
  89. /*
  90.  * ===========================================================================
  91.  * $Log: gbench.hpp,v $
  92.  * Revision 1000.3  2004/06/01 20:48:11  gouriano
  93.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.19
  94.  *
  95.  * Revision 1.19  2004/05/17 13:25:32  dicuccio
  96.  * First implementation of new document workspace
  97.  *
  98.  * Revision 1.18  2004/04/12 18:14:09  dicuccio
  99.  * Added Raise() prototype to raise the application to the foreground
  100.  *
  101.  * Revision 1.17  2003/11/04 17:21:17  dicuccio
  102.  * Removed dispatcher - now part of message queue.  Tweaked argument processing -
  103.  * call Fl::args early
  104.  *
  105.  * Revision 1.16  2003/10/27 17:40:38  dicuccio
  106.  * Restructured diagnostic handler - use CDiagPanel
  107.  *
  108.  * Revision 1.15  2003/09/29 15:43:01  dicuccio
  109.  * Deprecated gui/scope.hpp.  Merged gui/core/types.hpp into gui/types.hpp
  110.  *
  111.  * Revision 1.14  2003/08/06 13:24:31  dicuccio
  112.  * Deprecated old main window; introduced new, compact window for multiple
  113.  * document management
  114.  *
  115.  * Revision 1.13  2003/07/31 16:58:42  dicuccio
  116.  * Message queue / dispatcher clean-ups.  Added idle function processing for
  117.  * plugin message queue handling
  118.  *
  119.  * Revision 1.12  2003/07/30 12:20:52  dicuccio
  120.  * Cleaned up CGBenchApp
  121.  *
  122.  * Revision 1.11  2003/07/14 11:21:45  shomrat
  123.  * Plugin messageing system related changes
  124.  *
  125.  * Revision 1.10  2003/06/26 18:53:38  rsmith
  126.  * replace x_LoadConfigFile with overloading LoadConfig
  127.  *
  128.  * Revision 1.9  2003/04/16 11:41:59  dicuccio
  129.  * Changed main windows - store as pointer, CRef<> held in CDocManager
  130.  *
  131.  * Revision 1.8  2003/03/31 13:38:42  dicuccio
  132.  * General clean-up; changed standard start-up messages.  Added new main window
  133.  *
  134.  * Revision 1.7  2003/02/26 19:22:36  dicuccio
  135.  * Promoted x_ResolvePath() to a public function (ResolvePath()).
  136.  *
  137.  * Revision 1.6  2003/01/13 13:10:10  dicuccio
  138.  * Namespace clean-up.  Retired namespace gui -> converted all to namespace ncbi.
  139.  * Moved all FLUID-generated code into namespace ncbi.
  140.  *
  141.  * Revision 1.5  2002/11/29 16:35:43  dicuccio
  142.  * Reformatted tabs -> spaces.  Added standard boilerplate for winmain.cpp
  143.  *
  144.  * Revision 1.4  2002/11/29 16:12:30  dicuccio
  145.  * Wrapped Run() in a try/catch block.  Added central path resolution function
  146.  * to hide platform-specifics of resolving 'standar' file locations
  147.  *
  148.  * Revision 1.3  2002/11/29 15:37:27  dicuccio
  149.  * Major interface change.  Removed the original three panels in favor of a
  150.  * single, integrated main application window.
  151.  *
  152.  * Revision 1.2  2002/11/25 21:00:08  dicuccio
  153.  * Removed old data loader mechanism in favor of plugins.
  154.  *
  155.  * Revision 1.1  2002/11/06 18:23:47  dicuccio
  156.  * Initial revision
  157.  *
  158.  * ===========================================================================
  159.  */