Hello. I apologize in advance if this is not the correct list. I have a program that compiles and links. At runtime it will instantiate instances of GtkTable but it hangs with the error messages below if I try to use a GtkGrid. Here is the relevant section of the code.
container.cc //static method called first by the lv2 host. static LV2UI_Handle instantiate(const struct _LV2UI_Descriptor * descriptor, const char * plugin_uri, const char * bundle_path, LV2UI_Write_Function write_function, LV2UI_Controller controller, LV2UI_Widget * widget, const LV2_Feature * const * features) { std::cout << "instantiate EMAP lv2 UI" << std::endl; if (strcmp(plugin_uri, EMAP_URI) != 0) { fprintf(stderr, "SORCER_URI error: this GUI does not support plugin with URI %s\n", plugin_uri); return NULL; } gtk_init(0, NULL); std::cout << "called gtk_init." << std::endl; //allocate an emap instance. EmapContainer* emap = new EmapContainer(NULL, true); std::cout << "instantiated EMAP lv2 UI" << std::endl; return (LV2UI_Handle) emap; } //constructor called within instantiate above EmapContainer::EmapContainer(fluid_synth_t* synth_new, bool is_lv2) { if(is_lv2){ std::cout << "making EMAP container (fluidsynth UI)" << std::endl; GtkWindow* emap2 = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL)); emap = emap2; std::cout << "called gtk_window_new." << std::endl; gtk_window_set_title(GTK_WINDOW(emap2), "EMAP - Easy Midi Audio Production"); std::cout << "set title" << std::endl; gtk_window_set_default_size(GTK_WINDOW(emap2), 400, 400); std::cout << "set default window size" << std::endl; /* deprecated GtkWidget* container2 = gtk_table_new(2, 0, false); std::cout << "made container2" << std::endl; container = GTK_TABLE(container2); */ //Gtk::Grid* abc = new Gtk::Grid(); //std::cout << "made gtkmm grid" << std::endl; container2 = gtk_grid_new(); //this works...continer2 = gtk_table_new(1, 4, true); std::cout << "application hangs on gtk_grid_new()" << std::endl; } } Here is what's displayed in the console. instantiate EMAP lv2 UI called gtk_init. (jalv.gtk:5033): GLib-GObject-CRITICAL **: g_object_set_qdata_full: assertion 'quark > 0' failed making EMAP container (fluidsynth UI) called gtk_window_new. set title set default window size (jalv.gtk:5033): GLib-GObject-WARNING **: cannot register existing type 'GtkWidget' (jalv.gtk:5033): GLib-GObject-WARNING **: cannot add class private field to invalid type '<invalid>' (jalv.gtk:5033): GLib-GObject-WARNING **: cannot add private field to invalid (non-instantiatable) type '<invalid>' (jalv.gtk:5033): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed (jalv.gtk:5033): GLib-GObject-WARNING **: cannot register existing type 'GtkBuildable' (jalv.gtk:5033): GLib-GObject-CRITICAL **: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed (jalv.gtk:5033): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed (jalv.gtk:5033): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed (jalv.gtk:5033): GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed (jalv.gtk:5033): GLib-GObject-WARNING **: cannot add private field to invalid (non-instantiatable) type '<invalid>' Do you have any hints at what I can try to get the GtkGrid working? I'm trying to switch to this to this since GtkTable is deprecated. Thanks for your help. Bill.
_______________________________________________ gtk-list mailing list gtk-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-list