示例#1
0
NAMESPACE_UPP

#ifdef PLATFORM_WIN32


String GetEnv(const char *id)
{
	return WString(_wgetenv(WString(id))).ToString();
}
示例#2
0
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());
}
示例#3
0
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();
  }
}
示例#4
0
文件: WSpinBox.C 项目: kdeforche/wt
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_));
}
示例#5
0
文件: mode.c 项目: DonCN/haiku
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");
                  /* ¥á¥â¥ê¤¬Â­¤ê¤Þ¤»¤ó */
  }
}
示例#6
0
文件: WTreeNode.C 项目: chr-thien/wt
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());
  }
}
示例#7
0
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();
}
示例#8
0
	/**	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;
	}
示例#9
0
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;
			}
		}
示例#11
0
文件: WPanel.C 项目: NovaWova/wt
WString WPanel::title() const
{
  if (title_)
    return title_->text();
  else
    return WString();
}
示例#12
0
const WString WComboBox::currentText() const
{
  if (currentIndex_ != -1)
    return asString(model_->data(currentIndex_, modelColumn_));
  else
    return WString();
}
示例#13
0
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);
}
示例#14
0
文件: uldefine.c 项目: DonCN/haiku
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;
}
示例#15
0
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);
	}
}
示例#16
0
文件: Global.cpp 项目: kg/Fury2
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"");
    }
  }
}
示例#17
0
WString Instance::GetFullName()
{
	return From(namespaces)
		.Aggregate(WString(), [](const WString& a, const WString& b)->WString
		{
			return a + b + L"::";
		})
		+ typeName;
}
示例#18
0
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;
}
示例#19
0
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;
}
示例#20
0
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;
}
示例#21
0
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));
}
示例#22
0
void WColor::setRgb(int red, int green, int blue, int alpha)
{
  default_ = false;
  name_ = WString();

  red_ = red;
  green_ = green;
  blue_ = blue;
  alpha_ = alpha;
}
示例#23
0
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;
}
示例#24
0
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;
}
示例#25
0
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);
  }
}
示例#26
0
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));

}
示例#27
0
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;
}
示例#28
0
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);
}
示例#29
0
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;
}
示例#30
0
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
}