separated EdjePart and EvasEdje class

SVN revision: 38421
This commit is contained in:
Andreas Volz 2009-01-02 21:41:30 +00:00
parent 2d61537d2c
commit f12ec14777
7 changed files with 424 additions and 353 deletions

View File

@ -9,11 +9,15 @@ AM_CXXFLAGS = @PACKAGE_CFLAGS@ \
noinst_LTLIBRARIES = libeflpp_edje.la
libeflpp_edje_la_SOURCES = \
eflpp_edje.cpp
eflpp_edje.cpp\
eflpp_edjepart.cpp\
eflpp_evasedje.cpp
libeflpp_includedir = $(pkgincludedir)
libeflpp_include_DATA = \
eflpp_edje.h
eflpp_edje.h\
eflpp_edjepart.h\
eflpp_evasedje.h
EXTRA_DIST = $(libeflpp_include_DATA)

View File

@ -9,201 +9,7 @@
using namespace std;
namespace efl {
const char* PartNotExistingException::what () const throw ()
{
static std::string s;
s = "EvasEdje loaded with not existing part '";
s += txt;
s += "'.";
return static_cast <const char*> (s.c_str ());
}
//===============================================================================================
// EvasEdje
//===============================================================================================
EvasEdje::EvasEdje( EvasCanvas* canvas, const char* name )
{
o = edje_object_add( canvas->obj() );
init( name ? name : "edje" );
#ifdef CWDEBUG
edje_object_message_handler_set( o, &_edje_message_handler_callback, 0 );
edje_object_signal_callback_add( o, "*", "*", &_edje_signal_handler_callback, 0 );
#endif
}
EvasEdje::EvasEdje( const char* filename, const char* groupname, EvasCanvas* canvas, const char* name )
{
o = edje_object_add( canvas->obj() );
init( name ? name : groupname );
#ifdef CWDEBUG
edje_object_message_handler_set( o, &_edje_message_handler_callback, 0 );
edje_object_signal_callback_add( o, "*", "*", &_edje_signal_handler_callback, 0 );
#endif
setFile( filename, groupname );
}
EvasEdje::EvasEdje( int x, int y, const char* filename, const char* groupname, EvasCanvas* canvas, const char* name )
{
o = edje_object_add( canvas->obj() );
init( name ? name : groupname );
#ifdef CWDEBUG
edje_object_message_handler_set( o, &_edje_message_handler_callback, 0 );
edje_object_signal_callback_add( o, "*", "*", &_edje_signal_handler_callback, 0 );
#endif
setFile( filename, groupname );
move( x, y );
}
EvasEdje::EvasEdje( Evas_Object* object)
{
o = object;
mManaged = false;
}
bool EvasEdje::setFile( const char* filename, const char* groupname )
{
edje_object_file_set( o, filename, groupname );
int errorcode = edje_object_load_error_get(o);
Dout( dc::notice, "EvasEdje::file_set" << " path=" << filename << " group=" << groupname << "(" << EVAS_LOAD_ERROR[errorcode] << ")" );
if ( errorcode ) cerr << "ERROR: EvasEdje::setFile( '" << filename << "|" << groupname << ") = " << EVAS_LOAD_ERROR[errorcode] << endl;
return ( errorcode == 0 );
}
Size EvasEdje::minimalSize() const
{
int w, h;
edje_object_size_min_get( o, &w, &h );
Dout( dc::notice, "size min get seems to be " << w << " x " << h );
return Size( w, h );
}
Size EvasEdje::maximumSize() const
{
int w, h;
edje_object_size_max_get( o, &w, &h );
Dout( dc::notice, "size max get seems to be " << w << " x " << h );
return Size( w, h );
}
EvasEdje::~EvasEdje()
{
//FIXME: Remove callbacks?
}
bool EvasEdje::hasPart( const char* partname ) const
{
return edje_object_part_exists( o, partname );
}
CountedPtr <EdjePart> EvasEdje::operator[]( const char* partname )
{
return part( partname );
}
CountedPtr <EdjePart> EvasEdje::part( const char* partname )
{
if ( hasPart( partname ) )
{
EdjePart* ep = new EdjePart( this, partname );
return CountedPtr <EdjePart> (ep);
}
throw PartNotExistingException (partname);
}
void EvasEdje::connect( const char* emission, const char* source, const EdjeSignalSlot& slot )
{
EdjeSignalSignal* signal = new EdjeSignalSignal();
AllocTag( signal, emission );
signal->connect( slot );
edje_object_signal_callback_add( o, emission, source, &_edje_signal_handler_callback, static_cast<void*>( signal ) );
}
void EvasEdje::emit( const char* emission, const char* source )
{
edje_object_signal_emit( o, emission, source );
}
void EvasEdje::_edje_message_handler_callback( void* data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg )
{
Dout( dc::notice, "EvasEdje::_edje_message_handler_callback()" );
//EvasEdje* instance = reinterpret_cast<EvasEdje*>( data );
}
void EvasEdje::_edje_signal_handler_callback( void *data, Evas_Object *obj, const char *emission, const char *source )
{
Dout( dc::notice, "EvasEdje::_edje_signal_handler_callback( " << (emission ? emission:"<null>") << ", " << (source ? source:"<null>") << " ) " );
EdjeSignalSignal* signal = reinterpret_cast<EdjeSignalSignal*>( data );
if ( signal ) signal->emit( emission, source );
else Dout( dc::warning, "EvasEdje::_edje_signal_handler_callback() - got callback without valid signal" );
}
EvasEdje* EvasEdje::wrap( Evas_Object* o )
{
return new EvasEdje( o );
}
//===============================================================================================
// EdjePart
//===============================================================================================
EdjePart::EdjePart( EvasEdje* parent, const char* partname )
:_parent( parent), _partname( partname )
{
Dout( dc::notice, " EdjePart::EdjePart( '" << _partname << "' ) constructing..." );
}
EdjePart::~EdjePart()
{
Dout( dc::notice, "~EdjePart::EdjePart( '" << _partname << "' ) destructing..." );
}
Rect EdjePart::geometry() const
{
int x; int y; int w; int h;
edje_object_part_geometry_get( _parent->obj(), _partname, &x, &y, &w, &h );
return Rect( x, y, w, h );
}
void EdjePart::setText( const char* text )
{
edje_object_part_text_set( _parent->obj(), _partname, text );
}
const char* EdjePart::text() const
{
return edje_object_part_text_get( _parent->obj(), _partname );
}
void EdjePart::swallow( EvasObject* object )
{
edje_object_part_swallow( _parent->obj(), _partname, object->obj() );
}
void EdjePart::unswallow( EvasObject* object )
{
edje_object_part_unswallow( _parent->obj(), object->obj() );
}
CountedPtr <EvasObject> EdjePart::swallow()
{
Evas_Object *eo = edje_object_part_swallow_get( _parent->obj(), _partname );
EvasObject *ret_o = EvasObject::wrap (eo);
return CountedPtr <EvasObject> (ret_o);
}
/*const EvasObject* EdjePart::getObject ( const char* name )
{
return EvasObject::objectLink( edje_object_part_object_get( static_cast <const Evas_Object*> (_parent->obj()), name ) );
}*/
} // end namespace efl

View File

@ -1,5 +1,5 @@
#ifndef EDJE_BASE
#define EDJE_BASE
#ifndef EFLPP_EDJE_H
#define EFLPP_EDJE_H
#ifdef HAVE_CONFIG_H
#include <config.h>
@ -11,13 +11,12 @@
#include <eflpp_common.h>
#include <eflpp_countedptr.h>
#include <eflpp_evascanvas.h>
#include "eflpp_edjepart.h"
#include "eflpp_evasedje.h"
/* EFL */
#include <Edje.h>
/* STD */
#include <map>
/**
* C++ Wrapper for the Enlightenment Edje Library (EDJE)
*
@ -26,27 +25,14 @@
namespace efl {
class EdjePart;
class EvasEdje;
typedef std::map<const char*, EdjePart*> EdjePartMap;
typedef sigc::signal<void, const char*, const char*> EdjeSignalSignal;
typedef sigc::slot2<void, const char*, const char*> EdjeSignalSlot;
class PartNotExistingException : public std::exception
{
public:
PartNotExistingException (const char *partname) : txt (partname) {}
const char* what () const throw ();
private:
const char *txt;
};
//typedef std::map<const char*, EdjePart*> EdjePartMap;
//===============================================================================================
// Edje
//===============================================================================================
// TODO: why is the implementation empty?
class Edje
{
public:
@ -88,140 +74,6 @@ class Edje
~Edje();
};
//===============================================================================================
// EdjePart
//===============================================================================================
class EdjePart
{
friend class EvasEdje;
private:
EdjePart( EvasEdje* parent, const char* partname );
public:
~EdjePart();
Rect geometry() const;
void setText( const char* text );
const char* text() const;
void swallow( EvasObject* );
void unswallow( EvasObject* );
CountedPtr <EvasObject> swallow();
//const EvasObject* getObject ( const char* name );
private:
EvasEdje* _parent;
const char* _partname;
/* State?
EAPI const char *edje_object_part_state_get (Evas_Object *obj, const char *part, double *val_ret);
*/
/* Directions?
EAPI int edje_object_part_drag_dir_get (Evas_Object *obj, const char *part);
*/
/* Drag?
EAPI void edje_object_part_drag_value_set (Evas_Object *obj, const char *part, double dx, double dy);
EAPI void edje_object_part_drag_value_get (Evas_Object *obj, const char *part, double *dx, double *dy);
EAPI void edje_object_part_drag_size_set (Evas_Object *obj, const char *part, double dw, double dh);
EAPI void edje_object_part_drag_size_get (Evas_Object *obj, const char *part, double *dw, double *dh);
EAPI void edje_object_part_drag_step_set (Evas_Object *obj, const char *part, double dx, double dy);
EAPI void edje_object_part_drag_step_get (Evas_Object *obj, const char *part, double *dx, double *dy);
EAPI void edje_object_part_drag_page_set (Evas_Object *obj, const char *part, double dx, double dy);
EAPI void edje_object_part_drag_page_get (Evas_Object *obj, const char *part, double *dx, double *dy);
EAPI void edje_object_part_drag_step (Evas_Object *obj, const char *part, double dx, double dy);
EAPI void edje_object_part_drag_page (Evas_Object *obj, const char *part, double dx, double dy);
*/
private:
EdjePart();
EdjePart( const EdjePart& );
bool operator=( const EdjePart& );
bool operator==( const EdjePart& );
};
//===============================================================================================
// EvasEdje
//===============================================================================================
class EvasEdje : public EvasObject
{
public:
EvasEdje( EvasCanvas* canvas, const char* name = 0 );
EvasEdje( const char* filename, const char* groupname, EvasCanvas* canvas, const char* name = 0 );
EvasEdje( int x, int y, const char* filename, const char* groupname, EvasCanvas* canvas, const char* name = 0 );
~EvasEdje();
/*
EAPI void edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *obj, const char *emission, const char *source), void *data);
EAPI void *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *obj, const char *emission, const char *source));
EAPI void edje_object_signal_emit (Evas_Object *obj, const char *emission, const char *source);
EAPI void edje_object_text_change_cb_set (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, const char *part), void *data);
EAPI void edje_object_message_send (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
EAPI void edje_object_message_handler_set (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg), void *data);
EAPI void edje_object_message_signal_process (Evas_Object *obj);
EAPI void edje_message_signal_process (void);
*/
bool setFile( const char* filename, const char* partname );
void setPlaying( bool b );
bool isPlaying() const;
void setAnimated( bool b );
bool isAnimated() const;
int freeze();
int thaw();
void setColorClass( const char* colorclass, const Color& object, const Color& outline, const Color& shadow );
void setTextClass( const char* textclass, const char* fontname, int size );
void setMinimumSize( const Size& size );
void setMaximumSize( const Size& size );
Size minimalSize() const;
Size maximumSize() const;
void recalculateLayout();
bool hasPart( const char* partname ) const;
CountedPtr <EdjePart> operator[]( const char* partname );
/*!
* @param partname Access a EdjePart in the EvasEdje.
* @throw PartNotExistingException
*/
CountedPtr <EdjePart> part( const char* partname );
/* signals and slots */
void connect( const char* emission, const char* source, const EdjeSignalSlot& slot );
void emit( const char* emission, const char* source );
static EvasEdje *wrap( Evas_Object* o );
private:
static void _edje_message_handler_callback( void* data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg );
static void _edje_signal_handler_callback( void *data, Evas_Object *obj, const char *emission, const char *source );
EvasEdje();
EvasEdje( const EvasEdje& );
EvasEdje( Evas_Object* object );
bool operator=( const EvasEdje& );
bool operator==( const EvasEdje& );
};
}
#endif
#endif // EFLPP_EDJE_H

View File

@ -0,0 +1,70 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "eflpp_edjepart.h"
#include "eflpp_evasedje.h"
/* EFL */
#include <Edje.h>
/* STD */
#include <map>
namespace efl {
EdjePart::EdjePart( EvasEdje* parent, const char* partname )
:_parent( parent), _partname( partname )
{
Dout( dc::notice, " EdjePart::EdjePart( '" << _partname << "' ) constructing..." );
}
EdjePart::~EdjePart()
{
Dout( dc::notice, "~EdjePart::EdjePart( '" << _partname << "' ) destructing..." );
}
Rect EdjePart::geometry() const
{
int x; int y; int w; int h;
edje_object_part_geometry_get( _parent->obj(), _partname, &x, &y, &w, &h );
return Rect( x, y, w, h );
}
void EdjePart::setText( const char* text )
{
edje_object_part_text_set( _parent->obj(), _partname, text );
}
const char* EdjePart::text() const
{
return edje_object_part_text_get( _parent->obj(), _partname );
}
void EdjePart::swallow( EvasObject* object )
{
edje_object_part_swallow( _parent->obj(), _partname, object->obj() );
}
void EdjePart::unswallow( EvasObject* object )
{
edje_object_part_unswallow( _parent->obj(), object->obj() );
}
CountedPtr <EvasObject> EdjePart::swallow()
{
Evas_Object *eo = edje_object_part_swallow_get( _parent->obj(), _partname );
EvasObject *ret_o = EvasObject::wrap (eo);
return CountedPtr <EvasObject> (ret_o);
}
/*const EvasObject* EdjePart::getObject ( const char* name )
{
return EvasObject::objectLink( edje_object_part_object_get( static_cast <const Evas_Object*> (_parent->obj()), name ) );
}*/
} // end namespace efl

84
src/edje/eflpp_edjepart.h Normal file
View File

@ -0,0 +1,84 @@
#ifndef EFLPP_EDJEPART_H
#define EFLPP_EDJEPART_H
/* STL */
#include <string>
/* EFL++ */
#include <eflpp_common.h>
#include <eflpp_countedptr.h>
#include "eflpp_evasobject.h"
using std::string;
namespace efl {
class EvasEdje;
class PartNotExistingException : public std::exception
{
public:
PartNotExistingException (const char *partname) : txt (partname) {}
const char* what () const throw ();
private:
const char *txt;
};
class EdjePart
{
friend class EvasEdje;
private:
EdjePart( EvasEdje* parent, const char* partname );
public:
~EdjePart();
Rect geometry() const;
void setText( const char* text );
const char* text() const;
void swallow( EvasObject* );
void unswallow( EvasObject* );
CountedPtr <EvasObject> swallow();
//const EvasObject* getObject ( const char* name );
private:
EvasEdje* _parent;
const char* _partname;
/* State?
EAPI const char *edje_object_part_state_get (Evas_Object *obj, const char *part, double *val_ret);
*/
/* Directions?
EAPI int edje_object_part_drag_dir_get (Evas_Object *obj, const char *part);
*/
/* Drag?
EAPI void edje_object_part_drag_value_set (Evas_Object *obj, const char *part, double dx, double dy);
EAPI void edje_object_part_drag_value_get (Evas_Object *obj, const char *part, double *dx, double *dy);
EAPI void edje_object_part_drag_size_set (Evas_Object *obj, const char *part, double dw, double dh);
EAPI void edje_object_part_drag_size_get (Evas_Object *obj, const char *part, double *dw, double *dh);
EAPI void edje_object_part_drag_step_set (Evas_Object *obj, const char *part, double dx, double dy);
EAPI void edje_object_part_drag_step_get (Evas_Object *obj, const char *part, double *dx, double *dy);
EAPI void edje_object_part_drag_page_set (Evas_Object *obj, const char *part, double dx, double dy);
EAPI void edje_object_part_drag_page_get (Evas_Object *obj, const char *part, double *dx, double *dy);
EAPI void edje_object_part_drag_step (Evas_Object *obj, const char *part, double dx, double dy);
EAPI void edje_object_part_drag_page (Evas_Object *obj, const char *part, double dx, double dy);
*/
private:
EdjePart();
EdjePart( const EdjePart& );
bool operator=( const EdjePart& );
bool operator==( const EdjePart& );
};
} // end namespace efl
#endif // EFLPP_EDJEPART_H

151
src/edje/eflpp_evasedje.cpp Normal file
View File

@ -0,0 +1,151 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "eflpp_evasedje.h"
#include "eflpp_edjepart.h"
/* EFL */
#include <Edje.h>
using namespace std;
namespace efl {
const char* PartNotExistingException::what () const throw ()
{
static std::string s;
s = "EvasEdje loaded with not existing part '";
s += txt;
s += "'.";
return static_cast <const char*> (s.c_str ());
}
EvasEdje::EvasEdje( EvasCanvas* canvas, const char* name )
{
o = edje_object_add( canvas->obj() );
init( name ? name : "edje" );
#ifdef CWDEBUG
edje_object_message_handler_set( o, &_edje_message_handler_callback, 0 );
edje_object_signal_callback_add( o, "*", "*", &_edje_signal_handler_callback, 0 );
#endif
}
EvasEdje::EvasEdje( const char* filename, const char* groupname, EvasCanvas* canvas, const char* name )
{
o = edje_object_add( canvas->obj() );
init( name ? name : groupname );
#ifdef CWDEBUG
edje_object_message_handler_set( o, &_edje_message_handler_callback, 0 );
edje_object_signal_callback_add( o, "*", "*", &_edje_signal_handler_callback, 0 );
#endif
setFile( filename, groupname );
}
EvasEdje::EvasEdje( int x, int y, const char* filename, const char* groupname, EvasCanvas* canvas, const char* name )
{
o = edje_object_add( canvas->obj() );
init( name ? name : groupname );
#ifdef CWDEBUG
edje_object_message_handler_set( o, &_edje_message_handler_callback, 0 );
edje_object_signal_callback_add( o, "*", "*", &_edje_signal_handler_callback, 0 );
#endif
setFile( filename, groupname );
move( x, y );
}
EvasEdje::EvasEdje( Evas_Object* object)
{
o = object;
mManaged = false;
}
bool EvasEdje::setFile( const char* filename, const char* groupname )
{
edje_object_file_set( o, filename, groupname );
int errorcode = edje_object_load_error_get(o);
// TODO: Exception handling?
//Dout( dc::notice, "EvasEdje::file_set" << " path=" << filename << " group=" << groupname << "(" << EVAS_LOAD_ERROR[errorcode] << ")" );
//if ( errorcode ) cerr << "ERROR: EvasEdje::setFile( '" << filename << "|" << groupname << ") = " << EVAS_LOAD_ERROR[errorcode] << endl;
return ( errorcode == 0 );
}
Size EvasEdje::minimalSize() const
{
int w, h;
edje_object_size_min_get( o, &w, &h );
Dout( dc::notice, "size min get seems to be " << w << " x " << h );
return Size( w, h );
}
Size EvasEdje::maximumSize() const
{
int w, h;
edje_object_size_max_get( o, &w, &h );
Dout( dc::notice, "size max get seems to be " << w << " x " << h );
return Size( w, h );
}
EvasEdje::~EvasEdje()
{
//FIXME: Remove callbacks?
}
bool EvasEdje::hasPart( const char* partname ) const
{
return edje_object_part_exists( o, partname );
}
CountedPtr <EdjePart> EvasEdje::operator[]( const char* partname )
{
return part( partname );
}
CountedPtr <EdjePart> EvasEdje::part( const char* partname )
{
if ( hasPart( partname ) )
{
EdjePart* ep = new EdjePart( this, partname );
return CountedPtr <EdjePart> (ep);
}
throw PartNotExistingException (partname);
}
void EvasEdje::connect( const char* emission, const char* source, const EdjeSignalSlot& slot )
{
EdjeSignalSignal* signal = new EdjeSignalSignal();
AllocTag( signal, emission );
signal->connect( slot );
edje_object_signal_callback_add( o, emission, source, &_edje_signal_handler_callback, static_cast<void*>( signal ) );
}
void EvasEdje::emit( const char* emission, const char* source )
{
edje_object_signal_emit( o, emission, source );
}
void EvasEdje::_edje_message_handler_callback( void* data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg )
{
Dout( dc::notice, "EvasEdje::_edje_message_handler_callback()" );
//EvasEdje* instance = reinterpret_cast<EvasEdje*>( data );
}
void EvasEdje::_edje_signal_handler_callback( void *data, Evas_Object *obj, const char *emission, const char *source )
{
Dout( dc::notice, "EvasEdje::_edje_signal_handler_callback( " << (emission ? emission:"<null>") << ", " << (source ? source:"<null>") << " ) " );
EdjeSignalSignal* signal = reinterpret_cast<EdjeSignalSignal*>( data );
if ( signal ) signal->emit( emission, source );
else Dout( dc::warning, "EvasEdje::_edje_signal_handler_callback() - got callback without valid signal" );
}
EvasEdje* EvasEdje::wrap( Evas_Object* o )
{
return new EvasEdje( o );
}
} // end namespace efl

104
src/edje/eflpp_evasedje.h Normal file
View File

@ -0,0 +1,104 @@
#ifndef EFLPP_EVASEDJE_H
#define EFLPP_EVASEDJE_H
/* STL */
#include <string>
/* EFL++ */
#include <eflpp_common.h>
#include <eflpp_countedptr.h>
#include "eflpp_evasobject.h"
#include "eflpp_edjepart.h"
#include "eflpp_evascanvas.h"
/* EFL */
#include <Edje.h>
using std::string;
namespace efl {
typedef sigc::signal<void, const char*, const char*> EdjeSignalSignal;
typedef sigc::slot2<void, const char*, const char*> EdjeSignalSlot;
class EvasEdje : public EvasObject
{
public:
EvasEdje( EvasCanvas* canvas, const char* name = 0 );
EvasEdje( const char* filename, const char* groupname, EvasCanvas* canvas, const char* name = 0 );
EvasEdje( int x, int y, const char* filename, const char* groupname, EvasCanvas* canvas, const char* name = 0 );
~EvasEdje();
/*
EAPI void edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *obj, const char *emission, const char *source), void *data);
EAPI void *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *obj, const char *emission, const char *source));
EAPI void edje_object_signal_emit (Evas_Object *obj, const char *emission, const char *source);
EAPI void edje_object_text_change_cb_set (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, const char *part), void *data);
EAPI void edje_object_message_send (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
EAPI void edje_object_message_handler_set (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg), void *data);
EAPI void edje_object_message_signal_process (Evas_Object *obj);
EAPI void edje_message_signal_process (void);
*/
bool setFile( const char* filename, const char* partname );
void setPlaying( bool b );
bool isPlaying() const;
void setAnimated( bool b );
bool isAnimated() const;
int freeze();
int thaw();
void setColorClass( const char* colorclass, const Color& object, const Color& outline, const Color& shadow );
void setTextClass( const char* textclass, const char* fontname, int size );
void setMinimumSize( const Size& size );
void setMaximumSize( const Size& size );
Size minimalSize() const;
Size maximumSize() const;
void recalculateLayout();
bool hasPart( const char* partname ) const;
CountedPtr <EdjePart> operator[]( const char* partname );
/*!
* @param partname Access a EdjePart in the EvasEdje.
* @throw PartNotExistingException
*/
CountedPtr <EdjePart> part( const char* partname );
/* signals and slots */
void connect( const char* emission, const char* source, const EdjeSignalSlot& slot );
void emit( const char* emission, const char* source );
static EvasEdje *wrap( Evas_Object* o );
private:
// TODO: wrap Edje_Message_Type to avoid include of C header
static void _edje_message_handler_callback( void* data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg );
static void _edje_signal_handler_callback( void *data, Evas_Object *obj, const char *emission, const char *source );
EvasEdje();
EvasEdje( const EvasEdje& );
EvasEdje( Evas_Object* object );
bool operator=( const EvasEdje& );
bool operator==( const EvasEdje& );
};
} // end namespace efl
#endif // EFLPP_EVASEDJE_H