// Generated by gmmproc 2.84.0 -- DO NOT MODIFY! #ifndef _GTKMM_FIXEDLAYOUT_H #define _GTKMM_FIXEDLAYOUT_H #include #include /* Copyright (C) 2025 The gtkmm Development Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . */ #include #ifndef DOXYGEN_SHOULD_SKIP_THIS #endif /* DOXYGEN_SHOULD_SKIP_THIS */ #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { class GTKMM_API FixedLayout_Class; } // namespace Gtk #endif //DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { /** A layout manager that places child widgets at fixed positions. * * Most applications should never use this layout manager; fixed positioning * and sizing requires constant recalculations on where children need to be * positioned and sized. Other layout managers perform this kind of work * internally so that application developers don't need to do it. Specifically, * widgets positioned in a fixed layout manager will need to take into account: * * - Themes, which may change widget sizes. * * - Fonts other than the one you used to write the app will of course * change the size of widgets containing text; keep in mind that * users may use a larger font because of difficulty reading the * default, or they may be using a different OS that provides different * fonts. * * - Translation of text into other languages changes its size. Also, * display of non-English text will use a different font in many cases. * * In addition, `%Gtk::FixedLayout` does not pay attention to text direction and * thus may produce unwanted results if your app is run under right-to-left * languages such as Hebrew or Arabic. That is: normally GTK will order * containers appropriately depending on the text direction, e.g. to put labels * to the right of the thing they label when using an RTL language; * `%Gtk::FixedLayout` won't be able to do that for you. * * Finally, fixed positioning makes it kind of annoying to add/remove UI * elements, since you have to reposition all the other elements. This is a * long-term maintenance problem for your application. * * @newin{4,20} */ class GTKMM_API FixedLayout : public LayoutManager { #ifndef DOXYGEN_SHOULD_SKIP_THIS public: using CppObjectType = FixedLayout; using CppClassType = FixedLayout_Class; using BaseObjectType = GtkFixedLayout; using BaseClassType = GtkFixedLayoutClass; // noncopyable FixedLayout(const FixedLayout&) = delete; FixedLayout& operator=(const FixedLayout&) = delete; private: friend class FixedLayout_Class; static CppClassType fixedlayout_class_; protected: explicit FixedLayout(const Glib::ConstructParams& construct_params); explicit FixedLayout(GtkFixedLayout* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: FixedLayout(FixedLayout&& src) noexcept; FixedLayout& operator=(FixedLayout&& src) noexcept; ~FixedLayout() noexcept override; /** Get the GType for this class, for use with the underlying GObject type system. */ static GType get_type() G_GNUC_CONST; #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_base_type() G_GNUC_CONST; #endif ///Provides access to the underlying C GObject. GtkFixedLayout* gobj() { return reinterpret_cast(gobject_); } ///Provides access to the underlying C GObject. const GtkFixedLayout* gobj() const { return reinterpret_cast(gobject_); } ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. GtkFixedLayout* gobj_copy(); private: protected: FixedLayout(); public: static Glib::RefPtr create(); public: public: //C++ methods used to invoke GTK+ virtual functions: protected: //GTK+ Virtual Functions (override these to change behaviour): //Default Signal Handlers:: }; } // namespace Gtk 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 Gtk::FixedLayout */ GTKMM_API Glib::RefPtr wrap(GtkFixedLayout* object, bool take_copy = false); } #endif /* _GTKMM_FIXEDLAYOUT_H */