Ignore:
Timestamp:
Jul 18, 1999, 4:39:35 PM (26 years ago)
Author:
sandervl
Message:

* empty log message *

File:
1 edited

Legend:

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

    r327 r328  
    1 /* $Id: win32wnd.cpp,v 1.10 1999-07-18 13:57:48 cbratschi Exp $ */
     1/* $Id: win32wnd.cpp,v 1.11 1999-07-18 14:39:35 sandervl Exp $ */
    22/*
    33 * Win32 Window Code for OS/2
     
    9595  flags            = 0;
    9696  isIcon           = FALSE;
     97  lastHitTestVal   = 0;
    9798  owner            = NULL;
    9899  windowClass      = 0;
     
    128129                dprintf(("Bad parent %04x\n", cs->hwndParent ));
    129130                SetLastError(ERROR_INVALID_PARAMETER);
    130                 return FALSE;
     131        return FALSE;
    131132        }
    132133        /* Make sure parent is valid */
     
    231232  if ((cs->style & WS_CHILD) && cs->hwndParent)
    232233  {
    233         SetParent(cs->hwndParent);
     234    SetParent(cs->hwndParent);
    234235  }
    235236  else
     
    240241        else
    241242        {
    242                 owner = GetWindowFromHandle(cs->hwndParent);
     243        owner = GetWindowFromHandle(cs->hwndParent);
    243244                if(owner == NULL)
    244245                {
     
    263264    if (HOOK_IsHooked( WH_CBT ))
    264265    {
    265         CBT_CREATEWNDA cbtc;
     266    CBT_CREATEWNDA cbtc;
    266267        LRESULT ret;
    267268
    268         cbtc.lpcs = cs;
    269         cbtc.hwndInsertAfter = hwndLinkAfter;
     269    cbtc.lpcs = cs;
     270    cbtc.hwndInsertAfter = hwndLinkAfter;
    270271        ret = unicode ? HOOK_CallHooksW(WH_CBT, HCBT_CREATEWND, Win32Hwnd, (LPARAM)&cbtc)
    271272                      : HOOK_CallHooksA(WH_CBT, HCBT_CREATEWND, Win32Hwnd, (LPARAM)&cbtc);
    272273        if (ret)
    273         {
    274             TRACE_(win)("CBT-hook returned 0\n");
    275             wndPtr->pDriver->pFinalize(wndPtr);
     274    {
     275        TRACE_(win)("CBT-hook returned 0\n");
     276        wndPtr->pDriver->pFinalize(wndPtr);
    276277            retvalue =  0;
    277278            goto end;
    278         }
     279    }
    279280    }
    280281#endif
     
    337338                                 dwOSWinStyle, dwOSFrameStyle, (char *)cs->lpszName,
    338339                                 (owner) ? owner->getOS2WindowHandle() : 0,
    339                                  (hwndLinkAfter == HWND_BOTTOM) ? TRUE : FALSE,
     340                 (hwndLinkAfter == HWND_BOTTOM) ? TRUE : FALSE,
    340341                                 &OS2HwndFrame);
    341342
     
    354355#if 0
    355356  if(OS2Hwnd != OS2HwndFrame) {
    356         if(OSLibWinSetWindowULong(OS2HwndFrame, OFFSET_WIN32WNDPTR, (ULONG)this) == FALSE) {
    357                 dprintf(("WM_CREATE: WinSetWindowULong %X failed!!", OS2HwndFrame));
    358                 return FALSE;
    359         }
    360         if(OSLibWinSetWindowULong(OS2HwndFrame, OFFSET_WIN32PM_MAGIC, WIN32PM_MAGIC) == FALSE) {
    361                 dprintf(("WM_CREATE: WinSetWindowULong2 %X failed!!", OS2HwndFrame));
    362                 return FALSE;
    363         }
     357    if(OSLibWinSetWindowULong(OS2HwndFrame, OFFSET_WIN32WNDPTR, (ULONG)this) == FALSE) {
     358            dprintf(("WM_CREATE: WinSetWindowULong %X failed!!", OS2HwndFrame));
     359            return FALSE;
     360    }
     361    if(OSLibWinSetWindowULong(OS2HwndFrame, OFFSET_WIN32PM_MAGIC, WIN32PM_MAGIC) == FALSE) {
     362            dprintf(("WM_CREATE: WinSetWindowULong2 %X failed!!", OS2HwndFrame));
     363            return FALSE;
     364    }
    364365  }
    365366#endif
     
    389390        OffsetRect(&rectWindow, maxPos.x - rectWindow.left,
    390391                                          maxPos.y - rectWindow.top);
    391         dprintf(("Sending WM_CREATE"));
     392    dprintf(("Sending WM_CREATE"));
    392393        if( (SendInternalMessage(WM_CREATE, 0, (LPARAM)cs )) != -1 )
    393394        {
    394395            SetWindowPos(HWND_TOP, rectClient.left, rectClient.top,
    395                          rectClient.right-rectClient.left,
    396                          rectClient.bottom-rectClient.top,
    397                          SWP_NOACTIVATE);
     396             rectClient.right-rectClient.left,
     397             rectClient.bottom-rectClient.top,
     398             SWP_NOACTIVATE);
    398399
    399400            if (cs->style & WS_VISIBLE) ShowWindow( sw );
     
    405406                HOOK_CallHooks16( WH_SHELL, HSHELL_WINDOWCREATED, hwnd, 0 );
    406407#endif
    407             return TRUE;
     408        return TRUE;
    408409        }
    409410  }
     
    429430    if (lpPos && !HOOK_CallHooks16(WH_CBT, HCBT_MINMAX, hwndSelf, cmd))
    430431    {
    431         if( dwStyle & WS_MINIMIZE )
    432         {
    433             if( !SendInternalMessageA(WM_QUERYOPEN, 0, 0L ) )
    434                 return (SWP_NOSIZE | SWP_NOMOVE);
    435             swpFlags |= SWP_NOCOPYBITS;
    436         }
    437         switch( cmd )
    438         {
    439             case SW_MINIMIZE:
    440                  if( dwStyle & WS_MAXIMIZE)
    441                  {
    442                      flags |= WIN_RESTORE_MAX;
    443                      dwStyle &= ~WS_MAXIMIZE;
     432    if( dwStyle & WS_MINIMIZE )
     433    {
     434        if( !SendInternalMessageA(WM_QUERYOPEN, 0, 0L ) )
     435        return (SWP_NOSIZE | SWP_NOMOVE);
     436        swpFlags |= SWP_NOCOPYBITS;
     437    }
     438    switch( cmd )
     439    {
     440        case SW_MINIMIZE:
     441         if( dwStyle & WS_MAXIMIZE)
     442         {
     443             flags |= WIN_RESTORE_MAX;
     444             dwStyle &= ~WS_MAXIMIZE;
    444445                 }
    445446                 else
    446                      flags &= ~WIN_RESTORE_MAX;
    447                  dwStyle |= WS_MINIMIZE;
     447             flags &= ~WIN_RESTORE_MAX;
     448         dwStyle |= WS_MINIMIZE;
    448449
    449450#if 0
    450                  if( flags & WIN_NATIVE )
    451                      if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, TRUE ) )
    452                          swpFlags |= MINMAX_NOSWP;
     451         if( flags & WIN_NATIVE )
     452             if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, TRUE ) )
     453             swpFlags |= MINMAX_NOSWP;
    453454#endif
    454455
    455                  lpPos->ptIconPos = WINPOS_FindIconPos( wndPtr, lpPos->ptIconPos );
    456 
    457                  SetRect(lpRect, lpPos->ptIconPos.x, lpPos->ptIconPos.y,
    458                          GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON) );
    459                  swpFlags |= SWP_NOCOPYBITS;
    460                  break;
    461 
    462             case SW_MAXIMIZE:
     456         lpPos->ptIconPos = WINPOS_FindIconPos( wndPtr, lpPos->ptIconPos );
     457
     458         SetRect(lpRect, lpPos->ptIconPos.x, lpPos->ptIconPos.y,
     459             GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON) );
     460         swpFlags |= SWP_NOCOPYBITS;
     461         break;
     462
     463        case SW_MAXIMIZE:
    463464                CONV_POINT16TO32( &lpPos->ptMaxPos, &pt );
    464465                WINPOS_GetMinMaxInfo( wndPtr, &size, &pt, NULL, NULL );
    465466                CONV_POINT32TO16( &pt, &lpPos->ptMaxPos );
    466467
    467                  if( dwStyle & WS_MINIMIZE )
    468                  {
    469                      if( flags & WIN_NATIVE )
    470                          if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, FALSE ) )
    471                              swpFlags |= MINMAX_NOSWP;
    472 
    473                      WINPOS_ShowIconTitle( wndPtr, FALSE );
    474                      dwStyle &= ~WS_MINIMIZE;
    475                  }
     468         if( dwStyle & WS_MINIMIZE )
     469         {
     470             if( flags & WIN_NATIVE )
     471             if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, FALSE ) )
     472                 swpFlags |= MINMAX_NOSWP;
     473
     474             WINPOS_ShowIconTitle( wndPtr, FALSE );
     475             dwStyle &= ~WS_MINIMIZE;
     476         }
    476477                 dwStyle |= WS_MAXIMIZE;
    477478
    478                  SetRect16( lpRect, lpPos->ptMaxPos.x, lpPos->ptMaxPos.y,
    479                                     size.x, size.y );
    480                  break;
    481 
    482             case SW_RESTORE:
    483                  if( dwStyle & WS_MINIMIZE )
    484                  {
    485                      if( flags & WIN_NATIVE )
    486                          if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, FALSE ) )
    487                              swpFlags |= MINMAX_NOSWP;
    488 
    489                      dwStyle &= ~WS_MINIMIZE;
    490                      WINPOS_ShowIconTitle( wndPtr, FALSE );
    491 
    492                      if( flags & WIN_RESTORE_MAX)
    493                      {
    494                          /* Restore to maximized position */
     479         SetRect16( lpRect, lpPos->ptMaxPos.x, lpPos->ptMaxPos.y,
     480                    size.x, size.y );
     481         break;
     482
     483        case SW_RESTORE:
     484         if( dwStyle & WS_MINIMIZE )
     485         {
     486             if( flags & WIN_NATIVE )
     487             if( pDriver->pSetHostAttr( wndPtr, HAK_ICONICSTATE, FALSE ) )
     488                 swpFlags |= MINMAX_NOSWP;
     489
     490             dwStyle &= ~WS_MINIMIZE;
     491             WINPOS_ShowIconTitle( wndPtr, FALSE );
     492
     493             if( flags & WIN_RESTORE_MAX)
     494             {
     495             /* Restore to maximized position */
    495496                         CONV_POINT16TO32( &lpPos->ptMaxPos, &pt );
    496497                         WINPOS_GetMinMaxInfo( wndPtr, &size, &pt, NULL, NULL);
    497498                         CONV_POINT32TO16( &pt, &lpPos->ptMaxPos );
    498                          dwStyle |= WS_MAXIMIZE;
    499                          SetRect16( lpRect, lpPos->ptMaxPos.x, lpPos->ptMaxPos.y, size.x, size.y );
    500                          break;
    501                      }
    502                  }
    503                  else
    504                      if( !(dwStyle & WS_MAXIMIZE) ) return (UINT16)(-1);
    505                      else dwStyle &= ~WS_MAXIMIZE;
    506 
    507                  /* Restore to normal position */
    508 
    509                 *lpRect = lpPos->rectNormal;
    510                  lpRect->right -= lpRect->left;
    511                  lpRect->bottom -= lpRect->top;
    512 
    513                  break;
    514         }
     499             dwStyle |= WS_MAXIMIZE;
     500             SetRect16( lpRect, lpPos->ptMaxPos.x, lpPos->ptMaxPos.y, size.x, size.y );
     501             break;
     502             }
     503         }
     504         else
     505             if( !(dwStyle & WS_MAXIMIZE) ) return (UINT16)(-1);
     506             else dwStyle &= ~WS_MAXIMIZE;
     507
     508         /* Restore to normal position */
     509
     510        *lpRect = lpPos->rectNormal;
     511         lpRect->right -= lpRect->left;
     512         lpRect->bottom -= lpRect->top;
     513
     514         break;
     515    }
    515516    } else swpFlags |= SWP_NOSIZE | SWP_NOMOVE;
    516517    return swpFlags;
     
    611612   {
    612613        winposCopy = *winpos;
    613         params.rgrc[1] = *oldWindowRect;
    614         params.rgrc[2] = *oldClientRect;
    615         params.lppos = &winposCopy;
     614    params.rgrc[1] = *oldWindowRect;
     615    params.rgrc[2] = *oldClientRect;
     616    params.lppos = &winposCopy;
    616617   }
    617618   result = SendInternalMessageA(WM_NCCALCSIZE, calcValidRect,
     
    665666//******************************************************************************
    666667ULONG Win32Window::MsgMove(ULONG xParent, ULONG yParent)
    667 {
    668   return 0;
     668{       
     669  return SendInternalMessageA(WM_MOVE, 0, MAKELONG((USHORT)xParent, (USHORT)yParent));
     670}
     671//******************************************************************************
     672//******************************************************************************
     673ULONG Win32Window::MsgHitTest(ULONG x, ULONG y)
     674{
     675  lastHitTestVal = SendInternalMessageA(WM_NCHITTEST, 0, MAKELONG((USHORT)x, (USHORT)y));
     676  return 1; //TODO: May need to change this
    669677}
    670678//******************************************************************************
     
    709717{
    710718 ULONG win32msg;
     719 ULONG win32ncmsg;
    711720
    712721  switch(msg) {
    713722        case BUTTON_LEFTDOWN:
    714723                win32msg = WM_LBUTTONDOWN;
     724                win32ncmsg = WM_NCLBUTTONDOWN;
    715725                break;
    716726        case BUTTON_LEFTUP:
    717727                win32msg = WM_LBUTTONUP;
     728                win32ncmsg = WM_NCLBUTTONUP;
    718729                break;
    719730        case BUTTON_LEFTDBLCLICK:
    720731                win32msg = WM_LBUTTONDBLCLK;
     732                win32ncmsg = WM_NCLBUTTONDBLCLK;
    721733                break;
    722734        case BUTTON_RIGHTUP:
    723735                win32msg = WM_RBUTTONUP;
     736                win32ncmsg = WM_NCRBUTTONUP;
    724737                break;
    725738        case BUTTON_RIGHTDOWN:
    726739                win32msg = WM_RBUTTONDOWN;
     740                win32ncmsg = WM_NCRBUTTONDOWN;
    727741                break;
    728742        case BUTTON_RIGHTDBLCLICK:
    729743                win32msg = WM_RBUTTONDBLCLK;
     744                win32ncmsg = WM_NCRBUTTONDBLCLK;
     745                break;
     746        case BUTTON_MIDDLEUP:
     747                win32msg = WM_MBUTTONUP;
     748                win32ncmsg = WM_NCMBUTTONUP;
     749                break;
     750        case BUTTON_MIDDLEDOWN:
     751                win32msg = WM_MBUTTONDOWN;
     752                win32ncmsg = WM_NCMBUTTONDOWN;
     753                break;
     754        case BUTTON_MIDDLEDBLCLICK:
     755                win32msg = WM_MBUTTONDBLCLK;
     756                win32ncmsg = WM_NCMBUTTONDBLCLK;
    730757                break;
    731758        default:
     
    733760                return 1;
    734761  }
    735   return SendInternalMessageA(win32msg, 0, MAKELONG(x, MapOS2ToWin32Y(OS2Hwnd, y)));
     762  SendInternalMessageA(win32ncmsg, lastHitTestVal, MAKELONG(x, y)); //TODO:
     763  return SendInternalMessageA(win32msg, 0, MAKELONG(x, y));
     764}
     765//******************************************************************************
     766//******************************************************************************
     767ULONG Win32Window::MsgMouseMove(ULONG keystate, ULONG x, ULONG y)
     768{
     769ULONG winstate = 0;
     770
     771  if(keystate & WMMOVE_LBUTTON)
     772        winstate |= MK_LBUTTON;
     773  if(keystate & WMMOVE_RBUTTON)
     774        winstate |= MK_RBUTTON;
     775  if(keystate & WMMOVE_MBUTTON)
     776        winstate |= MK_MBUTTON;
     777  if(keystate & WMMOVE_SHIFT)
     778        winstate |= MK_SHIFT;
     779  if(keystate & WMMOVE_CTRL)
     780        winstate |= MK_CONTROL;
     781       
     782   return SendInternalMessageA(WM_MOUSEMOVE, keystate, MAKELONG(x, y));
    736783}
    737784//******************************************************************************
     
    745792ULONG Win32Window::MsgEraseBackGround(ULONG hps)
    746793{
    747   return SendInternalMessageA(WM_ERASEBKGND, hps, 0);
     794        if(isIcon) {
     795                        return SendInternalMessageA(WM_ICONERASEBKGND, hps, 0);
     796        }
     797        else    return SendInternalMessageA(WM_ERASEBKGND, hps, 0);
    748798}
    749799//******************************************************************************
     
    752802{
    753803  if(isUnicode) {
    754         return SendInternalMessageW(WM_SETTEXT, 0, (LPARAM)lpsz);
     804        return SendInternalMessageW(WM_SETTEXT, 0, (LPARAM)lpsz);
    755805  }
    756806  else  return SendInternalMessageA(WM_SETTEXT, 0, (LPARAM)lpsz);
     
    843893{
    844894  if(PostSpyMessage(getWindowHandle(), Msg, wParam, lParam) == FALSE)
    845 
    846895        dprintf(("SendInternalMessageA %s for %x %x %x", GetMsgText(Msg), getWindowHandle(), wParam, lParam));
    847896
     
    929978  postmsg = (POSTMSG_PACKET *)malloc(sizeof(POSTMSG_PACKET));
    930979  if(postmsg == NULL) {
    931         dprintf(("Win32Window::PostMessageA: malloc returned NULL!!"));
    932         return 0;
     980    dprintf(("Win32Window::PostMessageA: malloc returned NULL!!"));
     981    return 0;
    933982  }
    934983  postmsg->Msg    = msg;
     
    945994  postmsg = (POSTMSG_PACKET *)malloc(sizeof(POSTMSG_PACKET));
    946995  if(postmsg == NULL) {
    947         dprintf(("Win32Window::PostMessageW: malloc returned NULL!!"));
    948         return 0;
     996    dprintf(("Win32Window::PostMessageW: malloc returned NULL!!"));
     997    return 0;
    949998  }
    950999  postmsg->Msg    = msg;
     
    9871036   if(HMHandleTranslateToOS2(hMenu, (PULONG)&menutemplate) == NO_ERROR)
    9881037   {
    989         OS2HwndMenu = OSLibWinCreateMenu(OS2HwndFrame, menutemplate);
    990         if(OS2HwndMenu == 0) {
    991                 dprintf(("Win32Window::SetMenu OS2HwndMenu == 0"));
    992                 return FALSE;
    993         }
     1038    OS2HwndMenu = OSLibWinCreateMenu(OS2HwndFrame, menutemplate);
     1039    if(OS2HwndMenu == 0) {
     1040        dprintf(("Win32Window::SetMenu OS2HwndMenu == 0"));
     1041        return FALSE;
     1042    }
    9941043   }
    9951044   dprintf(("Win32Window::SetMenu unknown hMenu (%x)", hMenu));
     
    10051054  switch(nCmdShow)
    10061055  {
    1007         case SW_SHOW:
    1008         case SW_SHOWDEFAULT: //todo
    1009                 showstate = SWPOS_SHOW | SWPOS_ACTIVATE;
    1010                 break;
    1011         case SW_HIDE:
    1012                 showstate = SWPOS_HIDE;
    1013                 break;
    1014         case SW_RESTORE:
    1015                 showstate = SWPOS_RESTORE | SWPOS_SHOW | SWPOS_ACTIVATE;
    1016                 break;
    1017         case SW_MINIMIZE:
    1018                 showstate = SWPOS_MINIMIZE;
    1019                 break;
    1020         case SW_SHOWMAXIMIZED:
    1021                 showstate = SWPOS_MAXIMIZE | SWPOS_SHOW | SWPOS_ACTIVATE;
    1022                 break;
    1023         case SW_SHOWMINIMIZED:
    1024                 showstate = SWPOS_MINIMIZE | SWPOS_SHOW | SWPOS_ACTIVATE;
    1025                 break;
    1026         case SW_SHOWMINNOACTIVE:
    1027                 showstate = SWPOS_MINIMIZE | SWPOS_SHOW;
    1028                 break;
    1029         case SW_SHOWNA:
    1030                 showstate = SWPOS_SHOW;
    1031                 break;
    1032         case SW_SHOWNOACTIVATE:
    1033                 showstate = SWPOS_SHOW;
    1034                 break;
    1035         case SW_SHOWNORMAL:
    1036                 showstate = SWPOS_RESTORE | SWPOS_ACTIVATE | SWPOS_SHOW;
    1037                 break;
     1056    case SW_SHOW:
     1057    case SW_SHOWDEFAULT: //todo
     1058        showstate = SWPOS_SHOW | SWPOS_ACTIVATE;
     1059        break;
     1060    case SW_HIDE:
     1061        showstate = SWPOS_HIDE;
     1062        break;
     1063    case SW_RESTORE:
     1064        showstate = SWPOS_RESTORE | SWPOS_SHOW | SWPOS_ACTIVATE;
     1065        break;
     1066    case SW_MINIMIZE:
     1067        showstate = SWPOS_MINIMIZE;
     1068        break;
     1069    case SW_SHOWMAXIMIZED:
     1070        showstate = SWPOS_MAXIMIZE | SWPOS_SHOW | SWPOS_ACTIVATE;
     1071        break;
     1072    case SW_SHOWMINIMIZED:
     1073        showstate = SWPOS_MINIMIZE | SWPOS_SHOW | SWPOS_ACTIVATE;
     1074        break;
     1075    case SW_SHOWMINNOACTIVE:
     1076        showstate = SWPOS_MINIMIZE | SWPOS_SHOW;
     1077        break;
     1078    case SW_SHOWNA:
     1079        showstate = SWPOS_SHOW;
     1080        break;
     1081    case SW_SHOWNOACTIVATE:
     1082        showstate = SWPOS_SHOW;
     1083        break;
     1084    case SW_SHOWNORMAL:
     1085        showstate = SWPOS_RESTORE | SWPOS_ACTIVATE | SWPOS_SHOW;
     1086        break;
    10381087  }
    10391088  return OSLibWinShowWindow(OS2HwndFrame, showstate);
     
    10471096
    10481097  switch(hwndInsertAfter) {
    1049         case HWND_BOTTOM:
    1050                 hwndInsertAfter = HWNDOS_BOTTOM;
    1051                 break;
    1052         case HWND_TOPMOST: //TODO:
    1053         case HWND_NOTOPMOST: //TODO:
    1054         case HWND_TOP:
    1055                 hwndInsertAfter = HWNDOS_TOP;
    1056                 break;
    1057         default:
    1058                 window = GetWindowFromHandle(hwndInsertAfter);
    1059                 if(window) {
    1060                         hwndInsertAfter = window->getOS2WindowHandle();
    1061                 }
    1062                 else {
    1063                         dprintf(("Win32Window::SetWindowPos, unknown hwndInsertAfter %x", hwndInsertAfter));
    1064                         hwndInsertAfter = 0;
    1065                 }
    1066                 break;
     1098    case HWND_BOTTOM:
     1099        hwndInsertAfter = HWNDOS_BOTTOM;
     1100        break;
     1101    case HWND_TOPMOST: //TODO:
     1102    case HWND_NOTOPMOST: //TODO:
     1103    case HWND_TOP:
     1104        hwndInsertAfter = HWNDOS_TOP;
     1105        break;
     1106    default:
     1107        window = GetWindowFromHandle(hwndInsertAfter);
     1108        if(window) {
     1109            hwndInsertAfter = window->getOS2WindowHandle();
     1110        }
     1111        else {
     1112            dprintf(("Win32Window::SetWindowPos, unknown hwndInsertAfter %x", hwndInsertAfter));
     1113            hwndInsertAfter = 0;
     1114        }
     1115        break;
    10671116
    10681117  }
    10691118  setstate = SWPOS_MOVE | SWPOS_SIZE | SWPOS_ACTIVATE | SWPOS_ZORDER;
    10701119  if(fuFlags & SWP_DRAWFRAME)
    1071         setstate |= 0; //TODO
     1120    setstate |= 0; //TODO
    10721121  if(fuFlags & SWP_FRAMECHANGED)
    1073         setstate |= 0; //TODO
     1122    setstate |= 0; //TODO
    10741123  if(fuFlags & SWP_HIDEWINDOW)
    1075         setstate &= ~SWPOS_ZORDER;
     1124    setstate &= ~SWPOS_ZORDER;
    10761125  if(fuFlags & SWP_NOACTIVATE)
    1077         setstate &= ~SWPOS_ACTIVATE;
     1126    setstate &= ~SWPOS_ACTIVATE;
    10781127  if(fuFlags & SWP_NOCOPYBITS)
    1079         setstate |= 0;          //TODO
     1128    setstate |= 0;      //TODO
    10801129  if(fuFlags & SWP_NOMOVE)
    1081         setstate &= ~SWPOS_MOVE;
     1130    setstate &= ~SWPOS_MOVE;
    10821131  if(fuFlags & SWP_NOSIZE)
    1083         setstate &= ~SWPOS_SIZE;
     1132    setstate &= ~SWPOS_SIZE;
    10841133  if(fuFlags & SWP_NOREDRAW)
    1085         setstate |= SWPOS_NOREDRAW;
     1134    setstate |= SWPOS_NOREDRAW;
    10861135  if(fuFlags & SWP_NOZORDER)
    1087         setstate &= ~SWPOS_ZORDER;
     1136    setstate &= ~SWPOS_ZORDER;
    10881137  if(fuFlags & SWP_SHOWWINDOW)
    1089         setstate |= SWPOS_SHOW;
     1138    setstate |= SWPOS_SHOW;
    10901139
    10911140  return OSLibWinSetWindowPos(OS2HwndFrame, hwndInsertAfter, x, y, cx, cy, setstate);
     
    11031152{
    11041153  if(getParent()) {
    1105         return getParent()->getWindowHandle();
     1154    return getParent()->getWindowHandle();
    11061155  }
    11071156  else  return 0;
     
    11201169
    11211170   if(hwndNewParent == 0) {//desktop window = parent
    1122         setParent(NULL);
     1171    setParent(NULL);
    11231172        OSLibWinSetParent(getOS2WindowHandle(), OSLIB_HWND_DESKTOP);
    11241173        return oldhwnd;
     
    11391188{
    11401189  if(getParent()) {
    1141         return getParent()->getWindowHandle() == hwndParent;
     1190    return getParent()->getWindowHandle() == hwndParent;
    11421191  }
    11431192  else  return 0;
     
    11561205BOOL Win32Window::UpdateWindow()
    11571206{
    1158    OSRECTL rect;
     1207 RECT rect;
    11591208
    11601209  if(OSLibWinQueryUpdateRect(OS2Hwnd, &rect))
    11611210  {//update region not empty
    1162         SendInternalMessageA((isIcon) ? WM_PAINTICON : WM_PAINT, 0, 0);
     1211    SendInternalMessageA((isIcon) ? WM_PAINTICON : WM_PAINT, 0, 0);
    11631212  }
    11641213  return TRUE;
     
    11831232  switch(uCmd)
    11841233  {
    1185         case GW_CHILD:
    1186                 getcmd = QWOS_TOP;
    1187                 break;
    1188         case GW_HWNDFIRST:
    1189                 if(getParent()) {
    1190                         getcmd = QWOS_TOP; //top of child windows
    1191                 }
    1192                 else    getcmd = QWOS_TOP; //TODO
    1193                 break;
    1194         case GW_HWNDLAST:
    1195                 if(getParent()) {
    1196                         getcmd = QWOS_BOTTOM; //bottom of child windows
    1197                 }
    1198                 else    getcmd = QWOS_BOTTOM; //TODO
    1199                 break;
    1200         case GW_HWNDNEXT:
    1201                 getcmd = QWOS_NEXT;
    1202                 break;
    1203         case GW_HWNDPREV:
    1204                 getcmd = QWOS_PREV;
    1205                 break;
    1206         case GW_OWNER:
    1207                 if(owner) {
    1208                         return owner->getWindowHandle();
    1209                 }
    1210                 else    return 0;
     1234    case GW_CHILD:
     1235        getcmd = QWOS_TOP;
     1236        break;
     1237    case GW_HWNDFIRST:
     1238        if(getParent()) {
     1239            getcmd = QWOS_TOP; //top of child windows
     1240        }
     1241        else    getcmd = QWOS_TOP; //TODO
     1242        break;
     1243    case GW_HWNDLAST:
     1244        if(getParent()) {
     1245            getcmd = QWOS_BOTTOM; //bottom of child windows
     1246        }
     1247        else    getcmd = QWOS_BOTTOM; //TODO
     1248        break;
     1249    case GW_HWNDNEXT:
     1250        getcmd = QWOS_NEXT;
     1251        break;
     1252    case GW_HWNDPREV:
     1253        getcmd = QWOS_PREV;
     1254        break;
     1255    case GW_OWNER:
     1256        if(owner) {
     1257            return owner->getWindowHandle();
     1258        }
     1259        else    return 0;
    12111260  }
    12121261  hwndRelated = OSLibWinQueryWindow(OS2Hwnd, getcmd);
    12131262  if(hwndRelated)
    12141263  {
    1215         win32wnd = (Win32Window *)OSLibWinGetWindowULong(hwndRelated, OFFSET_WIN32WNDPTR);
    1216         magic    = OSLibWinGetWindowULong(hwndRelated, OFFSET_WIN32PM_MAGIC);
    1217         if(CheckMagicDword(magic) && win32wnd)
    1218         {
    1219                 return win32wnd->getWindowHandle();
    1220         }
     1264    win32wnd = (Win32Window *)OSLibWinGetWindowULong(hwndRelated, OFFSET_WIN32WNDPTR);
     1265    magic    = OSLibWinGetWindowULong(hwndRelated, OFFSET_WIN32PM_MAGIC);
     1266    if(CheckMagicDword(magic) && win32wnd)
     1267    {
     1268        return win32wnd->getWindowHandle();
     1269    }
    12211270  }
    12221271  return 0;
     
    12551304  if(CheckMagicDword(magic) && win32wnd)
    12561305  {
    1257         return win32wnd->getWindowHandle();
     1306    return win32wnd->getWindowHandle();
    12581307  }
    12591308  return hwndActive;
     
    13251374                return oldval;
    13261375        case GWL_HWNDPARENT:
    1327                 return SetParent((HWND)value);
     1376        return SetParent((HWND)value);
    13281377
    13291378        case GWL_ID:
     
    14101459
    14111460   if(HIWORD(hwnd) != 0x6800) {
    1412         return NULL;
     1461    return NULL;
    14131462   }
    14141463
    14151464   if(HMHandleTranslateToOS2(LOWORD(hwnd), (PULONG)&window) == NO_ERROR) {
    1416         return window;
     1465    return window;
    14171466   }
    14181467   else return NULL;
     
    14201469//******************************************************************************
    14211470//******************************************************************************
    1422 Win32Window *Win32Window::GetWindowFromOS2Handle(HWND hwnd)
    1423 {
    1424    ULONG winHandle;
    1425    Win32Window *window;
    1426 
    1427    //CB: returns index, not handle!
    1428    if(HMHandleTranslateToWin(hwnd,(PULONG)&winHandle) == NO_ERROR)
    1429    {
    1430      if (HMHandleTranslateToOS2(LOWORD(winHandle),(PULONG)&window) == NO_ERROR)
    1431      {
    1432        return window;
    1433      } else return NULL;
    1434    } else return NULL;
    1435 }
    1436 //******************************************************************************
    1437 //******************************************************************************
    14381471GenericObject *Win32Window::windows  = NULL;
Note: See TracChangeset for help on using the changeset viewer.