Marlin Rowley wrote:

I want to start from the beginning and work my way to what I have now. Maybe then, I'll see some things that I didn't. :)

Let's start with the Frame and Window creation. Right now, I pass a resolution into my script (rfxRenderView.py 320 240). Let's say it's 320x240. I expect this to be the resolution of the Window to be drawn upon, NOT the frame that includes all the widgets. However, this is exactly what is happening. The problem is that I call Frame's constructor in my own child frame and I pass it the size so that the window comes up relatively the size I want, however, the drawing window will be a little less than that because of the Menu bar. How do I pass the size of the Frame such that the Window gets created with 320x240, THEN the Frame builds around that (so the actually size of the frame+window > 320x240)?

The vocabulary here is "window size" (which includes the decorations) and "client region" (which does not). Yes, when you specify a size, that includes the decorations. You want to specify the size of the client region, which you can't do, directly.

Although it is possible to compute the size of each of the decorations, it is a tedious process, because of the possibility of themes. All the edges can vary, so you end up fetching a whole bunch of system preferences values. The easiest solution is to fetch your assigned window size and your assigned client size, compute the difference, and adjust yourself accordingly. For example, try adding the following after you create the wx.Frame:

       ws = self.GetSize()
       cs = self.GetClientSize()
       # Bump the window size by the delta between the two.
       ws.IncBy( *(ws-cs) )
       self.SetSize( ws )

--
Tim Roberts, [EMAIL PROTECTED]
Providenza & Boekelheide, Inc.

_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to