[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Mac top level widget



Hi,
I have recently switched from X-Win IDL to MAc version.  Whether thats
good or bad is a personal preference; of course, Mac IDL did freak out
at a few spots in my "compatible" code, where neither a PC nor Unix had
a problem. Well, that's fixed, and PC and Unix do not reject the
Macintized code. I must say that, on the good side, IDL native object
graphics on the screen of my Mac work just as fast as direct graphics -
totally unbelievable (I had not tried to print yet :-).
Now, I have a question. Once I delete and re-create a widget in a
hierarchy, a middle-level base expands vertically by a few pixels every
time. Simply put, I have:

top = widget_base()
left_panel = widget_base(top)
option1_panel=widget_base(left_panel, /col)
sub_panel = widget_base(left_panel, /row)
buttons = widget_button(active_panel, value='Some_button')

When I kill BUTTONS and re-create it, the YSIZE of LEFT_PANEL increases
by 3 pixels. The YSIZE of other intermediate bases remains the same.  I
checked and LEFT_PANEL has no other children that I might have
accidentially incresed in size while manipulating the button.
My sample code is a target for those optimzed programmers: why, you say,
do you want to kill and re-create to begin with. Well, in the real code
it is not a button but a bunch of them (or cw_bgroup), and they change
every time a pulldown list is activated. I can either keep a wide
assortment of them and map or unmap, or I can kill them and re-create.
The latter was easier because I really don't need their IDs, just use
their events.
Anyway, whether optimal or not, this code does not cause the LEFT_PANEL
growth on any other platform, I tried.
Does anybody know why is this happening on the Mac?
Thanks,
Pavel

P.S. I heard, Mac is the buggiest platform to run IDL :-(