Esempio n. 1
0
void CLoginPage::OnBnClickedSigninButton()
{
	// TODO: Add your control notification handler code here


	if (CXfireCore::IsConnected()){

		if (::PostThreadMessage(g_nActiveThreadID, WM_TERM_THREAD, 0, 0) == 0) {

			DbgMsg(L"Thread 0x%02x possibly already terminated\n", g_nActiveThreadID);
		}
		return;
	}

	CXfireCore::InitToZero();

	


	WCHAR cTemp[0x100];

	::GetWindowText(GetDlgItem(IDC_USERNAME)->GetSafeHwnd(),cTemp,0x100);

	WideCharToMultiByte( CP_ACP, // ANSI Code Page
		0, // No special handling of unmapped chars
		cTemp, // wide-character string to be converted
		0x100,
		CXfireCore::s_cUserName, 
		0x100,
		NULL, NULL ); // Unrepresented char replacement - Use Default 


	::GetWindowText(GetDlgItem(IDC_PASSWORD)->GetSafeHwnd(),cTemp,0x100);


	WideCharToMultiByte( CP_ACP, // ANSI Code Page
		0, // No special handling of unmapped chars
		cTemp, // wide-character string to be converted
		0x100,
		CXfireCore::s_cPassword, 
		0x100,
		NULL, NULL ); // Unrepresented char replacement - Use Default 



	if (strlen(CXfireCore::s_cUserName)<1 ||
		strlen(CXfireCore::s_cPassword)<1 ) {

			AfxMessageBox(L"Your username or password is too short.",MB_ICONINFORMATION|MB_OK);

			return;

	}

	SaveUserData();

	


//	GetDlgItem(IDC_SIGNIN_BUTTON)->EnableWindow(FALSE);
    GetDlgItem(IDC_CONNECT_STATUS)->SetWindowText(L"Please wait connecting...");



	CClientThread* pThread = (CClientThread*)AfxBeginThread(RUNTIME_CLASS(CClientThread), THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
	if (!pThread)
	{

		OutputDebugString(L"CClientThread AfxBeginThread Failed!!!CRITICAL ERROR \n");
		return;
	}


	m_pClientThread=pThread;
	g_nActiveThreadID=pThread->m_nThreadID;
	pThread->m_socket.m_pThread = pThread; // the thread that m_socket lives

	// Now start the thread.
	pThread->ResumeThread();
}
Esempio n. 2
0
static void XMLStartDoc(void *userData, const char *name, const char **atts) {
	PG_Rect Rect;		// -> UserData ???? - for parent size
	ParseUserData_t	*XMLParser = (ParseUserData_t	*)userData;

	SaveUserData(XMLParser);
	PG_Widget* parent = /*((XMLParser->EndTagFlags & INHTAGFLAG_ADDWIDGET) == INHTAGFLAG_ADDWIDGET) ? NULL :*/ XMLParser->ParentObject;

	//Tag <layout> <LA>
	if (IsTag("layout","LA",XML_SECTION_DOC)) {
		XMLParser->Section = XML_SECTION_LAYOUT;
		return;
	}

	//Tag <head> <HD>
	if (IsTag("head","HD",XML_SECTION_LAYOUT)) {
		XMLParser->Section = XML_SECTION_HEAD;
		return;
	}

	//Tag <body> <BD>
	if (IsTag("body","BD",XML_SECTION_LAYOUT)) {
		XMLParser->Section = XML_SECTION_BODY;
		return;
	}

	//Tag <widget> <WD>
	if (IsTag("widget","WD",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_WIDGET | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_Widget	*Widget = new PG_Widget(parent, Rect);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetWidgetAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <dropdown> <DD>
	if (IsTag("dropdown","DD",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_DROPDOWN | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		if (Rect.w < Rect.h) {
			PG_LogWRN("Width must be greater than height in <dropdown>");
			return;
		}

		PG_DropDown *Widget = new PG_DropDown (parent, Rect);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetDropDownAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <dropdownitem> <DI>
	if (IsTag("dropdownitem","DI",XML_SECTION_DROPDOWN)) {
		XMLParser->Section = XML_SECTION_NONPAIR;

		((PG_DropDown *)(XMLParser->ParentObject))->AddItem(PG_Layout::GetParamStr(atts, "text"));
		return;
	}

	//Tag <button> <BT>
	if (IsTag("button","BT",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_BUTTON | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_LogDBG("layout: parent = %p", parent);
		PG_Button	*Widget = new PG_Button(
		                        parent,
		                        Rect,
		                        PG_Layout::GetParamStr(atts, "text"),
		                        PG_Layout::GetParamInt(atts, "id"),
		                        PG_Layout::GetParamStr(atts, "style"));

		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetButtonAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <label> <LL>
	if (IsTag("label","LL",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_LABEL | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_Label	*Widget = new PG_Label(parent, Rect, "", PG_Layout::GetParamStr(atts, "style"));
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetLabelAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <gradientwidget> <GW>
	//Tag <staticframe> <SF>
	//Tag <themewidget> <TW>
	if (IsTag("themewidget","GW",XML_SECTION_BODY) || IsTag("gradientwidget","GW",XML_SECTION_BODY) || IsTag("staticframe","SF",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_GWIDGET | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_ThemeWidget* Widget = new PG_ThemeWidget(parent, Rect);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetThemeWidgetAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <lineedit> <LE>
	if (IsTag("lineedit","LE",XML_SECTION_BODY)) {
		int	i;
		XMLParser->Section = XML_SECTION_LINEEDIT | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		i = PG_Layout::GetParamInt(atts, "length");
		if (i == -1) {
			i = 1000000;
		}

		PG_LineEdit* Widget = new PG_LineEdit(parent, Rect, "LineEdit", i);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetLineEditAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <maskedit> <ME>
	if (IsTag("maskedit","ME",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_MASKEDIT | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_MaskEdit* Widget = new PG_MaskEdit(parent, Rect);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetMaskEditAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <progressbar> <PB>
	if (IsTag("progressbar","PB",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_PROGRESSBAR | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_ProgressBar *Widget = new PG_ProgressBar(parent, Rect);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetProgressBarAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <spinnerbox> <SB>
	if (IsTag("spinnerbox","SB",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_SPINNERBOX | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_SpinnerBox *Widget = new PG_SpinnerBox(parent, Rect);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetSpinnerBoxAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <window> <WN>
	if (IsTag("window","WN",XML_SECTION_BODY)) {
		int	i;

		XMLParser->Section = XML_SECTION_WINDOW | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		i = PG_Layout::GetParamInt(atts, "titleheight");
		if (i == -1) {
			i = 25;
		}

		int flags = PG_Layout::GetParamInt(atts, "flags");
		if(flags == -1) {
			flags = 0;
		}

		PG_Window *Widget = new PG_Window(parent, Rect, PG_Layout::GetParamStr(atts, "title"), (PG_Window::WindowFlags)flags, "Window", i);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetWindowAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <messagebox> <MB>
	if (IsTag("messagebox","MB",XML_SECTION_BODY)) {
		PG_Rect B1Rect,B2Rect;
		char* B1Text,*B2Text;
		PG_MessageBox	*Widget;

		XMLParser->Section = XML_SECTION_MESSAGEBOX | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		B1Text = PG_Layout::GetParamStr(atts, "b1text");
		B2Text = PG_Layout::GetParamStr(atts, "b2text");

		PG_Layout::GetParamRect(atts, "b1pos", B1Rect, parent);
		PG_Layout::GetParamRect(atts, "b2pos", B2Rect, parent);

		if (B2Text[0] == 0) {
			Widget = new PG_MessageBox(parent, Rect, PG_Layout::GetParamStr(atts, "title"), "", B1Rect, B1Text, PG_Layout::GetParamAlign(atts, "talign"));
		} else {
			Widget = new PG_MessageBox(parent, Rect, PG_Layout::GetParamStr(atts, "title"), "", B1Rect, B1Text, B2Rect, B2Text, PG_Layout::GetParamAlign(atts, "talign"));
		}

		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetWindowAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <widgetlist> <WL>
	if (IsTag("widgetlist","WL",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_WIDGETLIST | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_WidgetList *Widget = new PG_WidgetList(parent, Rect);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetWidgetListAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <listbox> <LB>
	if (IsTag("listbox","LB",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_LISTBOX | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_ListBox *Widget = new PG_ListBox(parent, Rect);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetListBoxAtts(Widget, atts, XMLParser) &~INHTAGFLAG_ADDWIDGET;
		return;
	}

	//Tag <listboxitem> <LI>
	if (IsTag("listboxitem","LI",XML_SECTION_LISTBOX)) {
		XMLParser->Section = XML_SECTION_LISTBOXITEM | XML_SECTION_COMWIDPARAMS;

		int h = PG_Layout::GetParamInt(atts, "height");
		if(h < 0) {
			h = 25;
		}

		// to be updated!
		PG_ListBoxItem *Widget = new PG_ListBoxItem(parent, h, PG_Layout::GetParamStr(atts, "ltext"));
		//((PG_ListBox *)XMLParser->ParentObject)->AddItem(Widget);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetListBoxItemAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <columnitem> <CI>
	if (IsTag("columnitem","CI",XML_SECTION_LISTBOX)) {
		XMLParser->Section = XML_SECTION_COLUMNITEM | XML_SECTION_COMWIDPARAMS;

		// to be updated!
		PG_ColumnItem *Widget = new PG_ColumnItem(parent, PG_Layout::GetParamInt(atts, "columns"),PG_Layout::GetParamInt(atts, "height"));
		//((PG_ListBox *)XMLParser->ParentObject)->AddItem(Widget);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetListBoxItemAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <column> <CO>
	if (IsTag("column","CO",XML_SECTION_COLUMNITEM)) {
		int	no,i;
		XMLParser->Section = XML_SECTION_COLUMNITEM | XML_SECTION_COMWIDPARAMS;

		no = PG_Layout::GetParamInt(atts, "number");
		if(no == -1) {
			no = 0;
		}

		if (no >= ((PG_ColumnItem *)XMLParser->ParentObject)->GetColumnCount ()) {
			PG_LogWRN("Column number error !!!");
			return;
		}

		i = PG_Layout::GetParamInt(atts, "width");
		if (i != -1) {
			((PG_ColumnItem *)XMLParser->ParentObject)->SetColumnWidth(no, i);
		}

		((PG_ColumnItem *)XMLParser->ParentObject)->SetColumnText(no, PG_Layout::GetParamStr(atts, "text"));

		return;
	}

	//Tag <radiobutton> <RB>
	if (IsTag("radiobutton","RB",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_RADIOBUTTON | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_RadioButton *Widget = new PG_RadioButton(
		                             parent,
		                             Rect,
		                             (const char*)PG_Layout::GetParamStr(atts, "text"),
		                             (PG_RadioButton *)PG_Application::GetWidgetByName(PG_Layout::GetParamStr(atts, "group")),
		                             0);

		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetRadioButtonAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <checkbutton> <CB>
	if (IsTag("checkbutton","CB",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_CHECKBUTTON | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_CheckButton *Widget = new PG_CheckButton(
		                             parent,
		                             Rect,
		                             PG_Layout::GetParamStr(atts, "text"),
		                             0);

		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetRadioButtonAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <scrollbar> <SB>
	if (IsTag("scrollbar","SB",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_SCROLLBAR | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_ScrollBar::ScrollDirection d = PG_Layout::GetParamScrollDirection(atts, "dir");
		(d <= 0) ? d = PG_ScrollBar::HORIZONTAL : d = PG_ScrollBar::VERTICAL;

		PG_ScrollBar *Widget = new PG_ScrollBar(parent, Rect, d);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetScrollBarAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <slider> <SR>
	if (IsTag("slider","SR",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_SCROLLBAR | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_Slider *Widget = new PG_Slider(parent, Rect, PG_Layout::GetParamScrollDirection(atts, "dir"));
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |=SetScrollBarAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <image> <IM>
	if (IsTag("image","IM",XML_SECTION_BODY)) {
		PG_Point Point;
		PG_Rect Rect;

		XMLParser->Section = XML_SECTION_IMAGE | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		Point.x=Rect.x;
		Point.y=Rect.y;

		PG_Image *Widget = new PG_Image(parent, Point, PG_Layout::GetParamStr(atts, "iimage"));
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetThemeWidgetAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <richedit> <RE>
	if (IsTag("richedit","RE",XML_SECTION_BODY)) {
		XMLParser->Section = XML_SECTION_RICHEDIT | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_RichEdit *Widget = new PG_RichEdit(parent, Rect, PG_Layout::GetParamInt(atts, "vresize") == 1 , PG_Layout::GetParamInt(atts, "linewidth"));
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetScrollWidgetAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <popupmenu> <PM>
	if(IsTag("popupmenu", "PM", XML_SECTION_BODY)) {
		PG_Point Point;
		PG_Rect Rect;

		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		Point.x=Rect.x;
		Point.y=Rect.y;

		PG_PopupMenu* Widget = NULL;

		// is the current popup a child of another popup ?
		if(XMLParser->Section & XML_SECTION_POPUPMENU) {
			Widget = new PG_PopupMenu(NULL, 0, 0, PG_NULLSTR);
			PG_PopupMenu* menu = static_cast<PG_PopupMenu*>(XMLParser->ParentObject);
			menu->addMenuItem(PG_Layout::GetParamStr(atts, "caption"), Widget);
		} else {
			// is the popup a child of a menubar ?
			if(XMLParser->Section & XML_SECTION_MENUBAR) {
				Widget = new PG_PopupMenu(NULL, Point.x, Point.y, PG_Layout::GetParamStr(atts, "caption"));
				static_cast<PG_MenuBar*>(XMLParser->ParentObject)->Add(PG_Layout::GetParamStr(atts, "text"), Widget);
			} else {
				Widget = new PG_PopupMenu(parent, Point.x, Point.y, PG_Layout::GetParamStr(atts, "caption"));
			}
		}

		// register section popupmenu
		XMLParser->Section = XML_SECTION_POPUPMENU | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;

		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetPopupMenuAtts(Widget, atts, XMLParser);
		XMLParser->InhTagFlags |= INHTAGFLAG_HIDE; // Popups shouldn't be displayed immediately
		return;
	}

	//Tag <popupmenuitem> <PM>
	if(IsTag("popupmenuitem", "PI", XML_SECTION_BODY)) {
		if((!XMLParser->Section & XML_SECTION_POPUPMENU)) {
			PG_LogERR("popupmenuitem can't be created in the current context!");
			return;
		}
		PG_PopupMenu* menu = static_cast<PG_PopupMenu*>(XMLParser->ParentObject);
		menu->addMenuItem(PG_Layout::GetParamStr(atts, "caption"), PG_Layout::GetParamInt(atts, "id"));

		return;
	}

	//Tag <menubar> <MB>
	if(IsTag("menubar", "MB", XML_SECTION_BODY)) {
		PG_Rect Rect;

		XMLParser->Section = XML_SECTION_MENUBAR | XML_SECTION_BODY | XML_SECTION_COMWIDPARAMS;
		PG_Layout::GetParamRect(atts, "pos", Rect, parent);

		PG_MenuBar* Widget = new PG_MenuBar(parent, Rect);
		XMLParser->ParentObject = Widget;

		XMLParser->InhTagFlags |= SetThemeWidgetAtts(Widget, atts, XMLParser);
		return;
	}

	//Tag <style> <ST>
	if (IsTag("style","ST",XML_SECTION_COMWIDPARAMS)) {
		char		*widget;
		char		*object;

		XMLParser->Section = XML_SECTION_NONPAIR;

		widget = PG_Layout::GetParamStr(atts, "widget");
		if (widget[0] == 0)
			return;

		object = PG_Layout::GetParamStr(atts, "object");

		if (object[0] == 0)	{
			XMLParser->ParentObject->LoadThemeStyle(widget);
		} else {
			XMLParser->ParentObject->LoadThemeStyle(widget,object);
		}
		return;
	}

	//Tag <font> <FT>
	if (IsTag("font","FT",XML_SECTION_COMWIDPARAMS)) {
		return;
	}

	if(XMLParser->Section & XML_SECTION_HEAD) {
		// create tag description
		PG_XMLTag* n = new PG_XMLTag(name, atts);
		PG_Application::GetApp()->sigXMLTag(n);
	}

	PG_LogWRN("Unknown tag `%s` in section %d !",name,XMLParser->Section);
	return;
}