| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- package imgui
- // #include "stdlib.h"
- // #include "TextEditorWrapper.h"
- import "C"
- import "unsafe"
- type LanguageDefinition uintptr
- func NewLanguageDefinition() LanguageDefinition {
- handle := C.IggNewLanguageDef()
- return LanguageDefinition(handle)
- }
- func (ld LanguageDefinition) handle() C.IggTextEditorLanguageDefinition {
- return C.IggTextEditorLanguageDefinition(ld)
- }
- func (ld LanguageDefinition) SetName(name string) {
- nameArg, nameDeleter := wrapString(name)
- defer nameDeleter()
- C.IggTextEditorLDSetName(ld.handle(), nameArg)
- }
- func (ld LanguageDefinition) SetKeywords(keywords []string) {
- keywordsArg := make([]*C.char, len(keywords))
- for i, k := range keywords {
- kArg, kDeleter := wrapString(k)
- defer kDeleter()
- keywordsArg[i] = kArg
- }
- C.IggTextEditorLDSetKeywords(ld.handle(), &keywordsArg[0], C.int(len(keywords)))
- }
- type TextEditor uintptr
- func NewTextEditor() TextEditor {
- handle := C.IggNewTextEditor()
- return TextEditor(handle)
- }
- func (t TextEditor) handle() C.IggTextEditor {
- return C.IggTextEditor(t)
- }
- func (t TextEditor) Render(title string, size Vec2, border bool) {
- titleArg, titleFn := wrapString(title)
- defer titleFn()
- sizeArg, _ := size.wrapped()
- C.IggTextEditorRender(t.handle(), titleArg, sizeArg, castBool(border))
- }
- func (t TextEditor) SetShowWhitespaces(show bool) {
- C.IggTextEditorSetShowWhitespaces(t.handle(), castBool(show))
- }
- func (t TextEditor) SetTabSize(size int) {
- C.IggTextEditorSetTabSize(t.handle(), C.int(size))
- }
- func (t TextEditor) InsertText(text string) {
- textArg, textFn := wrapString(text)
- defer textFn()
- C.IggTextEditorInsertText(t.handle(), textArg)
- }
- func (t TextEditor) SetText(text string) {
- textArg, textFn := wrapString(text)
- defer textFn()
- C.IggTextEditorSetText(t.handle(), textArg)
- }
- func (t TextEditor) GetText() string {
- str := C.IggTextEditorGetText(t.handle())
- defer C.free(unsafe.Pointer(str))
- return C.GoString(str)
- }
- func (t TextEditor) GetWordUnderCursor() string {
- str := C.IggTextEditorGetWordUnderCursor(t.handle())
- defer C.free(unsafe.Pointer(str))
- return C.GoString(str)
- }
- func (t TextEditor) HasSelection() bool {
- return C.IggTextEditorHasSelection(t.handle()) != 0
- }
- func (t TextEditor) GetSelectedText() string {
- str := C.IggTextEditorGetSelectedText(t.handle())
- defer C.free(unsafe.Pointer(str))
- return C.GoString(str)
- }
- func (t TextEditor) GetCurrentLineText() string {
- str := C.IggTextEditorGetCurrentLineText(t.handle())
- defer C.free(unsafe.Pointer(str))
- return C.GoString(str)
- }
- func (t TextEditor) IsTextChanged() bool {
- return C.IggTextEditorIsTextChanged(t.handle()) != 0
- }
- func (t TextEditor) GetScreenCursorPos() (int, int) {
- var column int
- var line int
- C.IggTextEditorGetScreenCursorPos(t.handle(), (*C.int)(unsafe.Pointer(&column)), (*C.int)(unsafe.Pointer(&line)))
- return column, line
- }
- func (t TextEditor) GetCursorPos() (int, int) {
- var column int
- var line int
- C.IggTextEditorGetCursorPos(t.handle(), (*C.int)(unsafe.Pointer(&column)), (*C.int)(unsafe.Pointer(&line)))
- return column, line
- }
- func (t TextEditor) SetCursorPos(line, column int) {
- C.IggTextEditorSetCursorPos(t.handle(), (C.int)(column), (C.int)(line))
- }
- func (t TextEditor) GetSelectionStart() (int, int) {
- var column int
- var line int
- C.IggTextEditorGetSelectionStart(t.handle(), (*C.int)(unsafe.Pointer(&column)), (*C.int)(unsafe.Pointer(&line)))
- return column, line
- }
- func (t TextEditor) SetLanguageDefinition(ld LanguageDefinition) {
- C.IggTextEditorSetLanguageDefinition(t.handle(), ld.handle())
- }
- func (t TextEditor) SetLanguageDefinitionSQL() {
- C.IggTextEditorSetLanguageDefinitionSQL(t.handle())
- }
- func (t TextEditor) SetLanguageDefinitionCPP() {
- C.IggTextEditorSetLanguageDefinitionCPP(t.handle())
- }
- func (t TextEditor) SetLanguageDefinitionC() {
- C.IggTextEditorSetLanguageDefinitionC(t.handle())
- }
- func (t TextEditor) SetLanguageDefinitionLua() {
- C.IggTextEditorSetLanguageDefinitionLua(t.handle())
- }
- type ErrorMarkers uintptr
- func NewErrorMarkers() ErrorMarkers {
- handle := C.IggTextEditorNewErrorMarkers()
- return ErrorMarkers(handle)
- }
- func (e ErrorMarkers) handle() C.IggTextEditorErrorMarkers {
- return C.IggTextEditorErrorMarkers(e)
- }
- func (e ErrorMarkers) Insert(pos int, errMsg string) {
- errMsgArg, errMsgFn := wrapString(errMsg)
- defer errMsgFn()
- C.IggTextEditorErrorMarkersInsert(e.handle(), C.int(pos), errMsgArg)
- }
- func (e ErrorMarkers) Clear() {
- C.IggTextEditorErrorMarkersClear(e.handle())
- }
- func (e ErrorMarkers) Size() uint {
- return uint(C.IggTextEditorErrorMarkersSize(e.handle()))
- }
- func (t TextEditor) SetErrorMarkers(markers ErrorMarkers) {
- C.IggTextEditorSetErrorMarkers(t.handle(), markers.handle())
- }
- func (t TextEditor) Copy() {
- C.IggTextEditorCopy(t.handle())
- }
- func (t TextEditor) Cut() {
- C.IggTextEditorCut(t.handle())
- }
- func (t TextEditor) Paste() {
- C.IggTextEditorPaste(t.handle())
- }
- func (t TextEditor) Delete() {
- C.IggTextEditorDelete(t.handle())
- }
- func (t TextEditor) SelectWordUnderCursor() {
- C.IggTextEditorSelectWordUnderCursor(t.handle())
- }
- func (t TextEditor) SelectAll() {
- C.IggTextEditorSelectAll(t.handle())
- }
- func (t TextEditor) SetHandleKeyboardInputs(b bool) {
- val := 0
- if b {
- val = 1
- }
- C.IggTextEditorSetHandleKeyboardInputs(t.handle(), C.int(val))
- }
|