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

Reply via email to