Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
72fdadbd
Commit
72fdadbd
authored
Aug 24, 2007
by
Alexander Nicolaysen Sørnes
Committed by
Alexandre Julliard
Sep 13, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wordpad: Add font list.
parent
3d61013e
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
132 additions
and
7 deletions
+132
-7
resource.h
programs/wordpad/resource.h
+6
-4
wordpad.c
programs/wordpad/wordpad.c
+126
-3
No files found.
programs/wordpad/resource.h
View file @
72fdadbd
...
...
@@ -79,11 +79,12 @@
#define BANDID_FORMATBAR 3
#define BANDID_RULER 0
#define BANDID_STATUSBAR 1
#define BANDID_FONTLIST 4
#define BANDID_PREVIEW_BTN1
4
#define BANDID_PREVIEW_BTN2
5
#define BANDID_PREVIEW_BTN3
6
#define BANDID_PREVIEW_BTN4
7
#define BANDID_PREVIEW_BTN1
5
#define BANDID_PREVIEW_BTN2
6
#define BANDID_PREVIEW_BTN3
7
#define BANDID_PREVIEW_BTN4
8
#define ID_WORDWRAP_NONE 0
#define ID_WORDWRAP_WINDOW 1
...
...
@@ -122,6 +123,7 @@
#define IDC_PARA_FIRST 2010
#define IDC_PARA_ALIGN 2011
#define IDC_TABSTOPS 2012
#define IDC_FONTLIST 2013
#define IDD_DATETIME 2100
#define IDD_NEWFILE 2101
...
...
programs/wordpad/wordpad.c
View file @
72fdadbd
...
...
@@ -570,6 +570,24 @@ static BOOL number_from_string(LPCWSTR string, float *num, BOOL units)
}
}
static
void
update_font_list
(
void
)
{
HWND
hReBar
=
GetDlgItem
(
hMainWnd
,
IDC_REBAR
);
HWND
hFontList
=
GetDlgItem
(
hReBar
,
IDC_FONTLIST
);
HWND
hFontListEdit
=
(
HWND
)
SendMessageW
(
hFontList
,
CBEM_GETEDITCONTROL
,
0
,
0
);
WCHAR
fontName
[
MAX_STRING_LEN
];
CHARFORMAT2W
fmt
;
ZeroMemory
(
&
fmt
,
sizeof
(
fmt
));
fmt
.
cbSize
=
sizeof
(
fmt
);
SendMessageW
(
hEditorWnd
,
EM_GETCHARFORMAT
,
SCF_SELECTION
,
(
LPARAM
)
&
fmt
);
SendMessageW
(
hFontListEdit
,
WM_GETTEXT
,
MAX_PATH
,
(
LPARAM
)
fontName
);
if
(
lstrcmpW
(
fontName
,
fmt
.
szFaceName
))
SendMessageW
(
hFontListEdit
,
WM_SETTEXT
,
0
,
(
LPARAM
)
fmt
.
szFaceName
);
}
static
void
clear_formatting
(
void
)
{
PARAFORMAT2
pf
;
...
...
@@ -606,6 +624,20 @@ static WPARAM fileformat_flags(int format)
return
flags
[
format
];
}
static
void
set_font
(
LPCWSTR
wszFaceName
)
{
CHARFORMAT2W
fmt
;
ZeroMemory
(
&
fmt
,
sizeof
(
fmt
));
fmt
.
cbSize
=
sizeof
(
fmt
);
fmt
.
dwMask
=
CFM_FACE
;
lstrcpyW
(
fmt
.
szFaceName
,
wszFaceName
);
SendMessageW
(
hEditorWnd
,
EM_SETCHARFORMAT
,
SCF_SELECTION
,
(
LPARAM
)
&
fmt
);
}
static
void
set_default_font
(
void
)
{
static
const
WCHAR
richTextFont
[]
=
{
'T'
,
'i'
,
'm'
,
'e'
,
's'
,
' '
,
'N'
,
'e'
,
'w'
,
' '
,
...
...
@@ -630,6 +662,60 @@ static void set_default_font(void)
SendMessageW
(
hEditorWnd
,
EM_SETCHARFORMAT
,
SCF_DEFAULT
,
(
LPARAM
)
&
fmt
);
}
static
void
add_font
(
LPWSTR
fontName
,
HWND
hListWnd
)
{
COMBOBOXEXITEMW
cbItem
;
WCHAR
buffer
[
MAX_PATH
];
cbItem
.
mask
=
CBEIF_TEXT
;
cbItem
.
pszText
=
buffer
;
cbItem
.
cchTextMax
=
MAX_STRING_LEN
;
cbItem
.
iItem
=
0
;
while
(
SendMessageW
(
hListWnd
,
CBEM_GETITEMW
,
0
,
(
LPARAM
)
&
cbItem
))
{
if
(
lstrcmpiW
(
cbItem
.
pszText
,
fontName
)
<=
0
)
cbItem
.
iItem
++
;
else
break
;
}
cbItem
.
pszText
=
fontName
;
SendMessageW
(
hListWnd
,
CBEM_INSERTITEMW
,
0
,
(
LPARAM
)
&
cbItem
);
}
int
CALLBACK
enum_font_proc
(
const
LOGFONTW
*
lpelfe
,
const
TEXTMETRICW
*
lpntme
,
DWORD
FontType
,
LPARAM
lParam
)
{
HWND
hListWnd
=
(
HWND
)
lParam
;
if
(
SendMessageW
(
hListWnd
,
CB_FINDSTRINGEXACT
,
-
1
,
(
LPARAM
)
lpelfe
->
lfFaceName
)
==
CB_ERR
)
{
add_font
((
LPWSTR
)
lpelfe
->
lfFaceName
,
hListWnd
);
}
return
1
;
}
static
void
populate_font_list
(
HWND
hListWnd
)
{
HDC
hdc
=
GetDC
(
hMainWnd
);
LOGFONTW
fontinfo
;
HWND
hListEditWnd
=
(
HWND
)
SendMessageW
(
hListWnd
,
CBEM_GETEDITCONTROL
,
0
,
0
);
CHARFORMAT2W
fmt
;
fontinfo
.
lfCharSet
=
DEFAULT_CHARSET
;
*
fontinfo
.
lfFaceName
=
'\0'
;
fontinfo
.
lfPitchAndFamily
=
0
;
EnumFontFamiliesExW
(
hdc
,
&
fontinfo
,
enum_font_proc
,
(
LPARAM
)
hListWnd
,
0
);
ZeroMemory
(
&
fmt
,
sizeof
(
fmt
));
fmt
.
cbSize
=
sizeof
(
fmt
);
SendMessageW
(
hEditorWnd
,
EM_GETCHARFORMAT
,
SCF_DEFAULT
,
(
LPARAM
)
&
fmt
);
SendMessageW
(
hListEditWnd
,
WM_SETTEXT
,
0
,
(
LPARAM
)
fmt
.
szFaceName
);
}
static
void
update_window
(
void
)
{
RECT
rect
;
...
...
@@ -666,7 +752,7 @@ static void set_toolbar_state(int bandId, BOOL show)
if
(
bandId
==
BANDID_TOOLBAR
)
{
REBARBANDINFOW
rbbinfo
;
int
index
=
SendMessageW
(
hwndReBar
,
RB_IDTOINDEX
,
BANDID_FO
RMATBAR
,
0
);
int
index
=
SendMessageW
(
hwndReBar
,
RB_IDTOINDEX
,
BANDID_FO
NTLIST
,
0
);
rbbinfo
.
cbSize
=
sizeof
(
rbbinfo
);
rbbinfo
.
fMask
=
RBBIM_STYLE
;
...
...
@@ -696,6 +782,7 @@ static void set_statusbar_state(BOOL show)
static
void
set_bar_states
(
void
)
{
set_toolbar_state
(
BANDID_TOOLBAR
,
is_bar_visible
(
BANDID_TOOLBAR
));
set_toolbar_state
(
BANDID_FONTLIST
,
is_bar_visible
(
BANDID_FORMATBAR
));
set_toolbar_state
(
BANDID_FORMATBAR
,
is_bar_visible
(
BANDID_FORMATBAR
));
set_statusbar_state
(
is_bar_visible
(
BANDID_STATUSBAR
));
...
...
@@ -849,6 +936,7 @@ static void DoOpenFile(LPCWSTR szOpenFileName)
lstrcpyW
(
wszFileName
,
szOpenFileName
);
SendMessageW
(
hEditorWnd
,
EM_SETMODIFY
,
FALSE
,
0
);
registry_set_filelist
(
szOpenFileName
);
update_font_list
();
}
static
void
DoSaveFile
(
LPCWSTR
wszSaveFileName
,
WPARAM
format
)
...
...
@@ -2136,7 +2224,7 @@ static int context_menu(LPARAM lParam)
static
LRESULT
OnCreate
(
HWND
hWnd
,
WPARAM
wParam
,
LPARAM
lParam
)
{
HWND
hToolBarWnd
,
hFormatBarWnd
,
hReBarWnd
;
HWND
hToolBarWnd
,
hFormatBarWnd
,
hReBarWnd
,
hFontListWnd
;
HINSTANCE
hInstance
=
(
HINSTANCE
)
GetWindowLongPtr
(
hWnd
,
GWLP_HINSTANCE
);
HANDLE
hDLL
;
TBADDBITMAP
ab
;
...
...
@@ -2198,6 +2286,16 @@ static LRESULT OnCreate( HWND hWnd, WPARAM wParam, LPARAM lParam)
SendMessageW
(
hReBarWnd
,
RB_INSERTBAND
,
-
1
,
(
LPARAM
)
&
rbb
);
hFontListWnd
=
CreateWindowExW
(
0
,
WC_COMBOBOXEXW
,
NULL
,
WS_BORDER
|
WS_VISIBLE
|
WS_CHILD
|
CBS_DROPDOWN
|
CBS_SORT
,
0
,
0
,
200
,
150
,
hReBarWnd
,
(
HMENU
)
IDC_FONTLIST
,
hInstance
,
NULL
);
rbb
.
hwndChild
=
hFontListWnd
;
rbb
.
cx
=
200
;
rbb
.
wID
=
BANDID_FONTLIST
;
SendMessageW
(
hReBarWnd
,
RB_INSERTBAND
,
-
1
,
(
LPARAM
)
&
rbb
);
hFormatBarWnd
=
CreateToolbarEx
(
hReBarWnd
,
CCS_NOPARENTALIGN
|
CCS_NOMOVEY
|
WS_VISIBLE
|
TBSTYLE_TOOLTIPS
|
TBSTYLE_BUTTON
,
IDC_FORMATBAR
,
7
,
hInstance
,
IDB_FORMATBAR
,
NULL
,
0
,
16
,
16
,
16
,
16
,
sizeof
(
TBBUTTON
));
...
...
@@ -2216,6 +2314,7 @@ static LRESULT OnCreate( HWND hWnd, WPARAM wParam, LPARAM lParam)
rbb
.
hwndChild
=
hFormatBarWnd
;
rbb
.
wID
=
BANDID_FORMATBAR
;
rbb
.
fStyle
^=
RBBS_BREAK
;
SendMessageW
(
hReBarWnd
,
RB_INSERTBAND
,
-
1
,
(
LPARAM
)
&
rbb
);
...
...
@@ -2243,6 +2342,7 @@ static LRESULT OnCreate( HWND hWnd, WPARAM wParam, LPARAM lParam)
set_default_font
();
populate_font_list
(
hFontListWnd
);
DoLoadStrings
();
SendMessageW
(
hEditorWnd
,
EM_SETMODIFY
,
FALSE
,
0
);
...
...
@@ -2311,7 +2411,26 @@ static LRESULT OnUser( HWND hWnd, WPARAM wParam, LPARAM lParam)
static
LRESULT
OnNotify
(
HWND
hWnd
,
WPARAM
wParam
,
LPARAM
lParam
)
{
HWND
hwndEditor
=
GetDlgItem
(
hWnd
,
IDC_EDITOR
);
HWND
hwndReBar
=
GetDlgItem
(
hWnd
,
IDC_REBAR
);
NMHDR
*
pHdr
=
(
NMHDR
*
)
lParam
;
HWND
hwndFontList
=
GetDlgItem
(
hwndReBar
,
IDC_FONTLIST
);
if
(
pHdr
->
hwndFrom
==
hwndFontList
)
{
if
(
pHdr
->
code
==
CBEN_ENDEDITW
)
{
CHARFORMAT2W
format
;
NMCBEENDEDIT
*
endEdit
=
(
NMCBEENDEDIT
*
)
lParam
;
ZeroMemory
(
&
format
,
sizeof
(
format
));
format
.
cbSize
=
sizeof
(
format
);
SendMessageW
(
hwndEditor
,
EM_GETCHARFORMAT
,
SCF_SELECTION
,
(
LPARAM
)
&
format
);
if
(
lstrcmpW
(
format
.
szFaceName
,
(
LPWSTR
)
endEdit
->
szText
))
set_font
((
LPCWSTR
)
endEdit
->
szText
);
}
return
0
;
}
if
(
pHdr
->
hwndFrom
!=
hwndEditor
)
return
0
;
...
...
@@ -2321,6 +2440,8 @@ static LRESULT OnNotify( HWND hWnd, WPARAM wParam, LPARAM lParam)
SELCHANGE
*
pSC
=
(
SELCHANGE
*
)
lParam
;
char
buf
[
128
];
update_font_list
();
sprintf
(
buf
,
"selection = %d..%d, line count=%ld"
,
pSC
->
chrg
.
cpMin
,
pSC
->
chrg
.
cpMax
,
SendMessage
(
hwndEditor
,
EM_GETLINECOUNT
,
0
,
0
));
...
...
@@ -2369,6 +2490,7 @@ static LRESULT OnCommand( HWND hWnd, WPARAM wParam, LPARAM lParam)
SendMessageW
(
hEditorWnd
,
EM_SETMODIFY
,
FALSE
,
0
);
set_fileformat
(
ret
);
update_font_list
();
}
}
}
...
...
@@ -2628,6 +2750,7 @@ static LRESULT OnCommand( HWND hWnd, WPARAM wParam, LPARAM lParam)
break
;
case
ID_TOGGLE_FORMATBAR
:
set_toolbar_state
(
BANDID_FONTLIST
,
!
is_bar_visible
(
BANDID_FORMATBAR
));
set_toolbar_state
(
BANDID_FORMATBAR
,
!
is_bar_visible
(
BANDID_FORMATBAR
));
update_window
();
break
;
...
...
@@ -2861,7 +2984,7 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lPara
int
CALLBACK
WinMain
(
HINSTANCE
hInstance
,
HINSTANCE
hOldInstance
,
LPSTR
szCmdParagraph
,
int
res
)
{
INITCOMMONCONTROLSEX
classes
=
{
8
,
ICC_BAR_CLASSES
|
ICC_COOL_CLASSES
};
INITCOMMONCONTROLSEX
classes
=
{
8
,
ICC_BAR_CLASSES
|
ICC_COOL_CLASSES
|
ICC_USEREX_CLASSES
};
HACCEL
hAccel
;
WNDCLASSW
wc
;
MSG
msg
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment