Esempio n. 1
0
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;
}
Esempio n. 2
0
/*-----------------------------------------------------------------------------*
| 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
}
Esempio n. 3
0
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;
}
Esempio n. 4
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);
  }
}
Esempio n. 5
0
void HTMLToken::SetAttribute(const string& attribute, const string& value)
{
	if(IsTag())
	{
		attributes[ToLower(attribute)] = value;
	}
}
Esempio n. 6
0
Node::~Node()
{
	if (IsTag())
		delete Tag();
	else if (IsString())
		delete String();
	else
		mtl_line("fixme");
}
Esempio n. 7
0
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;
}
Esempio n. 8
0
string HTMLToken::GetAttribute(const string& attribute)
{
	string lowerAtt = ToLower(attribute);
	if( IsTag() == false || attributes.find(lowerAtt) == attributes.end())
	{
		return string("");
	}
	else
	{
		return attributes[lowerAtt];
	}
}
Esempio n. 9
0
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;
}
Esempio n. 10
0
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();
}
Esempio n. 11
0
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();
}
Esempio n. 12
0
/*-----------------------------------------------------------------------------*
| 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; 
}
Esempio n. 13
0
bool
ZXmlParser::IsTextNode( )
{
   return( IsTag( "<#TEXT#>" ) );
}
Esempio n. 14
0
BOOL Is_opaque     (P_WBXML_INFO buffer)
{
	return IsTag(buffer, TAG_OPAQUE);
}
Esempio n. 15
0
BOOL Is_pi         (P_WBXML_INFO buffer)
{
	return IsTag(buffer, TAG_PI);
}
Esempio n. 16
0
BOOL Is_entity     (P_WBXML_INFO buffer)
{
	return IsTag(buffer, TAG_ENTITY);
}
Esempio n. 17
0
BOOL Is_tableref   (P_WBXML_INFO buffer)
{
	return IsTag(buffer, TAG_STR_T);
}
Esempio n. 18
0
BOOL Is_switchPage (P_WBXML_INFO buffer)
{
	return IsTag(buffer, TAG_SWITCH_PAGE);
}
Esempio n. 19
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;
}
Esempio n. 20
0
bool
ZXmlParser::IsCDataSection( )
{
   return( IsTag( "<#CDATA#>" ) );
}
Esempio n. 21
0
BOOL Is_inline     (P_WBXML_INFO buffer)
{
	return IsTag(buffer, TAG_STR_I);
}
Esempio n. 22
0
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);
	}
}
Esempio n. 23
0
int P4ClientAPI::GetTagged()
{
    return IsTag();
}
Esempio n. 24
0
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)));
}
Esempio n. 25
0
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 );
   }
}