paragui-cvs
[Top][All Lists]
Advanced

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

[paragui-cvs] CVS: paragui/include pgxmllayoutloader.h,NONE,1.1 Makefile


From: Alexander Pipelka <address@hidden>
Subject: [paragui-cvs] CVS: paragui/include pgxmllayoutloader.h,NONE,1.1 Makefile.am,1.9,1.10
Date: Thu, 27 Jun 2002 10:37:14 -0400

Update of /cvsroot/paragui/paragui/include
In directory subversions:/tmp/cvs-serv16607/include

Modified Files:
        Makefile.am 
Added Files:
        pgxmllayoutloader.h 
Log Message:
added new xml layoutloader framework (not finished)


--- NEW FILE ---
#ifndef PG_LAYOUTLOADER_H
#define PG_LAYOUTLOADER_H

#include "pgsignals.h"
#include <string>
#include <map>

typedef enum {
        DOC,
        LAYOUT,
        HEAD,
        BODY
} PG_XML_SECTION;

class PG_XMLTagList : public std::map<std::string, std::string> {
public:
        PG_XMLTagList(const char** atts);
};

class PG_XMLTag {
public:
        PG_XMLTag(const char* n = NULL, const char** a = NULL, PG_XML_SECTION 
sec = DOC);
        
        void Log();
        
        std::string name;
        PG_XMLTagList taglist;
        PG_XML_SECTION section;
};


class PG_XMLLayoutLoaderBase {
public:
        bool Load(PG_Widget* parent, const char* filename);

        PG_Signal1<PG_XMLTag&> sigStartTag;
        PG_Signal1<PG_XMLTag&> sigEndTag;
        
private:
        
        static void XMLStartDoc(void *userData, const char *name, const char 
**atts);
        
        static void XMLEndDoc(void *userData, const char *name);
};


template<class H>
class PG_XMLLayoutLoaderHolder : public PG_XMLLayoutLoaderBase {
private:
        H executor;
        
public:
        
        PG_XMLLayoutLoaderHolder() {
                sigStartTag.connect(slot(executor, &H::handleStartTag));
                sigEndTag.connect(slot(executor, &H::handleEndTag));
        }
};


class PG_XMLBasicExecutor : public SigC::Object {
public:
        
        bool handleStartTag(PG_XMLTag& tag);
        
        bool handleEndTag(PG_XMLTag& tag);
};

class PG_XMLLayoutLoader : public PG_XMLLayoutLoaderHolder<PG_XMLBasicExecutor> 
{
};

#endif // PG_LAYOUTLOADER_H

Index: Makefile.am
===================================================================
RCS file: /cvsroot/paragui/paragui/include/Makefile.am,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** Makefile.am 26 Jun 2002 11:22:17 -0000      1.9
--- Makefile.am 27 Jun 2002 14:37:11 -0000      1.10
***************
*** 55,59 ****
        pgfilelist.h \
        pgsingleton.h \
!       pgfactory.h
  
  EXTRA_DIST = \
--- 55,60 ----
        pgfilelist.h \
        pgsingleton.h \
!       pgfactory.h \
!       pgxmllayoutloader.h
  
  EXTRA_DIST = \




reply via email to

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