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(); }
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; }