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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: test_client.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 19:53:39  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef GUI_WIDGETS_WORKSPACE___TEST_CLIENT_HPP
  10. #define GUI_WIDGETS_WORKSPACE___TEST_CLIENT_HPP
  11. /*  $Id: test_client.hpp,v 1000.1 2004/06/01 19:53:39 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:  Andrey Yazhuk
  37.  *
  38.  * File Description:
  39.  *
  40.  */
  41. #include <corelib/ncbistd.hpp>
  42. #include <gui/widgets/workspace/wm_client.hpp>
  43. #include <gui/opengl/glcanvas2d.hpp>
  44. #include <gui/opengl/glpane.hpp>
  45. #include <gui/opengl/glbitmapfont.hpp>
  46. #include <gui/opengl/glhelpers.hpp>
  47. #include <gui/opengl/glcolor.hpp>
  48. #include <gui/utils/command.hpp>
  49. #include <FL/Fl_Box.H>
  50. BEGIN_NCBI_SCOPE
  51. enum    TTestClientCommands {
  52.     eCmdTest = 700,
  53.     eCmdTest1,
  54.     eCmdTest2,
  55.     eCmdTest3
  56. };
  57. ////////////////////////////////////////////////////////////////////////////////
  58. /// CFLTestClient 
  59. /// It can be instantiated to show different behavior depending on type parameter.
  60. /// type = {1, 2, 3}
  61. class NCBI_GUIWIDGETS_WORKSPACE_EXPORT CFLTestClient : public Fl_Box,  
  62.                         public IWMClient,
  63.                         public CCommandTarget
  64. {
  65. public:
  66.     CFLTestClient(int type, const char* slabel);
  67.     virtual ~CFLTestClient();
  68.     virtual int     handle(int event);
  69.     /// @name IWMClient implementation
  70.     /// @{
  71.     virtual string      GetLabel(void)  const;
  72.     virtual const CMenuItem*  GetMenu(void) const  {   return m_MenuRoot;  }
  73.     /// @}
  74.     /// @name Command handling
  75.     /// @{
  76.     DECLARE_CMD_MAP()
  77.     void    OnTest(TCmdID cmd);
  78.     void    OnUpdateTest(ICmdUI* pCmdUI);
  79.     /// @}
  80. protected:
  81.     string  m_Label, m_StateLabel;
  82.     int     m_Type;
  83.     CMenuItem* m_MenuRoot;
  84. };
  85. ////////////////////////////////////////////////////////////////////////////////
  86. /// CFLTestClient 
  87. /// It can be instantiated to show different behavior depending on type parameter.
  88. /// type = {1, 2, 3}
  89. class NCBI_GUIWIDGETS_WORKSPACE_EXPORT CGLTestClient : public CGlCanvas2d, 
  90.                         public IWMClient,
  91.                         public CCommandTarget
  92. {
  93. public:
  94.     CGLTestClient(int type, const char* slabel);
  95.     virtual ~CGLTestClient();
  96.      
  97.     virtual void    draw(void);
  98.     virtual int     handle(int event);
  99.     /// @name IWMClient implementation
  100.     /// @{
  101.     virtual string      GetLabel(void)  const;
  102.     virtual const CMenuItem*  GetMenu(void) const  {   return m_MenuRoot;  }
  103.     /// @}
  104.     /// @name Command handling
  105.     /// @{
  106.     DECLARE_CMD_MAP()
  107.     void    OnTest(TCmdID cmd);
  108.     void    OnUpdateTest(ICmdUI* pCmdUI);
  109.     /// @}
  110. protected:
  111.     string  m_Label, m_StateLabel;
  112.     int     m_Type;
  113.     CMenuItem* m_MenuRoot;
  114.     Fl_Color    m_Color;
  115.     CGlBitmapFont   m_Font;
  116. };
  117. END_NCBI_SCOPE
  118. /*
  119.  * ===========================================================================
  120.  * $Log: test_client.hpp,v $
  121.  * Revision 1000.1  2004/06/01 19:53:39  gouriano
  122.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4
  123.  *
  124.  * Revision 1.4  2004/05/20 13:59:52  dicuccio
  125.  * Added export specifiers
  126.  *
  127.  * Revision 1.3  2004/05/13 17:32:14  yazhuk
  128.  * Extended CGLClient to support command handling
  129.  *
  130.  * Revision 1.2  2004/05/07 14:22:57  yazhuk
  131.  * Extended CLTestClient to implement IWMClient and support command handling
  132.  *
  133.  * Revision 1.1  2004/02/04 19:40:27  yazhuk
  134.  * Initial revision
  135.  *
  136.  * ===========================================================================
  137.  */
  138. #endif  // GUI_WIDGETS_WORKSPACE___TEST_CLIENT_HPP