Skip to content

Commit 5359d59

Browse files
committed
wip
1 parent 83ccde2 commit 5359d59

22 files changed

+219
-896
lines changed

.github/workflows/build-sakura.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ jobs:
3838
- uses: actions/checkout@v4
3939
with:
4040
fetch-depth: 0
41+
submodules: true
4142

4243
## see https://github.com/microsoft/setup-msbuild
4344
- name: Add msbuild to PATH

externals/darkmodelib

Submodule darkmodelib added at 092ae11

resource/mytool.bmp

0 Bytes
Binary file not shown.

sakura/sakura.vcxproj

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,6 @@
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" />
151145
<ClInclude Include="..\sakura_core\apiwrap\CommonControl.h" />
152146
<ClInclude Include="..\sakura_core\apiwrap\StdApi.h" />
153147
<ClInclude Include="..\sakura_core\apiwrap\StdControl.h" />
@@ -506,9 +500,16 @@
506500
<ResourceCompile Include="..\sakura_core\sakura_rc.rc" />
507501
</ItemGroup>
508502
<ItemGroup>
509-
<ClCompile Include="..\externals\darkmodelib\src\DarkMode.cpp" />
510-
<ClCompile Include="..\externals\darkmodelib\src\DarkModeHook.cpp" />
511503
<ClCompile Include="..\externals\darkmodelib\src\DarkModeSubclass.cpp" />
504+
<ClCompile Include="..\externals\darkmodelib\src\DmlibColor.cpp" />
505+
<ClCompile Include="..\externals\darkmodelib\src\DmlibDpi.cpp" />
506+
<ClCompile Include="..\externals\darkmodelib\src\DmlibHook.cpp" />
507+
<ClCompile Include="..\externals\darkmodelib\src\DmlibIni.cpp" />
508+
<ClCompile Include="..\externals\darkmodelib\src\DmlibPaintHelper.cpp" />
509+
<ClCompile Include="..\externals\darkmodelib\src\DmlibSubclass.cpp" />
510+
<ClCompile Include="..\externals\darkmodelib\src\DmlibSubclassControl.cpp" />
511+
<ClCompile Include="..\externals\darkmodelib\src\DmlibSubclassWindow.cpp" />
512+
<ClCompile Include="..\externals\darkmodelib\src\DmlibWinApi.cpp" />
512513
<ClCompile Include="..\sakura_core\apiwrap\StdApi.cpp" />
513514
<ClCompile Include="..\sakura_core\apiwrap\StdControl.cpp" />
514515
<ClCompile Include="..\sakura_core\basis\CErrorInfo.cpp" />

sakura/sakura.vcxproj.filters

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1115,24 +1115,6 @@
11151115
<ClInclude Include="..\sakura_core\parse\DetectIndentationStyle.h">
11161116
<Filter>Cpp Source Files\parse</Filter>
11171117
</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>
11361118
</ItemGroup>
11371119
<ItemGroup>
11381120
<None Include="..\resource\auto_scroll_center.cur">
@@ -2330,13 +2312,34 @@
23302312
<ClCompile Include="..\sakura_core\parse\DetectIndentationStyle.cpp">
23312313
<Filter>Cpp Source Files\parse</Filter>
23322314
</ClCompile>
2333-
<ClCompile Include="..\externals\darkmodelib\src\DarkMode.cpp">
2315+
<ClCompile Include="..\externals\darkmodelib\src\DarkModeSubclass.cpp">
23342316
<Filter>Cpp Source Files\darkmodelib</Filter>
23352317
</ClCompile>
2336-
<ClCompile Include="..\externals\darkmodelib\src\DarkModeSubclass.cpp">
2318+
<ClCompile Include="..\externals\darkmodelib\src\DmlibColor.cpp">
2319+
<Filter>Cpp Source Files\darkmodelib</Filter>
2320+
</ClCompile>
2321+
<ClCompile Include="..\externals\darkmodelib\src\DmlibDpi.cpp">
2322+
<Filter>Cpp Source Files\darkmodelib</Filter>
2323+
</ClCompile>
2324+
<ClCompile Include="..\externals\darkmodelib\src\DmlibHook.cpp">
2325+
<Filter>Cpp Source Files\darkmodelib</Filter>
2326+
</ClCompile>
2327+
<ClCompile Include="..\externals\darkmodelib\src\DmlibIni.cpp">
2328+
<Filter>Cpp Source Files\darkmodelib</Filter>
2329+
</ClCompile>
2330+
<ClCompile Include="..\externals\darkmodelib\src\DmlibPaintHelper.cpp">
2331+
<Filter>Cpp Source Files\darkmodelib</Filter>
2332+
</ClCompile>
2333+
<ClCompile Include="..\externals\darkmodelib\src\DmlibSubclass.cpp">
2334+
<Filter>Cpp Source Files\darkmodelib</Filter>
2335+
</ClCompile>
2336+
<ClCompile Include="..\externals\darkmodelib\src\DmlibSubclassControl.cpp">
2337+
<Filter>Cpp Source Files\darkmodelib</Filter>
2338+
</ClCompile>
2339+
<ClCompile Include="..\externals\darkmodelib\src\DmlibSubclassWindow.cpp">
23372340
<Filter>Cpp Source Files\darkmodelib</Filter>
23382341
</ClCompile>
2339-
<ClCompile Include="..\externals\darkmodelib\src\DarkModeHook.cpp">
2342+
<ClCompile Include="..\externals\darkmodelib\src\DmlibWinApi.cpp">
23402343
<Filter>Cpp Source Files\darkmodelib</Filter>
23412344
</ClCompile>
23422345
</ItemGroup>

sakura_core/_main/CControlTray.cpp

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -398,30 +398,7 @@ LRESULT CControlTray::DispatchEvent(
398398
case WM_MENUCHAR:
399399
/* メニューアクセスキー押下時の処理(WM_MENUCHAR処理) */
400400
return m_cMenuDrawer.OnMenuChar( hwnd, uMsg, wParam, lParam );
401-
case WM_DRAWITEM:
402-
lpdis = (DRAWITEMSTRUCT*) lParam; /* 項目描画情報 */
403-
switch( lpdis->CtlType ){
404-
case ODT_MENU: /* オーナー描画メニュー */
405-
/* メニューアイテム描画 */
406-
m_cMenuDrawer.DrawItem( lpdis );
407-
return TRUE;
408-
}
409-
return FALSE;
410-
case WM_MEASUREITEM:
411-
lpmis = (MEASUREITEMSTRUCT*) lParam; // item-size information
412-
switch( lpmis->CtlType ){
413-
case ODT_MENU: /* オーナー描画メニュー */
414-
/* メニューアイテムの描画サイズを計算 */
415-
nItemWidth = m_cMenuDrawer.MeasureItem( lpmis->itemID, &nItemHeight );
416-
if( 0 < nItemWidth ){
417-
lpmis->itemWidth = nItemWidth;
418-
lpmis->itemHeight = nItemHeight;
419-
}
420-
return TRUE;
421-
}
422-
return FALSE;
423401
case WM_EXITMENULOOP:
424-
m_cMenuDrawer.EndDrawMenu();
425402
break;
426403

427404
/* タスクトレイ左クリックメニューへのショートカットキー登録 */

sakura_core/_main/WinMain.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ int WINAPI wWinMain(
7373
DEBUG_TRACE(L"sizeof(DLLSHAREDATA) = %d\n",sizeof(DLLSHAREDATA));
7474

7575
DarkMode::initDarkMode();
76+
//DarkMode::setDarkModeConfigEx(static_cast<UINT>(DarkMode::DarkModeType::classic));
7677
DarkMode::setDarkModeConfigEx(static_cast<UINT>(DarkMode::DarkModeType::dark));
7778
DarkMode::setDefaultColors(true);
7879

sakura_core/prop/CPropComToolbar.cpp

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "sakura_rc.h"
3131
#include "sakura.hh"
3232
#include "String_define.h"
33+
#include "DarkModeSubclass.h"
3334

3435
//@@@ 2001.02.04 Start by MIK: Popup Help
3536
static const DWORD p_helpids[] = { //11000
@@ -573,25 +574,29 @@ void CPropToolbar::DrawToolBarItemList( DRAWITEMSTRUCT* pDis )
573574
RECT rcFrame = rcText;
574575

575576
// アイテム背景をウインドウ背景色で塗りつぶす
576-
::MyFillRect( pDis->hDC, rcItem, COLOR_WINDOW );
577+
::MyFillRect( pDis->hDC, rcItem, DarkMode::getCtrlBackgroundColor() );
577578

578579
// 背景色と前景色
579-
int bkColor;
580-
int textColor;
580+
COLORREF bkColor;
581+
COLORREF textColor;
581582

582583
/* アイテムが選択されている */
583584
if( pDis->itemState & ODS_SELECTED ){
584-
bkColor = COLOR_HIGHLIGHT;
585-
textColor = COLOR_HIGHLIGHTTEXT;
585+
//bkColor = ::GetSysColor(COLOR_HIGHLIGHT);
586+
//textColor = ::GetSysColor(COLOR_HIGHLIGHTTEXT);
587+
bkColor = ::GetSysColor(COLOR_HIGHLIGHT);
588+
textColor = DarkMode::getTextColor();
586589
}else{
587-
bkColor = COLOR_WINDOW;
588-
textColor = COLOR_WINDOWTEXT;
590+
//bkColor = ::GetSysColor(COLOR_WINDOW);
591+
//textColor = ::GetSysColor(COLOR_WINDOWTEXT);
592+
bkColor = DarkMode::getCtrlBackgroundColor();
593+
textColor = DarkMode::getTextColor();
589594
}
590595

591596
// デバイスコンテキストのオプションを設定する
592597
int bkModeOld = ::SetBkMode( pDis->hDC, TRANSPARENT );
593-
COLORREF bkColorOld = ::SetBkColor( pDis->hDC, ::GetSysColor( bkColor ) );
594-
COLORREF textColorOld = ::SetTextColor( pDis->hDC, ::GetSysColor( textColor ) );
598+
COLORREF bkColorOld = ::SetBkColor( pDis->hDC, bkColor );
599+
COLORREF textColorOld = ::SetTextColor( pDis->hDC, textColor );
595600

596601
// itemDataに紐づくボタン情報を取得する
597602
TBBUTTON tbb = m_pcMenuDrawer->getButton(pDis->itemData);
@@ -618,7 +623,7 @@ void CPropToolbar::DrawToolBarItemList( DRAWITEMSTRUCT* pDis )
618623
rcItem.left + cxEdge,
619624
rcItem.top + cyEdge + (rcItem.bottom - rcItem.top - cySmIcon) / 2,
620625
tbb.iBitmap,
621-
ILD_NORMAL,
626+
true,
622627
cxSmIcon,
623628
cySmIcon
624629
);

sakura_core/prop/CPropCommon.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ INT_PTR CPropCommon::DlgProc2(
9696
pCPropCommon = ( CPropCommon* )(lParam);
9797
if( nullptr != pCPropCommon ){
9898
UpdateDialogFont( hwndDlg );
99+
DarkMode::setDarkWndSafe(hwndDlg);
99100
return (pCPropCommon->*DispatchPage)( hwndDlg, uMsg, IDOK, lParam );
100101
}else{
101102
return FALSE;

sakura_core/typeprop/CPropTypesColor.cpp

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,7 +1095,7 @@ void CPropTypesColor::DrawColorListItem( DRAWITEMSTRUCT* pDis )
10951095
ColorInfo* pColorInfo;
10961096
// RECT rc0,rc1,rc2;
10971097
RECT rc1;
1098-
COLORREF cRim = (COLORREF)::GetSysColor( COLOR_3DSHADOW );
1098+
COLORREF cRim = (COLORREF)DarkMode::getEdgeColor();
10991099

11001100
if( pDis == nullptr || pDis->itemData == 0 ) return;
11011101

@@ -1110,27 +1110,27 @@ void CPropTypesColor::DrawColorListItem( DRAWITEMSTRUCT* pDis )
11101110
pColorInfo = (ColorInfo*)pDis->itemData;
11111111

11121112
/* アイテム矩形塗りつぶし */
1113-
gr.SetBrushColor( ::GetSysColor( COLOR_WINDOW ) );
1113+
gr.SetBrushColor( DarkMode::getCtrlBackgroundColor() );
11141114
gr.FillMyRect( pDis->rcItem );
11151115

11161116
/* アイテムが選択されている */
11171117
if( pDis->itemState & ODS_SELECTED ){
1118-
gr.SetBrushColor( ::GetSysColor( COLOR_HIGHLIGHT ) );
1119-
gr.SetTextForeColor( ::GetSysColor( COLOR_HIGHLIGHTTEXT ) );
1118+
gr.SetBrushColor(::GetSysColor(COLOR_HIGHLIGHT));
1119+
gr.SetTextForeColor( DarkMode::getTextColor() );
11201120
}else{
1121-
gr.SetBrushColor( ::GetSysColor( COLOR_WINDOW ) );
1122-
gr.SetTextForeColor( ::GetSysColor( COLOR_WINDOWTEXT ) );
1121+
gr.SetBrushColor(DarkMode::getCtrlBackgroundColor());
1122+
gr.SetTextForeColor(DarkMode::getTextColor());
11231123
}
11241124

11251125
const int xOffset = ::MulDiv(m_uFocusBorderWidth, 2, 3);
11261126
const int yOffset = ::MulDiv(m_uFocusBorderHeight, 2, 3); // 少し重ならせる
11271127
const int colorSampleWidth = DpiScaleX(12);
1128-
rc1.left += xOffset + DpiScaleX(16);
11291128
rc1.top += yOffset;
11301129
rc1.right -= 2 * (colorSampleWidth + xOffset) + DpiScaleX(2);
11311130
rc1.bottom -= yOffset;
11321131
/* 選択ハイライト矩形 */
11331132
gr.FillMyRect(rc1);
1133+
rc1.left += xOffset + DpiScaleX(16);
11341134
/* テキスト */
11351135
::SetBkMode( gr, TRANSPARENT );
11361136
SFontAttr sFontAttr;
@@ -1153,7 +1153,7 @@ void CPropTypesColor::DrawColorListItem( DRAWITEMSTRUCT* pDis )
11531153
rc1.bottom = rc1.top + DpiScaleY(12);
11541154
if( pColorInfo->m_bDisp ){ /* 色分け/表示する */
11551155
// 2006.04.26 ryoji テキスト色を使う(「ハイコントラスト黒」のような設定でも見えるように)
1156-
gr.SetPen( ::GetSysColor( COLOR_WINDOWTEXT ) );
1156+
gr.SetPen( DarkMode::getTextColor() );
11571157
// チェックマークを2本の直線で描画する際に使用する3点の座標
11581158
const POINT pts[3] = {
11591159
{ rc1.left + DpiScaleX(2), rc1.top + DpiScaleY(3) }, //
@@ -1209,13 +1209,12 @@ void CPropTypesColor::DrawColorListItem( DRAWITEMSTRUCT* pDis )
12091209
/* 色選択ダイアログ */
12101210
BOOL CPropTypesColor::SelectColor( HWND hwndParent, COLORREF* pColor, DWORD* pCustColors )
12111211
{
1212-
CHOOSECOLOR cc{};
1213-
cc.lStructSize = sizeof_raw( cc );
1212+
CHOOSECOLOR cc = {sizeof(cc)};
12141213
cc.hwndOwner = hwndParent;
12151214
cc.hInstance = nullptr;
12161215
cc.rgbResult = *pColor;
12171216
cc.lpCustColors = pCustColors;
1218-
cc.Flags = CC_FULLOPEN | CC_RGBINIT | CF_ENABLEHOOK;
1217+
cc.Flags = CC_FULLOPEN | CC_RGBINIT | CC_ENABLEHOOK;
12191218
cc.lpfnHook = static_cast<LPCCHOOKPROC>(DarkMode::HookDlgProc);
12201219
if( !::ChooseColor( &cc ) ){
12211220
return FALSE;

0 commit comments

Comments
 (0)