Hi Selim,
in your TMyRint you have to override the TApplication::ProcessLine()
method. Notice that the signature in 2.23 ofthis method is:
void TApplication::ProcessLine(const Text_t *line, Bool_t sync)
In your case below you don't override the TApplication::ProcessLine().
In ProcessLine() you can do what you like before calling back to
TApplication::ProcessLine() for the final command processing.
There is no need to override HandleTermInput().
Cheers, Fons.
Selim Issever wrote:
>
> Hi all,
>
> I've a compiled a root application and want to process the user input before
> it is send to root for evaluation. I fooled around with TRint but didnt
> succeed really (overloaded some memberfunctions). Could you point me to the
> right direction? To give you a hint, where I am stuck, i'll send the relevant
> part of the code below of what I do.
>
> Rem:
> 1) ProcessLine works from within the code, but not, if I just type in a
> command at the prompt
> 2) HnadleTermInput comes back after each single keystroke,.. I didnt want to
> parse keystrokes,.. this seems a bit too unhandy to me,.. I only want to
> receive the string, after the return key was pressed,..
>
> --- the main file ------------------------------------------------
> [...]
> int Error;
> extern void InitGui();
> VoidFuncPtr_t initFuncs[] = {InitGui, 0};
> TROOT myRoot("Borg","", initFuncs);
> [...]
>
> class TMyRint : public TRint {
> public:
> TMyRint(char* appClassName, int* argc, char** argv);
> void ProcessLine(Text_t* line) {
> cout << "Your input, master: " << line << endl;
> TRint::ProcessLine(line);
> };
> void HandleTermInput() {
> cout << "HTI: " << Argc() <<endl;
> cout << "HTI: " << GetIdleCommand() <<endl;
> TRint::HandleTermInput();
> }
> };
> TMyRint::TMyRint(char* appClassName, int* argc, char** argv) :
> TRint(appClassName, argc, argv) {}
>
> //---------------------------------------------------------
> int main(int argc, char *argv[]) {
> int noArgsForRint = 1;
> TMyRint myRint("app", &noArgsForRint, argv);
> myRint.Run();
> return 0;
> }
>
> ==============================================================
>
> Thanks a lot for your time!
> Best Wishes
> Selim
>
> --
> Selim Issever | Tel: 040 8998-2843 +- Talk sense to a fool and he --
> DESY-F15 | Fax: 040 8998-4033 +- calls you foolish. -----------
> Notkestr. 85 | selim.issever@desy.de +-------------- Euripides ------
> 22603 Hamburg/Germany | http://www.physik.uni-dortmund.de/~issevers
--
Org: CERN, European Laboratory for Particle Physics.
Mail: 1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248
WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7677910
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:42 MET