Changeset 391 for trunk/src


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

* empty log message *

Location:
trunk/src/user32/new
Files:
7 edited

Legend:

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

    r328 r391  
    1 /* $Id: defwndproc.cpp,v 1.2 1999-07-18 14:39:34 sandervl Exp $ */
     1/* $Id: defwndproc.cpp,v 1.3 1999-07-25 09:19:21 sandervl Exp $ */
    22
    33/*
     
    2929    case WM_SETREDRAW: //Open32 does not set the visible flag
    3030        if(wParam)
    31                 SetWindowLongA (hwnd, GWL_STYLE, GetWindowLongA (hwnd, GWL_STYLE) | WS_VISIBLE);
     31                SetWindowLongA (hwnd, GWL_STYLE, GetWindowLongA (hwnd, GWL_STYLE) | WS_VISIBLE);
    3232        else    SetWindowLongA (hwnd, GWL_STYLE, GetWindowLongA (hwnd, GWL_STYLE) & ~WS_VISIBLE);
    3333
     
    7676    }
    7777    case WM_MOUSEMOVE:
    78         return 0;
    79        
     78        return 0;
     79
    8080    case WM_ERASEBKGND:
    8181    case WM_ICONERASEBKGND:
    82         return 0;
    83        
     82        return 0;
     83
    8484    case WM_NCLBUTTONDOWN:
    8585    case WM_NCLBUTTONUP:
     
    9191    case WM_NCMBUTTONUP:
    9292    case WM_NCMBUTTONDBLCLK:
    93                 return 0;           //TODO: Send WM_SYSCOMMAND if required
    94                
     93        return 0;           //TODO: Send WM_SYSCOMMAND if required
     94
    9595    case WM_NCHITTEST: //TODO:
    96         return 0;
    97        
     96        return 0;
     97
    9898    default:
    9999        return 1;
  • 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:
  • trunk/src/user32/new/user32.cpp

    r385 r391  
    1 /* $Id: user32.cpp,v 1.9 1999-07-24 14:01:44 sandervl Exp $ */
     1/* $Id: user32.cpp,v 1.10 1999-07-25 09:19:21 sandervl Exp $ */
    22
    33/*
     
    10731073}
    10741074//******************************************************************************
    1075 //******************************************************************************
    1076 BOOL WIN32API GetWindowPlacement( HWND arg1, LPWINDOWPLACEMENT arg2)
    1077 {
    1078 #ifdef DEBUG
    1079     WriteLog("USER32:  GetWindowPlacement\n");
    1080 #endif
    1081     return O32_GetWindowPlacement(arg1, arg2);
    1082 }
    1083 //******************************************************************************
    1084 
    1085 
    1086 //******************************************************************************
    1087 int WIN32API GetWindowTextLengthW( HWND arg1)
    1088 {
    1089 #ifdef DEBUG
    1090     WriteLog("USER32:  GetWindowTextLengthW\n");
    1091 #endif
    1092     return O32_GetWindowTextLength(arg1);
    1093 }
    1094 //******************************************************************************
    1095 //******************************************************************************
    1096 int WIN32API GetWindowTextW(HWND hwnd, LPWSTR lpsz, int cch)
    1097 {
    1098  char title[128];
    1099  int  rc;
    1100 
    1101    rc = O32_GetWindowText(hwnd, title, sizeof(title));
    1102 #ifdef DEBUG
    1103    WriteLog("USER32:  GetWindowTextW returned %s\n", title);
    1104 #endif
    1105    if(rc > cch) {
    1106     title[cch-1] = 0;
    1107     rc = cch;
    1108    }
    1109    AsciiToUnicode(title, lpsz);
    1110    return(rc);
    1111 }
     1075
     1076
     1077//******************************************************************************
    11121078//******************************************************************************
    11131079//******************************************************************************
  • trunk/src/user32/new/win32wnd.cpp

    r385 r391  
    1 /* $Id: win32wnd.cpp,v 1.20 1999-07-24 14:01:45 sandervl Exp $ */
     1/* $Id: win32wnd.cpp,v 1.21 1999-07-25 09:19:22 sandervl Exp $ */
    22/*
    33 * Win32 Window Code for OS/2
     
    354354                                 dwOSWinStyle, dwOSFrameStyle, (char *)cs->lpszName,
    355355                                 (owner) ? owner->getOS2WindowHandle() : 0,
    356                  (hwndLinkAfter == HWND_BOTTOM) ? TRUE : FALSE,
     356                                 (hwndLinkAfter == HWND_BOTTOM) ? TRUE : FALSE,
    357357                                 &OS2HwndFrame);
    358358
     
    397397  //Set icon from class
    398398  if(windowClass->getIcon())
    399     SetIcon(windowClass->getIcon());
     399        SetIcon(windowClass->getIcon());
    400400
    401401  /* Send the WM_CREATE message
     
    408408  {
    409409        SendNCCalcSize(FALSE, &rectWindow, NULL, NULL, 0, &rectClient );
    410         OffsetRect(&rectWindow, maxPos.x - rectWindow.left,
    411                                           maxPos.y - rectWindow.top);
     410        OffsetRect(&rectWindow, maxPos.x - rectWindow.left, maxPos.y - rectWindow.top);
    412411        dprintf(("Sending WM_CREATE"));
    413412        if( (SendInternalMessage(WM_CREATE, 0, (LPARAM)cs )) != -1 )
     
    426425                HOOK_CallHooks16( WH_SHELL, HSHELL_WINDOWCREATED, hwnd, 0 );
    427426#endif
    428     SetLastError(0);
    429         return TRUE;
     427            SetLastError(0);
     428            return TRUE;
    430429        }
    431430  }
     
    724723 WORD fwSizeType = 0;
    725724
    726   if(fMinimize) {
    727         fwSizeType = SIZE_MINIMIZED;
    728   }
    729   else
    730   if(fMaximize) {
    731         fwSizeType = SIZE_MAXIMIZED;
    732   }
    733   else  fwSizeType = SIZE_RESTORED;
    734 
    735   return SendInternalMessageA(WM_SIZE, fwSizeType, MAKELONG((USHORT)width, (USHORT)height));
     725    if(fMinimize) {
     726            fwSizeType = SIZE_MINIMIZED;
     727    }
     728    else
     729    if(fMaximize) {
     730            fwSizeType = SIZE_MAXIMIZED;
     731    }
     732    else    fwSizeType = SIZE_RESTORED;
     733
     734    return SendInternalMessageA(WM_SIZE, fwSizeType, MAKELONG((USHORT)width, (USHORT)height));
    736735}
    737736//******************************************************************************
     
    739738ULONG Win32Window::MsgActivate(BOOL fActivate, HWND hwnd)
    740739{
    741   return SendInternalMessageA(WM_ACTIVATE, (fActivate) ? WA_ACTIVE : WA_INACTIVE, hwnd);
     740    return SendInternalMessageA(WM_ACTIVATE, (fActivate) ? WA_ACTIVE : WA_INACTIVE, hwnd);
     741}
     742//******************************************************************************
     743//******************************************************************************
     744ULONG Win32Window::MsgSysCommand(ULONG win32sc, ULONG x, ULONG y)
     745{
     746    return SendInternalMessageA(WM_SYSCOMMAND, win32sc, MAKELONG((USHORT)x, (USHORT)y));
     747}
     748//******************************************************************************
     749//TODO: virtual key translation & extended keyboard bit
     750//******************************************************************************
     751ULONG Win32Window::MsgChar(ULONG cmd, ULONG repeatcnt, ULONG scancode, ULONG vkey, ULONG keyflags)
     752{
     753 ULONG lParam = 0;
     754
     755    lParam  = repeatcnt;
     756    lParam |= (scancode << 16);
     757    if(keyflags & KEY_ALTDOWN)
     758        lParam |= (1<<29);
     759    if(keyflags & KEY_PREVDOWN)
     760        lParam |= (1<<30);
     761    if(keyflags & KEY_UP)
     762        lParam |= (1<<31);
     763    dprintf(("WM_CHAR: %x %x %08x", OS2Hwnd, cmd, lParam));
     764    return SendInternalMessageA(WM_CHAR, cmd, lParam);
    742765}
    743766//******************************************************************************
     
    745768ULONG Win32Window::MsgSetFocus(HWND hwnd)
    746769{
    747   return SendInternalMessageA(WM_SETFOCUS, hwnd, 0);
     770    return SendInternalMessageA(WM_SETFOCUS, hwnd, 0);
    748771}
    749772//******************************************************************************
     
    751774ULONG Win32Window::MsgKillFocus(HWND hwnd)
    752775{
    753   return SendInternalMessageA(WM_KILLFOCUS, hwnd, 0);
     776    return SendInternalMessageA(WM_KILLFOCUS, hwnd, 0);
    754777}
    755778//******************************************************************************
     
    760783 ULONG win32ncmsg;
    761784
    762   dprintf(("MsgButton to (%d,%d)", x, y));
    763   switch(msg) {
     785    dprintf(("MsgButton to (%d,%d)", x, y));
     786    switch(msg) {
    764787        case BUTTON_LEFTDOWN:
    765788                win32msg = WM_LBUTTONDOWN;
     
    801824                dprintf(("Win32Window::Button: invalid msg!!!!"));
    802825                return 1;
    803   }
    804   SendInternalMessageA(win32ncmsg, lastHitTestVal, MAKELONG(x, y)); //TODO:
    805   return SendInternalMessageA(win32msg, 0, MAKELONG(x, y));
     826    }
     827    SendInternalMessageA(win32ncmsg, lastHitTestVal, MAKELONG(x, y)); //TODO:
     828    return SendInternalMessageA(win32msg, 0, MAKELONG(x, y));
    806829}
    807830//******************************************************************************
  • trunk/src/user32/new/win32wnd.h

    r345 r391  
    1 /* $Id: win32wnd.h,v 1.17 1999-07-20 15:46:54 sandervl Exp $ */
     1/* $Id: win32wnd.h,v 1.18 1999-07-25 09:19:22 sandervl Exp $ */
    22/*
    33 * Win32 Window Code for OS/2
     
    6666         ULONG  MsgKillFocus(HWND hwnd);
    6767         ULONG  MsgCommand(ULONG cmd, ULONG Id, HWND hwnd);
     68         ULONG  MsgSysCommand(ULONG win32sc, ULONG x, ULONG y);
     69         ULONG  MsgChar(ULONG cmd, ULONG repeatcnt, ULONG scancode, ULONG vkey, ULONG keyflags);
    6870         ULONG  MsgButton(ULONG msg, ULONG x, ULONG y);
    6971         ULONG  MsgMouseMove(ULONG keystate, ULONG x, ULONG y);
     
    8183         HWND   getWindowHandle()               { return Win32Hwnd; };
    8284         HWND   getOS2WindowHandle()            { return OS2Hwnd; };
     85         HWND   getOS2FrameWindowHandle()       { return OS2HwndFrame; };
    8386   Win32Window *getParent()                     { return (Win32Window *)ChildWindow::GetParent(); };
    8487         void   setParent(Win32Window *pwindow) { ChildWindow::SetParent((ChildWindow *)pwindow); };
     
    254257#define CMD_ACCELERATOR         3
    255258
     259#define WIN32SC_SIZE         0xf000
     260#define WIN32SC_MOVE         0xf010
     261#define WIN32SC_MINIMIZE     0xf020
     262#define WIN32SC_MAXIMIZE     0xf030
     263#define WIN32SC_NEXTWINDOW   0xf040
     264#define WIN32SC_PREVWINDOW   0xf050
     265#define WIN32SC_CLOSE        0xf060
     266#define WIN32SC_VSCROLL      0xf070
     267#define WIN32SC_HSCROLL      0xf080
     268#define WIN32SC_MOUSEMENU    0xf090
     269#define WIN32SC_KEYMENU      0xf100
     270#define WIN32SC_ARRANGE      0xf110
     271#define WIN32SC_RESTORE      0xf120
     272#define WIN32SC_TASKLIST     0xf130
     273#define WIN32SC_SCREENSAVE   0xf140
     274#define WIN32SC_HOTKEY       0xf150
     275
     276#define KEY_ALTDOWN             1
     277#define KEY_PREVDOWN            2
     278#define KEY_UP                  4
     279
    256280#endif //__cplusplus
    257281
  • trunk/src/user32/new/window.cpp

    r385 r391  
    1 /* $Id: window.cpp,v 1.9 1999-07-24 14:01:45 sandervl Exp $ */
     1/* $Id: window.cpp,v 1.10 1999-07-25 09:19:22 sandervl Exp $ */
    22/*
    33 * Win32 window apis for OS/2
     
    299299//******************************************************************************
    300300//******************************************************************************
    301 HDC WIN32API GetWindowDC(HWND arg1)
    302 {
    303 #ifdef DEBUG
    304     WriteLog("USER32:  GetWindowDC\n");
    305 #endif
    306     return O32_GetWindowDC(arg1);
    307 }
    308 //******************************************************************************
    309 //******************************************************************************
    310301BOOL WIN32API EnableWindow( HWND hwnd, BOOL fEnable)
    311302{
     
    374365    dprintf(("USER32:  SetWindowPlacement\n"));
    375366    return O32_SetWindowPlacement(arg1, arg2);
     367}
     368//******************************************************************************
     369//******************************************************************************
     370BOOL WIN32API GetWindowPlacement( HWND arg1, LPWINDOWPLACEMENT arg2)
     371{
     372#ifdef DEBUG
     373    WriteLog("USER32:  GetWindowPlacement\n");
     374#endif
     375    return O32_GetWindowPlacement(arg1, arg2);
    376376}
    377377//******************************************************************************
     
    455455             ptIcon));
    456456
    457     if (O32_GetWindowPlacement( hwnd, &wndpl ))
     457    if (GetWindowPlacement( hwnd, &wndpl ))
    458458    {
    459459        if (rectWnd) *rectWnd = wndpl.rcNormalPosition;
     
    537537    dprintf(("GetWindowTextA %x", hwnd));
    538538    return window->GetWindowTextA(lpsz, cch);
     539}
     540//******************************************************************************
     541//******************************************************************************
     542int WIN32API GetWindowTextLengthW( HWND hwnd)
     543{
     544    dprintf(("USER32:  GetWindowTextLengthW\n"));
     545    return GetWindowTextLengthA(hwnd);
     546}
     547//******************************************************************************
     548//******************************************************************************
     549int WIN32API GetWindowTextW(HWND hwnd, LPWSTR lpsz, int cch)
     550{
     551 char title[128];
     552 int  rc;
     553
     554   rc = O32_GetWindowText(hwnd, title, sizeof(title));
     555#ifdef DEBUG
     556   WriteLog("USER32:  GetWindowTextW returned %s\n", title);
     557#endif
     558   if(rc > cch) {
     559    title[cch-1] = 0;
     560    rc = cch;
     561   }
     562   AsciiToUnicode(title, lpsz);
     563   return(rc);
    539564}
    540565//******************************************************************************
  • trunk/src/user32/new/wingdi.cpp

    r385 r391  
    1 /* $Id: wingdi.cpp,v 1.6 1999-07-24 14:01:45 sandervl Exp $ */
     1/* $Id: wingdi.cpp,v 1.7 1999-07-25 09:19:22 sandervl Exp $ */
    22/*
    33 * Win32 Window graphics apis for OS/2
     
    9797//******************************************************************************
    9898//******************************************************************************
     99HDC WIN32API GetWindowDC(HWND hwnd)
     100{
     101  Win32Window *window;
     102
     103   window = Win32Window::GetWindowFromHandle(hwnd);
     104   if(!window) {
     105    dprintf(("GetWindowDC, window %x not found", hwnd));
     106    return 0;
     107   }
     108   dprintf(("GetWindowDC %x", hwnd));
     109#ifdef OPEN32_GDI
     110   return O32_GetWindowDC(window->getOS2WindowHandle());
     111#else
     112   return OSLibWinGetPS(window->getOS2FrameWindowHandle());
     113#endif
     114}
     115//******************************************************************************
     116//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.