classification
Title: Missing labelside option for Tix option menu (fix included)
Type: Stage:
Components: Tkinter Versions: Python 3.1, Python 3.2, Python 2.7, Python 2.6
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: caryr, gpolo
Priority: normal Keywords:

Created on 2009-05-07 18:45 by caryr, last changed 2009-08-18 16:42 by gpolo. This issue is now closed.

Messages (4)
msg87388 - (view) Author: Cary R. (caryr) Date: 2009-05-07 18:45
The Tix Optionmenu is documented to support a labelside option that is
used to specify where the label should be relative to the selection.

I have verified that adding 'labelside' to the static_options when
calling the base constructor (TixWidget.__init__) located in Tix.py line
1185 (for both 2.5.4 and 2.6.2) fixes the problem.

TixWidget.__init__(self, ... ,['labelside', 'options'], ... )

I am currently using 2.5.4, but a fix only for the 2.6 branch is
acceptable for all but my personal machine (which I can patch by hand).

I am not very familiar with how all this works, so if there is something
I can do from my code to add this option that would be nice to know.
msg91698 - (view) Author: Guilherme Polo (gpolo) * (Python committer) Date: 2009-08-18 14:58
Hi Cary,

Where can I find the most up-to-date Tix manual ? Would it be
http://tix.sourceforge.net/man/html/contents.htm ?

I don't know much about Tix so maybe you can help me a bit here. Are all
of these widget specific options considered as static options by Tix ?
If so, shouldn't "command", "disablecallback", "label", "state", "value"
and "variable" be added here as well ?
msg91708 - (view) Author: Cary R. (caryr) Date: 2009-08-18 16:26
That is the manual I am referencing and the last time I looked it was
the most recent.

I'm not to familiar with the Python port of Tix, but I am using the
command, label, state, and variable options and they already work fine.
I could try the other options if that would help.

I needed the labelside functionality so I hacked Tix.py to get it to
work. I mimicked the code from other objects that have a labelside
option. My assumption was that some base class knew how to handle many
of the standard options, but did not know about labelside. It is
possible that there is a better way to handle this (add it to the same
place the others are implemented), but that would have required
understanding the class hierarchy and much more work. At the time I just
needed to get it to work and what I proposed does work and is consistent
with other objects. Since I was not using the other options I did not
check them.

Let me know if there is anything else I can do to help.
msg91709 - (view) Author: Guilherme Polo (gpolo) * (Python committer) Date: 2009-08-18 16:42
> That is the manual I am referencing and the last time I looked it was
> the most recent.
>

Thanks for clarifying that.

> I'm not to familiar with the Python port of Tix, but I am using the
> command, label, state, and variable options and they already work fine.
> I could try the other options if that would help.
>

Now I see, it is a problem in the Tix manual. Some commands around
there document which options are static and which are not. For
OptionMenu, 'labelside' is an static option but is not described as
such.

Fixed on r74519.

> I needed the labelside functionality so I hacked Tix.py to get it to
> work. I mimicked the code from other objects that have a labelside
> option. My assumption was that some base class knew how to handle many
> of the standard options, but did not know about labelside. It is
> possible that there is a better way to handle this (add it to the same
> place the others are implemented), but that would have required
> understanding the class hierarchy and much more work. At the time I just
> needed to get it to work and what I proposed does work and is consistent
> with other objects. Since I was not using the other options I did not
> check them.
>
> Let me know if there is anything else I can do to help.

It looks like Tix.py might need a review on this area of static
options. Tix's documentation doesn't help much, so it will require
some manual testing.
History
Date User Action Args
2009-08-18 16:42:38gpolosetstatus: open -> closed
type: enhancement ->
resolution: fixed
2009-08-18 16:42:09gpolosetmessages: + msg91709
2009-08-18 16:26:35caryrsetmessages: + msg91708
2009-08-18 14:58:52gpolosetnosy: + gpolo

messages: + msg91698
versions: + Python 3.1, Python 2.7, Python 3.2, - Python 2.5
2009-05-08 21:02:10caryrsetversions: + Python 2.5
2009-05-07 18:45:14caryrcreate