fltk_timer.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:4k
- /*
- * ===========================================================================
- * PRODUCTION $Log: fltk_timer.hpp,v $
- * PRODUCTION Revision 1000.0 2004/06/01 19:56:27 gouriano
- * PRODUCTION PRODUCTION: IMPORTED [GCC34_MSVC7] Dev-tree R1.3
- * PRODUCTION
- * ===========================================================================
- */
- #ifndef GUI_WIDGETS_FL___FLTK_TIMER__HPP
- #define GUI_WIDGETS_FL___FLTK_TIMER__HPP
- /* $Id: fltk_timer.hpp,v 1000.0 2004/06/01 19:56:27 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: Andrey Yazhuk
- *
- */
- #include <corelib/ncbistd.hpp>
- /** @addtogroup GUI_FltkWidgets
- *
- * @{
- */
- BEGIN_NCBI_SCOPE
- ///////////////////////////////////////////////////////////////////////////////
- /// ITimerListener
- class ITimerListener {
- public:
- // it is not supposed to be deleted, so there is no destructor
- virtual void OnTimeout(int timer_id) = 0;
- };
- ///////////////////////////////////////////////////////////////////////////////
- /// CFLTKTimer - is a wrapper around FLTK "timeout" API.
- class NCBI_GUIWIDGETS_FL_EXPORT CFLTKTimer
- {
- public:
- typedef void (*FOnTimeout)(int timer_id);
- CFLTKTimer();
- CFLTKTimer(int id, double period, bool repeat, ITimerListener* listener);
- ~CFLTKTimer();
- void Init(int id, double period, bool repeat, ITimerListener* listener);
- void SetListener(ITimerListener* listener);
- void Start();
- void StartOnce();
- void Stop();
- void ReStart();
- bool IsRunning();
- protected:
- static void x_OnTimeout(void* timer);
- int m_ID; /// timer ID, id is passed to ITimerListener::OnTimeout()
- double m_Period; /// peroid of time in seconds betwen OnTimeout invocations
- bool m_Repeat; /// if "true" timer will invoke OnTimeout() multiple times
- bool m_Running; /// "true" if timer is active
-
- ITimerListener* m_Listener;
- };
- END_NCBI_SCOPE
- /* @} */
- /*
- * ===========================================================================
- * $Log: fltk_timer.hpp,v $
- * Revision 1000.0 2004/06/01 19:56:27 gouriano
- * PRODUCTION: IMPORTED [GCC34_MSVC7] Dev-tree R1.3
- *
- * Revision 1.3 2004/05/11 18:55:14 dicuccio
- * Added doxygen modules info
- *
- * Revision 1.2 2004/05/07 22:10:37 gorelenk
- * Added missed export spec.
- *
- * Revision 1.1 2004/05/03 19:42:51 yazhuk
- * Initial revision
- *
- * ===========================================================================
- */
- #endif // GUI_WIDGETS_FL___FLTK_TIMER__HPP