Skip to content

Commit bce272c

Browse files
committed
Darkmodelibを使用しDark Modeへ対応
1 parent 5a3e631 commit bce272c

File tree

16 files changed

+149
-39
lines changed

16 files changed

+149
-39
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "tests/googletest"]
22
path = tests/googletest
33
url = https://github.com/google/googletest.git
4+
[submodule "externals/darkmodelib"]
5+
path = externals/darkmodelib
6+
url = https://github.com/ozone10/darkmodelib.git

sakura/sakura.vcxproj

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
</PropertyGroup>
5555
<ItemDefinitionGroup Label="sakura.common">
5656
<ClCompile>
57-
<AdditionalIncludeDirectories>..\sakura_core;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
57+
<AdditionalIncludeDirectories>..\sakura_core;..\externals\darkmodelib\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
5858
<PreprocessorDefinitions>_WIN32_WINNT=_WIN32_WINNT_WIN10;%(PreprocessorDefinitions)</PreprocessorDefinitions>
5959
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
6060
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
@@ -142,6 +142,12 @@
142142
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
143143
</ItemDefinitionGroup>
144144
<ItemGroup>
145+
<ClInclude Include="..\externals\darkmodelib\include\DarkModeSubclass.h" />
146+
<ClInclude Include="..\externals\darkmodelib\src\DarkMode.h" />
147+
<ClInclude Include="..\externals\darkmodelib\src\IatHook.h" />
148+
<ClInclude Include="..\externals\darkmodelib\src\StdAfx.h" />
149+
<ClInclude Include="..\externals\darkmodelib\src\UAHMenuBar.h" />
150+
<ClInclude Include="..\externals\darkmodelib\src\Version.h" />
145151
<ClInclude Include="..\sakura_core\apiwrap\CommonControl.h" />
146152
<ClInclude Include="..\sakura_core\apiwrap\StdApi.h" />
147153
<ClInclude Include="..\sakura_core\apiwrap\StdControl.h" />
@@ -500,6 +506,9 @@
500506
<ResourceCompile Include="..\sakura_core\sakura_rc.rc" />
501507
</ItemGroup>
502508
<ItemGroup>
509+
<ClCompile Include="..\externals\darkmodelib\src\DarkMode.cpp" />
510+
<ClCompile Include="..\externals\darkmodelib\src\DarkModeHook.cpp" />
511+
<ClCompile Include="..\externals\darkmodelib\src\DarkModeSubclass.cpp" />
503512
<ClCompile Include="..\sakura_core\apiwrap\StdApi.cpp" />
504513
<ClCompile Include="..\sakura_core\apiwrap\StdControl.cpp" />
505514
<ClCompile Include="..\sakura_core\basis\CErrorInfo.cpp" />

sakura/sakura.vcxproj.filters

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,9 @@
119119
<Filter Include="Cpp Source Files\uiparts">
120120
<UniqueIdentifier>{930f3f82-ab3f-49e3-af4a-d4f9c2d51f46}</UniqueIdentifier>
121121
</Filter>
122+
<Filter Include="Cpp Source Files\darkmodelib">
123+
<UniqueIdentifier>{57c87b7d-0c3b-4adb-9840-ce2292af594e}</UniqueIdentifier>
124+
</Filter>
122125
</ItemGroup>
123126
<ItemGroup>
124127
<ClInclude Include="..\sakura_core\Funccode_define.h">
@@ -1112,6 +1115,24 @@
11121115
<ClInclude Include="..\sakura_core\parse\DetectIndentationStyle.h">
11131116
<Filter>Cpp Source Files\parse</Filter>
11141117
</ClInclude>
1118+
<ClInclude Include="..\externals\darkmodelib\include\DarkModeSubclass.h">
1119+
<Filter>Cpp Source Files\darkmodelib</Filter>
1120+
</ClInclude>
1121+
<ClInclude Include="..\externals\darkmodelib\src\DarkMode.h">
1122+
<Filter>Cpp Source Files\darkmodelib</Filter>
1123+
</ClInclude>
1124+
<ClInclude Include="..\externals\darkmodelib\src\IatHook.h">
1125+
<Filter>Cpp Source Files\darkmodelib</Filter>
1126+
</ClInclude>
1127+
<ClInclude Include="..\externals\darkmodelib\src\StdAfx.h">
1128+
<Filter>Cpp Source Files\darkmodelib</Filter>
1129+
</ClInclude>
1130+
<ClInclude Include="..\externals\darkmodelib\src\UAHMenuBar.h">
1131+
<Filter>Cpp Source Files\darkmodelib</Filter>
1132+
</ClInclude>
1133+
<ClInclude Include="..\externals\darkmodelib\src\Version.h">
1134+
<Filter>Cpp Source Files\darkmodelib</Filter>
1135+
</ClInclude>
11151136
</ItemGroup>
11161137
<ItemGroup>
11171138
<None Include="..\resource\auto_scroll_center.cur">
@@ -2309,6 +2330,15 @@
23092330
<ClCompile Include="..\sakura_core\parse\DetectIndentationStyle.cpp">
23102331
<Filter>Cpp Source Files\parse</Filter>
23112332
</ClCompile>
2333+
<ClCompile Include="..\externals\darkmodelib\src\DarkMode.cpp">
2334+
<Filter>Cpp Source Files\darkmodelib</Filter>
2335+
</ClCompile>
2336+
<ClCompile Include="..\externals\darkmodelib\src\DarkModeSubclass.cpp">
2337+
<Filter>Cpp Source Files\darkmodelib</Filter>
2338+
</ClCompile>
2339+
<ClCompile Include="..\externals\darkmodelib\src\DarkModeHook.cpp">
2340+
<Filter>Cpp Source Files\darkmodelib</Filter>
2341+
</ClCompile>
23122342
</ItemGroup>
23132343
<ItemGroup>
23142344
<Image Include="..\resource\auto_scroll_center.bmp">

sakura_core/CPropertyManager.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "apiwrap/StdApi.h"
1414
#include <memory>
1515
#include "config/system_constants.h"
16+
#include "DarkModeSubclass.h"
1617

1718
void CPropertyManager::Create( HWND hwndOwner, CImageListMgr* pImageList, CMenuDrawer* pMenuDrawer )
1819
{

sakura_core/_main/WinMain.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "version.h"
3333
#include "util/std_macro.h"
3434
#include "env/DLLSHAREDATA.h"
35+
#include "DarkModeSubclass.h"
3536

3637
/*!
3738
Windows Entry point
@@ -71,6 +72,10 @@ int WINAPI wWinMain(
7172
DEBUG_TRACE(L"-- -- WinMain -- --\n");
7273
DEBUG_TRACE(L"sizeof(DLLSHAREDATA) = %d\n",sizeof(DLLSHAREDATA));
7374

75+
DarkMode::initDarkMode();
76+
DarkMode::setDarkModeConfigEx(static_cast<UINT>(DarkMode::DarkModeType::dark));
77+
DarkMode::setDefaultColors(true);
78+
7479
//コマンドラインクラスのインスタンスを確保する
7580
CCommandLine cCommandLine;
7681

sakura_core/cmd/CViewCommander_Settings.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <array>
3434
#include "config/system_constants.h"
3535
#include "config/app_constants.h"
36+
#include "DarkModeSubclass.h"
3637

3738
/*! ツールバーの表示/非表示
3839
@@ -67,6 +68,10 @@ void CViewCommander::Command_SHOWFUNCKEY( void )
6768
pCEditWnd->LayoutFuncKey();
6869
pCEditWnd->EndLayoutBars();
6970

71+
auto hWnd = pCEditWnd->GetHwnd();
72+
DarkMode::setChildCtrlsTheme(hWnd);
73+
DarkMode::setWindowMenuBarSubclass(hWnd);
74+
7075
//全ウインドウに変更を通知する。
7176
CAppNodeGroupHandle(0).PostMessageToAllEditors(
7277
MYWM_BAR_CHANGE_NOTIFY,

sakura_core/dlg/CDialog.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "util/window.h"
3535
#include "apiwrap/StdApi.h"
3636
#include "apiwrap/StdControl.h"
37+
#include "DarkModeSubclass.h"
3738

3839
/* ダイアログプロシージャ */
3940
INT_PTR CALLBACK MyDialogProc(
@@ -187,6 +188,14 @@ BOOL CDialog::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
187188

188189
m_hFontDialog = UpdateDialogFont( hwndDlg );
189190

191+
// --- Dark Mode ---
192+
auto hWnd = m_hWnd;
193+
DarkMode::setColorizeTitleBarConfig(true);
194+
DarkMode::setDarkWndNotifySafeEx(hWnd, true, true);
195+
DarkMode::setWindowEraseBgSubclass(hWnd);
196+
DarkMode::setWindowMenuBarSubclass(hWnd);
197+
DarkMode::setWindowExStyle(hWnd, false, WS_EX_COMPOSITED);
198+
190199
/* ダイアログデータの設定 */
191200
SetData();
192201

sakura_core/prop/CPropComGeneral.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "String_define.h"
2929
#include "recent/CRecentFile.h"
3030
#include "recent/CRecentFolder.h"
31+
#include "DarkModeSubclass.h"
3132

3233
//@@@ 2001.02.04 Start by MIK: Popup Help
3334
TYPE_NAME_ID<int> SpecialScrollModeArr[] = {
@@ -123,7 +124,6 @@ INT_PTR CPropGeneral::DispatchEvent(
123124
SetData( hwndDlg );
124125
// Modified by KEITA for WIN64 2003.9.6
125126
::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
126-
127127
/* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
128128

129129
return TRUE;

sakura_core/prop/CPropCommon.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "apiwrap/StdControl.h"
3232
#include "sakura_rc.h"
3333
#include "String_define.h"
34+
#include "DarkModeSubclass.h"
3435

3536
int CPropCommon::SearchIntArr( int nKey, int* pnArr, int nArrNum )
3637
{
@@ -66,6 +67,7 @@ INT_PTR CPropCommon::DlgProc(
6667
pCPropCommon = ( CPropCommon* )(pPsp->lParam);
6768
if( nullptr != pCPropCommon ){
6869
UpdateDialogFont( hwndDlg );
70+
DarkMode::setDarkWndSafe(hwndDlg);
6971
return (pCPropCommon->*DispatchPage)( hwndDlg, uMsg, wParam, pPsp->lParam );
7072
}else{
7173
return FALSE;

sakura_core/typeprop/CPropTypes.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "env/DLLSHAREDATA.h"
3434
#include "sakura_rc.h"
3535
#include "String_define.h"
36+
#include "DarkModeSubclass.h"
3637

3738
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
3839
// メッセージ処理 //
@@ -49,6 +50,7 @@ INT_PTR CALLBACK PropTypesCommonProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPA
4950
case WM_INITDIALOG:
5051
pPsp = (PROPSHEETPAGE*)lParam;
5152
pCPropTypes = reinterpret_cast<CPropTypes*>(pPsp->lParam);
53+
DarkMode::setDarkWndSafe(hwndDlg);
5254
if( nullptr != pCPropTypes ){
5355
UpdateDialogFont( hwndDlg );
5456
return (pCPropTypes->*pDispatch)( hwndDlg, uMsg, wParam, pPsp->lParam );

0 commit comments

Comments
 (0)