[PD-dev] Using # in GUI object's label

Henri Augusto Bisognini msndohenri at hotmail.com
Tue Sep 4 04:22:00 CEST 2018


I noticed all my labels on GUI objects containing "#" had it replaced with a "$".

The only workaround i know of is using dynamic patching to create the object you want with a # in it's label but that's definetely not something that every PD user want/know how to use.

Searching the mailing list i found this discussion about the raute2dollar method but it seems it was abandoned. We have any news on that?

Discussion i found in the mailing list:

On Mon, Nov 2 at 04:57 AM, Ivica Bukvic <ico at vt.edu > wrote:

> so  this sounds like a bug to me that does some sort of one-way mangling that needs to be fixed and more
> so, it seems to me there should be a different ascii character used to  preserve $, one that does not exist in the regular text-based ascii
> chars... e.g. in pd-l2ork we use \t to substitute for \n and thus preserve endlines in comments and other places.

Sounded like a good idea because # is definitely very useful for labels as it looks just like an sharp. I know there is an sharp char in DejaVu Sans Mono (♯) but it looks very small and is hard to read for some reason.

So i changed the raute2dollar and the dollar2raute functions
To use  '\"' (quotation mark) instead of '#' and it broke PD.
I even tried using something pretty normal in it's place ('A') but didn't work either.

Assuming the replacing char was just that, a replacement, and that any other char would do, it seemed like a good idea. Figured if users couldn't use quotation marks (") in their labels they would just use two apostrophes (') which would look the same.

PD loads normally but when you open a new windows you get a TCL error. Call stack is something like this

::pd_bindings::window_focusin .x229b790
....::pd_menus::configure_for_canvas $mytoplevel
........update_undo_on_menu $mytoplevel

............("update_undo_on_menu" line 3)
............"if {$mytoplevel eq $::undo_toplevel && $::undo_action ne "no"} {
................$menubar.edit entryconfigure 0 -state normal  -label [_ "Undo $::undo_action"..."

So it seems that not only replacing the $ from some stuff is important but also what replaces it must be a '#'.

I'm pretty new here so i can't get my head around what exactly is going on yet and why this is necessary.

This Jonathan mail (below) seems to be the only explanation on why it was done this way in the first place but it doesn't go into much deta

What exactly is the purpose of this? Is it really needed for the labels?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20180904/4ea93c80/attachment.html>

More information about the Pd-dev mailing list