1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
#include "stdafx.h"
MyColourID colors[] =
{
{0, {MODULETITLE, "Incoming Messages", MODULENAME, "ColorMsgIn", 0, RGB(0xff, 0xff, 0xff), 0}},
{0, {MODULETITLE, "Outgoing Messages", MODULENAME, "ColorMsgOut", 0, RGB(0xff, 0xff, 0xff), 1}},
{0, {MODULETITLE, "Incoming Files", MODULENAME, "ColorFileIn", 0, RGB(0xff, 0xff, 0xff), 2}},
{0, {MODULETITLE, "Outgoing Files", MODULENAME, "ColorFileOut", 0, RGB(0xff, 0xff, 0xff), 3}},
{0, {MODULETITLE, "Incoming URLs", MODULENAME, "ColorURLIn", 0, RGB(0xff, 0xff, 0xff), 4}},
{0, {MODULETITLE, "Outgoing URLs", MODULENAME, "ColorURLOut", 0, RGB(0xff, 0xff, 0xff), 5}},
{0, {MODULETITLE, "Status changes", MODULENAME, "ColorStatus", 0, RGB(0xff, 0xff, 0xff), 6}},
{0, {MODULETITLE, "Other Outgoing Events", MODULENAME, "ColorOut", 0, RGB(0xff, 0xff, 0xff), 7}},
{0, {MODULETITLE, "Other Incoming Events", MODULENAME, "ColorIn", 0, RGB(0xff, 0xff, 0xff), 8}},
{0, {MODULETITLE, "Selected Items", MODULENAME, "ColorSel", 0, RGB(0x60, 0x60, 0x60), 9}},
{0, {MODULETITLE, "Selected Items (Text)", MODULENAME, "ColorSelTxt", 0, RGB(0xff, 0xff, 0xff), 10}}
};
MyFontID fonts[] =
{
{0, 0, 0, {MODULETITLE, "Incoming Messages", MODULENAME, "FontMsgIn", 0, {0}, 0}},
{0, 0, 0, {MODULETITLE, "Outgoing Messages", MODULENAME, "FontMsgOut", 0, {0}, 1}},
{0, 0, 0, {MODULETITLE, "Incoming Files", MODULENAME, "FontFileIn", 0, {0}, 2}},
{0, 0, 0, {MODULETITLE, "Outgoing Files", MODULENAME, "FontFileOut", 0, {0}, 3}},
{0, 0, 0, {MODULETITLE, "Incoming URLs", MODULENAME, "FontURLIn", 0, {0}, 4}},
{0, 0, 0, {MODULETITLE, "Outgoing URLs", MODULENAME, "FontURLOut", 0, {0}, 5}},
{0, 0, 0, {MODULETITLE, "Status changes", MODULENAME, "FontStatus", 0, {0}, 6}},
{0, 0, 0, {MODULETITLE, "Other Outgoing Events", MODULENAME, "FontOut", 0, {0}, 7}},
{0, 0, 0, {MODULETITLE, "Other Incoming Events", MODULENAME, "FontIn", 0, {0}, 8}}
// {sizeof(FontID), MODULETITLE, "Default Text", MODULENAME, "FontDef", FIDF_SAVEPOINTSIZE, {0}, 0},
// {sizeof(FontID), MODULETITLE, "Selected Item", MODULENAME, "FontSel", FIDF_SAVEPOINTSIZE, {0}, 1}
};
int evtFontsChanged(WPARAM, LPARAM)
{
int i;
for (i = 0; i < COLOR_COUNT; i++)
colors[i].cl = Colour_Get(colors[i].info.group, colors[i].info.name);
for (i = 0; i < FONT_COUNT; i++) {
fonts[i].cl = (COLORREF)Font_Get(fonts[i].info, fonts[i].lf);
DeleteObject(fonts[i].hfnt);
fonts[i].hfnt = CreateFontIndirectA(fonts[i].lf);
}
// WindowList_Broadcast(hNewstoryWindows, UM_REDRAWLISTH, 0, 0);
return 0;
}
void InitFonts()
{
bool isFSInstalled = /*ServiceExists(MS_FONT_GET) ? */true/* : false*/;
int i; // damn msvc can't handle for(int i...) correctly! =(
HookEvent(ME_FONT_RELOAD, evtFontsChanged);
HookEvent(ME_COLOUR_RELOAD, evtFontsChanged);
if (isFSInstalled)
{
for (i = 0; i < COLOR_COUNT; i++)
{
g_plugin.addColor(&colors[i].info);
colors[i].cl = Colour_Get(colors[i].info.group, colors[i].info.name);
}
for (i = 0; i < FONT_COUNT; i++)
{
//CallService(MS_FONT_REGISTER, (WPARAM)&fonts[i].info, 0);
g_plugin.addFont(&fonts[i].info);
fonts[i].lf = (LOGFONTA *)malloc(sizeof(LOGFONTA));
fonts[i].cl = (COLORREF)Font_Get(fonts[i].info, fonts[i].lf);
fonts[i].hfnt = CreateFontIndirectA(fonts[i].lf);
//MessageBox(0, fonts[i].lf->lfFaceName, _T(""), MB_OK);
}
} else
{
LOGFONTA lfText = {0};
lfText.lfHeight = -11;
lfText.lfWidth = lfText.lfEscapement = lfText.lfOrientation = 0;
lfText.lfItalic = lfText.lfUnderline = lfText.lfStrikeOut = FALSE;
lfText.lfCharSet = DEFAULT_CHARSET;
lfText.lfOutPrecision = OUT_DEFAULT_PRECIS;
lfText.lfClipPrecision = CLIP_DEFAULT_PRECIS;
lfText.lfQuality = DEFAULT_QUALITY;
lfText.lfPitchAndFamily = DEFAULT_PITCH | FF_SWISS;
lstrcpyA(lfText.lfFaceName, "MS Shell Dlg");
lfText.lfWeight = FW_REGULAR;
for (i = 0; i < COLOR_COUNT; i++)
{
colors[i].cl = colors[i].info.defcolour;
}
for (i = 0; i < FONT_COUNT; i++)
{
fonts[i].lf = (LOGFONTA *)malloc(sizeof(LOGFONTA));
*fonts[i].lf = lfText;
fonts[i].cl = RGB(0,0,0);
fonts[i].hfnt = CreateFontIndirectA(fonts[i].lf);
}
}
}
void DestroyFonts()
{
int i;
for (i = 0; i < FONT_COUNT; i++)
{
DeleteObject(fonts[i].hfnt);
free(fonts[i].lf);
}
}
|