OpendTect  6.3
cmdrecorder.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Jaap Glas
8  Date: March 2009
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uicmddrivermod.h"
14 #include "callback.h"
15 #include "separstr.h"
16 #include "od_ostream.h"
17 
18 #include "cmddriverbasics.h"
19 
20 class uiMenu;
21 class StreamData;
22 class uiMainWin;
23 class uiAction;
24 
25 
26 namespace CmdDrive
27 {
28 
29 #define mRecOutStrm \
30  if ( !rec_.mustSkip() ) rec_.outputStrm()
31 
32 
33 mExpClass(uiCmdDriver) CmdRecEvent
34 {
35 public:
37  : begin_(true), refnr_(0) , srcwin_(0)
38  , openqdlg_(false), stolen_(false)
39  , object_(0), similarobjs_(true), mnuitm_(0)
40  , dynamicpopup_(false), casedep_(false)
41  , nraccepts_(0)
42  {}
43 
45  bool begin_;
46  int refnr_;
48 
50  bool openqdlg_;
52  bool stolen_;
53 
57  uiAction* mnuitm_;
60  bool casedep_;
62 
64 };
65 
66 
67 class CmdComposer;
68 
69 mExpClass(uiCmdDriver) CmdRecorder : public CallBacker
70 {
71 public:
72  friend class CmdComposer;
73 
74  CmdRecorder(const uiMainWin& applwin);
75  ~CmdRecorder();
76 
77  void setOutputFile(const char* fnm) { outputfnm_ = fnm; }
78  void setBufferSize(int sz) { bufsize_ = sz; }
79  void writeTailOnly(bool yn) { writetailonly_ = yn; }
80  void ignoreCmdDriverWindows(bool);
81 
82  od_ostream& outputStrm() const;
83  bool mustSkip() const;
84 
85  bool start();
86  void stop(bool fatal=false);
87 
88  bool isRecording() const { return recording_; }
89 
90  void updateCmdComposers();
91 
92 protected:
93 
94  void handleEvent(CallBacker*);
95  void dynamicMenuInterceptor(CallBacker*);
96 
97  void insertWinAssertion(const CmdRecEvent&);
98  bool findKeyString(const uiMainWin&,CmdRecEvent&);
99 
100  void flush();
101 
102  const uiMainWin* applWin() const { return applwin_; }
104 
112 
115 
118 
119  const CallBacker* lastobjsearched_;
121 
123 
127  int bufsize_;
129  mutable int outputcounter_;
130 };
131 
132 
133 }; // namespace CmdDrive
TypeSet< int > popuprefnrs_
Definition: cmdrecorder.h:114
#define mExpClass(module)
Definition: commondefs.h:157
User interface main window.
Definition: uimainwin.h:34
int nraccepts_
Definition: cmdrecorder.h:63
const uiMainWin * srcwin_
Definition: cmdrecorder.h:49
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
OD class for stream write common access to the user log file, or std::cout in batch progs...
Definition: od_ostream.h:25
CmdRecorder & rec_
Definition: cmdrecorder.h:105
BufferString bufstr_
Definition: cmdrecorder.h:126
bool openqdlg_
Definition: cmdrecorder.h:50
Command Drive
Definition: canvascommands.h:20
uiMenu * dynamicpopupmenu_
Definition: cmdrecorder.h:109
bool begin_
Definition: cmdrecorder.h:45
BufferString keystr_
Definition: cmdrecorder.h:56
int nrparskipped_
Definition: cmdrecorder.h:128
int outputcounter_
Definition: cmdrecorder.h:129
uiAction * mnuitm_
Definition: cmdrecorder.h:57
BufferString idstr_
Definition: cmdrecorder.h:44
void writeTailOnly(bool yn)
Definition: cmdrecorder.h:79
bool similarobjs_
Definition: cmdrecorder.h:55
Definition: cmdrecorder.h:69
void setOutputFile(const char *fnm)
Definition: cmdrecorder.h:77
od_ostrstream & bufstream_
Definition: cmdrecorder.h:125
bool openqdialog_
Definition: cmdrecorder.h:116
bool stolen_
Definition: cmdrecorder.h:52
OD class for stream write into string.
Definition: od_strstream.h:34
bool writetailonly_
Definition: cmdrecorder.h:124
Definition: cmdrecorder.h:33
ObjectSet< const uiMainWin > lastobjfreewins_
Definition: cmdrecorder.h:120
void setBufferSize(int sz)
Definition: cmdrecorder.h:78
Holds data to use and close an iostream.
Definition: strmdata.h:29
BufferString winassertion_
Definition: cmdrecorder.h:110
bool winassertcasedep_
Definition: cmdrecorder.h:111
Definition: cmdcomposer.h:50
Definition: uimenu.h:64
bool casedep_
Definition: cmdrecorder.h:60
const uiMainWin * applWin() const
Definition: cmdrecorder.h:102
bool recording_
Definition: cmdrecorder.h:106
WindowStack winstack_
Definition: cmdrecorder.h:113
int refnr_
Definition: cmdrecorder.h:46
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
BufferString outputfnm_
Definition: cmdrecorder.h:107
CmdRecEvent()
Definition: cmdrecorder.h:36
BufferString msg_
Definition: cmdrecorder.h:47
bool dynamicpopup_
Definition: cmdrecorder.h:58
int bufsize_
Definition: cmdrecorder.h:127
const uiMainWin * applwin_
Definition: cmdrecorder.h:103
Definition: cmddriverbasics.h:177
const CallBacker * lastobjsearched_
Definition: cmdrecorder.h:119
BufferString qdlgtitle_
Definition: cmdrecorder.h:51
bool ignorecmddriverwindows_
Definition: cmdrecorder.h:117
BufferString menupath_
Definition: cmdrecorder.h:59
od_ostream & outputstrm_
Definition: cmdrecorder.h:108
BufferString execprefix_
Definition: cmdrecorder.h:61
CallBacker * object_
Definition: cmdrecorder.h:54
ObjectSet< CmdComposer > composers_
Definition: cmdrecorder.h:122
bool isRecording() const
Definition: cmdrecorder.h:88

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017