[wxPython] wxBoxSizer question/ bug(??)

Hello, I'm writing an application that displays an image . The main
frame, by now, just has a menubar and a wxWindow subclass that displays
the opened image. The main frame is not resizable. Anyway I want it to
grow or shrink when I open a new image.
I use a wxBoxSizer to put things in the main frame (I'll add some
controls). The only method I found to make the frame resize according to
the need of the internal image window is to remove the image window from
the sizer and then add it again. Is there a better way of doing that?
Anyway I'm using wxPythonWIN32-2.3.3.1-Py22.
A strange thing I noticed is that when I use wxSizer.Remove(wxWindow) or
wxSizer.Remove(int) the result, even if the windows is removed, is
always None. On the wxWindows documentation I read that the return value
should be a boolean. Well "None" is like a "false"... is it a bug or
just my misunderstanding?

Another thing is that is I resize(from inside the application) once the
window, everything works ok. If I resize it again and the size is
smaller than the old one, the size remains big.... Any hint?

Anyway this is the (relevant) source code. If somebody can give me advice on how to
make things better or faster or more wxPython-style, well, you are
welcome :slight_smile: The method that tries to resize the frame is MainFrame.SetImageSource.

from pyVideo.ImageSource import *
from pyVideo.CRImage import *
from wxPython.wx import *
import os
import time

#This is the wxWindow that shows the CRImage

class CRImageWindow(wxWindow):
     DEFAULTSIZE=(384,288)
     def __init__(self,parent,id,point,image=None):
     #You can pass an image or None,
     #in that case an empty image is created
         if image:
             self.sz=image.size
         else:
             self.sz=self.DEFAULTSIZE
         wxWindow.__init__(self,parent,id,point,self.sz)
         self.wxi=None
         self.image=None
         self.wxb=None
         self.SetImage(image)

         EVT_PAINT(self,self.OnPaint)

     #SetImage means that you are passing a new CRImage and
     #therefore you need to reinit all the necessary
     #data in the class

     def SetImage(self,image):
         self.image=image
         if image:
             self.sz=image.size
         else:
             self.sz=self.DEFAULTSIZE

         self.SetSize(self.sz)

         if self.wxi:
             del self.wxi

         self.wxi=wxEmptyImage(self.sz[0],self.sz[1])
         self.UpdateImage(image)

     #update image is called when the ImageSource
     #is moved forward or backward
     # and therefore the characteristics of the image
     #(its size) do not change

     def UpdateImage(self,image):
         if image:
             self.image=image
             self.wxi.SetData(image.tostring())
         if self.wxb:
             del self.wxb
         self.wxb=wxBitmapFromImage(self.wxi)

     def Repaint(self):
         dc=wxClientDC(self)
         dc.BeginDrawing()
         self.BlitFrame(dc)
         dc.EndDrawing()

     def BlitFrame(self,dc):
         dc.DrawBitmap(self.wxb,0,0,0)

     def OnPaint(self,event):
         self.BlitFrame(wxPaintDC(self))

     def saveImage(self,path):
         self.image.save(path)

class MainFrame(wxFrame):
     FILE_NEWWINDOW=10
     FILE_OPEN=20
     FILE_SAVE=30
     FILE_EXIT=40
     def __init__(self,parent,id,mainApp):

         self.path=None
         self.imageSource=None
         self.moviePanel=None

         self.mainApp=mainApp
         wxFrame.__init__(self,parent,id,
                            "ImageSource Window",
                            wxPoint(100,100),
                            wxSize(358,300),
                            wxSYSTEM_MENU | wxCAPTION|wxMINIMIZE_BOX)

         self.__MakeMenu()

         self.imageWindow=CRImageWindow(self,-1,(-1,-1),None)
         self.sizer=wxBoxSizer(wxVERTICAL)
         self.SetAutoLayout(1)
         self.SetSizer(self.sizer)
         self.sizer.Add(self.imageWindow,0,wxALL,0)
         self.sizer.Fit(self)
         self.sizer.SetSizeHints(self)

     def OpenFile(self,event):
         dlg = wxFileDialog(self,
      "Choose an ImageSource file (movie or picture)"
      , ".", "",
      "AVI files (*.avi)|*.avi|AviSynth files
                         (*.avs)|*.avs|QuickTime files (*.mov)|*.mov|MPEG
                          file (*.mpg)|*.mpg|All files (*.*)|*.*",
                          wxOPEN>wxHIDE_READONLY|wxFILE_MUST_EXIST)
         if dlg.ShowModal() == wxID_OK:
             self.SetImageSource(dlg.GetPath())

     #A new ImageSource is opened,
     #therefore we need to create it and change the window size
     def SetImageSource(self,ISPath):
             self.path=ISPath

             if self.imageSource:
                 del self.imageSource

      self.imageSource=ImageSource(
                            self.path,IS_PLAY_ONCE,RIMAGE_RGB24)
             self.SetTitle(
    "ImageSource Window: "
                  +os.path.basename(self.imageSource.name))

             print self.sizer.Remove(self.imageWindow)
             self.imageWindow.SetImage(self.imageSource.img)
             self.sizer.Add(self.imageWindow,0,wxALL,0)
             self.sizer.Fit(self)
             self.sizer.Layout()
             self.sizer.SetSizeHints(self)

class VideoApp(wxApp):
     def __init__(self,id):
         wxApp.__init__(self,id)

     def OnInit(self):
         ImageSourceInit()
         frame=MainFrame(NULL,-1,self)
         frame.Show(true)
         self.SetTopWindow(frame)
         return true

     def makeNewFrame(self):
         MainFrame(NULL,-1,self).Show()

if __name__=='__main__':
     app=VideoApp(0)
     app.MainLoop()

Riccardo Trocca wrote:

Hello, I'm writing an application that displays an image . The main
frame, by now, just has a menubar and a wxWindow subclass that displays
the opened image. The main frame is not resizable. Anyway I want it to
grow or shrink when I open a new image.
[....]
Another thing is that is I resize(from inside the application) once the
window, everything works ok. If I resize it again and the size is
smaller than the old one, the size remains big.... Any hint?

My app does things a bit different, in that I've got a resizable frame and
always want the displayed image to fill the frame, but the problems I had
were similar. I use a wxStaticBitmap which stretches/shrinks the image
whenever its size changes. Its size is in turn controlled by a sizer, so in
order to keep that control in-sync with my frame, I added an OnSize() handler
to my wxFrame:

    def OnSize(self, event):
        self.sizer.RecalcSizes()
        self.Refresh()
        event.Skip()

This tells my sizer to resize itself and then redisplays the window, without
interfering with any other size event processing that needs to be done. This
*should* solve your second problem. Your first problem will probably also be
fixed by calling self.sizer.RecalcSizes() once you load your new image.

Jeff Shannon
Technician/Programmer
Credit International

From 2.3.3 it seems my menubar has no underlined
items despite &File, &Edit etc. It doesn't even
appear if I press Alt... But the shortcuts work.
(But who is going to know...)

In the menues, the underlines are where I expect
them to be...

···

--
Magnus Lyckå, Thinkware AB
Älvans väg 99, SE-907 50 UMEÅ
tel: 070-582 80 65, fax: 070-612 80 65
http://www.thinkware.se/ mailto:magnus@thinkware.se

Not sure what OS you're using, but I am using
wxPython 2.3.3.1 on Python 2.1/ win 2K
and the menu bar underlines work fine...

···

#--------------------------------
Jeff Sasmor
jeff@sasmor.com
----- Original Message -----
From: "Magnus Lycka" <magnus@thinkware.se>
To: <wxpython-users@lists.wxwindows.org>
Sent: Friday, September 27, 2002 3:10 PM
Subject: [wxPython] No underline in menu bar

From 2.3.3 it seems my menubar has no underlined

items despite &File, &Edit etc. It doesn't even
appear if I press Alt... But the shortcuts work.
(But who is going to know...)

In the menues, the underlines are where I expect
them to be...

--
Magnus Lyckå, Thinkware AB
Älvans väg 99, SE-907 50 UMEÅ
tel: 070-582 80 65, fax: 070-612 80 65
http://www.thinkware.se/ mailto:magnus@thinkware.se

_______________________________________________
wxpython-users mailing list
wxpython-users@lists.wxwindows.org
http://lists.wxwindows.org/mailman/listinfo/wxpython-users

Riccardo Trocca wrote:

Hello, I'm writing an application that displays an image . The main
frame, by now, just has a menubar and a wxWindow subclass that displays
the opened image. The main frame is not resizable. Anyway I want it to
grow or shrink when I open a new image.
I use a wxBoxSizer to put things in the main frame (I'll add some
controls). The only method I found to make the frame resize according to
the need of the internal image window is to remove the image window from
the sizer and then add it again. Is there a better way of doing that?

You can use sizer.SetItemMinSize to inform the sizer that the minimum size for the image window has changed, and then sizer.Layout to actually reposition everything.

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

Not sure what OS you're using, but I am using
wxPython 2.3.3.1 on Python 2.1/ win 2K
and the menu bar underlines work fine...

Python 2.2, otherwise the same as you.
I don't get underlines in the demo either,
see http://www.thinkware.se/pics/wxdemo.gif

Alt-F etc works though.

BTW, I just saw that we have new screenshots.
http://www.wxpython.org/screenshots.php
There the underlines show in the demo, but that
must be from an earlier beta, there are only
four items in "new since last release".

The screenshots of Boa has no underlines. (It
seems that I should take a look at Boa btw...)

I just checked my laptop with Win98 and 2.3.3pre4.
It shows the underlines in the demo...

I wrote:

···

At 23:09 2002-09-27 -0400, Jeff Sasmor wrote:

>From 2.3.3 it seems my menubar has no underlined
items despite &File, &Edit etc. It doesn't even
appear if I press Alt... But the shortcuts work.
(But who is going to know...)

In the menues, the underlines are where I expect
them to be...

--
Magnus Lyckå, Thinkware AB
Älvans väg 99, SE-907 50 UMEÅ
tel: 070-582 80 65, fax: 070-612 80 65
http://www.thinkware.se/ mailto:magnus@thinkware.se

??? Odd problem. And the app I am working on
dynamically adds and deletes menus and menu items
within menus over and over again, depending on
what you're viewing in the frame. Works perfectly.

See http://www.pyframe.com/Images/pf.gif
for a screen shot I made a few minutes ago.

You might want to try running your code via a
debugger and seeing what you're really passing in
to the wxPython glue just before it goes down into
the C++ stratum of wxWindows.

Setting a breakpoint in the Python wrappers
has uncovered some unusual bugs in my code from
time to time.

···

#--------------------------------
Jeff Sasmor
jeff@sasmor.com
----- Original Message -----
From: "Magnus Lycka" <magnus@thinkware.se>
To: <wxpython-users@lists.wxwindows.org>
Sent: Saturday, September 28, 2002 3:41 PM
Subject: Re: [wxPython] No underline in menu bar

At 23:09 2002-09-27 -0400, Jeff Sasmor wrote:

Not sure what OS you're using, but I am using
wxPython 2.3.3.1 on Python 2.1/ win 2K
and the menu bar underlines work fine...

Python 2.2, otherwise the same as you.
I don't get underlines in the demo either,
see http://www.thinkware.se/pics/wxdemo.gif

Alt-F etc works though.

BTW, I just saw that we have new screenshots.
http://www.wxpython.org/screenshots.php
There the underlines show in the demo, but that
must be from an earlier beta, there are only
four items in "new since last release".

The screenshots of Boa has no underlines. (It
seems that I should take a look at Boa btw...)

I just checked my laptop with Win98 and 2.3.3pre4.
It shows the underlines in the demo...

I wrote:

>From 2.3.3 it seems my menubar has no underlined
items despite &File, &Edit etc. It doesn't even
appear if I press Alt... But the shortcuts work.
(But who is going to know...)

In the menues, the underlines are where I expect
them to be...

--
Magnus Lyckå, Thinkware AB
Älvans väg 99, SE-907 50 UMEÅ
tel: 070-582 80 65, fax: 070-612 80 65
http://www.thinkware.se/ mailto:magnus@thinkware.se

_______________________________________________
wxpython-users mailing list
wxpython-users@lists.wxwindows.org
http://lists.wxwindows.org/mailman/listinfo/wxpython-users

No underlining on Py2.2.1 wxPython 2.3.3.1 on Win2K here (i.e. none in the demo, none in my apps, shortcuts still work). Note that somewhere in the 2.3.3 cycle the menus became capable of using OwnerDrawn styles so that they could add icons and the like, not sure how that would have changed things, but might have had an effect? Not sure how that would be specific to Python 2.2.1 though.

Enjoy all,
Mike

Magnus Lycka wrote:

···

At 23:09 2002-09-27 -0400, Jeff Sasmor wrote:

Not sure what OS you're using, but I am using
wxPython 2.3.3.1 on Python 2.1/ win 2K
and the menu bar underlines work fine...

Python 2.2, otherwise the same as you.
I don't get underlines in the demo either,
see http://www.thinkware.se/pics/wxdemo.gif

Alt-F etc works though.

BTW, I just saw that we have new screenshots.
http://www.wxpython.org/screenshots.php
There the underlines show in the demo, but that
must be from an earlier beta, there are only
four items in "new since last release".

The screenshots of Boa has no underlines. (It
seems that I should take a look at Boa btw...)

I just checked my laptop with Win98 and 2.3.3pre4.
It shows the underlines in the demo...

I wrote:

>From 2.3.3 it seems my menubar has no underlined
items despite &File, &Edit etc. It doesn't even
appear if I press Alt... But the shortcuts work.
(But who is going to know...)

In the menues, the underlines are where I expect
them to be...

--
_______________________________________
   Mike C. Fletcher
   Designer, VR Plumber, Coder
   http://members.rogers.com/mcfletch/

I don't get underlines in the demo either,
see http://www.thinkware.se/pics/wxdemo.gif

Alt-F etc works though.

I posted a message to the list here on 24th September with the title "Two
minor visual problems", one of which was this one. I didn't get any
responses, so maybe my post just disappeared off into cyberspace ;-(

Regards,

David Hughes
Forestfield Software Ltd
www.forestfield.co.uk

My application is too slow... I thought it would be good to
offer something else than "buy a faster computer" to my
customer. (The more money he spends on computers, the less
he has left to spend on me...)

I (still) have these five correlated grids that change when
you walk around in them. For instance, if I move between
cells in one grid, different rows in another grid might become
highlighted with colour and bold style to indicate a correlation.

Also, one of the grids contain objects that exist in a tree
structure, so I can walk up or down in that structure (think
Norton Commander) which will change the context (and thus
content) for all five grids.

A minute of profiling, of which all but 29 seconds was idle
time in the loop showed that half of the 29 seconds of real
code running was spent in the following ten functions...

number cumulative
of calls time function
    34800 2.63 grid.py:1406(SetCellValue)
    46900 2.42 grid.py:1355(SetCellTextColour)
    20900 1.86 grid.py:1294(GetCellFont)
    25000 1.58 grid.py:1412(SetReadOnly)
    25271 1.46 grid.py:1349(SetCellBackgroundColour)
    25135 1.39 grid.py:1409(IsReadOnly)
      563 1.79 grid.py:1086(SetGridCursor)
    21900 0.90 grid.py:1361(SetCellFont)
     6800 0.28 grid.py:1403(GetCellValue)
     2028 0.14 grid.py:1018(Refresh)
   209297 14.43 Total cumulative time

Obviously I'm doing quite a lot of function calls.
But on the other hand, a simple update of a python
object attribute 200000 times takes less than 0.3
seconds...

To put things in proportion, I do roughly 100 key
presses during that minute. Most of them are just
arrow key movements that can change colours etc in
many cells and change values in 50 cells. 20 times
I change context, so that all 1475 cells are
potentially changed. 20 * 1475 = 29500, which
explains most of the SetCellValue. Everytime I move
vertically in the three lower grids I need to update
up to (now all) 50 cells in the upper grids. This
is a few more thousand SetCellValue calls.

I could probably save a lot by just skipping changes
if the cell is empty and should stay empty. (Now I
often update all cells in affected grids, normally
1475 in all.)

It seems to me that also pure "getters", like
IsReadOnly and "GetCellValue" take a nonsignificant
amount of time though.

I'm not thrilled about having to shadow all my
grid content in python data structures, check there,
and just update where needed...

I'd be very happy if anyone had tips to improve
these things in a simple way... (It's not that I
don't want to write more code... It's just that
I don't want to maintain it...)

···

--
Magnus Lyckå, Thinkware AB
Älvans väg 99, SE-907 50 UMEÅ
tel: 070-582 80 65, fax: 070-612 80 65
http://www.thinkware.se/ mailto:magnus@thinkware.se

My (minimal) performance experiences with the wxGrid...

BeginBatch() and EndBatch():
  These are definitely your friend, if you're refreshing the whole grid (and it sounds like you're actually doing a SetCellValue (i.e. a grid-owned-data approach) for every cell).
  I'd guess that if you were calling SetCellValue outside this you'd wind up triggering all sorts of extra machinery that you really don't want to trigger. Particularly extraneous refreshes...

Extraneous Refreshes:
  In my apps, I found an extraneous refresh (or two) happening "just for safety's sake" could reduce response times to unacceptable levels all by themselves. Just cutting down by one or two refreshes in commonly used areas made the difference between sub-second and 1-2 second response times. Of course, there are now probably cases where the grid doesn't behave properly, but we haven't encountered any of note.

Good luck,
Mike

Magnus Lycka wrote:

My application is too slow... I thought it would be good to
offer something else than "buy a faster computer" to my
customer. (The more money he spends on computers, the less
he has left to spend on me...)

I (still) have these five correlated grids that change when
you walk around in them. For instance, if I move between
cells in one grid, different rows in another grid might become
highlighted with colour and bold style to indicate a correlation.

...
details clipped
...

···

I'd be very happy if anyone had tips to improve
these things in a simple way... (It's not that I
don't want to write more code... It's just that
I don't want to maintain it...)

Thanks Mike, it seems these helped a bit.

I have two (usually) sparesly populated grids
with cells that might either be RO/grey or
RW/white.

What really helped was not to mess with more
cells than needed... It turned out to be trivial
and very helpful to have a "shadow grid", a list
of lists full with 1's to start with. I zero
these as I remove the Read Only and make bg white,
and put in a 1 again if I return to Read Only
and grey background.

Just skipping SetReadOnly and SetBackgroundColour
when the shadow grid already had a 1 made a big
difference. It doesn't feel sluggish any more.
Together with Begin/EndBatch it caused a 65% time
reduction in my grid refills / context switches,
but my impression is that the shadow grid was
the big win, not the Batch handling. (Didn't
measure one without the other.)

···

At 10:52 2002-10-01 -0400, Mike C. Fletcher wrote:

BeginBatch() and EndBatch():
        These are definitely your friend, if you're refreshing the whole grid (and it sounds like you're actually doing a SetCellValue (i.e. a grid-owned-data approach) for every cell).

--
Magnus Lyckå, Thinkware AB
Älvans väg 99, SE-907 50 UMEÅ
tel: 070-582 80 65, fax: 070-612 80 65
http://www.thinkware.se/ mailto:magnus@thinkware.se

Magnus Lycka wrote:

It turned out to be trivial
and very helpful to have a "shadow grid", a list
of lists full with 1's to start with. I zero
these as I remove the Read Only and make bg white,
and put in a 1 again if I return to Read Only
and grey background.

Just skipping SetReadOnly and SetBackgroundColour
when the shadow grid already had a 1 made a big
difference.

I don't know how big your grids are, but using a Numeric 2-d array for
your shadow grid could help perfomance and memory usage. You could do a
nonzero(shadow_grid) to very quickly get all the elements you need.

This may be an uneeded optimization, but Numeric can clean up your code
as well as provide better perfomance, so it may be worth a shot.

-Chris

Christopher Barker, Ph.D.
Oceanographer
                                        
NOAA/OR&R/HAZMAT (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov

Mike C. Fletcher wrote:

No underlining on Py2.2.1 wxPython 2.3.3.1 on Win2K here (i.e. none in the demo, none in my apps, shortcuts still work).

I think I see now what people are describing. I'll send a note to wx-dev about it.

Note that somewhere in the 2.3.3 cycle the menus became capable of using OwnerDrawn styles so that they could add icons and the like, not sure how that would have changed things, but might have had an effect?

Actually for win32 it's been there for several releases already. I don't think it could have any impact though because the win32 ownerdraw style isn't used unless it is really needed.

Not sure how that would be specific to Python 2.2.1 though.

At this level there should be no difference which version of Python is used.

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

Have you heard anything about this?

···

At 14:41 2002-10-01 -0700, Robin Dunn wrote:

Mike C. Fletcher wrote:

No underlining on Py2.2.1 wxPython 2.3.3.1 on Win2K here (i.e. none in the demo, none in my apps, shortcuts still work).

I think I see now what people are describing. I'll send a note to wx-dev about it.

--
Magnus Lycka, Thinkware AB
Alvans vag 99, SE-907 50 UMEA, SWEDEN
phone: int+46 70 582 80 65, fax: int+46 70 612 80 65
http://www.thinkware.se/ mailto:magnus@thinkware.se

Magnus Lycka <magnus@thinkware.se> writes:

>Mike C. Fletcher wrote:
>> No underlining on Py2.2.1 wxPython 2.3.3.1 on Win2K here (i.e. none
>> in the demo, none in my apps, shortcuts still work).
>
> I think I see now what people are describing. I'll send a note to
> wx-dev about it.

Have you heard anything about this?

Dunno about that since I'm not Robin :), but we also noticed the absence
of the underlines on W2K. As it turns out this is standard behavior on
W2K:

   In Windows 2000, access keys are hidden by default to simplify the
   user interface. However, the operating system displays the access
   keys whenever the user initiates a keyboard command -- for example,
   by pressing the ALT key.

See http://msdn.microsoft.com/library/en-us/dnwue/html/ch05c.asp

  Bernhard

···

At 14:41 2002-10-01 -0700, Robin Dunn wrote:

--
Intevation GmbH http://intevation.de/
Sketch http://sketch.sourceforge.net/
MapIt! http://www.mapit.de/

> >> No underlining on Py2.2.1 wxPython 2.3.3.1 on Win2K here (i.e. none
> >> in the demo, none in my apps, shortcuts still work).

...

Dunno about that since I'm not Robin :), but we also noticed the absence
of the underlines on W2K. As it turns out this is standard behavior on
W2K:

   In Windows 2000, access keys are hidden by default to simplify the
   user interface. However, the operating system displays the access

simplify == hide? Now you see it, now you don't... I think it mainly
confuses. It's not as if the underlines steal a lot of screen estate.
Oh well...

   keys whenever the user initiates a keyboard command -- for example,
   by pressing the ALT key.

However, no underlines appear in the wxPython demo when you
press the ALT key. THAT was the point I was trying to make.
I'm not sure if they were always on or just appeared with the
ALT key proir to 2.3.3.1, but it was different...

Do you get underlines showing when you press ALT? Is there some
issue on skipping key pres events upwards that makes this
difference?

I do get the underlines when I press F10, but not if I just
press ALT.

···

At 12:00 2002-10-17 +0200, Bernhard wrote:

See http://msdn.microsoft.com/library/en-us/dnwue/html/ch05c.asp

--
Magnus Lyckå, Thinkware AB
Älvans väg 99, SE-907 50 UMEÅ
tel: 070-582 80 65, fax: 070-612 80 65
http://www.thinkware.se/ mailto:magnus@thinkware.se

Magnus Lycka <magnus@thinkware.se> writes:

> keys whenever the user initiates a keyboard command -- for example,
> by pressing the ALT key.

However, no underlines appear in the wxPython demo when you
press the ALT key. THAT was the point I was trying to make.
I'm not sure if they were always on or just appeared with the
ALT key proir to 2.3.3.1, but it was different...

Just installed and tried 2.3.3 on our Windows box. It did work OK with
2.3.2 but there is indeed a problem with 2.3.3 and the ALT key.

Do you get underlines showing when you press ALT? Is there some
issue on skipping key pres events upwards that makes this
difference?

AFAICT the real problem is that pressing ALT doesn't start keyboard
navigation of the menu as it did before and therefore no underlines are
shown.

   Bernhard

···

--
Intevation GmbH http://intevation.de/
Sketch http://sketch.sourceforge.net/
MapIt! http://www.mapit.de/

But ALT-F will still open the file menu...

But you are right. Just pressing ALT and
then walking around with arrow keys don't
navigate the menues as it does here in Eudora
for instance. For that I need to press F10.

···

At 14:46 2002-10-17 +0200, Bernhard Herzog wrote:

AFAICT the real problem is that pressing ALT doesn't start keyboard
navigation of the menu as it did before and therefore no underlines are
shown.

--
Magnus Lyckå, Thinkware AB
Älvans väg 99, SE-907 50 UMEÅ
tel: 070-582 80 65, fax: 070-612 80 65
http://www.thinkware.se/ mailto:magnus@thinkware.se

Magnus Lycka <magnus@thinkware.se> writes:

···

At 14:46 2002-10-17 +0200, Bernhard Herzog wrote:
>AFAICT the real problem is that pressing ALT doesn't start keyboard
>navigation of the menu as it did before and therefore no underlines are
>shown.

But ALT-F will still open the file menu...

Indeed.

I think this problem is still being discussed on wx-dev:
http://lists.wxwindows.org/pipermail/wx-dev/2002-October/025701.html

   Bernhard

--
Intevation GmbH http://intevation.de/
Sketch http://sketch.sourceforge.net/
MapIt! http://www.mapit.de/