⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctreeview.cpp

📁 Gambas is a graphical development environment based on a Basic interpreter, like Visual Basic. It us
💻 CPP
📖 第 1 页 / 共 3 页
字号:
END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_key)  MyListViewItem *item = (MyListViewItem *)(WIDGET->currentItem());  THIS->item = item;  if (item == 0)    GB.ReturnNull();  else    GB.ReturnString(item->key);END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_item)  if (THIS->item == 0)    GB.ReturnNull();  else    RETURN_SELF();END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_available)  GB.ReturnBoolean(THIS->item != 0);END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_show_root)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->rootIsDecorated());  else    WIDGET->setRootIsDecorated(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_sorted)  if (READ_PROPERTY)    GB.ReturnBoolean(OBJECT(CTREEVIEW)->sorted != -1);  else  {    OBJECT(CTREEVIEW)->sorted = VPROP(GB_BOOLEAN) ? 0 : -1;    WIDGET->setSorting(OBJECT(CTREEVIEW)->sorted);    WIDGET->setShowSortIndicator(VPROP(GB_BOOLEAN));  }END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_editable)  if (READ_PROPERTY)    GB.ReturnBoolean(THIS->rename);  else    THIS->rename = VPROP(GB_BOOLEAN);END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_count)  GB.ReturnInteger(WIDGET->childCount());END_PROPERTYBEGIN_METHOD_VOID(CTREEVIEW_back)  MyListViewItem *item = THIS->save;  THIS->save = 0;  return_item(THIS, item);END_METHODBEGIN_METHOD(CTREEVIEW_move_to, GB_STRING key)  char *key = GB.ToZeroString(ARG(key));  MyListViewItem *item = (*THIS->dict)[key];  return_item(THIS, item);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_move_current)  return_item(THIS, (MyListViewItem *)(WIDGET->currentItem()));END_PROPERTYBEGIN_METHOD_VOID(CTREEVIEW_first)  return_item(THIS, (MyListViewItem *)(WIDGET->firstChild()));END_METHODBEGIN_METHOD_VOID(CTREEVIEW_last)  return_item(THIS, (MyListViewItem *)(WIDGET->last));END_METHODBEGIN_METHOD_VOID(CTREEVIEW_previous)  return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->prev) : 0);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_next)  return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->nextSibling()) : 0);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_parent)  return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->parent()) : 0);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_child)  return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->firstChild()) : 0);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_above)  return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->itemAbove()) : 0);END_METHODBEGIN_METHOD_VOID(CTREEVIEW_below)  return_item(THIS, THIS->item ? (MyListViewItem *)(THIS->item->itemBelow()) : 0);END_METHODBEGIN_PROPERTY(CTREEVIEWITEM_key)  GB.ReturnString(THIS->item->key);END_PROPERTYBEGIN_PROPERTY(CTREEVIEWITEM_picture)  if (READ_PROPERTY)    GB.ReturnObject(THIS->item->picture);  else    THIS->item->setPicture(PROP(GB_OBJECT));END_PROPERTYBEGIN_PROPERTY(CTREEVIEWITEM_selected)  MyListViewItem *it = THIS->item;  if (READ_PROPERTY)    GB.ReturnBoolean(it->isSelected());  else    it->listView()->setSelected(it, VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CTREEVIEWITEM_expanded)  MyListViewItem *it = THIS->item;  if (READ_PROPERTY)    GB.ReturnBoolean(it->isOpen());  else    it->setOpen(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CTREEVIEWITEM_text)  MyListViewItem *it = THIS->item;  if (READ_PROPERTY)    GB.ReturnNewZeroString(TO_UTF8(it->text(0)));  else    it->setText(0, QSTRING_PROP());END_PROPERTYBEGIN_PROPERTY(CTREEVIEWITEM_count)  GB.ReturnInteger(THIS->item->childCount());END_PROPERTYBEGIN_METHOD_VOID(CTREEVIEWITEM_ensure_visible)  //qDebug("ensure visible: %p", THIS->item);  WIDGET->ensureItemVisible(THIS->item);END_METHODBEGIN_METHOD_VOID(CTREEVIEWITEM_delete)  //THIS->dict->remove(THIS->item->key);  //qDebug("CTREEVIEWITEM_delete < %p %p", THIS, THIS->item);  delete THIS->item;  //qDebug("CTREEVIEWITEM_delete > %p", THIS->item);END_METHODBEGIN_METHOD_VOID(CTREEVIEWITEM_clear)  const MyListViewItem *item = (const MyListViewItem *)THIS->item->firstChild();  const MyListViewItem *next;  //qDebug("< CTREEVIEWITEM_clear");  while (item)  {    next = (const MyListViewItem *)item->nextSibling();    //THIS->dict->remove(((MyListViewItem *)item)->key);    delete item;    item = next;  }  //qDebug("CTREEVIEWITEM_clear >");END_METHOD/*BEGIN_METHOD_VOID(CTREEVIEWITEM_init)  CLASS_Item = GB.FindClass("Item");END_METHOD*/BEGIN_PROPERTY(CTREEVIEWITEM_editable)  if (READ_PROPERTY)    GB.ReturnBoolean(THIS->item->renameEnabled(0));  else    THIS->item->setRenameEnabled(0, VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_METHOD_VOID(CTREEVIEWITEM_rename)  THIS->item->startRename(0);END_METHOD/*BEGIN_PROPERTY(CTREEVIEWITEM_sort_key)  MyListViewItem *it = THIS->item;  if (READ_PROPERTY)    GB.ReturnInteger(it->sortKey);  else    it->sortKey = VPROP(GB_INTEGER);END_PROPERTY*//***************************************************************************  Columns***************************************************************************/BEGIN_PROPERTY(CLISTVIEW_columns)  RETURN_SELF();END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_resizable)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->header()->isResizeEnabled());  else  {    WIDGET->header()->setResizeEnabled(VPROP(GB_BOOLEAN));    //WIDGET->setResizeMode(PROPERTY(GB_BOOLEAN) ? QListView::NoColumn : QListView::LastColumn);  }END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_auto_resize)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->resizeMode() == QListView::LastColumn);  else    WIDGET->setResizeMode(VPROP(GB_BOOLEAN) ? QListView::LastColumn : QListView::NoColumn);END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_moveable)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->header()->isMovingEnabled());  else    WIDGET->header()->setMovingEnabled(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_columns_count)  long col;  QListView::ResizeMode mode;  //bool *numeric;  //int i, n;  if (READ_PROPERTY)  {    GB.ReturnInteger(WIDGET->columns());    return;  }  col = VPROP(GB_INTEGER);  if (col < 1 || col > 64)  {    GB.Error("Bad number of columns");    return;  }  //mode = WIDGET->resizeMode();  //WIDGET->setResizeMode(  /*  numeric = new bool[col];  memset(numeric, 0, col * sizeof(*numeric));  if (THIS->numeric)  {    n = QMIN(WIDGET->columns(), col);    for (i = 0; i < n; i++)      numeric[i] = THIS->numeric[i];    delete[] THIS->numeric;  }  THIS->numeric = numeric;  */  mode = WIDGET->resizeMode();  WIDGET->setResizeMode(QListView::NoColumn);  if (col < WIDGET->columns())  {    while (col < WIDGET->columns())      WIDGET->removeColumn(WIDGET->columns() - 1);  }  else if (col > WIDGET->columns())  {    while (col > WIDGET->columns())    {      WIDGET->addColumn("");      //WIDGET->setColumnWidthMode(WIDGET->columns() - 1, QListView::Manual);    }  }  WIDGET->setResizeMode(mode);END_PROPERTYBEGIN_METHOD(CLISTVIEW_columns_get, GB_INTEGER col)  long col = VARG(col);  if (col < 0 || col >= WIDGET->columns())  {    GB.Error("Bad column index");    return;  }  _column = col;  RETURN_SELF();END_PROPERTYBEGIN_METHOD_VOID(CLISTVIEW_columns_adjust)  QHeader *header = WIDGET->header();  int col = WIDGET->columns() - 1;  int w;  w = WIDGET->width() - WIDGET->frameWidth() * 2 - header->sectionPos(col);  WIDGET->setColumnWidth(col, w);  //updateScrollBars();  //qDebug("setColumnWidth %d = %d", col, w);  //header->resize(w, header->height());  /*header->resizeSection(header->count() - 1,    WIDGET->frameSize().width() - WIDGET );*/END_METHODBEGIN_PROPERTY(CLISTVIEW_column_text)  if (READ_PROPERTY)    GB.ReturnNewZeroString(TO_UTF8(WIDGET->columnText(_column)));  else    WIDGET->setColumnText(_column, QSTRING_PROP());END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_column_width)  int w;  if (READ_PROPERTY)    GB.ReturnInteger(WIDGET->columnWidth(_column));  else  {    w = VPROP(GB_INTEGER);    //if ((_column == (WIDGET->columns() - 1)) && w < 0)    //  updateLastColumn(WIDGET);    //else    WIDGET->setColumnWidthMode(_column, QListView::Manual);    WIDGET->setColumnWidth(_column, w);  }END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_column_alignment)  if (READ_PROPERTY)    GB.ReturnInteger(WIDGET->columnAlignment(_column));  else    WIDGET->setColumnAlignment(_column, VPROP(GB_INTEGER));END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_columns_sort)  int sort;  if (READ_PROPERTY)    GB.ReturnInteger(THIS->sorted);  else  {    sort = VPROP(GB_INTEGER);    if (sort < -1 || sort >= WIDGET->columns())      return;    THIS->sorted = sort;    THIS->asc = true;    WIDGET->setSorting(THIS->sorted);  }END_PROPERTYBEGIN_PROPERTY(CLISTVIEW_columns_ascending)  if (READ_PROPERTY)    GB.ReturnBoolean(THIS->asc);  else  {    THIS->asc = VPROP(GB_BOOLEAN);    WIDGET->setSorting(THIS->sorted, THIS->asc);  }END_PROPERTY/*BEGIN_PROPERTY(CLISTVIEW_column_numeric)  if (READ_PROPERTY)    GB.ReturnNewZeroString(TO_UTF8(WIDGET->columnText(_column)));  else    WIDGET->setColumnText(_column, QSTRING_PROP());END_PROPERTY*/BEGIN_PROPERTY(CLISTVIEW_column_auto_resize)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->columnWidthMode(_column) != QListView::Manual);  else    WIDGET->setColumnWidthMode(_column, VPROP(GB_BOOLEAN) ? QListView::Maximum : QListView::Manual);END_PROPERTYBEGIN_METHOD(CTREEVIEWITEM_get, GB_INTEGER col)  const MyListViewItem* item = THIS->item;  GB.ReturnNewZeroString(TO_UTF8(item->text(VARG(col))));END_METHODBEGIN_METHOD(CTREEVIEWITEM_put, GB_STRING text; GB_INTEGER col)  MyListViewItem* item = THIS->item;  item->setText(VARG(col), QSTRING_ARG(text));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -