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

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

?? scrollarea.cpp

?? Linux系統下的《紅色警戒》游戲
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/*      _______   __   __   __   ______   __   __   _______   __   __                  *     / _____/\ / /\ / /\ / /\ / ____/\ / /\ / /\ / ___  /\ /  |\/ /\                 *    / /\____\// / // / // / // /\___\// /_// / // /\_/ / // , |/ / /                  *   / / /__   / / // / // / // / /    / ___  / // ___  / // /| ' / /                   *  / /_// /\ / /_// / // / // /_/_   / / // / // /\_/ / // / |  / /                    * /______/ //______/ //_/ //_____/\ /_/ //_/ //_/ //_/ //_/ /|_/ /                     * \______\/ \______\/ \_\/ \_____\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/                       * * Copyright (c) 2004, 2005 darkbits                        Js_./ * Per Larsson a.k.a finalman                          _RqZ{a<^_aa * Olof Naess閚 a.k.a jansem/yakslem                _asww7!uY`>  )\a// *                                                 _Qhm`] _f "'c  1!5m * Visit: http://guichan.darkbits.org             )Qk<P ` _: :+' .'  "{[ *                                               .)j(] .d_/ '-(  P .   S * License: (BSD)                                <Td/Z <fP"5(\"??"\a.  .L * Redistribution and use in source and          _dV>ws?a-?'      ._/L  #' * binary forms, with or without                 )4d[#7r, .   '     )d`)[ * modification, are permitted provided         _Q-5'5W..j/?'   -?!\)cam' * that the following conditions are met:       j<<WP+k/);.        _W=j f * 1. Redistributions of source code must       .$%w\/]Q  . ."'  .  mj$ *    retain the above copyright notice,        ]E.pYY(Q]>.   a     J@\ *    this list of conditions and the           j(]1u<sE"L,. .   ./^ ]{a *    following disclaimer.                     4'_uomm\.  )L);-4     (3= * 2. Redistributions in binary form must        )_]X{Z('a_"a7'<a"a,  ]"[ *    reproduce the above copyright notice,       #}<]m7`Za??4,P-"'7. ).m *    this list of conditions and the            ]d2e)Q(<Q(  ?94   b-  LQ/ *    following disclaimer in the                <B!</]C)d_, '(<' .f. =C+m *    documentation and/or other materials      .Z!=J ]e []('-4f _ ) -.)m]' *    provided with the distribution.          .w[5]' _[ /.)_-"+?   _/ <W" * 3. Neither the name of Guichan nor the      :$we` _! + _/ .        j? *    names of its contributors may be used     =3)= _f  (_yQmWW$#(    " *    to endorse or promote products derived     -   W,  sQQQQmZQ#Wwa].. *    from this software without specific        (js, \[QQW$QWW#?!V"". *    prior written permission.                    ]y:.<\..          . *                                                 -]n w/ '         [. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT       )/ )/           ! * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY         <  (; sac    ,    ' * EXPRESS OR IMPLIED WARRANTIES, INCLUDING,               ]^ .-  % * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF            c <   r * MERCHANTABILITY AND FITNESS FOR A PARTICULAR            aga<  <La * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE          5%  )P'-3L * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR        _bQf` y`..)a * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,          ,J?4P'.P"_(\?d'., * EXEMPLARY, OR CONSEQUENTIAL DAMAGES               _Pa,)!f/<[]/  ?" * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT      _2-..:. .r+_,.. . * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,     ?a.<%"'  " -'.a_ _, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION)                     ^ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *//* * For comments regarding functions please see the header file.  */#include "guichan/exception.h"#include "guichan/widgets/scrollarea.h"namespace gcn{    ScrollArea::ScrollArea()    {        mVScroll = 0;        mHScroll = 0;        mHPolicy = SHOW_AUTO;        mVPolicy = SHOW_AUTO;        mScrollbarWidth = 12;        mContent = NULL;        mUpButtonPressed = false;        mDownButtonPressed = false;        mLeftButtonPressed = false;        mRightButtonPressed = false;        mVerticalMarkerPressed = false;        mVerticalMarkerMousePosition = 0;        mHorizontalMarkerPressed = false;        mHorizontalMarkerMousePosition = 0;        addMouseListener(this);    }    ScrollArea::ScrollArea(Widget *content)    {        mVScroll = 0;        mHScroll = 0;        mHPolicy = SHOW_AUTO;        mVPolicy = SHOW_AUTO;        mScrollbarWidth = 12;        mContent = NULL;        mUpButtonPressed = false;        mDownButtonPressed = false;        mLeftButtonPressed = false;        mRightButtonPressed = false;        mVerticalMarkerPressed = false;        mVerticalMarkerMousePosition = 0;        mHorizontalMarkerPressed = false;        mHorizontalMarkerMousePosition = 0;        setContent(content);        addMouseListener(this);    }    ScrollArea::ScrollArea(Widget *content, unsigned int hPolicy, unsigned int vPolicy)    {        mVScroll = 0;        mHScroll = 0;        mHPolicy = hPolicy;        mVPolicy = vPolicy;        mScrollbarWidth = 12;        mContent = NULL;        mUpButtonPressed = false;        mDownButtonPressed = false;        mLeftButtonPressed = false;        mRightButtonPressed = false;        mVerticalMarkerPressed = false;        mVerticalMarkerMousePosition = 0;        mHorizontalMarkerPressed = false;        mHorizontalMarkerMousePosition = 0;        setContent(content);        addMouseListener(this);     }    ScrollArea::~ScrollArea()    {        setContent(NULL);            }        void ScrollArea::setContent(Widget* widget)    {        if (mContent != NULL)        {            mContent->_setFocusHandler(NULL);            mContent->_setParent(NULL);        }            mContent = widget;        if (mContent != NULL)        {            mContent->_setFocusHandler(_getFocusHandler());            mContent->_setParent(this);        }        checkPolicies();    }      Widget* ScrollArea::getContent()    {        return mContent;    }    void ScrollArea::setHorizontalScrollPolicy(unsigned int hPolicy)    {        mHPolicy = hPolicy;        checkPolicies();    }    unsigned int ScrollArea::getHorizontalScrollPolicy()    {        return mHPolicy;    }    void ScrollArea::setVerticalScrollPolicy(unsigned int vPolicy)    {        mVPolicy = vPolicy;        checkPolicies();    }    unsigned int ScrollArea::getVerticalScrollPolicy()    {        return mVPolicy;    }    void ScrollArea::setScrollPolicy(unsigned int hPolicy, unsigned int vPolicy)    {        mHPolicy = hPolicy;        mVPolicy = vPolicy;        checkPolicies();    }    void ScrollArea::setVerticalScrollAmount(int vScroll)    {        int max = getVerticalMaxScroll();        mVScroll = vScroll;            if (vScroll > max)        {            mVScroll = max;        }            if (vScroll < 0)        {            mVScroll = 0;        }    }    int ScrollArea::getVerticalScrollAmount()    {        return mVScroll;    }    void ScrollArea::setHorizontalScrollAmount(int hScroll)    {        int max = getHorizontalMaxScroll();            mHScroll = hScroll;            if (hScroll > max)        {            mHScroll = max;        }        else if (hScroll < 0)        {            mHScroll = 0;        }    }    int ScrollArea::getHorizontalScrollAmount()    {        return mHScroll;    }    void ScrollArea::setScrollAmount(int hScroll, int vScroll)    {        setHorizontalScrollAmount(hScroll);        setVerticalScrollAmount(vScroll);    }    int ScrollArea::getHorizontalMaxScroll()    {        checkPolicies();        if (mContent == NULL)        {            return 0;        }                int value = mContent->getWidth() - getContentDimension().width + 2 * mContent->getBorderSize();        if (value < 0)        {            return 0;        }        return value;    }     int ScrollArea::getVerticalMaxScroll()    {        checkPolicies();        if (mContent == NULL)        {            return 0;        }        int value;            value = mContent->getHeight() - getContentDimension().height + 2 * mContent->getBorderSize();            if (value < 0)        {            return 0;        }        return value;    }     void ScrollArea::setScrollbarWidth(int width)    {        if (width > 0)        {            mScrollbarWidth = width;        }        else        {            throw GCN_EXCEPTION("Width should be greater then 0.");        }    }    int ScrollArea::getScrollbarWidth()    {        return mScrollbarWidth;    }    void ScrollArea::_setFocusHandler(FocusHandler* focusHandler)    {        BasicContainer::_setFocusHandler(focusHandler);        if (mContent)        {            mContent->_setFocusHandler(focusHandler);        }    }    void ScrollArea::_mouseInputMessage(const MouseInput &mouseInput)    {        BasicContainer::_mouseInputMessage(mouseInput);                    if (getContentDimension().isPointInRect(mouseInput.x, mouseInput.y))        {            if (mContent != NULL)            {                if (!mContent->hasMouse())                {                    mContent->_mouseInMessage();                          }                        MouseInput mi = mouseInput;                                mi.x -= mContent->getX();                mi.y -= mContent->getY();                                                mContent->_mouseInputMessage(mi);            }              }        else if (mContent && mContent->hasMouse())        {            mContent->_mouseOutMessage();        }    }    void ScrollArea::_mouseOutMessage()    {        if (mContent && mContent->hasMouse())        {            mContent->_mouseOutMessage();        }            BasicContainer::_mouseOutMessage();    }      void ScrollArea::mousePress(int x, int y, int button)    {        if (getUpButtonDimension().isPointInRect(x, y))        {            setVerticalScrollAmount(getVerticalScrollAmount() - 10);            mUpButtonPressed = true;        }        else if (getDownButtonDimension().isPointInRect(x, y))        {            setVerticalScrollAmount(getVerticalScrollAmount() + 10);            mDownButtonPressed = true;        }        else if (getLeftButtonDimension().isPointInRect(x, y))        {            setHorizontalScrollAmount(getHorizontalScrollAmount() - 10);            mLeftButtonPressed = true;        }        else if (getRightButtonDimension().isPointInRect(x, y))        {            setHorizontalScrollAmount(getHorizontalScrollAmount() + 10);            mRightButtonPressed = true;        }                else if (getVerticalMarkerDimension().isPointInRect(x, y))        {            mVerticalMarkerPressed = true;            mVerticalMarkerMousePosition = y - getVerticalMarkerDimension().y;        }        else if (getHorizontalMarkerDimension().isPointInRect(x, y))        {            mHorizontalMarkerPressed = true;            mHorizontalMarkerMousePosition = x - getHorizontalMarkerDimension().x;        }     }    void ScrollArea::mouseRelease(int x, int y, int button)    {        mUpButtonPressed = false;        mDownButtonPressed = false;        mLeftButtonPressed = false;        mRightButtonPressed = false;        mVerticalMarkerPressed = false;        mHorizontalMarkerPressed = false;    }    void ScrollArea::mouseMotion(int x, int y)    {        if (mVerticalMarkerPressed)        {            int pos = y - getVerticalBarDimension().y  - mVerticalMarkerMousePosition;            int length = getVerticalMarkerDimension().height;            Rectangle barDim = getVerticalBarDimension();                  if ((barDim.height - length) > 0)            {                setVerticalScrollAmount((getVerticalMaxScroll() * pos)                                        / (barDim.height - length));            }            else            {                setVerticalScrollAmount(0);            }             }        if (mHorizontalMarkerPressed)        {            int pos = x - getHorizontalBarDimension().x  - mHorizontalMarkerMousePosition;            int length = getHorizontalMarkerDimension().width;            Rectangle barDim = getHorizontalBarDimension();                  if ((barDim.width - length) > 0)            {                setHorizontalScrollAmount((getHorizontalMaxScroll() * pos)                                          / (barDim.width - length));            }            else            {                setHorizontalScrollAmount(0);            }             }    }    void ScrollArea::draw(Graphics *graphics)    {        graphics->setColor(getBackgroundColor());        graphics->fillRectangle(getContentDimension());              int alpha = getBaseColor().a;        Color highlightColor = getBaseColor() + 0x303030;        highlightColor.a = alpha;            Color shadowColor = getBaseColor() - 0x303030;              shadowColor.a = alpha;              if (mVBarVisible)        {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区精华| 亚洲电影一区二区三区| 一区二区三区欧美亚洲| 国内精品第一页| 欧美系列日韩一区| 国产欧美精品一区| 日本亚洲电影天堂| 中文字幕av资源一区| 性做久久久久久久免费看| 成人精品小蝌蚪| 久久一夜天堂av一区二区三区| 亚洲一区中文在线| 99精品视频一区| 日本一区二区在线不卡| 日本强好片久久久久久aaa| 91香蕉视频污在线| 国产喷白浆一区二区三区| 久久激情五月激情| 在线成人高清不卡| 亚洲成人午夜电影| 欧美性高清videossexo| 亚洲欧美区自拍先锋| 懂色av一区二区夜夜嗨| 欧美tickling挠脚心丨vk| 日韩福利视频网| 欧美日韩精品一区视频| 一区二区三区高清| 在线免费观看视频一区| 综合久久国产九一剧情麻豆| 成人免费av资源| 国产精品视频线看| 成人av资源站| 中文字幕在线不卡| 91麻豆国产在线观看| 1000精品久久久久久久久| 成人国产视频在线观看| 亚洲欧美中日韩| 色综合激情久久| 亚洲精品国久久99热| 色综合久久中文字幕| 亚洲男人电影天堂| 欧美天天综合网| 全部av―极品视觉盛宴亚洲| 欧美精品高清视频| 另类小说欧美激情| 久久久噜噜噜久久中文字幕色伊伊| 狠狠色综合日日| 中文文精品字幕一区二区| 成人激情校园春色| 亚洲一卡二卡三卡四卡五卡| 欧美丰满一区二区免费视频| 美女高潮久久久| 国产精品三级久久久久三级| 色老汉一区二区三区| 一区二区在线观看av| 欧美日韩电影一区| 国产美女精品在线| 成人免费一区二区三区视频 | 91在线视频播放地址| 中文字幕第一区第二区| 91美女片黄在线| 亚洲电影你懂得| 日韩免费高清视频| 成人av在线资源| 日韩中文欧美在线| 欧美国产日韩在线观看| 欧洲精品视频在线观看| 久久国产人妖系列| 亚洲精选视频在线| 欧美亚洲一区二区在线| 日韩高清不卡一区二区三区| 肉丝袜脚交视频一区二区| 欧美一区二区三区在线观看| 国产成人啪免费观看软件| 亚洲国产日韩综合久久精品| 国产亚洲精品超碰| 欧美亚洲另类激情小说| 精品影视av免费| 亚洲精品v日韩精品| 日韩精品一区二区三区视频播放 | 色欧美片视频在线观看| 美女一区二区视频| 亚洲欧美一区二区三区久本道91| 欧美理论电影在线| av不卡一区二区三区| 久久99久久99| 亚洲电影欧美电影有声小说| 国产欧美一区二区在线观看| 在线播放/欧美激情| 91首页免费视频| 国产乱子伦视频一区二区三区| 亚洲一区二区在线免费看| 国产日韩欧美精品一区| 日韩欧美久久一区| 欧美丰满一区二区免费视频| 日本韩国一区二区| 成人av资源下载| 国产精品中文欧美| 精油按摩中文字幕久久| 亚洲成人你懂的| 一区二区三区资源| 亚洲激情自拍偷拍| 亚洲欧美另类图片小说| 亚洲国产精品黑人久久久| 精品区一区二区| 欧美tickling挠脚心丨vk| 56国语精品自产拍在线观看| 欧美视频一二三区| 欧美视频在线观看一区二区| 91国内精品野花午夜精品| 99re66热这里只有精品3直播| 岛国一区二区在线观看| 国产精一品亚洲二区在线视频| 激情久久五月天| 精品一区二区免费看| 久久成人免费日本黄色| 精品影视av免费| 国产综合成人久久大片91| 美女视频黄 久久| 另类小说欧美激情| 国产一区在线看| 国产91精品免费| 成人短视频下载| 91丨porny丨在线| 欧美日韩精品综合在线| 欧美一区二区视频在线观看2020| 欧美一区二区三区在线观看 | 欧美体内she精高潮| 欧美日韩一区二区在线观看 | 韩国女主播成人在线| 国产一区二区三区在线看麻豆| 精品无码三级在线观看视频| 韩国欧美一区二区| 99精品久久免费看蜜臀剧情介绍| www.欧美日韩| 精品视频在线免费看| 5566中文字幕一区二区电影| 欧美tk—视频vk| 综合电影一区二区三区 | 91福利视频网站| 欧美日韩欧美一区二区| 日韩免费福利电影在线观看| 欧美精品一区在线观看| 亚洲婷婷综合色高清在线| 午夜精品久久久久久久| 久久精品99国产精品| 成人禁用看黄a在线| 欧美剧情片在线观看| 久久久精品一品道一区| 亚洲精品视频在线| 国精产品一区一区三区mba桃花| av一区二区三区四区| 欧美女孩性生活视频| 国产亚洲综合av| 亚洲一区二区精品久久av| 国模娜娜一区二区三区| 在线观看视频一区二区 | 椎名由奈av一区二区三区| 亚洲自拍偷拍图区| 国产资源在线一区| 欧美四级电影网| 欧美极品aⅴ影院| 日韩综合一区二区| 北岛玲一区二区三区四区| 欧美一区二区三区小说| 中文字幕一区免费在线观看| 天堂蜜桃一区二区三区| 成人精品视频一区二区三区| 欧美精品丝袜中出| 国产精品国产三级国产aⅴ无密码| 日韩高清一区在线| 在线观看一区日韩| 一区二区中文视频| 国产在线精品一区二区夜色| 欧美三级日韩三级| 1024精品合集| 国产成人精品免费看| 日韩欧美国产wwwww| 亚洲福利电影网| 在线视频你懂得一区二区三区| 国产欧美一区视频| 国产乱码精品一区二区三区五月婷 | 五月天激情综合| 一本大道av伊人久久综合| 国产女同互慰高潮91漫画| 久久99精品久久久久久久久久久久| 色视频成人在线观看免| 国产欧美精品国产国产专区 | 久久夜色精品一区| 日韩高清在线观看| 欧美卡1卡2卡| 亚洲第一久久影院| 欧美视频一区二区三区四区| 日韩毛片在线免费观看| 99久久99精品久久久久久| 国产精品二区一区二区aⅴ污介绍| 成人综合婷婷国产精品久久 | 亚洲日本丝袜连裤袜办公室| 本田岬高潮一区二区三区| 亚洲国产精品传媒在线观看|