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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? metal.cpp

?? A*算法 A*算法 A*算法 A*算法A*算法A*算法
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// Name:        univ/themes/metal.cpp
// Purpose:     wxUniversal theme implementing Win32-like LNF
// Author:      Vadim Zeitlin, Robert Roebling
// Modified by:
// Created:     06.08.00
// RCS-ID:      $Id: metal.cpp,v 1.15 2005/05/31 09:28:50 JS Exp $
// Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
// Licence:     wxWindows licence
///////////////////////////////////////////////////////////////////////////////

// ===========================================================================
// declarations
// ===========================================================================

// ---------------------------------------------------------------------------
// headers
// ---------------------------------------------------------------------------

// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"

#ifdef __BORLANDC__
    #pragma hdrstop
#endif

#ifndef WX_PRECOMP
    #include "wx/timer.h"
    #include "wx/intl.h"
    #include "wx/dc.h"
    #include "wx/window.h"

    #include "wx/dcmemory.h"

    #include "wx/button.h"
    #include "wx/listbox.h"
    #include "wx/checklst.h"
    #include "wx/combobox.h"
    #include "wx/scrolbar.h"
    #include "wx/slider.h"
    #include "wx/textctrl.h"
    #include "wx/toolbar.h"

    #ifdef __WXMSW__
        // for COLOR_* constants
        #include "wx/msw/private.h"
    #endif
#endif // WX_PRECOMP

#include "wx/notebook.h"
#include "wx/spinbutt.h"
#include "wx/settings.h"
#include "wx/menu.h"
#include "wx/artprov.h"
#include "wx/toplevel.h"

#include "wx/univ/scrtimer.h"
#include "wx/univ/renderer.h"
#include "wx/univ/inphand.h"
#include "wx/univ/colschem.h"
#include "wx/univ/theme.h"

// wxMetalRenderer: draw the GUI elements in Metal style
// ----------------------------------------------------------------------------

class wxMetalRenderer : public wxDelegateRenderer
{
    // FIXME cut'n'paste from Win32
    enum wxArrowDirection
    {
        Arrow_Left,
        Arrow_Right,
        Arrow_Up,
        Arrow_Down,
        Arrow_Max
    };

    enum wxArrowStyle
    {
        Arrow_Normal,
        Arrow_Disabled,
        Arrow_Pressed,
        Arrow_Inverted,
        Arrow_InvertedDisabled,
        Arrow_StateMax
    };
public:
    wxMetalRenderer(wxRenderer *renderer, wxColourScheme* scheme);

    virtual void DrawButtonSurface(wxDC& dc,
                                   const wxColour& WXUNUSED(col),
                                   const wxRect& rect,
                                   int WXUNUSED(flags))
        { DrawMetal(dc, rect); }

    virtual void DrawScrollbarThumb(wxDC& dc,
                                    wxOrientation orient,
                                    const wxRect& rect,
                                    int flags);

    virtual void DrawScrollbarShaft(wxDC& dc,
                                    wxOrientation orient,
                                    const wxRect& rectBar,
                                    int flags);

    virtual void GetComboBitmaps(wxBitmap *bmpNormal,
                                 wxBitmap *bmpFocus,
                                 wxBitmap *bmpPressed,
                                 wxBitmap *bmpDisabled);

    virtual void DrawArrow(wxDC& dc,
                           wxDirection dir,
                           const wxRect& rect,
                           int flags = 0);
protected:
    void DrawArrowButton(wxDC& dc,
                         const wxRect& rectAll,
                         wxArrowDirection arrowDir,
                         wxArrowStyle arrowStyle);

    void DrawRect(wxDC& dc, wxRect *rect, const wxPen& pen);

    void DrawShadedRect(wxDC& dc, wxRect *rect,
                        const wxPen& pen1, const wxPen& pen2);

    void DrawArrowBorder(wxDC& dc, wxRect *rect, bool isPressed = false);

    void DrawArrow(wxDC& dc, const wxRect& rect,
                   wxArrowDirection arrowDir, wxArrowStyle arrowStyle);

    void DrawMetal(wxDC &dc, const wxRect &rect );
private:
    wxPen m_penBlack,
          m_penDarkGrey,
          m_penLightGrey,
          m_penHighlight;

    wxBitmap m_bmpArrows[Arrow_StateMax][Arrow_Max];
};

// ----------------------------------------------------------------------------
// wxMetalTheme
// ----------------------------------------------------------------------------

WX_DEFINE_ARRAY_PTR(wxInputHandler *, wxArrayHandlers);

class wxMetalTheme : public wxTheme
{
public:
    wxMetalTheme();
    virtual ~wxMetalTheme();

    virtual wxRenderer *GetRenderer();
    virtual wxArtProvider *GetArtProvider();
    virtual wxInputHandler *GetInputHandler(const wxString& control);
    virtual wxColourScheme *GetColourScheme();
private:
    bool GetOrCreateTheme()
    {
        if ( !m_win32Theme )
            m_win32Theme = wxTheme::Create( wxT("win32") );
        return m_win32Theme != NULL;
    }
private:
    wxTheme *m_win32Theme;
    wxMetalRenderer *m_renderer;

    WX_DECLARE_THEME(Metal)
};

// ============================================================================
// implementation
// ============================================================================

WX_IMPLEMENT_THEME(wxMetalTheme, Metal, wxTRANSLATE("Metal theme"));

// ----------------------------------------------------------------------------
// wxMetalTheme
// ----------------------------------------------------------------------------

wxMetalTheme::wxMetalTheme()
{
    m_win32Theme = NULL;
    m_renderer = NULL;
}

wxMetalTheme::~wxMetalTheme()
{
    delete m_win32Theme;
    delete m_renderer;
}

wxRenderer *wxMetalTheme::GetRenderer()
{
    if ( !GetOrCreateTheme() )
        return 0;
    if ( !m_renderer )
        m_renderer = new wxMetalRenderer(m_win32Theme->GetRenderer(),
                                         m_win32Theme->GetColourScheme());

    return m_renderer;
}

wxArtProvider *wxMetalTheme::GetArtProvider()
{
    if ( !GetOrCreateTheme() )
        return 0;
    return m_win32Theme->GetArtProvider();
}

wxInputHandler *wxMetalTheme::GetInputHandler(const wxString& control)
{
    if ( !GetOrCreateTheme() )
        return 0;
    return m_win32Theme->GetInputHandler(control);
}

wxColourScheme *wxMetalTheme::GetColourScheme()
{
    if ( !GetOrCreateTheme() )
        return 0;
    return m_win32Theme->GetColourScheme();
}

// ----------------------------------------------------------------------------
// wxMetalRenderer
// ----------------------------------------------------------------------------

wxMetalRenderer::wxMetalRenderer(wxRenderer *renderer, wxColourScheme *scheme)
    : wxDelegateRenderer(renderer)
{
    // init colours and pens
    m_penBlack = wxPen(wxSCHEME_COLOUR(scheme, SHADOW_DARK), 0, wxSOLID);
    m_penDarkGrey = wxPen(wxSCHEME_COLOUR(scheme, SHADOW_OUT), 0, wxSOLID);
    m_penLightGrey = wxPen(wxSCHEME_COLOUR(scheme, SHADOW_IN), 0, wxSOLID);
    m_penHighlight = wxPen(wxSCHEME_COLOUR(scheme, SHADOW_HIGHLIGHT), 0, wxSOLID);

    // init the arrow bitmaps
    static const size_t ARROW_WIDTH = 7;
    static const size_t ARROW_LENGTH = 4;

    wxMask *mask;
    wxMemoryDC dcNormal,
               dcDisabled,
               dcInverse;
    for ( size_t n = 0; n < Arrow_Max; n++ )
    {
        bool isVertical = n > Arrow_Right;
        int w, h;
        if ( isVertical )
        {
            w = ARROW_WIDTH;
            h = ARROW_LENGTH;
        }
        else
        {
            h = ARROW_WIDTH;
            w = ARROW_LENGTH;
        }

        // disabled arrow is larger because of the shadow
        m_bmpArrows[Arrow_Normal][n].Create(w, h);
        m_bmpArrows[Arrow_Disabled][n].Create(w + 1, h + 1);

        dcNormal.SelectObject(m_bmpArrows[Arrow_Normal][n]);
        dcDisabled.SelectObject(m_bmpArrows[Arrow_Disabled][n]);

        dcNormal.SetBackground(*wxWHITE_BRUSH);
        dcDisabled.SetBackground(*wxWHITE_BRUSH);
        dcNormal.Clear();
        dcDisabled.Clear();

        dcNormal.SetPen(m_penBlack);
        dcDisabled.SetPen(m_penDarkGrey);

        // calculate the position of the point of the arrow
        wxCoord x1, y1;
        if ( isVertical )
        {
            x1 = (ARROW_WIDTH - 1)/2;
            y1 = n == Arrow_Up ? 0 : ARROW_LENGTH - 1;
        }
        else // horizontal
        {
            x1 = n == Arrow_Left ? 0 : ARROW_LENGTH - 1;
            y1 = (ARROW_WIDTH - 1)/2;
        }

        wxCoord x2 = x1,
                y2 = y1;

        if ( isVertical )
            x2++;
        else
            y2++;

        for ( size_t i = 0; i < ARROW_LENGTH; i++ )
        {
            dcNormal.DrawLine(x1, y1, x2, y2);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产九色sp调教91| 久久99国内精品| 视频一区中文字幕国产| 激情五月激情综合网| 成人免费视频一区二区| 色欧美片视频在线观看| 91精品国产乱码久久蜜臀| 久久久99精品久久| 亚洲综合视频网| 亚洲综合色视频| 国产一区二区视频在线| 欧美在线免费观看亚洲| 久久综合九色综合97婷婷| 亚洲乱码国产乱码精品精可以看| 亚洲综合区在线| 成人一区二区三区视频| 欧美日韩国产在线播放网站| 国产欧美一区二区精品性| 亚洲成人av资源| 激情综合色综合久久| 色婷婷一区二区三区四区| 国产丝袜在线精品| 三级在线观看一区二区| 色综合久久中文字幕综合网| 国产高清在线精品| 丁香婷婷深情五月亚洲| 久久综合999| 国产精品资源网| 久久久久久黄色| 韩国av一区二区三区四区| 精品美女一区二区三区| 麻豆精品国产91久久久久久| 欧美一区二区三区免费大片| 天堂精品中文字幕在线| 欧美日韩国产首页| 亚洲v精品v日韩v欧美v专区| 欧美日韩国产免费| 热久久久久久久| 欧美成人精品高清在线播放 | 精品国产sm最大网站| 美国十次了思思久久精品导航| 69成人精品免费视频| 蜜臀精品一区二区三区在线观看 | 国产色爱av资源综合区| 国产成人免费av在线| 日本一二三四高清不卡| av在线不卡电影| 一区二区高清免费观看影视大全| 欧美亚洲一区二区在线| 日本美女视频一区二区| 精品成人免费观看| 99久久婷婷国产综合精品电影 | 欧美疯狂做受xxxx富婆| 日日夜夜免费精品| 久久伊人中文字幕| www.爱久久.com| 亚洲国产成人精品视频| 日韩欧美一级片| 成人精品视频一区二区三区| 亚洲欧美日韩国产中文在线| 4438x成人网最大色成网站| 国产综合一区二区| 成人免费在线视频观看| 欧美精品久久99久久在免费线 | 1区2区3区欧美| 欧美日韩在线观看一区二区 | 亚洲精品视频一区| 日韩一区二区在线观看| 成人福利电影精品一区二区在线观看| 一区二区在线观看免费| 欧美不卡一二三| 色欧美88888久久久久久影院| 秋霞电影网一区二区| 中文字幕一区二区不卡| 欧美一区二区三区不卡| 不卡视频在线看| 男男视频亚洲欧美| 国产精品美女久久久久久2018 | 91精品国产91久久综合桃花| 成人激情视频网站| 日韩av网站免费在线| 国产精品久久久久久久浪潮网站| 欧美一区二区三区在线观看视频| 成人免费视频免费观看| 日韩精品成人一区二区三区| 中文一区在线播放| 日韩亚洲欧美高清| 欧美在线播放高清精品| 福利一区二区在线| 免费成人你懂的| 一区二区三区在线影院| 日本一区二区三区电影| 欧美大片一区二区三区| 91成人看片片| av在线一区二区三区| 国产一区二区三区蝌蚪| 免费不卡在线视频| 亚洲一区视频在线| 亚洲另类中文字| 中文av一区特黄| 久久九九影视网| 精品日韩av一区二区| 制服.丝袜.亚洲.中文.综合| 99久久精品国产导航| 成人性视频网站| 韩国精品在线观看| 另类小说图片综合网| 日本va欧美va精品发布| 天使萌一区二区三区免费观看| 亚洲精品成a人| 亚洲卡通欧美制服中文| 亚洲天堂2016| 亚洲美女屁股眼交| 亚洲精品高清在线| 亚洲精品videosex极品| 一二三四社区欧美黄| 亚洲美女视频一区| 亚洲精品一二三| 亚洲精品日产精品乱码不卡| 一区二区在线看| 亚洲成人精品在线观看| 日本一不卡视频| 麻豆成人久久精品二区三区红| 麻豆91在线看| 国产精品白丝av| 成人丝袜视频网| 一本久道中文字幕精品亚洲嫩| 色婷婷精品大在线视频| 欧美写真视频网站| 欧美一卡二卡在线观看| 亚洲精品一区二区在线观看| 日韩视频一区二区在线观看| 欧美精品一区二区三区蜜臀| 国产亚洲成av人在线观看导航 | 日韩一二三区不卡| 精品国产一区二区国模嫣然| 久久精品亚洲精品国产欧美| 综合亚洲深深色噜噜狠狠网站| 一区二区三区日韩欧美精品| 亚洲国产精品久久人人爱蜜臀| 麻豆久久久久久| www.成人网.com| 欧美人xxxx| 国产视频一区二区在线观看| 亚洲色图视频免费播放| 久久精品国产在热久久| 丰满少妇在线播放bd日韩电影| 91黄色激情网站| 日韩欧美国产精品一区| 成人免费在线视频| 免费观看日韩电影| 91网站在线播放| 欧美xxx久久| 亚洲欧洲日韩在线| 免费不卡在线观看| 91在线丨porny丨国产| 在线播放国产精品二区一二区四区| 精品久久五月天| 亚洲在线视频一区| 国产成人综合在线| 欧美日韩国产色站一区二区三区| 国产日韩欧美精品电影三级在线| 亚洲自拍偷拍网站| 国产精品一二三区| 欧美精品精品一区| 亚洲精品高清视频在线观看| 国模大尺度一区二区三区| 欧美偷拍一区二区| 国产精品久久久久久久久免费桃花| 日韩国产欧美在线视频| 91美女片黄在线观看91美女| 久久男人中文字幕资源站| 视频一区二区国产| 91视频xxxx| 国产精品久久久久一区| 久久电影网站中文字幕| 欧美日韩aaaaaa| 亚洲免费大片在线观看| 国产激情一区二区三区| 日韩午夜av一区| 偷窥少妇高潮呻吟av久久免费| av不卡在线播放| 国产日韩成人精品| 极品少妇xxxx精品少妇偷拍| 91精品国产手机| 偷窥国产亚洲免费视频| 欧洲在线/亚洲| 亚洲欧美日韩久久精品| 99视频精品免费视频| 国产女人18水真多18精品一级做| 另类欧美日韩国产在线| 欧美一级日韩一级| 日本在线不卡一区| 欧美老女人第四色| 亚洲国产一二三| 欧美美女网站色| 五月天视频一区| 91精品国产色综合久久| 奇米影视7777精品一区二区| 在线成人av网站|