paragui-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paragui-cvs] CVS: paragui/src/layout layoutparsers.cpp,1.2,1.3 pgxmllay


From: Alexander Pipelka <address@hidden>
Subject: [paragui-cvs] CVS: paragui/src/layout layoutparsers.cpp,1.2,1.3 pgxmllayoutloader.cpp,1.3,1.4
Date: Fri, 28 Jun 2002 05:29:59 -0400

Update of /cvsroot/paragui/paragui/src/layout
In directory subversions:/tmp/cvs-serv11008/src/layout

Modified Files:
        layoutparsers.cpp pgxmllayoutloader.cpp 
Log Message:
more work on the new XML layout loader



Index: layoutparsers.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/layout/layoutparsers.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** layoutparsers.cpp   27 Jun 2002 16:43:18 -0000      1.2
--- layoutparsers.cpp   28 Jun 2002 09:29:56 -0000      1.3
***************
*** 3,6 ****
--- 3,7 ----
  #include "pgwidget.h"
  #include "pgbutton.h"
+ #include "pglabel.h"
  #include "pglog.h"
  
***************
*** 8,14 ****
--- 9,23 ----
        PG_LogMSG("PG_XMLLayoutObject<PG_Widget>::ParseXMLAttributes()");
        
+       SetText(xmltag.GetString("text").c_str());
+       
        PG_Rect pos = xmltag.GetRect("pos", GetParent());
        MoveWidget(pos);
        Show();
+ }
+ 
+ void PG_Label::ParseXMLAttributes(PG_XMLTag& xmltag) {
+       PG_Widget::ParseXMLAttributes(xmltag);
+ 
+       SetAlignment(xmltag.GetAlignment("align"));
  }
  

Index: pgxmllayoutloader.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/layout/pgxmllayoutloader.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** pgxmllayoutloader.cpp       27 Jun 2002 16:37:06 -0000      1.3
--- pgxmllayoutloader.cpp       28 Jun 2002 09:29:56 -0000      1.4
***************
*** 17,21 ****
        PG_XML_SECTION section;
        PG_Widget* parent;
!       PG_XMLLayoutLoaderBase* caller;
        
        PG_XMLParseUserData() {
--- 17,21 ----
        PG_XML_SECTION section;
        PG_Widget* parent;
!       PG_XMLLayoutLoader* caller;
        
        PG_XMLParseUserData() {
***************
*** 191,195 ****
  
  
! bool PG_XMLLayoutLoaderBase::Load(PG_Widget* parent, const char* filename) {
        bool status = true;
        int bytes_pos = 0;
--- 191,195 ----
  
  
! bool PG_XMLLayoutLoader::Load(PG_Widget* parent, const char* filename) {
        bool status = true;
        int bytes_pos = 0;
***************
*** 199,203 ****
        XMLParser.caller = this;
        XML_SetUserData(XMLParser.parser, &XMLParser);
!       XML_SetElementHandler(XMLParser.parser, 
PG_XMLLayoutLoaderBase::XMLStartDoc, PG_XMLLayoutLoaderBase::XMLEndDoc);
  
        PG_File* f = PG_FileArchive::OpenFile(filename);
--- 199,203 ----
        XMLParser.caller = this;
        XML_SetUserData(XMLParser.parser, &XMLParser);
!       XML_SetElementHandler(XMLParser.parser, 
PG_XMLLayoutLoader::XMLStartDoc, PG_XMLLayoutLoader::XMLEndDoc);
  
        PG_File* f = PG_FileArchive::OpenFile(filename);
***************
*** 245,249 ****
  }
  
! void PG_XMLLayoutLoaderBase::XMLStartDoc(void *userData, const char *name, 
const char **atts) {
        // get pointer to our private parser data
        PG_XMLParseUserData* parser = 
static_cast<PG_XMLParseUserData*>(userData);
--- 245,249 ----
  }
  
! void PG_XMLLayoutLoader::XMLStartDoc(void *userData, const char *name, const 
char **atts) {
        // get pointer to our private parser data
        PG_XMLParseUserData* parser = 
static_cast<PG_XMLParseUserData*>(userData);
***************
*** 257,271 ****
                parser->section = LAYOUT;
        }
!       
!       if(n == "head") {
                parser->section = HEAD;
        }
!       
!       if(n == "body") {
                parser->section = BODY;
        }
        
        // create new tag object
        PG_XMLTag xmltag(name, atts, parser->section);
        
        // execute it
--- 257,286 ----
                parser->section = LAYOUT;
        }
!       else if(n == "head") {
                parser->section = HEAD;
        }
!       else if(n == "body") {
                parser->section = BODY;
+               return;
+       }
+       else if(parser->section == BODY) {
+               parser->section = WIDGET;
        }
        
        // create new tag object
        PG_XMLTag xmltag(name, atts, parser->section);
+ 
+       // fac-to-ry
+       if(xmltag.section == BODY || xmltag.section == WIDGET) {
+               PG_Widget* widget = PG_Factory::CreateObject(xmltag.name, 
parser->parent);
+       
+               if(widget != NULL) {
+                       widget->ParseXMLAttributes(xmltag);
+                       parser->parent = widget;
+               }
+               else {
+                       PG_LogWRN("Unknown factory object '%s' !!!", 
xmltag.name.c_str());
+               }
+       }
        
        // execute it
***************
*** 273,277 ****
  }
  
! void PG_XMLLayoutLoaderBase::XMLEndDoc(void *userData, const char *name) {
        PG_XMLParseUserData* parser = 
static_cast<PG_XMLParseUserData*>(userData);
  
--- 288,292 ----
  }
  
! void PG_XMLLayoutLoader::XMLEndDoc(void *userData, const char *name) {
        PG_XMLParseUserData* parser = 
static_cast<PG_XMLParseUserData*>(userData);
  
***************
*** 284,312 ****
        // get our status from the stack
        parser->pop();
- }
- 
- 
- bool PG_XMLBasicExecutor::handleStartTag(PG_XMLTag& tag) {
-       PG_LogMSG("> handleStartTag");
-       tag.Log();
-       
-       if(tag.section == BODY) {
-               PG_Widget* widget = PG_Factory::CreateObject(tag.name);
-               if(widget != NULL) {
-                       widget->ParseXMLAttributes(tag);
-               }
-               else {
-                       PG_LogWRN("Unknown factory object '%s' !!!", 
tag.name.c_str());
-               }
-       }
-       
-       return true;
- }
-       
- bool PG_XMLBasicExecutor::handleEndTag(PG_XMLTag& tag) {
-       PG_LogMSG("> handleEndTag");
-       tag.Log();
-       PG_LogMSG("");
- 
-       return true;
  }
--- 299,301 ----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]