File indexing completed on 2024-04-28 05:32:14

0001 #ifndef oxygenrcstyle_h
0002 #define oxygenrcstyle_h
0003 /*
0004 * this file is part of the oxygen gtk engine
0005 * SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0006 *
0007 * based on the Null Theme Engine for Gtk+.
0008 * SPDX-FileCopyrightText: 2008 Robert Staudinger <robert.staudinger@gmail.com>
0009 *
0010 * SPDX-License-Identifier: LGPL-2.0-or-later
0011 */
0012 
0013 #include <gtk/gtk.h>
0014 
0015 // Oxygen RcStyle struct
0016 struct OxygenRcStyle
0017 { GtkRcStyle parent; };
0018 
0019 // oxygen RcStyleClass struct
0020 struct OxygenRcStyleClass
0021 { GtkRcStyleClass parent; };
0022 
0023 namespace Oxygen
0024 {
0025     class RCStyle
0026     {
0027 
0028         public:
0029 
0030         //! type registration
0031         static void registerType( GTypeModule* );
0032 
0033         //! registered type
0034         static GType type( void );
0035 
0036         protected:
0037 
0038         //! class initialization method
0039         static void classInit( OxygenRcStyleClass* );
0040 
0041         //! style creation
0042         static GtkStyle* createStyle( GtkRcStyle* );
0043 
0044         //! parse RC options
0045         static guint parse( GtkRcStyle*, GtkSettings*, GScanner* );
0046 
0047         //! merge styles
0048         static void merge( GtkRcStyle*, GtkRcStyle* );
0049 
0050         private:
0051 
0052         //! parent class
0053         static GtkRcStyleClass* _parentClass;
0054 
0055         //! registered type indo
0056         static GTypeInfo _typeInfo;
0057 
0058         //! registered type
0059         static GType _type;
0060 
0061     };
0062 }
0063 
0064 
0065 #endif /* OXYGEN_RC_STYLE_H */