void MCFontlist::getfontstyles(const char *fname, uint2 fsize, MCExecPoint &ep) { ep.clear(); if (MCnoui) return; ep.setstaticcstring("plain\nbold\nitalic\nbold-italic"); #ifdef FOR_TRUE_TYPE_ONLY epptr = &ep; nfonts = 0; char mappedName[LF_FACESIZE]; mapfacename(mappedName, fname); MCScreenDC *pms = (MCScreenDC *)MCscreen; HDC hdc = pms->getmemsrchdc(); EnumFontFamiliesA(hdc, mappedName, (FONTENUMPROC)MyFontFamProc, FQ_STYLES); ep.lower(); #endif }
Exec_stat MCDispatch::getprop(uint4 parid, Properties which, MCExecPoint &ep, Boolean effective) { switch (which) { #ifdef /* MCDispatch::getprop */ LEGACY_EXEC case P_BACK_PIXEL: ep.setint(MCscreen->background_pixel.pixel & 0xFFFFFF); return ES_NORMAL; case P_TOP_PIXEL: ep.setint(MCscreen->white_pixel.pixel & 0xFFFFFF); return ES_NORMAL; case P_HILITE_PIXEL: case P_FORE_PIXEL: case P_BORDER_PIXEL: case P_BOTTOM_PIXEL: case P_SHADOW_PIXEL: case P_FOCUS_PIXEL: ep.setint(MCscreen->black_pixel.pixel & 0xFFFFFF); return ES_NORMAL; case P_BACK_COLOR: case P_HILITE_COLOR: ep.setstaticcstring("white"); return ES_NORMAL; case P_FORE_COLOR: case P_BORDER_COLOR: case P_TOP_COLOR: case P_BOTTOM_COLOR: case P_SHADOW_COLOR: case P_FOCUS_COLOR: ep.setstaticcstring("black"); return ES_NORMAL; case P_FORE_PATTERN: case P_BACK_PATTERN: case P_HILITE_PATTERN: case P_BORDER_PATTERN: case P_TOP_PATTERN: case P_BOTTOM_PATTERN: case P_SHADOW_PATTERN: case P_FOCUS_PATTERN: ep.clear(); return ES_NORMAL; case P_TEXT_ALIGN: ep.setstaticcstring(MCleftstring); return ES_NORMAL; case P_TEXT_FONT: ep.setstaticcstring(DEFAULT_TEXT_FONT); return ES_NORMAL; case P_TEXT_HEIGHT: ep.setint(heightfromsize(DEFAULT_TEXT_SIZE)); return ES_NORMAL; case P_TEXT_SIZE: ep.setint(DEFAULT_TEXT_SIZE); return ES_NORMAL; case P_TEXT_STYLE: ep.setstaticcstring(MCplainstring); return ES_NORMAL; #endif /* MCDispatch::getprop */ default: MCeerror->add(EE_OBJECT_GETNOPROP, 0, 0); return ES_ERROR; } }
Exec_stat MCF_unparsetextatts(Properties which, MCExecPoint &ep, uint4 flags, const char *name, uint2 height, uint2 size, uint2 style) { switch (which) { case P_TEXT_ALIGN: switch (flags & F_ALIGNMENT) { case F_ALIGN_LEFT: ep.setstaticcstring(MCleftstring); break; case F_ALIGN_CENTER: ep.setstaticcstring(MCcenterstring); break; case F_ALIGN_RIGHT: ep.setstaticcstring(MCrightstring); break; case F_ALIGN_JUSTIFY: ep.setstaticcstring(MCjustifystring); break; } break; case P_TEXT_FONT: ep.setsvalue(name); break; case P_TEXT_HEIGHT: ep.setint(height); break; case P_TEXT_SIZE: ep.setint(size); break; case P_TEXT_STYLE: { if (style == FA_DEFAULT_STYLE) { ep.setstaticcstring(MCplainstring); return ES_NORMAL; } uint32_t j; j = 0; ep.clear(); if (MCF_getweightint(style) != MCFW_MEDIUM) ep.concatcstring(MCF_getweightstring(style), EC_COMMA, j++ == 0); if (style & FA_ITALIC || style & FA_OBLIQUE) ep.concatcstring(MCF_getslantlongstring(style), EC_COMMA, j++ == 0); if (style & FA_BOX) ep.concatcstring(MCboxstring, EC_COMMA, j++ == 0); if (style & FA_3D_BOX) ep.concatcstring(MCthreedboxstring, EC_COMMA, j++ == 0); if (style & FA_UNDERLINE) ep.concatcstring(MCunderlinestring, EC_COMMA, j++ == 0); if (style & FA_STRIKEOUT) ep.concatcstring(MCstrikeoutstring, EC_COMMA, j++ == 0); if (style & FA_LINK) ep.concatcstring(MClinkstring, EC_COMMA, j++ == 0); if (MCF_getexpandint(style) != FE_NORMAL) ep.concatcstring(MCF_getexpandstring(style), EC_COMMA, j++ == 0); } break; default: break; } return ES_NORMAL; }
Exec_stat MCAudioClip::getprop(uint4 parid, Properties which, MCExecPoint &ep, Boolean effective) { switch (which) { #ifdef /* MCAudioClip::getprop */ LEGACY_EXEC case P_SIZE: ep.setint(size); break; case P_PLAY_DESTINATION: case P_PLAY_LOUDNESS: if (this == MCtemplateaudio) { extern bool MCSystemGetPlayLoudness(uint2& r_loudness); #ifdef _MOBILE if (MCSystemGetPlayLoudness(loudness)) #else if (false) #endif ; else if (!supported) loudness = 0; else { #if defined _WINDOWS if (hwaveout == NULL) { WAVEFORMATEX pwfx; pwfx.wFormatTag = WAVE_FORMAT_PCM; pwfx.nChannels = 1; pwfx.nSamplesPerSec = 22050; pwfx.nAvgBytesPerSec = 22050; pwfx.nBlockAlign = 1; pwfx.wBitsPerSample = 8; pwfx.cbSize = 0; if (waveOutOpen(&hwaveout, WAVE_MAPPER, &pwfx, 0, 0, CALLBACK_NULL | WAVE_ALLOWSYNC) == MMSYSERR_NOERROR) { DWORD v; waveOutGetVolume(hwaveout, &v); loudness = MCU_min((uint2)((v & 0xFFFF) * 100 / 0xFFFF) + 1, 100); waveOutClose(hwaveout); hwaveout = NULL; } } #elif defined _MACOSX long volume; GetDefaultOutputVolume(&volume); loudness = (HiWord(volume) + LoWord(volume)) * 50 / 255; #elif defined TARGET_PLATFORM_LINUX if ( x11audio != NULL) loudness = x11audio -> getloudness(); #endif } } if (which == P_PLAY_DESTINATION) { if (flags & F_EXTERNAL) ep.setstaticcstring("external"); else ep.setstaticcstring("internal"); } else ep.setint(loudness); break; #endif /* MCAudioClip::getprop */ default: return MCObject::getprop(parid, which, ep, effective); } return ES_NORMAL; }