mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-15 02:56:35 +01:00
rollback to 3428, before the mysterious removal of libs/* at 3431/3432
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
9c0d7d72d7
commit
449aab3c46
2869 changed files with 1026749 additions and 0 deletions
228
libs/glibmm2/tools/m4/class_gtkobject.m4
Normal file
228
libs/glibmm2/tools/m4/class_gtkobject.m4
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
dnl $Id: class_gtkobject.m4 413 2007-05-14 19:28:31Z murrayc $
|
||||
|
||||
|
||||
|
||||
define(`_CLASS_GTKOBJECT',`dnl
|
||||
_PUSH()
|
||||
dnl
|
||||
dnl Define the args for later macros
|
||||
define(`__CPPNAME__',`$1')
|
||||
define(`__CNAME__',`$2')
|
||||
define(`__CCAST__',`$3')
|
||||
define(`__BASE__',_LOWER(__CPPNAME__))
|
||||
define(`__CPPPARENT__',`$4')
|
||||
define(`__CPARENT__',`$5')
|
||||
define(`__PCAST__',`($5*)')
|
||||
|
||||
dnl Some C types, e.g. GdkWindow or GdkPixmap, are a typedef to their base type,
|
||||
dnl rather than the real instance type. That is really ugly, yes. We get around
|
||||
dnl the problem by supporting optional __REAL_* arguments to this macro.
|
||||
define(`__REAL_CNAME__',ifelse(`$6',,__CNAME__,`$6'))
|
||||
define(`__REAL_CPARENT__',ifelse(`$7',,__CPARENT__,`$7'))
|
||||
|
||||
|
||||
dnl
|
||||
dnl ----------------------- Constructors -------------------------
|
||||
dnl
|
||||
|
||||
|
||||
_POP()
|
||||
_SECTION(SECTION_CLASS2)
|
||||
')dnl end of _CLASS_GTKOBJECT
|
||||
|
||||
dnl Widget and Object, and some others, have custom-written destructor implementations:
|
||||
define(`_CUSTOM_DTOR',`dnl
|
||||
_PUSH()
|
||||
dnl Define this macro to be tested for later.
|
||||
define(`__BOOL_CUSTOM_DTOR__',`$1')
|
||||
_POP()
|
||||
')
|
||||
|
||||
dnl Gtk::Object has a custom-written cast implementation:
|
||||
define(`_CUSTOM_CTOR_CAST',`dnl
|
||||
_PUSH()
|
||||
dnl Define this macro to be tested for later.
|
||||
define(`__BOOL_CUSTOM_CTOR_CAST__',`$1')
|
||||
_POP()
|
||||
')
|
||||
|
||||
dnl Top-level windows can not be manage()ed, so we should not use manage() in wrap_new().
|
||||
define(`_UNMANAGEABLE',`dnl
|
||||
_PUSH()
|
||||
dnl Define this macro to be tested for later.
|
||||
define(`__BOOL_UNMANAGEABLE__',`$1')
|
||||
_POP()
|
||||
')
|
||||
|
||||
dnl Optionally ifdef-out the whole .h and .cc files:
|
||||
define(`_IS_DEPRECATED',`dnl
|
||||
_PUSH()
|
||||
dnl Define this macro to be tested for later.
|
||||
define(`__BOOL_DEPRECATED__',`$1')
|
||||
_POP()
|
||||
')
|
||||
|
||||
dnl Gnome::Canvas::CanvasAA::CanvasAA() needs access to the
|
||||
dnl normally-private canvas_class_ member variable. See comments there.
|
||||
define(`_GMMPROC_PROTECTED_GCLASS',`dnl
|
||||
_PUSH()
|
||||
dnl Define this macro to be tested for later.
|
||||
define(`__BOOL_PROTECTED_GCLASS__',`1')
|
||||
_POP()
|
||||
')
|
||||
|
||||
|
||||
dnl
|
||||
dnl _END_CLASS_GTKOBJECT()
|
||||
dnl denotes the end of a class
|
||||
dnl
|
||||
define(`_END_CLASS_GTKOBJECT',`
|
||||
|
||||
_SECTION(SECTION_HEADER1)
|
||||
_STRUCT_PROTOTYPE()
|
||||
|
||||
__NAMESPACE_BEGIN__ class __CPPNAME__`'_Class; __NAMESPACE_END__
|
||||
_SECTION(SECTION_HEADER3)
|
||||
|
||||
namespace Glib
|
||||
{
|
||||
/** A Glib::wrap() method for this object.
|
||||
*
|
||||
* @param object The C instance.
|
||||
* @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
|
||||
* @result A C++ instance that wraps this C instance.
|
||||
*
|
||||
* @relates __NAMESPACE__::__CPPNAME__
|
||||
*/
|
||||
__NAMESPACE__::__CPPNAME__`'* wrap(__CNAME__`'* object, bool take_copy = false);
|
||||
} //namespace Glib
|
||||
|
||||
dnl
|
||||
dnl
|
||||
_SECTION(SECTION_PHEADER)
|
||||
|
||||
#include <glibmm/class.h>
|
||||
|
||||
__NAMESPACE_BEGIN__
|
||||
|
||||
_PH_CLASS_DECLARATION()
|
||||
|
||||
__NAMESPACE_END__
|
||||
|
||||
_SECTION(SECTION_SRC_GENERATED)
|
||||
|
||||
namespace Glib
|
||||
{
|
||||
|
||||
__NAMESPACE__::__CPPNAME__`'* wrap(__CNAME__`'* object, bool take_copy)
|
||||
{
|
||||
return dynamic_cast<__NAMESPACE__::__CPPNAME__ *> (Glib::wrap_auto ((GObject*)(object), take_copy));
|
||||
}
|
||||
|
||||
} /* namespace Glib */
|
||||
|
||||
__NAMESPACE_BEGIN__
|
||||
|
||||
|
||||
/* The *_Class implementation: */
|
||||
|
||||
_PCC_CLASS_IMPLEMENTATION()
|
||||
|
||||
Glib::ObjectBase* __CPPNAME__`'_Class::wrap_new(GObject* o)
|
||||
{
|
||||
ifdef(`__BOOL_UNMANAGEABLE__',`dnl
|
||||
return new __CPPNAME__`'((__CNAME__*)`'(o)); //top-level windows can not be manage()ed.
|
||||
',`dnl
|
||||
return manage(new __CPPNAME__`'((__CNAME__*)`'(o)));
|
||||
')
|
||||
}
|
||||
|
||||
|
||||
/* The implementation: */
|
||||
|
||||
ifdef(`__BOOL_CUSTOM_CTOR_CAST__',`dnl necessary for Gtk::Object implementation
|
||||
',`dnl
|
||||
__CPPNAME__::__CPPNAME__`'(const Glib::ConstructParams& construct_params)
|
||||
:
|
||||
__CPPPARENT__`'(construct_params)
|
||||
{
|
||||
_IMPORT(SECTION_CC_INITIALIZE_CLASS_EXTRA) dnl Does not seem to work - custom implement it instead.
|
||||
}
|
||||
|
||||
__CPPNAME__::__CPPNAME__`'(__CNAME__* castitem)
|
||||
:
|
||||
__CPPPARENT__`'(__PCAST__`'(castitem))
|
||||
{
|
||||
_IMPORT(SECTION_CC_INITIALIZE_CLASS_EXTRA) dnl Does not seem to work - custom implement it instead.
|
||||
}
|
||||
|
||||
')dnl
|
||||
ifdef(`__BOOL_CUSTOM_DTOR__',`dnl
|
||||
',`dnl
|
||||
__CPPNAME__::~__CPPNAME__`'()
|
||||
{
|
||||
destroy_();
|
||||
}
|
||||
|
||||
')dnl
|
||||
_CC_CLASS_IMPLEMENTATION()
|
||||
|
||||
__NAMESPACE_END__
|
||||
|
||||
dnl
|
||||
dnl
|
||||
dnl
|
||||
dnl
|
||||
_POP()
|
||||
dnl The actual class, e.g. Gtk::Widget, declaration:
|
||||
dnl _IMPORT(SECTION_H_SIGNALPROXIES_CUSTOM)
|
||||
|
||||
_IMPORT(SECTION_CLASS1)
|
||||
public:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
typedef __CPPNAME__ CppObjectType;
|
||||
typedef __CPPNAME__`'_Class CppClassType;
|
||||
typedef __CNAME__ BaseObjectType;
|
||||
typedef __REAL_CNAME__`'Class BaseClassType;
|
||||
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
|
||||
|
||||
virtual ~__CPPNAME__`'();
|
||||
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
m4_ifdef(`__BOOL_PROTECTED_GCLASS__',
|
||||
`protected:',`dnl else
|
||||
private:')dnl endif
|
||||
|
||||
friend class __CPPNAME__`'_Class;
|
||||
static CppClassType `'__BASE__`'_class_;
|
||||
|
||||
// noncopyable
|
||||
__CPPNAME__`'(const __CPPNAME__&);
|
||||
__CPPNAME__& operator=(const __CPPNAME__&);
|
||||
|
||||
protected:
|
||||
explicit __CPPNAME__`'(const Glib::ConstructParams& construct_params);
|
||||
explicit __CPPNAME__`'(__CNAME__* castitem);
|
||||
|
||||
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
|
||||
|
||||
public:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
static GType get_type() G_GNUC_CONST;
|
||||
static GType get_base_type() G_GNUC_CONST;
|
||||
#endif
|
||||
|
||||
///Provides access to the underlying C GtkObject.
|
||||
__CNAME__* gobj() { return reinterpret_cast<__CNAME__*>(gobject_); }
|
||||
|
||||
///Provides access to the underlying C GtkObject.
|
||||
const __CNAME__* gobj() const { return reinterpret_cast<__CNAME__*>(gobject_); }
|
||||
|
||||
_H_VFUNCS_AND_SIGNALS()
|
||||
|
||||
private:
|
||||
_IMPORT(SECTION_CLASS2)
|
||||
|
||||
')
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue