Hello.
I'm writing a program on Ubuntu using gtkmm-3.0 and am having a problem with the method activate_default()
There is a window with an Gtk::Entry with set_activates_default(1) called, but even if I press Enter with the focus on this entry, the function activate_default() I wrote isn't called.
I don't understand why it isn't working. I already used it on 4 diferent windows I programmed, and it works fine on them.
I'm calling set_activates_default(1) on line 51 of "PackageManager.cpp".
Thanks a lot for the help.
PackageManager.hpp
Code:
#ifndef PackageManager_HPP
#define PackageManager_HPP
class PackageManager;
#include <iostream>
#include <string>
#include <gtkmm.h>
#include "ThumbnailWidget.hpp"
#include "TreeView_Tag_Package_Manager.hpp"
#include "TagListOnPackage.hpp"
#include "ExampleWindow.hpp"
using namespace std;
class PackageManager : public Gtk::Window
{
public:
ExampleWindow* window;
private:
Gtk::HBox main_hbox;
Gtk::HBox name_hbox;
Gtk::HBox files_hbox;
Gtk::VBox name_files_vbox;
Gtk::VBox outside_files_vbox;
Gtk::VBox inside_files_vbox;
Gtk::VBox file_buttons_vbox;
Gtk::VBox file_buttons_shrink_vbox;
Gtk::VBox tags_buttons_vbox;
Gtk::ScrolledWindow all_tags_scroll;
ThumbnailWidget* outside_files_scroll;
ThumbnailWidget* inside_files_scroll;
Gtk::ScrolledWindow package_tags_scroll;
Gtk::Button enter_package_button;
Gtk::Button leave_package_button;
Gtk::Button track_new_file_button;
Gtk::Button done_button;
Gtk::Button cancel_button;
Gtk::Entry name_entry;
Gtk::Entry search_entry;
Gtk::Label name_label;
TreeView_Tag_Package_Manager* all_tags_treeview;
TagListOnPackage* tags_treeview;
public:
PackageManager(ExampleWindow* new_win);
private:
void activate_default();
};
#endif
PackageManager.cpp
Code:
#include "PackageManager.hpp"
PackageManager::PackageManager(ExampleWindow* new_win)
{
set_position(Gtk::WIN_POS_CENTER_ON_PARENT);
set_title("Package manager");
set_size_request(900,400);
set_resizable(0);
window = new_win;
add(main_hbox);
{
main_hbox.set_margin_top(10);
main_hbox.set_margin_left(10);
main_hbox.set_margin_right(10);
main_hbox.set_margin_bottom(10);
main_hbox.pack_start(all_tags_scroll,Gtk::PACK_EXPAND_WIDGET);
{
all_tags_scroll.set_size_request(150,-1);
all_tags_treeview = new TreeView_Tag_Package_Manager();
all_tags_scroll.add(*all_tags_treeview);
{
all_tags_treeview->window = window;
all_tags_treeview->fill();
}
}
main_hbox.pack_start(name_files_vbox,Gtk::PACK_EXPAND_WIDGET,20);
{
name_files_vbox.pack_start(name_hbox,Gtk::PACK_SHRINK,20);
{
name_hbox.pack_start(name_label,Gtk::PACK_SHRINK,20);
{
name_label.set_text("Package name:");
}
name_hbox.pack_start(name_entry);
}
name_files_vbox.pack_start(files_hbox,Gtk::PACK_EXPAND_WIDGET);
{
files_hbox.pack_start(outside_files_vbox,Gtk::PACK_EXPAND_WIDGET);
{
outside_files_vbox.set_size_request(150,-1);
outside_files_vbox.pack_start(search_entry,Gtk::PACK_SHRINK);
{
search_entry.set_max_length(100);
search_entry.set_activates_default(1);
}
outside_files_scroll = new ThumbnailWidget();
outside_files_vbox.pack_start(*outside_files_scroll);
{
outside_files_scroll->size_limit = 100;
outside_files_scroll->label_width_limit = 20;
}
}
files_hbox.pack_start(file_buttons_vbox,Gtk::PACK_SHRINK,10);
{
file_buttons_vbox.pack_start(file_buttons_shrink_vbox,Gtk::PACK_EXPAND_PADDING);
{
file_buttons_shrink_vbox.pack_start(enter_package_button,Gtk::PACK_SHRINK,10);
{
enter_package_button.set_label(">");
enter_package_button.set_size_request(50,50);
}
file_buttons_shrink_vbox.pack_start(leave_package_button,Gtk::PACK_SHRINK,10);
{
leave_package_button.set_label("<");
leave_package_button.set_size_request(50,50);
}
}
}
files_hbox.pack_start(inside_files_vbox,Gtk::PACK_EXPAND_WIDGET);
{
inside_files_vbox.set_size_request(150,-1);
inside_files_vbox.pack_start(track_new_file_button,Gtk::PACK_SHRINK);
{
track_new_file_button.set_label("Track new file");
}
inside_files_scroll = new ThumbnailWidget();
inside_files_vbox.pack_start(*inside_files_scroll);
}
}
}
main_hbox.pack_start(tags_buttons_vbox);
{
tags_buttons_vbox.pack_start(package_tags_scroll);
{
tags_treeview = new TagListOnPackage();
package_tags_scroll.add(*tags_treeview);
}
tags_buttons_vbox.pack_start(done_button,Gtk::PACK_SHRINK,10);
{
done_button.set_label("Done");
}
tags_buttons_vbox.pack_start(cancel_button,Gtk::PACK_SHRINK);
{
cancel_button.set_label("Cancel");
}
}
}
show_all_children();
}
void PackageManager::activate_default()
{
cout << search_entry.get_text() << '\n';
}