static vmcode * _print_init_mask(vmcode *code, int name) { long pos = (*code++)/(long)sizeof(pword); unsigned init_mask = *code++; if (name) { if (IsTag(*code,TNAME)) p_fprintf(current_output_,"%s-", DidName(TagDid(*code))); code++; } p_fprintf(current_output_,"Y%d ", pos++); while (init_mask) { if (init_mask & 1) { if (name) { if (IsTag(*code,TNAME)) p_fprintf(current_output_,"%s-", DidName(TagDid(*code))); code++; } p_fprintf(current_output_,"Y%d ", pos); } init_mask >>= 1; pos++; } return code; }
/*-----------------------------------------------------------------------------* | ReadClass: function ricorsiva per la lettura di una classe | | | | | | Data creazione: 16/12/2008 Autore: Arcadio Ciro | *-----------------------------------------------------------------------------*/ int ReadClass ( FILE *lc, //file da leggere STACK **Stack//stack degli elementi caricati dal file ) { int Tag,Error;//tag numerici e stato d'errore char *ReadBuffer;//buffer di lettura TREE *Leaf;//foglie dell'alero da caricare nello stack //allocazione del buffer di lettura ReadBuffer=(char*)calloc(BUFFSIZE,sizeof(char)); Leaf=NULL; //2 --> NESSUN ERRORE Error=2; do { //scansione del file carattere per carattere PopChar(lc,&ReadBuffer); //verifica eventuali TAG Tag=IsTag(ReadBuffer); } while(!Tag && !feof(lc)); switch(Tag) //switch del TAG trovato { case CLASS : NewLeaf(&Leaf); //CLASSE trovata LoadLeaf(lc,&Leaf); //acquisizione delle informazioni Push_STACK(Leaf,Stack); ReadClass(lc,Stack); break; case END : Error=0; break; //fine del FILE } free(ReadBuffer);//liberazione memoria del buffer di lettura return Error;//ritorno dello stato d'errore }
WBXML_TAG Read_stag (P_WBXML_INFO buffer) { if (IsCodepageTag(buffer, CP_TAG_TAG)) { WBXML_TAG tag = ReadCodepageTag(buffer, CP_TAG_TAG); AddCodepageTagNode(buffer, tag); return tag; } else if (IsTag(buffer, TAG_LITERAL)) { WBXML_MB_U_INT32 index; ReadFixedTag(buffer, TAG_LITERAL); Read_index(buffer, &index); AddCodepageLiteralTagNode(buffer, index); } else { ParseError(ERR_TAG_NOT_FOUND); } return 0; }
void Read_attrStart (P_WBXML_INFO buffer) { if (Is_switchPage(buffer)) { WBXML_TAG tag; Read_switchPage(buffer); tag = ReadCodepageTag(buffer, CP_TAG_ATTRSTART); AddAttrStartNode(buffer, tag); } else if (IsCodepageTag(buffer, CP_TAG_ATTRSTART)) { WBXML_TAG tag; tag = ReadCodepageTag(buffer, CP_TAG_ATTRSTART); AddAttrStartNode(buffer, tag); } else if (IsTag(buffer, TAG_LITERAL)) { WBXML_MB_U_INT32 index; ReadFixedTag(buffer, TAG_LITERAL); Read_index(buffer, &index); AddAttrStartLiteralNode(buffer, index); } else { ParseError(ERR_TAG_NOT_FOUND); } }
void HTMLToken::SetAttribute(const string& attribute, const string& value) { if(IsTag()) { attributes[ToLower(attribute)] = value; } }
Node::~Node() { if (IsTag()) delete Tag(); else if (IsString()) delete String(); else mtl_line("fixme"); }
void Read_element (P_WBXML_INFO buffer) { WBXML_TAG stagvalue = 0; if (Is_switchPage(buffer)) { Read_switchPage(buffer); } stagvalue = Read_stag(buffer); /* move the current node down to this one in the tree */ if (buffer->m_curnode) buffer->m_curnode = buffer->m_curnode->m_child; else buffer->m_curnode = buffer->m_tree; if ((stagvalue & CODEPAGE_TAG_HAS_ATTRS) == CODEPAGE_TAG_HAS_ATTRS) { do { Read_attribute(buffer); } while (!IsTag(buffer, TAG_END)); ReadFixedTag(buffer, TAG_END); AddAttrEndNode(buffer); } if ((stagvalue & CODEPAGE_TAG_HAS_CONTENT) == CODEPAGE_TAG_HAS_CONTENT) { while (!IsTag(buffer, TAG_END)) { Read_content(buffer); } ReadFixedTag(buffer, TAG_END); } /* move the current node back up one */ buffer->m_curnode = buffer->m_curnode->m_parent; }
string HTMLToken::GetAttribute(const string& attribute) { string lowerAtt = ToLower(attribute); if( IsTag() == false || attributes.find(lowerAtt) == attributes.end()) { return string(""); } else { return attributes[lowerAtt]; } }
bool XmlParser::Tag(const String& tag) { if(IsTag() && tagtext == tag) { LLOG("Tag " << tagtext); stack.Add(Nesting(tagtext, npreserve)); attr = nattr; attr1 = nattr1; attrval1 = nattrval1; Next(); return true; } return false; }
void P4ClientAPI::RunCmd( const char *cmd, ClientUser *ui, int argc, char * const *argv ) { // #if P4APIVER_ID >= 513026 // ClientApi::SetProg() was introduced in 2004.2 client.SetProg( &prog ); // #endif // #if P4APIVER_ID >= 513282 // ClientApi::SetVersion() was introduced in 2005.2 if( version.Length() ) client.SetVersion( &version ); // #endif if( IsTag() ) client.SetVar( "tag" ); if( IsStreamsMode() && apiLevel >= 70 ) client.SetVar( "enableStreams" ); // If maxresults or maxscanrows is set, enforce them now if( maxResults ) client.SetVar( "maxResults", maxResults ); if( maxScanRows ) client.SetVar( "maxScanRows", maxScanRows ); if( maxLockTime ) client.SetVar( "maxLockTime", maxLockTime ); // client.SetBreak( &cb ); client.SetArgv( argc, argv ); client.Run( cmd, ui ); // Have to request server2 protocol *after* a command has been run. I // don't know why, but that's the way it is. if ( ! IsCmdRun() ) { StrPtr *pv = client.GetProtocol( "server2" ); if ( pv ) server2 = pv->Atoi(); pv = client.GetProtocol( P4Tag::v_nocase ); if ( pv ) SetCaseFold(); pv = client.GetProtocol( P4Tag::v_unicode ); if ( pv && pv->Atoi() ) SetUnicode(); } SetCmdRun(); }
void XmlParser::Skip() { if(IsEof()) throw XmlError("Unexpected end of file"); if(cdata.GetCount() && type != XML_TEXT) cdata.Clear(); else if(IsTag()) { String n = ReadTag(); while(!End()) { if(IsEof()) throw XmlError("Unexpected end of file expected when skipping tag \'" + n + "\'"); Skip(); } } else Next(); }
/*-----------------------------------------------------------------------------* | LcOpen : legge un file caricandolo in un albero binario. | | | | | | Data creazione: 16/12/2008 Autore: Arcadio Ciro | *-----------------------------------------------------------------------------*/ int LcOpen ( TREE** Tree //albero di OutPut ) { int Error; //stato d'errore int TotLeafs;//totale foglie FILE *lc; //file da leggere char *ReadBuffer;//buffer di lettura STACK *Stk; //stack temporaneo TotLeafs=0; //allocazione del buffer ReadBuffer=(char*)calloc(BUFFSIZE,sizeof(char)); Error=0; //Path del file lc=fopen("maps/cities.lc","r"); //se l'apertura è andata a buon fine if(lc!=NULL) { do PopChar(lc,&ReadBuffer); //i caratteri restituiti da PopChar vengono salvati nel Buffer while(IsTag(ReadBuffer)!=BEGIN && !feof(lc)); //Init dello STACK Init_STACK(&Stk); //Chiamata a ReadClass ReadClass(lc,&Stk); //chiusura del FILE fclose(lc); } else Error=202; //stato d'errore //conversione dello stack in albero tramite visita in ampiezza *Tree=StackToTree(&Stk,&TotLeafs); //viene liberata la memoria usata dallo stack Free_STACK(&Stk); //liberazione del buffer di lettura free(ReadBuffer); //ritorno dello stato d'errore return Error; }
bool ZXmlParser::IsTextNode( ) { return( IsTag( "<#TEXT#>" ) ); }
BOOL Is_opaque (P_WBXML_INFO buffer) { return IsTag(buffer, TAG_OPAQUE); }
BOOL Is_pi (P_WBXML_INFO buffer) { return IsTag(buffer, TAG_PI); }
BOOL Is_entity (P_WBXML_INFO buffer) { return IsTag(buffer, TAG_ENTITY); }
BOOL Is_tableref (P_WBXML_INFO buffer) { return IsTag(buffer, TAG_STR_T); }
BOOL Is_switchPage (P_WBXML_INFO buffer) { return IsTag(buffer, TAG_SWITCH_PAGE); }
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; }
bool ZXmlParser::IsCDataSection( ) { return( IsTag( "<#CDATA#>" ) ); }
BOOL Is_inline (P_WBXML_INFO buffer) { return IsTag(buffer, TAG_STR_I); }
void Read_extension (P_WBXML_INFO buffer) { if (Is_switchPage(buffer)) { Read_switchPage(buffer); } if (IsTag(buffer, TAG_EXT_I_0)) { char* str = NULL; ReadFixedTag(buffer, TAG_EXT_I_0); Read_termstr_rtn(buffer, &str); AddVariableStringNode(buffer, str, VAR_ESCAPED); } else if (IsTag(buffer, TAG_EXT_I_1)) { char* str = NULL; ReadFixedTag(buffer, TAG_EXT_I_1); Read_termstr_rtn(buffer, &str); AddVariableStringNode(buffer, str, VAR_UNESCAPED); } else if (IsTag(buffer, TAG_EXT_I_2)) { char* str = NULL; ReadFixedTag(buffer, TAG_EXT_I_2); Read_termstr_rtn(buffer, &str); AddVariableStringNode(buffer, str, VAR_UNCHANGED); } else if (IsTag(buffer, TAG_EXT_T_0)) { WBXML_MB_U_INT32 index; ReadFixedTag(buffer, TAG_EXT_T_0); Read_index(buffer, &index); AddVariableIndexNode(buffer, index, VAR_ESCAPED); } else if (IsTag(buffer, TAG_EXT_T_1)) { WBXML_MB_U_INT32 index; ReadFixedTag(buffer, TAG_EXT_T_1); Read_index(buffer, &index); AddVariableIndexNode(buffer, index, VAR_UNESCAPED); } else if (IsTag(buffer, TAG_EXT_T_2)) { WBXML_MB_U_INT32 index; ReadFixedTag(buffer, TAG_EXT_T_2); Read_index(buffer, &index); AddVariableIndexNode(buffer, index, VAR_UNCHANGED); } else if (IsTag(buffer, TAG_EXT_0)) { ReadFixedTag(buffer, TAG_EXT_0); ParseWarning(WARN_FUTURE_EXPANSION_EXT_0); } else if (IsTag(buffer, TAG_EXT_1)) { ReadFixedTag(buffer, TAG_EXT_1); ParseWarning(WARN_FUTURE_EXPANSION_EXT_1); } else if (IsTag(buffer, TAG_EXT_2)) { ReadFixedTag(buffer, TAG_EXT_2); ParseWarning(WARN_FUTURE_EXPANSION_EXT_2); } else { ParseError(ERR_TAG_NOT_FOUND); } }
int P4ClientAPI::GetTagged() { return IsTag(); }
BOOL Is_extension (P_WBXML_INFO buffer) { WBXML_INFO tmpbuffer; memcpy(&tmpbuffer, buffer, sizeof(WBXML_INFO)); tmpbuffer.m_curpos += SWITCHPAGE_SIZE; return ((Is_switchPage(buffer) && (IsTag(&tmpbuffer, TAG_EXT_0) || IsTag(&tmpbuffer, TAG_EXT_1) || IsTag(&tmpbuffer, TAG_EXT_2) || IsTag(&tmpbuffer, TAG_EXT_T_0) || IsTag(&tmpbuffer, TAG_EXT_T_1) || IsTag(&tmpbuffer, TAG_EXT_T_2) || IsTag(&tmpbuffer, TAG_EXT_I_0) || IsTag(&tmpbuffer, TAG_EXT_I_1) || IsTag(&tmpbuffer, TAG_EXT_I_2))) || (IsTag(buffer, TAG_EXT_0) || IsTag(buffer, TAG_EXT_1) || IsTag(buffer, TAG_EXT_2) || IsTag(buffer, TAG_EXT_T_0) || IsTag(buffer, TAG_EXT_T_1) || IsTag(buffer, TAG_EXT_T_2) || IsTag(buffer, TAG_EXT_I_0) || IsTag(buffer, TAG_EXT_I_1) || IsTag(buffer, TAG_EXT_I_2))); }
void ZProcess::ParseXML_Document( ) { // For each node we store data // If it's a Process Node, and the Root node if ( IsRoot( ) && IsTag( "<PROCESS>" ) ) { // Handle Attributes if ( IsValidAttribute( "name" ) ) SetProcessName( GetAttributeValue( ) ); } // If it's the WriteLog Node in a Process node if ( IsTag( "<WRITELOG>" ) && IsChildOf( "<PROCESS>" ) ) { // Set the WriteLog File Name SetWriteLogValue( GetTextValue( ) ); // Handle Attributes if ( IsValidAttribute( "name" ) ) this->SetWriteLogName( GetAttributeValue( ) ); } // If it's the KillApp Node in a Process node if ( IsTag("<SHUTDOWN>") && IsChildOf( "<PROCESS>") ) { // Set the KillApp command name SetKillAppValue( GetTextValue( ) ); // Handle Attributes if ( IsValidAttribute( "delay" ) ) { int delay; sscanf( GetAttributeValue( ) , "%d" , &delay ); SetKillAppDelay( delay ); } } // If it's the Startup Node in a Process node if ( IsTag("<STARTUP>") && IsChildOf( "<PROCESS>") ) { // Set the Startup command name SetStartupValue( GetTextValue( ) ); // Handle Attributes if ( IsValidAttribute( "delay" ) ) { int delay; sscanf( GetAttributeValue( ) , "%d" , &delay ); SetStartupDelay( delay ); } } // If it's the NOTE node in a PROCESS node if ( IsTag("<NOTE>") && IsChildOf( "<PROCESS>") ) { // do nothing ... just checking } // If it's the CDATA section on NOTE node if ( IsChildOf( "<NOTE>" ) && IsCDataSection( ) ) { // Set the Note value CString val; val = GetTextValue( ); SetNote( val ); } }