[Top][All Lists]
[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 ----
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paragui-cvs] CVS: paragui/src/layout layoutparsers.cpp,1.2,1.3 pgxmllayoutloader.cpp,1.3,1.4,
Alexander Pipelka <address@hidden> <=
- Prev by Date:
[paragui-cvs] CVS: paragui/include pgxmltag.h,NONE,1.1
- Next by Date:
[paragui-cvs] CVS: paragui/include pgfactory.h,1.7,1.8 pglabel.h,1.5,1.6 pgxmllayoutloader.h,1.3,1.4 pgxmltag.h,1.1,1.2
- Previous by thread:
[paragui-cvs] CVS: paragui/include pgxmltag.h,NONE,1.1
- Next by thread:
[paragui-cvs] CVS: paragui/include pgfactory.h,1.7,1.8 pglabel.h,1.5,1.6 pgxmllayoutloader.h,1.3,1.4 pgxmltag.h,1.1,1.2
- Index(es):