demo_workspace.cpp

来自「ncbi源码」· C++ 代码 · 共 211 行

CPP
211
字号
/* * =========================================================================== * PRODUCTION $Log: demo_workspace.cpp,v $ * PRODUCTION Revision 1000.1  2004/06/01 21:15:04  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.3 * PRODUCTION * =========================================================================== *//*  $Id: demo_workspace.cpp,v 1000.1 2004/06/01 21:15:04 gouriano Exp $ * =========================================================================== * *                            PUBLIC DOMAIN NOTICE *               National Center for Biotechnology Information * *  This software/database is a "United States Government Work" under the *  terms of the United States Copyright Act.  It was written as part of *  the author's official duties as a United States Government employee and *  thus cannot be copyrighted.  This software/database is freely available *  to the public for use. The National Library of Medicine and the U.S. *  Government have not placed any restriction on its use or reproduction. * *  Although all reasonable efforts have been taken to ensure the accuracy *  and reliability of the software and data, the NLM and the U.S. *  Government do not and cannot warrant the performance or results that *  may be obtained by using this software or data. The NLM and the U.S. *  Government disclaim all warranties, express or implied, including *  warranties of performance, merchantability or fitness for any particular *  purpose. * *  Please cite the author in any work or product based on this material. * * =========================================================================== * * Authors:  Mike DiCuccio, Andrey Yazhuk * * File Description: *    Test application for demonstartion of Workspace and Window Manager */#include <ncbi_pch.hpp>#include <corelib/ncbiapp.hpp>#include <corelib/ncbienv.hpp>#include <corelib/ncbiargs.hpp>#include <gui/widgets/workspace/frame_window.hpp>#include <gui/widgets/workspace/workspace.hpp>#include <gui/widgets/workspace/test_client.hpp>#include <FL/Fl_Group.H>USING_NCBI_SCOPE;enum EWSDemoCommands   {    eCmdExit = 10000,};///////////////////////////////////////////////////////////////////////////////  CWorkspaceApp::class CWorkspaceApp :   public CNcbiApplication,                        public CCommandTarget{private:    virtual void Init(void);    virtual int  Run(void);    virtual void Exit(void);    void    x_Create();    void    x_Destroy();        DECLARE_CMD_MAP()    void    OnExit();private:    CFrameWindow    *m_Frame;    CWorkspace*      m_Workspace;};void CWorkspaceApp::Init(void){    // Create command-line argument descriptions class    auto_ptr<CArgDescriptions> arg_desc(new CArgDescriptions);    // Specify USAGE context    arg_desc->SetUsageContext(GetArguments().GetProgramBasename(),                              "Workspace Demo");    arg_desc->AddFlag("plastic", "Use the plastic scheme");    // Setup arg.descriptions for this application    SetupArgDescriptions(arg_desc.release());}///////////////////////////////////////////////////////////////////////////////  Run test (printout arguments obtained from command-line)int CWorkspaceApp::Run(void){    //Fl::scheme("plastic");    // Get arguments    CArgs args = GetArgs();    if (args["plastic"]) {        Fl::scheme("plastic");    }    x_Create();    m_Frame->show();    while (m_Frame->shown()) {        Fl::wait();    }    x_Destroy();    return 0;}///////////////////////////////////////////////////////////////////////////////  Cleanupvoid CWorkspaceApp::Exit(void){    SetDiagStream(0);}///////////////////////////////////////////////////////////////////////////////  MAINint main(int argc, const char* argv[]){    // Execute main application function    return CWorkspaceApp().AppMain(argc, argv, 0, eDS_Default, 0);}///////////////////////////////////////////////////////////////////////////////  Application logic/// Here we define static part of top-level menu. It contains empty submenus that/// will be later used as merge points for clientsDEFINE_MENU(BaseMenu)    SUBMENU("File")        MENU_ITEM(eCmdExit, "Exit")    END_SUBMENU()    END_MENU()BEGIN_CMD_MAP(CWorkspaceApp, CCommandTarget)    ON_COMMAND(eCmdExit, &CWorkspaceApp::OnExit)END_CMD_MAP()void    CWorkspaceApp::x_Create(){    // initilize Resource Manager and Menu     CRef<CResourceManager> rm(new CResourceManager("e:\\Projects\\Graphics\\"));    CMenu::SetResourceManager(rm);        m_Frame = new CFrameWindow(800, 600, "");        m_Frame->end();    m_Workspace = new CWorkspace(0, 0, 800, 600);    m_Frame->SetClient(m_Workspace);    /// create backbone of top-level menu    CMenuItem* root = CreateMenuItems(BaseMenu);    m_Frame->ResetMenu(*root);       delete root;        /// add Client and merge client menus    //###    m_Frame->AddChildCmdTarget(this); // let application process commands}void    CWorkspaceApp::x_Destroy(){    m_Frame->SetClient(NULL);    delete m_Workspace;    delete m_Frame;}void CWorkspaceApp::OnExit(){    m_Frame->hide();}/* * =========================================================================== * $Log: demo_workspace.cpp,v $ * Revision 1000.1  2004/06/01 21:15:04  gouriano * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.3 * * Revision 1.3  2004/05/21 22:27:56  gorelenk * Added PCH ncbi_pch.hpp * * Revision 1.2  2004/05/07 14:28:52  yazhuk * Completely redesigned * * Revision 1.1  2004/02/04 19:57:15  yazhuk * Initial revision * * =========================================================================== */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?