Sync WordPad with Wine 0.9.53.

svn path=/trunk/; revision=31888
This commit is contained in:
Daniel Reimer 2008-01-19 16:25:54 +00:00
parent 45e2da02d4
commit 462e22a7ea
16 changed files with 1443 additions and 1095 deletions

View file

@ -18,7 +18,7 @@
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
MAINMENU MENU DISCARDABLE
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Datei"
BEGIN
@ -229,4 +229,5 @@ BEGIN
"which will cause all formatting to be lost. " \
"Are you sure that you wish to do this?"
STRING_INVALID_NUMBER, "Invalid number format"
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE storage documents are not supported"
END

View file

@ -18,7 +18,7 @@
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
MAINMENU MENU DISCARDABLE
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
@ -229,4 +229,5 @@ BEGIN
"which will cause all formatting to be lost. " \
"Are you sure that you wish to do this?"
STRING_INVALID_NUMBER, "Invalid number format"
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE storage documents are not supported"
END

View file

@ -1,5 +1,5 @@
/*
* Copyright 2006 by Jonathan Ernst
* Copyright 2006-2007 by Jonathan Ernst
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -18,7 +18,7 @@
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
MAINMENU MENU DISCARDABLE
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Fichier"
BEGIN
@ -27,16 +27,16 @@ BEGIN
MENUITEM "&Enregistrer\tCtrl+S", ID_FILE_SAVE
MENUITEM "Enregistrer &sous...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
MENUITEM "Print previe&w . . .", ID_PREVIEW
MENUITEM "Page setup . . .", ID_PRINTSETUP
MENUITEM "&Imprimer...\tCtrl+P", ID_PRINT
MENUITEM "A&perçu avant impression...", ID_PREVIEW
MENUITEM "&Mise en page...", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "&Quitter", ID_FILE_EXIT
END
POPUP "É&dition"
BEGIN
MENUITEM "&Annuler\tCtrl+Z", ID_EDIT_UNDO
MENUITEM "Ré&péter\tCtrl+Y", ID_EDIT_REDO
MENUITEM "&Rétablir\tCtrl+Y", ID_EDIT_REDO
MENUITEM SEPARATOR
MENUITEM "&Couper\tCtrl+X", ID_EDIT_CUT
MENUITEM "Co&pier\tCtrl+C", ID_EDIT_COPY
@ -44,9 +44,9 @@ BEGIN
MENUITEM "&Effacer\tDel", ID_EDIT_CLEAR
MENUITEM "&Sélectionner tout\tCtrl+A", ID_EDIT_SELECTALL
MENUITEM SEPARATOR
MENUITEM "&Find . . .\tCrtl+F", ID_FIND
MENUITEM "Find &next\tF3", ID_FIND_NEXT
MENUITEM "&Replace . . .\tCtrl+H", ID_REPLACE
MENUITEM "&Rechercher...\tCrtl+F", ID_FIND
MENUITEM "Rechercher le &suivant\tF3", ID_FIND_NEXT
MENUITEM "&Remplacer...\tCtrl+H", ID_REPLACE
MENUITEM SEPARATOR
MENUITEM "Lecture-&seule", ID_EDIT_READONLY
MENUITEM "&Modifié", ID_EDIT_MODIFIED
@ -66,27 +66,27 @@ BEGIN
MENUITEM "&Barre de format", ID_TOGGLE_FORMATBAR
MENUITEM "&Barre d'état", ID_TOGGLE_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "&Options . . .", ID_VIEWPROPERTIES
MENUITEM "&Options...", ID_VIEWPROPERTIES
END
POPUP "&Insert"
POPUP "&Insertion"
BEGIN
MENUITEM "&Date and time . . .", ID_DATETIME
MENUITEM "&Date et heure...", ID_DATETIME
END
POPUP "Forma&t"
BEGIN
MENUITEM "&Font . . .", ID_FONTSETTINGS
MENUITEM "&Bullet points" ID_BULLET
MENUITEM "&Paragraph . . ." ID_PARAFORMAT
MENUITEM "&Tabs . . ." ID_TABSTOPS
MENUITEM "&Polive...", ID_FONTSETTINGS
MENUITEM "&Puces" ID_BULLET
MENUITEM "&Paragraphe..." ID_PARAFORMAT
MENUITEM "&Tabulations..." ID_TABSTOPS
POPUP "&Fond"
BEGIN
MENUITEM "&Système\tCtrl+1", ID_BACK_1
MENUITEM "&Jaunasse\tCtrl+2", ID_BACK_2
END
END
POPUP "&Help"
POPUP "Aid&e"
BEGIN
MENUITEM "&About Wine Wordpad" ID_ABOUT
MENUITEM "À &propos du Wordpad de Wine" ID_ABOUT
END
END
@ -98,14 +98,14 @@ BEGIN
MENUITEM "Co&pier", ID_EDIT_COPY
MENUITEM "C&oller", ID_EDIT_PASTE
MENUITEM SEPARATOR
MENUITEM "&Bullet points" ID_BULLET
MENUITEM "&Paragraph . . ." ID_PARAFORMAT
MENUITEM "&Puces" ID_BULLET
MENUITEM "&Paragraphe" ID_PARAFORMAT
END
END
IDD_DATETIME DIALOG DISCARDABLE 30, 20, 130, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Date and time"
CAPTION "Date et heure"
FONT 10, "MS Sans Serif"
BEGIN
LTEXT "Available formats",0,3,2,100,15
@ -116,18 +116,18 @@ END
IDD_NEWFILE DIALOG DISCARDABLE 30, 20, 140, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "New"
CAPTION "Nouveau"
FONT 10, "MS Sans Serif"
BEGIN
LTEXT "New document type",0,3,2,100,15
LTEXT "Nouveau type de document",0,3,2,100,15
LISTBOX IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
PUSHBUTTON "&OK",IDOK,97,12,40,12
PUSHBUTTON "&Cancel",IDCANCEL,97,26,40,12
PUSHBUTTON "&Annuler",IDCANCEL,97,26,40,12
END
IDD_PARAFORMAT DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Paragraph format"
Caption "Format de paragraphe"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Indentation", 0, 10, 10, 120, 68
@ -140,21 +140,21 @@ BEGIN
LTEXT "Alignment", 0, 15, 87, 40, 13
COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 13, CBS_DROPDOWNLIST
PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15
PUSHBUTTON "&Annuler", IDCANCEL, 137, 33, 50, 15
END
IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Tabs"
Caption "Tabulations"
FONT 8, "MS SHell DLg"
BEGIN
GROUPBOX "Tab stops", 0, 10, 10, 120, 90
GROUPBOX "Arrêts de tabulation", 0, 10, 10, 120, 90
COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT
DEFPUSHBUTTON "&Add", ID_TAB_ADD, 20, 80, 45, 15
PUSHBUTTON "&Remove", ID_TAB_DEL, 72, 80, 45, 15
DEFPUSHBUTTON "&Ajouter", ID_TAB_ADD, 20, 80, 45, 15
PUSHBUTTON "&Supprimer", ID_TAB_DEL, 72, 80, 45, 15
PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15
PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15
PUSHBUTTON "&Annuler", IDCANCEL, 137, 33, 50, 15
PUSHBUTTON "Supprimer &tous", ID_TAB_EMPTY, 137, 51, 50, 15
END
IDD_FORMATOPTS DIALOG DISCARDABLE 0, 0, 280, 110
@ -165,53 +165,53 @@ BEGIN
GROUPBOX "Line wrapping", 0, 10, 10, 130, 85
RADIOBUTTON "Wrap text by the &window border", IDC_PAGEFMT_WW, 18, 25, 117, 15
RADIOBUTTON "Wrap text by the &margin", IDC_PAGEFMT_WM, 18, 45, 117, 15
GROUPBOX "Toolbars", 0, 150, 10, 120, 85
CHECKBOX "&Toolbar", IDC_PAGEFMT_TB, 160, 20, 80, 15
CHECKBOX "&Formatbar", IDC_PAGEFMT_FB, 160, 38, 80, 15
CHECKBOX "&Statusbar", IDC_PAGEFMT_SB, 160, 56, 80, 15
GROUPBOX "Barres d'outils", 0, 150, 10, 120, 85
CHECKBOX "&Barre d'outils", IDC_PAGEFMT_TB, 160, 20, 80, 15
CHECKBOX "Barre de &format", IDC_PAGEFMT_FB, 160, 38, 80, 15
CHECKBOX "Barre de &statut", IDC_PAGEFMT_SB, 160, 56, 80, 15
LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_RICHTEXT_FILES_RTF, "Rich text format (*.rtf)"
STRING_TEXT_FILES_TXT, "Text documents (*.txt)"
STRING_TEXT_FILES_UNICODE_TXT, "Unicode text document (*.txt)"
STRING_ALL_FILES, "All documents (*.*)"
STRING_RICHTEXT_FILES_RTF, "Documents texte riche (*.rtf)"
STRING_TEXT_FILES_TXT, "Documents texte (*.txt)"
STRING_TEXT_FILES_UNICODE_TXT, "Documents texte unicode (*.txt)"
STRING_ALL_FILES, "Tous les documents (*.*)"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_ALIGN_LEFT, "Left"
STRING_ALIGN_RIGHT, "Right"
STRING_ALIGN_CENTER, "Center"
STRING_ALIGN_LEFT, "Gauche"
STRING_ALIGN_RIGHT, "Droite"
STRING_ALIGN_CENTER, "Centrer"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_NEWFILE_RICHTEXT, "Rich text document"
STRING_NEWFILE_TXT, "Text document"
STRING_NEWFILE_TXT_UNICODE, "Unicode text document"
STRING_NEWFILE_RICHTEXT, "Document texte riche"
STRING_NEWFILE_TXT, "Document texte"
STRING_NEWFILE_TXT_UNICODE, "Document texte unicode"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_PRINTER_FILES_PRN, "Printer files (*.PRN)"
STRING_PRINTER_FILES_PRN, "Fichiers d'impression (*.PRN)"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_VIEWPROPS_TITLE, "Options"
STRING_VIEWPROPS_TEXT, "Text"
STRING_VIEWPROPS_RICHTEXT, "Rich text"
STRING_VIEWPROPS_TEXT, "Texte"
STRING_VIEWPROPS_RICHTEXT, "Texte riche"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_PREVIEW_PRINT, "Print"
STRING_PREVIEW_NEXTPAGE, "Next page"
STRING_PREVIEW_PREVPAGE, "Previous page"
STRING_PREVIEW_CLOSE, "Close"
STRING_PREVIEW_PRINT, "Imprimer"
STRING_PREVIEW_NEXTPAGE, "Page suivante"
STRING_PREVIEW_PREVPAGE, "Page précédente"
STRING_PREVIEW_CLOSE, "Fermer"
END
STRINGTABLE DISCARDABLE
@ -222,11 +222,12 @@ END
STRINGTABLE DISCARDABLE
BEGIN
STRING_DEFAULT_FILENAME, "Document"
STRING_PROMPT_SAVE_CHANGES, "Save changes to '%s'?"
STRING_SEARCH_FINISHED, "Finished searching the document."
STRING_LOAD_RICHED_FAILED, "Failed to load the RichEdit library."
STRING_SAVE_LOSEFORMATTING, "You have chosen to save in plain text format, " \
"which will cause all formatting to be lost. " \
"Are you sure that you wish to do this?"
STRING_INVALID_NUMBER, "Invalid number format"
STRING_PROMPT_SAVE_CHANGES, "Enregistrer les modifications de « %s » ?"
STRING_SEARCH_FINISHED, "Recherche terminée dans le document."
STRING_LOAD_RICHED_FAILED, "Impossible de charger la bibliothèque RichEdit."
STRING_SAVE_LOSEFORMATTING, "Vous avez choisi d'enregistrer en texte simple, " \
"ce qui causera la perte de tout formattage. " \
"Voulez-vous vraiment continuer ?"
STRING_INVALID_NUMBER, "Format de nombre invalide"
STRING_OLE_STORAGE_NOT_SUPPORTED, "Les documents conteneur OLE ne sont pas supportés"
END

View file

@ -18,7 +18,7 @@
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
MAINMENU MENU DISCARDABLE
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Fájl"
BEGIN
@ -229,4 +229,5 @@ BEGIN
"which will cause all formatting to be lost. " \
"Are you sure that you wish to do this?"
STRING_INVALID_NUMBER, "Invalid number format"
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE storage documents are not supported"
END

View file

@ -19,7 +19,8 @@
LANGUAGE LANG_KOREAN, SUBLANG_NEUTRAL
MAINMENU MENU DISCARDABLE
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "파일(&F)"
BEGIN
@ -76,7 +77,7 @@ BEGIN
POPUP "형식(&O)"
BEGIN
MENUITEM "글꼴(&F) . . .", ID_FONTSETTINGS
MENUITEM " 강조 점(&U)" ID_BULLET
MENUITEM "강조 점(&U)" ID_BULLET
MENUITEM "단락(&P) . . ." ID_PARAFORMAT
MENUITEM "탭(&T) . . ." ID_TABSTOPS
POPUP "배경(&B)"
@ -107,7 +108,7 @@ END
IDD_DATETIME DIALOG DISCARDABLE 30, 20, 130, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "날짜와 시간"
FONT 10, "MS Sans Serif"
FONT 10, "MS Shell Dlg"
BEGIN
LTEXT "가능한 형식",0,3,2,100,15
LISTBOX IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT
@ -118,7 +119,7 @@ END
IDD_NEWFILE DIALOG DISCARDABLE 30, 20, 140, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "새 문서"
FONT 10, "MS Sans Serif"
FONT 10, "MS Shell Dlg"
BEGIN
LTEXT "새 문서 형식",0,3,2,100,15
LISTBOX IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
@ -147,7 +148,7 @@ END
IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "탭"
FONT 8, "MS SHell DLg"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "탭 정지", 0, 10, 10, 120, 90
COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT
@ -223,4 +224,5 @@ BEGIN
"이것은 특수한 꾸밈을 없엘 것입니다. " \
"당신은 정말로 저장하기를 원합니까?"
STRING_INVALID_NUMBER, "올바르지 않은 수 형식"
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE 저장 문서는 지원되지 않습니다"
END

View file

@ -18,7 +18,7 @@
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
MAINMENU MENU DISCARDABLE
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Bestand"
BEGIN
@ -229,4 +229,5 @@ BEGIN
"which will cause all formatting to be lost. " \
"Are you sure that you wish to do this?"
STRING_INVALID_NUMBER, "Invalid number format"
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE storage documents are not supported"
END

View file

@ -18,7 +18,7 @@
LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
MAINMENU MENU DISCARDABLE
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Fil"
BEGIN
@ -229,4 +229,5 @@ BEGIN
"vil føre til at all formatering går tapt. Er du " \
"sikker på at du vil fortsette?"
STRING_INVALID_NUMBER, "Ugyldig tallformat"
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE storage documents are not supported"
END

View file

@ -19,7 +19,7 @@
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
MAINMENU MENU DISCARDABLE
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Plik"
BEGIN
@ -230,4 +230,5 @@ BEGIN
"which will cause all formatting to be lost. " \
"Are you sure that you wish to do this?"
STRING_INVALID_NUMBER, "Invalid number format"
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE storage documents are not supported"
END

View file

@ -18,7 +18,7 @@
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
MAINMENU MENU DISCARDABLE
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Ôàéë"
BEGIN
@ -27,9 +27,9 @@ BEGIN
MENUITEM "&Ñîõðàíèòü\tCtrl+S", ID_FILE_SAVE
MENUITEM "Ñîõðàíèòü &êàê...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
MENUITEM "Print previe&w . . .", ID_PREVIEW
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
MENUITEM "&Ïå÷àòü . . .\tCtrl+P", ID_PRINT
MENUITEM "Ïðåä&âàðèòåëüíûé ïðîñìîòð . . .", ID_PREVIEW
MENUITEM "&Ìàêåò ñòðàíèöû . . .", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "Â&ûõîä", ID_FILE_EXIT
END
@ -41,11 +41,11 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Âûðåçàòü\tCtrl+X", ID_EDIT_CUT
MENUITEM "&Êîïèðîâàòü\tCtrl+C", ID_EDIT_COPY
MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE
MENUITEM "&Âñòàâèòü\tCtrl+V", ID_EDIT_PASTE
MENUITEM SEPARATOR
MENUITEM "&Find . . .\tCrtl+F", ID_FIND
MENUITEM "Find &next\tF3", ID_FIND_NEXT
MENUITEM "&Replace . . .\tCtrl+H", ID_REPLACE
MENUITEM "&Íàéòè . . .\tCrtl+F", ID_FIND
MENUITEM "Íà&éòè äàëåå\tF3", ID_FIND_NEXT
MENUITEM "&Çàìåíèòü . . .\tCtrl+H", ID_REPLACE
MENUITEM SEPARATOR
MENUITEM "&Òîëüêî äëÿ ÷òåíèÿ", ID_EDIT_READONLY
MENUITEM "&Èçìåíåí", ID_EDIT_MODIFIED
@ -61,31 +61,31 @@ BEGIN
END
POPUP "&View"
BEGIN
MENUITEM "&Toolbar", ID_TOGGLE_TOOLBAR
MENUITEM "&Formatbar", ID_TOGGLE_FORMATBAR
MENUITEM "&Statusbar", ID_TOGGLE_STATUSBAR
MENUITEM "Ïàíåëü &èíñòðóìåíòîâ", ID_TOGGLE_TOOLBAR
MENUITEM "Ï&àíåëü ôîðìàòèðîâàíèÿ", ID_TOGGLE_FORMATBAR
MENUITEM "&Ñòðîêà ñîñòîÿíèÿ", ID_TOGGLE_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "&Options . . .", ID_VIEWPROPERTIES
MENUITEM "&Ïàðàìåòðû . . .", ID_VIEWPROPERTIES
END
POPUP "&Insert"
POPUP "Âñò&àâêà"
BEGIN
MENUITEM "&Date and time . . .", ID_DATETIME
MENUITEM "&Äàòà è âðåìÿ . . .", ID_DATETIME
END
POPUP "Ôîð&ìàò"
BEGIN
MENUITEM "&Font . . .", ID_FONTSETTINGS
MENUITEM "B&ullet points" ID_BULLET
MENUITEM "&Paragraph . . ." ID_PARAFORMAT
MENUITEM "&Tabs . . ." ID_TABSTOPS
MENUITEM "&Øðèôò . . .", ID_FONTSETTINGS
MENUITEM "&Ìàðêåð" ID_BULLET
MENUITEM "&Àáçàö . . ." ID_PARAFORMAT
MENUITEM "&Òàáóëÿöèÿ . . ." ID_TABSTOPS
POPUP "&Ôîí"
BEGIN
MENUITEM "&Ñèñòåìíûé\tCtrl+1", ID_BACK_1
MENUITEM "&Æåëòîâàòûé PostThat\tCtrl+2", ID_BACK_2
END
END
POPUP "&Help"
POPUP "&Ñïðàâêà"
BEGIN
MENUITEM "&About Wine Wordpad" ID_ABOUT
MENUITEM "&Î Wine Wordpad" ID_ABOUT
END
END
@ -95,65 +95,65 @@ BEGIN
BEGIN
MENUITEM "&Âûðåçàòü\tCtrl+X", ID_EDIT_CUT
MENUITEM "&Êîïèðîâàòü\tCtrl+C", ID_EDIT_COPY
MENUITEM "&Paste", ID_EDIT_PASTE
MENUITEM "Âñò&àâèòü", ID_EDIT_PASTE
MENUITEM SEPARATOR
MENUITEM "&Bullet points" ID_BULLET
MENUITEM "&Paragraph . . ." ID_PARAFORMAT
MENUITEM "&Ìàðêåð" ID_BULLET
MENUITEM "&Àáçàö . . ." ID_PARAFORMAT
END
END
IDD_DATETIME DIALOG DISCARDABLE 30, 20, 130, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Date and time"
CAPTION "Äàòà è âðåìÿ"
FONT 10, "MS Sans Serif"
BEGIN
LTEXT "Available formats",0,3,2,100,15
LTEXT "Äîñòóïíûå ôîðìàòû",0,3,2,100,15
LISTBOX IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT
PUSHBUTTON "&OK",IDOK,87,12,40,12
PUSHBUTTON "&Cancel",IDCANCEL,87,26,40,12
PUSHBUTTON "&ÎÊ",IDOK,87,12,40,12
PUSHBUTTON "Î&òìåíà",IDCANCEL,87,26,40,12
END
IDD_NEWFILE DIALOG DISCARDABLE 30, 20, 140, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "New"
CAPTION "Íîâûé äîêóìåíò"
FONT 10, "MS Sans Serif"
BEGIN
LTEXT "New document type",0,3,2,100,15
LTEXT "Òèï ñîçäàâàåìîãî äîêóìåíòà",0,3,2,100,15
LISTBOX IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
PUSHBUTTON "&OK",IDOK,97,12,40,12
PUSHBUTTON "&Cancel",IDCANCEL,97,26,40,12
PUSHBUTTON "&ÎÊ",IDOK,97,12,40,12
PUSHBUTTON "Î&òìåíà",IDCANCEL,97,26,40,12
END
IDD_PARAFORMAT DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Paragraph format"
Caption "Àáçàö"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Indentation", 0, 10, 10, 120, 68
LTEXT "Left", 0, 15, 22, 40, 13
GROUPBOX "Îòñòóï", 0, 10, 10, 120, 68
LTEXT "Ñëåâà", 0, 15, 22, 40, 13
EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
LTEXT "Right", 0, 15, 40, 40, 13
LTEXT "Ñïðàâà", 0, 15, 40, 40, 13
EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
LTEXT "First line", 0, 15, 58, 40, 13
LTEXT "Ïåðâàÿ ñòðîêà", 0, 15, 58, 40, 13
EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
LTEXT "Alignment", 0, 15, 87, 40, 13
LTEXT "Âûðàâíèâàíèå", 0, 15, 87, 40, 13
COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 13, CBS_DROPDOWNLIST
PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15
PUSHBUTTON "&ÎÊ", IDOK, 137, 15, 50, 15
PUSHBUTTON "Î&òìåíà", IDCANCEL, 137, 33, 50, 15
END
IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Tabs"
Caption "Òàáóëÿöèÿ"
FONT 8, "MS SHell DLg"
BEGIN
GROUPBOX "Tab stops", 0, 10, 10, 120, 90
GROUPBOX "Ïîçèöèè òàáóëÿöèè", 0, 10, 10, 120, 90
COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT
DEFPUSHBUTTON "&Add", ID_TAB_ADD, 20, 80, 45, 15
PUSHBUTTON "&Remove", ID_TAB_DEL, 72, 80, 45, 15
PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15
PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15
DEFPUSHBUTTON "&Óñòàíîâèòü", ID_TAB_ADD, 20, 80, 45, 15
PUSHBUTTON "Î&÷èñòèòü", ID_TAB_DEL, 72, 80, 45, 15
PUSHBUTTON "&ÎÊ", IDOK, 137, 15, 50, 15
PUSHBUTTON "Î&òìåíà", IDCANCEL, 137, 33, 50, 15
PUSHBUTTON "Î÷èñòèòü &âñå", ID_TAB_EMPTY, 137, 51, 50, 15
END
IDD_FORMATOPTS DIALOG DISCARDABLE 0, 0, 280, 110
@ -161,71 +161,72 @@ STYLE DS_SYSMODAL
Caption ""
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Line wrapping", 0, 10, 10, 130, 85
RADIOBUTTON "Wrap text by the &window border", IDC_PAGEFMT_WW, 18, 25, 117, 15
RADIOBUTTON "Wrap text by the &margin", IDC_PAGEFMT_WM, 18, 45, 117, 15
GROUPBOX "Toolbars", 0, 150, 10, 120, 85
CHECKBOX "&Toolbar", IDC_PAGEFMT_TB, 160, 20, 80, 15
CHECKBOX "&Formatbar", IDC_PAGEFMT_FB, 160, 38, 80, 15
CHECKBOX "&Statusbar", IDC_PAGEFMT_SB, 160, 56, 80, 15
GROUPBOX "Ïåðåíîñ ïî ñëîâàì", 0, 10, 10, 130, 85
RADIOBUTTON "Â ãðàíèöàõ &îêíà", IDC_PAGEFMT_WW, 18, 25, 117, 15
RADIOBUTTON "Â ãðàíèöàõ &ïîëåé", IDC_PAGEFMT_WM, 18, 45, 117, 15
GROUPBOX "Ïàíåëè", 0, 150, 10, 120, 85
CHECKBOX "&Èíñòðóìåíòîâ", IDC_PAGEFMT_TB, 160, 20, 80, 15
CHECKBOX "&Ôîðìàòèðîâàíèÿ", IDC_PAGEFMT_FB, 160, 38, 80, 15
CHECKBOX "&Ñòðîêà ñîñòîÿíèÿ", IDC_PAGEFMT_SB, 160, 56, 80, 15
LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_RICHTEXT_FILES_RTF, "Rich text format (*.rtf)"
STRING_TEXT_FILES_TXT, "Text documents (*.txt)"
STRING_TEXT_FILES_UNICODE_TXT, "Unicode text document (*.txt)"
STRING_ALL_FILES, "All documents (*.*)"
STRING_RICHTEXT_FILES_RTF, "Ôàéëû RTF (*.rtf)"
STRING_TEXT_FILES_TXT, "Òåêñòîâûå äîêóìåíòû (*.txt)"
STRING_TEXT_FILES_UNICODE_TXT, "Äîêóìåíòû Unicode (*.txt)"
STRING_ALL_FILES, "Âñå äîêóìíòû (*.*)"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_ALIGN_LEFT, "Left"
STRING_ALIGN_RIGHT, "Right"
STRING_ALIGN_CENTER, "Center"
STRING_ALIGN_LEFT, "Ïî ëåâîìó êðàþ"
STRING_ALIGN_RIGHT, "Ïî ïðàâîìó êðàþ"
STRING_ALIGN_CENTER, "Ïî öåíòðó"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_NEWFILE_RICHTEXT, "Rich text document"
STRING_NEWFILE_TXT, "Text document"
STRING_NEWFILE_TXT_UNICODE, "Unicode text document"
STRING_NEWFILE_RICHTEXT, "Ôàéë RTF"
STRING_NEWFILE_TXT, "Òåêñòîâûé äîêóìåíò"
STRING_NEWFILE_TXT_UNICODE, "Äîêóìåíò â ôîðìàòå Unicode"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_PRINTER_FILES_PRN, "Printer files (*.PRN)"
STRING_PRINTER_FILES_PRN, "Ôàéëû ïðèíòåðà (*.PRN)"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_VIEWPROPS_TITLE, "Options"
STRING_VIEWPROPS_TEXT, "Text"
STRING_VIEWPROPS_RICHTEXT, "Rich text"
STRING_VIEWPROPS_TITLE, "Íàñòðîéêè"
STRING_VIEWPROPS_TEXT, "Òåêñò"
STRING_VIEWPROPS_RICHTEXT, "Ôàéë RTF"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_PREVIEW_PRINT, "Print"
STRING_PREVIEW_NEXTPAGE, "Next page"
STRING_PREVIEW_PREVPAGE, "Previous page"
STRING_PREVIEW_CLOSE, "Close"
STRING_PREVIEW_PRINT, "Ïå÷àòü"
STRING_PREVIEW_NEXTPAGE, "Ñëåäóþùàÿ ñòðàíèöà"
STRING_PREVIEW_PREVPAGE, "Ïðåäûäóùàÿ ñòðàíèöà"
STRING_PREVIEW_CLOSE, "Çàêðûòü"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_UNITS_CM, "cm"
STRING_UNITS_CM, "ñì"
END
STRINGTABLE DISCARDABLE
BEGIN
STRING_DEFAULT_FILENAME, "Document"
STRING_PROMPT_SAVE_CHANGES, "Save changes to '%s'?"
STRING_SEARCH_FINISHED, "Finished searching the document."
STRING_LOAD_RICHED_FAILED, "Failed to load the RichEdit library."
STRING_SAVE_LOSEFORMATTING, "You have chosen to save in plain text format, " \
"which will cause all formatting to be lost. " \
"Are you sure that you wish to do this?"
STRING_INVALID_NUMBER, "Invalid number format"
STRING_PROMPT_SAVE_CHANGES, "Ñîõðàíèòü èçìåíåíèÿ â '%s'?"
STRING_SEARCH_FINISHED, "Ïîèñê â äîêóìåíòå çàâåðøåí."
STRING_LOAD_RICHED_FAILED, "Îøèáêà çàãðóçêè áèáëèîòåêè RichEdit."
STRING_SAVE_LOSEFORMATTING, "Ñîõðàíåíèå äîêóìåíòà â âèäå íåôîðìàòèðîâàííîãî òåêñòà, " \
"ïðèâåäåò ê ïîòåðå ôîðìàòèðîâàíèÿ. Ïîäòâåðæäàåòå âûïîëíåíèå" \
"ýòîé îïåðàöèè?"
STRING_INVALID_NUMBER, "Íåïðàâèëüíûé ÷èñëîâîé ôîðìàò"
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE storage äîêóìåíòû íå ïîääåðæèâàþòñÿ"
END

View file

@ -20,7 +20,7 @@
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
MAINMENU MENU DISCARDABLE
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Dosya"
BEGIN
@ -232,4 +232,5 @@ BEGIN
"which will cause all formatting to be lost. " \
"Are you sure that you wish to do this?"
STRING_INVALID_NUMBER, "Invalid number format"
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE storage documents are not supported"
END

View file

@ -0,0 +1,622 @@
/*
* Wordpad implementation - Printing and print preview functions
*
* Copyright 2007 by Alexander N. Sørnes <alex@thehandofagony.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <windows.h>
#include <richedit.h>
#include <commctrl.h>
#include "wordpad.h"
typedef struct _previewinfo
{
int page;
int pages;
HDC hdc;
HDC hdcSized;
RECT window;
LPWSTR wszFileName;
} previewinfo, *ppreviewinfo;
static HGLOBAL devMode;
static HGLOBAL devNames;
static RECT margins;
static previewinfo preview;
static const WCHAR var_pagemargin[] = {'P','a','g','e','M','a','r','g','i','n',0};
static LPWSTR get_print_file_filter(HWND hMainWnd)
{
static WCHAR wszPrintFilter[MAX_STRING_LEN*2+6+4+1];
const WCHAR files_prn[] = {'*','.','P','R','N',0};
const WCHAR files_all[] = {'*','.','*','\0'};
LPWSTR p;
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtr(hMainWnd, GWLP_HINSTANCE);
p = wszPrintFilter;
LoadStringW(hInstance, STRING_PRINTER_FILES_PRN, p, MAX_STRING_LEN);
p += lstrlenW(p) + 1;
lstrcpyW(p, files_prn);
p += lstrlenW(p) + 1;
LoadStringW(hInstance, STRING_ALL_FILES, p, MAX_STRING_LEN);
p += lstrlenW(p) + 1;
lstrcpyW(p, files_all);
p += lstrlenW(p) + 1;
*p = 0;
return wszPrintFilter;
}
void registry_set_pagemargins(HKEY hKey)
{
RegSetValueExW(hKey, var_pagemargin, 0, REG_BINARY, (LPBYTE)&margins, sizeof(RECT));
}
void registry_read_pagemargins(HKEY hKey)
{
DWORD size = sizeof(RECT);
if(!hKey || RegQueryValueExW(hKey, var_pagemargin, 0, NULL, (LPBYTE)&margins,
&size) != ERROR_SUCCESS || size != sizeof(RECT))
{
margins.top = 1417;
margins.bottom = 1417;
margins.left = 1757;
margins.right = 1757;
}
}
static void AddTextButton(HWND hRebarWnd, int string, int command, int id)
{
REBARBANDINFOW rb;
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtr(hRebarWnd, GWLP_HINSTANCE);
WCHAR text[MAX_STRING_LEN];
HWND hButton;
LoadStringW(hInstance, string, text, MAX_STRING_LEN);
hButton = CreateWindowW(WC_BUTTONW, text,
WS_VISIBLE | WS_CHILD, 5, 5, 100, 15,
hRebarWnd, (HMENU)command, hInstance, NULL);
rb.cbSize = sizeof(rb);
rb.fMask = RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_STYLE | RBBIM_CHILD | RBBIM_IDEALSIZE | RBBIM_ID;
rb.fStyle = RBBS_NOGRIPPER | RBBS_VARIABLEHEIGHT;
rb.hwndChild = hButton;
rb.cyChild = rb.cyMinChild = 22;
rb.cx = rb.cxMinChild = 90;
rb.cxIdeal = 100;
rb.wID = id;
SendMessageW(hRebarWnd, RB_INSERTBAND, -1, (LPARAM)&rb);
}
static HDC make_dc(void)
{
if(devNames && devMode)
{
LPDEVNAMES dn = GlobalLock(devNames);
LPDEVMODEW dm = GlobalLock(devMode);
HDC ret;
ret = CreateDCW((LPWSTR)dn + dn->wDriverOffset,
(LPWSTR)dn + dn->wDeviceOffset, 0, dm);
GlobalUnlock(dn);
GlobalUnlock(dm);
return ret;
} else
{
return 0;
}
}
static LONG twips_to_centmm(int twips)
{
return MulDiv(twips, 1000, 567);
}
LONG centmm_to_twips(int mm)
{
return MulDiv(mm, 567, 1000);
}
static LONG twips_to_pixels(int twips, int dpi)
{
float ret = ((float)twips / ((float)567 * 2.54)) * (float)dpi;
return (LONG)ret;
}
static LONG devunits_to_twips(int units, int dpi)
{
float ret = ((float)units / (float)dpi) * (float)567 * 2.54;
return (LONG)ret;
}
static RECT get_print_rect(HDC hdc)
{
RECT rc;
int width, height;
if(hdc)
{
int dpiY = GetDeviceCaps(hdc, LOGPIXELSY);
int dpiX = GetDeviceCaps(hdc, LOGPIXELSX);
width = devunits_to_twips(GetDeviceCaps(hdc, PHYSICALWIDTH), dpiX);
height = devunits_to_twips(GetDeviceCaps(hdc, PHYSICALHEIGHT), dpiY);
} else
{
width = centmm_to_twips(18500);
height = centmm_to_twips(27000);
}
rc.left = margins.left;
rc.right = width - margins.right;
rc.top = margins.top;
rc.bottom = height - margins.bottom;
return rc;
}
void target_device(HWND hMainWnd, DWORD wordWrap)
{
HWND hEditorWnd = GetDlgItem(hMainWnd, IDC_EDITOR);
HDC hdc = make_dc();
int width = 0;
if(wordWrap == ID_WORDWRAP_MARGIN)
{
RECT rc = get_print_rect(hdc);
width = rc.right;
}
if(!hdc)
{
HDC hMaindc = GetDC(hMainWnd);
hdc = CreateCompatibleDC(hMaindc);
ReleaseDC(hMainWnd, hMaindc);
}
SendMessageW(hEditorWnd, EM_SETTARGETDEVICE, (WPARAM)hdc, width);
DeleteDC(hdc);
}
static LPWSTR dialog_print_to_file(HWND hMainWnd)
{
OPENFILENAMEW ofn;
static WCHAR file[MAX_PATH] = {'O','U','T','P','U','T','.','P','R','N',0};
static const WCHAR defExt[] = {'P','R','N',0};
static LPWSTR file_filter;
if(!file_filter)
file_filter = get_print_file_filter(hMainWnd);
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
ofn.hwndOwner = hMainWnd;
ofn.lpstrFilter = file_filter;
ofn.lpstrFile = (LPWSTR)file;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrDefExt = (LPWSTR)defExt;
if(GetSaveFileNameW(&ofn))
return (LPWSTR)file;
else
return FALSE;
}
static int get_num_pages(HWND hEditorWnd, FORMATRANGE fr)
{
int page = 0;
do
{
page++;
fr.chrg.cpMin = SendMessageW(hEditorWnd, EM_FORMATRANGE, TRUE,
(LPARAM)&fr);
}
while(fr.chrg.cpMin && fr.chrg.cpMin < fr.chrg.cpMax);
return page;
}
static void char_from_pagenum(HWND hEditorWnd, FORMATRANGE *fr, int page)
{
int i;
for(i = 1; i <= page; i++)
{
if(i == page)
break;
fr->chrg.cpMin = SendMessageW(hEditorWnd, EM_FORMATRANGE, TRUE, (LPARAM)fr);
}
}
static void print(LPPRINTDLGW pd, LPWSTR wszFileName)
{
FORMATRANGE fr;
DOCINFOW di;
HWND hEditorWnd = GetDlgItem(pd->hwndOwner, IDC_EDITOR);
int printedPages = 0;
fr.hdc = pd->hDC;
fr.hdcTarget = pd->hDC;
fr.rc = get_print_rect(fr.hdc);
fr.rcPage.left = 0;
fr.rcPage.right = fr.rc.right + margins.right;
fr.rcPage.top = 0;
fr.rcPage.bottom = fr.rc.bottom + margins.bottom;
ZeroMemory(&di, sizeof(di));
di.cbSize = sizeof(di);
di.lpszDocName = wszFileName;
if(pd->Flags & PD_PRINTTOFILE)
{
di.lpszOutput = dialog_print_to_file(pd->hwndOwner);
if(!di.lpszOutput)
return;
}
if(pd->Flags & PD_SELECTION)
{
SendMessageW(hEditorWnd, EM_EXGETSEL, 0, (LPARAM)&fr.chrg);
} else
{
GETTEXTLENGTHEX gt;
gt.flags = GTL_DEFAULT;
gt.codepage = 1200;
fr.chrg.cpMin = 0;
fr.chrg.cpMax = SendMessageW(hEditorWnd, EM_GETTEXTLENGTHEX, (WPARAM)&gt, 0);
if(pd->Flags & PD_PAGENUMS)
char_from_pagenum(hEditorWnd, &fr, pd->nToPage);
}
StartDocW(fr.hdc, &di);
do
{
if(StartPage(fr.hdc) <= 0)
break;
fr.chrg.cpMin = SendMessageW(hEditorWnd, EM_FORMATRANGE, TRUE, (LPARAM)&fr);
if(EndPage(fr.hdc) <= 0)
break;
printedPages++;
if((pd->Flags & PD_PAGENUMS) && (printedPages > (pd->nToPage - pd->nFromPage)))
break;
}
while(fr.chrg.cpMin && fr.chrg.cpMin < fr.chrg.cpMax);
EndDoc(fr.hdc);
SendMessageW(hEditorWnd, EM_FORMATRANGE, FALSE, 0);
}
void dialog_printsetup(HWND hMainWnd)
{
PAGESETUPDLGW ps;
ZeroMemory(&ps, sizeof(ps));
ps.lStructSize = sizeof(ps);
ps.hwndOwner = hMainWnd;
ps.Flags = PSD_INHUNDREDTHSOFMILLIMETERS | PSD_MARGINS;
ps.rtMargin.left = twips_to_centmm(margins.left);
ps.rtMargin.right = twips_to_centmm(margins.right);
ps.rtMargin.top = twips_to_centmm(margins.top);
ps.rtMargin.bottom = twips_to_centmm(margins.bottom);
ps.hDevMode = devMode;
ps.hDevNames = devNames;
if(PageSetupDlgW(&ps))
{
margins.left = centmm_to_twips(ps.rtMargin.left);
margins.right = centmm_to_twips(ps.rtMargin.right);
margins.top = centmm_to_twips(ps.rtMargin.top);
margins.bottom = centmm_to_twips(ps.rtMargin.bottom);
devMode = ps.hDevMode;
devNames = ps.hDevNames;
}
}
void get_default_printer_opts(void)
{
PRINTDLGW pd;
ZeroMemory(&pd, sizeof(pd));
ZeroMemory(&pd, sizeof(pd));
pd.lStructSize = sizeof(pd);
pd.Flags = PD_RETURNDC | PD_RETURNDEFAULT;
pd.hDevMode = devMode;
PrintDlgW(&pd);
devMode = pd.hDevMode;
devNames = pd.hDevNames;
}
void print_quick(LPWSTR wszFileName)
{
PRINTDLGW pd;
ZeroMemory(&pd, sizeof(pd));
pd.hDC = make_dc();
print(&pd, wszFileName);
}
void dialog_print(HWND hMainWnd, LPWSTR wszFileName)
{
PRINTDLGW pd;
HWND hEditorWnd = GetDlgItem(hMainWnd, IDC_EDITOR);
int from = 0;
int to = 0;
ZeroMemory(&pd, sizeof(pd));
pd.lStructSize = sizeof(pd);
pd.hwndOwner = hMainWnd;
pd.Flags = PD_RETURNDC | PD_USEDEVMODECOPIESANDCOLLATE;
pd.nMinPage = 1;
pd.nMaxPage = -1;
pd.hDevMode = devMode;
pd.hDevNames = devNames;
SendMessageW(hEditorWnd, EM_GETSEL, (WPARAM)&from, (LPARAM)&to);
if(from == to)
pd.Flags |= PD_NOSELECTION;
if(PrintDlgW(&pd))
{
devMode = pd.hDevMode;
devNames = pd.hDevNames;
print(&pd, wszFileName);
}
}
static void preview_bar_show(HWND hMainWnd, BOOL show)
{
HWND hReBar = GetDlgItem(hMainWnd, IDC_REBAR);
int i;
if(show)
{
REBARBANDINFOW rb;
HWND hStatic;
AddTextButton(hReBar, STRING_PREVIEW_PRINT, ID_PRINT, BANDID_PREVIEW_BTN1);
AddTextButton(hReBar, STRING_PREVIEW_NEXTPAGE, ID_PREVIEW_NEXTPAGE, BANDID_PREVIEW_BTN2);
AddTextButton(hReBar, STRING_PREVIEW_PREVPAGE, ID_PREVIEW_PREVPAGE, BANDID_PREVIEW_BTN3);
AddTextButton(hReBar, STRING_PREVIEW_CLOSE, ID_FILE_EXIT, BANDID_PREVIEW_BTN4);
hStatic = CreateWindowW(WC_STATICW, NULL,
WS_VISIBLE | WS_CHILD, 0, 0, 0, 0,
hReBar, NULL, NULL, NULL);
rb.cbSize = sizeof(rb);
rb.fMask = RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_STYLE | RBBIM_CHILD | RBBIM_IDEALSIZE | RBBIM_ID;
rb.fStyle = RBBS_NOGRIPPER | RBBS_VARIABLEHEIGHT;
rb.hwndChild = hStatic;
rb.cyChild = rb.cyMinChild = 22;
rb.cx = rb.cxMinChild = 90;
rb.cxIdeal = 100;
rb.wID = BANDID_PREVIEW_BUFFER;
SendMessageW(hReBar, RB_INSERTBAND, -1, (LPARAM)&rb);
} else
{
for(i = 0; i <= PREVIEW_BUTTONS; i++)
SendMessageW(hReBar, RB_DELETEBAND, SendMessageW(hReBar, RB_IDTOINDEX, BANDID_PREVIEW_BTN1+i, 0), 0);
}
}
void init_preview(HWND hMainWnd, LPWSTR wszFileName)
{
preview.page = 1;
preview.hdc = 0;
preview.wszFileName = wszFileName;
preview_bar_show(hMainWnd, TRUE);
}
void close_preview(HWND hMainWnd)
{
preview.window.right = 0;
preview.window.bottom = 0;
preview.page = 0;
preview.pages = 0;
preview_bar_show(hMainWnd, FALSE);
}
BOOL preview_isactive(void)
{
return preview.page != 0;
}
LRESULT print_preview(HWND hMainWnd)
{
FORMATRANGE fr;
GETTEXTLENGTHEX gt;
HDC hdc;
RECT window, background;
HBITMAP hBitmapCapture, hBitmapScaled;
int bmWidth, bmHeight, bmNewWidth, bmNewHeight;
float ratioWidth, ratioHeight, ratio;
int xOffset, yOffset;
int barheight;
HWND hReBar = GetDlgItem(hMainWnd, IDC_REBAR);
PAINTSTRUCT ps;
hdc = BeginPaint(hMainWnd, &ps);
GetClientRect(hMainWnd, &window);
fr.hdcTarget = make_dc();
fr.rc = get_print_rect(fr.hdcTarget);
fr.rcPage.left = 0;
fr.rcPage.top = 0;
fr.rcPage.bottom = fr.rc.bottom + margins.bottom;
fr.rcPage.right = fr.rc.right + margins.right;
bmWidth = twips_to_pixels(fr.rcPage.right, GetDeviceCaps(hdc, LOGPIXELSX));
bmHeight = twips_to_pixels(fr.rcPage.bottom, GetDeviceCaps(hdc, LOGPIXELSY));
hBitmapCapture = CreateCompatibleBitmap(hdc, bmWidth, bmHeight);
if(!preview.hdc)
{
RECT paper;
HWND hEditorWnd = GetDlgItem(hMainWnd, IDC_EDITOR);
preview.hdc = CreateCompatibleDC(hdc);
fr.hdc = preview.hdc;
gt.flags = GTL_DEFAULT;
gt.codepage = 1200;
fr.chrg.cpMin = 0;
fr.chrg.cpMax = SendMessageW(hEditorWnd, EM_GETTEXTLENGTHEX, (WPARAM)&gt, 0);
paper.left = 0;
paper.right = bmWidth;
paper.top = 0;
paper.bottom = bmHeight;
if(!preview.pages)
preview.pages = get_num_pages(hEditorWnd, fr);
SelectObject(preview.hdc, hBitmapCapture);
char_from_pagenum(hEditorWnd, &fr, preview.page);
FillRect(preview.hdc, &paper, GetStockObject(WHITE_BRUSH));
SendMessageW(hEditorWnd, EM_FORMATRANGE, TRUE, (LPARAM)&fr);
SendMessageW(hEditorWnd, EM_FORMATRANGE, FALSE, 0);
EnableWindow(GetDlgItem(hReBar, ID_PREVIEW_PREVPAGE), preview.page > 1);
EnableWindow(GetDlgItem(hReBar, ID_PREVIEW_NEXTPAGE), preview.page < preview.pages);
}
barheight = SendMessageW(hReBar, RB_GETBARHEIGHT, 0, 0);
ratioWidth = ((float)window.right - 20.0) / (float)bmHeight;
ratioHeight = ((float)window.bottom - 20.0 - (float)barheight) / (float)bmHeight;
if(ratioWidth > ratioHeight)
ratio = ratioHeight;
else
ratio = ratioWidth;
bmNewWidth = (int)((float)bmWidth * ratio);
bmNewHeight = (int)((float)bmHeight * ratio);
hBitmapScaled = CreateCompatibleBitmap(hdc, bmNewWidth, bmNewHeight);
xOffset = ((window.right - bmNewWidth) / 2);
yOffset = ((window.bottom - bmNewHeight + barheight) / 2);
if(window.right != preview.window.right || window.bottom != preview.window.bottom)
{
HPEN hPen;
int TopMargin = (int)((float)twips_to_pixels(fr.rc.top, GetDeviceCaps(hdc, LOGPIXELSX)) * ratio);
int BottomMargin = (int)((float)twips_to_pixels(fr.rc.bottom, GetDeviceCaps(hdc, LOGPIXELSX)) * ratio);
int LeftMargin = (int)((float)twips_to_pixels(fr.rc.left, GetDeviceCaps(hdc, LOGPIXELSY)) * ratio);
int RightMargin = (int)((float)twips_to_pixels(fr.rc.right, GetDeviceCaps(hdc, LOGPIXELSY)) * ratio);
DeleteDC(preview.hdcSized);
preview.hdcSized = CreateCompatibleDC(hdc);
SelectObject(preview.hdcSized, hBitmapScaled);
StretchBlt(preview.hdcSized, 0, 0, bmNewWidth, bmNewHeight, preview.hdc, 0, 0, bmWidth, bmHeight, SRCCOPY);
/* Draw margin lines */
hPen = CreatePen(PS_DOT, 1, RGB(0,0,0));
SelectObject(preview.hdcSized, hPen);
MoveToEx(preview.hdcSized, 0, TopMargin, NULL);
LineTo(preview.hdcSized, bmNewWidth, TopMargin);
MoveToEx(preview.hdcSized, 0, BottomMargin, NULL);
LineTo(preview.hdcSized, bmNewWidth, BottomMargin);
MoveToEx(preview.hdcSized, LeftMargin, 0, NULL);
LineTo(preview.hdcSized, LeftMargin, bmNewHeight);
MoveToEx(preview.hdcSized, RightMargin, 0, NULL);
LineTo(preview.hdcSized, RightMargin, bmNewHeight);
}
window.top = barheight;
FillRect(hdc, &window, GetStockObject(GRAY_BRUSH));
SelectObject(hdc, hBitmapScaled);
background.left = xOffset - 2;
background.right = xOffset + bmNewWidth + 2;
background.top = yOffset - 2;
background.bottom = yOffset + bmNewHeight + 2;
FillRect(hdc, &background, GetStockObject(BLACK_BRUSH));
BitBlt(hdc, xOffset, yOffset, bmNewWidth, bmNewHeight, preview.hdcSized, 0, 0, SRCCOPY);
DeleteDC(fr.hdcTarget);
preview.window = window;
EndPaint(hMainWnd, &ps);
return 0;
}
LRESULT preview_command(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
switch(LOWORD(wParam))
{
case ID_FILE_EXIT:
PostMessageW(hWnd, WM_CLOSE, 0, 0);
break;
case ID_PREVIEW_NEXTPAGE:
case ID_PREVIEW_PREVPAGE:
{
HWND hReBar = GetDlgItem(hWnd, IDC_REBAR);
RECT rc;
if(LOWORD(wParam) == ID_PREVIEW_NEXTPAGE)
preview.page++;
else
preview.page--;
preview.hdc = 0;
preview.window.right = 0;
GetClientRect(hWnd, &rc);
rc.top += SendMessageW(hReBar, RB_GETBARHEIGHT, 0, 0);
InvalidateRect(hWnd, &rc, TRUE);
}
break;
case ID_PRINT:
dialog_print(hWnd, preview.wszFileName);
SendMessageW(hWnd, WM_CLOSE, 0, 0);
break;
}
return 0;
}

View file

@ -0,0 +1,378 @@
/*
* Wordpad implementation - Registry functions
*
* Copyright 2007 by Alexander N. Sørnes <alex@thehandofagony.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <windows.h>
#include <shlobj.h>
#include <richedit.h>
#include "wordpad.h"
static const WCHAR key_recentfiles[] = {'R','e','c','e','n','t',' ','f','i','l','e',
' ','l','i','s','t',0};
static const WCHAR key_options[] = {'O','p','t','i','o','n','s',0};
static const WCHAR key_rtf[] = {'R','T','F',0};
static const WCHAR key_text[] = {'T','e','x','t',0};
static const WCHAR var_file[] = {'F','i','l','e','%','d',0};
static const WCHAR var_framerect[] = {'F','r','a','m','e','R','e','c','t',0};
static const WCHAR var_barstate0[] = {'B','a','r','S','t','a','t','e','0',0};
static LRESULT registry_get_handle(HKEY *hKey, LPDWORD action, LPCWSTR subKey)
{
LONG ret;
static const WCHAR wszProgramKey[] = {'S','o','f','t','w','a','r','e','\\',
'M','i','c','r','o','s','o','f','t','\\',
'W','i','n','d','o','w','s','\\',
'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
'A','p','p','l','e','t','s','\\',
'W','o','r','d','p','a','d',0};
LPWSTR key = (LPWSTR)wszProgramKey;
if(subKey)
{
WCHAR backslash[] = {'\\',0};
key = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
(lstrlenW(wszProgramKey)+lstrlenW(subKey)+lstrlenW(backslash)+1)
*sizeof(WCHAR));
if(!key)
return 1;
lstrcpyW(key, wszProgramKey);
lstrcatW(key, backslash);
lstrcatW(key, subKey);
}
if(action)
{
ret = RegCreateKeyExW(HKEY_CURRENT_USER, key, 0, NULL, REG_OPTION_NON_VOLATILE,
KEY_READ | KEY_WRITE, NULL, hKey, action);
} else
{
ret = RegOpenKeyExW(HKEY_CURRENT_USER, key, 0, KEY_READ | KEY_WRITE, hKey);
}
if(subKey)
HeapFree(GetProcessHeap(), 0, key);
return ret;
}
void registry_set_options(HWND hMainWnd)
{
HKEY hKey;
DWORD action;
if(registry_get_handle(&hKey, &action, (LPWSTR)key_options) == ERROR_SUCCESS)
{
RECT rc;
GetWindowRect(hMainWnd, &rc);
RegSetValueExW(hKey, var_framerect, 0, REG_BINARY, (LPBYTE)&rc, sizeof(RECT));
registry_set_pagemargins(hKey);
}
RegCloseKey(hKey);
}
void registry_read_winrect(RECT* rc)
{
HKEY hKey;
DWORD size = sizeof(RECT);
if(registry_get_handle(&hKey, 0, (LPWSTR)key_options) != ERROR_SUCCESS ||
RegQueryValueExW(hKey, var_framerect, 0, NULL, (LPBYTE)rc, &size) !=
ERROR_SUCCESS || size != sizeof(RECT))
{
rc->top = 0;
rc->left = 0;
rc->bottom = 300;
rc->right = 600;
}
RegCloseKey(hKey);
}
static void truncate_path(LPWSTR file, LPWSTR out, LPWSTR pos1, LPWSTR pos2)
{
static const WCHAR dots[] = {'.','.','.',0};
*++pos1 = 0;
lstrcatW(out, file);
lstrcatW(out, dots);
lstrcatW(out, pos2);
}
static void format_filelist_filename(LPWSTR file, LPWSTR out)
{
LPWSTR pos_basename;
LPWSTR truncpos1, truncpos2;
WCHAR myDocs[MAX_STRING_LEN];
SHGetFolderPathW(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, (LPWSTR)&myDocs);
pos_basename = file_basename(file);
truncpos1 = NULL;
truncpos2 = NULL;
*(pos_basename-1) = 0;
if(!lstrcmpiW(file, myDocs) || (lstrlenW(pos_basename) > FILELIST_ENTRY_LENGTH))
{
truncpos1 = pos_basename;
*(pos_basename-1) = '\\';
} else
{
LPWSTR pos;
BOOL morespace = FALSE;
*(pos_basename-1) = '\\';
for(pos = file; pos < pos_basename; pos++)
{
if(*pos == '\\' || *pos == '/')
{
if(truncpos1)
{
if((pos - file + lstrlenW(pos_basename)) > FILELIST_ENTRY_LENGTH)
break;
truncpos1 = pos;
morespace = TRUE;
break;
}
if((pos - file + lstrlenW(pos_basename)) > FILELIST_ENTRY_LENGTH)
break;
truncpos1 = pos;
}
}
if(morespace)
{
for(pos = pos_basename; pos >= truncpos1; pos--)
{
if(*pos == '\\' || *pos == '/')
{
if((truncpos1 - file + lstrlenW(pos_basename) + pos_basename - pos) > FILELIST_ENTRY_LENGTH)
break;
truncpos2 = pos;
}
}
}
}
if(truncpos1 == pos_basename)
lstrcatW(out, pos_basename);
else if(truncpos1 == truncpos2 || !truncpos2)
lstrcatW(out, file);
else
truncate_path(file, out, truncpos1, truncpos2 ? truncpos2 : (pos_basename-1));
}
void registry_read_filelist(HWND hMainWnd)
{
HKEY hFileKey;
if(registry_get_handle(&hFileKey, 0, key_recentfiles) == ERROR_SUCCESS)
{
WCHAR itemText[MAX_PATH+3], buffer[MAX_PATH];
/* The menu item name is not the same as the file name, so we need to store
the file name here */
static WCHAR file1[MAX_PATH], file2[MAX_PATH], file3[MAX_PATH], file4[MAX_PATH];
WCHAR numFormat[] = {'&','%','d',' ',0};
LPWSTR pFile[] = {file1, file2, file3, file4};
DWORD pathSize = MAX_PATH*sizeof(WCHAR);
int i;
WCHAR key[6];
MENUITEMINFOW mi;
HMENU hMenu = GetMenu(hMainWnd);
mi.cbSize = sizeof(MENUITEMINFOW);
mi.fMask = MIIM_ID | MIIM_DATA | MIIM_STRING | MIIM_FTYPE;
mi.fType = MFT_STRING;
mi.dwTypeData = itemText;
mi.wID = ID_FILE_RECENT1;
RemoveMenu(hMenu, ID_FILE_RECENT_SEPARATOR, MF_BYCOMMAND);
for(i = 0; i < FILELIST_ENTRIES; i++)
{
wsprintfW(key, var_file, i+1);
RemoveMenu(hMenu, ID_FILE_RECENT1+i, MF_BYCOMMAND);
if(RegQueryValueExW(hFileKey, (LPWSTR)key, 0, NULL, (LPBYTE)pFile[i], &pathSize)
!= ERROR_SUCCESS)
break;
mi.dwItemData = (DWORD)pFile[i];
wsprintfW(itemText, numFormat, i+1);
lstrcpyW(buffer, pFile[i]);
format_filelist_filename(buffer, itemText);
InsertMenuItemW(hMenu, ID_FILE_EXIT, FALSE, &mi);
mi.wID++;
pathSize = MAX_PATH*sizeof(WCHAR);
}
mi.fType = MFT_SEPARATOR;
mi.fMask = MIIM_FTYPE | MIIM_ID;
InsertMenuItemW(hMenu, ID_FILE_EXIT, FALSE, &mi);
RegCloseKey(hFileKey);
}
}
void registry_set_filelist(LPCWSTR newFile, HWND hMainWnd)
{
HKEY hKey;
DWORD action;
if(registry_get_handle(&hKey, &action, key_recentfiles) == ERROR_SUCCESS)
{
LPCWSTR pFiles[FILELIST_ENTRIES];
int i;
HMENU hMenu = GetMenu(hMainWnd);
MENUITEMINFOW mi;
WCHAR buffer[6];
mi.cbSize = sizeof(MENUITEMINFOW);
mi.fMask = MIIM_DATA;
for(i = 0; i < FILELIST_ENTRIES; i++)
pFiles[i] = NULL;
for(i = 0; GetMenuItemInfoW(hMenu, ID_FILE_RECENT1+i, FALSE, &mi); i++)
pFiles[i] = (LPWSTR)mi.dwItemData;
if(lstrcmpiW(newFile, pFiles[0]))
{
for(i = 0; pFiles[i] && i < FILELIST_ENTRIES; i++)
{
if(!lstrcmpiW(pFiles[i], newFile))
{
int j;
for(j = 0; pFiles[j] && j < i; j++)
{
pFiles[i-j] = pFiles[i-j-1];
}
pFiles[0] = NULL;
break;
}
}
if(!pFiles[0])
{
pFiles[0] = newFile;
} else
{
for(i = 0; pFiles[i] && i < FILELIST_ENTRIES-1; i++)
pFiles[FILELIST_ENTRIES-1-i] = pFiles[FILELIST_ENTRIES-2-i];
pFiles[0] = newFile;
}
for(i = 0; pFiles[i] && i < FILELIST_ENTRIES; i++)
{
wsprintfW(buffer, var_file, i+1);
RegSetValueExW(hKey, (LPWSTR)&buffer, 0, REG_SZ, (LPBYTE)pFiles[i],
(lstrlenW(pFiles[i])+1)*sizeof(WCHAR));
}
}
}
RegCloseKey(hKey);
registry_read_filelist(hMainWnd);
}
int reg_formatindex(WPARAM format)
{
return (format & SF_TEXT) ? 1 : 0;
}
void registry_read_options(void)
{
HKEY hKey;
if(registry_get_handle(&hKey, 0, key_options) != ERROR_SUCCESS)
registry_read_pagemargins(NULL);
else
registry_read_pagemargins(hKey);
RegCloseKey(hKey);
}
static void registry_read_formatopts(int index, LPCWSTR key, DWORD barState[], DWORD wordWrap[])
{
HKEY hKey;
DWORD action = 0;
BOOL fetched = FALSE;
barState[index] = 0;
wordWrap[index] = 0;
if(registry_get_handle(&hKey, &action, key) != ERROR_SUCCESS)
return;
if(action == REG_OPENED_EXISTING_KEY)
{
DWORD size = sizeof(DWORD);
if(RegQueryValueExW(hKey, var_barstate0, 0, NULL, (LPBYTE)&barState[index],
&size) == ERROR_SUCCESS)
fetched = TRUE;
}
if(!fetched)
barState[index] = (1 << BANDID_TOOLBAR) | (1 << BANDID_FORMATBAR) | (1 << BANDID_RULER) | (1 << BANDID_STATUSBAR);
if(index == reg_formatindex(SF_RTF))
wordWrap[index] = ID_WORDWRAP_WINDOW;
else if(index == reg_formatindex(SF_TEXT))
wordWrap[index] = ID_WORDWRAP_WINDOW; /* FIXME: should be ID_WORDWRAP_NONE once we support it */
RegCloseKey(hKey);
}
void registry_read_formatopts_all(DWORD barState[], DWORD wordWrap[])
{
registry_read_formatopts(reg_formatindex(SF_RTF), key_rtf, barState, wordWrap);
registry_read_formatopts(reg_formatindex(SF_TEXT), key_text, barState, wordWrap);
}
static void registry_set_formatopts(int index, LPCWSTR key, DWORD barState[])
{
HKEY hKey;
DWORD action = 0;
if(registry_get_handle(&hKey, &action, key) == ERROR_SUCCESS)
{
RegSetValueExW(hKey, var_barstate0, 0, REG_DWORD, (LPBYTE)&barState[index],
sizeof(DWORD));
RegCloseKey(hKey);
}
}
void registry_set_formatopts_all(DWORD barState[])
{
registry_set_formatopts(reg_formatindex(SF_RTF), key_rtf, barState);
registry_set_formatopts(reg_formatindex(SF_TEXT), key_text, barState);
}

View file

@ -20,29 +20,29 @@
#include <windef.h>
#include <winuser.h>
#include "resource.h"
#include "wordpad.h"
MAINACCELTABLE ACCELERATORS
BEGIN
"1", ID_BACK_1, VIRTKEY, CONTROL
"2", ID_BACK_2, VIRTKEY, CONTROL
"L", ID_ALIGN_LEFT, VIRTKEY, CONTROL
"E", ID_ALIGN_CENTER, VIRTKEY, CONTROL
"R", ID_ALIGN_RIGHT, VIRTKEY, CONTROL
"L", ID_ALIGN_LEFT, VIRTKEY, CONTROL
"E", ID_ALIGN_CENTER, VIRTKEY, CONTROL
"R", ID_ALIGN_RIGHT, VIRTKEY, CONTROL
"F", ID_FIND, VIRTKEY, CONTROL
VK_F3, ID_FIND_NEXT, VIRTKEY
"H", ID_REPLACE, VIRTKEY, CONTROL
"A", ID_EDIT_SELECTALL, VIRTKEY, CONTROL
"X", ID_EDIT_CUT, VIRTKEY, CONTROL
"C", ID_EDIT_COPY, VIRTKEY, CONTROL
"Z", ID_EDIT_UNDO, VIRTKEY, CONTROL
"Y", ID_EDIT_REDO, VIRTKEY, CONTROL
"B", ID_FORMAT_BOLD, VIRTKEY, CONTROL
"I", ID_FORMAT_ITALIC, VIRTKEY, CONTROL
"A", ID_EDIT_SELECTALL, VIRTKEY, CONTROL
"X", ID_EDIT_CUT, VIRTKEY, CONTROL
"C", ID_EDIT_COPY, VIRTKEY, CONTROL
"Z", ID_EDIT_UNDO, VIRTKEY, CONTROL
"Y", ID_EDIT_REDO, VIRTKEY, CONTROL
"B", ID_FORMAT_BOLD, VIRTKEY, CONTROL
"I", ID_FORMAT_ITALIC, VIRTKEY, CONTROL
"U", ID_FORMAT_UNDERLINE,VIRTKEY, CONTROL
"N", ID_FILE_NEW, VIRTKEY, CONTROL
"O", ID_FILE_OPEN, VIRTKEY, CONTROL
"S", ID_FILE_SAVE, VIRTKEY, CONTROL
"N", ID_FILE_NEW, VIRTKEY, CONTROL
"O", ID_FILE_OPEN, VIRTKEY, CONTROL
"S", ID_FILE_SAVE, VIRTKEY, CONTROL
"P", ID_PRINT, VIRTKEY, CONTROL
END

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,210 @@
/*
* Copyright 2004 by Krzysztof Foltman
* Copyright 2007 by Alexander N. Sørnes <alex@thehandofagony.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#define MAX_STRING_LEN 255
#define ID_FILE_EXIT 1000
#define ID_FILE_OPEN 1001
#define ID_FILE_SAVE 1002
#define ID_FILE_NEW 1003
#define ID_FILE_SAVEAS 1004
#define ID_FILE_RECENT1 1005
#define ID_FILE_RECENT2 1006
#define ID_FILE_RECENT3 1007
#define ID_FILE_RECENT4 1008
#define ID_FILE_RECENT_SEPARATOR 1009
#define ID_PRINT 1010
#define ID_PREVIEW 1011
#define ID_PRINTSETUP 1012
#define ID_PRINT_QUICK 1013
#define ID_FIND 1014
#define ID_FIND_NEXT 1015
#define ID_REPLACE 1016
#define ID_PREVIEW_NEXTPAGE 1017
#define ID_PREVIEW_PREVPAGE 1018
#define ID_ALIGN_LEFT 1100
#define ID_ALIGN_CENTER 1101
#define ID_ALIGN_RIGHT 1102
#define ID_BACK_1 1200
#define ID_BACK_2 1201
#define ID_EDIT_SELECTALL 1300
#define ID_EDIT_SELECTIONINFO 1301
#define ID_EDIT_READONLY 1302
#define ID_EDIT_MODIFIED 1303
#define ID_EDIT_CHARFORMAT 1304
#define ID_EDIT_PARAFORMAT 1305
#define ID_EDIT_DEFCHARFORMAT 1306
#define ID_EDIT_UNDO 1307
#define ID_EDIT_REDO 1308
#define ID_EDIT_GETTEXT 1309
#define ID_EDIT_COPY 1310
#define ID_EDIT_CUT 1311
#define ID_EDIT_PASTE 1312
#define ID_EDIT_CLEAR 1313
#define ID_BULLET 1314
#define ID_FONTSETTINGS 1315
#define ID_FORMAT_BOLD 1400
#define ID_FORMAT_ITALIC 1401
#define ID_FORMAT_UNDERLINE 1402
#define ID_TOGGLE_TOOLBAR 1500
#define ID_TOGGLE_FORMATBAR 1501
#define ID_TOGGLE_STATUSBAR 1502
#define PREVIEW_BUTTONS 4
#define FILELIST_ENTRIES 4
#define FILELIST_ENTRY_LENGTH 33
#define BANDID_TOOLBAR 2
#define BANDID_FORMATBAR 3
#define BANDID_RULER 0
#define BANDID_STATUSBAR 1
#define BANDID_FONTLIST 4
#define BANDID_SIZELIST 5
#define BANDID_PREVIEW_BTN1 6
#define BANDID_PREVIEW_BTN2 7
#define BANDID_PREVIEW_BTN3 8
#define BANDID_PREVIEW_BTN4 9
#define BANDID_PREVIEW_BUFFER 10
#define ID_WORDWRAP_NONE 0
#define ID_WORDWRAP_WINDOW 1
#define ID_WORDWRAP_MARGIN 2
#define ID_NEWFILE_ABORT 100
#define ID_TAB_ADD 100
#define ID_TAB_DEL 101
#define ID_TAB_EMPTY 102
#define IDC_PAGEFMT_TB 100
#define IDC_PAGEFMT_FB 101
#define IDC_PAGEFMT_SB 102
#define IDC_PAGEFMT_WW 103
#define IDC_PAGEFMT_WM 104
#define IDC_PAGEFMT_ID 105
#define ID_DATETIME 1600
#define ID_PARAFORMAT 1601
#define ID_TABSTOPS 1602
#define ID_ABOUT 1603
#define ID_VIEWPROPERTIES 1604
#define IDC_STATUSBAR 2000
#define IDC_EDITOR 2001
#define IDC_TOOLBAR 2002
#define IDC_FORMATBAR 2003
#define IDC_REBAR 2004
#define IDC_COMBO 2005
#define IDC_DATETIME 2006
#define IDC_NEWFILE 2007
#define IDC_PARA_LEFT 2008
#define IDC_PARA_RIGHT 2009
#define IDC_PARA_FIRST 2010
#define IDC_PARA_ALIGN 2011
#define IDC_TABSTOPS 2012
#define IDC_FONTLIST 2013
#define IDC_SIZELIST 2014
#define IDD_DATETIME 2100
#define IDD_NEWFILE 2101
#define IDD_PARAFORMAT 2102
#define IDD_TABSTOPS 2103
#define IDD_FORMATOPTS 2104
#define IDM_MAINMENU 2200
#define IDM_POPUP 2201
#define IDB_TOOLBAR 100
#define IDB_FORMATBAR 101
#define IDI_WORDPAD 102
#define IDI_RTF 103
#define IDI_WRI 104
#define IDI_TXT 105
#define STRING_ALL_FILES 1400
#define STRING_TEXT_FILES_TXT 1401
#define STRING_TEXT_FILES_UNICODE_TXT 1402
#define STRING_RICHTEXT_FILES_RTF 1403
#define STRING_NEWFILE_RICHTEXT 1404
#define STRING_NEWFILE_TXT 1405
#define STRING_NEWFILE_TXT_UNICODE 1406
#define STRING_ALIGN_LEFT 1407
#define STRING_ALIGN_RIGHT 1408
#define STRING_ALIGN_CENTER 1409
#define STRING_PRINTER_FILES_PRN 1410
#define STRING_VIEWPROPS_TITLE 1411
#define STRING_VIEWPROPS_TEXT 1412
#define STRING_VIEWPROPS_RICHTEXT 1413
#define STRING_PREVIEW_PRINT 1414
#define STRING_PREVIEW_NEXTPAGE 1415
#define STRING_PREVIEW_PREVPAGE 1416
#define STRING_PREVIEW_CLOSE 1417
#define STRING_UNITS_CM 1418
#define STRING_DEFAULT_FILENAME 1700
#define STRING_PROMPT_SAVE_CHANGES 1701
#define STRING_SEARCH_FINISHED 1702
#define STRING_LOAD_RICHED_FAILED 1703
#define STRING_SAVE_LOSEFORMATTING 1704
#define STRING_INVALID_NUMBER 1705
#define STRING_OLE_STORAGE_NOT_SUPPORTED 1706
LPWSTR file_basename(LPWSTR);
void dialog_printsetup(HWND);
void dialog_print(HWND, LPWSTR);
void target_device(HWND, DWORD);
void print_quick(LPWSTR);
LRESULT preview_command(HWND, WPARAM, LPARAM);
void init_preview(HWND, LPWSTR);
void close_preview(HWND);
BOOL preview_isactive(void);
LRESULT print_preview(HWND);
void get_default_printer_opts(void);
void registry_set_pagemargins(HKEY);
void registry_read_pagemargins(HKEY);
int reg_formatindex(WPARAM);
void registry_read_filelist(HWND);
void registry_read_options(void);
void registry_read_formatopts_all(DWORD[], DWORD[]);
void registry_read_winrect(RECT*);
void registry_set_filelist(LPCWSTR, HWND);
void registry_set_formatopts_all(DWORD[]);
void registry_set_options(HWND);

View file

@ -12,6 +12,8 @@
<library>shell32</library>
<library>comctl32</library>
<compilationunit name="unit.c">
<file>print.c</file>
<file>registry.c</file>
<file>wordpad.c</file>
</compilationunit>
<file>rsrc.rc</file>