mirror of
https://github.com/reactos/reactos.git
synced 2024-06-25 23:41:35 +00:00
[NOTEPAD] Improve printing (header/footer/tabs/performance) (#5111)
- Fix GetPrintingRect function. - Add DrawHeaderOrFooter, DoPrintBody, DoPrintPage, DoCreatePrintFonts, and DoPrintDocument helper functions. - Implement page header/footer and tabs printing in DIALOG_FilePrint function. - Improve printing performance. - Modify the header/footer resource strings. - Delete the needless resource strings. CORE-18837
This commit is contained in:
parent
a804ba3200
commit
064ac123d1
|
@ -281,26 +281,31 @@ int GetSelectionText(HWND hWnd, LPTSTR lpString, int nMaxCount)
|
|||
}
|
||||
|
||||
static RECT
|
||||
GetPrintingRect(HDC hdc, RECT margins)
|
||||
GetPrintingRect(IN HDC hdc, IN LPCRECT pMargins)
|
||||
{
|
||||
int iLogPixelsX, iLogPixelsY;
|
||||
int iHorzRes, iVertRes;
|
||||
int iPhysPageX, iPhysPageY, iPhysPageW, iPhysPageH;
|
||||
RECT rcPrintRect;
|
||||
INT iLogPixelsX = GetDeviceCaps(hdc, LOGPIXELSX);
|
||||
INT iLogPixelsY = GetDeviceCaps(hdc, LOGPIXELSY);
|
||||
INT iHorzRes = GetDeviceCaps(hdc, HORZRES); /* in pixels */
|
||||
INT iVertRes = GetDeviceCaps(hdc, VERTRES); /* in pixels */
|
||||
RECT rcPrintRect, rcPhysical;
|
||||
|
||||
iPhysPageX = GetDeviceCaps(hdc, PHYSICALOFFSETX);
|
||||
iPhysPageY = GetDeviceCaps(hdc, PHYSICALOFFSETY);
|
||||
iPhysPageW = GetDeviceCaps(hdc, PHYSICALWIDTH);
|
||||
iPhysPageH = GetDeviceCaps(hdc, PHYSICALHEIGHT);
|
||||
iLogPixelsX = GetDeviceCaps(hdc, LOGPIXELSX);
|
||||
iLogPixelsY = GetDeviceCaps(hdc, LOGPIXELSY);
|
||||
iHorzRes = GetDeviceCaps(hdc, HORZRES);
|
||||
iVertRes = GetDeviceCaps(hdc, VERTRES);
|
||||
#define CONVERT_X(x) MulDiv((x), iLogPixelsX, 2540) /* 100th millimeters to pixels */
|
||||
#define CONVERT_Y(y) MulDiv((y), iLogPixelsY, 2540) /* 100th millimeters to pixels */
|
||||
SetRect(&rcPrintRect,
|
||||
CONVERT_X(pMargins->left), CONVERT_Y(pMargins->top),
|
||||
iHorzRes - CONVERT_X(pMargins->right),
|
||||
iVertRes - CONVERT_Y(pMargins->bottom));
|
||||
|
||||
rcPrintRect.left = (margins.left * iLogPixelsX / 2540) - iPhysPageX;
|
||||
rcPrintRect.top = (margins.top * iLogPixelsY / 2540) - iPhysPageY;
|
||||
rcPrintRect.right = iHorzRes - (((margins.left * iLogPixelsX / 2540) - iPhysPageX) + ((margins.right * iLogPixelsX / 2540) - (iPhysPageW - iPhysPageX - iHorzRes)));
|
||||
rcPrintRect.bottom = iVertRes - (((margins.top * iLogPixelsY / 2540) - iPhysPageY) + ((margins.bottom * iLogPixelsY / 2540) - (iPhysPageH - iPhysPageY - iVertRes)));
|
||||
rcPhysical.left = GetDeviceCaps(hdc, PHYSICALOFFSETX);
|
||||
rcPhysical.right = rcPhysical.left + GetDeviceCaps(hdc, PHYSICALWIDTH);
|
||||
rcPhysical.top = GetDeviceCaps(hdc, PHYSICALOFFSETY);
|
||||
rcPhysical.bottom = rcPhysical.top + GetDeviceCaps(hdc, PHYSICALHEIGHT);
|
||||
|
||||
/* Adjust the margin */
|
||||
rcPrintRect.left = max(rcPrintRect.left, rcPhysical.left);
|
||||
rcPrintRect.top = max(rcPrintRect.top, rcPhysical.top);
|
||||
rcPrintRect.right = min(rcPrintRect.right, rcPhysical.right);
|
||||
rcPrintRect.bottom = min(rcPrintRect.bottom, rcPhysical.bottom);
|
||||
|
||||
return rcPrintRect;
|
||||
}
|
||||
|
@ -614,34 +619,380 @@ BOOL DIALOG_FileSaveAs(VOID)
|
|||
}
|
||||
}
|
||||
|
||||
/* Convert the points into pixels */
|
||||
#define X_POINTS_TO_PIXELS(hDC, points) MulDiv((points), GetDeviceCaps((hDC), LOGPIXELSX), 72)
|
||||
#define Y_POINTS_TO_PIXELS(hDC, points) MulDiv((points), GetDeviceCaps((hDC), LOGPIXELSY), 72)
|
||||
|
||||
/*
|
||||
* See also:
|
||||
* https://support.microsoft.com/en-us/windows/changing-header-and-footer-commands-in-notepad-c1b0e27b-497d-c478-c4c1-0da491cac148
|
||||
*/
|
||||
static VOID
|
||||
DrawHeaderOrFooter(HDC hDC, LPRECT pRect, LPCTSTR pszFormat, INT nPageNo, const SYSTEMTIME *pstNow)
|
||||
{
|
||||
TCHAR szText[256], szField[128];
|
||||
const TCHAR *pchFormat;
|
||||
UINT uAlign = DT_CENTER, uFlags = DT_SINGLELINE | DT_VCENTER | DT_NOPREFIX;
|
||||
HGDIOBJ hOldPen, hOldBrush;
|
||||
|
||||
/* Draw a rectangle */
|
||||
hOldPen = SelectObject(hDC, GetStockObject(BLACK_PEN));
|
||||
hOldBrush = SelectObject(hDC, GetStockObject(NULL_BRUSH));
|
||||
Rectangle(hDC, pRect->left, pRect->top, pRect->right, pRect->bottom);
|
||||
SelectObject(hDC, hOldBrush);
|
||||
SelectObject(hDC, hOldPen);
|
||||
|
||||
InflateRect(pRect, -X_POINTS_TO_PIXELS(hDC, 3), 0); /* Shrink 3pt */
|
||||
|
||||
szText[0] = 0;
|
||||
|
||||
for (pchFormat = pszFormat; *pchFormat; ++pchFormat)
|
||||
{
|
||||
if (*pchFormat != _T('&'))
|
||||
{
|
||||
StringCchCatN(szText, ARRAY_SIZE(szText), pchFormat, 1);
|
||||
continue;
|
||||
}
|
||||
|
||||
++pchFormat;
|
||||
if (*pchFormat == 0)
|
||||
break;
|
||||
|
||||
switch (_totupper(*pchFormat)) /* Make it uppercase */
|
||||
{
|
||||
case _T('&'): /* Found double ampersand */
|
||||
StringCchCat(szText, ARRAY_SIZE(szText), TEXT("&"));
|
||||
break;
|
||||
|
||||
case _T('L'): /* Left */
|
||||
DrawText(hDC, szText, -1, pRect, uAlign | uFlags);
|
||||
szText[0] = 0;
|
||||
uAlign = DT_LEFT;
|
||||
break;
|
||||
|
||||
case _T('C'): /* Center */
|
||||
DrawText(hDC, szText, -1, pRect, uAlign | uFlags);
|
||||
szText[0] = 0;
|
||||
uAlign = DT_CENTER;
|
||||
break;
|
||||
|
||||
case _T('R'): /* Right */
|
||||
DrawText(hDC, szText, -1, pRect, uAlign | uFlags);
|
||||
szText[0] = 0;
|
||||
uAlign = DT_RIGHT;
|
||||
break;
|
||||
|
||||
case _T('D'): /* Date */
|
||||
GetDateFormat(LOCALE_USER_DEFAULT, 0, pstNow, NULL,
|
||||
szField, (INT)ARRAY_SIZE(szField));
|
||||
StringCchCat(szText, ARRAY_SIZE(szText), szField);
|
||||
break;
|
||||
|
||||
case _T('T'): /* Time */
|
||||
GetTimeFormat(LOCALE_USER_DEFAULT, 0, pstNow, NULL,
|
||||
szField, (INT)ARRAY_SIZE(szField));
|
||||
StringCchCat(szText, ARRAY_SIZE(szText), szField);
|
||||
break;
|
||||
|
||||
case _T('F'): /* Filename */
|
||||
StringCchCat(szText, ARRAY_SIZE(szText), Globals.szFileTitle);
|
||||
break;
|
||||
|
||||
case _T('P'): /* Page number */
|
||||
StringCchPrintf(szField, ARRAY_SIZE(szField), TEXT("%u"), nPageNo);
|
||||
StringCchCat(szText, ARRAY_SIZE(szText), szField);
|
||||
break;
|
||||
|
||||
default: /* Otherwise */
|
||||
szField[0] = _T('&');
|
||||
szField[1] = *pchFormat;
|
||||
szField[2] = 0;
|
||||
StringCchCat(szText, ARRAY_SIZE(szText), szField);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DrawText(hDC, szText, -1, pRect, uAlign | uFlags);
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
LPPRINTDLG pPrinter;
|
||||
RECT printRect;
|
||||
SYSTEMTIME stNow;
|
||||
HFONT hHeaderFont;
|
||||
HFONT hBodyFont;
|
||||
LPTSTR pszText;
|
||||
DWORD ich;
|
||||
DWORD cchText;
|
||||
INT cyHeader;
|
||||
INT cySpacing;
|
||||
INT cyFooter;
|
||||
} PRINT_DATA, *PPRINT_DATA;
|
||||
|
||||
static BOOL DoPrintBody(PPRINT_DATA pData, DWORD PageCount, BOOL bSkipPage)
|
||||
{
|
||||
LPPRINTDLG pPrinter = pData->pPrinter;
|
||||
RECT printRect = pData->printRect;
|
||||
INT xLeft = printRect.left, yTop = printRect.top + pData->cyHeader + pData->cySpacing;
|
||||
INT xStart, tabWidth;
|
||||
DWORD ichStart;
|
||||
SIZE charMetrics;
|
||||
TEXTMETRIC tmText;
|
||||
|
||||
/* Calculate a tab width */
|
||||
#define TAB_STOP 8
|
||||
GetTextMetrics(pPrinter->hDC, &tmText);
|
||||
tabWidth = TAB_STOP * tmText.tmAveCharWidth;
|
||||
|
||||
#define DO_FLUSH() do { \
|
||||
if (ichStart < pData->ich && !bSkipPage) { \
|
||||
TextOut(pPrinter->hDC, xStart, yTop, &pData->pszText[ichStart], pData->ich - ichStart); \
|
||||
} \
|
||||
ichStart = pData->ich; \
|
||||
xStart = xLeft; \
|
||||
} while (0)
|
||||
|
||||
/* The drawing-body loop */
|
||||
for (ichStart = pData->ich, xStart = xLeft; pData->ich < pData->cchText; )
|
||||
{
|
||||
TCHAR ch = pData->pszText[pData->ich];
|
||||
|
||||
if (ch == _T('\r'))
|
||||
{
|
||||
DO_FLUSH();
|
||||
|
||||
pData->ich++; /* Next char */
|
||||
ichStart = pData->ich;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ch == _T('\n'))
|
||||
{
|
||||
DO_FLUSH();
|
||||
|
||||
/* Next line */
|
||||
yTop += tmText.tmHeight;
|
||||
xLeft = xStart = printRect.left;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ch == _T('\t'))
|
||||
{
|
||||
INT nStepWidth = tabWidth - ((xLeft - printRect.left) % tabWidth);
|
||||
|
||||
DO_FLUSH();
|
||||
|
||||
/* Go to the next tab stop */
|
||||
xLeft += nStepWidth;
|
||||
xStart = xLeft;
|
||||
}
|
||||
else /* Normal char */
|
||||
{
|
||||
GetTextExtentPoint32(pPrinter->hDC, &ch, 1, &charMetrics);
|
||||
xLeft += charMetrics.cx;
|
||||
}
|
||||
|
||||
/* Insert a line break if the next position reached the right edge */
|
||||
if (xLeft + charMetrics.cx >= printRect.right)
|
||||
{
|
||||
if (ch != _T('\t'))
|
||||
DO_FLUSH();
|
||||
|
||||
/* Next line */
|
||||
yTop += tmText.tmHeight;
|
||||
xLeft = xStart = printRect.left;
|
||||
}
|
||||
}
|
||||
|
||||
pData->ich++; /* Next char */
|
||||
if (ch == _T('\t') || ch == _T('\n'))
|
||||
ichStart = pData->ich;
|
||||
|
||||
if (yTop + tmText.tmHeight >= printRect.bottom - pData->cyFooter)
|
||||
break; /* The next line reached the body bottom */
|
||||
}
|
||||
|
||||
DO_FLUSH();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL DoPrintPage(PPRINT_DATA pData, DWORD PageCount)
|
||||
{
|
||||
LPPRINTDLG pPrinter = pData->pPrinter;
|
||||
BOOL bSkipPage;
|
||||
HFONT hOldFont;
|
||||
|
||||
/* Should we skip this page? */
|
||||
bSkipPage = !(pPrinter->Flags & PD_SELECTION) &&
|
||||
(pPrinter->Flags & PD_PAGENUMS) &&
|
||||
!(pPrinter->nFromPage <= PageCount && PageCount <= pPrinter->nToPage);
|
||||
|
||||
/* The prologue of a page */
|
||||
if (!bSkipPage)
|
||||
{
|
||||
if (StartPage(pPrinter->hDC) <= 0)
|
||||
{
|
||||
AlertPrintError();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (pData->cyHeader > 0)
|
||||
{
|
||||
/* Draw the page header */
|
||||
RECT rc = pData->printRect;
|
||||
rc.bottom = rc.top + pData->cyHeader;
|
||||
|
||||
hOldFont = SelectObject(pPrinter->hDC, pData->hHeaderFont);
|
||||
DrawHeaderOrFooter(pPrinter->hDC, &rc, Globals.szHeader, PageCount, &pData->stNow);
|
||||
SelectObject(pPrinter->hDC, hOldFont); /* De-select the font */
|
||||
}
|
||||
}
|
||||
|
||||
hOldFont = SelectObject(pPrinter->hDC, pData->hBodyFont);
|
||||
DoPrintBody(pData, PageCount, bSkipPage);
|
||||
SelectObject(pPrinter->hDC, hOldFont);
|
||||
|
||||
/* The epilogue of a page */
|
||||
if (!bSkipPage)
|
||||
{
|
||||
if (pData->cyFooter > 0)
|
||||
{
|
||||
/* Draw the page footer */
|
||||
RECT rc = pData->printRect;
|
||||
rc.top = rc.bottom - pData->cyFooter;
|
||||
|
||||
hOldFont = SelectObject(pPrinter->hDC, pData->hHeaderFont);
|
||||
DrawHeaderOrFooter(pPrinter->hDC, &rc, Globals.szFooter, PageCount, &pData->stNow);
|
||||
SelectObject(pPrinter->hDC, hOldFont);
|
||||
}
|
||||
|
||||
if (EndPage(pPrinter->hDC) <= 0)
|
||||
{
|
||||
AlertPrintError();
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#define HEADER_FONT_SIZE 11 /* 11pt */
|
||||
#define BODY_FONT_SIZE 9 /* 9pt */
|
||||
#define SPACING_HEIGHT 4 /* 4pt */
|
||||
|
||||
static BOOL DoCreatePrintFonts(LPPRINTDLG pPrinter, PPRINT_DATA pPrintData)
|
||||
{
|
||||
LOGFONT lfBody, lfHeader;
|
||||
|
||||
/* Create the main text font for printing */
|
||||
lfBody = Globals.lfFont;
|
||||
lfBody.lfHeight = -Y_POINTS_TO_PIXELS(pPrinter->hDC, HEADER_FONT_SIZE);
|
||||
pPrintData->hBodyFont = CreateFontIndirect(&lfBody);
|
||||
if (pPrintData->hBodyFont == NULL)
|
||||
return FALSE;
|
||||
|
||||
/* Create the header/footer font */
|
||||
ZeroMemory(&lfHeader, sizeof(lfHeader));
|
||||
lfHeader.lfHeight = -Y_POINTS_TO_PIXELS(pPrinter->hDC, BODY_FONT_SIZE);
|
||||
lfHeader.lfWeight = FW_BOLD;
|
||||
lfHeader.lfCharSet = DEFAULT_CHARSET;
|
||||
StringCchCopy(lfHeader.lfFaceName, ARRAY_SIZE(lfHeader.lfFaceName), lfBody.lfFaceName);
|
||||
pPrintData->hHeaderFont = CreateFontIndirect(&lfHeader);
|
||||
if (pPrintData->hHeaderFont == NULL)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL DoPrintDocument(LPPRINTDLG pPrinter)
|
||||
{
|
||||
DOCINFO docInfo;
|
||||
PRINT_DATA printData = { pPrinter };
|
||||
DWORD CopyCount, PageCount;
|
||||
TEXTMETRIC tmHeader;
|
||||
BOOL ret = FALSE;
|
||||
HFONT hOldFont;
|
||||
|
||||
GetLocalTime(&printData.stNow);
|
||||
|
||||
printData.printRect = GetPrintingRect(pPrinter->hDC, &Globals.lMargins);
|
||||
|
||||
if (!DoCreatePrintFonts(pPrinter, &printData))
|
||||
{
|
||||
ShowLastError();
|
||||
goto Quit;
|
||||
}
|
||||
|
||||
if (pPrinter->Flags & PD_SELECTION)
|
||||
printData.cchText = GetSelectionTextLength(Globals.hEdit);
|
||||
else
|
||||
printData.cchText = GetWindowTextLength(Globals.hEdit);
|
||||
|
||||
/* Allocate a buffer for the text */
|
||||
printData.pszText = HeapAlloc(GetProcessHeap(), 0, (printData.cchText + 1) * sizeof(TCHAR));
|
||||
if (!printData.pszText)
|
||||
{
|
||||
ShowLastError();
|
||||
goto Quit;
|
||||
}
|
||||
|
||||
if (pPrinter->Flags & PD_SELECTION)
|
||||
GetSelectionText(Globals.hEdit, printData.pszText, printData.cchText + 1);
|
||||
else
|
||||
GetWindowText(Globals.hEdit, printData.pszText, printData.cchText + 1);
|
||||
|
||||
/* Start a document */
|
||||
ZeroMemory(&docInfo, sizeof(docInfo));
|
||||
docInfo.cbSize = sizeof(DOCINFO);
|
||||
docInfo.lpszDocName = Globals.szFileTitle;
|
||||
if (StartDoc(pPrinter->hDC, &docInfo) <= 0)
|
||||
{
|
||||
AlertPrintError();
|
||||
goto Quit;
|
||||
}
|
||||
|
||||
/* Calculate the header and footer heights */
|
||||
hOldFont = SelectObject(pPrinter->hDC, printData.hHeaderFont);
|
||||
GetTextMetrics(pPrinter->hDC, &tmHeader);
|
||||
printData.cyHeader = printData.cyFooter = 2 * tmHeader.tmHeight;
|
||||
printData.cySpacing = Y_POINTS_TO_PIXELS(pPrinter->hDC, SPACING_HEIGHT);
|
||||
SelectObject(pPrinter->hDC, hOldFont); /* De-select the font */
|
||||
if (!Globals.szHeader[0])
|
||||
printData.cyHeader = printData.cySpacing = 0;
|
||||
if (!Globals.szFooter[0])
|
||||
printData.cyFooter = 0;
|
||||
|
||||
/* The printing-copies loop */
|
||||
for (CopyCount = 1; CopyCount <= pPrinter->nCopies; ++CopyCount)
|
||||
{
|
||||
/* The printing-pages loop */
|
||||
for (PageCount = 1, printData.ich = 0; printData.ich < printData.cchText; ++PageCount)
|
||||
{
|
||||
if (!DoPrintPage(&printData, PageCount))
|
||||
{
|
||||
AbortDoc(pPrinter->hDC); /* Cancel printing */
|
||||
goto Quit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (EndDoc(pPrinter->hDC) <= 0)
|
||||
AlertPrintError();
|
||||
else
|
||||
ret = TRUE;
|
||||
|
||||
Quit: /* Clean up */
|
||||
DeleteObject(printData.hHeaderFont);
|
||||
DeleteObject(printData.hBodyFont);
|
||||
if (printData.pszText)
|
||||
HeapFree(GetProcessHeap(), 0, printData.pszText);
|
||||
return ret;
|
||||
}
|
||||
|
||||
VOID DIALOG_FilePrint(VOID)
|
||||
{
|
||||
DOCINFO di;
|
||||
TEXTMETRIC tm;
|
||||
PRINTDLG printer;
|
||||
SIZE szMetric;
|
||||
int border;
|
||||
int xLeft, yTop, pagecount, dopage, copycount;
|
||||
unsigned int i;
|
||||
LOGFONT hdrFont;
|
||||
HFONT font, old_font=0;
|
||||
DWORD size;
|
||||
LPTSTR pTemp;
|
||||
static const TCHAR times_new_roman[] = _T("Times New Roman");
|
||||
RECT rcPrintRect;
|
||||
|
||||
/* Get a small font and print some header info on each page */
|
||||
ZeroMemory(&hdrFont, sizeof(hdrFont));
|
||||
hdrFont.lfHeight = 100;
|
||||
hdrFont.lfWeight = FW_BOLD;
|
||||
hdrFont.lfCharSet = ANSI_CHARSET;
|
||||
hdrFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
|
||||
hdrFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
|
||||
hdrFont.lfQuality = PROOF_QUALITY;
|
||||
hdrFont.lfPitchAndFamily = VARIABLE_PITCH | FF_ROMAN;
|
||||
_tcscpy(hdrFont.lfFaceName, times_new_roman);
|
||||
|
||||
font = CreateFontIndirect(&hdrFont);
|
||||
|
||||
/* Get Current Settings */
|
||||
ZeroMemory(&printer, sizeof(printer));
|
||||
|
@ -654,179 +1005,29 @@ VOID DIALOG_FilePrint(VOID)
|
|||
|
||||
/* Disable the selection radio button if there is no text selected */
|
||||
if (!GetSelectionTextLength(Globals.hEdit))
|
||||
{
|
||||
printer.Flags = printer.Flags | PD_NOSELECTION;
|
||||
}
|
||||
printer.Flags |= PD_NOSELECTION;
|
||||
|
||||
printer.nFromPage = 0;
|
||||
printer.nFromPage = 1;
|
||||
printer.nToPage = MAXWORD;
|
||||
printer.nMinPage = 1;
|
||||
/* we really need to calculate number of pages to set nMaxPage and nToPage */
|
||||
printer.nToPage = (WORD)-1;
|
||||
printer.nMaxPage = (WORD)-1;
|
||||
|
||||
/* Let commdlg manage copy settings */
|
||||
printer.nCopies = (WORD)PD_USEDEVMODECOPIES;
|
||||
printer.nMaxPage = MAXWORD;
|
||||
|
||||
printer.hDevMode = Globals.hDevMode;
|
||||
printer.hDevNames = Globals.hDevNames;
|
||||
|
||||
if (!PrintDlg(&printer))
|
||||
{
|
||||
DeleteObject(font);
|
||||
return;
|
||||
}
|
||||
return; /* The user canceled printing */
|
||||
|
||||
assert(printer.hDC != NULL);
|
||||
Globals.hDevMode = printer.hDevMode;
|
||||
Globals.hDevNames = printer.hDevNames;
|
||||
|
||||
assert(printer.hDC != 0);
|
||||
|
||||
/* initialize DOCINFO */
|
||||
di.cbSize = sizeof(DOCINFO);
|
||||
di.lpszDocName = Globals.szFileTitle;
|
||||
di.lpszOutput = NULL;
|
||||
di.lpszDatatype = NULL;
|
||||
di.fwType = 0;
|
||||
|
||||
if (StartDoc(printer.hDC, &di) <= 0)
|
||||
{
|
||||
DeleteObject(font);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* Get the file text */
|
||||
if (printer.Flags & PD_SELECTION)
|
||||
{
|
||||
size = GetSelectionTextLength(Globals.hEdit) + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
size = GetWindowTextLength(Globals.hEdit) + 1;
|
||||
}
|
||||
|
||||
pTemp = HeapAlloc(GetProcessHeap(), 0, size * sizeof(TCHAR));
|
||||
if (!pTemp)
|
||||
{
|
||||
EndDoc(printer.hDC);
|
||||
DeleteObject(font);
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
|
||||
if (printer.Flags & PD_SELECTION)
|
||||
{
|
||||
size = GetSelectionText(Globals.hEdit, pTemp, size);
|
||||
}
|
||||
else
|
||||
{
|
||||
size = GetWindowText(Globals.hEdit, pTemp, size);
|
||||
}
|
||||
|
||||
/* Get the current printing area */
|
||||
rcPrintRect = GetPrintingRect(printer.hDC, Globals.lMargins);
|
||||
|
||||
/* Ensure that each logical unit maps to one pixel */
|
||||
SetMapMode(printer.hDC, MM_TEXT);
|
||||
|
||||
/* Needed to get the correct height of a text line */
|
||||
GetTextMetrics(printer.hDC, &tm);
|
||||
DoPrintDocument(&printer);
|
||||
|
||||
border = 15;
|
||||
for (copycount=1; copycount <= printer.nCopies; copycount++) {
|
||||
i = 0;
|
||||
pagecount = 1;
|
||||
do {
|
||||
/* Don't start a page if none of the conditions below are true */
|
||||
dopage = 0;
|
||||
|
||||
/* The user wants to print the current selection */
|
||||
if (printer.Flags & PD_SELECTION)
|
||||
{
|
||||
dopage = 1;
|
||||
}
|
||||
|
||||
/* The user wants to print the entire document */
|
||||
if (!(printer.Flags & PD_PAGENUMS) && !(printer.Flags & PD_SELECTION))
|
||||
{
|
||||
dopage = 1;
|
||||
}
|
||||
|
||||
/* The user wants to print a specified range of pages */
|
||||
if ((pagecount >= printer.nFromPage && pagecount <= printer.nToPage))
|
||||
{
|
||||
dopage = 1;
|
||||
}
|
||||
|
||||
old_font = SelectObject(printer.hDC, font);
|
||||
|
||||
if (dopage) {
|
||||
if (StartPage(printer.hDC) <= 0) {
|
||||
SelectObject(printer.hDC, old_font);
|
||||
EndDoc(printer.hDC);
|
||||
DeleteDC(printer.hDC);
|
||||
HeapFree(GetProcessHeap(), 0, pTemp);
|
||||
DeleteObject(font);
|
||||
AlertPrintError();
|
||||
return;
|
||||
}
|
||||
|
||||
SetViewportOrgEx(printer.hDC, rcPrintRect.left, rcPrintRect.top, NULL);
|
||||
|
||||
/* Write a rectangle and header at the top of each page */
|
||||
Rectangle(printer.hDC, border, border, rcPrintRect.right - border, border + tm.tmHeight * 2);
|
||||
/* I don't know what's up with this TextOut command. This comes out
|
||||
kind of mangled.
|
||||
*/
|
||||
TextOut(printer.hDC,
|
||||
border * 2,
|
||||
border + tm.tmHeight / 2,
|
||||
Globals.szFileTitle,
|
||||
lstrlen(Globals.szFileTitle));
|
||||
}
|
||||
|
||||
/* The starting point for the main text */
|
||||
xLeft = 0;
|
||||
yTop = border + tm.tmHeight * 4;
|
||||
|
||||
SelectObject(printer.hDC, old_font);
|
||||
|
||||
/* Since outputting strings is giving me problems, output the main
|
||||
* text one character at a time. */
|
||||
do {
|
||||
if (pTemp[i] == '\n') {
|
||||
xLeft = 0;
|
||||
yTop += tm.tmHeight;
|
||||
}
|
||||
else if (pTemp[i] != '\r') {
|
||||
if (dopage)
|
||||
TextOut(printer.hDC, xLeft, yTop, &pTemp[i], 1);
|
||||
|
||||
/* We need to get the width for each individual char, since a proportional font may be used */
|
||||
GetTextExtentPoint32(printer.hDC, &pTemp[i], 1, &szMetric);
|
||||
xLeft += szMetric.cx;
|
||||
|
||||
/* Insert a line break if the current line does not fit into the printing area */
|
||||
if (xLeft > rcPrintRect.right)
|
||||
{
|
||||
xLeft = 0;
|
||||
yTop = yTop + tm.tmHeight;
|
||||
}
|
||||
}
|
||||
} while (i++ < size && yTop < rcPrintRect.bottom);
|
||||
|
||||
if (dopage)
|
||||
EndPage(printer.hDC);
|
||||
pagecount++;
|
||||
} while (i < size);
|
||||
}
|
||||
|
||||
if (old_font != 0)
|
||||
SelectObject(printer.hDC, old_font);
|
||||
EndDoc(printer.hDC);
|
||||
DeleteDC(printer.hDC);
|
||||
HeapFree(GetProcessHeap(), 0, pTemp);
|
||||
DeleteObject(font);
|
||||
}
|
||||
|
||||
VOID DIALOG_FileExit(VOID)
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Страница &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 мм" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 мм" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 мм" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 мм" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Страница &p"
|
||||
STRING_NOTEPAD "Бележник"
|
||||
STRING_ERROR "ГРЕШКА"
|
||||
STRING_WARNING "ПРЕДУПРЕЖДЕНИЕ"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Strana &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Strana &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "CHYBA"
|
||||
STRING_WARNING "VAROVÁNÍ"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Side &s"
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Side &p"
|
||||
STRING_NOTEPAD "Notesblok"
|
||||
STRING_ERROR "Fejl"
|
||||
STRING_WARNING "Advarsel"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Seite &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Seite &p"
|
||||
STRING_NOTEPAD "Editor"
|
||||
STRING_ERROR "Fehler"
|
||||
STRING_WARNING "Achtung"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Σελίδα &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Σελίδα &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "ERROR"
|
||||
STRING_WARNING "WARNING"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Page &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "ERROR"
|
||||
STRING_WARNING "WARNING"
|
||||
|
|
|
@ -134,12 +134,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Página &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Página &p"
|
||||
STRING_NOTEPAD "Bloc de notas"
|
||||
STRING_ERROR "ERROR"
|
||||
STRING_WARNING "ADVERTENCIA"
|
||||
|
|
|
@ -140,12 +140,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Lk &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Lk &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "TÕRGE"
|
||||
STRING_WARNING "HOIATUS"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Orriak" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Orriak &p"
|
||||
STRING_NOTEPAD "Ohar-bloka"
|
||||
STRING_ERROR "ERROREA"
|
||||
STRING_WARNING "OHARRA"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Sivu &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Sivu &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "VIRHE"
|
||||
STRING_WARNING "VAROITUS"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Page &p"
|
||||
STRING_NOTEPAD "Bloc-notes"
|
||||
STRING_ERROR "ERREUR"
|
||||
STRING_WARNING "ATTENTION"
|
||||
|
|
|
@ -135,12 +135,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "עמוד &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 מ""מ" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 מ""מ" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 מ""מ" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 מ""מ" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "עמוד &p"
|
||||
STRING_NOTEPAD "פנקס רשימות"
|
||||
STRING_ERROR "שגיאה"
|
||||
STRING_WARNING "אזהרה"
|
||||
|
|
|
@ -139,12 +139,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Page &p"
|
||||
STRING_NOTEPAD "नोटपैड"
|
||||
STRING_ERROR "त्रुटि"
|
||||
STRING_WARNING "वॉर्निंग"
|
||||
|
|
|
@ -139,12 +139,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Stranica &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Stranica &p"
|
||||
STRING_NOTEPAD "Blok za pisanje"
|
||||
STRING_ERROR "Greška"
|
||||
STRING_WARNING "Upozorenje"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Oldalszám: &s." /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Oldalszám: &p."
|
||||
STRING_NOTEPAD "Jegyzettömb"
|
||||
STRING_ERROR "HIBA"
|
||||
STRING_WARNING "FIGYELMEZTETÉS"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Էջ &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Էջ &p"
|
||||
STRING_NOTEPAD "Բլոկնոտ"
|
||||
STRING_ERROR "ՍԽԱԼ"
|
||||
STRING_WARNING "ՈԻՇԱԴՐՈՒԹՅՈՒՆ"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Halaman &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Halaman &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "Kesalahan"
|
||||
STRING_WARNING "Peringatan"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Pagina &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Pagina &p"
|
||||
STRING_NOTEPAD "Blocco note"
|
||||
STRING_ERROR "ERRORE"
|
||||
STRING_WARNING "ATTENZIONE"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "&s ページ" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "ページ &p"
|
||||
STRING_NOTEPAD "メモ帳"
|
||||
STRING_ERROR "エラー"
|
||||
STRING_WARNING "警告"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Puslapis &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Puslapis &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "KLAIDA"
|
||||
STRING_WARNING "ĮSPĖJIMAS"
|
||||
|
|
|
@ -134,12 +134,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Page &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "RALAT"
|
||||
STRING_WARNING "AMARAN"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Pagina &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Pagina &p"
|
||||
STRING_NOTEPAD "Kladblok"
|
||||
STRING_ERROR "FOUT"
|
||||
STRING_WARNING "WAARSCHUWING"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Side &r" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Side &p"
|
||||
STRING_NOTEPAD "Notisblokk"
|
||||
STRING_ERROR "FEIL"
|
||||
STRING_WARNING "ADVARSEL"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Strona &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Strona &p"
|
||||
STRING_NOTEPAD "Notatnik"
|
||||
STRING_ERROR "Błąd"
|
||||
STRING_WARNING "OSTRZEŻENIE"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Página &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Página &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "ERRO"
|
||||
STRING_WARNING "AVISO"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Página &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Página &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "ERRO"
|
||||
STRING_WARNING "AVISO"
|
||||
|
|
|
@ -137,12 +137,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Pagină &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Pagină &p"
|
||||
STRING_NOTEPAD "Carnețel"
|
||||
STRING_ERROR "EROARE"
|
||||
STRING_WARNING "ATENțIONARE"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Страница &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 мм" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 мм" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 мм" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 мм" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Страница &p"
|
||||
STRING_NOTEPAD "Блокнот"
|
||||
STRING_ERROR "ОШИБКА"
|
||||
STRING_WARNING "ВНИМАНИЕ"
|
||||
|
|
|
@ -140,12 +140,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Strana &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Strana &p"
|
||||
STRING_NOTEPAD "Poznámkový blok"
|
||||
STRING_ERROR "CHYBA"
|
||||
STRING_WARNING "UPOZORNENIE"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Stran &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Stran &p"
|
||||
STRING_NOTEPAD "Beležnica"
|
||||
STRING_ERROR "NAPAKA"
|
||||
STRING_WARNING "OPOZORILO"
|
||||
|
|
|
@ -136,12 +136,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Faqe &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Faqe &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "ERROR"
|
||||
STRING_WARNING "KUJDES"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Sida &s"
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm"
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm"
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm"
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm"
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Sida &p"
|
||||
STRING_NOTEPAD "Anteckningar"
|
||||
STRING_ERROR "FEL"
|
||||
STRING_WARNING "VARNING"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "หน้า &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 มม." /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 มม." /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 มม." /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 มม." /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "หน้า &p"
|
||||
STRING_NOTEPAD "Notepad"
|
||||
STRING_ERROR "ความปิด"
|
||||
STRING_WARNING "คําตือน"
|
||||
|
|
|
@ -135,12 +135,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Sayfa &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Sayfa &p"
|
||||
STRING_NOTEPAD "Not Defteri"
|
||||
STRING_ERROR "HATA"
|
||||
STRING_WARNING "UYARI"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Сторінка &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 мм" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 мм" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 мм" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 мм" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Сторінка &p"
|
||||
STRING_NOTEPAD "Блокнот"
|
||||
STRING_ERROR "ПОМИЛКА"
|
||||
STRING_WARNING "УВАГА"
|
||||
|
|
|
@ -132,12 +132,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "Sahifa &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "Sahifa &p"
|
||||
STRING_NOTEPAD "Bloknot"
|
||||
STRING_ERROR "XATO"
|
||||
STRING_WARNING "DIQQAT"
|
||||
|
|
|
@ -140,12 +140,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "页面 &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "页面 &p"
|
||||
STRING_NOTEPAD "记事本"
|
||||
STRING_ERROR "错误"
|
||||
STRING_WARNING "警告"
|
||||
|
|
|
@ -140,12 +140,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "第 &s 頁" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "第 &p 頁"
|
||||
STRING_NOTEPAD "記事本"
|
||||
STRING_ERROR "錯誤"
|
||||
STRING_WARNING "警告"
|
||||
|
|
|
@ -140,12 +140,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PAGESETUP_HEADERVALUE "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE "第 &s 頁" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_HEADERVALUE "&f"
|
||||
STRING_PAGESETUP_FOOTERVALUE "第 &p 頁"
|
||||
STRING_NOTEPAD "記事本"
|
||||
STRING_ERROR "錯誤"
|
||||
STRING_WARNING "警告"
|
||||
|
|
|
@ -68,10 +68,6 @@
|
|||
/* Strings */
|
||||
#define STRING_PAGESETUP_HEADERVALUE 0x160
|
||||
#define STRING_PAGESETUP_FOOTERVALUE 0x161
|
||||
#define STRING_PAGESETUP_LEFTVALUE 0x162
|
||||
#define STRING_PAGESETUP_RIGHTVALUE 0x163
|
||||
#define STRING_PAGESETUP_TOPVALUE 0x164
|
||||
#define STRING_PAGESETUP_BOTTOMVALUE 0x165
|
||||
|
||||
#define STRING_NOTEPAD 0x170
|
||||
#define STRING_ERROR 0x171
|
||||
|
|
Loading…
Reference in a new issue