File indexing completed on 2024-05-05 05:34:57
0001 /* 0002 this file is part of the oxygen gtk engine 0003 SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr> 0004 SPDX-FileCopyrightText: 2010 Ruslan Kabatsayev <b7.10110111@gmail.com> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #include "oxygenversion.h" 0010 #include "../src/oxygendefines.h" 0011 #include "config.h" 0012 0013 #include <iostream> 0014 #include <sstream> 0015 #include <glib-object.h> 0016 #include <gtk/gtk.h> 0017 0018 namespace Oxygen 0019 { 0020 0021 //____________________________________________ 0022 std::string Version::gtkVersion( void ) 0023 { 0024 std::ostringstream buffer; 0025 buffer << gtk_major_version<< "." << gtk_minor_version << "." << gtk_micro_version; 0026 return buffer.str(); 0027 } 0028 0029 //____________________________________________ 0030 std::string Version::libVersion( void ) 0031 { 0032 // load type for oxygen version container 0033 GType type( g_type_from_name( OXYGEN_VERSION_TYPE_NAME ) ); 0034 if( !type ) return std::string(); 0035 0036 // load quark 0037 GQuark quark( g_quark_try_string( OXYGEN_VERSION_QUARK_NAME ) ); 0038 if( !quark ) return std::string(); 0039 0040 // retrieve data from type 0041 gpointer data( g_type_get_qdata( type, quark ) ); 0042 return data ? std::string( static_cast<const char*>( data ) ):std::string(); 0043 0044 } 0045 0046 //____________________________________________ 0047 void Version::print( void ) 0048 { 0049 0050 std::cout << "gtk: " << gtkVersion() << std::endl; 0051 0052 const std::string libraryVersion( libVersion() ); 0053 if( !libraryVersion.empty() ) 0054 { std::cout << "oxygen-gtk: " << libraryVersion << std::endl; } 0055 0056 std::cout << "oxygen-gtk-demo: " << OXYGEN_VERSION << std::endl; 0057 0058 } 0059 }