NAMESPACE_UPP #ifdef PLATFORM_WIN32 String GetEnv(const char *id) { return WString(_wgetenv(WString(id))).ToString(); }
Size FileList::GetStdSize(const Value& q) const { const File& m = ValueTo<File>(q); FontInfo fi = m.font.Info(); int cx = GetTextSize(fi, WString(m.name)) + 2 + iconwidth + 2 + 3; if(!IsNull(m.desc)) cx += GetTextSize(m.descfont.Info(), WString(m.desc)) + fi.GetHeight(); return Size(cx, GetItemHeight()); }
WString WChart2DImplementation::categoryLabel(int u, Axis axis) const { if (chart_->XSeriesColumn() != -1) { if (u < chart_->model()->rowCount()) return chart_->model()->displayData(u, chart_->XSeriesColumn()); else return WString(); } else { return WString(); } }
WValidator::Result WSpinBox::validateRange() const { WIntValidator validator; validator.setRange(min_, max_); std::string badRangeText = WString::tr("Wt.WIntValidator.BadRange").toUTF8(); Wt::Utils::replace(badRangeText, "{1}", "{1}" + suffix().toUTF8()); Wt::Utils::replace(badRangeText, "{2}", "{2}" + suffix().toUTF8()); validator.setInvalidTooLargeText(WString(badRangeText)); validator.setInvalidTooSmallText(WString(badRangeText)); return validator.validate(WString("{1}").arg(value_)); }
void initModeNames(void) { int i; for (i = 0 ; i < CANNA_MODE_MAX_IMAGINARY_MODE ; i++) { ModeNames[i].alloc = 0; ModeNames[i].name = _ModeNames[i] = _sModeNames[i] ? WString(_sModeNames[i]) : 0; } if (!bad) { bad = WString("\245\341\245\342\245\352\244\254\302\255\244\352\244\336" "\244\273\244\363"); /* ¥á¥â¥ê¤¬Â¤ê¤Þ¤»¤ó */ } }
void WTreeNode::update() { bool isLast = isLastChildNode(); if (!visible_) { layout_->bindString("selected", "Wt-root"); childContainer()->addStyleClass("Wt-root"); } else { if (tree()) { const WTree::WTreeNodeSet &s = tree()->selectedNodes(); if (s.find(this) != s.end()) layout_->bindString("selected", WApplication::instance()->theme()->activeClass()); else layout_->bindEmpty("selected"); } else layout_->bindEmpty("selected"); childContainer()->removeStyleClass("Wt-root"); } WTreeNode *parent = parentNode(); if (parent && !parent->childrenDecorated_) { // FIXME } if (expandIcon_->state() != (isExpanded() ? 1 : 0)) expandIcon_->setState(isExpanded() ? 1 : 0); if (childContainer()->isHidden() != !isExpanded()) childContainer()->setHidden(!isExpanded()); if (labelIcon_ && (labelIcon_->state() != (isExpanded() ? 1 : 0))) labelIcon_->setState(isExpanded() ? 1 : 0); toggleStyleClass("Wt-trunk", !isLast); layout_->bindString("trunk-class", isLast ? "Wt-end" : "Wt-trunk"); if (!parentNode() || parentNode()->isExpanded()) { if (childCountPolicy_ == Enabled && !populated_) doPopulate(); if (!expandable()) { if (noExpandIcon_->parent() == 0) { layout_->takeWidget("expand"); layout_->bindWidget("expand", noExpandIcon_); } } else { if (expandIcon_->parent() == 0) { layout_->takeWidget("expand"); layout_->bindWidget("expand", expandIcon_); } } } if (childCountPolicy_ != Disabled && populated_ && childCountLabel_) { int n = displayedChildCount(); if (n) childCountLabel_->setText (WString::fromUTF8("(" + boost::lexical_cast<std::string>(n) + ")")); else childCountLabel_->setText(WString()); } }
WString WKeyEvent::text() const { int c = charCode(); if (c != 0) { char buf[10]; // 4 is enough char *ptr = buf; try { rapidxml::xml_document<>::insert_coded_character<0>(ptr, charCode()); } catch (rapidxml::parse_error& e) { LOG_ERROR("charcode: " << e.what()); return WString(); } return WString::fromUTF8(std::string(buf, ptr)); } else return WString(); }
/** Gets a file list from data. Caller must ensure that the data actually contains a file list. */ Vector<Path>* Win32DropTarget::getFileListFromData(IDataObject* data) { FORMATETC fmtetc = { CF_HDROP, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; STGMEDIUM stgmed; Vector<Path>* files = bs_new<Vector<Path>>(); if(data->GetData(&fmtetc, &stgmed) == S_OK) { PVOID data = GlobalLock(stgmed.hGlobal); HDROP hDrop = (HDROP)data; UINT numFiles = DragQueryFileW(hDrop, 0xFFFFFFFF, nullptr, 0); files->resize(numFiles); for(UINT i = 0; i < numFiles; i++) { UINT numChars = DragQueryFileW(hDrop, i, nullptr, 0) + 1; wchar_t* buffer = (wchar_t*)bs_alloc((UINT32)numChars * sizeof(wchar_t)); DragQueryFileW(hDrop, i, buffer, numChars); (*files)[i] = UTF8::fromWide(WString(buffer)); bs_free(buffer); } GlobalUnlock(stgmed.hGlobal); ReleaseStgMedium(&stgmed); } return files; }
void DropGrid::Paint0(Draw &w, int lm, int rm, int x, int y, int cx, int cy, const Value &val, dword style, Color &fg, Color &bg, Font &fnt, bool found, int fs, int fe) { real_size.Clear(); w.DrawRect(x, y, cx, cy, bg); int nx = x + lm; int ny = y + tm; int ncx = cx - lm - rm; if(IsType< Vector<String> >(val)) { const Vector<String> &v = ValueTo< Vector<String> >(val); const char * SPACE = " "; int tcx = 0; int scx = GetTextSize(SPACE, fnt).cx; int cnt = v.GetCount(); Size isz = GridImg::Dots2().GetSize(); for(int i = 0; i < cnt; i++) { bool iscol = (i + 1) & 1; if(!display_columns && iscol) continue; fnt.Bold(iscol); Size tsz = GetTextSize(v[i], fnt); DrawText(w, nx, x + lm + tcx, ny, tcx + tsz.cx > ncx - isz.cx ? ncx - tcx: tsz.cx + isz.cx, cy, GD::VCENTER, WString(v[i]), fnt, fg, bg, found, fs, fe, false); tcx += tsz.cx + scx; } } else DrawText(w, nx, nx, ny, ncx, cy, GD::VCENTER, GetStdConvertedValue(val), fnt, fg, bg, found, fs, fe, false); }
Ptr<workflow::WfClassDeclaration> Workflow_InstallClass(const WString& className, Ptr<workflow::WfModule> module) { auto decls = &module->declarations; auto reading = className.Buffer(); while (true) { auto delimiter = wcsstr(reading, L"::"); if (delimiter) { auto ns = MakePtr<WfNamespaceDeclaration>(); ns->name.value = WString(reading, delimiter - reading); decls->Add(ns); decls = &ns->declarations; } else { auto ctorClass = MakePtr<WfClassDeclaration>(); ctorClass->kind = WfClassKind::Class; ctorClass->constructorType = WfConstructorType::Undefined; ctorClass->name.value = reading; decls->Add(ctorClass); return ctorClass; } reading = delimiter + 2; } }
WString WPanel::title() const { if (title_) return title_->text(); else return WString(); }
const WString WComboBox::currentText() const { if (currentIndex_ != -1) return asString(model_->data(currentIndex_, modelColumn_)); else return WString(); }
void FileList::Paint(Draw& w, const Rect& r, const Value& q, Color ink, Color paper, dword style) const { const File& m = ValueTo<File>(q); bool dark = Grayscale(paper) < 150; w.DrawRect(r, paper); int x = r.left + 2; w.DrawImage(x, r.top + (r.Height() - m.icon.GetSize().cy) / 2, m.icon); x += iconwidth; x += 2; FontInfo fi = m.font.Info(); DrawFileName(w, x, r.top + (r.Height() - fi.GetHeight()) / 2, r.right - x - 2, r.Height(), WString(m.name), m.isdir, m.font, dark ? SColorHighlightText : m.ink, dark ? SColorHighlightText : m.extink, WString(m.desc), m.descfont, justname, m.underline); }
int initHinshiTable(void) { int retval = 0; retval = setWStrings(hinshitbl1, shinshitbl1, HINSHI1_SZ); if (retval != NG) { retval = setWStrings(hinshitbl2, shinshitbl2, HINSHI2_SZ); b1 = WString("\303\261\270\354?["); /* ñ¸ì */ b2 = WString("]"); if (!b1 || !b2) { retval = NG; } } return retval; }
void OtherChecks() { Value c; ASSERT(c.IsVoid()); RDUMP(c.IsVoid()); Value x = "Ahoj"; String xx = x; RDUMP(xx); ASSERT(xx == "Ahoj"); Value xw = WString("Ahoj"); RDUMP(xw); RDUMP(xw == x); Value xc = x; RDUMP(xc); c = xc; RDUMP(c); Value y = 123; int yy = y; RDUMP(yy); Value xn = (int)Null; RDUMP(IsNull(xn)); RDUMP(IsNull(yy)); Value yc = y; RDUMP(y); c = y; RDUMP(c); Value v2 = 123.0; Value v3 = 123; Value v4 = 125; RDUMP(v2 == y); RDUMP(v3 == y); RDUMP(v4 == y); RDUMP(v4 == v2); Value uu = Uuid::Create(); RDUMP(uu); Value uuc = uu; RDUMP(uuc); { Color c = Blue; Value v = c; RDUMP(v); Value v2 = v; c = v2; RDUMP(c); } }
WString _str(const LPCSTR ptr, bool escape) { if (ptr) { int len = strlen(ptr); std::wstringstream buffer; if (escape) { buffer << L"\"" << WString((const char*)ptr, len) << L"\""; return WString(buffer.str().c_str()); } else { return WString((const char*)ptr, len); } } else { if (escape) { return WString(L"<null>"); } else { return WString(L""); } } }
WString Instance::GetFullName() { return From(namespaces) .Aggregate(WString(), [](const WString& a, const WString& b)->WString { return a + b + L"::"; }) + typeName; }
int WriteMiniDump(const char* applicationName, void* exceptionPointers) { // In case of recursive or repeating exceptions, only write the dump once /// \todo This function should not allocate any dynamic memory if (miniDumpWritten) return EXCEPTION_EXECUTE_HANDLER; miniDumpWritten = true; MINIDUMP_EXCEPTION_INFORMATION info; info.ThreadId = GetCurrentThreadId(); info.ExceptionPointers = (EXCEPTION_POINTERS*)exceptionPointers; info.ClientPointers = TRUE; static time_t sysTime; time(&sysTime); const char* dateTime = ctime(&sysTime); String dateTimeStr = String(dateTime); dateTimeStr.Replace("\n", ""); dateTimeStr.Replace(":", ""); dateTimeStr.Replace("/", ""); dateTimeStr.Replace(' ', '_'); wchar_t pathName[MAX_PATH]; pathName[0] = 0; SHGetSpecialFolderPathW(0, pathName, CSIDL_PERSONAL, 0); String applicationNameStr(applicationName); String miniDumpDir = String(pathName) + "\\" + applicationNameStr; String miniDumpName = miniDumpDir + "\\" + applicationNameStr + "_" + dateTimeStr + ".dmp"; CreateDirectoryW(WString(miniDumpDir).CString(), 0); HANDLE file = CreateFileW(WString(miniDumpName).CString(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0); BOOL success = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), file, MiniDumpWithDataSegs, &info, 0, 0); CloseHandle(file); if (success) ErrorDialog(applicationName, "An unexpected error occurred. A minidump was generated to " + miniDumpName); else ErrorDialog(applicationName, "An unexpected error occurred. Could not write minidump."); return EXCEPTION_EXECUTE_HANDLER; }
void PrintResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Response& response) { //log("info")<<"PrintResource::handleRequest() "<<__LINE__; response.addHeader("Cache-Control", "max-age=315360000"); response.setMimeType("text/html; charset=utf-8"); std::ostringstream htmlStream;// = std::cout; htmlStream << ""; //log("info")<<m_content->find("order_form"); if(WContainerWidget *form = dynamic_cast<WContainerWidget*>(m_content->find("order_form"))) { for(int i=0;i < form->count()-1;i++) { WWidget *item = form->widget(i); if(item->id() == "comments") { item->decorationStyle().setBorder(WBorder()); }else item->setHidden(true); } } response.out() <<"<link href=\"http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" type=\"text/css\" rel=\"stylesheet\">"<<std::endl; response.out() <<"<link href=\"http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap-theme.min.css\" type=\"text/css\" rel=\"stylesheet\">"<<std::endl; response.out() << "<script src=\"/css/ie_console.js\"></script>"; response.out() << "" "<script type=\"text/javascript\">\n" " window.setTimeout(function () {\n" " window.print();\n" " }, 1000);\n" "</script>\n"<<std::endl; m_content->htmlText(response.out()); //log("info")<<"PrintResource::handleRequest() "<<__LINE__; /* response.out() << "" "<script type=\"text/javascript\">\n" " (function() { \n" " window.setTimeout(function () {\n" " window.print();\n" " }, 1500);\n" " }); \n" "</script>\n"<<std::endl; */ //m_content->htmlText(htmlStream); //std::string htmlStr= ""; //htmlStr << htmlStream; //std::cout <<htmlStream<<std::endl; //renderer.render(WString().fromUTF8(htmlStream.str())); response.out() << WString().fromUTF8(htmlStream.str()) << std::endl; }
WString SplitSchemaName(WString typeName, List<WString>& namespaces) { auto reading = typeName.Buffer(); while (auto split = wcsstr(reading, L"::")) { namespaces.Add(WString(reading, split - reading)); reading = split + 2; } return reading; }
void CheckString() { Value v = "ahoj"; for(int i = 0; i < 2; i++) { String s = v; RDUMP(s); ASSERT(s == "ahoj"); WString ws = v; RDUMP(ws); ASSERT(ws == WString("ahoj")); v = ws; } v = String("ahoj"); Value w = WString("ahoj"); ASSERT(v == w); RDUMP(GetHashValue(v)); RDUMP(GetHashValue(w)); ASSERT(GetHashValue(v) == GetHashValue(w)); }
void WColor::setRgb(int red, int green, int blue, int alpha) { default_ = false; name_ = WString(); red_ = red; green_ = green; blue_ = blue; alpha_ = alpha; }
WString GetWString(PasteClip& clip) { GuiLock __; if(clip.Accept("wtext")) { String s = ~clip; return WString((const wchar *)~s, wstrlen((const wchar *)~s)); } if(clip.Accept("text")) return (~clip).ToWString(); return Null; }
String GetString(PasteClip& clip) { GuiLock __; if(clip.Accept("wtext")) { String s = ~clip; return WString((const wchar *)~s, wstrlen((const wchar *)~s)).ToString(); } if(clip.IsAvailable("text")) return ~clip; return Null; }
void WString::ReadFromStream(size_t (*streamReader)(wchar_t *buffer, size_t bufferLen, void *context),void *context) { _ref->Release(); _ref = NULL; wchar_t buff[256]; size_t rd; while ((rd = streamReader(buff,sizeof(buff)/sizeof(wchar_t),context)) != 0) { *this = *this+WString(buff,rd); } }
void Reports::updateHeaders() { //log("info")<<"Reports::updateHeaders() "<<__LINE__; m_wcHeaders->clear(); //log("info")<<"Reports::updateHeaders() "<<__LINE__; switch(m_iReportType) { case Mutual: new WText(tr("reports.mutual.header"),m_wcHeaders); break; case DeptStucture: new WText(tr("reports.deptstructure.header"),m_wcHeaders); //new WLabel("____________________________________________________________________________________", m_wcHeaders ); //printDiv = new WContainerWidget(this); break; case Orders: new WText(tr("reports.orders.header"),m_wcHeaders); //printDiv = new WContainerWidget(this); break; case GoodsSales: new WText(tr("reports.goodssales.header"),m_wcHeaders); //printDiv = new WContainerWidget(this); break; case OrderDetail: { char number[50]; if(dbo::ptr<db::OrdersHeader> ord = ((Portal *)WApplication::instance())->getSession()->getCurrentOrder()) { sprintf(number,"%010d",ord->orderId); }else if(dbo::ptr<db::OrdersHeader> ord = ((Portal *)WApplication::instance())->getSession()->setCurrentOrder()) { sprintf(number,"%010d",ord->orderId); }else{ sprintf(number,"%010d",0); } new WText(WString(tr("reports.orderdetails.header")).arg(number),m_wcHeaders); break; } case OrderJournal: new WText(tr("reports.orderjournal.header"),m_wcHeaders); //printDiv = new WContainerWidget(this); break; } //log("info")<<"Reports::updateHeaders() "<<__LINE__; m_printAnc = new WAnchor(new PrintResource(m_pReport), tr("print"),m_wcHeaders); m_printAnc->setStyleClass("print"); //m_printAnc->setId("print"); m_printAnc->setImage(new WImage("/css/printer.jpg")); m_printAnc->setTarget(TargetNewWindow); //m_printAnc->setLink(new PrintResource(m_pReport)); }
const char *WString::AsSBString(unsigned int codePage, WString &holder) { const wchar_t *str = GetString(); if (str[0] == 0) return ""; size_t reqsize = WideCharToMultiByte(codePage,0,str,-1,NULL,0,NULL,NULL); WStringProxy *holderProxy = WStringMemory::AllocString(NULL,reqsize/2); //reqsize/2+(2 bytes) char *mbstr = reinterpret_cast<char *>(const_cast<wchar_t *>(holderProxy->GetStringFromMemBlock())); WideCharToMultiByte(codePage,0,str,-1,mbstr,reqsize,NULL,NULL); holder = WString(holderProxy); return mbstr; }
int StdValueCompare(const Value& a, const Value& b, int language) { LTIMING("StdValueCompare"); bool na = IsNull(a), nb = IsNull(b); if(na || nb) return !na ? 1 : !nb ? -1 : 0; dword ta = a.GetType(), tb = b.GetType(); if((ta == INT_V || ta == BOOL_V) && (tb == INT_V || tb == BOOL_V)) return cmp<int>(a, b); if((ta == BOOL_V || ta == INT_V || ta == INT64_V || ta == DOUBLE_V) && (tb == BOOL_V || tb == INT_V || tb == INT64_V || tb == DOUBLE_V)) return cmp<double>(a, b); if(ta == DATE_V && tb == DATE_V) return cmp<Date>(a, b); if((ta == DATE_V || ta == TIME_V) && (tb == DATE_V || tb == TIME_V)) return cmp<Time>(a, b); if((ta == STRING_V || ta == WSTRING_V) && (tb == STRING_V || tb == WSTRING_V)) return GetLanguageInfo(language).Compare(WString(a), WString(b)); return a.Compare(b); }
void Sqlite3Connection::GetColumn(int i, Ref f) const { ASSERT(NULL != current_stmt); if(i == -1) { f = Value(sqlite3_last_insert_rowid(db)); return; } ASSERT(got_row_data); String coltype; const char *s = sqlite3_column_decltype(current_stmt,i); if(s) coltype = ToLower(s); switch (sqlite3_column_type(current_stmt,i)) { case SQLITE_INTEGER: f = sqlite3_column_int64(current_stmt,i); break; case SQLITE_FLOAT: f = sqlite3_column_double(current_stmt,i); break; case SQLITE_TEXT: if(coltype == "date" || f.GetType() == DATE_V){ const char *s = (const char *)sqlite3_column_text(current_stmt, i); if(strlen(s) >= 10) f = Value(Date(atoi(s), atoi(s + 5), atoi(s + 8))); else f = Null; } else if(coltype == "datetime" || f.GetType() == TIME_V) { const char *s = (const char *)sqlite3_column_text(current_stmt, i); if(strlen(s) >= 19) f = Value(Time(atoi(s), atoi(s + 5), atoi(s + 8), atoi(s + 11), atoi(s + 14), atoi(s + 17))); else if(strlen(s) >= 10) f = Value(ToTime(Date(atoi(s), atoi(s + 5), atoi(s + 8)))); else f = Null; } else f = Value(WString((const wchar*)sqlite3_column_text16(current_stmt,i))); break; case SQLITE_NULL: f = Null; break; case SQLITE_BLOB: f = Value(String( (const byte*)sqlite3_column_blob(current_stmt,i), sqlite3_column_bytes(current_stmt,i) )); break; default: NEVER(); break; } return; }
bool FileSystem::TruncateFile(const char* filename, int size) { #ifdef WIN32 FILE* file = _wfopen(UtfPathToWidePath(filename), WString(FOPEN_RBP)); fseek(file, size, SEEK_SET); bool ok = SetEndOfFile((HANDLE)_get_osfhandle(_fileno(file))) != 0; fclose(file); return ok; #else return truncate(filename, size) == 0; #endif }