Feature to add hotkey for font resizing
Eröffnet am: 2017-05-04 18:06
Letztes Update: 2017-05-04 18:06
Auswertung: | pryankster | Verantwortlicher: | (Keine) |
---|---|---|---|
Priorität: | 5 - Mittel | Meilenstein: | (Keine) |
Typ: | Funktionsanfragen | Schweregrad: | 5 - Mittel |
Komponente: | Tera Term | Status: | Offen |
Lösung | Keine |
Einzelheiten
I switch back and forth between a high-res, high-dpi monitor and my laptop, having the ability to hotkey the font size up and down would come in very handy, so I added it to teraterm.
Here's the diff. The change does "eat up" two user keys, but I didn't know about the ramifications of changing the NumOfUserKey macro.
ありがとうございます!
Index: teraterm/common/tttypes.h =================================================================== --- teraterm/common/tttypes.h (revision 6700) +++ teraterm/common/tttypes.h (working copy) @@ -853,7 +853,9 @@ #define IdCmdPrevSWin 87 #define IdCmdLocalEcho 88 #define IdCmdScrollLock 89 -#define IdUser1 90 +#define IdCmdFontSizeUp 90 +#define IdCmdFontSizeDown 91 +#define IdUser1 92 #define NumOfUDK IdUDK20-IdUDK6+1 #define NumOfUserKey 99 #define IdKeyMax IdUser1+NumOfUserKey-1 Index: teraterm/teraterm/vtdisp.c =================================================================== --- teraterm/teraterm/vtdisp.c (revision 6700) +++ teraterm/teraterm/vtdisp.c (working copy) @@ -3359,6 +3359,37 @@ ChangeCaret(); } +static int fontSizes[] = { 4, 6, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72 }; +#define NUM_FONT_SIZES (sizeof(fontSizes) / sizeof(fontSizes[0])) + +void DispBumpFontSize(int dir) +{ + // get logpx scale + HDC TmpDC = GetDC(NULL); + int logpxy = GetDeviceCaps(TmpDC, LOGPIXELSY); + ReleaseDC(NULL, TmpDC); + + // clip direction to -1 or 1. + dir = dir > 0 ? 1 : -1; + + for (int i = 0; i < NUM_FONT_SIZES; ++i) { + int logpx = -MulDiv(fontSizes[i], logpxy, 72); + // logpx gets more negative as font sizes grow, so find largest number not less than current size. + if (logpx <= ts.VTFontSize.y) { + // now go 1 up or 1 down + int newSize = i + dir; + // still in range? + if (newSize < 0 || newSize == NUM_FONT_SIZES) + break; + ts.VTFontSize.y = -MulDiv(fontSizes[newSize], logpxy, 72); + ChangeFont(); + DispChangeWinSize(WinWidth, WinHeight); + ChangeCaret(); + return; + } + } +} + void DispRestoreWinSize() // Restore window size by double clik on caption bar { Index: teraterm/teraterm/vtdisp.h =================================================================== --- teraterm/teraterm/vtdisp.h (revision 6700) +++ teraterm/teraterm/vtdisp.h (working copy) @@ -71,6 +71,7 @@ void DispHScroll(int Func, int Pos); void DispVScroll(int Func, int Pos); void DispSetupFontDlg(); +void DispBumpFontSize(int dir); void DispRestoreWinSize(); void DispSetWinPos(); void DispSetActive(BOOL ActiveFlag); Index: teraterm/teraterm/vtwin.cpp =================================================================== --- teraterm/teraterm/vtwin.cpp (revision 6700) +++ teraterm/teraterm/vtwin.cpp (working copy) @@ -3492,6 +3492,12 @@ case IdCmdScrollLock: ScrollLock = ! ScrollLock; break; + case IdCmdFontSizeUp: + DispBumpFontSize(1); + break; + case IdCmdFontSizeDown: + DispBumpFontSize(-1); + break; } return 0; } Index: teraterm/ttpcmn/ttcmn.c =================================================================== --- teraterm/ttpcmn/ttcmn.c (revision 6700) +++ teraterm/ttpcmn/ttcmn.c (working copy) @@ -796,6 +796,8 @@ case IdCmdPrevSWin: case IdCmdLocalEcho: case IdCmdScrollLock: + case IdCmdFontSizeUp: + case IdCmdFontSizeDown: PostMessage(HWin,WM_USER_ACCELCOMMAND,KeyCode,0); break; default: Index: teraterm/ttpset/ttset.c =================================================================== --- teraterm/ttpset/ttset.c (revision 6700) +++ teraterm/ttpset/ttset.c (working copy) @@ -3422,6 +3422,10 @@ GetInt(KeyMap, IdCmdScrollLock, ShortCut, "ScrollLock", FName); + GetInt(KeyMap, IdCmdFontSizeUp, ShortCut, "FontSizeUp", FName); + + GetInt(KeyMap, IdCmdFontSizeDown, ShortCut, "FontSizeDown", FName); + /* user keys */ Ptr = 0;
Letzte Aktualisierung für dieses Ticket
2017-05-04 18:06 Aktualisiert von: pryankster
- New Ticket "Feature to add hotkey for font resizing" created