Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to display a message to the user from script-fu
#1
I have a very basic question.

in the script-fu console writing


Code:
(gimp-message "Hello World")


and pressing return gives me this


Code:
> (gimp-message "Hello World")

(#t)


in the output box of the console. And this is it.

Shouldn't I get some dialog pop up or something? If not how else can one do this?
Reply
#2
(12-03-2022, 08:33 PM)flauapaua Wrote: Shouldn't I get some dialog pop up or something? If not how else can one do this?

I suspect that you are getting "Hello World" displayed in the status line at the bottom of the main GIMP window.

If you type (gimp-message "Hello World\n more text") you should get a message box pop up (the \n causes a new line)

At some point in the recent (I think) past GIMP changed so that only multi-line messages are shown in a pop-up dialog box; single lines are just shown in the status bar.

I add a new line into all such messages so that they appear as pop-ups and are not overlooked by the user - as is seemingly demonstrated here :-)
Reply
#3
AFAIK the default is that if you have the console dialog, messages go to the console. But you can use (gimp-message-set-handler handler) to set the output to a dialog, the Gimp console, or what seems to be the StdErr of the Gimp process (useful is you started Gimp from a terminal).
Reply
#4
(12-04-2022, 01:52 PM)programmer_ceds Wrote:
(12-03-2022, 08:33 PM)flauapaua Wrote: Shouldn't I get some dialog pop up or something? If not how else can one do this?

I suspect that you are getting "Hello World" displayed in the status line at the bottom of the main GIMP window.

If you type (gimp-message "Hello World\n more text") you should get a message box pop up (the \n causes a new line)

That's exactly how it is.
Thanks.

(12-04-2022, 08:34 PM)Ofnuts Wrote: AFAIK the default is that if you have the console dialog, messages go to the console. But you can use (gimp-message-set-handler handler) to set the output to a dialog, the Gimp console, or what seems to be the StdErr of the Gimp process (useful is you started Gimp from a terminal).
I don't know how to do this

Code:
(gimp-message-set-handler 0) (gimp-message "Hello World")

gives me

Code:
> (gimp-message-set-handler 0) (gimp-message "Hello World")
(#t)(#t)
but "Hello World" still goes to the status line.
Reply
#5
Today it ceased working for no reason I know off. If I copy

Code:
(gimp-message "Hello World\n more text")
into the console and press return, the main window of GIMP comes to the foreground and this is it.
Reply
#6
With this code:

Code:
pdb.gimp_message_set_handler(MESSAGE_BOX)
pdb.gimp_message("Hello in status bar") # Single line, goes to status bar
pdb.gimp_message("Hello\nin dialog")    # Multi-line, goes to dialog
pdb.gimp_message("Hello in dialog again") # Single line, goes to dialog which is out
pdb.gimp_message_set_handler(ERROR_CONSOLE)
pdb.gimp_message("Hello in Gimp message console")
pdb.gimp_message_set_handler(CONSOLE)
pdb.gimp_message("Hello in stdout/stderr of Gimp process")

I get this:
   

That draws the following remarks for MESSAGE_BOX
  • If the message is a single line, and the message dialog is not out, the message goes to the status bar.
  • If the message is multi-line, a dialog is shown
  • If the multi-line dialog is out, other messages are added to it
Your problem is possibly that the dialog is either masked or off-screen.
Reply
#7
(12-04-2022, 01:52 PM)programmer_ceds Wrote:
(12-03-2022, 08:33 PM)flauapaua Wrote: Shouldn't I get some dialog pop up or something? If not how else can one do this?

I suspect that you are getting "Hello World" displayed in the status line at the bottom of the main GIMP window.

If you type (gimp-message "Hello World\n more text") you should get a message box pop up (the \n causes a new line)

At some point in the recent (I think) past GIMP changed so that only multi-line messages are shown in a pop-up dialog box; single lines are just shown in the status bar.

I add a new line into all such messages so that they appear as pop-ups and are not overlooked by the user - as is seemingly demonstrated here :-)

(12-05-2022, 11:00 PM)Ofnuts Wrote: With this code:

Code:
pdb.gimp_message_set_handler(MESSAGE_BOX)
pdb.gimp_message("Hello in status bar") # Single line, goes to status bar
pdb.gimp_message("Hello\nin dialog")    # Multi-line, goes to dialog
pdb.gimp_message("Hello in dialog again") # Single line, goes to dialog which is out
pdb.gimp_message_set_handler(ERROR_CONSOLE)
pdb.gimp_message("Hello in Gimp message console")
pdb.gimp_message_set_handler(CONSOLE)
pdb.gimp_message("Hello in stdout/stderr of Gimp process")

I get this:


That draws the following remarks for MESSAGE_BOX
  • If the message is a single line, and the message dialog is not out, the message goes to the status bar.
  • If the message is multi-line, a dialog is shown
  • If the multi-line dialog is out, other messages are added to it
Your problem is possibly that the dialog is either masked or off-screen.
That might possibly have been the problem. All I can say is, that it now works again exactly as you describe it. Thanks for the extensive research.
Reply


Forum Jump: