Ignore:
Timestamp:
Jul 25, 1999, 11:19:22 AM (26 years ago)
Author:
sandervl
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/new/pmwindow.cpp

    r342 r391  
    1 /* $Id: pmwindow.cpp,v 1.13 1999-07-20 07:42:36 sandervl Exp $ */
     1/* $Id: pmwindow.cpp,v 1.14 1999-07-25 09:19:21 sandervl Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    2929HAB  hab = 0;
    3030
     31RECTL desktopRectl = {0};
     32
    3133MRESULT EXPENTRY Win32WindowProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
    3234
     
    7678   }
    7779
     80   WinQueryWindowRect(HWND_DESKTOP, &desktopRectl);
     81   dprintf(("InitPM: Desktop (%d,%d)", desktopRectl.xRight, desktopRectl.yTop));
    7882   return OSLibInitMsgQueue();
    7983} /* End of main */
     
    194198    case WM_WINDOWPOSCHANGED:
    195199    {
    196         dprintf(("OS2: WM_WINDOWPOSCHANGED %x", hwnd));
     200     PSWP pswp = (PSWP)mp1;
     201
     202        dprintf(("OS2: WM_WINDOWPOSCHANGED %x %x (%d,%d) (%d,%d)", hwnd, pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy));
    197203        goto RunDefWndProc;
    198204    }
     
    220226     SWP swp;
    221227
    222         dprintf(("OS2: WM_SIZE %x", hwnd));
    223228        rc = WinQueryWindowPos(hwnd, &swp);
    224229        if(rc == FALSE) {
     
    226231                break;
    227232        }
     233        dprintf(("OS2: WM_SIZE %x %x (%d,%d) (%d,%d)", hwnd, swp.fl, swp.x, swp.y, swp.cx, swp.cy));
    228234        if(win32wnd->MsgSize(SHORT1FROMMP(mp2), SHORT2FROMMP(mp2),
    229235                                (swp.fl & SWP_MINIMIZE) != 0,
     
    258264      HWND hwndFocus = (HWND)mp1;
    259265
    260         dprintf(("OS2: WM_SETFOCUS %x", hwnd));
     266        dprintf(("OS2: WM_SETFOCUS %x %d", hwnd, mp2));
    261267        if(WinQueryWindowULong(hwndFocus, OFFSET_WIN32PM_MAGIC) != WIN32PM_MAGIC) {
    262268                //another (non-win32) application's window
     
    378384
    379385        //OS/2 Window coordinates -> Win32 Window coordinates
     386        //TODO: What do windows apps that handle this messages return?
    380387        if(!win32wnd->MsgMouseMove(keystate, SHORT1FROMMP(mp1), MapOS2ToWin32Y(win32wnd, SHORT2FROMMP(mp1)))) {
    381388                goto RunDefWndProc;
     
    403410
    404411    case WM_SYSCOMMAND:
    405         dprintf(("WM_SYSCOMMAND"));
    406         break;
    407 
     412    {
     413      ULONG x = 0, y = 0;
     414      ULONG win32sc;
     415
     416        if(SHORT2FROMMP(mp2) == TRUE) {//syscommand caused by mouse action
     417            POINTL pointl;
     418            WinQueryPointerPos(HWND_DESKTOP, &pointl);
     419            x = pointl.x;
     420            y = desktopRectl.yTop - y;
     421        }
     422        switch(SHORT1FROMMP(mp1)) {
     423        case SC_MOVE:
     424            win32sc = WIN32SC_MOVE;
     425            break;
     426        case SC_CLOSE:
     427            win32sc = WIN32SC_CLOSE;
     428            break;
     429        case SC_MAXIMIZE:
     430            win32sc = WIN32SC_MAXIMIZE;
     431            break;
     432        case SC_MINIMIZE:
     433            win32sc = WIN32SC_MINIMIZE;
     434            break;
     435        case SC_NEXTFRAME:
     436        case SC_NEXTWINDOW:
     437            win32sc = WIN32SC_NEXTWINDOW;
     438            break;
     439        case SC_RESTORE:
     440            win32sc = WIN32SC_RESTORE;
     441            break;
     442        case SC_TASKMANAGER:
     443            win32sc = WIN32SC_TASKLIST;
     444            break;
     445        default:
     446            goto RunDefWndProc;
     447        }
     448        dprintf(("WM_SYSCOMMAND %x %x (%d,%d)", hwnd, win32sc, x, y));
     449        if(win32wnd->MsgSysCommand(win32sc, x, y)) {
     450            goto RunDefWndProc;
     451        }
     452        break;
     453    }
    408454    case WM_CHAR:
    409         dprintf(("WM_CHAR"));
    410 
     455    {
     456     ULONG keyflags = 0, vkey = 0;
     457     ULONG fl = SHORT1FROMMP(mp1);
     458
     459        if(!(fl & KC_CHAR)) {
     460            dprintf(("WM_CHAR: no valid character code"));
     461            goto RunDefWndProc;
     462        }
     463        if(fl & KC_VIRTUALKEY) {
     464            vkey = SHORT2FROMMP(mp2);
     465        }
     466        if(fl & KC_KEYUP) {
     467            keyflags |= KEY_UP;
     468        }
     469        if(fl & KC_ALT) {
     470            keyflags |= KEY_ALTDOWN;
     471        }
     472        if(fl & KC_PREVDOWN) {
     473            keyflags |= KEY_PREVDOWN;
     474        }
     475        if(win32wnd->MsgChar(SHORT1FROMMP(mp2), CHAR3FROMMP(mp1), CHAR4FROMMP(mp1), vkey, keyflags)) {
     476            goto RunDefWndProc;
     477        }
     478        break;
     479    }
    411480    case WM_INITMENU:
    412481    case WM_MENUSELECT:
Note: See TracChangeset for help on using the changeset viewer.