Ejemplo n.º 1
0
GXLRESULT CWETreeViewReceiver::InvokeNotify( GXNMHDR* pnmhdr )
{
  //CWETreeViewReceiver* pTreeViewReceiver = TryCastReceiver(pReceiver, m_pReceiver);
  //if(pTreeViewReceiver == NULL)
  //  return 0L;

  if( ! gxIsWindow(pnmhdr->hwndFrom)) {
    return -1;
  }

  GXNMTREEVIEW* pnmtv = (GXNMTREEVIEW*)pnmhdr;
  CWETreeView TreeViewWnd(pnmhdr->hwndFrom);

  switch(pnmhdr->code)
  {
  case GXTVN_ITEMEXPANDING:
    return ItemExpanding(&TreeViewWnd, (CWETreeView::Expand)pnmtv->action, &pnmtv->itemNew);
  case GXTVN_ITEMEXPANDED:
    ItemExpanded(&TreeViewWnd, (CWETreeView::Expand)pnmtv->action, &pnmtv->itemNew);
    break;
  case GXTVN_SELCHANGED:
    SelChanged(&TreeViewWnd, (CWETreeView::Change)pnmtv->action, &pnmtv->itemOld, &pnmtv->itemNew);
    break;
  case GXTVN_SELCHANGING:
    return SelChanging(&TreeViewWnd, (CWETreeView::Change)pnmtv->action, &pnmtv->itemOld, &pnmtv->itemNew);
  }
  return 0L;
}
AutoExpandingTreeView::AutoExpandingTreeView(QWidget* parent)
    : QTreeView(parent),
      auto_open_(true),
      expand_on_reset_(true),
      add_on_double_click_(true),
      ignore_next_click_(false) {
  setExpandsOnDoubleClick(false);
  setAnimated(true);

  connect(this, SIGNAL(expanded(QModelIndex)), SLOT(ItemExpanded(QModelIndex)));
  connect(this, SIGNAL(clicked(QModelIndex)), SLOT(ItemClicked(QModelIndex)));
  connect(this, SIGNAL(doubleClicked(QModelIndex)),
          SLOT(ItemDoubleClicked(QModelIndex)));
}