The wx.MiniFrame Problem, Updated

11 07 2008

See the note at the bottom for the update.

If you ever want to create a cross-platform program with an interface similar to Photoshop’s, i.e. using palettes with different tools, don’t use wxWidgets. The only thing that comes close to that sort of palette is wx’s MiniFrame, which can only minimize / iconize on Windows. In GNOME, the MiniFrame looks terrible, especially with Compiz enabled. It cannot be minimized, maximized, or even closed. It just sits there and looks ugly. I wanted to try redesigning Boa Constructor‘s interface with palettes and a common window instead of three separate windows, however I cannot even begin this overhaul as the program is written in wxPython and the MiniFrame does not suffice.

I don’t know who’s at fault: the wxWidgets team for not implementing this feature correctly or GTK for not having such a widget.

I went through the source of wxPython and wxWidgets. wxPython looks like I expected it to, and I can’t make out much of the wxWidgets source. I hate C/C++.

I’m debating whether to submit a bug report. Or would this be a feature request? And who would I report it to?

Update: It seems this is GTK’s problem. A “GTK State of the Union” article was published on OSNews, and one of the features requested was a “Tools Palette”. Hopefully this feature will come to fruition. Also, I realized I had an older version of wx installed. I have a newer version, somewhere in 2.7.x, and the palette is now resizeable and closeable when style=wx.DEFAULT_FRAME_STYLE is passed. It still cannot be minimized (note: I haven’t tested 2.8.x)


Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s




Follow

Get every new post delivered to your Inbox.