status initialiseTextItem(TextItem ti, Name name, Any val, Code msg) { CharArray str; if ( isDefault(name) ) name = getClassNameObject(ti); if ( isDefault(val) ) val = NAME_; createDialogItem(ti, name); assign(ti, message, msg); assign(ti, value_set, DEFAULT); assign(ti, value_width, DEFAULT); assign(ti, print_name, CtoString("")); assign(ti, advance, NAME_next); assign(ti, show_label, ON); assign(ti, value_text, newObject(ClassText, EAV)); assign(ti, editable, ON); assign(ti, default_value, val); assign(ti, selection, getDefaultTextItem(ti)); assign(ti, type, getSelectionTypeTextItem(ti)); assign(ti, auto_value_align, OFF); assign(ti, hor_stretch, toInt(100)); assign(ti, style, NAME_normal); if ( (str = get(ti, NAME_printNameOfValue, val, EAV)) ) valueString(ti->print_name, str); resetTextItem(ti); return requestComputeGraphical(ti, DEFAULT); }
static Any get_clipboard_data(DisplayObj d, Name type) { HGLOBAL mem; HENHMETAFILE hmf; Any rval = FAIL; OpenClipboard(CLIPBOARDWIN); if ( type != NAME_winMetafile && (mem = GetClipboardData(CF_UNICODETEXT)) ) { wchar_t *data = GlobalLock(mem); wchar_t *copy, *q; q = copy = pceMalloc((wcslen(data)+1)*sizeof(wchar_t)); for(; *data; data++) { if ( *data == '\r' && data[1] == '\n' ) { data++; *q++ = '\n'; } else *q++ = *data; } *q = EOS; rval = WCToString(copy, q-copy); pceFree(copy); GlobalUnlock(mem); } else if ( type != NAME_winMetafile && (mem = GetClipboardData(CF_TEXT)) ) { char far *data = GlobalLock(mem); char *copy, *q; q = copy = pceMalloc(strlen(data)); for(; *data; data++) { if ( *data == '\r' && data[1] == '\n' ) { data++; *q++ = '\n'; } else *q++ = *data; } *q = EOS; rval = CtoString(copy); pceFree(copy); GlobalUnlock(mem); } else if ( type != NAME_text && (hmf = GetClipboardData(CF_ENHMETAFILE)) ) { HENHMETAFILE copy = CopyEnhMetaFile(hmf, NULL); if ( !copy ) { errorPce(d, NAME_winMetafile, CtoName("CopyEnhMetaFile"), APIError()); fail; } rval = CtoWinMetafile(copy); DeleteEnhMetaFile(hmf); } CloseClipboard(); return rval; }