~efargaspro/+junk/codeblocks-16.01-release

« back to all changes in this revision

Viewing changes to src/plugins/contrib/ThreadSearch/ThreadSearchLoggerBase.h

  • Committer: damienlmoore at gmail
  • Date: 2016-02-02 02:43:22 UTC
  • Revision ID: damienlmoore@gmail.com-20160202024322-yql5qmtbwdyamdwd
Code::BlocksĀ 16.01

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************
 
2
 * Name:      ThreadSearchLoggerBase
 
3
 * Purpose:   ThreadSearchLoggerBase is an interface to the
 
4
 *            different graphical controls that are able to
 
5
 *            manage ThreadSearchEvents received by the view.
 
6
 * Author:    Jerome ANTOINE
 
7
 * Created:   2007-07-28
 
8
 * Copyright: Jerome ANTOINE
 
9
 * License:   GPL
 
10
 **************************************************************/
 
11
 
 
12
#ifndef THREAD_SEARCH_LOGGER_BASE_H
 
13
#define THREAD_SEARCH_LOGGER_BASE_H
 
14
 
 
15
#include "InsertIndexManager.h"
 
16
 
 
17
class wxWindow;
 
18
class wxPanel;
 
19
class wxPoint;
 
20
class wxEvtHandler;
 
21
 
 
22
class ThreadSearch;
 
23
class ThreadSearchView;
 
24
class ThreadSearchEvent;
 
25
class ThreadSearchFindData;
 
26
 
 
27
 
 
28
class ThreadSearchLoggerBase
 
29
{
 
30
public:
 
31
    enum eLoggerTypes
 
32
    {
 
33
        TypeList = 0,
 
34
        TypeTree
 
35
    };
 
36
 
 
37
    /** BuildThreadSearchLoggerBase
 
38
      * Builds a ThreadSearchLoggerList or a ThreadSearchLoggerTree pointer depending on loggerType.
 
39
      * @return ThreadSearchLoggerBase*
 
40
      */
 
41
    static ThreadSearchLoggerBase* BuildThreadSearchLoggerBase(ThreadSearchView& threadSearchView,
 
42
                                                               ThreadSearch&     threadSearchPlugin,
 
43
                                                               eLoggerTypes      loggerType,
 
44
                                                               InsertIndexManager::eFileSorting fileSorting,
 
45
                                                               wxPanel* pParent,
 
46
                                                               long id);
 
47
 
 
48
    /** Destructor. */
 
49
    virtual ~ThreadSearchLoggerBase() {}
 
50
 
 
51
    eLoggerTypes virtual GetLoggerType() = 0;
 
52
 
 
53
    /** Called by ThreadSearchView when new settings are applied. */
 
54
    virtual void Update();
 
55
 
 
56
    /** Called by ThreadSearchView to process a ThreadSearchEvent
 
57
      * sent by worker thread.
 
58
      */
 
59
    virtual void OnThreadSearchEvent(const ThreadSearchEvent& event) = 0;
 
60
 
 
61
    /** Removes all items from logger. */
 
62
    virtual void Clear() = 0;
 
63
 
 
64
    /** Called on search begin to prepare logger. */
 
65
    virtual void OnSearchBegin(const ThreadSearchFindData& findData) = 0;
 
66
 
 
67
    /** Called on search end */
 
68
    virtual void OnSearchEnd() {};
 
69
 
 
70
    /** Returns logger window. */
 
71
    virtual wxWindow* GetWindow() = 0;
 
72
 
 
73
    /** Sets focus on logger window. */
 
74
    virtual void      SetFocus()  = 0;
 
75
 
 
76
protected:
 
77
    /** Constructor. */
 
78
    ThreadSearchLoggerBase(ThreadSearchView& threadSearchView,
 
79
                           ThreadSearch&                    threadSearchPlugin,
 
80
                           InsertIndexManager::eFileSorting fileSorting)
 
81
                           : m_ThreadSearchView  (threadSearchView)
 
82
                           , m_ThreadSearchPlugin(threadSearchPlugin)
 
83
                           , m_IndexManager(fileSorting)
 
84
    {}
 
85
 
 
86
    /** Dynamic events connection. */
 
87
    virtual void ConnectEvents(wxEvtHandler* pEvtHandler) = 0;
 
88
 
 
89
    /** Dynamic events disconnection. */
 
90
    virtual void DisconnectEvents(wxEvtHandler* pEvtHandler) = 0;
 
91
 
 
92
    /** Displays contextual menu. */
 
93
    void ShowMenu(const wxPoint& point);
 
94
 
 
95
    ThreadSearchView& m_ThreadSearchView;
 
96
    ThreadSearch&     m_ThreadSearchPlugin;
 
97
    InsertIndexManager m_IndexManager;
 
98
};
 
99
 
 
100
#endif // THREAD_SEARCH_LOGGER_BASE_H