Advertisement
Vulpes-Vulpeos

gtkmm4/C++ signal_response error

Aug 8th, 2021
440
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. #include <gtkmm.h>
  2. #include <iostream>
  3.  
  4. class MyWindow : public Gtk::Window {
  5. public:
  6.   MyWindow();
  7.  
  8. protected:
  9.   void on_button_browse_clicked();
  10.   void on_folder_dialog_response(int response_id, Gtk::FileChooserNative* dialog);
  11.  
  12.   Gtk::Button m_button_browse;};
  13.  
  14. void MyWindow::on_button_browse_clicked(){
  15.     auto dialog = Gtk::FileChooserNative::create("Please choose a folder", *this, Gtk::FileChooser::Action::SELECT_FOLDER, "Choose", "Cancel");
  16.     dialog->set_transient_for(*this);
  17.     dialog->set_modal(true);
  18.     dialog->signal_response().connect(sigc::bind(sigc::mem_fun(*this, &MyWindow::on_folder_dialog_response), dialog)); // <- error
  19.  
  20.     dialog->show();}
  21.  
  22. void MyWindow::on_folder_dialog_response(int response_id, Gtk::FileChooserNative* dialog){
  23.   switch (response_id) {
  24.     case Gtk::ResponseType::OK: {std::cout << dialog->get_file()->get_path() << std::endl; break;}
  25.     case Gtk::ResponseType::CANCEL: {std::cout << "Cancel clicked." << response_id  << std::endl; break;}
  26.     default: {std::cout << "Unexpected button clicked: " << response_id << std::endl; break;}}}
  27.  
  28. MyWindow::MyWindow() : m_button_browse("Browse") {
  29.   set_title("File Order Randomizer");
  30.  
  31.   m_button_browse.set_margin(10);
  32.   m_button_browse.signal_clicked().connect(sigc::mem_fun(*this,
  33.               &MyWindow::on_button_browse_clicked));
  34.  
  35.   set_child(m_button_browse);}
  36.  
  37.  
  38. int main(int argc, char* argv[]){
  39.   auto app = Gtk::Application::create("org.gtkmm.examples.base");
  40.  
  41.   return app->make_window_and_run<MyWindow>(argc, argv);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement