Hi to everyone, I have a class where I want to store a list of Dialogs; This List is dynamical. so I've declared an: std::vector <Gtk::Dialog> ; Here I've faced my first problem when i try to do: myList.push_back (temp_dialog); the compiler output is: error C2248: 'Gtk::Dialog::Dialog' : cannot access private member declared in class 'Gtk::Dialog' while compiling class template member function 'void std::vector<_Ty>::_Insert_n(std::_Vector_const_iterator<_Ty,_Alloc>,__w64 unsigned int,const _Ty &)' with (...........) I tried with assign, with resize and many others methods of vector (also tried std::list) and all do the same error. Second problem: Because I couldn't use std::vector I created a array which I would allocate dynamically: Declaration: Gtk::Dialog* mPopUpDialog; void MyClass::LaunchPopUps(bool launch) { 1- int numberOfPopUps = mpSystem->GetNumberOfItems(); 2- if (launch) 3- { 4- if (mActualpopUpListSize != 0) 5- { 6- LaunchVariablePopUps(false); 7- } 8- mActualpopUpListSize = numberOfPopUps; 9- mPopUpDialog = new Gtk::Dialog[numberOfPopUps]; 10- std::map<Glib::ustring,Variable> variableMap; 11- std::map<Glib::ustring,Variable>::iterator variableIT; 12- variableMap = mpSystem->GetVariablesList(); 13- int i = 0; 14- for (variableIT = variableMap.begin(); variableIT != variableMap.end(); ++variableIT) 15- { 16- mPopUpsWindow.push_back (tempWindow); 17- //mPopUpDialog[i].set_parent(*pParentWindow); 18- mPopUpDialog[i].set_title(variableIT->second.GetName()); 19- mPopUpDialog[i].show_now(); 20- ++i; 21- } 22- } 23- else 24- { 25- for (int i = 0; i < mActualpopUpListSize; i++) 26- { 27- mPopUpDialog[i].hide(); 28- } 29- mActualpopUpListSize = 0; 30- delete[] mPopUpDialog; 31- } At line 9 I allocate memory for the pop up dialogs that I need; Here OK; At line 19 I call show() instead of run() to allow the main window interaction with the open dialogs. Here OK; When I want to Hide the dialogs the program crashes when it reaches line 30. If I comment it the app runs as I want, it shows and hides well, however it will allocate memory without freeing it. Problem 3: I tried to use Gtk::manage at line 9: mPopUpDialog = Gtk::manage(new Gtk::Dialog[numberOfPopUps]); and comment line 30. But it does not solve the problem; The app does not crash but at debug console it appears a gtk error message that says: WARNING **: gtkm: Atempt to call Gtk::manage() on a Gtk::Window, but a Gtk::Window has no parent container to manage its lifetime; Can anyone figure out how to crate a dynamical array of Gtk::Dialogs? Thanks in advance, Filipe Apóstolo |