From 0e7f1b64627033f57816b295e662621172867a4f Mon Sep 17 00:00:00 2001 From: xuhuajie-NetEase <53515032+xuhuajie-NetEase@users.noreply.github.com> Date: Wed, 14 Aug 2019 16:03:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E5=9C=86=E7=8E=AF?= =?UTF-8?q?=E5=BD=A2=E6=BB=9A=E5=8A=A8=E6=9D=A1=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../themes/default/controls/controls.xml | 6 + samples/controls/controls_form.cpp | 5 + tool_kits/duilib/Control/CircleProgress.cpp | 206 +++++ tool_kits/duilib/Control/CircleProgress.h | 84 ++ tool_kits/duilib/Core/Define.h | 1 + tool_kits/duilib/Core/WindowBuilder.cpp | 1 + tool_kits/duilib/UIlib.h | 1 + tool_kits/duilib/duilib.vcxproj | 840 +++++++++--------- tool_kits/duilib/duilib.vcxproj.filters | 686 +++++++------- 9 files changed, 1071 insertions(+), 759 deletions(-) create mode 100644 tool_kits/duilib/Control/CircleProgress.cpp create mode 100644 tool_kits/duilib/Control/CircleProgress.h diff --git a/bin/resources/themes/default/controls/controls.xml b/bin/resources/themes/default/controls/controls.xml index 2c18df9e..4e718209 100644 --- a/bin/resources/themes/default/controls/controls.xml +++ b/bin/resources/themes/default/controls/controls.xml @@ -57,7 +57,13 @@ + + + + (FindControl(L"progress")); progress->SetValue(value); + auto circleprogress = dynamic_cast(FindControl(L"circleprogress")); + circleprogress->SetValue(value); + TCHAR szBuffer[32] = {0}; + swprintf_s(szBuffer, _T("%.0f%%"), value); + circleprogress->SetText(szBuffer); } diff --git a/tool_kits/duilib/Control/CircleProgress.cpp b/tool_kits/duilib/Control/CircleProgress.cpp new file mode 100644 index 00000000..b1698ff5 --- /dev/null +++ b/tool_kits/duilib/Control/CircleProgress.cpp @@ -0,0 +1,206 @@ +#include "stdafx.h" +#include "CircleProgress.h" +#include "shlwapi.h" + +namespace ui +{ + CircleProgress::CircleProgress() : + m_bCircular(true), + m_bClockwise(true), + m_nCircleWidth(1), + m_dwBackgroundColor(0), + m_dwForegroundColor(0), + m_dwGradientColor(0), + m_pIndicator(nullptr) + { + + } + + void CircleProgress::SetAttribute(const std::wstring& srName, const std::wstring& strValue) + { + if (srName == _T("circular")) SetCircular(strValue == _T("true")); + else if (srName == _T("circlewidth")) SetCircleWidth(_ttoi(strValue.c_str())); + else if (srName == _T("indicator")) SetIndicator(strValue); + else if (srName == _T("clockwise")) SetClockwiseRotation(strValue == _T("true")); + else if (srName == _T("bgcolor")) { + LPCTSTR pValue = strValue.c_str(); + while (*pValue > _T('\0') && *pValue <= _T(' ')) pValue = ::CharNext(pValue); + SetBackgroudColor(pValue); + } + else if (srName == _T("fgcolor")) { + LPCTSTR pValue = strValue.c_str(); + while (*pValue > _T('\0') && *pValue <= _T(' ')) pValue = ::CharNext(pValue); + SetForegroudColor(pValue); + } + else if (srName == _T("gradientcolor")) { + LPCTSTR pValue = strValue.c_str(); + while (*pValue > _T('\0') && *pValue <= _T(' ')) pValue = ::CharNext(pValue); + SetCircleGradientColor(pValue); + } + else Progress::SetAttribute(srName, strValue); + } + + void CircleProgress::PaintStatusImage(IRenderContext* pRender) + { + Progress::PaintStatusImage(pRender); + if (m_bCircular) + { + //Ä¿Ç°IRenderContext»¹ÓкܶàGDI+½Ó¿ÚδʵÏÖ£¬ÔÝʱֱ½ÓÓÃgdi+»­Í¼ÁË + //ÒÔºó¿ÉÄÜ»áµ÷Õû£ºÐèʵÏÖ1¡¢DrawArc 2¡¢PenÔö¼Óbrush(½¥±ä)Èë²Î 3¡¢¿ÉÒÔ×ÔÓÉÉèÖÃGraphicsÊôÐÔ + int direction = m_bClockwise ? 1 : -1; //Ðýת·½Ïò + int bordersize = 1; //»¡¶È¿í¶ÈĿǰʹÓÃ1ÏñËØ + + Gdiplus::Graphics graphics(pRender->GetDC()); + graphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias); + Gdiplus::Pen bgPen(m_dwBackgroundColor, m_nCircleWidth); + // Ô²ÐÎÖÐÐÄ + CPoint center; + center.x = m_rcItem.left + (m_rcItem.right - m_rcItem.left) / 2; + center.y = m_rcItem.top + (m_rcItem.bottom - m_rcItem.top) / 2; + + // ¿Ø¼þ¾ØÐÎÄÚµÄ×î´óÕý·½Ðεı߽ç + int side = min(m_rcItem.right - m_rcItem.left, m_rcItem.bottom - m_rcItem.top); + //UiRect rcBorder; ÈÔÈ»´æÔÚUiRect µ½ RectFµÄת»»£¬ËùÒÔÖ±½ÓÓÃgdiµÄRectFÁË + Gdiplus::RectF rcBorder; + rcBorder.X = center.x - side / 2; + rcBorder.Y = center.y - side / 2; + rcBorder.Width = rcBorder.Height = side; + + Gdiplus::RectF outer = rcBorder; + if (m_pIndicator) { + outer.Inflate(-1.0F *m_pIndicator->GetWidth() / 2, -1.0F * m_pIndicator->GetWidth() / 2); + } + else + { + outer.Inflate(-0.5 * m_nCircleWidth, -0.5 * m_nCircleWidth); + } + outer.Inflate(-1, -1); + + + if (m_dwGradientColor == 0) + { + //²»Ê¹Óý¥±äÉ«£¬Ö±½ÓÓÃÇ°¾°É«ÆÌÂú + Gdiplus::Pen fgPen(m_dwForegroundColor, m_nCircleWidth); + graphics.DrawArc(&bgPen, outer, 270, 360); //270´Ó×îÉÏÃ濪ʼµÝÔö£¬ÉèΪ0µÄ»°£¬ÊÇ×îÓұ߿ªÊ¼ + graphics.DrawArc(&fgPen, outer, 270, direction * 360 * (m_nValue - m_nMin) / (m_nMax - m_nMin)); + } + else + { + Gdiplus::REAL factors[4] = { 0.0f, 0.4f, 0.6f, 1.0f }; + Gdiplus::REAL positions[4] = { 0.0f, 0.2f, 0.8f, 1.0f }; + + Gdiplus::LinearGradientBrush lgbrush(rcBorder, m_dwForegroundColor, m_dwGradientColor, Gdiplus::LinearGradientModeVertical); + lgbrush.SetBlend(factors, positions, 4); + graphics.DrawArc(&bgPen, outer, 270, 360); + Gdiplus::Pen fgPen(&lgbrush, m_nCircleWidth); + graphics.DrawArc(&fgPen, outer, 270, direction * 360 * (m_nValue - m_nMin) / (m_nMax - m_nMin)); + + } + + //»­ÐýתָʾÆ÷ͼ±ê£¬ÐèÒªÓõ½¾ØÕó + if (m_pIndicator) + { + Gdiplus::Matrix matrix; + matrix.RotateAt(direction * 360 * (m_nValue - m_nMin) / (m_nMax - m_nMin), Gdiplus::PointF(center.x, center.y), Gdiplus::MatrixOrderAppend); + graphics.SetTransform(&matrix); + Gdiplus::RectF rectf; + rectf.X = center.x - m_pIndicator->GetWidth() / 2; + rectf.Y = outer.Y + bordersize / 2 -m_pIndicator->GetHeight() / 2; + rectf.Width = m_pIndicator->GetWidth(); + rectf.Height = m_pIndicator->GetHeight(); + graphics.DrawImage(m_pIndicator, rectf); + } + + } + } + + void CircleProgress::ClearImageCache() + { + __super::ClearImageCache(); + if (m_pIndicator) + { + delete m_pIndicator; + m_pIndicator = nullptr; + } + } + + + + void CircleProgress::SetCircular(bool bCircular /*= true*/) + { + m_bCircular = bCircular; + Invalidate(); + } + + + void CircleProgress::SetClockwiseRotation(bool bClockwise /*= true*/) + { + if (bClockwise != m_bClockwise) + { + m_bClockwise = bClockwise; + if (m_pIndicator) + { + //ÒѾ­ÐýתÁËͼƬ£¬Ðýתµ½Ïà·´µÄ·½Ïò + m_pIndicator->RotateFlip(Gdiplus::Rotate180FlipNone); + } + + } + } + + void CircleProgress::SetCircleWidth(int nCircleWidth) + { + m_nCircleWidth = nCircleWidth; + Invalidate(); + } + + + void CircleProgress::SetBackgroudColor(const std::wstring& strColor) + { + m_dwBackgroundColor = GlobalManager::GetTextColor(strColor); + ASSERT(m_dwBackgroundColor != 0); + Invalidate(); + } + + void CircleProgress::SetForegroudColor(const std::wstring& strColor) + { + m_dwForegroundColor = GlobalManager::GetTextColor(strColor); + ASSERT(m_dwForegroundColor != 0); + Invalidate(); + } + + void CircleProgress::SetIndicator(const std::wstring& sIndicatorImage) + { + if (m_sIndicatorImage != sIndicatorImage) + { + m_sIndicatorImage = sIndicatorImage; + if (m_pIndicator) + { + delete m_pIndicator; + m_pIndicator = nullptr; + } + std::wstring imagepath = m_sIndicatorImage; + if (!::PathFileExistsW(imagepath.c_str())) { + imagepath = GlobalManager::GetResourcePath() + m_pWindow->GetWindowResourcePath() + imagepath; + } + if (!::PathFileExistsW(imagepath.c_str())) { + return; + } + m_pIndicator = new Gdiplus::Image(imagepath.c_str()); + + Gdiplus::Status state = m_pIndicator->GetLastStatus(); + if (Gdiplus::Ok == state) + { + // ¼Ù¶¨Í¼Æ¬Ö¸ÏòÉÏ + m_pIndicator->RotateFlip(m_bClockwise ? Gdiplus::Rotate90FlipNone : Gdiplus::Rotate270FlipNone); + Invalidate(); + } + } + } + + void CircleProgress::SetCircleGradientColor(const std::wstring& strColor) + { + m_dwGradientColor = GlobalManager::GetTextColor(strColor); + ASSERT(m_dwGradientColor != 0); + Invalidate(); + } +} diff --git a/tool_kits/duilib/Control/CircleProgress.h b/tool_kits/duilib/Control/CircleProgress.h new file mode 100644 index 00000000..069dd1a2 --- /dev/null +++ b/tool_kits/duilib/Control/CircleProgress.h @@ -0,0 +1,84 @@ +/** @file CircleProgress.h +* @brief Ô²»·Ð͹ö¶¯Ìõ¿Ø¼þ£¬Ô²»·Öмä¿ÉÒÔÓÐÎı¾£¨Èç85%£© +* @copyright (c) 2019-2022, NetEase Inc. All rights reserved +* @author Xuhuajie +* @date 2019/8/14 +*/ + +#ifndef UI_CONTROL_CIRCLEPROGRESS_H_ +#define UI_CONTROL_CIRCLEPROGRESS_H_ + +#pragma once + +namespace ui +{ + + class UILIB_API CircleProgress : public Progress + { + public: + CircleProgress(); + + /// ÖØд¸¸Àà·½·¨£¬Ìṩ¸öÐÔ»¯¹¦ÄÜ£¬Çë²Î¿¼¸¸ÀàÉùÃ÷ + virtual void SetAttribute(const std::wstring& strName, const std::wstring& strValue) override; + virtual void PaintStatusImage(IRenderContext* pRender) override; + virtual void ClearImageCache() override; + + /** + * @brief ÉèÖÃÔ²Ðιö¶¯Ìõ + * @param[in] bCircular Ϊ true ʱÉèÖÃΪԲÐιö¶¯Ìõ£¬false ʱÉèÖÃΪ¸¸¼¶¹ö¶¯Ìõ£¬Ä¬ÈÏΪ true + * @return ÎÞ + */ + void SetCircular(bool bCircular = true); + /** + * @brief ÉèÖõÝÔö·½Ïò + * @param[in] bClockwise Ϊ true ʱÉèÖÃΪ˳ʱÕ룬false ʱÉèÖÃΪÄæʱÕ룬ĬÈÏΪ true + * @return ÎÞ + */ + void SetClockwiseRotation(bool bClockwise = true); + /** + * @brief ÉèÖÃÔ²»·¿í¶È + * @param[in] nCircleWidth ¿í¶ÈÊýÖµ + * @return ÎÞ + */ + void SetCircleWidth(int nCircleWidth); + /** + * @brief ÉèÖýø¶ÈÌõ±³¾°ÑÕÉ« + * @param[in] strColorÒªÉèÖõı³¾°ÑÕÉ«×Ö·û´®£¬¸Ã×Ö·û´®±ØÐëÔÚ global.xml ÖдæÔÚ + * @return ÎÞ + */ + void SetBackgroudColor(const std::wstring& strColor); + /** + * @brief ÉèÖýø¶ÈÌõÇ°¾°ÑÕÉ« + * @param[in] strColorÒªÉèÖõÄÇ°¾°ÑÕÉ«×Ö·û´®£¬¸Ã×Ö·û´®±ØÐëÔÚ global.xml ÖдæÔÚ + * @return ÎÞ + */ + void SetForegroudColor(const std::wstring& strColor); + /** + * @brief ÉèÖýø¶ÈÌõÇ°¾°½¥±äÑÕÉ«£¬ÓëForegroudColorͬʱʹÓ㬿ÉÒÔ²»ÉèÖÃ,ÔòÎÞ½¥±äЧ¹û + * @param[in] strColorÒªÉèÖõÄÇ°¾°½¥±äÑÕÉ«×Ö·û´®£¬¸Ã×Ö·û´®±ØÐëÔÚ global.xml ÖдæÔÚ + * @return ÎÞ + */ + void SetCircleGradientColor(const std::wstring& strColor); + /** + * @brief ÉèÖýø¶ÈָʾÒƶ¯Í¼±ê + * @param[in] sIndicatorImageÒªÉèÖõÄͼƬ + * @return ÎÞ + */ + void SetIndicator(const std::wstring& sIndicatorImage); + + protected: + bool m_bCircular; + bool m_bClockwise; + int m_nCircleWidth; + DWORD m_dwBackgroundColor; + DWORD m_dwForegroundColor; + DWORD m_dwGradientColor; + //Image m_IndicatorImage; //ʹÓÃimage¶ÔÏó£¬ÎÞ·¨Âú×ãÐèÇó£¬ÐèÒªÉèÖþØÕó±ä»» + Gdiplus::Image* m_pIndicator; //´ËÀàĿǰά»¤×ÊÔ´¹ÜÀí + std::wstring m_sIndicatorImage; + + }; + +} // namespace ui + +#endif // UI_CONTROL_CIRCLEPROGRESS_H_ diff --git a/tool_kits/duilib/Core/Define.h b/tool_kits/duilib/Core/Define.h index 78c43bec..f641f496 100644 --- a/tool_kits/duilib/Core/Define.h +++ b/tool_kits/duilib/Core/Define.h @@ -239,6 +239,7 @@ EventType StringToEnum(const std::wstring& messageType); #define DUI_CTR_COMBO (_T("Combo")) #define DUI_CTR_SLIDER (_T("Slider")) #define DUI_CTR_PROGRESS (_T("Progress")) +#define DUI_CTR_CIRCLEPROGRESS (_T("CircleProgress")) #define DUI_CTR_SCROLLBAR (_T("ScrollBar")) }// namespace ui diff --git a/tool_kits/duilib/Core/WindowBuilder.cpp b/tool_kits/duilib/Core/WindowBuilder.cpp index 71ddc362..f6636e52 100644 --- a/tool_kits/duilib/Core/WindowBuilder.cpp +++ b/tool_kits/duilib/Core/WindowBuilder.cpp @@ -493,6 +493,7 @@ Control* WindowBuilder::CreateControlByClass(const std::wstring& strControlClass break; case 14: if (strControlClass == DUI_CTR_VIRTUALLISTBOX) pControl = new VirtualListBox; + else if (strControlClass == DUI_CTR_CIRCLEPROGRESS) pControl = new CircleProgress; break; case 15: break; diff --git a/tool_kits/duilib/UIlib.h b/tool_kits/duilib/UIlib.h index 2c7e57bb..31d33738 100644 --- a/tool_kits/duilib/UIlib.h +++ b/tool_kits/duilib/UIlib.h @@ -127,6 +127,7 @@ #include "Control/Option.h" #include "Control/Progress.h" +#include "Control/CircleProgress.h" #include "Control/Slider.h" #include "Control/RichEdit.h" diff --git a/tool_kits/duilib/duilib.vcxproj b/tool_kits/duilib/duilib.vcxproj index 430848c9..6177fdf3 100644 --- a/tool_kits/duilib/duilib.vcxproj +++ b/tool_kits/duilib/duilib.vcxproj @@ -1,420 +1,422 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {E106ACD7-4E53-4AEE-942B-D0DD426DB34E} - duilib - - - - StaticLibrary - false - Unicode - v120_xp - - - StaticLibrary - false - Unicode - v120_xp - - - StaticLibrary - false - Unicode - v120_xp - - - StaticLibrary - false - Unicode - v120_xp - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(ProjectDir)..\..\libs\ - $(ProjectDir)..\..\tmp\$(PlatformName)\$(ProjectName)\$(Configuration)\ - false - false - false - false - false - false - $(ProjectDir)..\..\libs\ - $(ProjectDir)..\..\tmp\$(PlatformName)\$(ProjectName)\$(Configuration)\ - false - false - false - false - false - false - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - $(ProjectName)_d - $(ProjectName)_d - - - $(ProjectDir)..\..\libs\x64\ - $(ProjectDir)..\..\tmp\$(PlatformName)\$(ProjectName)\$(Configuration)\ - - - $(ProjectDir)..\..\libs\x64\ - $(ProjectDir)..\..\tmp\$(PlatformName)\$(ProjectName)\$(Configuration)\ - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Debug/duilib.tlb - - - - - Disabled - .\;..\;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - Use - stdafx.h - $(IntDir)$(TargetName).pch - Level4 - true - EditAndContinue - false - 4100;4121;4127;4244;4310;4355;4481;4505;4512;4702;%(DisableSpecificWarnings) - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(ProjectDir)..\..\..\bin\$(ProjectName)_d.dll - true - %(AdditionalLibraryDirectories) - %(DelayLoadDLLs) - true - $(ProjectDir)..\..\..\bin\$(TargetName).pdb - 0x11000000 - $(ProjectDir)..\..\..\libs\duilib_d.lib - MachineX86 - comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;%(AdditionalDependencies) - - - true - .\Debug/duilib.bsc - - - comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;imm32.lib;shlwapi.lib - /IGNORE:4006,4221 %(AdditionalOptions) - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - .\Debug/duilib.tlb - - - - - Disabled - .\;..\;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - Use - stdafx.h - $(IntDir)$(TargetName).pch - Level4 - true - ProgramDatabase - false - 4100;4121;4127;4244;4310;4355;4481;4505;4512;4702;%(DisableSpecificWarnings) - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(ProjectDir)..\..\..\bin\$(ProjectName)_d.dll - true - %(AdditionalLibraryDirectories) - %(DelayLoadDLLs) - true - $(ProjectDir)..\..\..\bin\$(TargetName).pdb - 0x11000000 - $(ProjectDir)..\..\..\libs\duilib_d.lib - comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;%(AdditionalDependencies) - - - true - .\Debug/duilib.bsc - - - comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;imm32.lib;shlwapi.lib - /IGNORE:4006,4221 %(AdditionalOptions) - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Release/duilib.tlb - - - - - MaxSpeed - Default - .\;..\;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - true - Use - $(IntDir)$(TargetName).pch - Level4 - true - true - true - MultiThreaded - 4100;4121;4127;4244;4310;4355;4481;4505;4512;4702;%(DisableSpecificWarnings) - - - NDEBUG;%(PreprocessorDefinitions) - 0x0406 - - - $(ProjectDir)..\..\..\bin\$(ProjectName).dll - true - %(AdditionalLibraryDirectories) - %(DelayLoadDLLs) - 0x11000000 - $(ProjectDir)..\..\..\libs\duilib.lib - MachineX86 - $(ProjectDir)..\..\..\bin\$(TargetName).pdb - true - comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;%(AdditionalDependencies) - - - true - .\Release/duilib.bsc - - - comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;imm32.lib;shlwapi.lib - /IGNORE:4006,4221 %(AdditionalOptions) - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - .\Release/duilib.tlb - - - - - MaxSpeed - Default - .\;..\;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - true - Use - $(IntDir)$(TargetName).pch - Level4 - true - true - true - MultiThreaded - 4100;4121;4127;4244;4310;4355;4481;4505;4512;4702;%(DisableSpecificWarnings) - - - NDEBUG;%(PreprocessorDefinitions) - 0x0406 - - - $(ProjectDir)..\..\..\bin\$(ProjectName).dll - true - %(AdditionalLibraryDirectories) - %(DelayLoadDLLs) - 0x11000000 - $(ProjectDir)..\..\..\libs\duilib.lib - $(ProjectDir)..\..\..\bin\$(TargetName).pdb - true - comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;%(AdditionalDependencies) - - - true - .\Release/duilib.bsc - - - comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;imm32.lib;shlwapi.lib - /IGNORE:4006,4221 %(AdditionalOptions) - - - - - - - false - - - - - - - - - - - - - - - - - - - - Create - Create - Create - Create - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {E106ACD7-4E53-4AEE-942B-D0DD426DB34E} + duilib + + + + StaticLibrary + false + Unicode + v120_xp + + + StaticLibrary + false + Unicode + v120_xp + + + StaticLibrary + false + Unicode + v120_xp + + + StaticLibrary + false + Unicode + v120_xp + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(ProjectDir)..\..\libs\ + $(ProjectDir)..\..\tmp\$(PlatformName)\$(ProjectName)\$(Configuration)\ + false + false + false + false + false + false + $(ProjectDir)..\..\libs\ + $(ProjectDir)..\..\tmp\$(PlatformName)\$(ProjectName)\$(Configuration)\ + false + false + false + false + false + false + AllRules.ruleset + AllRules.ruleset + + + + + AllRules.ruleset + AllRules.ruleset + + + + + $(ProjectName)_d + $(ProjectName)_d + + + $(ProjectDir)..\..\libs\x64\ + $(ProjectDir)..\..\tmp\$(PlatformName)\$(ProjectName)\$(Configuration)\ + + + $(ProjectDir)..\..\libs\x64\ + $(ProjectDir)..\..\tmp\$(PlatformName)\$(ProjectName)\$(Configuration)\ + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/duilib.tlb + + + + + Disabled + .\;..\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + Use + stdafx.h + $(IntDir)$(TargetName).pch + Level4 + true + EditAndContinue + false + 4100;4121;4127;4244;4310;4355;4481;4505;4512;4702;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(ProjectDir)..\..\..\bin\$(ProjectName)_d.dll + true + %(AdditionalLibraryDirectories) + %(DelayLoadDLLs) + true + $(ProjectDir)..\..\..\bin\$(TargetName).pdb + 0x11000000 + $(ProjectDir)..\..\..\libs\duilib_d.lib + MachineX86 + comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;%(AdditionalDependencies) + + + true + .\Debug/duilib.bsc + + + comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;imm32.lib;shlwapi.lib + /IGNORE:4006,4221 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + .\Debug/duilib.tlb + + + + + Disabled + .\;..\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + Use + stdafx.h + $(IntDir)$(TargetName).pch + Level4 + true + ProgramDatabase + false + 4100;4121;4127;4244;4310;4355;4481;4505;4512;4702;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(ProjectDir)..\..\..\bin\$(ProjectName)_d.dll + true + %(AdditionalLibraryDirectories) + %(DelayLoadDLLs) + true + $(ProjectDir)..\..\..\bin\$(TargetName).pdb + 0x11000000 + $(ProjectDir)..\..\..\libs\duilib_d.lib + comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;%(AdditionalDependencies) + + + true + .\Debug/duilib.bsc + + + comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;imm32.lib;shlwapi.lib + /IGNORE:4006,4221 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/duilib.tlb + + + + + MaxSpeed + Default + .\;..\;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + true + Use + $(IntDir)$(TargetName).pch + Level4 + true + true + true + MultiThreaded + 4100;4121;4127;4244;4310;4355;4481;4505;4512;4702;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0406 + + + $(ProjectDir)..\..\..\bin\$(ProjectName).dll + true + %(AdditionalLibraryDirectories) + %(DelayLoadDLLs) + 0x11000000 + $(ProjectDir)..\..\..\libs\duilib.lib + MachineX86 + $(ProjectDir)..\..\..\bin\$(TargetName).pdb + true + comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;%(AdditionalDependencies) + + + true + .\Release/duilib.bsc + + + comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;imm32.lib;shlwapi.lib + /IGNORE:4006,4221 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\Release/duilib.tlb + + + + + MaxSpeed + Default + .\;..\;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + true + Use + $(IntDir)$(TargetName).pch + Level4 + true + true + true + MultiThreaded + 4100;4121;4127;4244;4310;4355;4481;4505;4512;4702;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0406 + + + $(ProjectDir)..\..\..\bin\$(ProjectName).dll + true + %(AdditionalLibraryDirectories) + %(DelayLoadDLLs) + 0x11000000 + $(ProjectDir)..\..\..\libs\duilib.lib + $(ProjectDir)..\..\..\bin\$(TargetName).pdb + true + comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;%(AdditionalDependencies) + + + true + .\Release/duilib.bsc + + + comctl32.lib;gdiplus.lib;msimg32.lib;winmm.lib;imm32.lib;shlwapi.lib + /IGNORE:4006,4221 %(AdditionalOptions) + + + + + + + false + + + + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tool_kits/duilib/duilib.vcxproj.filters b/tool_kits/duilib/duilib.vcxproj.filters index 5e5f5a8b..ab7a238e 100644 --- a/tool_kits/duilib/duilib.vcxproj.filters +++ b/tool_kits/duilib/duilib.vcxproj.filters @@ -1,341 +1,347 @@ - - - - - {8fc45193-00aa-405d-8445-6f6619d94834} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {b7a95a7b-1188-487e-b75b-a6e6fe6055f7} - - - {ef45879d-87a5-4d7f-9a92-fdf97778b304} - - - {f70f6171-d9fd-4189-b1d7-5250e2d6f0fd} - - - {b7a7aeb7-2adb-4395-b80d-4922bd4efc19} - h;hpp;hxx;hm;inl - - - {3472fe0b-1976-4ada-9c67-2f07b06068d2} - - - {1a8a45f1-b601-4178-b118-b282f71c4dec} - - - {6eb00376-1e2b-4faf-9eaa-bdc915049307} - - - {38a8cc27-53b9-4413-8919-ae7448229ad2} - - - {101719c8-36d9-454c-be9a-d0f158cf21b4} - - - {4f978102-2279-42b9-ab99-8a719e9fdf53} - - - {2069d257-49fd-4283-9999-19e7dda732c8} - - - {ab59d168-e65b-4cf4-aff6-a2a07e35d058} - - - {93308611-e7ba-4331-845a-700f5b457c52} - - - - - Source Files - - - Source Files - - - Source Files\Utils - - - Source Files\Control - - - Source Files\Control - - - Source Files\Control - - - Source Files\Control - - - Source Files\Control - - - Source Files\Control - - - Source Files\Control - - - Source Files\Core - - - Source Files\Core - - - Source Files\Utils - - - Source Files\Core - - - Source Files\Core - - - Source Files\Core - - - Source Files\Box - - - Source Files\Box - - - Source Files\Box - - - Source Files\Box - - - Source Files\Box - - - Source Files\Utils - - - Source Files\Animation - - - Source Files\Core - - - Source Files\Utils - - - Source Files\Core - - - Source Files\Animation - - - Source Files\Utils - - - Source Files\Core - - - Source Files\Utils - - - Source Files\Control - - - Source Files\Utils - - - Source Files\Render - - - Source Files\Render - - - Source Files\Render - - - Source Files\Render - - - Source Files\Render - - - Source Files\Utils - - - Source Files\Render - - - Source Files\Render - - - Source Files\Render - - - Source Files\Render - - - Source Files\Render - - - Source Files\Utils - - - - - Header Files - - - Header Files - - - Header Files\Utils - - - Header Files\Utils - - - Header Files\Utils - - - Header Files\Control - - - Header Files\Control - - - Header Files\Control - - - Header Files\Control - - - Header Files\Control - - - Header Files\Control - - - Header Files\Control - - - Header Files\Control - - - Header Files\Control - - - Header Files\Control - - - Header Files\Control - - - Header Files\Core - - - Header Files\Core - - - Header Files\Core - - - Header Files\Utils - - - Header Files\Utils - - - Header Files\Core - - - Header Files\Core - - - Header Files\Core - - - Header Files\Box - - - Header Files\Box - - - Header Files\Box - - - Header Files\Box - - - Header Files\Box - - - Header Files\Animation - - - Header Files\Core - - - Header Files\Utils - - - Header Files\Core - - - Header Files\Animation - - - Header Files\Utils - - - Header Files\Utils - - - Header Files\Utils - - - Header Files\Utils - - - Header Files\Control - - - Header Files\Utils - - - Header Files\Render - - - Header Files\Render - - - Header Files\Render - - - Header Files\Render - - - Header Files\Render - - - Header Files\Utils - - - Header Files\Render - - - Header Files\Render - - - Header Files\Render - - - Header Files\Render - - - Header Files\Render - - - Header Files\Utils - - + + + + + {8fc45193-00aa-405d-8445-6f6619d94834} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {b7a95a7b-1188-487e-b75b-a6e6fe6055f7} + + + {ef45879d-87a5-4d7f-9a92-fdf97778b304} + + + {f70f6171-d9fd-4189-b1d7-5250e2d6f0fd} + + + {b7a7aeb7-2adb-4395-b80d-4922bd4efc19} + h;hpp;hxx;hm;inl + + + {3472fe0b-1976-4ada-9c67-2f07b06068d2} + + + {1a8a45f1-b601-4178-b118-b282f71c4dec} + + + {6eb00376-1e2b-4faf-9eaa-bdc915049307} + + + {38a8cc27-53b9-4413-8919-ae7448229ad2} + + + {101719c8-36d9-454c-be9a-d0f158cf21b4} + + + {4f978102-2279-42b9-ab99-8a719e9fdf53} + + + {2069d257-49fd-4283-9999-19e7dda732c8} + + + {ab59d168-e65b-4cf4-aff6-a2a07e35d058} + + + {93308611-e7ba-4331-845a-700f5b457c52} + + + + + Source Files + + + Source Files + + + Source Files\Utils + + + Source Files\Control + + + Source Files\Control + + + Source Files\Control + + + Source Files\Control + + + Source Files\Control + + + Source Files\Control + + + Source Files\Control + + + Source Files\Core + + + Source Files\Core + + + Source Files\Utils + + + Source Files\Core + + + Source Files\Core + + + Source Files\Core + + + Source Files\Box + + + Source Files\Box + + + Source Files\Box + + + Source Files\Box + + + Source Files\Box + + + Source Files\Utils + + + Source Files\Animation + + + Source Files\Core + + + Source Files\Utils + + + Source Files\Core + + + Source Files\Animation + + + Source Files\Utils + + + Source Files\Core + + + Source Files\Utils + + + Source Files\Control + + + Source Files\Utils + + + Source Files\Render + + + Source Files\Render + + + Source Files\Render + + + Source Files\Render + + + Source Files\Render + + + Source Files\Utils + + + Source Files\Render + + + Source Files\Render + + + Source Files\Render + + + Source Files\Render + + + Source Files\Render + + + Source Files\Utils + + + Source Files\Control + + + + + Header Files + + + Header Files + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Control + + + Header Files\Control + + + Header Files\Control + + + Header Files\Control + + + Header Files\Control + + + Header Files\Control + + + Header Files\Control + + + Header Files\Control + + + Header Files\Control + + + Header Files\Control + + + Header Files\Control + + + Header Files\Core + + + Header Files\Core + + + Header Files\Core + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Core + + + Header Files\Core + + + Header Files\Core + + + Header Files\Box + + + Header Files\Box + + + Header Files\Box + + + Header Files\Box + + + Header Files\Box + + + Header Files\Animation + + + Header Files\Core + + + Header Files\Utils + + + Header Files\Core + + + Header Files\Animation + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Utils + + + Header Files\Control + + + Header Files\Utils + + + Header Files\Render + + + Header Files\Render + + + Header Files\Render + + + Header Files\Render + + + Header Files\Render + + + Header Files\Utils + + + Header Files\Render + + + Header Files\Render + + + Header Files\Render + + + Header Files\Render + + + Header Files\Render + + + Header Files\Utils + + + Header Files\Control + + \ No newline at end of file