Opened 15 years ago
Closed 15 years ago
#27 closed task (fixed)
Port QWidget
Reported by: | Dmitry A. Kuminov | Owned by: | Dmitry A. Kuminov |
---|---|---|---|
Priority: | major | Milestone: | QtGui Beta |
Component: | QtGui | Version: | 4.5.1 Beta 1 |
Severity: | Keywords: | ||
Cc: |
Description
Provide the initial OS/2 version of the QWidget class.
Change History (6)
comment:1 by , 15 years ago
Type: | enhancement → task |
---|
comment:2 by , 15 years ago
Owner: | set to |
---|---|
Status: | new → accepted |
comment:3 by , 15 years ago
comment:4 by , 15 years ago
Regarding the minimized window state. In PM, the window is resized to the big icon size (48x50px) and moved off screen (to -32000,-32000) when minimized. This process causes normal WM_MOVE and WM_SIZE to be sent to the window. As a result, the Qt size of the window gets changed as well when the window is maximized. This effect isn't seen on Windows Vista where the window size/position stays unchanged in this case. It looks like Windows prevents it on the system level (doesn't send WM_MOVE/WM_SIZE).
The question is if we should emulate the same behavior on OS/2.
comment:5 by , 15 years ago
Ah, no, Windows also sends WM_MOVE(-32000,-32000) and WM_SIZE(0,0) when the window is minimized. It's just Qt that prevents it. Then we have to do the same... Done in r122.
comment:6 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
This task is basically done. There is a number of @todo still in the code, but these will be done as individual tasks later.
I managed to get Qt draw widget contents so that simple panting in a custom widget works now. This includes things like full 2D primitive antialiasing too since the standard Qt4 raster paint engine fully draws everything itself in memory (they call it backing store) and then flushes the resulting bitmap into the PM window.
I use GpiDrwaBits for this which but later we may also try DIVE to see if it will be actually faster or not (I fear GpiDrawBits does not copy the bits directly into the screen but probably creates some temporary HBITMAP which is then blitted -- that would not be very fast).
, but later I will try DIVE to get direct access to the screen and avoid one mem->screen bitblt operation.