Exemplo n.º 1
0
gboolean on_entry_key_press_event(GtkEntry *entry, GdkEvent *event)
{
	guint k = GDK_KEY_VoidSymbol;
	gdk_event_get_keyval(event, &k);

	GdkModifierType s;
	gdk_event_get_state(event, &s);

#define KEY(S) (k == S)
#define CTRL(S) (KEY(S) && s & GDK_CONTROL_MASK)
#define SHIFT(S) (KEY(S) && s & GDK_SHIFT_MASK)

	if (KEY(GDK_KEY_Escape) || CTRL(GDK_KEY_c))
		gtk_main_quit();
	else if (KEY(GDK_KEY_Tab) || CTRL(GDK_KEY_i))
		gtk_entry_set_text(entry, row_text(selected_row()));
	else if (KEY(GDK_KEY_Down) || CTRL(GDK_KEY_f))
		select_row(selected_row() + 1);
	else if (KEY(GDK_KEY_Up) || CTRL(GDK_KEY_b))
		select_row(selected_row() - 1);
	else if (KEY(GDK_KEY_Return) || CTRL(GDK_KEY_j))
		output(row_text(selected_row()));
	else if (SHIFT(GDK_KEY_Return) || CTRL(GDK_KEY_J))
		output(entry_text());

	return FALSE;
}
Exemplo n.º 2
0
void LinearEditDialog::accept()
{
	std::vector< std::pair<size_t,double> > linear_values;

	size_t nRows = tableWidget->rowCount();
	for (size_t i=0; i<nRows; i++)
	{
		QString row_text (tableWidget->item(i,0)->text());
		if (row_text.length()>0)
			linear_values.push_back( std::pair<size_t, double>(i, row_text.toDouble()) );
	}

	emit transmitDisValues(linear_values);
	this->done(QDialog::Accepted);
}