📄 ciconview.cpp
字号:
BEGIN_METHOD_VOID(CICONVIEW_first) return_item(THIS, (MyIconViewItem *)(WIDGET->firstItem()));END_METHODBEGIN_METHOD_VOID(CICONVIEW_next) return_item(THIS, (MyIconViewItem *)(THIS->item->nextItem()));END_METHODBEGIN_PROPERTY(CICONVIEW_scrollbar) //QScrollView *wid = (QScrollView *)QWIDGET(_object); 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_PROPERTYBEGIN_PROPERTY(CICONVIEWITEM_key) GB.ReturnString(THIS->item->key);END_PROPERTYBEGIN_PROPERTY(CICONVIEWITEM_picture) if (READ_PROPERTY) GB.ReturnObject(THIS->item->picture); else THIS->item->setPicture(PROP(GB_OBJECT));END_PROPERTYBEGIN_PROPERTY(CICONVIEWITEM_selected) MyIconViewItem *it = THIS->item; if (READ_PROPERTY) GB.ReturnBoolean(it->isSelected()); else it->iconView()->setSelected(it, VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CICONVIEWITEM_text) MyIconViewItem *it = THIS->item; if (READ_PROPERTY) GB.ReturnNewZeroString(TO_UTF8(it->text())); else it->setText(QSTRING_PROP());END_PROPERTYBEGIN_METHOD_VOID(CICONVIEWITEM_ensure_visible) //qDebug("ensure visible: %p", THIS->item); WIDGET->ensureItemVisible(THIS->item);END_METHODBEGIN_METHOD_VOID(CICONVIEWITEM_delete) THIS->dict->remove(THIS->item->key); delete THIS->item;END_PROPERTY/*BEGIN_METHOD_VOID(CICONVIEWITEM_init) CLASS_Item = GB.FindClass("Item");END_METHOD*/BEGIN_PROPERTY(CICONVIEW_client_width) GB.ReturnInteger(WIDGET->width() - WIDGET->frameWidth() * 2);END_PROPERTYBEGIN_PROPERTY(CICONVIEW_client_height) GB.ReturnInteger(WIDGET->height() - WIDGET->frameWidth() * 2);END_PROPERTYBEGIN_METHOD(CICONVIEW_select_all, GB_BOOLEAN on) if (MISSING(on) || VARG(on)) WIDGET->selectAll(true); else WIDGET->selectAll(false);END_METHODBEGIN_PROPERTY(CICONVIEW_grid_x) if (READ_PROPERTY) GB.ReturnInteger(WIDGET->gridX()); else { WIDGET->setGridX(VPROP(GB_INTEGER)); if (!WIDGET->itemsMovable()) WIDGET->arrangeItemsInGrid(true); }END_PROPERTYBEGIN_PROPERTY(CICONVIEW_grid_y) if (READ_PROPERTY) GB.ReturnInteger(WIDGET->gridY()); else { WIDGET->setGridY(VPROP(GB_INTEGER)); if (!WIDGET->itemsMovable()) WIDGET->arrangeItemsInGrid(true); }END_PROPERTYBEGIN_PROPERTY(CICONVIEW_arrangement) if (READ_PROPERTY) { if (WIDGET->itemsMovable()) GB.ReturnInteger(ARRANGEMENT_FREE); else GB.ReturnInteger(WIDGET->arrangement()); } else { if (VPROP(GB_INTEGER) == ARRANGEMENT_FREE) { WIDGET->setItemsMovable(true); WIDGET->setAutoArrange(false); WIDGET->setResizeMode(QIconView::Fixed); } else { WIDGET->setAutoArrange(true); WIDGET->setItemsMovable(false); WIDGET->setArrangement((QIconView::Arrangement)VPROP(GB_INTEGER)); if (THIS->sorted) WIDGET->sort(THIS->asc); WIDGET->setResizeMode(QIconView::Adjust); WIDGET->arrangeItemsInGrid(true); } }END_PROPERTYBEGIN_PROPERTY(CICONVIEW_word_wrap) if (READ_PROPERTY) GB.ReturnBoolean(WIDGET->wordWrapIconText()); else WIDGET->setWordWrapIconText(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CICONVIEWITEM_x) if (READ_PROPERTY) GB.ReturnInteger(THIS->item->x()); else THIS->item->move(VPROP(GB_INTEGER), THIS->item->y());END_PROPERTYBEGIN_PROPERTY(CICONVIEWITEM_y) if (READ_PROPERTY) GB.ReturnInteger(THIS->item->y()); else THIS->item->move(THIS->item->x(), VPROP(GB_INTEGER));END_PROPERTYBEGIN_PROPERTY(CICONVIEWITEM_w) GB.ReturnInteger(THIS->item->width());END_PROPERTYBEGIN_PROPERTY(CICONVIEWITEM_h) GB.ReturnInteger(THIS->item->height());END_PROPERTYBEGIN_METHOD(CICONVIEWITEM_move, GB_INTEGER x; GB_INTEGER y) THIS->item->move(VARG(x), VARG(y));END_METHODBEGIN_PROPERTY(CICONVIEWITEM_editable) if (READ_PROPERTY) GB.ReturnBoolean(THIS->item->renameEnabled()); else THIS->item->setRenameEnabled(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_METHOD_VOID(CICONVIEWITEM_rename) THIS->item->rename();END_METHOD/*************************************************************************** IconViewItem***************************************************************************/GB_DESC CIconViewItemDesc[] ={ GB_DECLARE(".IconViewItem", 0), GB_VIRTUAL_CLASS(), GB_PROPERTY_READ("Key", "s", CICONVIEWITEM_key), GB_PROPERTY("Picture", "Picture", CICONVIEWITEM_picture), GB_PROPERTY("Selected", "b", CICONVIEWITEM_selected), GB_PROPERTY("Text", "s", CICONVIEWITEM_text), GB_METHOD("EnsureVisible", NULL, CICONVIEWITEM_ensure_visible, NULL), GB_METHOD("Delete", NULL, CICONVIEWITEM_delete, NULL), GB_PROPERTY("Editable", "b", CICONVIEWITEM_editable), GB_METHOD("Rename", NULL, CICONVIEWITEM_rename, NULL), GB_METHOD("MoveNext", "b", CICONVIEW_next, NULL), GB_PROPERTY("X", "i", CICONVIEWITEM_x), GB_PROPERTY("Left", "i", CICONVIEWITEM_x), GB_PROPERTY("Y", "i", CICONVIEWITEM_y), GB_PROPERTY("Top", "i", CICONVIEWITEM_y), GB_PROPERTY_READ("W", "i", CICONVIEWITEM_w), GB_PROPERTY_READ("Width", "i", CICONVIEWITEM_w), GB_PROPERTY_READ("H", "i", CICONVIEWITEM_h), GB_PROPERTY_READ("Height", "i", CICONVIEWITEM_h), GB_METHOD("Move", NULL, CICONVIEWITEM_move, "(X)i(Y)i"), GB_END_DECLARE};/*************************************************************************** IconView***************************************************************************/GB_DESC CIconViewDesc[] ={ GB_DECLARE("IconView", sizeof(CICONVIEW)), GB_INHERITS("Control"), GB_CONSTANT("None", "i", QIconView::NoSelection), GB_CONSTANT("Single", "i", QIconView::Single), GB_CONSTANT("Multi", "i", QIconView::Multi), GB_CONSTANT("Extended", "i", QIconView::Extended), GB_CONSTANT("Free", "i", ARRANGEMENT_FREE), GB_CONSTANT("LeftRight", "i", QIconView::LeftToRight), GB_CONSTANT("TopBottom", "i", QIconView::TopToBottom), GB_METHOD("_new", NULL, CICONVIEW_new, "(Parent)Container;"), GB_METHOD("_free", NULL, CICONVIEW_free, NULL), GB_PROPERTY("Mode", "i<IconView,None,Single,Multi,Extended>", CICONVIEW_mode), //GB_PROPERTY("Sorted", "b", CICONVIEW_sorted), //GB_PROPERTY("Ascending", "b", CICONVIEW_ascending), GB_PROPERTY("Arrangement", "i<IconView,Free,LeftRight,TopBottom>", CICONVIEW_arrangement), GB_PROPERTY("GridX", "i", CICONVIEW_grid_x), GB_PROPERTY("GridY", "i", CICONVIEW_grid_y), GB_PROPERTY("WordWrap", "b", CICONVIEW_word_wrap), GB_PROPERTY("Border", "b", CWIDGET_border_simple), GB_PROPERTY("ScrollBar", "i<Scroll>", CWIDGET_scrollbar), GB_PROPERTY_READ("Count", "i", CICONVIEW_count), GB_PROPERTY_READ("Available", "b", CICONVIEW_available), GB_METHOD("MoveTo", "b", CICONVIEW_move_to, "(Key)s"), GB_METHOD("MoveFirst", "b", CICONVIEW_first, NULL), GB_METHOD("MoveNext", "b", CICONVIEW_next, NULL), GB_METHOD("_get", ".IconViewItem", CICONVIEW_get, "(Key)s"), GB_METHOD("Clear", NULL, CICONVIEW_clear, NULL), GB_METHOD("Add", ".IconViewItem", CICONVIEW_add, "(Key)s(Text)s[(Picture)Picture;(After)s]"), GB_METHOD("Remove", NULL, CICONVIEW_remove, "(Key)s"), GB_METHOD("Exist", "b", CICONVIEW_exist, "(Key)s"), GB_METHOD("Find", "b", CICONVIEW_find, "(X)i(Y)i"), GB_PROPERTY_READ("Current", ".IconViewItem", CICONVIEW_current), GB_PROPERTY_READ("Key", "s", CICONVIEW_key), GB_PROPERTY_READ("Item", ".IconViewItem", CICONVIEW_item), GB_METHOD("SelectAll", NULL, CICONVIEW_select_all, "[(Select)b]"), GB_CONSTANT("_Properties", "s", CICONVIEW_PROPERTIES), GB_CONSTANT("_DefaultEvent", "s", "Click"), GB_PROPERTY_READ("ClientWidth", "i", CICONVIEW_client_width), GB_PROPERTY_READ("ClientW", "i", CICONVIEW_client_width), GB_PROPERTY_READ("ClientHeight", "i", CICONVIEW_client_height), GB_PROPERTY_READ("ClientH", "i", CICONVIEW_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};/*************************************************************************** class CIconView***************************************************************************/CIconView CIconView::manager;MyIconViewItem *CIconView::getItem(CICONVIEW *treeview, char *key){ MyIconViewItem *item = (*treeview->dict)[key]; if (item == 0) { GB.Error("Unknown item '&1'", key); return NULL; } return item;}void CIconView::raiseEvent(int ev, QIconViewItem *it){ GET_SENDER(_object); MyIconViewItem *old = THIS->item; if (!it) it = WIDGET->currentItem(); THIS->item = (MyIconViewItem *)it; RAISE_EVENT(ev); THIS->item = old;}void CIconView::selected(void){ raiseEvent(EVENT_Select, 0); #if QT_VERSION < 0x030200 raiseEvent(EVENT_Click, 0); #endif}void CIconView::activated(QIconViewItem *it){ if (!it) return; raiseEvent(EVENT_Activate, it);}void CIconView::clicked(QIconViewItem *it){ if (!it) return; raiseEvent(EVENT_Click, it);}void CIconView::renamed(QIconViewItem *it){ raiseEvent(EVENT_Rename, it);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -