On Mon, 10 Jan 2000 19:03:28 -0500, Valeri Fine (Faine) wrote:
> This lower-lever method:
>
> virtual Int_t TVirtualX::RequestString(Int_t x, Int_t y, char *text);
>
> allow you to display and change any text on your screen:
>
>--------- Cut here ------------
>{
> #include "iostream.h"
> new TCanvas("cc");
> char label[100] = " label to display ";
> cout << label << endl;
> gVirtualX->RequestString(10, 20, label);
> cout << label << endl;
>}
>--------- Cut here ------------
Thank you, Valeri, for the suggestion. The RequestString() works in the
macro above, but I have not made it work yet in my program... the string is
displayed on the canvas, but I cannot edit it and the canvas thread appears
to be locked up. I call the RequestString() method from within
ExecuteEvent() method of my class. I suspect the lockup is caused by a loss
of keyboard focus. When all else fails there's always the console for user
i/o... sigh.
>
>May be to get the several lines you should combine the method above with
>TVirtualX::DrawText(); or with TText
>
> I mean first you should draw all lines of the text you want to be present and then
> call "RequestString()" in respect of the current cursor position to change the
> line your cursor is nearby. (somewhere within TObject::ExecuteEvent() method
> of your class)
>
> May be it is not too elegant but may solve your problem. I believe the code you will
> write will be not bigger that with any MFC / Motif and Co.
>
> The better solution would be to call gVirtualX->RequestString() by TText::ExecuteEvent
> responding on "left - mouse click". (TPaveLabel::ExecuteEvent() etc )
>
> This way the end-user code will need no extra trick at all. May be ROOT team can provide
> this.
>
This would be nice, but aren't the new classes Rene spoke of coming to
WinNT?
> Valery
>
Thank you for your input,
/Mariusz
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:16 MET