I have a few questions regarding this small app. One, Gtk::Window is a class and it can but loaded in the heap, just like I did in the main() method. The same rule applies to Gtk::MessageDialog, since it is a class that derives from Gtk::Window; I have loaded a Gtk::MessageDialog's object in the heap. Please correct me if I am wrong. Equally important, the program compiles, but it displays a black window wih a message saying something like: (myApp.exe:1040): Glib-GObject-CRITICAL ** gtype.c:2710: You forgot to call g_type_init() This message is repeated many times in the same black window. I am not using precompile header in my VSE10 and I am using gtkmm-win32-devel-2.22.0-2 package in a Win7 machine.
OK, now that I have stated the above. I would like to know: In the example in http://git.gnome.org/browse/gtkmm-documentation/tree/examples/book/dialogs/messagedialog/examplewindow.cc . The Gtk::MessageDialog object declaration only has two parameters, that exaple is not an options for me since I'm not deriving from any Gtk class, I am deriving from std::exception. Is it possible to declare a Gtk::MessageDialog object in a class that is not derived from a Gtk class? and can this Gtk::MessageDialog be decalered and instantiated as a pointer? TIA #define WIN32_LEAN_AND_MEAN #include <stdio.h> #include <cstddef> #include <xstddef> #include <iostream> #include <stdlib.h> #include <cstdlib> #include <regex> #include <memory> #include <gtkmm.h> #include <windows.h> #include <exception> #include "uiexception.hpp" using namespace std; int main( int argc, char **argv ); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow){ return main (__argc, __argv); } int main (int argc, char *argv[]) { ns::uiexception uiex; Gtk::Main app(argc, argv); shared_ptr< Gtk::Window > aWindow(new Gtk::Window); Gtk::Main::run( *aWindow ); return 0; } file.hpp ~~~~~~~~ #ifndef ns_UIEXCEPTION_HPP #define ns_UIEXCEPTION_HPP #include <gtkmm.h> #include <glibmm/ustring.h> namespace ns { class uiexception : public std::exception{ public: uiexception(); virtual ~uiexception()throw(){} private: Glib::ustring version; Gtk::MessageDialog* dialog; void Init(); }; } #endif file.cpp ~~~~~~~~ #ifndef ns_UIEXCEPTION_HPP #include "uiexception.hpp" #endif void ns::uiexception::Init(){ version = "0.0.5"; std::shared_ptr<Gtk::MessageDialog> dialog( new Gtk::MessageDialog( " message", Message false, Markup Gtk::MESSAGE_WARNING, MessageType Gtk::BUTTONS_OK, Buttons false)); modal } ns::uiexception::uiexception(){ Init(); } #ifndef JME_UIEXCEPTION_HPP #include "uiexception.hpp" #endif void jme::uiexception::Init(){ version = "0.0.5"; std::shared_ptr<Gtk::MessageDialog> dialog( new Gtk::MessageDialog( " message", //Message false, // Markup Gtk::MESSAGE_WARNING, //MessageType Gtk::BUTTONS_OK, //Buttons false)); // modal } jme::uiexception::uiexception(){ Init(); //coment or uncoment this function call to test both MessageDialogs Gtk::MessageDialog Dialog( " message", // Message false, // Markup Gtk::MESSAGE_WARNING, // MessageType Gtk::BUTTONS_OK, // Buttons false); // modal }
_______________________________________________ gtkmm-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/gtkmm-list
