Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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();
	}
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
0
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());
}
Exemplo n.º 6
0
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;
}
Exemplo n.º 7
0
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();
}
Exemplo n.º 8
0
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);
}
Exemplo n.º 9
0
void c_SelectPointsDlg::OnRemoveClick()
{
    m_Points.clear();
    m_ImgView.SetImage(m_Img);
    set_response_sensitive(Gtk::ResponseType::RESPONSE_OK, false);
}