mirror of
https://github.com/Garhoogin/NitroPaint.git
synced 2025-06-18 14:25:31 -04:00
Add New Glyph Range option
This commit is contained in:
parent
f43d63d843
commit
977c4c8cd2
Binary file not shown.
@ -502,7 +502,7 @@ static int NftrViewerPromptCharacter(NFTRVIEWERDATA *data, LPCWSTR title, LPCWST
|
||||
wsprintf(textbuf, L"%c+%04X", data->nftr.charset == FONT_CHARSET_SJIS ? 'J' : 'U', defCP);
|
||||
|
||||
while (1) {
|
||||
int s = PromptUserText(hWndMain, L"Reassign Glyph", L"Enter new character or code point:", textbuf, sizeof(textbuf));
|
||||
int s = PromptUserText(hWndMain, title, prompt, textbuf, sizeof(textbuf));
|
||||
if (!s) return -1;
|
||||
|
||||
int inputCP = NftrViewerParseCharacter(textbuf, data->nftr.charset == FONT_CHARSET_SJIS);
|
||||
@ -1437,6 +1437,53 @@ static void NftrViewerGenerateGlyphsForWholeFont(NFTRVIEWERDATA *data) {
|
||||
}
|
||||
}
|
||||
|
||||
static void NftrViewerNewGlyphRange(NFTRVIEWERDATA *data) {
|
||||
uint16_t defCP = 0;
|
||||
HWND hWndMain = getMainWindow(data->hWnd);
|
||||
|
||||
int inputCP1 = NftrViewerPromptCharacter(data, L"Enter First Character", L"Enter a character or code point:", defCP);
|
||||
if (inputCP1 == -1) return; // exit
|
||||
|
||||
int inputCP2 = NftrViewerPromptCharacter(data, L"Enter Last Character", L"Enter a character or code point:", defCP);
|
||||
if (inputCP2 == -1) return; // exit
|
||||
|
||||
//check bounds (swap)
|
||||
if (inputCP1 > inputCP2) {
|
||||
int temp = inputCP1;
|
||||
inputCP1 = inputCP2;
|
||||
inputCP2 = temp;
|
||||
}
|
||||
|
||||
SendMessage(data->hWndGlyphList, WM_SETREDRAW, 0, 0);
|
||||
|
||||
//add glyphs in range
|
||||
int nAdd = 0, iLastAdd = -1;
|
||||
for (int i = inputCP1; i <= inputCP2; i++) {
|
||||
//check exists
|
||||
NFTR_GLYPH *glyph = NftrViewerGetGlyphByCP(data, i);
|
||||
if (glyph != NULL) continue;
|
||||
|
||||
//add
|
||||
NftrViewerCreateGlyph(data, i);
|
||||
iLastAdd = i;
|
||||
nAdd++;
|
||||
}
|
||||
|
||||
SendMessage(data->hWndGlyphList, WM_SETREDRAW, 1, 0);
|
||||
|
||||
if (iLastAdd != -1) {
|
||||
//show
|
||||
int newIndex = NftrViewerGetGlyphIndexByCP(data, iLastAdd);
|
||||
NftrViewerSetCurrentGlyphByCodePoint(data, iLastAdd, TRUE);
|
||||
ListView_EnsureVisible(data->hWndGlyphList, newIndex, FALSE);
|
||||
}
|
||||
|
||||
//confirm add
|
||||
WCHAR buf[32];
|
||||
wsprintfW(buf, L"Added %d glyph(s).", nAdd);
|
||||
MessageBox(hWndMain, buf, L"Success", MB_ICONINFORMATION);
|
||||
}
|
||||
|
||||
static void NftrViewerOnMenuCommand(NFTRVIEWERDATA *data, int idMenu) {
|
||||
switch (idMenu) {
|
||||
case ID_VIEW_GRIDLINES:
|
||||
@ -1493,6 +1540,10 @@ static void NftrViewerOnMenuCommand(NFTRVIEWERDATA *data, int idMenu) {
|
||||
case ID_FONTMENU_GENERATEALL:
|
||||
NftrViewerGenerateGlyphsForWholeFont(data);
|
||||
break;
|
||||
case ID_FONTMENU2_NEWGLYPHRANGE:
|
||||
case ID_FONTMENU_NEWGLYPHRANGE:
|
||||
NftrViewerNewGlyphRange(data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -215,13 +215,15 @@
|
||||
#define ID_FONTMENU_GOTO 40227
|
||||
#define ID_FONTMENU_NEWGLYPH 40228
|
||||
#define ID_FONTMENU_GENERATEALL 40229
|
||||
#define ID_FONTMENU_NEWGLYPHRANGE 40230
|
||||
#define ID_FONTMENU2_NEWGLYPHRANGE 40231
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 111
|
||||
#define _APS_NEXT_COMMAND_VALUE 40230
|
||||
#define _APS_NEXT_COMMAND_VALUE 40232
|
||||
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user