Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid dependency on exported go header #124

Merged
merged 1 commit into from
Jan 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
61 changes: 42 additions & 19 deletions cmd/genbindings/emitcabi.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ func cppComment(s string) string {
return "/* " + uncomment.Replace(s) + " */ "
}

func cabiCallbackName(c CppClass, m CppMethod) string {
return "miqt_exec_callback_" + cabiClassName(c.ClassName) + "_" + m.SafeMethodName()
}

func (p CppParameter) RenderTypeCabi() string {

if p.ParameterType == "QString" {
Expand Down Expand Up @@ -810,22 +814,44 @@ func emitBindingCpp(src *CppParsedHeader, filename string) (string, error) {
ret.WriteString(`#include <` + filename + ">\n")
ret.WriteString(`#include "gen_` + filename + "\"\n")

// We need to import the cgo header so that we can call functions exported
// from Go code
// This header is written in C99 and uses C99 features (_Bool). We are C++
// and _Bool is not defined anywhere
// There is stdbool.h (<cstdbool>) but that does the opposite (defines 'bool'
// in terms of C99's native _Bool type)
// This is not required in GCC nor Clang 12, but is required in Clang 16 and
// later. In the working compilers, it's likely that the _Bool definition is
// automatically applied in some non-strict mode by default.
// We have been recommending CGO_CXXFLAGS=-D_Bool=bool . Now that the problem
// is more well understood, do the equivalent thing automatically
// Write prototypes for functions that the host language bindings should export
// for virtual function overrides

ret.WriteString(`
#ifndef _Bool
#define _Bool bool
#ifdef __cplusplus
extern "C" {
#endif

`)

for _, c := range src.Classes {
for _, m := range c.Methods {
if m.IsSignal {
callback := "void " + cabiCallbackName(c, m) + "(intptr_t"

for _, p := range m.Parameters {
callback += ", " + p.RenderTypeCabi()
}
callback += ");\n"
ret.WriteString(callback)
}
}

for _, m := range c.VirtualMethods() {
callback := m.ReturnType.RenderTypeCabi() + " " + cabiCallbackName(c, m) + "(void*, intptr_t"

for _, p := range m.Parameters {
callback += ", " + p.RenderTypeCabi()
}
callback += ");\n"
ret.WriteString(callback)
}
}

ret.WriteString(
`#ifdef __cplusplus
} /* extern C */
#endif
#include "_cgo_export.h"

`)

Expand Down Expand Up @@ -932,7 +958,7 @@ func emitBindingCpp(src *CppParsedHeader, filename string) (string, error) {
ret.WriteString(
"\t\t\n" +
signalCode + "\n" +
"\t\t" + maybeReturn2 + "miqt_exec_callback_" + methodPrefixName + "_" + m.SafeMethodName() + "(" + strings.Join(paramArgs, `, `) + ");\n" +
"\t\t" + maybeReturn2 + cabiCallbackName(c, m) + "(" + strings.Join(paramArgs, `, `) + ");\n" +
returnTransformP + "\n" +
"\t\t" + ifv(maybeReturn == "", "", "return "+returnTransformF+";") + "\n" +
"\t}\n" +
Expand Down Expand Up @@ -1113,9 +1139,6 @@ func emitBindingCpp(src *CppParsedHeader, filename string) (string, error) {
}

if m.IsSignal {

bindingFunc := "miqt_exec_callback_" + cabiClassName(c.ClassName) + "_" + m.SafeMethodName()

// If there are hidden parameters, the type of the signal itself
// needs to include them
exactSignal := `static_cast<void (` + c.ClassName + `::*)(` + emitParameterTypesCpp(m, true) + `)` + ifv(m.IsConst, ` const`, ``) + `>(&` + c.ClassName + `::` + m.CppCallTarget() + `)`
Expand All @@ -1131,7 +1154,7 @@ func emitBindingCpp(src *CppParsedHeader, filename string) (string, error) {
paramArgDefs = append(paramArgDefs, p.RenderTypeCabi()+" "+p.ParameterName)
}

signalCode += "\t\t" + bindingFunc + "(" + strings.Join(paramArgs, `, `) + ");\n"
signalCode += "\t\t" + cabiCallbackName(c, m) + "(" + strings.Join(paramArgs, `, `) + ");\n"

ret.WriteString(
`void ` + methodPrefixName + `_connect_` + m.SafeMethodName() + `(` + methodPrefixName + `* self, intptr_t slot) {` + "\n" +
Expand Down
16 changes: 8 additions & 8 deletions cmd/genbindings/emitgo.go
Original file line number Diff line number Diff line change
Expand Up @@ -949,13 +949,13 @@ import "C"
}

goCbType := `func(` + gfs.emitParametersGo(m.Parameters) + `)`

callbackName := cabiCallbackName(c, m)
ret.WriteString(`func (this *` + goClassName + `) On` + m.SafeMethodName() + `(slot ` + goCbType + `) {
C.` + goClassName + `_connect_` + m.SafeMethodName() + `(this.h, C.intptr_t(cgo.NewHandle(slot)) )
}
//export miqt_exec_callback_` + goClassName + `_` + m.SafeMethodName() + `
func miqt_exec_callback_` + goClassName + `_` + m.SafeMethodName() + `(cb C.intptr_t` + ifv(len(m.Parameters) > 0, ", ", "") + strings.Join(cgoNamedParams, `, `) + `) {

//export ` + callbackName + `
func ` + callbackName + `(cb C.intptr_t` + ifv(len(m.Parameters) > 0, ", ", "") + strings.Join(cgoNamedParams, `, `) + `) {
gofunc, ok := cgo.Handle(cb).Value().(` + goCbType + `)
if !ok {
panic("miqt: callback of non-callback type (heap corruption?)")
Expand Down Expand Up @@ -1033,16 +1033,16 @@ import "C"
}
goCbType += gfs.emitParametersGo(m.Parameters)
goCbType += `) ` + m.ReturnType.renderReturnTypeGo(&gfs)

callbackName := cabiCallbackName(c, m)
ret.WriteString(`func (this *` + goClassName + `) On` + m.SafeMethodName() + `(slot ` + goCbType + `) {
if ! this.isSubclass {
panic("miqt: can only override virtual methods for directly constructed types")
}
C.` + goClassName + `_override_virtual_` + m.SafeMethodName() + `(unsafe.Pointer(this.h), C.intptr_t(cgo.NewHandle(slot)) )
}
//export miqt_exec_callback_` + goClassName + `_` + m.SafeMethodName() + `
func miqt_exec_callback_` + goClassName + `_` + m.SafeMethodName() + `(self *C.` + goClassName + `, cb C.intptr_t` + ifv(len(m.Parameters) > 0, ", ", "") + strings.Join(cgoNamedParams, `, `) + `) ` + cabiReturnType + `{

//export ` + callbackName + `
func ` + callbackName + `(self *C.` + goClassName + `, cb C.intptr_t` + ifv(len(m.Parameters) > 0, ", ", "") + strings.Join(cgoNamedParams, `, `) + `) ` + cabiReturnType + `{
gofunc, ok := cgo.Handle(cb).Value().(` + goCbType + `)
if !ok {
panic("miqt: callback of non-callback type (heap corruption?)")
Expand Down
157 changes: 154 additions & 3 deletions qt-extras/scintillaedit/gen_ScintillaEdit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,161 @@
#include <ScintillaEdit.h>
#include "gen_ScintillaEdit.h"

#ifndef _Bool
#define _Bool bool
#ifdef __cplusplus
extern "C" {
#endif

void miqt_exec_callback_Scintilla__Internal__Surface_Init(void*, intptr_t, void*);
void miqt_exec_callback_Scintilla__Internal__Surface_Init2(void*, intptr_t, void*, void*);
void miqt_exec_callback_Scintilla__Internal__Surface_SetMode(void*, intptr_t, Scintilla__Internal__SurfaceMode*);
void miqt_exec_callback_Scintilla__Internal__Surface_Release(void*, intptr_t);
int miqt_exec_callback_Scintilla__Internal__Surface_SupportsFeature(void*, intptr_t, int);
bool miqt_exec_callback_Scintilla__Internal__Surface_Initialised(void*, intptr_t);
int miqt_exec_callback_Scintilla__Internal__Surface_LogPixelsY(void*, intptr_t);
int miqt_exec_callback_Scintilla__Internal__Surface_PixelDivisions(void*, intptr_t);
int miqt_exec_callback_Scintilla__Internal__Surface_DeviceHeightFont(void*, intptr_t, int);
void miqt_exec_callback_Scintilla__Internal__Surface_LineDraw(void*, intptr_t, Scintilla__Internal__Point*, Scintilla__Internal__Point*, Scintilla__Internal__Stroke*);
void miqt_exec_callback_Scintilla__Internal__Surface_PolyLine(void*, intptr_t, Scintilla__Internal__Point*, size_t, Scintilla__Internal__Stroke*);
void miqt_exec_callback_Scintilla__Internal__Surface_Polygon(void*, intptr_t, Scintilla__Internal__Point*, size_t, Scintilla__Internal__FillStroke*);
void miqt_exec_callback_Scintilla__Internal__Surface_RectangleDraw(void*, intptr_t, Scintilla__Internal__PRectangle*, Scintilla__Internal__FillStroke*);
void miqt_exec_callback_Scintilla__Internal__Surface_RectangleFrame(void*, intptr_t, Scintilla__Internal__PRectangle*, Scintilla__Internal__Stroke*);
void miqt_exec_callback_Scintilla__Internal__Surface_FillRectangle(void*, intptr_t, Scintilla__Internal__PRectangle*, Scintilla__Internal__Fill*);
void miqt_exec_callback_Scintilla__Internal__Surface_FillRectangleAligned(void*, intptr_t, Scintilla__Internal__PRectangle*, Scintilla__Internal__Fill*);
void miqt_exec_callback_Scintilla__Internal__Surface_FillRectangle2(void*, intptr_t, Scintilla__Internal__PRectangle*, Scintilla__Internal__Surface*);
void miqt_exec_callback_Scintilla__Internal__Surface_RoundedRectangle(void*, intptr_t, Scintilla__Internal__PRectangle*, Scintilla__Internal__FillStroke*);
void miqt_exec_callback_Scintilla__Internal__Surface_AlphaRectangle(void*, intptr_t, Scintilla__Internal__PRectangle*, double, Scintilla__Internal__FillStroke*);
void miqt_exec_callback_Scintilla__Internal__Surface_DrawRGBAImage(void*, intptr_t, Scintilla__Internal__PRectangle*, int, int, const unsigned char*);
void miqt_exec_callback_Scintilla__Internal__Surface_Ellipse(void*, intptr_t, Scintilla__Internal__PRectangle*, Scintilla__Internal__FillStroke*);
void miqt_exec_callback_Scintilla__Internal__Surface_Stadium(void*, intptr_t, Scintilla__Internal__PRectangle*, Scintilla__Internal__FillStroke*, int);
void miqt_exec_callback_Scintilla__Internal__Surface_Copy(void*, intptr_t, Scintilla__Internal__PRectangle*, Scintilla__Internal__Point*, Scintilla__Internal__Surface*);
double miqt_exec_callback_Scintilla__Internal__Surface_Ascent(void*, intptr_t, Scintilla__Internal__Font*);
double miqt_exec_callback_Scintilla__Internal__Surface_Descent(void*, intptr_t, Scintilla__Internal__Font*);
double miqt_exec_callback_Scintilla__Internal__Surface_InternalLeading(void*, intptr_t, Scintilla__Internal__Font*);
double miqt_exec_callback_Scintilla__Internal__Surface_Height(void*, intptr_t, Scintilla__Internal__Font*);
double miqt_exec_callback_Scintilla__Internal__Surface_AverageCharWidth(void*, intptr_t, Scintilla__Internal__Font*);
void miqt_exec_callback_Scintilla__Internal__Surface_SetClip(void*, intptr_t, Scintilla__Internal__PRectangle*);
void miqt_exec_callback_Scintilla__Internal__Surface_PopClip(void*, intptr_t);
void miqt_exec_callback_Scintilla__Internal__Surface_FlushCachedState(void*, intptr_t);
void miqt_exec_callback_Scintilla__Internal__Surface_FlushDrawing(void*, intptr_t);
void miqt_exec_callback_Scintilla__Internal__ListBox_SetFont(void*, intptr_t, Scintilla__Internal__Font*);
void miqt_exec_callback_Scintilla__Internal__ListBox_Create(void*, intptr_t, Scintilla__Internal__Window*, int, Scintilla__Internal__Point*, int, bool, int);
void miqt_exec_callback_Scintilla__Internal__ListBox_SetAverageCharWidth(void*, intptr_t, int);
void miqt_exec_callback_Scintilla__Internal__ListBox_SetVisibleRows(void*, intptr_t, int);
int miqt_exec_callback_Scintilla__Internal__ListBox_GetVisibleRows(void*, intptr_t);
Scintilla__Internal__PRectangle* miqt_exec_callback_Scintilla__Internal__ListBox_GetDesiredRect(void*, intptr_t);
int miqt_exec_callback_Scintilla__Internal__ListBox_CaretFromEdge(void*, intptr_t);
void miqt_exec_callback_Scintilla__Internal__ListBox_Clear(void*, intptr_t);
void miqt_exec_callback_Scintilla__Internal__ListBox_Append(void*, intptr_t, char*, int);
int miqt_exec_callback_Scintilla__Internal__ListBox_Length(void*, intptr_t);
void miqt_exec_callback_Scintilla__Internal__ListBox_Select(void*, intptr_t, int);
int miqt_exec_callback_Scintilla__Internal__ListBox_GetSelection(void*, intptr_t);
int miqt_exec_callback_Scintilla__Internal__ListBox_Find(void*, intptr_t, const char*);
void miqt_exec_callback_Scintilla__Internal__ListBox_RegisterImage(void*, intptr_t, int, const char*);
void miqt_exec_callback_Scintilla__Internal__ListBox_RegisterRGBAImage(void*, intptr_t, int, int, int, const unsigned char*);
void miqt_exec_callback_Scintilla__Internal__ListBox_ClearRegisteredImages(void*, intptr_t);
void miqt_exec_callback_Scintilla__Internal__ListBox_SetDelegate(void*, intptr_t, Scintilla__Internal__IListBoxDelegate*);
void miqt_exec_callback_Scintilla__Internal__ListBox_SetList(void*, intptr_t, const char*, char, char);
void miqt_exec_callback_Scintilla__Internal__ListBox_SetOptions(void*, intptr_t, Scintilla__Internal__ListOptions*);
void miqt_exec_callback_ScintillaEditBase_HorizontalScrolled(intptr_t, int);
void miqt_exec_callback_ScintillaEditBase_VerticalScrolled(intptr_t, int);
void miqt_exec_callback_ScintillaEditBase_HorizontalRangeChanged(intptr_t, int, int);
void miqt_exec_callback_ScintillaEditBase_VerticalRangeChanged(intptr_t, int, int);
void miqt_exec_callback_ScintillaEditBase_NotifyChange(intptr_t);
void miqt_exec_callback_ScintillaEditBase_LinesAdded(intptr_t, intptr_t);
void miqt_exec_callback_ScintillaEditBase_AboutToCopy(intptr_t, QMimeData*);
void miqt_exec_callback_ScintillaEditBase_StyleNeeded(intptr_t, intptr_t);
void miqt_exec_callback_ScintillaEditBase_CharAdded(intptr_t, int);
void miqt_exec_callback_ScintillaEditBase_SavePointChanged(intptr_t, bool);
void miqt_exec_callback_ScintillaEditBase_ModifyAttemptReadOnly(intptr_t);
void miqt_exec_callback_ScintillaEditBase_Key(intptr_t, int);
void miqt_exec_callback_ScintillaEditBase_DoubleClick(intptr_t, intptr_t, intptr_t);
void miqt_exec_callback_ScintillaEditBase_UpdateUi(intptr_t, int);
void miqt_exec_callback_ScintillaEditBase_Modified(intptr_t, int, intptr_t, intptr_t, intptr_t, struct miqt_string, intptr_t, int, int);
void miqt_exec_callback_ScintillaEditBase_MacroRecord(intptr_t, int, uintptr_t, intptr_t);
void miqt_exec_callback_ScintillaEditBase_MarginClicked(intptr_t, intptr_t, int, int);
void miqt_exec_callback_ScintillaEditBase_TextAreaClicked(intptr_t, intptr_t, int);
void miqt_exec_callback_ScintillaEditBase_NeedShown(intptr_t, intptr_t, intptr_t);
void miqt_exec_callback_ScintillaEditBase_Painted(intptr_t);
void miqt_exec_callback_ScintillaEditBase_UserListSelection(intptr_t);
void miqt_exec_callback_ScintillaEditBase_UriDropped(intptr_t, struct miqt_string);
void miqt_exec_callback_ScintillaEditBase_DwellStart(intptr_t, int, int);
void miqt_exec_callback_ScintillaEditBase_DwellEnd(intptr_t, int, int);
void miqt_exec_callback_ScintillaEditBase_Zoom(intptr_t, int);
void miqt_exec_callback_ScintillaEditBase_HotSpotClick(intptr_t, intptr_t, int);
void miqt_exec_callback_ScintillaEditBase_HotSpotDoubleClick(intptr_t, intptr_t, int);
void miqt_exec_callback_ScintillaEditBase_CallTipClick(intptr_t);
void miqt_exec_callback_ScintillaEditBase_AutoCompleteSelection(intptr_t, intptr_t, struct miqt_string);
void miqt_exec_callback_ScintillaEditBase_AutoCompleteCancelled(intptr_t);
void miqt_exec_callback_ScintillaEditBase_FocusChanged(intptr_t, bool);
void miqt_exec_callback_ScintillaEditBase_Notify(intptr_t, Scintilla__NotificationData*);
void miqt_exec_callback_ScintillaEditBase_Command(intptr_t, uintptr_t, intptr_t);
void miqt_exec_callback_ScintillaEditBase_ButtonPressed(intptr_t, QMouseEvent*);
void miqt_exec_callback_ScintillaEditBase_ButtonReleased(intptr_t, QMouseEvent*);
void miqt_exec_callback_ScintillaEditBase_KeyPressed(intptr_t, QKeyEvent*);
void miqt_exec_callback_ScintillaEditBase_Resized(intptr_t);
intptr_t miqt_exec_callback_ScintillaEditBase_Send(void*, intptr_t, unsigned int, uintptr_t, intptr_t);
intptr_t miqt_exec_callback_ScintillaEditBase_Sends(void*, intptr_t, unsigned int, uintptr_t, const char*);
bool miqt_exec_callback_ScintillaEditBase_Event(void*, intptr_t, QEvent*);
void miqt_exec_callback_ScintillaEditBase_PaintEvent(void*, intptr_t, QPaintEvent*);
void miqt_exec_callback_ScintillaEditBase_WheelEvent(void*, intptr_t, QWheelEvent*);
void miqt_exec_callback_ScintillaEditBase_FocusInEvent(void*, intptr_t, QFocusEvent*);
void miqt_exec_callback_ScintillaEditBase_FocusOutEvent(void*, intptr_t, QFocusEvent*);
void miqt_exec_callback_ScintillaEditBase_ResizeEvent(void*, intptr_t, QResizeEvent*);
void miqt_exec_callback_ScintillaEditBase_KeyPressEvent(void*, intptr_t, QKeyEvent*);
void miqt_exec_callback_ScintillaEditBase_MousePressEvent(void*, intptr_t, QMouseEvent*);
void miqt_exec_callback_ScintillaEditBase_MouseReleaseEvent(void*, intptr_t, QMouseEvent*);
void miqt_exec_callback_ScintillaEditBase_MouseDoubleClickEvent(void*, intptr_t, QMouseEvent*);
void miqt_exec_callback_ScintillaEditBase_MouseMoveEvent(void*, intptr_t, QMouseEvent*);
void miqt_exec_callback_ScintillaEditBase_ContextMenuEvent(void*, intptr_t, QContextMenuEvent*);
void miqt_exec_callback_ScintillaEditBase_DragEnterEvent(void*, intptr_t, QDragEnterEvent*);
void miqt_exec_callback_ScintillaEditBase_DragLeaveEvent(void*, intptr_t, QDragLeaveEvent*);
void miqt_exec_callback_ScintillaEditBase_DragMoveEvent(void*, intptr_t, QDragMoveEvent*);
void miqt_exec_callback_ScintillaEditBase_DropEvent(void*, intptr_t, QDropEvent*);
void miqt_exec_callback_ScintillaEditBase_InputMethodEvent(void*, intptr_t, QInputMethodEvent*);
QVariant* miqt_exec_callback_ScintillaEditBase_InputMethodQuery(void*, intptr_t, int);
void miqt_exec_callback_ScintillaEditBase_ScrollContentsBy(void*, intptr_t, int, int);
QSize* miqt_exec_callback_ScintillaEditBase_MinimumSizeHint(void*, intptr_t);
QSize* miqt_exec_callback_ScintillaEditBase_SizeHint(void*, intptr_t);
void miqt_exec_callback_ScintillaEditBase_SetupViewport(void*, intptr_t, QWidget*);
bool miqt_exec_callback_ScintillaEditBase_EventFilter(void*, intptr_t, QObject*, QEvent*);
bool miqt_exec_callback_ScintillaEditBase_ViewportEvent(void*, intptr_t, QEvent*);
QSize* miqt_exec_callback_ScintillaEditBase_ViewportSizeHint(void*, intptr_t);
void miqt_exec_callback_ScintillaDocument_ModifyAttempt(intptr_t);
void miqt_exec_callback_ScintillaDocument_SavePoint(intptr_t, bool);
void miqt_exec_callback_ScintillaDocument_Modified(intptr_t, int, int, struct miqt_string, int, int, int, int, int);
void miqt_exec_callback_ScintillaDocument_StyleNeeded(intptr_t, int);
void miqt_exec_callback_ScintillaDocument_ErrorOccurred(intptr_t, int);
bool miqt_exec_callback_ScintillaDocument_Event(void*, intptr_t, QEvent*);
bool miqt_exec_callback_ScintillaDocument_EventFilter(void*, intptr_t, QObject*, QEvent*);
void miqt_exec_callback_ScintillaDocument_TimerEvent(void*, intptr_t, QTimerEvent*);
void miqt_exec_callback_ScintillaDocument_ChildEvent(void*, intptr_t, QChildEvent*);
void miqt_exec_callback_ScintillaDocument_CustomEvent(void*, intptr_t, QEvent*);
void miqt_exec_callback_ScintillaDocument_ConnectNotify(void*, intptr_t, QMetaMethod*);
void miqt_exec_callback_ScintillaDocument_DisconnectNotify(void*, intptr_t, QMetaMethod*);
intptr_t miqt_exec_callback_ScintillaEdit_Send(void*, intptr_t, unsigned int, uintptr_t, intptr_t);
intptr_t miqt_exec_callback_ScintillaEdit_Sends(void*, intptr_t, unsigned int, uintptr_t, const char*);
bool miqt_exec_callback_ScintillaEdit_Event(void*, intptr_t, QEvent*);
void miqt_exec_callback_ScintillaEdit_PaintEvent(void*, intptr_t, QPaintEvent*);
void miqt_exec_callback_ScintillaEdit_WheelEvent(void*, intptr_t, QWheelEvent*);
void miqt_exec_callback_ScintillaEdit_FocusInEvent(void*, intptr_t, QFocusEvent*);
void miqt_exec_callback_ScintillaEdit_FocusOutEvent(void*, intptr_t, QFocusEvent*);
void miqt_exec_callback_ScintillaEdit_ResizeEvent(void*, intptr_t, QResizeEvent*);
void miqt_exec_callback_ScintillaEdit_KeyPressEvent(void*, intptr_t, QKeyEvent*);
void miqt_exec_callback_ScintillaEdit_MousePressEvent(void*, intptr_t, QMouseEvent*);
void miqt_exec_callback_ScintillaEdit_MouseReleaseEvent(void*, intptr_t, QMouseEvent*);
void miqt_exec_callback_ScintillaEdit_MouseDoubleClickEvent(void*, intptr_t, QMouseEvent*);
void miqt_exec_callback_ScintillaEdit_MouseMoveEvent(void*, intptr_t, QMouseEvent*);
void miqt_exec_callback_ScintillaEdit_ContextMenuEvent(void*, intptr_t, QContextMenuEvent*);
void miqt_exec_callback_ScintillaEdit_DragEnterEvent(void*, intptr_t, QDragEnterEvent*);
void miqt_exec_callback_ScintillaEdit_DragLeaveEvent(void*, intptr_t, QDragLeaveEvent*);
void miqt_exec_callback_ScintillaEdit_DragMoveEvent(void*, intptr_t, QDragMoveEvent*);
void miqt_exec_callback_ScintillaEdit_DropEvent(void*, intptr_t, QDropEvent*);
void miqt_exec_callback_ScintillaEdit_InputMethodEvent(void*, intptr_t, QInputMethodEvent*);
QVariant* miqt_exec_callback_ScintillaEdit_InputMethodQuery(void*, intptr_t, int);
void miqt_exec_callback_ScintillaEdit_ScrollContentsBy(void*, intptr_t, int, int);
#ifdef __cplusplus
} /* extern C */
#endif
#include "_cgo_export.h"

Scintilla__Internal__Point* Scintilla__Internal__Point_new() {
return new Scintilla::Internal::Point();
Expand Down
Loading