GNOME Bugzilla – Bug 120175
Progress bar caption not persistant (update GimpStatusbar API)
Last modified: 2004-07-14 16:37:47 UTC
if you rezise the image window, or zoom in/out during a plug-in operation the status text will revert from the name of the filter to the name of the image.
The problem is that Gtkstatusbar has no API to replace text that is somewhere in the middle of the message stack, not on top of it. Will probably have to drop deriving GimpStatusbar from GtkStatusbar and add a gimp_statusbar_replace() which does exactly that.
*** Bug 120426 has been marked as a duplicate of this bug. ***
*** Bug 127041 has been marked as a duplicate of this bug. ***
*** Bug 128674 has been marked as a duplicate of this bug. ***
Updating the subject so that it is easier to find this bug report.
*** Bug 132171 has been marked as a duplicate of this bug. ***
Bumping to 2.2, since it seems unlikely this will be started (never mind finished) before 2.0 comes out. Dave.
*** Bug 141888 has been marked as a duplicate of this bug. ***
*** Bug 141718 has been marked as a duplicate of this bug. ***
would it be helpfull if I started with this. The plan : derive GimpStatusbar from GtkHBox. copy the functionality from GtkStatusbar to GimpStatusbar files to modify : ./app/display/gimpstatusbar.h ./app/display/gimpstatusbar.c ./app/display/gimpdisplayshell.c ./plug-ins/imagemap/imap_statusbar.c
Just realized that the GimpStatusbar as it is defined now is a part of the display shell or. So it cannot be used by a plugin if I would just copy the functionality in. Probably renaming GimpStatusbar to GimpDisplayStatusbar and create a new widget GimpStausbar would be the better solution. impact : ./app/display/gimpdisplayshell-cursor.c ./app/display/gimpdisplayshell-title.c ./app/display/gimpdisplayshell.c ./app/display/display-types.h ./app/display/gimpprogress.c ./app/display/gimpstatusbar.h ./app/display/gimpstatusbar.c ./app/tools/gimppainttool.c ./app/tools/gimptool.c libgimwidgets : ./libgimpwidgets/gimpwidgetstypes.h ./libgimpwidgets/gimpwidgets.def
Why do you want to move this functionality into libgimpwidgets at all? I doubt that it is useful for GIMP plug-ins.
Apparently the imagemap is using GtkStatusbar. Don't think that justifies the amount of work to create a full featured widgets thoug. Consider the second post as a remark. btw : My first proposal is up and running at my system (port everything from GtkStatusbar to GimpStatusbar). The second would
Created attachment 28803 [details] [review] patch that makes gimpstatusbar independent from gtkstatusbar first start
Looks good as a first start. But you should probably remove the resize_grip functionality which isn't needed in GimpStatusbar. It adds quite some complexity. If you remove it, you won't need gimp_statusbar_set_has_resize_grip() and you don't need to implement size_allocate, button_press, expose_event, size_request, [un]map, [un]realize and direction_changed. So basically you can remove a good deal of code before we start to add new stuff.
Created attachment 28857 [details] [review] Basic gimpstatusbar wo resize grip. Removed the resize-grip
I've did some minor cleanups in gimpstatusbar.[ch]. If you can't wait till tomorrow, feel free to ask me to mail you the file. 2004-06-19 Sven Neumann <sven@gimp.org> Applied a patch from Geert Jordaens that implements the GtkStatusbar functionality in GimpStatusbar so that we can redo it in order to fix bug #120175: * app/core/gimpmarshal.list: added VOID: UINT, STRING. * app/display/gimpstatusbar.[ch]: copied GtkStatusbar code. * app/display/gimpdisplayshell.c: changed accordingly.
Fixed in CVS: 2004-07-14 Michael Natterer <mitch@gimp.org> * app/display/gimpstatusbar.[ch]: massively changed: removed message_ids, the message mem chunk and all signals. Added new function gimp_statusbar_replace() which updates a message without moving it to the top of the stack. Fixes bug #120175. * app/display/gimpdisplayshell-title.[ch]: renamed gimp_display_shell_update_title() to gimp_display_shell_title_update() and switched from pop()/push() to replace() so the title message keeps its place in the stack. Added new function gimp_display_shell_title_init() which push()es the title message to the stack. * app/display/gimpdisplayshell.c (gimp_display_shell_new): call gimp_display_shell_title_init() so the "title" message is at the bottom of the stack. * app/display/gimpdisplayshell-callbacks.c * app/display/gimpdisplayshell-handlers.c: changed accordingly.