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

📄 ceditor.cpp

📁 Gambas is a graphical development environment based on a Basic interpreter, like Visual Basic. It us
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// END_METHODBEGIN_METHOD(CEDITOR_sel_select, GB_INTEGER start; GB_INTEGER length)  if (MISSING(start) && MISSING(length))    WIDGET->selectAll();  else if (!MISSING(start) && !MISSING(length))    WIDGET->setSelection(VARG(start), VARG(length));END_METHODBEGIN_METHOD(CEDITOR_to_pos, GB_INTEGER line; GB_INTEGER column)  GB.ReturnInteger(WIDGET->toPos(VARG(line), VARG(column)));END_METHODBEGIN_METHOD(CEDITOR_to_line, GB_INTEGER pos)  int line, col;  WIDGET->fromPos(VARG(pos), &line, &col);  GB.ReturnInteger(line);END_METHODBEGIN_METHOD(CEDITOR_to_col, GB_INTEGER pos)  int line, col;  WIDGET->fromPos(VARG(pos), &line, &col);  GB.ReturnInteger(col);END_METHODBEGIN_METHOD(CEDITOR_find_next_breakpoint, GB_INTEGER line)  GB.ReturnInteger(WIDGET->findNextBreakpoint(VARG(line)));END_METHODBEGIN_METHOD(CEDITOR_color_get, GB_INTEGER index)  int index = VARG(index);  if (index < 0 || index >= NUM_COLORS)  {    GB.Error("Bad index");    return;  }  GB.ReturnInteger(WIDGET->getColor(index).rgb() & 0xFFFFFF);END_METHODBEGIN_METHOD(CEDITOR_color_set, GB_INTEGER color; GB_INTEGER index)  int index = VARG(index);  if (index < 0 || index >= NUM_COLORS)  {    GB.Error("Bad index");    return;  }  WIDGET->setColor(index, QColor((QRgb)VARG(color)));END_METHODBEGIN_METHOD_VOID(CEDITOR_copy)  WIDGET->copy();END_METHODBEGIN_METHOD_VOID(CEDITOR_cut)  WIDGET->cut();END_METHODBEGIN_METHOD_VOID(CEDITOR_paste)  WIDGET->paste();END_METHODBEGIN_METHOD_VOID(CEDITOR_undo)  WIDGET->undo();END_METHODBEGIN_METHOD_VOID(CEDITOR_redo)  WIDGET->redo();END_METHODBEGIN_METHOD(CEDITOR_indent, GB_BOOLEAN back)  WIDGET->indent(VARGOPT(back, false));END_METHODBEGIN_PROPERTY(CEDITOR_read_only)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->isReadOnly());  else    WIDGET->setReadOnly(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CEDITOR_highlight)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->isUseColor());  else    WIDGET->setUseColor(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CEDITOR_show_proc)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->isShowProc());  else    WIDGET->setShowProc(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CEDITOR_use_relief)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->isUseRelief());  else    WIDGET->setUseRelief(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CEDITOR_show_current)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->isShowCurrent());  else    WIDGET->setShowCurrent(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CEDITOR_show_change)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->isShowChange());  else    WIDGET->setShowChange(VPROP(GB_BOOLEAN));END_PROPERTYBEGIN_PROPERTY(CEDITOR_frozen)  if (READ_PROPERTY)    GB.ReturnBoolean(!WIDGET->autoUpdate());  else  {    bool a = VPROP(GB_BOOLEAN) == 0;    //if (!a)    //  WIDGET->stopBlink();    if (a)      WIDGET->endUndo();    else      WIDGET->startUndo();    WIDGET->setAutoUpdate(a);    if (a)    {      WIDGET->updateContents();      //WIDGET->startBlink();    }  }END_PROPERTYBEGIN_METHOD_VOID(CEDITOR_refresh)  WIDGET->repaintContents();  //WIDGET->updateContents();END_METHODBEGIN_METHOD_VOID(CEDITOR_reset)  WIDGET->resetChangedLines();  //WIDGET->updateContents();END_METHODBEGIN_PROPERTY(CEDITOR_tab_length)  if (READ_PROPERTY)    GB.ReturnInteger(WIDGET->tabSpace());  else    WIDGET->setTabSpace(VPROP(GB_INTEGER));END_PROPERTY/*BEGIN_PROPERTY(CEDITOR_syntax)  if (READ_PROPERTY)    GB.ReturnBoolean(WIDGET->syntax);  else    WIDGET->syntax = VPROP(GB_BOOLEAN);END_PROPERTY*/BEGIN_PROPERTY(CEDITOR_cursor_x)  GB.ReturnInteger(WIDGET->posX(-1, -1));END_PROPERTYBEGIN_PROPERTY(CEDITOR_cursor_y)  GB.ReturnInteger(WIDGET->posY(-1, -1));END_PROPERTYBEGIN_METHOD(CEDITOR_to_pos_x, GB_INTEGER x)  GB.ReturnInteger(WIDGET->posX(VARG(x), -1));END_METHODBEGIN_PROPERTY(CEDITOR_line_height)  GB.ReturnInteger(WIDGET->cellHeight());END_PROPERTYGB_DESC CEditorSelectionDesc[] ={  GB_DECLARE(".GambasEditor.Selection", 0), GB_VIRTUAL_CLASS(),  GB_PROPERTY("Text", "s", CEDITOR_sel_text),  GB_PROPERTY_READ("Length", "i", CEDITOR_sel_length),  GB_PROPERTY_READ("Start", "i", CEDITOR_sel_start),  GB_METHOD("Clear", NULL, CEDITOR_sel_clear, NULL),  GB_METHOD("Set", NULL, CEDITOR_sel_select, "[(Start)i(Length)i]"),  GB_METHOD("_call", NULL, CEDITOR_sel_select, "[(Start)i(Length)i]"),  GB_END_DECLARE};GB_DESC CEditorLinesDesc[] ={  GB_DECLARE(".GambasEditor.Lines", 0), GB_VIRTUAL_CLASS(),  GB_METHOD("_get", "s", CEDITOR_line_get, "(Line)i"),  GB_METHOD("_put", NULL, CEDITOR_line_put, "(Text)s(Line)i"),  GB_METHOD("SetFlag", NULL, CEDITOR_line_set_flag, "(Line)i(Flag)i(Value)b"),  GB_METHOD("GetFlag", "b", CEDITOR_line_get_flag, "(Line)i(Flag)i"),  GB_PROPERTY_READ("Count", "i", CEDITOR_line_count),  GB_END_DECLARE};GB_DESC CEditorColorsDesc[] ={  GB_DECLARE(".GambasEditor.Colors", 0), GB_VIRTUAL_CLASS(),  GB_METHOD("_get", "i", CEDITOR_color_get, "(Style)i"),  GB_METHOD("_put", NULL, CEDITOR_color_set, "(Color)i(Style)i"),  GB_CONSTANT("Background", "i", QEditorRow::Background),  GB_CONSTANT("Normal", "i", QEditorRow::Normal),  GB_CONSTANT("Keyword", "i", QEditorRow::Keyword),  GB_CONSTANT("Function", "i", QEditorRow::Subr),  GB_CONSTANT("Operator", "i", QEditorRow::Operator),  GB_CONSTANT("Symbol", "i", QEditorRow::Symbol),  GB_CONSTANT("Number", "i", QEditorRow::Number),  GB_CONSTANT("String", "i", QEditorRow::String),  GB_CONSTANT("Comment", "i", QEditorRow::Commentary),  GB_CONSTANT("Breakpoint", "i", QEditorRow::Breakpoint),  GB_CONSTANT("Current", "i", QEditorRow::Current),  GB_CONSTANT("DataType", "i", QEditorRow::Datatype),  GB_CONSTANT("Selection", "i", QEditorRow::Selection),  GB_CONSTANT("Highlight", "i", QEditorRow::Highlight),  GB_CONSTANT("Line", "i", QEditorRow::Line),  GB_END_DECLARE};GB_DESC CEditorDesc[] ={  GB_DECLARE("GambasEditor", sizeof(CEDITOR)), GB_INHERITS("Control"),  GB_CONSTANT("Current", "i", 0),  GB_CONSTANT("Breakpoint", "i", 1),  GB_METHOD("_new", NULL, CEDITOR_new, "(Parent)Container;"),  GB_STATIC_METHOD("_exit", NULL, CEDITOR_exit, NULL),  GB_PROPERTY("Text", "s", CEDITOR_text),  GB_PROPERTY_READ("Length", "i", CEDITOR_length),  GB_PROPERTY("Line", "i", CEDITOR_line),  GB_PROPERTY("Column", "i", CEDITOR_column),  GB_PROPERTY("Pos", "i", CEDITOR_pos),    GB_METHOD("Goto", NULL, CEDITOR_goto, "(Line)i(Column)i"),  GB_METHOD("EnsureVisible", NULL, CEDITOR_ensure_visible, NULL),    GB_PROPERTY("Frozen", "b", CEDITOR_frozen),  GB_PROPERTY("TabLength", "i", CEDITOR_tab_length),  GB_METHOD("Reset", NULL, CEDITOR_reset, NULL),    //GB_METHOD("CenterOn", NULL, CEDITOR_center_on, "(Line)i");  //GB_PROPERTY("Syntax", "b", CEDITOR_syntax),  GB_PROPERTY("ReadOnly", "b", CEDITOR_read_only),  GB_PROPERTY("Highlight", "b", CEDITOR_highlight),  GB_PROPERTY("ShowProc", "b", CEDITOR_show_proc),  GB_PROPERTY("UseRelief", "b", CEDITOR_use_relief),  GB_PROPERTY("ShowCurrent", "b", CEDITOR_show_current),  GB_PROPERTY("ShowChange", "b", CEDITOR_show_change),  GB_METHOD("Refresh", NULL, CEDITOR_refresh, NULL),  GB_METHOD("Clear", NULL, CEDITOR_clear, NULL),  GB_METHOD("Insert", NULL, CEDITOR_insert, "(Text)s"),  GB_METHOD("Indent", NULL, CEDITOR_indent, "[(Back)b]"),  GB_METHOD("Copy", NULL, CEDITOR_copy, NULL),  GB_METHOD("Cut", NULL, CEDITOR_cut, NULL),  GB_METHOD("Paste", NULL, CEDITOR_paste, NULL),  GB_METHOD("Undo", NULL, CEDITOR_undo, NULL),  GB_METHOD("Redo", NULL, CEDITOR_redo, NULL),  GB_METHOD("ToPos", "i", CEDITOR_to_pos, "(Line)i(Column)i"),  GB_METHOD("ToLine", "i", CEDITOR_to_line, "(Pos)i"),  GB_METHOD("ToColumn", "i", CEDITOR_to_col, "(Pos)i"),    GB_METHOD("ToPosX", "i", CEDITOR_to_pos_x, "(Column)i"),  GB_PROPERTY_READ("Lines", ".GambasEditor.Lines", CEDITOR_lines),  GB_PROPERTY_READ("Selection", ".GambasEditor.Selection", CEDITOR_lines),  GB_PROPERTY_READ("Colors", ".GambasEditor.Colors", CEDITOR_lines),  GB_METHOD("Select", NULL, CEDITOR_sel_select, "[(Start)i(Length)i]"),  GB_METHOD("FindNextBreakpoint", "i", CEDITOR_find_next_breakpoint, "(Line)i"),  GB_METHOD("PurgeLine", "s", CEDITOR_purge_line, "(Line)i"),  GB_STATIC_METHOD("Analyze", "String[]", CEDITOR_analyze, "(Text)s"),  GB_STATIC_PROPERTY_READ("Symbols", "String[]", CEDITOR_analyze_symbols),  GB_STATIC_PROPERTY_READ("Types", "Integer[]", CEDITOR_analyze_types),  GB_STATIC_PROPERTY_READ("Positions", "Integer[]", CEDITOR_analyze_positions),  GB_PROPERTY_READ("CursorX", "i", CEDITOR_cursor_x),  GB_PROPERTY_READ("CursorY", "i", CEDITOR_cursor_y),  GB_PROPERTY_READ("LineHeight", "i", CEDITOR_line_height),  GB_EVENT("Change", NULL, NULL, &EVENT_Change),  GB_EVENT("Cursor", NULL, NULL, &EVENT_Cursor),  GB_EVENT("Scroll", NULL, NULL, &EVENT_Scroll),  GB_CONSTANT("_DefaultEvent", "s", "KeyPress"),  GB_CONSTANT("_Properties", "s", CEDITOR_PROPERTIES),  GB_END_DECLARE};CEditor CEditor::manager;void CEditor::changed(void){  void *object = QT.GetObject((QWidget *)sender());  GB.Raise(object, EVENT_Change, 0);}void CEditor::moved(void){  void *object = QT.GetObject((QWidget *)sender());  GB.Raise(object, EVENT_Cursor, 0);}void CEditor::scrolled(int, int){  void *object = QT.GetObject((QWidget *)sender());  GB.Raise(object, EVENT_Scroll, 0);}/*void CGridView::activated(void){  RAISE_EVENT(EVENT_Activate, NULL);}void CGridView::clicked(void){  RAISE_EVENT(EVENT_Click, NULL);}*/

⌨️ 快捷键说明

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