void Gobby::FindDialog::update_sensitivity() { SessionView* view = m_folder->get_current_document(); TextSessionView* text_view = dynamic_cast<TextSessionView*>(view); bool find_sensitivity = (!m_entry_find->get_text().empty() && text_view != NULL); bool replace_sensitivity = (find_sensitivity && text_view->get_active_user() != NULL); set_response_sensitive(RESPONSE_FIND, find_sensitivity); set_response_sensitive(RESPONSE_REPLACE, replace_sensitivity); set_response_sensitive(RESPONSE_REPLACE_ALL, replace_sensitivity); }
void Gobby::GotoDialog::on_document_changed(SessionView* view) { if(m_current_view != NULL) { GtkTextBuffer* buffer = GTK_TEXT_BUFFER( m_current_view->get_text_buffer()); g_signal_handler_disconnect(buffer, m_changed_handler); } m_current_view = dynamic_cast<TextSessionView*>(view); set_response_sensitive(Gtk::RESPONSE_ACCEPT, m_current_view != NULL); m_entry_line.set_sensitive(m_current_view != NULL); if(m_current_view != NULL) { GtkTextBuffer* buffer = GTK_TEXT_BUFFER( m_current_view->get_text_buffer()); m_changed_handler = g_signal_connect_after( G_OBJECT(buffer), "changed", G_CALLBACK(on_changed_static), this); on_changed(); } }
void c_SelectPointsDlg::OnAutoClick() { m_Points.clear(); m_ImgView.SetImage(m_Img); for (auto &autoPt: m_AutomaticPoints) m_Points.push_back(autoPt); set_response_sensitive(Gtk::ResponseType::RESPONSE_OK, true); }
void AddUPnPServerDlg::onCheckAddSensitivity() { if (m_TreeView.get_selection()->count_selected_rows() > 0) { Gtk::TreeModel::iterator iter = m_TreeView.get_selection()->get_selected(); if (!m_CustomServerName) { const std::string& deviceId = (*iter)[m_Columns.deviceId]; m_ServerNameEntry.set_text(m_ServerMap[deviceId]->getDevice()->m_FriendlyName); } if (!m_ServerNameEntry.get_text().empty()) { set_response_sensitive (Gtk::RESPONSE_OK, true); return; } } set_response_sensitive(Gtk::RESPONSE_OK, false); }
c_SelectPointsDlg::c_SelectPointsDlg(const libskry::c_Image &img, const std::vector<struct SKRY_point> &points, const std::vector<struct SKRY_point> &automaticPoints) { m_Img = img; m_Points = points; m_AutomaticPoints = automaticPoints; InitControls(!automaticPoints.empty()); m_ImgView.SetImage(m_Img); set_response_sensitive(Gtk::ResponseType::RESPONSE_OK, !m_Points.empty()); }
bool c_SelectPointsDlg::OnImageBtnPress(GdkEventButton *event) { if (event->type == GDK_BUTTON_PRESS && event->button == Utils::Const::MouseButtons::left) { unsigned zoom = m_ImgView.GetZoomPercentVal(); int imgX = (int)(100 * event->x / zoom), imgY = (int)(100 * event->y / zoom); if (imgX >= 0 && imgX < m_ImgView.GetImage()->get_width() && imgY >= 0 && imgY < m_ImgView.GetImage()->get_height()) { m_Points.push_back({ imgX, imgY }); m_ImgView.Refresh(); set_response_sensitive(Gtk::ResponseType::RESPONSE_OK, true); } } return true; }
AddUPnPServerDlg::AddUPnPServerDlg(MusicLibrary& library) : Gtk::Dialog(_("Add UPnP server"), true) , m_SelectContainerLabel(_("Select a upnp container containing albums"), Gtk::ALIGN_LEFT) , m_EnterNameLabel(_("Server name: "), Gtk::ALIGN_LEFT) , m_CustomServerName(false) , m_Destroy(false) , m_pLibrary(dynamic_cast<UPnPMusicLibrary*>(&library)) , m_pClient(m_pLibrary ? (&m_pLibrary->getClient()) : new upnp::Client()) , m_DeviceScanner(*m_pClient, upnp::Device::Type::MediaServer) , m_IOwnControlPoint(m_pLibrary == nullptr) , m_ContainerDispatcher(*this) { set_title(_("Add UPnP server")); set_size_request(400, 400); set_resizable(true); set_border_width(5); m_TreeModel = Gtk::TreeStore::create(m_Columns); m_TreeView.set_model(m_TreeModel); Gtk::TreeView::Column* pColumn = Gtk::manage(new Gtk::TreeView::Column("Server")); pColumn->pack_start(m_Columns.icon, false); //false = don't expand. pColumn->pack_start(m_Columns.name); m_TreeView.append_column(*pColumn); m_TreeView.set_headers_visible(false); m_ScrolledWindow.add(m_TreeView); m_ScrolledWindow.set_shadow_type(Gtk::SHADOW_IN); m_ScrolledWindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); m_NameLayout.set_spacing(5); m_NameLayout.pack_start(m_EnterNameLabel, Gtk::PACK_SHRINK); m_NameLayout.pack_start(m_ServerNameEntry, Gtk::PACK_EXPAND_WIDGET); Gtk::VBox* pVBox = get_vbox(); pVBox->set_spacing(5); pVBox->pack_start(m_SelectContainerLabel, Gtk::PACK_SHRINK); pVBox->pack_start(m_ScrolledWindow, Gtk::PACK_EXPAND_WIDGET); pVBox->pack_start(m_NameLayout, Gtk::PACK_SHRINK); add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); add_button(Gtk::Stock::ADD, Gtk::RESPONSE_OK); set_response_sensitive (Gtk::RESPONSE_OK, false); m_TreeView.get_selection()->signal_changed().connect(sigc::mem_fun(*this, &AddUPnPServerDlg::onCheckAddSensitivity)); m_ServerNameEntry.signal_changed().connect(sigc::mem_fun(*this, &AddUPnPServerDlg::onCheckAddSensitivity)); m_ServerNameEntry.signal_key_release_event().connect(sigc::mem_fun(*this, &AddUPnPServerDlg::onCustomServerName)); show_all_children(); m_DeviceAddedDispatcher.DispatchedItemEvent.connect(std::bind(&AddUPnPServerDlg::onUPnPDeviceDiscovered, this, _1), this); m_DeviceRemovedDispatcher.DispatchedItemEvent.connect(std::bind(&AddUPnPServerDlg::onUPnPDeviceDissapeared, this, _1), this); m_DeviceScanner.DeviceDiscoveredEvent.connect([this] (std::shared_ptr<upnp::Device> dev) { m_DeviceAddedDispatcher.onItem(dev); }, this); m_DeviceScanner.DeviceDissapearedEvent.connect([this] (std::shared_ptr<upnp::Device> dev) { m_DeviceRemovedDispatcher.onItem(dev); }, this); if (m_IOwnControlPoint) { m_pClient->initialize(); } m_DeviceScanner.start(); m_DeviceScanner.refresh(); }
void Gobby::EntryDialog::on_entry_changed() { // Recheck sensitivation of OK button bool disable = (m_check_valid_entry && m_entry.get_text().empty() ); set_response_sensitive(Gtk::RESPONSE_OK, !disable); }
void c_SelectPointsDlg::OnRemoveClick() { m_Points.clear(); m_ImgView.SetImage(m_Img); set_response_sensitive(Gtk::ResponseType::RESPONSE_OK, false); }