home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ool.zip / OOL / source / xfrmcnt.cpp < prev    next >
C/C++ Source or Header  |  1997-02-23  |  2KB  |  83 lines

  1. #include "XFrmCnt.h"
  2. #include "XFrmwnd.h"
  3. #include "XFrame.h"
  4.  
  5. #include "string.h"
  6.  
  7.  
  8. XFrameControl :: XFrameControl(const XFrameWindow * w, const LONG st, const ULONG id):XUserWindow(w->frame)
  9. {
  10.     style = st;
  11.     w->frameWin->AddFrameControl(this);
  12.     WinSetWindowUShort(winhandle, QWS_ID, id);
  13. }
  14.  
  15.  
  16. void XFrameControl::AdjustSize(PSWP pswpToolbar, PSWP pswpClient)
  17. {
  18. ///   if( pswpToolbar->fl & SWP_HIDE)
  19.     if (!(IsVisible()))
  20.     {
  21.         memset(pswpToolbar, 0, sizeof(SWP));
  22.         pswpToolbar->hwnd = winhandle;
  23.         pswpToolbar->fl = SWP_HIDE;
  24.         return;
  25.     }
  26.  
  27.     pswpToolbar->x = pswpClient->x;
  28.  
  29.     if (style & TB_TOP)
  30.     {
  31.         pswpToolbar->cx = pswpClient->cx;
  32.         if (pswpClient->cy > cy)
  33.         {
  34.             pswpClient->cy -= cy;
  35.             pswpToolbar->cy = cy;
  36.         }
  37.         else
  38.         {
  39.             pswpToolbar->cy = pswpClient->cy;
  40.             pswpClient->cy -= pswpToolbar->cy;
  41.         }
  42.         pswpToolbar->y = (pswpClient->y + pswpClient->cy);
  43.     }
  44.     else if (style & TB_BOTTOM)
  45.     {
  46.         pswpToolbar->cx = pswpClient->cx;
  47.         pswpToolbar->y = pswpClient->y;
  48.         if (pswpClient->cy > cy)
  49.             pswpToolbar->cy = cy;
  50.         else
  51.             pswpToolbar->cy = pswpClient->cy;
  52.         pswpClient->cy -= pswpToolbar->cy;
  53.         pswpClient->y += pswpToolbar->cy;
  54.     }
  55.     else if (style & TB_LEFT)
  56.     {
  57.         pswpToolbar->y = pswpClient->y;
  58.         if (pswpClient->cx > cx)
  59.             pswpToolbar->cx = cx;
  60.         else
  61.             pswpToolbar->cx = pswpClient->cx;
  62.         pswpToolbar->cy = pswpClient->cy;
  63.         pswpClient->cx -= pswpToolbar->cx;
  64.         pswpClient->x += pswpToolbar->cx;
  65.     }
  66.     else if (style & TB_RIGHT)
  67.     {
  68.         pswpToolbar->y = pswpClient->y;
  69.         if (pswpClient->cx > cx)
  70.             pswpToolbar->cx = cx;
  71.         else
  72.             pswpToolbar->cx = pswpClient->cx;
  73.         pswpToolbar->x = pswpClient->x + pswpClient->cx - pswpToolbar->cx;
  74.         pswpToolbar->cy = pswpClient->cy;
  75.         pswpClient->cx -= pswpToolbar->cx;
  76.     }
  77.  
  78.     pswpToolbar->hwnd = winhandle;
  79.  
  80.     pswpToolbar->fl = SWP_SIZE | SWP_MOVE | SWP_SHOW;
  81.     Invalidate(TRUE);
  82. }
  83.