Gimp-Forum.net

Full Version: How to display a message to the user from script-fu
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
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?
(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 :-)
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).
(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.
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.
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:
[attachment=9124]

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.
(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.