[PATCH 4/4] wordpad: Add list labelling menu.
Huw Davies
huw at codeweavers.com
Mon Oct 10 07:13:05 CDT 2016
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
programs/wordpad/wordpad.c | 38 +++++++++++++++++++++++++++++++-------
programs/wordpad/wordpad.h | 12 +++++++++---
programs/wordpad/wordpad.rc | 10 +++++++++-
3 files changed, 49 insertions(+), 11 deletions(-)
diff --git a/programs/wordpad/wordpad.c b/programs/wordpad/wordpad.c
index ea6e11d..dc3918e 100644
--- a/programs/wordpad/wordpad.c
+++ b/programs/wordpad/wordpad.c
@@ -79,6 +79,8 @@ static WCHAR units_inW[MAX_STRING_LEN];
static WCHAR units_inchW[MAX_STRING_LEN];
static WCHAR units_ptW[MAX_STRING_LEN];
+static int last_bullet = PFN_BULLET;
+
static LRESULT OnSize( HWND hWnd, WPARAM wParam, LPARAM lParam );
typedef enum
@@ -1886,7 +1888,7 @@ static LRESULT OnCreate( HWND hWnd )
AddButton(hFormatBarWnd, 5, ID_ALIGN_CENTER);
AddButton(hFormatBarWnd, 6, ID_ALIGN_RIGHT);
AddSeparator(hFormatBarWnd);
- AddButton(hFormatBarWnd, 7, ID_BULLET);
+ AddButton(hFormatBarWnd, 7, ID_BULLETONOFF);
SendMessageW(hFormatBarWnd, TB_AUTOSIZE, 0, 0);
@@ -1994,7 +1996,7 @@ static LRESULT OnUser( HWND hWnd )
SendMessageW(hwndFormatBar, TB_CHECKBUTTON, ID_ALIGN_CENTER, (pf.wAlignment == PFA_CENTER));
SendMessageW(hwndFormatBar, TB_CHECKBUTTON, ID_ALIGN_RIGHT, (pf.wAlignment == PFA_RIGHT));
- SendMessageW(hwndFormatBar, TB_CHECKBUTTON, ID_BULLET, (pf.wNumbering & PFN_BULLET));
+ SendMessageW(hwndFormatBar, TB_CHECKBUTTON, ID_BULLETONOFF, pf.wNumbering ? TRUE : FALSE);
return 0;
}
@@ -2351,30 +2353,45 @@ static LRESULT OnCommand( HWND hWnd, WPARAM wParam, LPARAM lParam)
SendMessageW(hwndEditor, EM_REDO, 0, 0);
return 0;
+ case ID_BULLETONOFF:
case ID_BULLET:
+ case ID_NUMBERING:
+ case ID_LCLETTER:
+ case ID_UCLETTER:
+ case ID_LCROMAN:
+ case ID_UCROMAN:
{
PARAFORMAT2 pf;
-
+ WORD new_number = LOWORD(wParam) - ID_BULLET + PFN_BULLET;
pf.cbSize = sizeof(pf);
pf.dwMask = PFM_NUMBERING;
SendMessageW(hwndEditor, EM_GETPARAFORMAT, 0, (LPARAM)&pf);
- pf.dwMask = PFM_NUMBERING | PFM_NUMBERINGSTART | PFM_NUMBERINGTAB | PFM_OFFSET | PFM_OFFSETINDENT;
+ pf.dwMask = PFM_NUMBERING | PFM_NUMBERINGSTART | PFM_NUMBERINGSTYLE | PFM_NUMBERINGTAB | PFM_OFFSET | PFM_OFFSETINDENT;
- if(pf.wNumbering == PFN_BULLET)
+ if(pf.wNumbering && ((pf.wNumbering == new_number) || (LOWORD(wParam) == ID_BULLETONOFF)))
{
pf.wNumbering = 0;
pf.wNumberingStart = 0;
+ pf.wNumberingStyle = 0;
pf.wNumberingTab = 0;
pf.dxOffset = 0;
pf.dxStartIndent = -360;
} else
{
- pf.wNumbering = PFN_BULLET;
+ pf.dxStartIndent = pf.wNumbering ? 0 : 360;
+
+ if (LOWORD(wParam) == ID_BULLETONOFF)
+ pf.wNumbering = last_bullet;
+ else
+ {
+ pf.wNumbering = new_number;
+ last_bullet = pf.wNumbering;
+ }
pf.wNumberingStart = 1;
+ pf.wNumberingStyle = PFNS_PERIOD;
pf.wNumberingTab = 360;
pf.dxOffset = 360;
- pf.dxStartIndent = 360;
}
SendMessageW(hwndEditor, EM_SETPARAFORMAT, 0, (LPARAM)&pf);
@@ -2502,7 +2519,14 @@ static LRESULT OnInitPopupMenu( HWND hWnd, WPARAM wParam )
CheckMenuItem(hMenu, ID_ALIGN_LEFT, (nAlignment == PFA_LEFT) ? MF_CHECKED : MF_UNCHECKED);
CheckMenuItem(hMenu, ID_ALIGN_CENTER, (nAlignment == PFA_CENTER) ? MF_CHECKED : MF_UNCHECKED);
CheckMenuItem(hMenu, ID_ALIGN_RIGHT, (nAlignment == PFA_RIGHT) ? MF_CHECKED : MF_UNCHECKED);
+
CheckMenuItem(hMenu, ID_BULLET, ((pf.wNumbering == PFN_BULLET) ? MF_CHECKED : MF_UNCHECKED));
+ CheckMenuItem(hMenu, ID_NUMBERING, ((pf.wNumbering == PFN_ARABIC) ? MF_CHECKED : MF_UNCHECKED));
+ CheckMenuItem(hMenu, ID_LCLETTER, ((pf.wNumbering == PFN_LCLETTER) ? MF_CHECKED : MF_UNCHECKED));
+ CheckMenuItem(hMenu, ID_UCLETTER, ((pf.wNumbering == PFN_UCLETTER) ? MF_CHECKED : MF_UNCHECKED));
+ CheckMenuItem(hMenu, ID_LCROMAN, ((pf.wNumbering == PFN_LCROMAN) ? MF_CHECKED : MF_UNCHECKED));
+ CheckMenuItem(hMenu, ID_UCROMAN, ((pf.wNumbering == PFN_UCROMAN) ? MF_CHECKED : MF_UNCHECKED));
+
EnableMenuItem(hMenu, ID_EDIT_UNDO, SendMessageW(hwndEditor, EM_CANUNDO, 0, 0) ?
MF_ENABLED : MF_GRAYED);
EnableMenuItem(hMenu, ID_EDIT_REDO, SendMessageW(hwndEditor, EM_CANREDO, 0, 0) ?
diff --git a/programs/wordpad/wordpad.h b/programs/wordpad/wordpad.h
index 0cde557..901b19c 100644
--- a/programs/wordpad/wordpad.h
+++ b/programs/wordpad/wordpad.h
@@ -73,9 +73,15 @@
#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_BULLETONOFF 1314
+#define ID_BULLET 1315
+#define ID_NUMBERING 1316
+#define ID_LCLETTER 1317
+#define ID_UCLETTER 1318
+#define ID_LCROMAN 1319
+#define ID_UCROMAN 1320
+
+#define ID_FONTSETTINGS 1330
#define ID_FORMAT_BOLD 1400
#define ID_FORMAT_ITALIC 1401
diff --git a/programs/wordpad/wordpad.rc b/programs/wordpad/wordpad.rc
index ff4f823..147beea 100644
--- a/programs/wordpad/wordpad.rc
+++ b/programs/wordpad/wordpad.rc
@@ -81,7 +81,15 @@ BEGIN
POPUP "F&ormat"
BEGIN
MENUITEM "&Font...", ID_FONTSETTINGS
- MENUITEM "&Bullet points" ID_BULLET
+ POPUP "&Lists"
+ BEGIN
+ MENUITEM "&Bullet points" ID_BULLET
+ MENUITEM "Numbers" ID_NUMBERING
+ MENUITEM "Letters - lower case" ID_LCLETTER
+ MENUITEM "Letters - upper case" ID_UCLETTER
+ MENUITEM "Roman numerals - lower case" ID_LCROMAN
+ MENUITEM "Roman numerals - upper case" ID_UCROMAN
+ END
MENUITEM "&Paragraph..." ID_PARAFORMAT
MENUITEM "&Tabs..." ID_TABSTOPS
POPUP "Backgroun&d"
--
2.8.2
More information about the wine-patches
mailing list