예제 #1
0
static int sttRegisterFontWorker(FontIDW* font_id, int hLangpack)
{
	if (font_id->cbSize != sizeof(FontIDW) && font_id->cbSize != FontIDW_OLDSIZE)
		return -1;

	for (int i=0; i < font_id_list.getCount(); i++) {
		FontInternal& F = font_id_list[i];
		if (!mir_tstrcmp(F.group, font_id->group) && !mir_tstrcmp(F.name, font_id->name) && !(F.flags & FIDF_ALLOWREREGISTER))
			return 1;
	}

	char idstr[256];
	mir_snprintf(idstr, SIZEOF(idstr), "%sFlags", font_id->prefix);
	db_set_dw(0, font_id->dbSettingsGroup, idstr, font_id->flags);

	FontInternal* newItem = new FontInternal;
	memset(newItem, 0, sizeof(FontInternal));
	memcpy(newItem, font_id, font_id->cbSize);
	newItem->hLangpack = hLangpack;

	if (!mir_tstrcmp(newItem->deffontsettings.szFace, _T("MS Shell Dlg"))) {
		LOGFONT lf;
		SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &lf, FALSE);
		mir_tstrncpy(newItem->deffontsettings.szFace, lf.lfFaceName, SIZEOF(newItem->deffontsettings.szFace));
		if (!newItem->deffontsettings.size)
			newItem->deffontsettings.size = lf.lfHeight;
	}

	UpdateFontSettings(font_id, &newItem->value);
	font_id_list.insert(newItem);
	return 0;
}
예제 #2
0
void CConfig::SaveFontSettings(int iFont)
{
	if(iFont > FONT_SETTINGS -1 || iFont < 0)
		return;

	char szSetting[128];

	// Height
	sprintf(szSetting,"Font%dHeight",iFont);
	DBWriteContactSettingByte(NULL, "MirandaG15", szSetting, m_logfont[iFont].lfHeight);
	// Style
	int style = 0;
	if(m_logfont[iFont].lfWeight == FW_BOLD)
		style |= FONTF_BOLD;
	if(m_logfont[iFont].lfItalic)
		style |= FONTF_ITALIC;
	sprintf(szSetting,"Font%dStyle",iFont);
	DBWriteContactSettingByte(NULL, "MirandaG15", szSetting, style);
	// Charset
	sprintf(szSetting,"Font%dCharset",iFont);
	DBWriteContactSettingByte(NULL, "MirandaG15", szSetting, m_logfont[iFont].lfCharSet);
	// Name
	sprintf(szSetting,"Font%dName",iFont);
	DBWriteContactSettingTString(NULL, "MirandaG15", szSetting, m_logfont[iFont].lfFaceName);
	
	UpdateFontSettings(iFont);
}
예제 #3
0
void CConfig::LoadFontSettings(int iFont)
{
	if(iFont > FONT_SETTINGS -1 || iFont < 0)
		return;

	char szSetting[128];
	
	// Fixed Values
	m_logfont[iFont].lfOutPrecision = OUT_DEFAULT_PRECIS;
	m_logfont[iFont].lfClipPrecision = CLIP_DEFAULT_PRECIS;
	m_logfont[iFont].lfQuality = DEFAULT_QUALITY;
	m_logfont[iFont].lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
	// Height
	sprintf(szSetting,"Font%dHeight",iFont);
	m_logfont[iFont].lfHeight = (char) DBGetContactSettingByte(NULL, "MirandaG15", szSetting, -MulDiv(6, 96, 72));
	// Style
	sprintf(szSetting,"Font%dStyle",iFont);
	int style = DBGetContactSettingByte(NULL, "MirandaG15", szSetting, 0);
	m_logfont[iFont].lfWeight = style & FONTF_BOLD ? FW_BOLD : FW_NORMAL;
    m_logfont[iFont].lfItalic = style & FONTF_ITALIC ? 1 : 0;
	// Charset
	sprintf(szSetting,"Font%dCharset",iFont);
	m_logfont[iFont].lfCharSet = DBGetContactSettingByte(NULL, "MirandaG15", szSetting, DEFAULT_CHARSET);
	// Name
	sprintf(szSetting,"Font%dName",iFont);
	DBVARIANT dbv;
	if (DBGetContactSettingTString(NULL, "MirandaG15", szSetting, &dbv))
        lstrcpy(m_logfont[iFont].lfFaceName,_T("Small Fonts"));
    else {
		lstrcpy(m_logfont[iFont].lfFaceName, dbv.ptszVal);
       DBFreeVariant(&dbv);
    }

	UpdateFontSettings(iFont);
}
예제 #4
0
void CConfig::SaveFontSettings(int iFont)
{
	if(iFont > FONT_SETTINGS -1 || iFont < 0)
		return;

	char szSetting[128];

	// Height
	mir_snprintf(szSetting,SIZEOF(szSetting),"Font%dHeight",iFont);
	db_set_b(NULL, "MirandaG15", szSetting, m_logfont[iFont].lfHeight);
	// Style
	int style = 0;
	if(m_logfont[iFont].lfWeight == FW_BOLD)
		style |= FONTF_BOLD;
	if(m_logfont[iFont].lfItalic)
		style |= FONTF_ITALIC;
	mir_snprintf(szSetting,SIZEOF(szSetting),"Font%dStyle",iFont);
	db_set_b(NULL, "MirandaG15", szSetting, style);
	// Charset
	mir_snprintf(szSetting,SIZEOF(szSetting),"Font%dCharset",iFont);
	db_set_b(NULL, "MirandaG15", szSetting, m_logfont[iFont].lfCharSet);
	// Name
	mir_snprintf(szSetting,SIZEOF(szSetting),"Font%dName",iFont);
	db_set_ts(NULL, "MirandaG15", szSetting, m_logfont[iFont].lfFaceName);
	
	UpdateFontSettings(iFont);
}