亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? framewin_setresizeable.c

?? 這套代碼已經成功一直到S3C44B0X開發板上
?? C
?? 第 1 頁 / 共 2 頁
字號:
  }
}
#endif

/*********************************************************************
*
*       _SetCapture
*/
static void _SetCapture(FRAMEWIN_Handle hWin, int x, int y, int Mode) {
  if ((_CaptureFlags & FRAMEWIN_REPOS_X) == 0) {
    _CaptureX = x;
  }
  if ((_CaptureFlags & FRAMEWIN_REPOS_Y) == 0) {
    _CaptureY = y;
  }
  if (Mode) {
    if (WM_HasCaptured(hWin) == 0) {
      WM_SetCapture(hWin, 0);
    }
  #if GUI_SUPPORT_CURSOR
    _SetResizeCursor(Mode);
  #endif
    if (Mode & FRAMEWIN_MOUSEOVER) {
      Mode = 0;
    }
    _CaptureFlags = (Mode | FRAMEWIN_MOUSEOVER);
  }
}

/*********************************************************************
*
*       _ChangeWindowPosSize
*/
static void _ChangeWindowPosSize(FRAMEWIN_Handle hWin, int* px, int* py) {
  int dx = 0, dy = 0;
  GUI_RECT Rect;
  WM_GetClientRectEx(hWin, &Rect);
  /* Calculate new size of window */
  if (_CaptureFlags & FRAMEWIN_RESIZE_X) {
    dx = (_CaptureFlags & FRAMEWIN_REPOS_X) ? (_CaptureX - *px) : (*px - _CaptureX);
  }
  if (_CaptureFlags & FRAMEWIN_RESIZE_Y) {
    dy = (_CaptureFlags & FRAMEWIN_REPOS_Y) ? (_CaptureY - *py) : (*py - _CaptureY);
  }
  /* Check the minimal size of window */
  if ((Rect.x1 + dx + 1) < FRAMEWIN_MINSIZE_X) {
    dx = FRAMEWIN_MINSIZE_X - Rect.x1 - 1;
    *px = _CaptureX + dx;
  }
  if ((Rect.y1 + dy + 1) < FRAMEWIN_MINSIZE_Y) {
    dy = FRAMEWIN_MINSIZE_Y - Rect.y1 - 1;
    *py = _CaptureY + dy;
  }
  /* Set new window position */
  if (_CaptureFlags & FRAMEWIN_REPOS_X) {
    WM_MoveWindow(hWin, -dx, 0);
  }
  if (_CaptureFlags & FRAMEWIN_REPOS_Y) {
    WM_MoveWindow(hWin, 0, -dy);
  }
  /* Set new window size */
  WM_ResizeWindow(hWin, dx, dy);
}

/*********************************************************************
*
*       _CheckBorderX
*/
static int _CheckBorderX(int x, int x1, int Border) {
  int Mode = 0;
  if (x > (x1 - Border)) {
    Mode = FRAMEWIN_RESIZE_X;
  } else if (x < (Border)) {
    Mode = FRAMEWIN_RESIZE_X | FRAMEWIN_REPOS_X;
  }
  return Mode;
}

/*********************************************************************
*
*       _CheckBorderY
*/
static int _CheckBorderY(int y, int y1, int Border) {
  int Mode = 0;
  if (y > (y1 - Border)) {
    Mode = FRAMEWIN_RESIZE_Y;
  } else if (y < (Border)) {
    Mode = FRAMEWIN_RESIZE_Y | FRAMEWIN_REPOS_Y;
  }
  return Mode;
}

/*********************************************************************
*
*       _CheckReactBorder
*/
static int _CheckReactBorder(FRAMEWIN_Handle hWin, int x, int y) {
  int Mode = 0;
  GUI_RECT r;
  WM_GetClientRectEx(hWin, &r);
  if ((x >= 0) && (y >= 0) && (x <= r.x1) && (y <= r.y1)) {
    Mode |= _CheckBorderX(x, r.x1, FRAMEWIN_REACT_BORDER);
    if (Mode) {
      Mode |= _CheckBorderY(y, r.y1, 4 * FRAMEWIN_REACT_BORDER);
    } else {
      Mode |= _CheckBorderY(y, r.y1, FRAMEWIN_REACT_BORDER);
      if (Mode) {
        Mode |= _CheckBorderX(x, r.x1, 4 * FRAMEWIN_REACT_BORDER);
      }
    }
  }
  return Mode;
}

/*********************************************************************
*
*       _OnTouch
*/
static int _OnTouch(FRAMEWIN_Handle hWin, WM_MESSAGE* pMsg) {
  const GUI_PID_STATE* pState = (const GUI_PID_STATE*)pMsg->Data.p;
  if (pState) {  /* Something happened in our area (pressed or released) */
    int x, y, Mode;
    x    = pState->x;
    y    = pState->y;
    Mode = _CheckReactBorder(hWin, x, y);
    if (pState->Pressed == 1) {
      if (_CaptureFlags & FRAMEWIN_RESIZE) {
        _ChangeWindowPosSize(hWin, &x, &y);
        _SetCapture(hWin, x, y, 0);
        return 1;
      } else if (Mode) {
        WM_SetFocus(hWin);
        WM_BringToTop(hWin);
        _SetCapture(hWin, x, y, Mode);
        return 1;
      }
      #if (GUI_SUPPORT_MOUSE & GUI_SUPPORT_CURSOR)
      else if (_CaptureFlags) {
        WM_ReleaseCapture();
        return 1;
      }
      #endif
    } else if (WM_HasCaptured(hWin)) {
      _CaptureFlags &= ~(FRAMEWIN_RESIZE);
      #if (GUI_SUPPORT_MOUSE & GUI_SUPPORT_CURSOR)
        if (!Mode)
      #endif
      {
        WM_ReleaseCapture();
      }
      return 1;
    }
  }
  return 0;
}

/*******************************************************************
*
*       _ForwardMouseOverMsg
*/
#if (GUI_SUPPORT_MOUSE & GUI_SUPPORT_CURSOR)
static int _ForwardMouseOverMsg(FRAMEWIN_Handle hWin, WM_MESSAGE* pMsg) {
  GUI_PID_STATE* pState = (GUI_PID_STATE *)pMsg->Data.p;
  WM_HWIN hBelow;
  pState->x += WM_GetWindowOrgX(hWin);
  pState->y += WM_GetWindowOrgY(hWin);
  hBelow = WM_Screen2hWin(pState->x, pState->y);
  if (hBelow && (hBelow != hWin)) {
    pState->x -= WM_GetWindowOrgX(hBelow);
    pState->y -= WM_GetWindowOrgY(hBelow);
    WM__SendMessage(hBelow, pMsg);
    return 1;
  }
  return 0;
}
#endif

/*********************************************************************
*
*       _OnMouseOver
*/
#if (GUI_SUPPORT_MOUSE & GUI_SUPPORT_CURSOR)
static int _OnMouseOver(FRAMEWIN_Handle hWin, WM_MESSAGE* pMsg) {
  const GUI_PID_STATE* pState = (const GUI_PID_STATE *)pMsg->Data.p;
  if (pState) {
    int x, y, Mode;
    x    = pState->x;
    y    = pState->y;
    Mode = _CheckReactBorder(hWin, x, y);
    if (Mode) {
      if (_ForwardMouseOverMsg(hWin, pMsg) == 0) {
        _SetCapture(hWin, x, y, Mode | FRAMEWIN_MOUSEOVER);
      }
      return 1;
    } else if (WM_HasCaptured(hWin)) {
      if ((_CaptureFlags & FRAMEWIN_RESIZE) == 0) {
        WM_ReleaseCapture();
        _ForwardMouseOverMsg(hWin, pMsg);
      }
      return 1;
    }
  }
  return 0;
}
#endif

/*********************************************************************
*
*       static code, hook function
*
**********************************************************************
*/
/*********************************************************************
*
*       _HOOKFUNC_Resizeable
*/
static int _HOOKFUNC_Resizeable(WM_MESSAGE* pMsg) {
  WM_HWIN hWin = pMsg->hWin;
  if (WM_HasCaptured(hWin) && (_CaptureFlags == 0)) {
    return 0;
  }
  if (FRAMEWIN_IsMinimized(hWin) || FRAMEWIN_IsMaximized(hWin)) {
    return 0;
  }
  switch(pMsg->MsgId) {
  case WM_TOUCH:
    return _OnTouch(hWin, pMsg);
#if (GUI_SUPPORT_MOUSE & GUI_SUPPORT_CURSOR)
  case WM_MOUSEOVER:
    return _OnMouseOver(hWin, pMsg);
#endif
  case WM_CAPTURE_RELEASED:
  #if GUI_SUPPORT_CURSOR
    _SetResizeCursor(0);
  #endif
    _CaptureFlags = 0;
    return 1;
  }
  return 0;
}

/*********************************************************************
*
*        Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       FRAMEWIN_SetResizeable
*/
void FRAMEWIN_SetResizeable(FRAMEWIN_Handle hObj, int State) {
  if (hObj) {
    FRAMEWIN_Obj* pObj;
    WM_LOCK();
    pObj = FRAMEWIN_H2P(hObj);
    if (pObj) {
      if (State) {
        GUI_HOOK_Add(&pObj->pFirstHook, &_HOOK_Resizeable, &_HOOKFUNC_Resizeable);
      } else {
        GUI_HOOK_Remove(&pObj->pFirstHook, &_HOOK_Resizeable);
      }
    }
    WM_UNLOCK();
  }
}

#else
  void FRAMEWIN_SetResizeable_c(void) {} /* avoid empty object files */
#endif /* GUI_WINSUPPORT */

/*************************** End of file ****************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产精品亚洲综合| 亚洲一区二区av在线| 日韩欧美成人午夜| 欧美tk丨vk视频| 日韩精品最新网址| 欧美一区日本一区韩国一区| 欧美天堂亚洲电影院在线播放| 99久久国产综合精品女不卡| 白白色亚洲国产精品| 91在线视频免费91| 人人狠狠综合久久亚洲| 亚洲国产欧美日韩另类综合 | 亚洲图片欧美一区| 亚洲成a人片综合在线| 毛片不卡一区二区| 国产成人精品一区二区三区四区 | 国产成人在线观看免费网站| 中文字幕在线不卡视频| 综合网在线视频| 亚洲电影你懂得| 日本aⅴ亚洲精品中文乱码| 紧缚奴在线一区二区三区| 国产91在线看| 欧美私人免费视频| 精品日韩成人av| 亚洲视频一区二区在线观看| 一区二区三区在线免费观看| 久久狠狠亚洲综合| 色中色一区二区| 精品av久久707| 中文字幕亚洲精品在线观看| 午夜精品一区二区三区免费视频| 国产电影精品久久禁18| 欧美日韩一二三区| 欧美成人三级电影在线| 欧美aⅴ一区二区三区视频| 在线视频综合导航| 2017欧美狠狠色| 国产精品一区二区三区99| 欧美一区二区三区喷汁尤物| 国产精品国产自产拍高清av王其| 亚洲图片欧美一区| 99精品国产99久久久久久白柏| 欧美一区二区网站| 免费高清在线一区| 91精品国产免费久久综合| 五月婷婷久久综合| 欧美一区二区人人喊爽| 美日韩一区二区| 欧美电影免费观看高清完整版 | 国产精品 日产精品 欧美精品| 日韩精品一区二区三区蜜臀| 国产精品一区久久久久| 欧美一区二区三区影视| 国产一区二区三区四区五区美女| 久久久综合网站| 成人免费精品视频| 亚洲在线成人精品| 欧美一区二区精品| 99久久99久久久精品齐齐| 一区二区三区在线视频观看58| 欧美人妖巨大在线| 美女mm1313爽爽久久久蜜臀| 国产色产综合色产在线视频| 91污片在线观看| 日本在线不卡视频| 中文字幕一区二区在线播放| 欧美高清一级片在线| 丰满少妇在线播放bd日韩电影| 亚洲黄色录像片| 国产精品系列在线| 国产亚洲欧美中文| 欧美不卡视频一区| 欧洲国内综合视频| 丁香激情综合五月| 无码av中文一区二区三区桃花岛| 亚洲国产精品v| 精品国产三级电影在线观看| 在线看日本不卡| 不卡在线观看av| 日本欧美在线看| 亚洲一区二区不卡免费| 亚洲综合在线五月| 亚洲理论在线观看| 综合欧美一区二区三区| 久久精品在这里| 国产日韩精品一区二区三区在线| 日韩一区二区三区四区五区六区| 91成人免费电影| 欧美最新大片在线看| 欧美卡1卡2卡| 欧美精品粉嫩高潮一区二区| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品一区免费视频| 国产电影精品久久禁18| 不卡一区中文字幕| 欧美日韩小视频| 日韩欧美另类在线| 欧美猛男超大videosgay| 欧美男同性恋视频网站| 欧美精品三级日韩久久| 日韩一区二区麻豆国产| 久久免费精品国产久精品久久久久| 精品国产免费人成在线观看| 欧美一区二区二区| 国产喷白浆一区二区三区| 这里只有精品免费| 亚洲国产精品黑人久久久| 亚洲精品ww久久久久久p站| 亚洲chinese男男1069| 免费在线欧美视频| 成人av手机在线观看| 欧美日韩在线免费视频| 久久久国产精品麻豆| 亚洲国产成人高清精品| 国产99久久久国产精品潘金 | 欧美日本一区二区在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 日韩va欧美va亚洲va久久| 国产91在线看| 精品久久久三级丝袜| 亚洲国产视频a| 欧美三级中文字幕| 亚洲一区二区三区在线播放| 不卡的电影网站| 欧美激情一区二区三区全黄 | 成人免费毛片嘿嘿连载视频| 欧美mv日韩mv国产网站app| 五月婷婷激情综合网| 欧美视频一区二区三区四区 | 精品一区二区三区免费视频| 欧美一区二区精品| 精品一区二区三区免费观看| 26uuu欧美| 国产精品亚洲视频| 中文字幕视频一区| eeuss鲁一区二区三区| 精品成人免费观看| 狠狠色丁香久久婷婷综合_中| 欧美日韩久久一区| 琪琪久久久久日韩精品| 国产喷白浆一区二区三区| 国产乱码字幕精品高清av| 日韩一区国产二区欧美三区| 婷婷久久综合九色综合绿巨人| 91成人网在线| 日韩经典中文字幕一区| 久久综合九色欧美综合狠狠 | 99r国产精品| 午夜成人免费视频| 国产亚洲精品久| 一本色道久久综合狠狠躁的推荐| 亚洲影视在线播放| 日韩精品在线看片z| 国产精品一区一区| 亚洲国产精品一区二区www在线 | 日韩三级高清在线| 色婷婷综合久久久久中文一区二区 | 26uuu欧美日本| 欧美综合欧美视频| 国产99久久久国产精品潘金| 亚洲动漫第一页| 最新久久zyz资源站| 日韩欧美电影一二三| 在线一区二区三区| 成人精品高清在线| 另类小说图片综合网| 国产毛片精品国产一区二区三区| 天堂成人国产精品一区| 中文字幕在线一区| 久久久久久99精品| 日韩欧美一级二级| 欧美日韩在线播放| 一本到不卡免费一区二区| 精品亚洲成a人在线观看| 夜夜精品视频一区二区| 亚洲日本在线天堂| 亚洲国产精品二十页| 日韩视频一区在线观看| 91麻豆精品久久久久蜜臀| 日本道色综合久久| 欧美日韩国产经典色站一区二区三区| 国产成人午夜99999| 久久99精品久久久久| 国产一区二区日韩精品| 久久99精品久久只有精品| 久久国产尿小便嘘嘘尿| 国产精品一区在线观看你懂的| 懂色av中文一区二区三区| av一区二区不卡| 色综合天天性综合| 欧美精品一二三| 精品国产免费久久 | 亚洲欧美一区二区三区国产精品 | 五月天亚洲精品| 国产美女在线观看一区| 99re66热这里只有精品3直播| 91蝌蚪porny九色| 精品久久一二三区| 欧美mv日韩mv国产网站app|