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

📄 ctreeview.cpp

📁 Gambas is a graphical development environment based on a Basic interpreter, like Visual Basic. It us
💻 CPP
📖 第 1 页 / 共 3 页
字号:
END_METHODBEGIN_PROPERTY(CTREEVIEW_client_width)  //long w = WIDGET->width() - WIDGET->frameWidth() * 2;  //long sw = WIDGET->verticalScrollBar()->width();  //long width = w;  //if (WIDGET->verticalScrollBar()->isHidden())  //  width -= sw;  //qDebug("client_width = %ld (%ld) -> %ld", w, sw, width);  GB.ReturnInteger(WIDGET->width() - WIDGET->frameWidth() * 2);  //GB.ReturnInteger(width);END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_client_height)  GB.ReturnInteger(WIDGET->height() - WIDGET->frameWidth() * 2);END_PROPERTYBEGIN_PROPERTY(CTREEVIEW_header)  if (READ_PROPERTY)    GB.ReturnBoolean(!WIDGET->header()->isHidden());  else  {    if (VPROP(GB_BOOLEAN))      WIDGET->header()->show();    else      WIDGET->header()->hide();    WIDGET->triggerUpdate();  }END_PROPERTY#if 0BEGIN_PROPERTY(CTREEVIEW_scrollbar)  long scroll;  if (READ_PROPERTY)  {    scroll = 0;    if (WIDGET->hScrollBarMode() == QScrollView::Auto)      scroll += 1;    if (WIDGET->vScrollBarMode() == QScrollView::Auto)      scroll += 2;    GB.ReturnInteger(scroll);  }  else  {    scroll = VPROP(GB_INTEGER) & 3;    WIDGET->setHScrollBarMode( (scroll & 1) ? QScrollView::Auto : QScrollView::AlwaysOff);    WIDGET->setVScrollBarMode( (scroll & 2) ? QScrollView::Auto : QScrollView::AlwaysOff);  }END_PROPERTY#endif/***************************************************************************  ListViewItem***************************************************************************/GB_DESC CListViewItemDesc[] ={  GB_DECLARE(".ListViewItem", 0), GB_VIRTUAL_CLASS(),  GB_PROPERTY_READ("Key", "s", CTREEVIEWITEM_key),  GB_PROPERTY("Picture", "Picture", CTREEVIEWITEM_picture),  GB_PROPERTY("Selected", "b", CTREEVIEWITEM_selected),  GB_PROPERTY("Text", "s", CTREEVIEWITEM_text),  GB_METHOD("EnsureVisible", NULL, CTREEVIEWITEM_ensure_visible, NULL),  GB_METHOD("Delete", NULL, CTREEVIEWITEM_delete, NULL),  //GB_METHOD("Next", ".ListViewItem", CTREEVIEWITEM_next, NULL),  GB_METHOD("MoveNext", "b", CTREEVIEW_next, NULL),  GB_METHOD("MovePrevious", "b", CTREEVIEW_previous, NULL),  GB_METHOD("MoveAbove", "b", CTREEVIEW_above, NULL),  GB_METHOD("MoveBelow", "b", CTREEVIEW_below, NULL),  GB_PROPERTY("Editable", "b", CTREEVIEWITEM_editable),  GB_METHOD("Rename", NULL, CTREEVIEWITEM_rename, NULL),  GB_END_DECLARE};/***************************************************************************  TreeViewItem***************************************************************************/GB_DESC CTreeViewItemDesc[] ={  GB_DECLARE(".TreeViewItem", 0), GB_VIRTUAL_CLASS(),  GB_PROPERTY_READ("Key", "s", CTREEVIEWITEM_key),  GB_PROPERTY("Picture", "Picture", CTREEVIEWITEM_picture),  GB_PROPERTY("Selected", "b", CTREEVIEWITEM_selected),  GB_PROPERTY("Text", "s", CTREEVIEWITEM_text),  GB_METHOD("EnsureVisible", NULL, CTREEVIEWITEM_ensure_visible, NULL),  GB_METHOD("Delete", NULL, CTREEVIEWITEM_delete, NULL),  GB_METHOD("Clear", NULL, CTREEVIEWITEM_clear, NULL),  GB_PROPERTY("Expanded", "b", CTREEVIEWITEM_expanded),  GB_PROPERTY_READ("Children", "i", CTREEVIEWITEM_count),  GB_PROPERTY_READ("Count", "i", CTREEVIEWITEM_count),  GB_METHOD("MoveNext", "b", CTREEVIEW_next, NULL),  GB_METHOD("MovePrevious", "b", CTREEVIEW_previous, NULL),  GB_METHOD("MoveChild", "b", CTREEVIEW_child, NULL),  GB_METHOD("MoveParent", "b", CTREEVIEW_parent, NULL),  GB_METHOD("MoveAbove", "b", CTREEVIEW_above, NULL),  GB_METHOD("MoveBelow", "b", CTREEVIEW_below, NULL),  GB_PROPERTY("Editable", "b", CTREEVIEWITEM_editable),  GB_METHOD("Rename", NULL, CTREEVIEWITEM_rename, NULL),  GB_END_DECLARE};/***************************************************************************  ColumnViewItem***************************************************************************/GB_DESC CColumnViewItemDesc[] ={  GB_DECLARE(".ColumnViewItem", 0), GB_VIRTUAL_CLASS(),  GB_PROPERTY_READ("Key", "s", CTREEVIEWITEM_key),  GB_PROPERTY("Picture", "Picture", CTREEVIEWITEM_picture),  GB_PROPERTY("Selected", "b", CTREEVIEWITEM_selected),  GB_PROPERTY("Text", "s", CTREEVIEWITEM_text),  GB_METHOD("EnsureVisible", NULL, CTREEVIEWITEM_ensure_visible, NULL),  GB_METHOD("Delete", NULL, CTREEVIEWITEM_delete, NULL),  GB_METHOD("Clear", NULL, CTREEVIEWITEM_clear, NULL),  GB_PROPERTY("Expanded", "b", CTREEVIEWITEM_expanded),  GB_PROPERTY_READ("Children", "i", CTREEVIEWITEM_count),  GB_PROPERTY_READ("Count", "i", CTREEVIEWITEM_count),  GB_METHOD("MoveNext", "b", CTREEVIEW_next, NULL),  GB_METHOD("MovePrevious", "b", CTREEVIEW_previous, NULL),  GB_METHOD("MoveChild", "b", CTREEVIEW_child, NULL),  GB_METHOD("MoveParent", "b", CTREEVIEW_parent, NULL),  GB_METHOD("MoveAbove", "b", CTREEVIEW_above, NULL),  GB_METHOD("MoveBelow", "b", CTREEVIEW_below, NULL),  GB_METHOD("_get", "s", CTREEVIEWITEM_get, "(Column)i"),  GB_METHOD("_put", NULL, CTREEVIEWITEM_put, "(Text)s(Column)i"),  GB_PROPERTY("Editable", "b", CTREEVIEWITEM_editable),  GB_METHOD("Rename", NULL, CTREEVIEWITEM_rename, NULL),  //GB_PROPERTY("SortKey", "f", CTREEVIEWITEM_sort_key),  GB_END_DECLARE};/***************************************************************************  ListView***************************************************************************/GB_DESC CListViewDesc[] ={  GB_DECLARE("ListView", sizeof(CTREEVIEW)), GB_INHERITS("Control"),  GB_CONSTANT("None", "i", QListView::NoSelection),  GB_CONSTANT("Single", "i", QListView::Single),  GB_CONSTANT("Multi", "i", QListView::Multi),  GB_CONSTANT("Extended", "i", QListView::Extended),  GB_METHOD("_new", NULL, CLISTVIEW_new, "(Parent)Container;"),  GB_METHOD("_free", NULL, CTREEVIEW_free, NULL),  GB_PROPERTY("Mode", "i<ListView,None,Single,Multi,Extended>", CTREEVIEW_mode),  //GB_PROPERTY("Drop", "b", CTREEVIEW_drop),  GB_PROPERTY("Sorted", "b", CTREEVIEW_sorted),  GB_PROPERTY("Editable", "b", CTREEVIEW_editable),  GB_PROPERTY("ScrollBar", "i<Scroll>", CWIDGET_scrollbar),  GB_PROPERTY("Border", "b", CWIDGET_border_simple),  GB_PROPERTY_READ("Count", "i", CTREEVIEW_count),  GB_PROPERTY_READ("Available", "b", CTREEVIEW_available),  GB_METHOD("MoveTo", "b", CTREEVIEW_move_to, "(Key)s"),  GB_METHOD("MoveCurrent", "b", CTREEVIEW_move_current, NULL),  GB_METHOD("MoveFirst", "b", CTREEVIEW_first, NULL),  GB_METHOD("MoveLast", "b", CTREEVIEW_last, NULL),  GB_METHOD("MovePrevious", "b", CTREEVIEW_previous, NULL),  GB_METHOD("MoveNext", "b", CTREEVIEW_next, NULL),  GB_METHOD("MoveAbove", "b", CTREEVIEW_above, NULL),  GB_METHOD("MoveBelow", "b", CTREEVIEW_below, NULL),  //GB_METHOD("MoveBack", "b", CTREEVIEW_back, NULL),  GB_METHOD("_get", ".ListViewItem", CTREEVIEW_get, "(Key)s"),  GB_METHOD("Clear", NULL, CTREEVIEW_clear, NULL),  GB_METHOD("Add", ".ListViewItem", CLISTVIEW_add, "(Key)s(Text)s[(Picture)Picture;(After)s]"),  GB_METHOD("Remove", NULL, CTREEVIEW_remove, "(Key)s"),  GB_METHOD("Exist", "b", CTREEVIEW_exist, "(Key)s"),  GB_METHOD("Find", "b", CTREEVIEW_find, "(X)i(Y)i"),  GB_PROPERTY_READ("Current", ".ListViewItem", CTREEVIEW_current),  GB_PROPERTY_READ("Key", "s", CTREEVIEW_key),  GB_PROPERTY_READ("Item", ".ListViewItem", CTREEVIEW_item),  GB_CONSTANT("_Properties", "s", CLISTVIEW_PROPERTIES),  GB_CONSTANT("_DefaultEvent", "s", "Click"),  GB_PROPERTY_READ("ClientWidth", "i", CTREEVIEW_client_width),  GB_PROPERTY_READ("ClientW", "i",  CTREEVIEW_client_width),  GB_PROPERTY_READ("ClientHeight", "i", CTREEVIEW_client_height),  GB_PROPERTY_READ("ClientH", "i", CTREEVIEW_client_height),  GB_EVENT("Select", NULL, NULL, &EVENT_Select),  GB_EVENT("Activate", NULL, NULL, &EVENT_Activate),  GB_EVENT("Click", NULL, NULL, &EVENT_Click),  GB_EVENT("Rename", NULL, NULL, &EVENT_Rename),  GB_END_DECLARE};/***************************************************************************  TreeView***************************************************************************/GB_DESC CTreeViewDesc[] ={  GB_DECLARE("TreeView", sizeof(CTREEVIEW)), GB_INHERITS("Control"),  GB_CONSTANT("None", "i", QListView::NoSelection),  GB_CONSTANT("Single", "i", QListView::Single),  GB_CONSTANT("Multi", "i", QListView::Multi),  GB_CONSTANT("Extended", "i", QListView::Extended),  GB_METHOD("_new", NULL, CTREEVIEW_new, "(Parent)Container;"),  GB_METHOD("_free", NULL, CTREEVIEW_free, NULL),  GB_PROPERTY("Mode", "i<TreeView,None,Single,Multi,Extended>", CTREEVIEW_mode),  //GB_PROPERTY("Drop", "b", CTREEVIEW_drop),  GB_PROPERTY("Root", "b", CTREEVIEW_show_root),  GB_PROPERTY("Sorted", "b", CTREEVIEW_sorted),  GB_PROPERTY("Editable", "b", CTREEVIEW_editable),  GB_PROPERTY("ScrollBar", "i<Scroll>", CWIDGET_scrollbar),  GB_PROPERTY("Border", "b", CWIDGET_border_simple),  //GB_PROPERTY("Rename", "b", CTREEVIEW_rename),  GB_PROPERTY_READ("Count", "i", CTREEVIEW_count),  GB_PROPERTY_READ("Available", "b", CTREEVIEW_available),  GB_METHOD("MoveCurrent", "b", CTREEVIEW_move_current, NULL),  GB_METHOD("MoveTo", "b", CTREEVIEW_move_to, "(Key)s"),  GB_METHOD("MoveFirst", "b", CTREEVIEW_first, NULL),  GB_METHOD("MoveLast", "b", CTREEVIEW_last, NULL),  GB_METHOD("MoveNext", "b", CTREEVIEW_next, NULL),  GB_METHOD("MovePrevious", "b", CTREEVIEW_previous, NULL),  GB_METHOD("MoveChild", "b", CTREEVIEW_child, NULL),  GB_METHOD("MoveParent", "b", CTREEVIEW_parent, NULL),  GB_METHOD("MoveAbove", "b", CTREEVIEW_above, NULL),  GB_METHOD("MoveBelow", "b", CTREEVIEW_below, NULL),  GB_METHOD("MoveBack", "b", CTREEVIEW_back, NULL),  GB_METHOD("_get", ".TreeViewItem", CTREEVIEW_get, "(Key)s"),  GB_METHOD("Clear", NULL, CTREEVIEW_clear, NULL),  GB_METHOD("Add", ".TreeViewItem", CTREEVIEW_add, "(Key)s(Text)s[(Picture)Picture;(Parent)s(After)s]"),  GB_METHOD("Remove", NULL, CTREEVIEW_remove, "(Key)s"),  GB_METHOD("Exist", "b", CTREEVIEW_exist, "(Key)s"),  GB_METHOD("Find", "b", CTREEVIEW_find, "(X)i(Y)i"),  GB_PROPERTY_READ("Current", ".TreeViewItem", CTREEVIEW_current),  GB_PROPERTY_READ("Key", "s", CTREEVIEW_key),  GB_PROPERTY_READ("Item", ".TreeViewItem", CTREEVIEW_item),  GB_CONSTANT("_Properties", "s", CTREEVIEW_PROPERTIES),  GB_CONSTANT("_DefaultEvent", "s", "Click"),  GB_PROPERTY_READ("ClientWidth", "i", CTREEVIEW_client_width),  GB_PROPERTY_READ("ClientW", "i",  CTREEVIEW_client_width),  GB_PROPERTY_READ("ClientHeight", "i", CTREEVIEW_client_height),  GB_PROPERTY_READ("ClientH", "i", CTREEVIEW_client_height),  GB_EVENT("Select", NULL, NULL, &EVENT_Select),  GB_EVENT("Activate", NULL, NULL, &EVENT_Activate),  GB_EVENT("Click", NULL, NULL, &EVENT_Click),  GB_EVENT("Rename", NULL, NULL, &EVENT_Rename),  GB_EVENT("Expand", NULL, NULL, &EVENT_Expand),  GB_EVENT("Collapse", NULL, NULL, &EVENT_Collapse),  GB_END_DECLARE};/***************************************************************************  ColumnView***************************************************************************/GB_DESC CColumnViewColumnDesc[] ={  GB_DECLARE(".ColumnViewColumn", 0), GB_VIRTUAL_CLASS(),  GB_PROPERTY("Text", "s", CLISTVIEW_column_text),  GB_PROPERTY("Alignment", "i<Align,Left,Center,Right>", CLISTVIEW_column_alignment),  GB_PROPERTY("Width", "i", CLISTVIEW_column_width),  GB_PROPERTY("AutoResize", "b", CLISTVIEW_column_auto_resize),  //GB_PROPERTY("Numeric", "b", CLISTVIEW_column_numeric),  GB_END_DECLARE};GB_DESC CColumnViewColumnsDesc[] ={  GB_DECLARE(".ColumnViewColumns", 0), GB_VIRTUAL_CLASS(),  GB_METHOD("_get", ".ColumnViewColumn", CLISTVIEW_columns_get, "(Column)i"),  GB_PROPERTY("Count", "i", CLISTVIEW_columns_count),  GB_PROPERTY("Sort", "i", CLISTVIEW_columns_sort),  GB_PROPERTY("Ascending", "b", CLISTVIEW_columns_ascending),  //GB_METHOD("Adjust", NULL, CLISTVIEW_columns_adjust, NULL),  GB_END_DECLARE};GB_DESC CColumnViewDesc[] ={  GB_DECLARE("ColumnView", sizeof(CTREEVIEW)), GB_INHERITS("Control"),  GB_CONSTANT("None", "i", QListView::NoSelection),  GB_CONSTANT("Single", "i", QListView::Single),  GB_CONSTANT("Multi", "i", QListView::Multi),  GB_CONSTANT("Extended", "i", QListView::Extended),  GB_METHOD("_new", NULL, CCOLUMNVIEW_new, "(Parent)Container;"),  GB_METHOD("_free", NULL, CTREEVIEW_free, NULL),  GB_PROPERTY("Mode", "i<TreeView,None,Single,Multi,Extended>", CTREEVIEW_mode),  //GB_PROPERTY("Drop", "b", CTREEVIEW_drop),  GB_PROPERTY("Root", "b", CTREEVIEW_show_root),  GB_PROPERTY("Sorted", "b", CTREEVIEW_sorted),  GB_PROPERTY("Editable", "b", CTREEVIEW_editable),  GB_PROPERTY("ScrollBar", "i<Scroll>", CWIDGET_scrollbar),  GB_PROPERTY("Border", "b", CWIDGET_border_simple),  GB_PROPERTY_READ("Count", "i", CTREEVIEW_count),  GB_PROPERTY_READ("Available", "b", CTREEVIEW_available),  GB_METHOD("MoveCurrent", "b", CTREEVIEW_move_current, NULL),  GB_METHOD("MoveTo", "b", CTREEVIEW_move_to, "(Key)s"),  GB_METHOD("MoveFirst", "b", CTREEVIEW_first, NULL),  GB_METHOD("MoveLast", "b", CTREEVIEW_last, NULL),  GB_METHOD("MoveNext", "b", CTREEVIEW_next, NULL),  GB_METHOD("MovePrevious", "b", CTREEVIEW_previous, NULL),  GB_METHOD("MoveChild", "b", CTREEVIEW_child, NULL),  GB_METHOD("MoveParent", "b", CTREEVIEW_parent, NULL),  GB_METHOD("MoveAbove", "b", CTREEVIEW_above, NULL),  GB_METHOD("MoveBelow", "b", CTREEVIEW_below, NULL),  GB_METHOD("MoveBack", "b", CTREEVIEW_back, NULL),  GB_METHOD("_get", ".ColumnViewItem", CTREEVIEW_get, "(Key)s"),  GB_METHOD("Clear", NULL, CTREEVIEW_clear, NULL),  GB_METHOD("Add", ".ColumnViewItem", CTREEVIEW_add, "(Key)s(Text)s[(Picture)Picture;(Parent)s(After)s]"),  GB_METHOD("Remove", NULL, CTREEVIEW_remove, "(Key)s"),  GB_METHOD("Exist", "b", CTREEVIEW_exist, "(Key)s"),  GB_METHOD("Find", "b", CTREEVIEW_find, "(X)i(Y)i"),  GB_PROPERTY_READ("Current", ".ColumnViewItem", CTREEVIEW_current),  GB_PROPERTY_READ("Key", "s", CTREEVIEW_key),  GB_PROPERTY_READ("Item", ".ColumnViewItem", CTREEVIEW_item),  GB_EVENT("Select", NULL, NULL, &EVENT_Select),  GB_EVENT("Activate", NULL, NULL, &EVENT_Activate),  GB_EVENT("Click", NULL, NULL, &EVENT_Click),  GB_EVENT("Rename", NULL, NULL, &EVENT_Rename),  GB_EVENT("Expand", NULL, NULL, &EVENT_Expand),  GB_EVENT("Collapse", NULL, NULL, &EVENT_Collapse),  GB_EVENT("ColumnClick", NULL, "(Column)i", &EVENT_ColumnClick),  GB_PROPERTY_READ("Columns", ".ColumnViewColumns", CLISTVIEW_columns),  GB_PROPERTY("Resizable", "b", CLISTVIEW_resizable),  GB_PROPERTY("AutoResize", "b", CLISTVIEW_auto_resize),  GB_PROPERTY("Header", "b", CTREEVIEW_header),  GB_PROPERTY_READ("ClientWidth", "i", CTREEVIEW_client_width),  GB_PROPERTY_READ("ClientW", "i",  CTREEVIEW_client_width),  GB_PROPERTY_READ("ClientHeight", "i", CTREEVIEW_client_height),  GB_PROPERTY_READ("ClientH", "i", CTREEVIEW_client_height),  GB_CONSTANT("_Properties", "s", CCOLUMNVIEW_PROPERTIES),  GB_CONSTANT("_DefaultEvent", "s", "Click"),  GB_END_DECLARE};/***************************************************************************  class CTreeView***************************************************************************/CTreeView CTreeView::manager;MyListViewItem *CTreeView::getItem(CTREEVIEW *treeview, char *key){  MyListViewItem *item = (*treeview->dict)[key];  if (item == 0)  {    GB.Error("Unknown item: '&1'", key);    return NULL;  }  return item;}void CTreeView::raiseEvent(int ev, QListViewItem *it){  GET_SENDER(_object);  MyListViewItem *old = THIS->item;  if (!it)    it = WIDGET->currentItem();  THIS->item = (MyListViewItem *)it;  RAISE_EVENT(ev);  THIS->item = old;}void CTreeView::selected(void){  raiseEvent(EVENT_Select, 0);}void CTreeView::activated(QListViewItem *it){  if (!it)    return;  raiseEvent(EVENT_Activate, it);}void CTreeView::clicked(QListViewItem *it){  if (!it)    return;  raiseEvent(EVENT_Click, it);}static void post_rename_event(void *object){  GB.Raise(object, EVENT_Rename, 0);  GB.Unref(&object);}void CTreeView::renamed(QListViewItem *it, int col){  GET_SENDER(_object);  if (it == 0)    return;  THIS->item = (MyListViewItem *)it;  GB.Ref(THIS);  GB.Post((void (*)())post_rename_event, (long)THIS);}void CTreeView::columnClicked(QListViewItem *it, const QPoint &p, int c){  GET_SENDER(_object);  if (it == 0)    return;  THIS->item = (MyListViewItem *)it;  GB.Raise(_object, EVENT_ColumnClick, 1, GB_T_INTEGER, c);}void CTreeView::expanded(QListViewItem *it){  raiseEvent(EVENT_Expand, it);}void CTreeView::collapsed(QListViewItem *it){  raiseEvent(EVENT_Collapse, it);}void CTreeView::headerClicked(int c){  CTREEVIEW *_object = (CTREEVIEW *)CWidget::get((QObject *)sender());  if (_object->sorted == c)    _object->asc = !_object->asc;  else    _object->asc = true;  _object->sorted = c;  //WIDGET->setSorted(_object->sorted, _object->asc);}void CTreeView::headerSizeChange(int c, int os, int ns){//  CTREEVIEW *_object = (CTREEVIEW *)CWidget::get((QObject *)sender());//  updateLastColumn(WIDGET);}

⌨️ 快捷键说明

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