Пример #1
0
bool View::key_pressed_event(GdkEventKey *event)
{
  // FIXME: Cursor and TAB keys are stolen by UI
  //  cerr << "key " << event->keyval << endl;
  if (m_objtree->get_selection()->count_selected_rows() <= 0)
    return false;
  switch (event->keyval)
    {
    case GDK_Tab:
      {
      Glib::RefPtr<Gtk::TreeSelection> selection = m_objtree->get_selection();
      Glib::RefPtr<Gtk::TreeStore> model = m_model->objtree.m_model;
      Gtk::TreeModel::iterator sel = selection->get_selected();
      if (event->state & GDK_SHIFT_MASK)
	sel--;
      else
	sel++;
      if (sel)
      {
	selection->select (sel);
	return true;
      }
      else
	return false;
      }
    case GDK_Escape:
      {
	bool has_selected = m_objtree->get_selection()->get_selected();
	m_objtree->get_selection()->unselect_all();
	return has_selected;
      }
    case GDK_Delete:
    case GDK_KP_Delete:
      delete_selected_stl();
      return true;
    case GDK_Up: case GDK_KP_Up:
      return moveSelected( 0.0,  1.0 );
    case GDK_Down: case GDK_KP_Down:
      return moveSelected( 0.0, -1.0 );
    case GDK_Left: case GDK_KP_Left:
      return moveSelected( -1.0, 0.0 );
    case GDK_Right: case GDK_KP_Right:
      return moveSelected(  1.0, 0.0 );
    default:
      return false;
    }
}
Пример #2
0
bool View::key_pressed_event(GdkEventKey *event)
{
  if (m_rfo_tree->get_selection()->count_selected_rows() <= 0)
    return false;
  switch (event->keyval)
    {
    case GDK_KEY_Tab:
      {
      Glib::RefPtr<Gtk::TreeSelection> selection = m_rfo_tree->get_selection();
      Glib::RefPtr<Gtk::TreeStore> model = m_model->rfo.m_model;
      Gtk::TreeModel::iterator sel = selection->get_selected();
      if (event->state & GDK_SHIFT_MASK)
	sel--;
      else
	sel++;
      if (sel)
      {
	selection->select (sel);
	return true;
      }
      else
	return false;
      }
    case GDK_KEY_Escape:
      {
	bool has_selected = m_rfo_tree->get_selection()->get_selected();
	m_rfo_tree->get_selection()->unselect_all();
	return has_selected;
      }
    case GDK_KEY_Delete:
    case GDK_KEY_KP_Delete:
      delete_selected_stl();
      return true;
    case GDK_KEY_Up: case GDK_KEY_KP_Up:
      return moveSelected( 0.0,  1.0 );
    case GDK_KEY_Down: case GDK_KEY_KP_Down:
      return moveSelected( 0.0, -1.0 );
    case GDK_KEY_Left: case GDK_KEY_KP_Left:
      return moveSelected( -1.0, 0.0 );
    case GDK_KEY_Right: case GDK_KEY_KP_Right:
      return moveSelected(  1.0, 0.0 );
    default:
      return false;
    }
}