| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Make it possible for named custom types to register additions to the
class init function and to register an instance init function.
An extra class init function is useful in Gtk::WidgetCustomDraw and
Gtk::WidgetCustomSnapshot. Bug 775348
|
|
|
|
| |
and let connect_property_changed() return a sigc::connection.
|
|
|
|
|
|
|
| |
std::forward_list is ideally suited for storing pointers to the interfaces
of custom types. The list is often empty, never long. No need to use a pointer
to a container in order to save storage space (as I did in the previous
commit). An empty std::forward_list consists of nothing but a pointer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* glib/glibmm/class.[cc|h]: Remove the clone_custom_type() overload without
an interface_class_vector_type argument.
* glib/glibmm/interface.cc:
* glib/glibmm/object.cc:
* glib/glibmm/objectbase.[cc|h]: Replace the std::map containing
ExtraObjectBaseData with instance data in ObjectBase. The map was just a way
of avoiding an ABI break, but now we can break ABI.
The new data is a std::unique_ptr<Class::interface_class_vector_type> rather
than a Class::interface_class_vector_type. It's a vector which is used only
during a short period during object construction, and only for custom objects.
With a pointer to the vector, it need not be created for the majority of
objects, and if it is created, it can be deleted when it's no longer needed.
* gio/src/application.ccg:
* glib/glibmm/main.cc: Add #include <mutex> that should have been there before,
but now became necessary, when it was removed from objectbase.h.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* glib/glibmm/dispatcher.[cc|h]: Add Dispatcher::connect(&&).
* glib/glibmm/objectbase.[cc|h]: Add ObjectBase::connect_property_changed(&&)
and ObjectBase::connect_property_changed_with_return(&&).
* glib/glibmm/propertyproxy_base.[cc|h]: Add PropertyProxyConnectionNode(&&)
ctor, PropertyProxyConnectionNode::connect_changed() and
SignalProxyProperty::connect(&&).
* glib/glibmm/signalproxy.[cc|h]: Add SignalProxyNormal::connect_impl_(&&),
SignalProxy::connect(&&), SignalProxy::connect_notify(&&),
SignalProxyDetailed::connect_impl_(&&), SignalProxyDetailedAnyType::connect(&&)
and SignalProxyDetailedAnyType::connect_notify(&&).
* glib/glibmm/signalproxy_connectionnode.[cc|h]:
Add SignalProxyConnectionNode(&&) ctor
|
| |
|
|
|
|
|
|
| |
Instead of a (now deprecated) Glib::Threads::Mutex*.
As discussed here:
https://bugzilla.gnome.org/show_bug.cgi?id=757674#c12
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* glib/glibmm/interface.cc: Don't call ObjectBase's move assignment operator
from Interface's move assignment operator.
* glib/glibmm/object.cc: Perform of job of sigc::trackable's move constructor
in Object's move constructor.
* glib/glibmm/objectbase.cc: Move constructor: Set gobject_ = nullptr.
Fix the assignment of cpp_destruction_in_progress_.
Move assignment: Add self-assignment guard. Avoid the risk of accidentally
deleting *this. Let a call to initialize_move() do most of the job.
* tests/glibmm_interface_move/main.cc:
* tests/glibmm_object_move/main.cc:
* tests/glibmm_objectbase_move/main.cc: Really test move assignment.
Test that the wrapped C object has been moved, and not copied.
Bug #756962.
|
|
|
|
| |
* glib/glibmm/objectbase.cc: Cast pointers to void* in call to g_warning().
|
| |
|
|
|
|
|
| |
Destructors are already noexcept, but this makes that even clearer.
This might be foolish.
|
|
|
|
|
|
|
|
|
|
|
| |
And _move_current_wrapper() for it to use.
Object and Interface can use initialize_move() in their move
constructors. They need to do this because their calls to the
ObjectBase move constructors will not actually run, at least
when in a derived class, because ObjectBase is a virtual base
class (for use in virtual inheritance).
We have initialize() for much the same reason, for the regular
constructors.
|
|
|
|
|
| |
Add move constructors and move assignment operators so that derived
classes can have these too.
|
| |
|
|
|
|
|
|
| |
* glib/glibmm/objectbase.[h|cc]: Use a plain pointer instead of std::auto_ptr.
auto_ptr is deprecated in C++11, and can cause compilation warnings.
Bug #748630.
|
|
|
|
| |
This reverts commit db1668a39d9646882d5aa6b7386a3b7ea70f99af.
|
|
|
|
| |
This reverts commit 5d4342dd14bb7ca79b63c1341fdfa420164b35e4.
|
| |
|
|
|
|
|
|
|
|
| |
* glib/glibmm/objectbase.cc: set_property_value():
* glib/glibmm/propertyproxy_base.cc: set_property():
If the value is a G_TYPE_STRING (a gchar*), and is "",
then pass 0 instead.
Bug #686909
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* glib/glibmm/class.[h|cc]: Add a clone_custom_type() overload that takes
a vector of pointers to Interface_Class instances, so we can call their
add_interface() functions on the GType just after registering it, but before
instantiating the first GObject.
custom_class_init_function(): Override properties of implemented interfaces
that have not been overridden in a base class.
* glib/glibmm/interface.cc:
Interface::Interface(const Interface_Class& interface_class):
If the GObject has not been instantiated yet, then add interface_class to
the Class::custom_interface_classes vector.
* glib/glibmm/objectbase.[h|cc]: Add extra_object_base_data and
extra_object_base_data_mutex.
* glib/glibmm/objectbase.cc: ~ObjectBase(): Erase 'this' from
extra_object_base_data.
* glib/glibmm/object.cc: Default constructor and
Object::Object(const Glib::ConstructParams& construct_params): Pass the list
of Interface_Class pointers to the new Class::clone_custom_type() method
overload. Bug #697229.
|
|
|
|
|
|
|
| |
* gio/giomm/*.[h|cc]:
* gio/src/*.[hg|ccg]:
* glib/glibmm/*.[h|cc]:
* glib/src/*.[hg|ccg]: Strip trailing whitespace. Bug #681072.
|
|
|
|
|
| |
This reverts commit 590000d08fa94a72d042ac1143fa042c90cf9705.
Initializing glibmm in ObjectBase is not actually necessary.
|
|
|
|
|
|
|
|
|
| |
* glib/glibmm/objectbase.cc: Constructors: Call Glib::init(), making it
unnecessary to call this explicitly before instantiating a Glib::Object.
* gio/src/application.ccg: Make sure that giomm can be used as soon as a
Gio::Application has been instantiated.
This should let use just instantiate a Gtk::Application
instead of using Gtk::Main.
|
|
|
|
|
|
| |
* glib/glibmm/objectbase.cc: A parameter passed to g_warning() in
destroy_notify_callback() describing a name of GObject should be indeed
a name, not a pointer to GObject.
|
| |
|
|
|
|
|
|
|
|
|
| |
* glib/glibmm/debug.h: Remove mention of G_GNUC_PRETTY_FUNCTION in
comment because a code maintenance tool of André Klapper complained
about it.
* glib/glibmm/objectbase.cc: Likewise.
svn path=/trunk/; revision=785
|
|
|
|
|
|
|
|
|
|
| |
2009-01-20 Deng Xiyue <manphiz@gmail.com>
* Change license header to mention Lesser General Public License
version 2.1 instead of Library General Public License, to be
consistent with COPYING.
svn path=/trunk/; revision=779
|
|
|
|
|
|
|
|
|
|
|
| |
2008-01-20 Murray Cumming <murrayc@murrayc.com>
* glib/glibmm/objectbase.cc:
* glib/glibmm/objectbase.h: Added connect_property_changed_with_return()
because onnect_property_changed() doesn not return a sigc::connection.
Bug #433984 (Philip Langdale, Kalle Vahlman).
svn path=/trunk/; revision=530
|
|
|
|
|
|
|
|
|
|
|
|
| |
2006-11-10 Murray Cumming <murrayc@murrayc.com>
* glib/glibmm/objectbase.cc:
* glib/glibmm/objectbase.h: Added connect_property_changed(),
as an alternative to use when the property proxies are not
available because GLIBMM_PROPERTIES_ENABLED is not defined.
* glib/glibmm/propertyproxy_base.cc:
* glib/glibmm/propertyproxy_base.h: Move PropertyProxyConnectionNode
into the header, so we can reuse it for connect_property_changed().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2006-04-12 Murray Cumming <murrayc@murrayc.com>
* glib/glibmm/main.cc:
* glib/glibmm/objectbase.cc:
* glib/glibmm/property.cc:
* glib/glibmm/ustring.cc:
* glib/glibmm/value_custom.cc:
* glib/src/spawn.ccg: Mark private functions as
static, to stop them being exported in the API, to reduce the
library code size slightly.
* tools/m4/signal.m4: Make generated callback functions static, for
the same reasons.
|
|
|
|
|
| |
* glib/glibmm/objectbase.cc: Spring cleaning.
* glib/glibmm/object.cc: ditto.
|
|
|
|
|
|
|
|
|
| |
2004-02-13 Martin Schulze <teebaum@cvs.gnome.org>
* documentation fixes and corrections in the comments reflecting
the shift to libsigc++ 2.
* make all source files in example thread use libsigc++ 2 instead
of libsigc++ 1.2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2003-11-01 Murray Cumming <murrayc@usa.net>
* glib/glibmm/propertyproxy.h, propertyproxy_base.[h|cc]: Now uses
ObjectBase instead of Object, because glib can now have properties
on interfaces. This is needed, for instance, by the GtkFileChooser
interface wrapper in gtkmm.
* glib/glibmm/object.h: Moved get/set_property() methods into
ObjectBase, for the same reason.
* tools/pm/WrapParser.pm, Output.pm: Added optional no_default_handler
parameter to gmmproc _WRAP_SIGNAL() macro, for signals whose
default signal handler is not in the klass struct and therefore
can not be overridden.
|
| |
|
|
|
|
|
|
| |
2003-01-22 Murray Cumming <murrayc@usa.net>
* GTKMM_ m4 tests and #defines are now prefixed with GLIBMM_
|
|
|