Skip to content

Commit

Permalink
・HSP用のスマートインデント追加
Browse files Browse the repository at this point in the history
・ダークモード時の描画周り微修正
・モジュール命令/関数の列挙対応
  • Loading branch information
inovia committed Mar 20, 2024
1 parent 3e84449 commit b41d3f8
Show file tree
Hide file tree
Showing 13 changed files with 421 additions and 8 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,5 @@ UpgradeLog.htm
/sakura_core/hsp/res/test.hsp
/sakura_core/hsp/res/obj
/sakura_core/hsp/res/hsptmp
/sakura/err1.hsp
/sakura/test.js
5 changes: 4 additions & 1 deletion sakura_core/String_define.h
Original file line number Diff line number Diff line change
Expand Up @@ -1336,5 +1336,8 @@
#define STR_DLGFNCLST_LIST_NAME 35054
#define STR_DLGFNCLST_LIST_NAME_M 35055
#define STR_PROPCOMMON_HSP 35056
#define STR_DLGFNCLST_HSP3_MODFUNC 35057
#define STR_DLGFNCLST_HSP3_MODCFUNC 35058
#define STR_SMART_INDENT_C_HSP3 35059

// Now using max number 35056 by STR_PROPCOMMON_HSP
// Now using max number 35059 by STR_SMART_INDENT_C_HSP3
4 changes: 4 additions & 0 deletions sakura_core/cmd/CViewCommander_Edit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@ end_of_for:;
/* C/C++スマートインデント処理 */
m_pCommanderView->SmartIndent_CPP( wcChar );
break;
case SMARTINDENT_HSP3:
/* HSP3スマートインデント処理 */
m_pCommanderView->SmartIndent_HSP3(wcChar);
break;
default:
//プラグインから検索する
{
Expand Down
6 changes: 4 additions & 2 deletions sakura_core/hsp/CHsp3DarkMode.h
Original file line number Diff line number Diff line change
Expand Up @@ -801,8 +801,10 @@ class CHsp3DarkMode
SIZE size;
::GetThemePartSize(hTheme, pDIS->hDC, iPart, iState, nullptr, TS_TRUE, &size);
RECT rcCheckbox = pDIS->rcItem;
rcCheckbox.left += 1;
rcCheckbox.left += 2;
rcCheckbox.right = rcCheckbox.left + size.cx;
rcCheckbox.top = 2;
rcCheckbox.bottom = rcCheckbox.top + size.cy;

// チェック/ラジオボックスを描画
::DrawThemeBackground(hTheme, pDIS->hDC, iPart, iState, &rcCheckbox, nullptr);
Expand All @@ -819,7 +821,7 @@ class CHsp3DarkMode
::GetWindowText(hControl, szText, sizeof(szText) / sizeof(TCHAR));

// ボタンのスタイル取得
UINT format = 0;/* | DT_VCENTER*/;
UINT format = DT_WORDBREAK;
LONG_PTR lStyle = ::GetWindowLongPtr(hControl, GWL_STYLE);
if ( lStyle & BS_LEFT)
{
Expand Down
6 changes: 6 additions & 0 deletions sakura_core/outline/CDlgFuncList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1454,6 +1454,12 @@ void CDlgFuncList::SetListHSP3(void)
case 2:
wcscpy(szType, LS(STR_DLGFNCLST_HSP3_DEFCFUNC));
break;
case 3:
wcscpy(szType, LS(STR_DLGFNCLST_HSP3_MODFUNC));
break;
case 4:
wcscpy(szType, LS(STR_DLGFNCLST_HSP3_MODCFUNC));
break;
default:
szType[0] = L'\0';
break;
Expand Down
3 changes: 3 additions & 0 deletions sakura_core/sakura_rc.rc
Original file line number Diff line number Diff line change
Expand Up @@ -2332,6 +2332,8 @@ BEGIN
STR_DLGFNCLST_HSP3_LABEL "ラベル"
STR_DLGFNCLST_HSP3_DEFFUNC "命令"
STR_DLGFNCLST_HSP3_DEFCFUNC "関数"
STR_DLGFNCLST_HSP3_MODFUNC "モジュール命令"
STR_DLGFNCLST_HSP3_MODCFUNC "モジュール関数"
STR_DLGFNCLST_LIST_NAME "名前"
STR_DLGFNCLST_LIST_NAME_M "名前 *"
END
Expand Down Expand Up @@ -3998,6 +4000,7 @@ BEGIN
STR_OUTLINE_TEXT "テキスト"
STR_SMART_INDENT_NONE "なし"
STR_SMART_INDENT_C_CPP "C/C++"
STR_SMART_INDENT_C_HSP3 "HSP3"
STR_IME_STATE_DEF "標準設定"
STR_IME_STATE_FULL "全角"
STR_IME_STATE_FULLHIRA "全角ひらがな"
Expand Down
18 changes: 18 additions & 0 deletions sakura_core/typeprop/CDlgTypeList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include "util/window.h"
#include "util/RegKey.h"
#include "util/string_ex2.h"
#include "hsp/CHsp3DarkMode.h"
#include <memory>
#include "apiwrap/StdApi.h"
#include "apiwrap/StdControl.h"
Expand Down Expand Up @@ -181,6 +182,14 @@ BOOL CDlgTypeList::OnActivate( WPARAM wParam, LPARAM lParam )

INT_PTR CDlgTypeList::DispatchEvent( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam )
{
// ダークモード
auto& DarkMode = CHsp3DarkMode::GetInstance();
LPARAM ret;
if (DarkMode.DarkModeDispatchEvent(hWnd, wMsg, wParam, lParam, ret))
{
return ret;
}

HWND hwndRMenu = GetItemHwnd( IDC_CHECK_EXT_RMENU );
HWND hwndDblClick = GetItemHwnd( IDC_CHECK_EXT_DBLCLICK );

Expand Down Expand Up @@ -304,6 +313,15 @@ INT_PTR CDlgTypeList::DispatchEvent( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM
return result;
}

BOOL CDlgTypeList::OnInitDialog(HWND hwndDlg, WPARAM wParam, LPARAM lParam)
{
// ダークモード
auto& DarkMode = CHsp3DarkMode::GetInstance();
DarkMode.DarkModeOnInitDialog(hwndDlg, wParam, lParam);

return CDialog::OnInitDialog(hwndDlg, wParam, lParam);
}

/* ダイアログデータの設定 */
void CDlgTypeList::SetData( void )
{
Expand Down
1 change: 1 addition & 0 deletions sakura_core/typeprop/CDlgTypeList.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class CDlgTypeList final : public CDialog
BOOL OnLbnDblclk(int wID) override;
BOOL OnBnClicked(int wID) override;
BOOL OnActivate( WPARAM wParam, LPARAM lParam ) override;
BOOL OnInitDialog(HWND hwndDlg, WPARAM wParam, LPARAM lParam) override;
INT_PTR DispatchEvent( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam ) override;
void SetData() override; /* ダイアログデータの設定 */
void SetData(int selIdx); /* ダイアログデータの設定 */
Expand Down
1 change: 1 addition & 0 deletions sakura_core/typeprop/CPropTypesScreen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ TYPE_NAME_ID<ETabArrow> TabArrowArr[] = {
TYPE_NAME_ID<ESmartIndentType> SmartIndentArr[] = {
{ SMARTINDENT_NONE, STR_SMART_INDENT_NONE },
{ SMARTINDENT_CPP, STR_SMART_INDENT_C_CPP },
{ SMARTINDENT_HSP3, STR_SMART_INDENT_C_HSP3 },
};

/*! 2行目以降のインデント方法
Expand Down
3 changes: 2 additions & 1 deletion sakura_core/types/CType.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ enum EOutlineType{
//! スマートインデント種別
enum ESmartIndentType {
SMARTINDENT_NONE, //!< なし
SMARTINDENT_CPP //!< C/C++
SMARTINDENT_CPP, //!< C/C++
SMARTINDENT_HSP3 //!< HSP3
};

//! ヒアドキュメント種別
Expand Down
Loading

0 comments on commit b41d3f8

Please sign in to comment.