📄 ceditor.cpp
字号:
// 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 + -