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

📄 ctextbox.cpp

📁 Gambas is a graphical development environment based on a Basic interpreter, like Visual Basic. It us
💻 CPP
📖 第 1 页 / 共 2 页
字号:
BEGIN_PROPERTY(CCOMBOBOX_text)  int pos;  if (READ_PROPERTY)    GB.ReturnNewZeroString(TO_UTF8(COMBOBOX->currentText()));  else  {    QString text = QSTRING_PROP();    if (COMBOBOX->editable())      COMBOBOX->lineEdit()->setText(text);    // A faire lorsque la combo s'ouvre    pos = CTextBox::find(COMBOBOX, text);    //if (pos >= 0)      COMBOBOX->setCurrentItem(pos);  }END_PROPERTYBEGIN_PROPERTY(CCOMBOBOX_length)  GB.ReturnInteger(COMBOBOX->currentText().length());END_PROPERTYBEGIN_PROPERTY(CCOMBOBOX_read_only)  if (READ_PROPERTY)    GB.ReturnBoolean(!COMBOBOX->editable());  else    combo_set_editable(_object, !VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_METHOD(CCOMBOBOX_get, GB_INTEGER index)  long index = VARG(index);  if (index < 0 || index >= (int)COMBOBOX->count())  {    GB.Error("Bad index");    return;  }  THIS->index = index;  RETURN_SELF();END_METHODBEGIN_PROPERTY(CCOMBOBOX_item_text)  if (READ_PROPERTY)    GB.ReturnNewZeroString(COMBOBOX->text(THIS->index));  else  {    COMBOBOX->blockSignals(true);    COMBOBOX->changeItem(QSTRING_PROP(), THIS->index);    COMBOBOX->blockSignals(false);  }END_PROPERTYBEGIN_METHOD(CCOMBOBOX_add, GB_STRING item; GB_INTEGER pos)  COMBOBOX->blockSignals(true);  COMBOBOX->insertItem(QSTRING_ARG(item), VARGOPT(pos, -1));  if (THIS->sorted)    COMBOBOX->listBox()->sort();  COMBOBOX->blockSignals(false);END_METHODBEGIN_METHOD(CCOMBOBOX_remove, GB_INTEGER pos)  COMBOBOX->blockSignals(true);  COMBOBOX->removeItem(VARG(pos));  COMBOBOX->blockSignals(false);END_METHODBEGIN_PROPERTY(CCOMBOBOX_sorted)  if (READ_PROPERTY)    GB.ReturnBoolean(THIS->sorted);  else  {    THIS->sorted = VPROP(GB_BOOLEAN);    if (THIS->sorted)      COMBOBOX->listBox()->sort();  }END_METHODBEGIN_PROPERTY(CCOMBOBOX_count)  GB.ReturnInteger(COMBOBOX->count());END_PROPERTYBEGIN_PROPERTY(CCOMBOBOX_index)  if (READ_PROPERTY)    GB.ReturnInteger(COMBOBOX->currentItem());  else    setCurrentItem(_object, VPROP(GB_INTEGER));END_PROPERTYBEGIN_PROPERTY(CCOMBOBOX_current)  THIS->index = COMBOBOX->currentItem();  if (THIS->index < 0)    GB.ReturnNull();  else    RETURN_SELF();END_PROPERTY/*BEGIN_PROPERTY(CCOMBOBOX_mouse)  if (READ_PROPERTY)    GB.ReturnInteger(COMBOBOX->cursor().shape());  else  {    if (COMBOBOX->editable())      COMBOBOX->lineEdit()->setCursor(PROPERTY(long));    COMBOBOX->setCursor(PROPERTY(long));  }END_METHOD*/BEGIN_METHOD(CCOMBOBOX_find, GB_STRING item)  GB.ReturnInteger(CTextBox::find(COMBOBOX, QSTRING_ARG(item)));END_METHODBEGIN_PROPERTY(CCOMBOBOX_list)  if (READ_PROPERTY)    GB.ReturnNewZeroString(TO_UTF8(CTextBox::getAll(COMBOBOX)));  else  {    CTextBox::setAll(COMBOBOX, QSTRING_PROP());    if (THIS->sorted)      COMBOBOX->listBox()->sort();  }END_PROPERTY/***************************************************************************  class MyComboBox***************************************************************************/MyComboBox::MyComboBox(QWidget *parent) :  QComboBox(false, parent){  calcMinimumHeight();}void MyComboBox::fontChange(const QFont &font){  QWidget::fontChange(font);  calcMinimumHeight();}void MyComboBox::calcMinimumHeight(){  QFontMetrics fm = fontMetrics();  if (editable())    setMinimumHeight(fm.lineSpacing() + height() - lineEdit()->height());  else    setMinimumHeight(fm.lineSpacing() + 2);}/***************************************************************************  class CTextBox***************************************************************************/CTextBox CTextBox::manager;void CTextBox::event_change(void){  RAISE_EVENT(EVENT_Change);}void CTextBox::event_activate(void){  RAISE_EVENT(EVENT_Activate);}void CTextBox::event_click(){  RAISE_EVENT(EVENT_Click);}int CTextBox::find(QComboBox *list, const QString& s){  for (int i = 0; i < (int)list->count(); i++)  {    if (list->text(i) == s)      return i;  }  return (-1);}QString& CTextBox::getAll(QComboBox *list){  static QString s;  s = "";  for (int i = 0; i < (int)list->count(); i++)  {    if (i > 0)      s += '\n';    s += list->text(i);  }  return s;}void CTextBox::setAll(QComboBox *list, const QString &all){  int pos;  QString s(all);  list->clear();  if (s.length() == 0)    return;  list->blockSignals(true);  for(;;)  {    pos = s.find('\n');    if (pos < 0)    {      list->insertItem(s);      break;    }    list->insertItem(s.left(pos));    s = s.mid(pos + 1);  }  list->blockSignals(false);}/***************************************************************************  Descriptions***************************************************************************/GB_DESC CTextBoxSelectionDesc[] ={  GB_DECLARE(".TextBoxSelection", 0), GB_VIRTUAL_CLASS(),  GB_PROPERTY("Text", "s", CTEXTBOX_sel_text),  GB_PROPERTY_READ("Length", "i", CTEXTBOX_sel_length),  GB_PROPERTY_READ("Start", "i", CTEXTBOX_sel_start),  GB_PROPERTY_READ("Pos", "i", CTEXTBOX_sel_start),  GB_METHOD("Clear", NULL, CTEXTBOX_sel_clear, NULL),  GB_METHOD("Hide", NULL, CTEXTBOX_sel_clear, NULL),  GB_METHOD("All", NULL, CTEXTBOX_sel_select_all, NULL),  GB_METHOD("_call", NULL, CTEXTBOX_sel_select, "[(Start)i(Length)i]"),  GB_END_DECLARE};GB_DESC CTextBoxDesc[] ={  GB_DECLARE("TextBox", sizeof(CTEXTBOX)), GB_INHERITS("Control"),  GB_METHOD("_new", NULL, CTEXTBOX_new, "(Parent)Container;"),  GB_PROPERTY("Text", "s", CTEXTBOX_text),  GB_PROPERTY("Alignment", "i<Align,Normal,Left,Center,Right>", CTEXTBOX_alignment),  GB_PROPERTY_READ("Length", "i", CTEXTBOX_length),  GB_PROPERTY("Pos", "i", CTEXTBOX_pos),  GB_PROPERTY("ReadOnly", "b", CTEXTBOX_read_only),  GB_PROPERTY("Border", "b", CTEXTBOX_border),  GB_PROPERTY("Password", "b", CTEXTBOX_password),  GB_PROPERTY("MaxLength", "i", CTEXTBOX_max_length),  GB_PROPERTY_SELF("Selection", ".TextBoxSelection"),  GB_PROPERTY_SELF("Select", ".TextBoxSelection"),  //GB_METHOD("Select", NULL, CTEXTBOX_sel_select, "[(Start)i(Length)i]"),  GB_CONSTANT("_Properties", "s", CTEXTBOX_PROPERTIES),  GB_CONSTANT("_DefaultEvent", "s", "KeyPress"),  GB_METHOD("Clear", NULL, CTEXTBOX_clear, NULL),  GB_METHOD("Insert", NULL, CTEXTBOX_insert, "(Text)s"),  GB_EVENT("Change", NULL, NULL, &EVENT_Change),  GB_EVENT("Activate", NULL, NULL, &EVENT_Activate),  GB_END_DECLARE};GB_DESC CComboBoxItemDesc[] ={  GB_DECLARE(".ComboBoxItem", 0), GB_VIRTUAL_CLASS(),  GB_PROPERTY("Text", "s", CCOMBOBOX_item_text),  GB_END_DECLARE};GB_DESC CComboBoxDesc[] ={  GB_DECLARE("ComboBox", sizeof(CCOMBOBOX)), GB_INHERITS("Control"),  GB_METHOD("_new", NULL, CCOMBOBOX_new, "(Parent)Container;"),  GB_METHOD("_get", ".ComboBoxItem", CCOMBOBOX_get, "(Index)i"),  GB_PROPERTY("Text", "s", CCOMBOBOX_text),  GB_PROPERTY_READ("Length", "i", CCOMBOBOX_length),  GB_PROPERTY("Pos", "i", CTEXTBOX_pos),  GB_PROPERTY("ReadOnly", "b", CCOMBOBOX_read_only),  GB_PROPERTY("Password", "b", CTEXTBOX_password),  GB_PROPERTY("MaxLength", "i", CTEXTBOX_max_length),  GB_PROPERTY_SELF("Selection", ".TextBoxSelection"),  GB_PROPERTY_SELF("Select", ".TextBoxSelection"),  //GB_METHOD("Select", NULL, CTEXTBOX_sel_select, "[(Start)i(Length)i]"),  GB_CONSTANT("_Properties", "s", CCOMBOBOX_PROPERTIES),  GB_CONSTANT("_DefaultEvent", "s", "Click"),  GB_METHOD("Clear", NULL, CCOMBOBOX_clear, NULL),  GB_METHOD("Insert", NULL, CTEXTBOX_insert, "(Text)s"),  //  GB_METHOD("Add", NULL, CCOMBOBOX_add, "(Item)s[(Index)i]"),  GB_METHOD("Remove", NULL, CCOMBOBOX_remove, "(Index)i"),  GB_METHOD("Find", "i", CCOMBOBOX_find, "(Item)s"),  /*  GB_METHOD("Select", NULL, CCOMBOBOX_select, 1, 1, "i"),  GB_METHOD("Invert", NULL, CCOMBOBOX_invert, 0, 0, NULL),  */  GB_PROPERTY("Sorted", "b", CCOMBOBOX_sorted),    GB_PROPERTY("List", "s", CCOMBOBOX_list),  GB_PROPERTY("Contents", "s", CCOMBOBOX_list),  GB_PROPERTY_READ("Count", "i", CCOMBOBOX_count),  GB_PROPERTY_READ("Current", ".ComboBoxItem", CCOMBOBOX_current),  GB_PROPERTY("Index", "i", CCOMBOBOX_index),  //GB_PROPERTY("Mouse", "i", CCOMBOBOX_mouse),  GB_EVENT("Change", NULL, NULL, &EVENT_Change),  GB_EVENT("Activate", NULL, NULL, &EVENT_Activate),  GB_EVENT("Click", NULL, NULL, &EVENT_Click),  GB_END_DECLARE};

⌨️ 快捷键说明

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