From be3980fd305908030dd2a1ee866187a385b168c8 Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Thu, 27 Feb 2020 17:45:37 +0800 Subject: [PATCH] Commit in compat fixes and distribution-related stuff --- .gitignore | 1 + darwin/Contents/Info.plist | 32 + darwin/Contents/Resources/annie-mingui.icns | Bin 0 -> 101335 bytes icon.ico | Bin 0 -> 22653 bytes icon.png | Bin 0 -> 58592 bytes icon.rc | 1 + icon.svg | 1 + main.go | 521 +++++ moc.cpp | 787 ++++++++ moc.go | 1916 +++++++++++++++++++ moc.h | 143 ++ moc_cgo_darwin_darwin_amd64.go | 14 + moc_cgo_windows_windows_amd64.go | 13 + moc_moc.h | 118 ++ util/util_unix.go | 17 + util/util_windows.go | 21 + 16 files changed, 3585 insertions(+) create mode 100644 .gitignore create mode 100644 darwin/Contents/Info.plist create mode 100644 darwin/Contents/Resources/annie-mingui.icns create mode 100644 icon.ico create mode 100644 icon.png create mode 100644 icon.rc create mode 100644 icon.svg create mode 100644 main.go create mode 100644 moc.cpp create mode 100644 moc.go create mode 100644 moc.h create mode 100644 moc_cgo_darwin_darwin_amd64.go create mode 100644 moc_cgo_windows_windows_amd64.go create mode 100644 moc_moc.h create mode 100644 util/util_unix.go create mode 100644 util/util_windows.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4cb44b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/deploy diff --git a/darwin/Contents/Info.plist b/darwin/Contents/Info.plist new file mode 100644 index 0000000..96ae0e5 --- /dev/null +++ b/darwin/Contents/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleExecutable + annie-mingui + CFBundleGetInfoString + Created by Qt/QMake + CFBundleIconFile + annie-mingui.icns + CFBundleIdentifier + org.zhimingwang.annie-mingui + CFBundleName + annie-mingui + CFBundlePackageType + APPL + CFBundleShortVersionString + 2020.02.09 + CFBundleSignature + ???? + LSMinimumSystemVersion + 10.11 + NOTE + This file was generated by Qt/QMake. + NSPrincipalClass + NSApplication + NSHighResolutionCapable + + NSSupportsAutomaticGraphicsSwitching + + + diff --git a/darwin/Contents/Resources/annie-mingui.icns b/darwin/Contents/Resources/annie-mingui.icns new file mode 100644 index 0000000000000000000000000000000000000000..616032bf00b3dd8530206a0b233a702b5abf6c7d GIT binary patch literal 101335 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 literal 0 HcmV?d00001 diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..997fe7063ded5847f800d8be2d303f00a7f12774 GIT binary patch literal 58592 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 diff --git a/main.go b/main.go new file mode 100644 index 0000000..263734b --- /dev/null +++ b/main.go @@ -0,0 +1,521 @@ +package main + +import ( + "bufio" + "flag" + "fmt" + "io" + "net/url" + "os" + "os/signal" + "regexp" + "strings" + "syscall" + "time" + + "golang.org/x/text/language" + + "github.com/cloudfoundry-attic/jibber_jabber" + "github.com/golang/glog" + + "github.com/therecipe/qt/core" + "github.com/therecipe/qt/gui" + "github.com/therecipe/qt/widgets" + + "github.com/iawia002/annie/config" + "github.com/iawia002/annie/downloader" + "github.com/iawia002/annie/extractors/bcy" + "github.com/iawia002/annie/extractors/bilibili" + "github.com/iawia002/annie/extractors/douyin" + "github.com/iawia002/annie/extractors/douyu" + "github.com/iawia002/annie/extractors/facebook" + "github.com/iawia002/annie/extractors/geekbang" + "github.com/iawia002/annie/extractors/instagram" + "github.com/iawia002/annie/extractors/iqiyi" + "github.com/iawia002/annie/extractors/mgtv" + "github.com/iawia002/annie/extractors/miaopai" + "github.com/iawia002/annie/extractors/netease" + "github.com/iawia002/annie/extractors/pixivision" + "github.com/iawia002/annie/extractors/pornhub" + "github.com/iawia002/annie/extractors/qq" + "github.com/iawia002/annie/extractors/tangdou" + "github.com/iawia002/annie/extractors/tiktok" + "github.com/iawia002/annie/extractors/tumblr" + "github.com/iawia002/annie/extractors/twitter" + "github.com/iawia002/annie/extractors/udn" + "github.com/iawia002/annie/extractors/universal" + "github.com/iawia002/annie/extractors/vimeo" + "github.com/iawia002/annie/extractors/weibo" + "github.com/iawia002/annie/extractors/xvideos" + "github.com/iawia002/annie/extractors/yinyuetai" + "github.com/iawia002/annie/extractors/youku" + "github.com/iawia002/annie/extractors/youtube" + "github.com/iawia002/annie/utils" + + "github.com/fanaticscripter/annie-mingui/util" +) + +const appName = "annie-mingui" +const appAuthor = "Zhiming Wang" +const appAuthorDomain = "zhimingwang.org" +const about = `

annie-mingui v2020.02.09

+

Copyright (c) 2020 Zhiming Wang

+

annie-mingui is a Qt wrapper for iawia002/annie the video downloader. Credits:

+
    +
  • iawia002/annie, MIT license;
  • +
  • Qt, LGPLv3 license;
  • +
  • therecipe/qt, Qt bindings for golang, LGPLv3 license.
  • +
+

Project URL: github.com/fanaticscripter/annie-mingui.

+` + +// GUIConfig carries all application configurations. +type GUIConfig struct { + DestinationFolder string + PlaylistEnabled bool +} + +// GetDestinationFolder attempts to retrieve (if not yet) and returns the +// configured destination folder. +func (c *GUIConfig) GetDestinationFolder() string { + fallback := util.DefaultDownloadsFolder() + val := settings.Value("destinationFolder", core.NewQVariant12(fallback)).ToString() + c.DestinationFolder = val + return val +} + +// GetPlaylistEnabled attempts to retrieve (if not yet) and returns the +// configured value of whether playlist download is enabled. +func (c *GUIConfig) GetPlaylistEnabled() bool { + fallback := true + val := settings.Value("playlistEnabled", core.NewQVariant9(fallback)).ToBool() + c.PlaylistEnabled = val + return val +} + +// SetDestinationFolder sets and persists the configured destination folder. +func (c *GUIConfig) SetDestinationFolder(val string) { + c.DestinationFolder = val + go func() { settings.SetValue("destinationFolder", core.NewQVariant12(val)) }() +} + +// SetPlaylistEnabled sets and persists the configured value of whether playlist +// download is enabled. +func (c *GUIConfig) SetPlaylistEnabled(val bool) { + c.PlaylistEnabled = val + go func() { settings.SetValue("playlistEnabled", core.NewQVariant9(val)) }() +} + +// LoadGUIConfig loads config values from persisted settings if possible, or +// loads defaults otherwise. +func LoadGUIConfig() *GUIConfig { + c := &GUIConfig{} + c.GetDestinationFolder() + c.GetPlaylistEnabled() + return c +} + +var settings *core.QSettings +var guiConfig *GUIConfig + +var locales = map[string]map[string]string{ + "zh-Hans": { + "About": "关于", + "Application": "应用", + "Awaiting user input": "等待用户输入", + "Destination folder": "目标文件夹", + "Download": "下载", + "Download playlists": "下载完整播单", + "Download started": "下载已开始", + "On network errors, e.g. HTTP 403, please retry a few times.": "如遇HTTP 403等网络错误,请重试几次。", + "Pick another folder": "选择文件夹", + "Video URL": "视频链接", + }, +} +var locale map[string]string + +// Poor man's gettext. +func tr(s string) string { + t, ok := locale[s] + if ok { + return t + } + return s +} + +// ----- START ANNIE CODE ----- +// +// The following code is slightly modified from +// +// https://github.com/iawia002/annie/blob/master/main.go + +func printError(url string, err error) { + fmt.Printf( + "Downloading %s error:\n%s\n", url, err, + ) +} + +func download(videoURL string) bool { + var ( + domain string + err error + data []downloader.Data + ) + bilibiliShortLink := utils.MatchOneOf(videoURL, `^(av|ep)\d+`) + if bilibiliShortLink != nil && len(bilibiliShortLink) > 1 { + bilibiliURL := map[string]string{ + "av": "https://www.bilibili.com/video/", + "ep": "https://www.bilibili.com/bangumi/play/", + } + domain = "bilibili" + videoURL = bilibiliURL[bilibiliShortLink[1]] + videoURL + } else { + u, err := url.ParseRequestURI(videoURL) + if err != nil { + printError(videoURL, err) + return false + } + domain = utils.Domain(u.Host) + } + switch domain { + case "douyin", "iesdouyin": + data, err = douyin.Extract(videoURL) + case "bilibili": + data, err = bilibili.Extract(videoURL) + case "bcy": + data, err = bcy.Extract(videoURL) + case "pixivision": + data, err = pixivision.Extract(videoURL) + case "youku": + data, err = youku.Extract(videoURL) + case "youtube", "youtu": // youtu.be + data, err = youtube.Extract(videoURL) + case "iqiyi": + data, err = iqiyi.Extract(videoURL) + case "mgtv": + data, err = mgtv.Extract(videoURL) + case "tangdou": + data, err = tangdou.Extract(videoURL) + case "tumblr": + data, err = tumblr.Extract(videoURL) + case "vimeo": + data, err = vimeo.Extract(videoURL) + case "facebook": + data, err = facebook.Extract(videoURL) + case "douyu": + data, err = douyu.Extract(videoURL) + case "miaopai": + data, err = miaopai.Extract(videoURL) + case "163": + data, err = netease.Extract(videoURL) + case "weibo": + data, err = weibo.Extract(videoURL) + case "instagram": + data, err = instagram.Extract(videoURL) + case "twitter": + data, err = twitter.Extract(videoURL) + case "qq": + data, err = qq.Extract(videoURL) + case "yinyuetai": + data, err = yinyuetai.Extract(videoURL) + case "geekbang": + data, err = geekbang.Extract(videoURL) + case "pornhub": + data, err = pornhub.Extract(videoURL) + case "xvideos": + data, err = xvideos.Extract(videoURL) + case "udn": + data, err = udn.Extract(videoURL) + case "tiktok": + data, err = tiktok.Extract(videoURL) + default: + data, err = universal.Extract(videoURL) + } + if err != nil { + // if this error occurs, it means that an error occurred before actually starting to extract data + // (there is an error in the preparation step), and the data list is empty. + printError(videoURL, err) + return false + } + var isErr bool + for _, item := range data { + if item.Err != nil { + // if this error occurs, the preparation step is normal, but the data extraction is wrong. + // the data is an empty struct. + printError(item.URL, item.Err) + isErr = true + continue + } + err = downloader.Download(item, videoURL, config.ChunkSizeMB) + if err != nil { + printError(item.URL, err) + isErr = true + } + } + return !isErr +} + +// ----- END ANNIE CODE ----- + +// PlainTextEdit extends QPlainTextEdit. +type PlainTextEdit struct { + widgets.QPlainTextEdit + + _ func() `constructor:"init"` + + _ func(string) `slot:"addLine"` + + carriageReturnInAction bool +} + +func (p *PlainTextEdit) init() { + p.carriageReturnInAction = false + p.ConnectAddLine(p.addLine) +} + +// addLines adds a line that might end in LF, CRLF, CR, or none of the above (in +// which case an LF is appended). Aware of CR and scroll position. +func (p *PlainTextEdit) addLine(line string) { + scrollBar := p.VerticalScrollBar() + currentScroll := scrollBar.Value() + userScrolledBack := currentScroll != scrollBar.Maximum() + + cursor := p.TextCursor() + cursor.MovePosition(gui.QTextCursor__End, gui.QTextCursor__MoveAnchor, 1) + if p.carriageReturnInAction { + // Remove last line. + cursor.Select(gui.QTextCursor__LineUnderCursor) + cursor.RemoveSelectedText() + } + p.carriageReturnInAction = false + if len(line) > 0 { + switch lastCh := line[len(line)-1]; lastCh { + case '\n': + cursor.InsertText(line) + case '\r': + cursor.InsertText(line[:len(line)-1]) + p.carriageReturnInAction = true + default: + cursor.InsertText(line + "\n") + } + } else { + cursor.InsertText("\n") + } + + if userScrolledBack { + scrollBar.SetValue(currentScroll) + } else { + scrollBar.SetValue(scrollBar.Maximum()) + } +} + +type outputBuffer struct { + textEdit *PlainTextEdit + reader *bufio.Reader + scanner *bufio.Scanner +} + +func newOutputBuffer(textEdit *PlainTextEdit) *outputBuffer { + return &outputBuffer{ + textEdit: textEdit, + reader: nil, + scanner: nil, + } +} + +func (b *outputBuffer) attachReader(r io.Reader) { + b.reader = bufio.NewReaderSize(r, 64*1024) + b.scanner = bufio.NewScanner(b.reader) + re := regexp.MustCompile(`^[^\r\n]*(\r\n|\r|\n)`) + b.scanner.Split(func(data []byte, atEOF bool) (advance int, token []byte, err error) { + token = re.Find(data) + if token != nil { + return len(token), token, nil + } + if !atEOF { + return 0, nil, nil + } + return 0, data, bufio.ErrFinalToken + }) +} + +func (b *outputBuffer) addLine(line string) { + b.textEdit.AddLine(line) +} + +func (b *outputBuffer) readLineAndUpdate() (fullLine string, err error) { + if !b.scanner.Scan() { + err = b.scanner.Err() + if err != nil { + return "", err + } + err = io.EOF + } + fullLine = b.scanner.Text() + if len(fullLine) > 0 { + b.addLine(fullLine) + } + return +} + +func init() { + flag.Parse() + + userLang, err := jibber_jabber.DetectIETF() + if err != nil { + userLang = "en" + } + availableLangs := []string{"en"} + availableTags := []language.Tag{language.English} + for l := range locales { + availableLangs = append(availableLangs, l) + availableTags = append(availableTags, language.Make(l)) + } + matcher := language.NewMatcher(availableTags) + _, index, _ := matcher.Match(language.Make(userLang)) + locale = locales[availableLangs[index]] + + core.QCoreApplication_SetOrganizationName(appAuthor) + core.QCoreApplication_SetOrganizationDomain(appAuthorDomain) + + settings = core.NewQSettings5(nil) + guiConfig = LoadGUIConfig() +} + +func initAboutWindow() *widgets.QDialog { + w := widgets.NewQDialog(nil, 0) + label := widgets.NewQLabel2(about, nil, 0) + label.SetOpenExternalLinks(true) + layout := widgets.NewQVBoxLayout() + layout.AddWidget(label, 0, 0) + w.SetLayout(layout) + return w +} + +func main() { + widgets.NewQApplication(len(os.Args), os.Args) + + window := widgets.NewQMainWindow(nil, 0) + window.SetWindowTitle(appName) + window.ConnectCloseEvent(func(*gui.QCloseEvent) { + settings.SetValue("_geometry", core.NewQVariant13(window.SaveGeometry())) + settings.SetValue("_windowState", core.NewQVariant13(window.SaveState(0))) + }) + + window.RestoreGeometry(settings.Value("_geometry", core.NewQVariant()).ToByteArray()) + window.RestoreState(settings.Value("_windowState", core.NewQVariant()).ToByteArray(), 0) + + centralWidget := widgets.NewQWidget(window, 0) + window.SetCentralWidget(centralWidget) + + menuBar := window.MenuBar() + applicationMenu := menuBar.AddMenu2(tr("Application")) + aboutWindow := initAboutWindow() + aboutAction := applicationMenu.AddAction(tr("About")) + aboutAction.SetMenuRole(widgets.QAction__AboutRole) + aboutAction.ConnectTriggered(func(bool) { + aboutWindow.Show() + aboutWindow.Raise() + }) + + urlLineEdit := widgets.NewQLineEdit(nil) + + folderLineEdit := widgets.NewQLineEdit2(guiConfig.DestinationFolder, nil) + folderLineEdit.SetReadOnly(true) + folderLineEdit.SetMinimumWidth(250) + folderButton := widgets.NewQPushButton2(tr("Pick another folder"), nil) + folderDialog := widgets.NewQFileDialog2(nil, tr("Destination folder"), guiConfig.DestinationFolder, "") + folderDialog.SetFileMode(widgets.QFileDialog__DirectoryOnly) + folderButton.ConnectClicked(func(bool) { + if folderDialog.Exec() != int(widgets.QDialog__Accepted) { + return + } + destinationFolder := core.QDir_ToNativeSeparators(folderDialog.SelectedFiles()[0]) + folderLineEdit.SetText(destinationFolder) + guiConfig.SetDestinationFolder(destinationFolder) + }) + folderHBoxLayout := widgets.NewQHBoxLayout() + folderHBoxLayout.AddWidget(folderLineEdit, 1, 0) + folderHBoxLayout.AddWidget(folderButton, 0, 0) + + playlistCheckBox := widgets.NewQCheckBox(nil) + playlistCheckBox.SetChecked(guiConfig.PlaylistEnabled) + playlistCheckBox.ConnectToggled(func(checked bool) { + guiConfig.SetPlaylistEnabled(checked) + }) + + inputFormLayout := widgets.NewQFormLayout(nil) + inputFormLayout.SetFieldGrowthPolicy(widgets.QFormLayout__AllNonFixedFieldsGrow) + inputFormLayout.AddRow3(tr("Video URL"), urlLineEdit) + inputFormLayout.AddRow4(tr("Destination folder"), folderHBoxLayout) + inputFormLayout.AddRow3(tr("Download playlists"), playlistCheckBox) + + outputTextEdit := NewPlainTextEdit(nil) + outputTextEdit.SetReadOnly(true) + outputTextEdit.SetMinimumHeight(400) + outputTextEdit.SetMinimumWidth(1000) + outputTextEdit.SetLineWrapMode(widgets.QPlainTextEdit__NoWrap) + monospaceFont := gui.NewQFont2("Courier", -1, -1, false) + monospaceFont.SetStyleHint(gui.QFont__Monospace, 0) + outputTextEdit.SetFont(monospaceFont) + output := newOutputBuffer(outputTextEdit) + output.addLine(tr("Awaiting user input")) + + downloadButton := widgets.NewQPushButton2(tr("Download"), nil) + downloadButton.ConnectClicked(func(bool) { + url := strings.TrimSpace(urlLineEdit.Text()) + if len(url) > 0 { + output.addLine(time.Now().Format("15:04:05 ") + tr("Download started")) + + config.OutputPath = guiConfig.DestinationFolder + config.Playlist = guiConfig.PlaylistEnabled + glog.Infof("downloading %s => %s", url, config.OutputPath) + + savedStdout := os.Stdout + r, w, _ := os.Pipe() + output.attachReader(r) + os.Stdout = w + + go func() { + for { + _, err := output.readLineAndUpdate() + if err != nil { + if err == io.EOF { + break + } + glog.Fatal(err) + } + // fmt.Fprint(savedStdout, line) + } + output.addLine("") + }() + + go func() { + if !download(url) { + fmt.Println(tr("On network errors, e.g. HTTP 403, please retry a few times.")) + } + w.Close() + os.Stdout = savedStdout + }() + } + }) + + layout := widgets.NewQVBoxLayout() + layout.AddLayout(inputFormLayout, 0) + layout.AddWidget(downloadButton, 0, 0) + layout.AddWidget(outputTextEdit, 1, 0) + centralWidget.SetLayout(layout) + + window.Show() + + sigs := make(chan os.Signal) + signal.Notify(sigs, syscall.SIGSEGV, syscall.SIGABRT) + go func() { + for { + sig := <-sigs + glog.Error(sig) + } + }() + + widgets.QApplication_Exec() +} diff --git a/moc.cpp b/moc.cpp new file mode 100644 index 0000000..bcbe30b --- /dev/null +++ b/moc.cpp @@ -0,0 +1,787 @@ + + +#define protected public +#define private public + +#include "moc.h" +#include "_cgo_export.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef QT_QML_LIB + #include +#endif + + +class PlainTextEditb1a9c9: public QPlainTextEdit +{ +Q_OBJECT +public: + PlainTextEditb1a9c9(QWidget *parent = Q_NULLPTR) : QPlainTextEdit(parent) {qRegisterMetaType("quintptr");PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaType();PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaTypes();callbackPlainTextEditb1a9c9_Constructor(this);}; + PlainTextEditb1a9c9(const QString &text, QWidget *parent = Q_NULLPTR) : QPlainTextEdit(text, parent) {qRegisterMetaType("quintptr");PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaType();PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaTypes();callbackPlainTextEditb1a9c9_Constructor(this);}; + ~PlainTextEditb1a9c9() { callbackPlainTextEditb1a9c9_DestroyPlainTextEdit(this); }; + void appendHtml(const QString & html) { QByteArray* t950a39 = new QByteArray(html.toUtf8()); Moc_PackedString htmlPacked = { const_cast(t950a39->prepend("WHITESPACE").constData()+10), t950a39->size()-10, t950a39 };callbackPlainTextEditb1a9c9_AppendHtml(this, htmlPacked); }; + void appendPlainText(const QString & text) { QByteArray* t372ea0 = new QByteArray(text.toUtf8()); Moc_PackedString textPacked = { const_cast(t372ea0->prepend("WHITESPACE").constData()+10), t372ea0->size()-10, t372ea0 };callbackPlainTextEditb1a9c9_AppendPlainText(this, textPacked); }; + void Signal_BlockCountChanged(int newBlockCount) { callbackPlainTextEditb1a9c9_BlockCountChanged(this, newBlockCount); }; + bool canInsertFromMimeData(const QMimeData * source) const { return callbackPlainTextEditb1a9c9_CanInsertFromMimeData(const_cast(static_cast(this)), const_cast(source)) != 0; }; + void centerCursor() { callbackPlainTextEditb1a9c9_CenterCursor(this); }; + void changeEvent(QEvent * e) { callbackPlainTextEditb1a9c9_ChangeEvent(this, e); }; + void clear() { callbackPlainTextEditb1a9c9_Clear(this); }; + void contextMenuEvent(QContextMenuEvent * event) { callbackPlainTextEditb1a9c9_ContextMenuEvent(this, event); }; + void copy() { callbackPlainTextEditb1a9c9_Copy(this); }; + void Signal_CopyAvailable(bool yes) { callbackPlainTextEditb1a9c9_CopyAvailable(this, yes); }; + QMimeData * createMimeDataFromSelection() const { return static_cast(callbackPlainTextEditb1a9c9_CreateMimeDataFromSelection(const_cast(static_cast(this)))); }; + void Signal_CursorPositionChanged() { callbackPlainTextEditb1a9c9_CursorPositionChanged(this); }; + void cut() { callbackPlainTextEditb1a9c9_Cut(this); }; + void dragEnterEvent(QDragEnterEvent * e) { callbackPlainTextEditb1a9c9_DragEnterEvent(this, e); }; + void dragLeaveEvent(QDragLeaveEvent * e) { callbackPlainTextEditb1a9c9_DragLeaveEvent(this, e); }; + void dragMoveEvent(QDragMoveEvent * e) { callbackPlainTextEditb1a9c9_DragMoveEvent(this, e); }; + void dropEvent(QDropEvent * e) { callbackPlainTextEditb1a9c9_DropEvent(this, e); }; + void focusInEvent(QFocusEvent * e) { callbackPlainTextEditb1a9c9_FocusInEvent(this, e); }; + bool focusNextPrevChild(bool next) { return callbackPlainTextEditb1a9c9_FocusNextPrevChild(this, next) != 0; }; + void focusOutEvent(QFocusEvent * e) { callbackPlainTextEditb1a9c9_FocusOutEvent(this, e); }; + void inputMethodEvent(QInputMethodEvent * e) { callbackPlainTextEditb1a9c9_InputMethodEvent(this, e); }; + QVariant inputMethodQuery(Qt::InputMethodQuery property) const { return *static_cast(callbackPlainTextEditb1a9c9_InputMethodQuery(const_cast(static_cast(this)), property)); }; + void insertFromMimeData(const QMimeData * source) { callbackPlainTextEditb1a9c9_InsertFromMimeData(this, const_cast(source)); }; + void insertPlainText(const QString & text) { QByteArray* t372ea0 = new QByteArray(text.toUtf8()); Moc_PackedString textPacked = { const_cast(t372ea0->prepend("WHITESPACE").constData()+10), t372ea0->size()-10, t372ea0 };callbackPlainTextEditb1a9c9_InsertPlainText(this, textPacked); }; + void keyPressEvent(QKeyEvent * e) { callbackPlainTextEditb1a9c9_KeyPressEvent(this, e); }; + void keyReleaseEvent(QKeyEvent * e) { callbackPlainTextEditb1a9c9_KeyReleaseEvent(this, e); }; + QVariant loadResource(int ty, const QUrl & name) { return *static_cast(callbackPlainTextEditb1a9c9_LoadResource(this, ty, const_cast(&name))); }; + void Signal_ModificationChanged(bool changed) { callbackPlainTextEditb1a9c9_ModificationChanged(this, changed); }; + void mouseDoubleClickEvent(QMouseEvent * e) { callbackPlainTextEditb1a9c9_MouseDoubleClickEvent(this, e); }; + void mouseMoveEvent(QMouseEvent * e) { callbackPlainTextEditb1a9c9_MouseMoveEvent(this, e); }; + void mousePressEvent(QMouseEvent * e) { callbackPlainTextEditb1a9c9_MousePressEvent(this, e); }; + void mouseReleaseEvent(QMouseEvent * e) { callbackPlainTextEditb1a9c9_MouseReleaseEvent(this, e); }; + void paintEvent(QPaintEvent * e) { callbackPlainTextEditb1a9c9_PaintEvent(this, e); }; + void paste() { callbackPlainTextEditb1a9c9_Paste(this); }; + void redo() { callbackPlainTextEditb1a9c9_Redo(this); }; + void Signal_RedoAvailable(bool available) { callbackPlainTextEditb1a9c9_RedoAvailable(this, available); }; + void resizeEvent(QResizeEvent * e) { callbackPlainTextEditb1a9c9_ResizeEvent(this, e); }; + void scrollContentsBy(int dx, int dy) { callbackPlainTextEditb1a9c9_ScrollContentsBy(this, dx, dy); }; + void selectAll() { callbackPlainTextEditb1a9c9_SelectAll(this); }; + void Signal_SelectionChanged() { callbackPlainTextEditb1a9c9_SelectionChanged(this); }; + void setPlainText(const QString & text) { QByteArray* t372ea0 = new QByteArray(text.toUtf8()); Moc_PackedString textPacked = { const_cast(t372ea0->prepend("WHITESPACE").constData()+10), t372ea0->size()-10, t372ea0 };callbackPlainTextEditb1a9c9_SetPlainText(this, textPacked); }; + void showEvent(QShowEvent * vqs) { callbackPlainTextEditb1a9c9_ShowEvent(this, vqs); }; + void Signal_TextChanged() { callbackPlainTextEditb1a9c9_TextChanged(this); }; + void undo() { callbackPlainTextEditb1a9c9_Undo(this); }; + void Signal_UndoAvailable(bool available) { callbackPlainTextEditb1a9c9_UndoAvailable(this, available); }; + void Signal_UpdateRequest(const QRect & rect, int dy) { callbackPlainTextEditb1a9c9_UpdateRequest(this, const_cast(&rect), dy); }; + void wheelEvent(QWheelEvent * e) { callbackPlainTextEditb1a9c9_WheelEvent(this, e); }; + void zoomIn(int ran) { callbackPlainTextEditb1a9c9_ZoomIn(this, ran); }; + void zoomOut(int ran) { callbackPlainTextEditb1a9c9_ZoomOut(this, ran); }; + bool event(QEvent * event) { return callbackPlainTextEditb1a9c9_Event(this, event) != 0; }; + QSize minimumSizeHint() const { return *static_cast(callbackPlainTextEditb1a9c9_MinimumSizeHint(const_cast(static_cast(this)))); }; + void setupViewport(QWidget * viewport) { callbackPlainTextEditb1a9c9_SetupViewport(this, viewport); }; + QSize sizeHint() const { return *static_cast(callbackPlainTextEditb1a9c9_SizeHint(const_cast(static_cast(this)))); }; + bool viewportEvent(QEvent * event) { return callbackPlainTextEditb1a9c9_ViewportEvent(this, event) != 0; }; + QSize viewportSizeHint() const { return *static_cast(callbackPlainTextEditb1a9c9_ViewportSizeHint(const_cast(static_cast(this)))); }; + void actionEvent(QActionEvent * event) { callbackPlainTextEditb1a9c9_ActionEvent(this, event); }; + bool close() { return callbackPlainTextEditb1a9c9_Close(this) != 0; }; + void closeEvent(QCloseEvent * event) { callbackPlainTextEditb1a9c9_CloseEvent(this, event); }; + void Signal_CustomContextMenuRequested(const QPoint & pos) { callbackPlainTextEditb1a9c9_CustomContextMenuRequested(this, const_cast(&pos)); }; + void enterEvent(QEvent * event) { callbackPlainTextEditb1a9c9_EnterEvent(this, event); }; + bool hasHeightForWidth() const { return callbackPlainTextEditb1a9c9_HasHeightForWidth(const_cast(static_cast(this))) != 0; }; + int heightForWidth(int w) const { return callbackPlainTextEditb1a9c9_HeightForWidth(const_cast(static_cast(this)), w); }; + void hide() { callbackPlainTextEditb1a9c9_Hide(this); }; + void hideEvent(QHideEvent * event) { callbackPlainTextEditb1a9c9_HideEvent(this, event); }; + void initPainter(QPainter * painter) const { callbackPlainTextEditb1a9c9_InitPainter(const_cast(static_cast(this)), painter); }; + void leaveEvent(QEvent * event) { callbackPlainTextEditb1a9c9_LeaveEvent(this, event); }; + void lower() { callbackPlainTextEditb1a9c9_Lower(this); }; + int metric(QPaintDevice::PaintDeviceMetric m) const { return callbackPlainTextEditb1a9c9_Metric(const_cast(static_cast(this)), m); }; + void moveEvent(QMoveEvent * event) { callbackPlainTextEditb1a9c9_MoveEvent(this, event); }; + bool nativeEvent(const QByteArray & eventType, void * message, long * result) { return callbackPlainTextEditb1a9c9_NativeEvent(this, const_cast(&eventType), message, result) != 0; }; + QPaintEngine * paintEngine() const { return static_cast(callbackPlainTextEditb1a9c9_PaintEngine(const_cast(static_cast(this)))); }; + void raise() { callbackPlainTextEditb1a9c9_Raise(this); }; + void repaint() { callbackPlainTextEditb1a9c9_Repaint(this); }; + void setDisabled(bool disable) { callbackPlainTextEditb1a9c9_SetDisabled(this, disable); }; + void setEnabled(bool vbo) { callbackPlainTextEditb1a9c9_SetEnabled(this, vbo); }; + void setFocus() { callbackPlainTextEditb1a9c9_SetFocus2(this); }; + void setHidden(bool hidden) { callbackPlainTextEditb1a9c9_SetHidden(this, hidden); }; + void setStyleSheet(const QString & styleSheet) { QByteArray* t728ae7 = new QByteArray(styleSheet.toUtf8()); Moc_PackedString styleSheetPacked = { const_cast(t728ae7->prepend("WHITESPACE").constData()+10), t728ae7->size()-10, t728ae7 };callbackPlainTextEditb1a9c9_SetStyleSheet(this, styleSheetPacked); }; + void setVisible(bool visible) { callbackPlainTextEditb1a9c9_SetVisible(this, visible); }; + void setWindowModified(bool vbo) { callbackPlainTextEditb1a9c9_SetWindowModified(this, vbo); }; + void setWindowTitle(const QString & vqs) { QByteArray* tda39a3 = new QByteArray(vqs.toUtf8()); Moc_PackedString vqsPacked = { const_cast(tda39a3->prepend("WHITESPACE").constData()+10), tda39a3->size()-10, tda39a3 };callbackPlainTextEditb1a9c9_SetWindowTitle(this, vqsPacked); }; + void show() { callbackPlainTextEditb1a9c9_Show(this); }; + void showFullScreen() { callbackPlainTextEditb1a9c9_ShowFullScreen(this); }; + void showMaximized() { callbackPlainTextEditb1a9c9_ShowMaximized(this); }; + void showMinimized() { callbackPlainTextEditb1a9c9_ShowMinimized(this); }; + void showNormal() { callbackPlainTextEditb1a9c9_ShowNormal(this); }; + void tabletEvent(QTabletEvent * event) { callbackPlainTextEditb1a9c9_TabletEvent(this, event); }; + void update() { callbackPlainTextEditb1a9c9_Update(this); }; + void updateMicroFocus() { callbackPlainTextEditb1a9c9_UpdateMicroFocus(this); }; + void Signal_WindowIconChanged(const QIcon & icon) { callbackPlainTextEditb1a9c9_WindowIconChanged(this, const_cast(&icon)); }; + void Signal_WindowTitleChanged(const QString & title) { QByteArray* t3c6de1 = new QByteArray(title.toUtf8()); Moc_PackedString titlePacked = { const_cast(t3c6de1->prepend("WHITESPACE").constData()+10), t3c6de1->size()-10, t3c6de1 };callbackPlainTextEditb1a9c9_WindowTitleChanged(this, titlePacked); }; + void childEvent(QChildEvent * event) { callbackPlainTextEditb1a9c9_ChildEvent(this, event); }; + void connectNotify(const QMetaMethod & sign) { callbackPlainTextEditb1a9c9_ConnectNotify(this, const_cast(&sign)); }; + void customEvent(QEvent * event) { callbackPlainTextEditb1a9c9_CustomEvent(this, event); }; + void deleteLater() { callbackPlainTextEditb1a9c9_DeleteLater(this); }; + void Signal_Destroyed(QObject * obj) { callbackPlainTextEditb1a9c9_Destroyed(this, obj); }; + void disconnectNotify(const QMetaMethod & sign) { callbackPlainTextEditb1a9c9_DisconnectNotify(this, const_cast(&sign)); }; + bool eventFilter(QObject * watched, QEvent * event) { return callbackPlainTextEditb1a9c9_EventFilter(this, watched, event) != 0; }; + void Signal_ObjectNameChanged(const QString & objectName) { QByteArray* taa2c4f = new QByteArray(objectName.toUtf8()); Moc_PackedString objectNamePacked = { const_cast(taa2c4f->prepend("WHITESPACE").constData()+10), taa2c4f->size()-10, taa2c4f };callbackPlainTextEditb1a9c9_ObjectNameChanged(this, objectNamePacked); }; + void timerEvent(QTimerEvent * event) { callbackPlainTextEditb1a9c9_TimerEvent(this, event); }; +signals: +public slots: + void addLine(QString v0) { QByteArray* tea1dd7 = new QByteArray(v0.toUtf8()); Moc_PackedString v0Packed = { const_cast(tea1dd7->prepend("WHITESPACE").constData()+10), tea1dd7->size()-10, tea1dd7 };callbackPlainTextEditb1a9c9_AddLine(this, v0Packed); }; +private: +}; + +Q_DECLARE_METATYPE(PlainTextEditb1a9c9*) + + +void PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaTypes() { +} + +void PlainTextEditb1a9c9_AddLine(void* ptr, struct Moc_PackedString v0) +{ + QMetaObject::invokeMethod(static_cast(ptr), "addLine", Q_ARG(QString, QString::fromUtf8(v0.data, v0.len))); +} + +int PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaType() +{ + return qRegisterMetaType(); +} + +int PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaType2(char* typeName) +{ + return qRegisterMetaType(const_cast(typeName)); +} + +int PlainTextEditb1a9c9_PlainTextEditb1a9c9_QmlRegisterType() +{ +#ifdef QT_QML_LIB + return qmlRegisterType(); +#else + return 0; +#endif +} + +int PlainTextEditb1a9c9_PlainTextEditb1a9c9_QmlRegisterType2(char* uri, int versionMajor, int versionMinor, char* qmlName) +{ +#ifdef QT_QML_LIB + return qmlRegisterType(const_cast(uri), versionMajor, versionMinor, const_cast(qmlName)); +#else + return 0; +#endif +} + +void* PlainTextEditb1a9c9___scrollBarWidgets_atList(void* ptr, int i) +{ + return ({QWidget * tmp = static_cast*>(ptr)->at(i); if (i == static_cast*>(ptr)->size()-1) { static_cast*>(ptr)->~QList(); free(ptr); }; tmp; }); +} + +void PlainTextEditb1a9c9___scrollBarWidgets_setList(void* ptr, void* i) +{ + static_cast*>(ptr)->append(static_cast(i)); +} + +void* PlainTextEditb1a9c9___scrollBarWidgets_newList(void* ptr) +{ + Q_UNUSED(ptr); + return new QList(); +} + +void* PlainTextEditb1a9c9___actions_atList(void* ptr, int i) +{ + return ({QAction * tmp = static_cast*>(ptr)->at(i); if (i == static_cast*>(ptr)->size()-1) { static_cast*>(ptr)->~QList(); free(ptr); }; tmp; }); +} + +void PlainTextEditb1a9c9___actions_setList(void* ptr, void* i) +{ + static_cast*>(ptr)->append(static_cast(i)); +} + +void* PlainTextEditb1a9c9___actions_newList(void* ptr) +{ + Q_UNUSED(ptr); + return new QList(); +} + +void* PlainTextEditb1a9c9___addActions_actions_atList(void* ptr, int i) +{ + return ({QAction * tmp = static_cast*>(ptr)->at(i); if (i == static_cast*>(ptr)->size()-1) { static_cast*>(ptr)->~QList(); free(ptr); }; tmp; }); +} + +void PlainTextEditb1a9c9___addActions_actions_setList(void* ptr, void* i) +{ + static_cast*>(ptr)->append(static_cast(i)); +} + +void* PlainTextEditb1a9c9___addActions_actions_newList(void* ptr) +{ + Q_UNUSED(ptr); + return new QList(); +} + +void* PlainTextEditb1a9c9___insertActions_actions_atList(void* ptr, int i) +{ + return ({QAction * tmp = static_cast*>(ptr)->at(i); if (i == static_cast*>(ptr)->size()-1) { static_cast*>(ptr)->~QList(); free(ptr); }; tmp; }); +} + +void PlainTextEditb1a9c9___insertActions_actions_setList(void* ptr, void* i) +{ + static_cast*>(ptr)->append(static_cast(i)); +} + +void* PlainTextEditb1a9c9___insertActions_actions_newList(void* ptr) +{ + Q_UNUSED(ptr); + return new QList(); +} + +void* PlainTextEditb1a9c9___children_atList(void* ptr, int i) +{ + return ({QObject * tmp = static_cast*>(ptr)->at(i); if (i == static_cast*>(ptr)->size()-1) { static_cast*>(ptr)->~QList(); free(ptr); }; tmp; }); +} + +void PlainTextEditb1a9c9___children_setList(void* ptr, void* i) +{ + static_cast*>(ptr)->append(static_cast(i)); +} + +void* PlainTextEditb1a9c9___children_newList(void* ptr) +{ + Q_UNUSED(ptr); + return new QList(); +} + +void* PlainTextEditb1a9c9___dynamicPropertyNames_atList(void* ptr, int i) +{ + return new QByteArray(({QByteArray tmp = static_cast*>(ptr)->at(i); if (i == static_cast*>(ptr)->size()-1) { static_cast*>(ptr)->~QList(); free(ptr); }; tmp; })); +} + +void PlainTextEditb1a9c9___dynamicPropertyNames_setList(void* ptr, void* i) +{ + static_cast*>(ptr)->append(*static_cast(i)); +} + +void* PlainTextEditb1a9c9___dynamicPropertyNames_newList(void* ptr) +{ + Q_UNUSED(ptr); + return new QList(); +} + +void* PlainTextEditb1a9c9___findChildren_atList(void* ptr, int i) +{ + return ({QObject* tmp = static_cast*>(ptr)->at(i); if (i == static_cast*>(ptr)->size()-1) { static_cast*>(ptr)->~QList(); free(ptr); }; tmp; }); +} + +void PlainTextEditb1a9c9___findChildren_setList(void* ptr, void* i) +{ + static_cast*>(ptr)->append(static_cast(i)); +} + +void* PlainTextEditb1a9c9___findChildren_newList(void* ptr) +{ + Q_UNUSED(ptr); + return new QList(); +} + +void* PlainTextEditb1a9c9___findChildren_atList3(void* ptr, int i) +{ + return ({QObject* tmp = static_cast*>(ptr)->at(i); if (i == static_cast*>(ptr)->size()-1) { static_cast*>(ptr)->~QList(); free(ptr); }; tmp; }); +} + +void PlainTextEditb1a9c9___findChildren_setList3(void* ptr, void* i) +{ + static_cast*>(ptr)->append(static_cast(i)); +} + +void* PlainTextEditb1a9c9___findChildren_newList3(void* ptr) +{ + Q_UNUSED(ptr); + return new QList(); +} + +void* PlainTextEditb1a9c9_NewPlainTextEdit(void* parent) +{ + return new PlainTextEditb1a9c9(static_cast(parent)); +} + +void* PlainTextEditb1a9c9_NewPlainTextEdit2(struct Moc_PackedString text, void* parent) +{ + return new PlainTextEditb1a9c9(QString::fromUtf8(text.data, text.len), static_cast(parent)); +} + +void PlainTextEditb1a9c9_DestroyPlainTextEdit(void* ptr) +{ + static_cast(ptr)->~PlainTextEditb1a9c9(); +} + +void PlainTextEditb1a9c9_DestroyPlainTextEditDefault(void* ptr) +{ + Q_UNUSED(ptr); + +} + +void PlainTextEditb1a9c9_AppendHtmlDefault(void* ptr, struct Moc_PackedString html) +{ + static_cast(ptr)->QPlainTextEdit::appendHtml(QString::fromUtf8(html.data, html.len)); +} + +void PlainTextEditb1a9c9_AppendPlainTextDefault(void* ptr, struct Moc_PackedString text) +{ + static_cast(ptr)->QPlainTextEdit::appendPlainText(QString::fromUtf8(text.data, text.len)); +} + +char PlainTextEditb1a9c9_CanInsertFromMimeDataDefault(void* ptr, void* source) +{ + return static_cast(ptr)->QPlainTextEdit::canInsertFromMimeData(static_cast(source)); +} + +void PlainTextEditb1a9c9_CenterCursorDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::centerCursor(); +} + +void PlainTextEditb1a9c9_ChangeEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::changeEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_ClearDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::clear(); +} + +void PlainTextEditb1a9c9_ContextMenuEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::contextMenuEvent(static_cast(event)); +} + +void PlainTextEditb1a9c9_CopyDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::copy(); +} + +void* PlainTextEditb1a9c9_CreateMimeDataFromSelectionDefault(void* ptr) +{ + return static_cast(ptr)->QPlainTextEdit::createMimeDataFromSelection(); +} + +void PlainTextEditb1a9c9_CutDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::cut(); +} + +void PlainTextEditb1a9c9_DragEnterEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::dragEnterEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_DragLeaveEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::dragLeaveEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_DragMoveEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::dragMoveEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_DropEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::dropEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_FocusInEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::focusInEvent(static_cast(e)); +} + +char PlainTextEditb1a9c9_FocusNextPrevChildDefault(void* ptr, char next) +{ + return static_cast(ptr)->QPlainTextEdit::focusNextPrevChild(next != 0); +} + +void PlainTextEditb1a9c9_FocusOutEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::focusOutEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_InputMethodEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::inputMethodEvent(static_cast(e)); +} + +void* PlainTextEditb1a9c9_InputMethodQueryDefault(void* ptr, long long property) +{ + return new QVariant(static_cast(ptr)->QPlainTextEdit::inputMethodQuery(static_cast(property))); +} + +void PlainTextEditb1a9c9_InsertFromMimeDataDefault(void* ptr, void* source) +{ + static_cast(ptr)->QPlainTextEdit::insertFromMimeData(static_cast(source)); +} + +void PlainTextEditb1a9c9_InsertPlainTextDefault(void* ptr, struct Moc_PackedString text) +{ + static_cast(ptr)->QPlainTextEdit::insertPlainText(QString::fromUtf8(text.data, text.len)); +} + +void PlainTextEditb1a9c9_KeyPressEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::keyPressEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_KeyReleaseEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::keyReleaseEvent(static_cast(e)); +} + +void* PlainTextEditb1a9c9_LoadResourceDefault(void* ptr, int ty, void* name) +{ + return new QVariant(static_cast(ptr)->QPlainTextEdit::loadResource(ty, *static_cast(name))); +} + +void PlainTextEditb1a9c9_MouseDoubleClickEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::mouseDoubleClickEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_MouseMoveEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::mouseMoveEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_MousePressEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::mousePressEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_MouseReleaseEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::mouseReleaseEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_PaintEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::paintEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_PasteDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::paste(); +} + +void PlainTextEditb1a9c9_RedoDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::redo(); +} + +void PlainTextEditb1a9c9_ResizeEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::resizeEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_ScrollContentsByDefault(void* ptr, int dx, int dy) +{ + static_cast(ptr)->QPlainTextEdit::scrollContentsBy(dx, dy); +} + +void PlainTextEditb1a9c9_SelectAllDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::selectAll(); +} + +void PlainTextEditb1a9c9_SetPlainTextDefault(void* ptr, struct Moc_PackedString text) +{ + static_cast(ptr)->QPlainTextEdit::setPlainText(QString::fromUtf8(text.data, text.len)); +} + +void PlainTextEditb1a9c9_ShowEventDefault(void* ptr, void* vqs) +{ + static_cast(ptr)->QPlainTextEdit::showEvent(static_cast(vqs)); +} + +void PlainTextEditb1a9c9_UndoDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::undo(); +} + +void PlainTextEditb1a9c9_WheelEventDefault(void* ptr, void* e) +{ + static_cast(ptr)->QPlainTextEdit::wheelEvent(static_cast(e)); +} + +void PlainTextEditb1a9c9_ZoomInDefault(void* ptr, int ran) +{ + static_cast(ptr)->QPlainTextEdit::zoomIn(ran); +} + +void PlainTextEditb1a9c9_ZoomOutDefault(void* ptr, int ran) +{ + static_cast(ptr)->QPlainTextEdit::zoomOut(ran); +} + +char PlainTextEditb1a9c9_EventDefault(void* ptr, void* event) +{ + return static_cast(ptr)->QPlainTextEdit::event(static_cast(event)); +} + +void* PlainTextEditb1a9c9_MinimumSizeHintDefault(void* ptr) +{ + return ({ QSize tmpValue = static_cast(ptr)->QPlainTextEdit::minimumSizeHint(); new QSize(tmpValue.width(), tmpValue.height()); }); +} + +void PlainTextEditb1a9c9_SetupViewportDefault(void* ptr, void* viewport) +{ + static_cast(ptr)->QPlainTextEdit::setupViewport(static_cast(viewport)); +} + +void* PlainTextEditb1a9c9_SizeHintDefault(void* ptr) +{ + return ({ QSize tmpValue = static_cast(ptr)->QPlainTextEdit::sizeHint(); new QSize(tmpValue.width(), tmpValue.height()); }); +} + +char PlainTextEditb1a9c9_ViewportEventDefault(void* ptr, void* event) +{ + return static_cast(ptr)->QPlainTextEdit::viewportEvent(static_cast(event)); +} + +void* PlainTextEditb1a9c9_ViewportSizeHintDefault(void* ptr) +{ + return ({ QSize tmpValue = static_cast(ptr)->QPlainTextEdit::viewportSizeHint(); new QSize(tmpValue.width(), tmpValue.height()); }); +} + +void PlainTextEditb1a9c9_ActionEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::actionEvent(static_cast(event)); +} + +char PlainTextEditb1a9c9_CloseDefault(void* ptr) +{ + return static_cast(ptr)->QPlainTextEdit::close(); +} + +void PlainTextEditb1a9c9_CloseEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::closeEvent(static_cast(event)); +} + +void PlainTextEditb1a9c9_EnterEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::enterEvent(static_cast(event)); +} + +char PlainTextEditb1a9c9_HasHeightForWidthDefault(void* ptr) +{ + return static_cast(ptr)->QPlainTextEdit::hasHeightForWidth(); +} + +int PlainTextEditb1a9c9_HeightForWidthDefault(void* ptr, int w) +{ + return static_cast(ptr)->QPlainTextEdit::heightForWidth(w); +} + +void PlainTextEditb1a9c9_HideDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::hide(); +} + +void PlainTextEditb1a9c9_HideEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::hideEvent(static_cast(event)); +} + +void PlainTextEditb1a9c9_InitPainterDefault(void* ptr, void* painter) +{ + static_cast(ptr)->QPlainTextEdit::initPainter(static_cast(painter)); +} + +void PlainTextEditb1a9c9_LeaveEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::leaveEvent(static_cast(event)); +} + +void PlainTextEditb1a9c9_LowerDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::lower(); +} + +int PlainTextEditb1a9c9_MetricDefault(void* ptr, long long m) +{ + return static_cast(ptr)->QPlainTextEdit::metric(static_cast(m)); +} + +void PlainTextEditb1a9c9_MoveEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::moveEvent(static_cast(event)); +} + +char PlainTextEditb1a9c9_NativeEventDefault(void* ptr, void* eventType, void* message, long* result) +{ + return static_cast(ptr)->QPlainTextEdit::nativeEvent(*static_cast(eventType), message, result); +} + +void* PlainTextEditb1a9c9_PaintEngineDefault(void* ptr) +{ + return static_cast(ptr)->QPlainTextEdit::paintEngine(); +} + +void PlainTextEditb1a9c9_RaiseDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::raise(); +} + +void PlainTextEditb1a9c9_RepaintDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::repaint(); +} + +void PlainTextEditb1a9c9_SetDisabledDefault(void* ptr, char disable) +{ + static_cast(ptr)->QPlainTextEdit::setDisabled(disable != 0); +} + +void PlainTextEditb1a9c9_SetEnabledDefault(void* ptr, char vbo) +{ + static_cast(ptr)->QPlainTextEdit::setEnabled(vbo != 0); +} + +void PlainTextEditb1a9c9_SetFocus2Default(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::setFocus(); +} + +void PlainTextEditb1a9c9_SetHiddenDefault(void* ptr, char hidden) +{ + static_cast(ptr)->QPlainTextEdit::setHidden(hidden != 0); +} + +void PlainTextEditb1a9c9_SetStyleSheetDefault(void* ptr, struct Moc_PackedString styleSheet) +{ + static_cast(ptr)->QPlainTextEdit::setStyleSheet(QString::fromUtf8(styleSheet.data, styleSheet.len)); +} + +void PlainTextEditb1a9c9_SetVisibleDefault(void* ptr, char visible) +{ + static_cast(ptr)->QPlainTextEdit::setVisible(visible != 0); +} + +void PlainTextEditb1a9c9_SetWindowModifiedDefault(void* ptr, char vbo) +{ + static_cast(ptr)->QPlainTextEdit::setWindowModified(vbo != 0); +} + +void PlainTextEditb1a9c9_SetWindowTitleDefault(void* ptr, struct Moc_PackedString vqs) +{ + static_cast(ptr)->QPlainTextEdit::setWindowTitle(QString::fromUtf8(vqs.data, vqs.len)); +} + +void PlainTextEditb1a9c9_ShowDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::show(); +} + +void PlainTextEditb1a9c9_ShowFullScreenDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::showFullScreen(); +} + +void PlainTextEditb1a9c9_ShowMaximizedDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::showMaximized(); +} + +void PlainTextEditb1a9c9_ShowMinimizedDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::showMinimized(); +} + +void PlainTextEditb1a9c9_ShowNormalDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::showNormal(); +} + +void PlainTextEditb1a9c9_TabletEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::tabletEvent(static_cast(event)); +} + +void PlainTextEditb1a9c9_UpdateDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::update(); +} + +void PlainTextEditb1a9c9_UpdateMicroFocusDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::updateMicroFocus(); +} + +void PlainTextEditb1a9c9_ChildEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::childEvent(static_cast(event)); +} + +void PlainTextEditb1a9c9_ConnectNotifyDefault(void* ptr, void* sign) +{ + static_cast(ptr)->QPlainTextEdit::connectNotify(*static_cast(sign)); +} + +void PlainTextEditb1a9c9_CustomEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::customEvent(static_cast(event)); +} + +void PlainTextEditb1a9c9_DeleteLaterDefault(void* ptr) +{ + static_cast(ptr)->QPlainTextEdit::deleteLater(); +} + +void PlainTextEditb1a9c9_DisconnectNotifyDefault(void* ptr, void* sign) +{ + static_cast(ptr)->QPlainTextEdit::disconnectNotify(*static_cast(sign)); +} + +char PlainTextEditb1a9c9_EventFilterDefault(void* ptr, void* watched, void* event) +{ + return static_cast(ptr)->QPlainTextEdit::eventFilter(static_cast(watched), static_cast(event)); +} + + + +void PlainTextEditb1a9c9_TimerEventDefault(void* ptr, void* event) +{ + static_cast(ptr)->QPlainTextEdit::timerEvent(static_cast(event)); +} + +#include "moc_moc.h" diff --git a/moc.go b/moc.go new file mode 100644 index 0000000..65752f1 --- /dev/null +++ b/moc.go @@ -0,0 +1,1916 @@ +package main + +//#include +//#include +//#include +//#include "moc.h" +import "C" +import ( + "strings" + "unsafe" + + "github.com/therecipe/qt" + std_core "github.com/therecipe/qt/core" + std_gui "github.com/therecipe/qt/gui" + std_widgets "github.com/therecipe/qt/widgets" +) + +func cGoFreePacked(ptr unsafe.Pointer) { std_core.NewQByteArrayFromPointer(ptr).DestroyQByteArray() } +func cGoUnpackString(s C.struct_Moc_PackedString) string { + defer cGoFreePacked(s.ptr) + if int(s.len) == -1 { + return C.GoString(s.data) + } + return C.GoStringN(s.data, C.int(s.len)) +} +func cGoUnpackBytes(s C.struct_Moc_PackedString) []byte { + defer cGoFreePacked(s.ptr) + if int(s.len) == -1 { + gs := C.GoString(s.data) + return *(*[]byte)(unsafe.Pointer(&gs)) + } + return C.GoBytes(unsafe.Pointer(s.data), C.int(s.len)) +} +func unpackStringList(s string) []string { + if len(s) == 0 { + return make([]string, 0) + } + return strings.Split(s, "¡¦!") +} + +type PlainTextEdit_ITF interface { + std_widgets.QPlainTextEdit_ITF + PlainTextEdit_PTR() *PlainTextEdit +} + +func (ptr *PlainTextEdit) PlainTextEdit_PTR() *PlainTextEdit { + return ptr +} + +func (ptr *PlainTextEdit) Pointer() unsafe.Pointer { + if ptr != nil { + return ptr.QPlainTextEdit_PTR().Pointer() + } + return nil +} + +func (ptr *PlainTextEdit) SetPointer(p unsafe.Pointer) { + if ptr != nil { + ptr.QPlainTextEdit_PTR().SetPointer(p) + } +} + +func PointerFromPlainTextEdit(ptr PlainTextEdit_ITF) unsafe.Pointer { + if ptr != nil { + return ptr.PlainTextEdit_PTR().Pointer() + } + return nil +} + +func NewPlainTextEditFromPointer(ptr unsafe.Pointer) (n *PlainTextEdit) { + if gPtr, ok := qt.Receive(ptr); !ok { + n = new(PlainTextEdit) + n.SetPointer(ptr) + } else { + switch deduced := gPtr.(type) { + case *PlainTextEdit: + n = deduced + + case *std_widgets.QPlainTextEdit: + n = &PlainTextEdit{QPlainTextEdit: *deduced} + + default: + n = new(PlainTextEdit) + n.SetPointer(ptr) + } + } + return +} +func (this *PlainTextEdit) Init() { this.init() } + +//export callbackPlainTextEditb1a9c9_Constructor +func callbackPlainTextEditb1a9c9_Constructor(ptr unsafe.Pointer) { + this := NewPlainTextEditFromPointer(ptr) + qt.Register(ptr, this) + this.init() +} + +//export callbackPlainTextEditb1a9c9_AddLine +func callbackPlainTextEditb1a9c9_AddLine(ptr unsafe.Pointer, v0 C.struct_Moc_PackedString) { + if signal := qt.GetSignal(ptr, "addLine"); signal != nil { + (*(*func(string))(signal))(cGoUnpackString(v0)) + } + +} + +func (ptr *PlainTextEdit) ConnectAddLine(f func(v0 string)) { + if ptr.Pointer() != nil { + + if signal := qt.LendSignal(ptr.Pointer(), "addLine"); signal != nil { + f := func(v0 string) { + (*(*func(string))(signal))(v0) + f(v0) + } + qt.ConnectSignal(ptr.Pointer(), "addLine", unsafe.Pointer(&f)) + } else { + qt.ConnectSignal(ptr.Pointer(), "addLine", unsafe.Pointer(&f)) + } + } +} + +func (ptr *PlainTextEdit) DisconnectAddLine() { + if ptr.Pointer() != nil { + + qt.DisconnectSignal(ptr.Pointer(), "addLine") + } +} + +func (ptr *PlainTextEdit) AddLine(v0 string) { + if ptr.Pointer() != nil { + var v0C *C.char + if v0 != "" { + v0C = C.CString(v0) + defer C.free(unsafe.Pointer(v0C)) + } + C.PlainTextEditb1a9c9_AddLine(ptr.Pointer(), C.struct_Moc_PackedString{data: v0C, len: C.longlong(len(v0))}) + } +} + +func PlainTextEdit_QRegisterMetaType() int { + return int(int32(C.PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaType())) +} + +func (ptr *PlainTextEdit) QRegisterMetaType() int { + return int(int32(C.PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaType())) +} + +func PlainTextEdit_QRegisterMetaType2(typeName string) int { + var typeNameC *C.char + if typeName != "" { + typeNameC = C.CString(typeName) + defer C.free(unsafe.Pointer(typeNameC)) + } + return int(int32(C.PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaType2(typeNameC))) +} + +func (ptr *PlainTextEdit) QRegisterMetaType2(typeName string) int { + var typeNameC *C.char + if typeName != "" { + typeNameC = C.CString(typeName) + defer C.free(unsafe.Pointer(typeNameC)) + } + return int(int32(C.PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaType2(typeNameC))) +} + +func PlainTextEdit_QmlRegisterType() int { + return int(int32(C.PlainTextEditb1a9c9_PlainTextEditb1a9c9_QmlRegisterType())) +} + +func (ptr *PlainTextEdit) QmlRegisterType() int { + return int(int32(C.PlainTextEditb1a9c9_PlainTextEditb1a9c9_QmlRegisterType())) +} + +func PlainTextEdit_QmlRegisterType2(uri string, versionMajor int, versionMinor int, qmlName string) int { + var uriC *C.char + if uri != "" { + uriC = C.CString(uri) + defer C.free(unsafe.Pointer(uriC)) + } + var qmlNameC *C.char + if qmlName != "" { + qmlNameC = C.CString(qmlName) + defer C.free(unsafe.Pointer(qmlNameC)) + } + return int(int32(C.PlainTextEditb1a9c9_PlainTextEditb1a9c9_QmlRegisterType2(uriC, C.int(int32(versionMajor)), C.int(int32(versionMinor)), qmlNameC))) +} + +func (ptr *PlainTextEdit) QmlRegisterType2(uri string, versionMajor int, versionMinor int, qmlName string) int { + var uriC *C.char + if uri != "" { + uriC = C.CString(uri) + defer C.free(unsafe.Pointer(uriC)) + } + var qmlNameC *C.char + if qmlName != "" { + qmlNameC = C.CString(qmlName) + defer C.free(unsafe.Pointer(qmlNameC)) + } + return int(int32(C.PlainTextEditb1a9c9_PlainTextEditb1a9c9_QmlRegisterType2(uriC, C.int(int32(versionMajor)), C.int(int32(versionMinor)), qmlNameC))) +} + +func (ptr *PlainTextEdit) __scrollBarWidgets_atList(i int) *std_widgets.QWidget { + if ptr.Pointer() != nil { + tmpValue := std_widgets.NewQWidgetFromPointer(C.PlainTextEditb1a9c9___scrollBarWidgets_atList(ptr.Pointer(), C.int(int32(i)))) + if !qt.ExistsSignal(tmpValue.Pointer(), "destroyed") { + tmpValue.ConnectDestroyed(func(*std_core.QObject) { tmpValue.SetPointer(nil) }) + } + return tmpValue + } + return nil +} + +func (ptr *PlainTextEdit) __scrollBarWidgets_setList(i std_widgets.QWidget_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9___scrollBarWidgets_setList(ptr.Pointer(), std_widgets.PointerFromQWidget(i)) + } +} + +func (ptr *PlainTextEdit) __scrollBarWidgets_newList() unsafe.Pointer { + return C.PlainTextEditb1a9c9___scrollBarWidgets_newList(ptr.Pointer()) +} + +func (ptr *PlainTextEdit) __actions_atList(i int) *std_widgets.QAction { + if ptr.Pointer() != nil { + tmpValue := std_widgets.NewQActionFromPointer(C.PlainTextEditb1a9c9___actions_atList(ptr.Pointer(), C.int(int32(i)))) + if !qt.ExistsSignal(tmpValue.Pointer(), "destroyed") { + tmpValue.ConnectDestroyed(func(*std_core.QObject) { tmpValue.SetPointer(nil) }) + } + return tmpValue + } + return nil +} + +func (ptr *PlainTextEdit) __actions_setList(i std_widgets.QAction_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9___actions_setList(ptr.Pointer(), std_widgets.PointerFromQAction(i)) + } +} + +func (ptr *PlainTextEdit) __actions_newList() unsafe.Pointer { + return C.PlainTextEditb1a9c9___actions_newList(ptr.Pointer()) +} + +func (ptr *PlainTextEdit) __addActions_actions_atList(i int) *std_widgets.QAction { + if ptr.Pointer() != nil { + tmpValue := std_widgets.NewQActionFromPointer(C.PlainTextEditb1a9c9___addActions_actions_atList(ptr.Pointer(), C.int(int32(i)))) + if !qt.ExistsSignal(tmpValue.Pointer(), "destroyed") { + tmpValue.ConnectDestroyed(func(*std_core.QObject) { tmpValue.SetPointer(nil) }) + } + return tmpValue + } + return nil +} + +func (ptr *PlainTextEdit) __addActions_actions_setList(i std_widgets.QAction_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9___addActions_actions_setList(ptr.Pointer(), std_widgets.PointerFromQAction(i)) + } +} + +func (ptr *PlainTextEdit) __addActions_actions_newList() unsafe.Pointer { + return C.PlainTextEditb1a9c9___addActions_actions_newList(ptr.Pointer()) +} + +func (ptr *PlainTextEdit) __insertActions_actions_atList(i int) *std_widgets.QAction { + if ptr.Pointer() != nil { + tmpValue := std_widgets.NewQActionFromPointer(C.PlainTextEditb1a9c9___insertActions_actions_atList(ptr.Pointer(), C.int(int32(i)))) + if !qt.ExistsSignal(tmpValue.Pointer(), "destroyed") { + tmpValue.ConnectDestroyed(func(*std_core.QObject) { tmpValue.SetPointer(nil) }) + } + return tmpValue + } + return nil +} + +func (ptr *PlainTextEdit) __insertActions_actions_setList(i std_widgets.QAction_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9___insertActions_actions_setList(ptr.Pointer(), std_widgets.PointerFromQAction(i)) + } +} + +func (ptr *PlainTextEdit) __insertActions_actions_newList() unsafe.Pointer { + return C.PlainTextEditb1a9c9___insertActions_actions_newList(ptr.Pointer()) +} + +func (ptr *PlainTextEdit) __children_atList(i int) *std_core.QObject { + if ptr.Pointer() != nil { + tmpValue := std_core.NewQObjectFromPointer(C.PlainTextEditb1a9c9___children_atList(ptr.Pointer(), C.int(int32(i)))) + if !qt.ExistsSignal(tmpValue.Pointer(), "destroyed") { + tmpValue.ConnectDestroyed(func(*std_core.QObject) { tmpValue.SetPointer(nil) }) + } + return tmpValue + } + return nil +} + +func (ptr *PlainTextEdit) __children_setList(i std_core.QObject_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9___children_setList(ptr.Pointer(), std_core.PointerFromQObject(i)) + } +} + +func (ptr *PlainTextEdit) __children_newList() unsafe.Pointer { + return C.PlainTextEditb1a9c9___children_newList(ptr.Pointer()) +} + +func (ptr *PlainTextEdit) __dynamicPropertyNames_atList(i int) *std_core.QByteArray { + if ptr.Pointer() != nil { + tmpValue := std_core.NewQByteArrayFromPointer(C.PlainTextEditb1a9c9___dynamicPropertyNames_atList(ptr.Pointer(), C.int(int32(i)))) + qt.SetFinalizer(tmpValue, (*std_core.QByteArray).DestroyQByteArray) + return tmpValue + } + return nil +} + +func (ptr *PlainTextEdit) __dynamicPropertyNames_setList(i std_core.QByteArray_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9___dynamicPropertyNames_setList(ptr.Pointer(), std_core.PointerFromQByteArray(i)) + } +} + +func (ptr *PlainTextEdit) __dynamicPropertyNames_newList() unsafe.Pointer { + return C.PlainTextEditb1a9c9___dynamicPropertyNames_newList(ptr.Pointer()) +} + +func (ptr *PlainTextEdit) __findChildren_atList(i int) *std_core.QObject { + if ptr.Pointer() != nil { + tmpValue := std_core.NewQObjectFromPointer(C.PlainTextEditb1a9c9___findChildren_atList(ptr.Pointer(), C.int(int32(i)))) + if !qt.ExistsSignal(tmpValue.Pointer(), "destroyed") { + tmpValue.ConnectDestroyed(func(*std_core.QObject) { tmpValue.SetPointer(nil) }) + } + return tmpValue + } + return nil +} + +func (ptr *PlainTextEdit) __findChildren_setList(i std_core.QObject_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9___findChildren_setList(ptr.Pointer(), std_core.PointerFromQObject(i)) + } +} + +func (ptr *PlainTextEdit) __findChildren_newList() unsafe.Pointer { + return C.PlainTextEditb1a9c9___findChildren_newList(ptr.Pointer()) +} + +func (ptr *PlainTextEdit) __findChildren_atList3(i int) *std_core.QObject { + if ptr.Pointer() != nil { + tmpValue := std_core.NewQObjectFromPointer(C.PlainTextEditb1a9c9___findChildren_atList3(ptr.Pointer(), C.int(int32(i)))) + if !qt.ExistsSignal(tmpValue.Pointer(), "destroyed") { + tmpValue.ConnectDestroyed(func(*std_core.QObject) { tmpValue.SetPointer(nil) }) + } + return tmpValue + } + return nil +} + +func (ptr *PlainTextEdit) __findChildren_setList3(i std_core.QObject_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9___findChildren_setList3(ptr.Pointer(), std_core.PointerFromQObject(i)) + } +} + +func (ptr *PlainTextEdit) __findChildren_newList3() unsafe.Pointer { + return C.PlainTextEditb1a9c9___findChildren_newList3(ptr.Pointer()) +} + +func NewPlainTextEdit(parent std_widgets.QWidget_ITF) *PlainTextEdit { + PlainTextEdit_QRegisterMetaType() + tmpValue := NewPlainTextEditFromPointer(C.PlainTextEditb1a9c9_NewPlainTextEdit(std_widgets.PointerFromQWidget(parent))) + if !qt.ExistsSignal(tmpValue.Pointer(), "destroyed") { + tmpValue.ConnectDestroyed(func(*std_core.QObject) { tmpValue.SetPointer(nil) }) + } + return tmpValue +} + +func NewPlainTextEdit2(text string, parent std_widgets.QWidget_ITF) *PlainTextEdit { + var textC *C.char + if text != "" { + textC = C.CString(text) + defer C.free(unsafe.Pointer(textC)) + } + PlainTextEdit_QRegisterMetaType() + tmpValue := NewPlainTextEditFromPointer(C.PlainTextEditb1a9c9_NewPlainTextEdit2(C.struct_Moc_PackedString{data: textC, len: C.longlong(len(text))}, std_widgets.PointerFromQWidget(parent))) + if !qt.ExistsSignal(tmpValue.Pointer(), "destroyed") { + tmpValue.ConnectDestroyed(func(*std_core.QObject) { tmpValue.SetPointer(nil) }) + } + return tmpValue +} + +//export callbackPlainTextEditb1a9c9_DestroyPlainTextEdit +func callbackPlainTextEditb1a9c9_DestroyPlainTextEdit(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "~PlainTextEdit"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).DestroyPlainTextEditDefault() + } +} + +func (ptr *PlainTextEdit) ConnectDestroyPlainTextEdit(f func()) { + if ptr.Pointer() != nil { + + if signal := qt.LendSignal(ptr.Pointer(), "~PlainTextEdit"); signal != nil { + f := func() { + (*(*func())(signal))() + f() + } + qt.ConnectSignal(ptr.Pointer(), "~PlainTextEdit", unsafe.Pointer(&f)) + } else { + qt.ConnectSignal(ptr.Pointer(), "~PlainTextEdit", unsafe.Pointer(&f)) + } + } +} + +func (ptr *PlainTextEdit) DisconnectDestroyPlainTextEdit() { + if ptr.Pointer() != nil { + + qt.DisconnectSignal(ptr.Pointer(), "~PlainTextEdit") + } +} + +func (ptr *PlainTextEdit) DestroyPlainTextEdit() { + if ptr.Pointer() != nil { + + qt.SetFinalizer(ptr, nil) + C.PlainTextEditb1a9c9_DestroyPlainTextEdit(ptr.Pointer()) + ptr.SetPointer(nil) + } +} + +func (ptr *PlainTextEdit) DestroyPlainTextEditDefault() { + if ptr.Pointer() != nil { + + qt.SetFinalizer(ptr, nil) + C.PlainTextEditb1a9c9_DestroyPlainTextEditDefault(ptr.Pointer()) + ptr.SetPointer(nil) + } +} + +//export callbackPlainTextEditb1a9c9_AppendHtml +func callbackPlainTextEditb1a9c9_AppendHtml(ptr unsafe.Pointer, html C.struct_Moc_PackedString) { + if signal := qt.GetSignal(ptr, "appendHtml"); signal != nil { + (*(*func(string))(signal))(cGoUnpackString(html)) + } else { + NewPlainTextEditFromPointer(ptr).AppendHtmlDefault(cGoUnpackString(html)) + } +} + +func (ptr *PlainTextEdit) AppendHtmlDefault(html string) { + if ptr.Pointer() != nil { + var htmlC *C.char + if html != "" { + htmlC = C.CString(html) + defer C.free(unsafe.Pointer(htmlC)) + } + C.PlainTextEditb1a9c9_AppendHtmlDefault(ptr.Pointer(), C.struct_Moc_PackedString{data: htmlC, len: C.longlong(len(html))}) + } +} + +//export callbackPlainTextEditb1a9c9_AppendPlainText +func callbackPlainTextEditb1a9c9_AppendPlainText(ptr unsafe.Pointer, text C.struct_Moc_PackedString) { + if signal := qt.GetSignal(ptr, "appendPlainText"); signal != nil { + (*(*func(string))(signal))(cGoUnpackString(text)) + } else { + NewPlainTextEditFromPointer(ptr).AppendPlainTextDefault(cGoUnpackString(text)) + } +} + +func (ptr *PlainTextEdit) AppendPlainTextDefault(text string) { + if ptr.Pointer() != nil { + var textC *C.char + if text != "" { + textC = C.CString(text) + defer C.free(unsafe.Pointer(textC)) + } + C.PlainTextEditb1a9c9_AppendPlainTextDefault(ptr.Pointer(), C.struct_Moc_PackedString{data: textC, len: C.longlong(len(text))}) + } +} + +//export callbackPlainTextEditb1a9c9_BlockCountChanged +func callbackPlainTextEditb1a9c9_BlockCountChanged(ptr unsafe.Pointer, newBlockCount C.int) { + if signal := qt.GetSignal(ptr, "blockCountChanged"); signal != nil { + (*(*func(int))(signal))(int(int32(newBlockCount))) + } + +} + +//export callbackPlainTextEditb1a9c9_CanInsertFromMimeData +func callbackPlainTextEditb1a9c9_CanInsertFromMimeData(ptr unsafe.Pointer, source unsafe.Pointer) C.char { + if signal := qt.GetSignal(ptr, "canInsertFromMimeData"); signal != nil { + return C.char(int8(qt.GoBoolToInt((*(*func(*std_core.QMimeData) bool)(signal))(std_core.NewQMimeDataFromPointer(source))))) + } + + return C.char(int8(qt.GoBoolToInt(NewPlainTextEditFromPointer(ptr).CanInsertFromMimeDataDefault(std_core.NewQMimeDataFromPointer(source))))) +} + +func (ptr *PlainTextEdit) CanInsertFromMimeDataDefault(source std_core.QMimeData_ITF) bool { + if ptr.Pointer() != nil { + return int8(C.PlainTextEditb1a9c9_CanInsertFromMimeDataDefault(ptr.Pointer(), std_core.PointerFromQMimeData(source))) != 0 + } + return false +} + +//export callbackPlainTextEditb1a9c9_CenterCursor +func callbackPlainTextEditb1a9c9_CenterCursor(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "centerCursor"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).CenterCursorDefault() + } +} + +func (ptr *PlainTextEdit) CenterCursorDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_CenterCursorDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_ChangeEvent +func callbackPlainTextEditb1a9c9_ChangeEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "changeEvent"); signal != nil { + (*(*func(*std_core.QEvent))(signal))(std_core.NewQEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).ChangeEventDefault(std_core.NewQEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) ChangeEventDefault(e std_core.QEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ChangeEventDefault(ptr.Pointer(), std_core.PointerFromQEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_Clear +func callbackPlainTextEditb1a9c9_Clear(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "clear"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).ClearDefault() + } +} + +func (ptr *PlainTextEdit) ClearDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ClearDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_ContextMenuEvent +func callbackPlainTextEditb1a9c9_ContextMenuEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "contextMenuEvent"); signal != nil { + (*(*func(*std_gui.QContextMenuEvent))(signal))(std_gui.NewQContextMenuEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).ContextMenuEventDefault(std_gui.NewQContextMenuEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) ContextMenuEventDefault(event std_gui.QContextMenuEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ContextMenuEventDefault(ptr.Pointer(), std_gui.PointerFromQContextMenuEvent(event)) + } +} + +//export callbackPlainTextEditb1a9c9_Copy +func callbackPlainTextEditb1a9c9_Copy(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "copy"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).CopyDefault() + } +} + +func (ptr *PlainTextEdit) CopyDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_CopyDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_CopyAvailable +func callbackPlainTextEditb1a9c9_CopyAvailable(ptr unsafe.Pointer, yes C.char) { + if signal := qt.GetSignal(ptr, "copyAvailable"); signal != nil { + (*(*func(bool))(signal))(int8(yes) != 0) + } + +} + +//export callbackPlainTextEditb1a9c9_CreateMimeDataFromSelection +func callbackPlainTextEditb1a9c9_CreateMimeDataFromSelection(ptr unsafe.Pointer) unsafe.Pointer { + if signal := qt.GetSignal(ptr, "createMimeDataFromSelection"); signal != nil { + return std_core.PointerFromQMimeData((*(*func() *std_core.QMimeData)(signal))()) + } + + return std_core.PointerFromQMimeData(NewPlainTextEditFromPointer(ptr).CreateMimeDataFromSelectionDefault()) +} + +func (ptr *PlainTextEdit) CreateMimeDataFromSelectionDefault() *std_core.QMimeData { + if ptr.Pointer() != nil { + tmpValue := std_core.NewQMimeDataFromPointer(C.PlainTextEditb1a9c9_CreateMimeDataFromSelectionDefault(ptr.Pointer())) + if !qt.ExistsSignal(tmpValue.Pointer(), "destroyed") { + tmpValue.ConnectDestroyed(func(*std_core.QObject) { tmpValue.SetPointer(nil) }) + } + return tmpValue + } + return nil +} + +//export callbackPlainTextEditb1a9c9_CursorPositionChanged +func callbackPlainTextEditb1a9c9_CursorPositionChanged(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "cursorPositionChanged"); signal != nil { + (*(*func())(signal))() + } + +} + +//export callbackPlainTextEditb1a9c9_Cut +func callbackPlainTextEditb1a9c9_Cut(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "cut"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).CutDefault() + } +} + +func (ptr *PlainTextEdit) CutDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_CutDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_DragEnterEvent +func callbackPlainTextEditb1a9c9_DragEnterEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "dragEnterEvent"); signal != nil { + (*(*func(*std_gui.QDragEnterEvent))(signal))(std_gui.NewQDragEnterEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).DragEnterEventDefault(std_gui.NewQDragEnterEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) DragEnterEventDefault(e std_gui.QDragEnterEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_DragEnterEventDefault(ptr.Pointer(), std_gui.PointerFromQDragEnterEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_DragLeaveEvent +func callbackPlainTextEditb1a9c9_DragLeaveEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "dragLeaveEvent"); signal != nil { + (*(*func(*std_gui.QDragLeaveEvent))(signal))(std_gui.NewQDragLeaveEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).DragLeaveEventDefault(std_gui.NewQDragLeaveEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) DragLeaveEventDefault(e std_gui.QDragLeaveEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_DragLeaveEventDefault(ptr.Pointer(), std_gui.PointerFromQDragLeaveEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_DragMoveEvent +func callbackPlainTextEditb1a9c9_DragMoveEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "dragMoveEvent"); signal != nil { + (*(*func(*std_gui.QDragMoveEvent))(signal))(std_gui.NewQDragMoveEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).DragMoveEventDefault(std_gui.NewQDragMoveEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) DragMoveEventDefault(e std_gui.QDragMoveEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_DragMoveEventDefault(ptr.Pointer(), std_gui.PointerFromQDragMoveEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_DropEvent +func callbackPlainTextEditb1a9c9_DropEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "dropEvent"); signal != nil { + (*(*func(*std_gui.QDropEvent))(signal))(std_gui.NewQDropEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).DropEventDefault(std_gui.NewQDropEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) DropEventDefault(e std_gui.QDropEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_DropEventDefault(ptr.Pointer(), std_gui.PointerFromQDropEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_FocusInEvent +func callbackPlainTextEditb1a9c9_FocusInEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "focusInEvent"); signal != nil { + (*(*func(*std_gui.QFocusEvent))(signal))(std_gui.NewQFocusEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).FocusInEventDefault(std_gui.NewQFocusEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) FocusInEventDefault(e std_gui.QFocusEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_FocusInEventDefault(ptr.Pointer(), std_gui.PointerFromQFocusEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_FocusNextPrevChild +func callbackPlainTextEditb1a9c9_FocusNextPrevChild(ptr unsafe.Pointer, next C.char) C.char { + if signal := qt.GetSignal(ptr, "focusNextPrevChild"); signal != nil { + return C.char(int8(qt.GoBoolToInt((*(*func(bool) bool)(signal))(int8(next) != 0)))) + } + + return C.char(int8(qt.GoBoolToInt(NewPlainTextEditFromPointer(ptr).FocusNextPrevChildDefault(int8(next) != 0)))) +} + +func (ptr *PlainTextEdit) FocusNextPrevChildDefault(next bool) bool { + if ptr.Pointer() != nil { + return int8(C.PlainTextEditb1a9c9_FocusNextPrevChildDefault(ptr.Pointer(), C.char(int8(qt.GoBoolToInt(next))))) != 0 + } + return false +} + +//export callbackPlainTextEditb1a9c9_FocusOutEvent +func callbackPlainTextEditb1a9c9_FocusOutEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "focusOutEvent"); signal != nil { + (*(*func(*std_gui.QFocusEvent))(signal))(std_gui.NewQFocusEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).FocusOutEventDefault(std_gui.NewQFocusEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) FocusOutEventDefault(e std_gui.QFocusEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_FocusOutEventDefault(ptr.Pointer(), std_gui.PointerFromQFocusEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_InputMethodEvent +func callbackPlainTextEditb1a9c9_InputMethodEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "inputMethodEvent"); signal != nil { + (*(*func(*std_gui.QInputMethodEvent))(signal))(std_gui.NewQInputMethodEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).InputMethodEventDefault(std_gui.NewQInputMethodEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) InputMethodEventDefault(e std_gui.QInputMethodEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_InputMethodEventDefault(ptr.Pointer(), std_gui.PointerFromQInputMethodEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_InputMethodQuery +func callbackPlainTextEditb1a9c9_InputMethodQuery(ptr unsafe.Pointer, property C.longlong) unsafe.Pointer { + if signal := qt.GetSignal(ptr, "inputMethodQuery"); signal != nil { + return std_core.PointerFromQVariant((*(*func(std_core.Qt__InputMethodQuery) *std_core.QVariant)(signal))(std_core.Qt__InputMethodQuery(property))) + } + + return std_core.PointerFromQVariant(NewPlainTextEditFromPointer(ptr).InputMethodQueryDefault(std_core.Qt__InputMethodQuery(property))) +} + +func (ptr *PlainTextEdit) InputMethodQueryDefault(property std_core.Qt__InputMethodQuery) *std_core.QVariant { + if ptr.Pointer() != nil { + tmpValue := std_core.NewQVariantFromPointer(C.PlainTextEditb1a9c9_InputMethodQueryDefault(ptr.Pointer(), C.longlong(property))) + qt.SetFinalizer(tmpValue, (*std_core.QVariant).DestroyQVariant) + return tmpValue + } + return nil +} + +//export callbackPlainTextEditb1a9c9_InsertFromMimeData +func callbackPlainTextEditb1a9c9_InsertFromMimeData(ptr unsafe.Pointer, source unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "insertFromMimeData"); signal != nil { + (*(*func(*std_core.QMimeData))(signal))(std_core.NewQMimeDataFromPointer(source)) + } else { + NewPlainTextEditFromPointer(ptr).InsertFromMimeDataDefault(std_core.NewQMimeDataFromPointer(source)) + } +} + +func (ptr *PlainTextEdit) InsertFromMimeDataDefault(source std_core.QMimeData_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_InsertFromMimeDataDefault(ptr.Pointer(), std_core.PointerFromQMimeData(source)) + } +} + +//export callbackPlainTextEditb1a9c9_InsertPlainText +func callbackPlainTextEditb1a9c9_InsertPlainText(ptr unsafe.Pointer, text C.struct_Moc_PackedString) { + if signal := qt.GetSignal(ptr, "insertPlainText"); signal != nil { + (*(*func(string))(signal))(cGoUnpackString(text)) + } else { + NewPlainTextEditFromPointer(ptr).InsertPlainTextDefault(cGoUnpackString(text)) + } +} + +func (ptr *PlainTextEdit) InsertPlainTextDefault(text string) { + if ptr.Pointer() != nil { + var textC *C.char + if text != "" { + textC = C.CString(text) + defer C.free(unsafe.Pointer(textC)) + } + C.PlainTextEditb1a9c9_InsertPlainTextDefault(ptr.Pointer(), C.struct_Moc_PackedString{data: textC, len: C.longlong(len(text))}) + } +} + +//export callbackPlainTextEditb1a9c9_KeyPressEvent +func callbackPlainTextEditb1a9c9_KeyPressEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "keyPressEvent"); signal != nil { + (*(*func(*std_gui.QKeyEvent))(signal))(std_gui.NewQKeyEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).KeyPressEventDefault(std_gui.NewQKeyEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) KeyPressEventDefault(e std_gui.QKeyEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_KeyPressEventDefault(ptr.Pointer(), std_gui.PointerFromQKeyEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_KeyReleaseEvent +func callbackPlainTextEditb1a9c9_KeyReleaseEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "keyReleaseEvent"); signal != nil { + (*(*func(*std_gui.QKeyEvent))(signal))(std_gui.NewQKeyEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).KeyReleaseEventDefault(std_gui.NewQKeyEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) KeyReleaseEventDefault(e std_gui.QKeyEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_KeyReleaseEventDefault(ptr.Pointer(), std_gui.PointerFromQKeyEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_LoadResource +func callbackPlainTextEditb1a9c9_LoadResource(ptr unsafe.Pointer, ty C.int, name unsafe.Pointer) unsafe.Pointer { + if signal := qt.GetSignal(ptr, "loadResource"); signal != nil { + return std_core.PointerFromQVariant((*(*func(int, *std_core.QUrl) *std_core.QVariant)(signal))(int(int32(ty)), std_core.NewQUrlFromPointer(name))) + } + + return std_core.PointerFromQVariant(NewPlainTextEditFromPointer(ptr).LoadResourceDefault(int(int32(ty)), std_core.NewQUrlFromPointer(name))) +} + +func (ptr *PlainTextEdit) LoadResourceDefault(ty int, name std_core.QUrl_ITF) *std_core.QVariant { + if ptr.Pointer() != nil { + tmpValue := std_core.NewQVariantFromPointer(C.PlainTextEditb1a9c9_LoadResourceDefault(ptr.Pointer(), C.int(int32(ty)), std_core.PointerFromQUrl(name))) + qt.SetFinalizer(tmpValue, (*std_core.QVariant).DestroyQVariant) + return tmpValue + } + return nil +} + +//export callbackPlainTextEditb1a9c9_ModificationChanged +func callbackPlainTextEditb1a9c9_ModificationChanged(ptr unsafe.Pointer, changed C.char) { + if signal := qt.GetSignal(ptr, "modificationChanged"); signal != nil { + (*(*func(bool))(signal))(int8(changed) != 0) + } + +} + +//export callbackPlainTextEditb1a9c9_MouseDoubleClickEvent +func callbackPlainTextEditb1a9c9_MouseDoubleClickEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "mouseDoubleClickEvent"); signal != nil { + (*(*func(*std_gui.QMouseEvent))(signal))(std_gui.NewQMouseEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).MouseDoubleClickEventDefault(std_gui.NewQMouseEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) MouseDoubleClickEventDefault(e std_gui.QMouseEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_MouseDoubleClickEventDefault(ptr.Pointer(), std_gui.PointerFromQMouseEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_MouseMoveEvent +func callbackPlainTextEditb1a9c9_MouseMoveEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "mouseMoveEvent"); signal != nil { + (*(*func(*std_gui.QMouseEvent))(signal))(std_gui.NewQMouseEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).MouseMoveEventDefault(std_gui.NewQMouseEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) MouseMoveEventDefault(e std_gui.QMouseEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_MouseMoveEventDefault(ptr.Pointer(), std_gui.PointerFromQMouseEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_MousePressEvent +func callbackPlainTextEditb1a9c9_MousePressEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "mousePressEvent"); signal != nil { + (*(*func(*std_gui.QMouseEvent))(signal))(std_gui.NewQMouseEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).MousePressEventDefault(std_gui.NewQMouseEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) MousePressEventDefault(e std_gui.QMouseEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_MousePressEventDefault(ptr.Pointer(), std_gui.PointerFromQMouseEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_MouseReleaseEvent +func callbackPlainTextEditb1a9c9_MouseReleaseEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "mouseReleaseEvent"); signal != nil { + (*(*func(*std_gui.QMouseEvent))(signal))(std_gui.NewQMouseEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).MouseReleaseEventDefault(std_gui.NewQMouseEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) MouseReleaseEventDefault(e std_gui.QMouseEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_MouseReleaseEventDefault(ptr.Pointer(), std_gui.PointerFromQMouseEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_PaintEvent +func callbackPlainTextEditb1a9c9_PaintEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "paintEvent"); signal != nil { + (*(*func(*std_gui.QPaintEvent))(signal))(std_gui.NewQPaintEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).PaintEventDefault(std_gui.NewQPaintEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) PaintEventDefault(e std_gui.QPaintEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_PaintEventDefault(ptr.Pointer(), std_gui.PointerFromQPaintEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_Paste +func callbackPlainTextEditb1a9c9_Paste(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "paste"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).PasteDefault() + } +} + +func (ptr *PlainTextEdit) PasteDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_PasteDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_Redo +func callbackPlainTextEditb1a9c9_Redo(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "redo"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).RedoDefault() + } +} + +func (ptr *PlainTextEdit) RedoDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_RedoDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_RedoAvailable +func callbackPlainTextEditb1a9c9_RedoAvailable(ptr unsafe.Pointer, available C.char) { + if signal := qt.GetSignal(ptr, "redoAvailable"); signal != nil { + (*(*func(bool))(signal))(int8(available) != 0) + } + +} + +//export callbackPlainTextEditb1a9c9_ResizeEvent +func callbackPlainTextEditb1a9c9_ResizeEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "resizeEvent"); signal != nil { + (*(*func(*std_gui.QResizeEvent))(signal))(std_gui.NewQResizeEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).ResizeEventDefault(std_gui.NewQResizeEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) ResizeEventDefault(e std_gui.QResizeEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ResizeEventDefault(ptr.Pointer(), std_gui.PointerFromQResizeEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_ScrollContentsBy +func callbackPlainTextEditb1a9c9_ScrollContentsBy(ptr unsafe.Pointer, dx C.int, dy C.int) { + if signal := qt.GetSignal(ptr, "scrollContentsBy"); signal != nil { + (*(*func(int, int))(signal))(int(int32(dx)), int(int32(dy))) + } else { + NewPlainTextEditFromPointer(ptr).ScrollContentsByDefault(int(int32(dx)), int(int32(dy))) + } +} + +func (ptr *PlainTextEdit) ScrollContentsByDefault(dx int, dy int) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ScrollContentsByDefault(ptr.Pointer(), C.int(int32(dx)), C.int(int32(dy))) + } +} + +//export callbackPlainTextEditb1a9c9_SelectAll +func callbackPlainTextEditb1a9c9_SelectAll(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "selectAll"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).SelectAllDefault() + } +} + +func (ptr *PlainTextEdit) SelectAllDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_SelectAllDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_SelectionChanged +func callbackPlainTextEditb1a9c9_SelectionChanged(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "selectionChanged"); signal != nil { + (*(*func())(signal))() + } + +} + +//export callbackPlainTextEditb1a9c9_SetPlainText +func callbackPlainTextEditb1a9c9_SetPlainText(ptr unsafe.Pointer, text C.struct_Moc_PackedString) { + if signal := qt.GetSignal(ptr, "setPlainText"); signal != nil { + (*(*func(string))(signal))(cGoUnpackString(text)) + } else { + NewPlainTextEditFromPointer(ptr).SetPlainTextDefault(cGoUnpackString(text)) + } +} + +func (ptr *PlainTextEdit) SetPlainTextDefault(text string) { + if ptr.Pointer() != nil { + var textC *C.char + if text != "" { + textC = C.CString(text) + defer C.free(unsafe.Pointer(textC)) + } + C.PlainTextEditb1a9c9_SetPlainTextDefault(ptr.Pointer(), C.struct_Moc_PackedString{data: textC, len: C.longlong(len(text))}) + } +} + +//export callbackPlainTextEditb1a9c9_ShowEvent +func callbackPlainTextEditb1a9c9_ShowEvent(ptr unsafe.Pointer, vqs unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "showEvent"); signal != nil { + (*(*func(*std_gui.QShowEvent))(signal))(std_gui.NewQShowEventFromPointer(vqs)) + } else { + NewPlainTextEditFromPointer(ptr).ShowEventDefault(std_gui.NewQShowEventFromPointer(vqs)) + } +} + +func (ptr *PlainTextEdit) ShowEventDefault(vqs std_gui.QShowEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ShowEventDefault(ptr.Pointer(), std_gui.PointerFromQShowEvent(vqs)) + } +} + +//export callbackPlainTextEditb1a9c9_TextChanged +func callbackPlainTextEditb1a9c9_TextChanged(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "textChanged"); signal != nil { + (*(*func())(signal))() + } + +} + +//export callbackPlainTextEditb1a9c9_Undo +func callbackPlainTextEditb1a9c9_Undo(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "undo"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).UndoDefault() + } +} + +func (ptr *PlainTextEdit) UndoDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_UndoDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_UndoAvailable +func callbackPlainTextEditb1a9c9_UndoAvailable(ptr unsafe.Pointer, available C.char) { + if signal := qt.GetSignal(ptr, "undoAvailable"); signal != nil { + (*(*func(bool))(signal))(int8(available) != 0) + } + +} + +//export callbackPlainTextEditb1a9c9_UpdateRequest +func callbackPlainTextEditb1a9c9_UpdateRequest(ptr unsafe.Pointer, rect unsafe.Pointer, dy C.int) { + if signal := qt.GetSignal(ptr, "updateRequest"); signal != nil { + (*(*func(*std_core.QRect, int))(signal))(std_core.NewQRectFromPointer(rect), int(int32(dy))) + } + +} + +//export callbackPlainTextEditb1a9c9_WheelEvent +func callbackPlainTextEditb1a9c9_WheelEvent(ptr unsafe.Pointer, e unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "wheelEvent"); signal != nil { + (*(*func(*std_gui.QWheelEvent))(signal))(std_gui.NewQWheelEventFromPointer(e)) + } else { + NewPlainTextEditFromPointer(ptr).WheelEventDefault(std_gui.NewQWheelEventFromPointer(e)) + } +} + +func (ptr *PlainTextEdit) WheelEventDefault(e std_gui.QWheelEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_WheelEventDefault(ptr.Pointer(), std_gui.PointerFromQWheelEvent(e)) + } +} + +//export callbackPlainTextEditb1a9c9_ZoomIn +func callbackPlainTextEditb1a9c9_ZoomIn(ptr unsafe.Pointer, ran C.int) { + if signal := qt.GetSignal(ptr, "zoomIn"); signal != nil { + (*(*func(int))(signal))(int(int32(ran))) + } else { + NewPlainTextEditFromPointer(ptr).ZoomInDefault(int(int32(ran))) + } +} + +func (ptr *PlainTextEdit) ZoomInDefault(ran int) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ZoomInDefault(ptr.Pointer(), C.int(int32(ran))) + } +} + +//export callbackPlainTextEditb1a9c9_ZoomOut +func callbackPlainTextEditb1a9c9_ZoomOut(ptr unsafe.Pointer, ran C.int) { + if signal := qt.GetSignal(ptr, "zoomOut"); signal != nil { + (*(*func(int))(signal))(int(int32(ran))) + } else { + NewPlainTextEditFromPointer(ptr).ZoomOutDefault(int(int32(ran))) + } +} + +func (ptr *PlainTextEdit) ZoomOutDefault(ran int) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ZoomOutDefault(ptr.Pointer(), C.int(int32(ran))) + } +} + +//export callbackPlainTextEditb1a9c9_Event +func callbackPlainTextEditb1a9c9_Event(ptr unsafe.Pointer, event unsafe.Pointer) C.char { + if signal := qt.GetSignal(ptr, "event"); signal != nil { + return C.char(int8(qt.GoBoolToInt((*(*func(*std_core.QEvent) bool)(signal))(std_core.NewQEventFromPointer(event))))) + } + + return C.char(int8(qt.GoBoolToInt(NewPlainTextEditFromPointer(ptr).EventDefault(std_core.NewQEventFromPointer(event))))) +} + +func (ptr *PlainTextEdit) EventDefault(event std_core.QEvent_ITF) bool { + if ptr.Pointer() != nil { + return int8(C.PlainTextEditb1a9c9_EventDefault(ptr.Pointer(), std_core.PointerFromQEvent(event))) != 0 + } + return false +} + +//export callbackPlainTextEditb1a9c9_MinimumSizeHint +func callbackPlainTextEditb1a9c9_MinimumSizeHint(ptr unsafe.Pointer) unsafe.Pointer { + if signal := qt.GetSignal(ptr, "minimumSizeHint"); signal != nil { + return std_core.PointerFromQSize((*(*func() *std_core.QSize)(signal))()) + } + + return std_core.PointerFromQSize(NewPlainTextEditFromPointer(ptr).MinimumSizeHintDefault()) +} + +func (ptr *PlainTextEdit) MinimumSizeHintDefault() *std_core.QSize { + if ptr.Pointer() != nil { + tmpValue := std_core.NewQSizeFromPointer(C.PlainTextEditb1a9c9_MinimumSizeHintDefault(ptr.Pointer())) + qt.SetFinalizer(tmpValue, (*std_core.QSize).DestroyQSize) + return tmpValue + } + return nil +} + +//export callbackPlainTextEditb1a9c9_SetupViewport +func callbackPlainTextEditb1a9c9_SetupViewport(ptr unsafe.Pointer, viewport unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "setupViewport"); signal != nil { + (*(*func(*std_widgets.QWidget))(signal))(std_widgets.NewQWidgetFromPointer(viewport)) + } else { + NewPlainTextEditFromPointer(ptr).SetupViewportDefault(std_widgets.NewQWidgetFromPointer(viewport)) + } +} + +func (ptr *PlainTextEdit) SetupViewportDefault(viewport std_widgets.QWidget_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_SetupViewportDefault(ptr.Pointer(), std_widgets.PointerFromQWidget(viewport)) + } +} + +//export callbackPlainTextEditb1a9c9_SizeHint +func callbackPlainTextEditb1a9c9_SizeHint(ptr unsafe.Pointer) unsafe.Pointer { + if signal := qt.GetSignal(ptr, "sizeHint"); signal != nil { + return std_core.PointerFromQSize((*(*func() *std_core.QSize)(signal))()) + } + + return std_core.PointerFromQSize(NewPlainTextEditFromPointer(ptr).SizeHintDefault()) +} + +func (ptr *PlainTextEdit) SizeHintDefault() *std_core.QSize { + if ptr.Pointer() != nil { + tmpValue := std_core.NewQSizeFromPointer(C.PlainTextEditb1a9c9_SizeHintDefault(ptr.Pointer())) + qt.SetFinalizer(tmpValue, (*std_core.QSize).DestroyQSize) + return tmpValue + } + return nil +} + +//export callbackPlainTextEditb1a9c9_ViewportEvent +func callbackPlainTextEditb1a9c9_ViewportEvent(ptr unsafe.Pointer, event unsafe.Pointer) C.char { + if signal := qt.GetSignal(ptr, "viewportEvent"); signal != nil { + return C.char(int8(qt.GoBoolToInt((*(*func(*std_core.QEvent) bool)(signal))(std_core.NewQEventFromPointer(event))))) + } + + return C.char(int8(qt.GoBoolToInt(NewPlainTextEditFromPointer(ptr).ViewportEventDefault(std_core.NewQEventFromPointer(event))))) +} + +func (ptr *PlainTextEdit) ViewportEventDefault(event std_core.QEvent_ITF) bool { + if ptr.Pointer() != nil { + return int8(C.PlainTextEditb1a9c9_ViewportEventDefault(ptr.Pointer(), std_core.PointerFromQEvent(event))) != 0 + } + return false +} + +//export callbackPlainTextEditb1a9c9_ViewportSizeHint +func callbackPlainTextEditb1a9c9_ViewportSizeHint(ptr unsafe.Pointer) unsafe.Pointer { + if signal := qt.GetSignal(ptr, "viewportSizeHint"); signal != nil { + return std_core.PointerFromQSize((*(*func() *std_core.QSize)(signal))()) + } + + return std_core.PointerFromQSize(NewPlainTextEditFromPointer(ptr).ViewportSizeHintDefault()) +} + +func (ptr *PlainTextEdit) ViewportSizeHintDefault() *std_core.QSize { + if ptr.Pointer() != nil { + tmpValue := std_core.NewQSizeFromPointer(C.PlainTextEditb1a9c9_ViewportSizeHintDefault(ptr.Pointer())) + qt.SetFinalizer(tmpValue, (*std_core.QSize).DestroyQSize) + return tmpValue + } + return nil +} + +//export callbackPlainTextEditb1a9c9_ActionEvent +func callbackPlainTextEditb1a9c9_ActionEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "actionEvent"); signal != nil { + (*(*func(*std_gui.QActionEvent))(signal))(std_gui.NewQActionEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).ActionEventDefault(std_gui.NewQActionEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) ActionEventDefault(event std_gui.QActionEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ActionEventDefault(ptr.Pointer(), std_gui.PointerFromQActionEvent(event)) + } +} + +//export callbackPlainTextEditb1a9c9_Close +func callbackPlainTextEditb1a9c9_Close(ptr unsafe.Pointer) C.char { + if signal := qt.GetSignal(ptr, "close"); signal != nil { + return C.char(int8(qt.GoBoolToInt((*(*func() bool)(signal))()))) + } + + return C.char(int8(qt.GoBoolToInt(NewPlainTextEditFromPointer(ptr).CloseDefault()))) +} + +func (ptr *PlainTextEdit) CloseDefault() bool { + if ptr.Pointer() != nil { + return int8(C.PlainTextEditb1a9c9_CloseDefault(ptr.Pointer())) != 0 + } + return false +} + +//export callbackPlainTextEditb1a9c9_CloseEvent +func callbackPlainTextEditb1a9c9_CloseEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "closeEvent"); signal != nil { + (*(*func(*std_gui.QCloseEvent))(signal))(std_gui.NewQCloseEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).CloseEventDefault(std_gui.NewQCloseEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) CloseEventDefault(event std_gui.QCloseEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_CloseEventDefault(ptr.Pointer(), std_gui.PointerFromQCloseEvent(event)) + } +} + +//export callbackPlainTextEditb1a9c9_CustomContextMenuRequested +func callbackPlainTextEditb1a9c9_CustomContextMenuRequested(ptr unsafe.Pointer, pos unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "customContextMenuRequested"); signal != nil { + (*(*func(*std_core.QPoint))(signal))(std_core.NewQPointFromPointer(pos)) + } + +} + +//export callbackPlainTextEditb1a9c9_EnterEvent +func callbackPlainTextEditb1a9c9_EnterEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "enterEvent"); signal != nil { + (*(*func(*std_core.QEvent))(signal))(std_core.NewQEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).EnterEventDefault(std_core.NewQEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) EnterEventDefault(event std_core.QEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_EnterEventDefault(ptr.Pointer(), std_core.PointerFromQEvent(event)) + } +} + +//export callbackPlainTextEditb1a9c9_HasHeightForWidth +func callbackPlainTextEditb1a9c9_HasHeightForWidth(ptr unsafe.Pointer) C.char { + if signal := qt.GetSignal(ptr, "hasHeightForWidth"); signal != nil { + return C.char(int8(qt.GoBoolToInt((*(*func() bool)(signal))()))) + } + + return C.char(int8(qt.GoBoolToInt(NewPlainTextEditFromPointer(ptr).HasHeightForWidthDefault()))) +} + +func (ptr *PlainTextEdit) HasHeightForWidthDefault() bool { + if ptr.Pointer() != nil { + return int8(C.PlainTextEditb1a9c9_HasHeightForWidthDefault(ptr.Pointer())) != 0 + } + return false +} + +//export callbackPlainTextEditb1a9c9_HeightForWidth +func callbackPlainTextEditb1a9c9_HeightForWidth(ptr unsafe.Pointer, w C.int) C.int { + if signal := qt.GetSignal(ptr, "heightForWidth"); signal != nil { + return C.int(int32((*(*func(int) int)(signal))(int(int32(w))))) + } + + return C.int(int32(NewPlainTextEditFromPointer(ptr).HeightForWidthDefault(int(int32(w))))) +} + +func (ptr *PlainTextEdit) HeightForWidthDefault(w int) int { + if ptr.Pointer() != nil { + return int(int32(C.PlainTextEditb1a9c9_HeightForWidthDefault(ptr.Pointer(), C.int(int32(w))))) + } + return 0 +} + +//export callbackPlainTextEditb1a9c9_Hide +func callbackPlainTextEditb1a9c9_Hide(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "hide"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).HideDefault() + } +} + +func (ptr *PlainTextEdit) HideDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_HideDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_HideEvent +func callbackPlainTextEditb1a9c9_HideEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "hideEvent"); signal != nil { + (*(*func(*std_gui.QHideEvent))(signal))(std_gui.NewQHideEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).HideEventDefault(std_gui.NewQHideEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) HideEventDefault(event std_gui.QHideEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_HideEventDefault(ptr.Pointer(), std_gui.PointerFromQHideEvent(event)) + } +} + +//export callbackPlainTextEditb1a9c9_InitPainter +func callbackPlainTextEditb1a9c9_InitPainter(ptr unsafe.Pointer, painter unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "initPainter"); signal != nil { + (*(*func(*std_gui.QPainter))(signal))(std_gui.NewQPainterFromPointer(painter)) + } else { + NewPlainTextEditFromPointer(ptr).InitPainterDefault(std_gui.NewQPainterFromPointer(painter)) + } +} + +func (ptr *PlainTextEdit) InitPainterDefault(painter std_gui.QPainter_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_InitPainterDefault(ptr.Pointer(), std_gui.PointerFromQPainter(painter)) + } +} + +//export callbackPlainTextEditb1a9c9_LeaveEvent +func callbackPlainTextEditb1a9c9_LeaveEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "leaveEvent"); signal != nil { + (*(*func(*std_core.QEvent))(signal))(std_core.NewQEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).LeaveEventDefault(std_core.NewQEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) LeaveEventDefault(event std_core.QEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_LeaveEventDefault(ptr.Pointer(), std_core.PointerFromQEvent(event)) + } +} + +//export callbackPlainTextEditb1a9c9_Lower +func callbackPlainTextEditb1a9c9_Lower(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "lower"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).LowerDefault() + } +} + +func (ptr *PlainTextEdit) LowerDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_LowerDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_Metric +func callbackPlainTextEditb1a9c9_Metric(ptr unsafe.Pointer, m C.longlong) C.int { + if signal := qt.GetSignal(ptr, "metric"); signal != nil { + return C.int(int32((*(*func(std_gui.QPaintDevice__PaintDeviceMetric) int)(signal))(std_gui.QPaintDevice__PaintDeviceMetric(m)))) + } + + return C.int(int32(NewPlainTextEditFromPointer(ptr).MetricDefault(std_gui.QPaintDevice__PaintDeviceMetric(m)))) +} + +func (ptr *PlainTextEdit) MetricDefault(m std_gui.QPaintDevice__PaintDeviceMetric) int { + if ptr.Pointer() != nil { + return int(int32(C.PlainTextEditb1a9c9_MetricDefault(ptr.Pointer(), C.longlong(m)))) + } + return 0 +} + +//export callbackPlainTextEditb1a9c9_MoveEvent +func callbackPlainTextEditb1a9c9_MoveEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "moveEvent"); signal != nil { + (*(*func(*std_gui.QMoveEvent))(signal))(std_gui.NewQMoveEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).MoveEventDefault(std_gui.NewQMoveEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) MoveEventDefault(event std_gui.QMoveEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_MoveEventDefault(ptr.Pointer(), std_gui.PointerFromQMoveEvent(event)) + } +} + +//export callbackPlainTextEditb1a9c9_NativeEvent +func callbackPlainTextEditb1a9c9_NativeEvent(ptr unsafe.Pointer, eventType unsafe.Pointer, message unsafe.Pointer, result *C.long) C.char { + var resultR int + if result != nil { + resultR = int(int32(*result)) + defer func() { *result = C.long(int32(resultR)) }() + } + if signal := qt.GetSignal(ptr, "nativeEvent"); signal != nil { + return C.char(int8(qt.GoBoolToInt((*(*func(*std_core.QByteArray, unsafe.Pointer, *int) bool)(signal))(std_core.NewQByteArrayFromPointer(eventType), message, &resultR)))) + } + + return C.char(int8(qt.GoBoolToInt(NewPlainTextEditFromPointer(ptr).NativeEventDefault(std_core.NewQByteArrayFromPointer(eventType), message, &resultR)))) +} + +func (ptr *PlainTextEdit) NativeEventDefault(eventType std_core.QByteArray_ITF, message unsafe.Pointer, result *int) bool { + if ptr.Pointer() != nil { + var resultC C.long + if result != nil { + resultC = C.long(int32(*result)) + defer func() { *result = int(int32(resultC)) }() + } + return int8(C.PlainTextEditb1a9c9_NativeEventDefault(ptr.Pointer(), std_core.PointerFromQByteArray(eventType), message, &resultC)) != 0 + } + return false +} + +//export callbackPlainTextEditb1a9c9_PaintEngine +func callbackPlainTextEditb1a9c9_PaintEngine(ptr unsafe.Pointer) unsafe.Pointer { + if signal := qt.GetSignal(ptr, "paintEngine"); signal != nil { + return std_gui.PointerFromQPaintEngine((*(*func() *std_gui.QPaintEngine)(signal))()) + } + + return std_gui.PointerFromQPaintEngine(NewPlainTextEditFromPointer(ptr).PaintEngineDefault()) +} + +func (ptr *PlainTextEdit) PaintEngineDefault() *std_gui.QPaintEngine { + if ptr.Pointer() != nil { + return std_gui.NewQPaintEngineFromPointer(C.PlainTextEditb1a9c9_PaintEngineDefault(ptr.Pointer())) + } + return nil +} + +//export callbackPlainTextEditb1a9c9_Raise +func callbackPlainTextEditb1a9c9_Raise(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "raise"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).RaiseDefault() + } +} + +func (ptr *PlainTextEdit) RaiseDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_RaiseDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_Repaint +func callbackPlainTextEditb1a9c9_Repaint(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "repaint"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).RepaintDefault() + } +} + +func (ptr *PlainTextEdit) RepaintDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_RepaintDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_SetDisabled +func callbackPlainTextEditb1a9c9_SetDisabled(ptr unsafe.Pointer, disable C.char) { + if signal := qt.GetSignal(ptr, "setDisabled"); signal != nil { + (*(*func(bool))(signal))(int8(disable) != 0) + } else { + NewPlainTextEditFromPointer(ptr).SetDisabledDefault(int8(disable) != 0) + } +} + +func (ptr *PlainTextEdit) SetDisabledDefault(disable bool) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_SetDisabledDefault(ptr.Pointer(), C.char(int8(qt.GoBoolToInt(disable)))) + } +} + +//export callbackPlainTextEditb1a9c9_SetEnabled +func callbackPlainTextEditb1a9c9_SetEnabled(ptr unsafe.Pointer, vbo C.char) { + if signal := qt.GetSignal(ptr, "setEnabled"); signal != nil { + (*(*func(bool))(signal))(int8(vbo) != 0) + } else { + NewPlainTextEditFromPointer(ptr).SetEnabledDefault(int8(vbo) != 0) + } +} + +func (ptr *PlainTextEdit) SetEnabledDefault(vbo bool) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_SetEnabledDefault(ptr.Pointer(), C.char(int8(qt.GoBoolToInt(vbo)))) + } +} + +//export callbackPlainTextEditb1a9c9_SetFocus2 +func callbackPlainTextEditb1a9c9_SetFocus2(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "setFocus2"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).SetFocus2Default() + } +} + +func (ptr *PlainTextEdit) SetFocus2Default() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_SetFocus2Default(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_SetHidden +func callbackPlainTextEditb1a9c9_SetHidden(ptr unsafe.Pointer, hidden C.char) { + if signal := qt.GetSignal(ptr, "setHidden"); signal != nil { + (*(*func(bool))(signal))(int8(hidden) != 0) + } else { + NewPlainTextEditFromPointer(ptr).SetHiddenDefault(int8(hidden) != 0) + } +} + +func (ptr *PlainTextEdit) SetHiddenDefault(hidden bool) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_SetHiddenDefault(ptr.Pointer(), C.char(int8(qt.GoBoolToInt(hidden)))) + } +} + +//export callbackPlainTextEditb1a9c9_SetStyleSheet +func callbackPlainTextEditb1a9c9_SetStyleSheet(ptr unsafe.Pointer, styleSheet C.struct_Moc_PackedString) { + if signal := qt.GetSignal(ptr, "setStyleSheet"); signal != nil { + (*(*func(string))(signal))(cGoUnpackString(styleSheet)) + } else { + NewPlainTextEditFromPointer(ptr).SetStyleSheetDefault(cGoUnpackString(styleSheet)) + } +} + +func (ptr *PlainTextEdit) SetStyleSheetDefault(styleSheet string) { + if ptr.Pointer() != nil { + var styleSheetC *C.char + if styleSheet != "" { + styleSheetC = C.CString(styleSheet) + defer C.free(unsafe.Pointer(styleSheetC)) + } + C.PlainTextEditb1a9c9_SetStyleSheetDefault(ptr.Pointer(), C.struct_Moc_PackedString{data: styleSheetC, len: C.longlong(len(styleSheet))}) + } +} + +//export callbackPlainTextEditb1a9c9_SetVisible +func callbackPlainTextEditb1a9c9_SetVisible(ptr unsafe.Pointer, visible C.char) { + if signal := qt.GetSignal(ptr, "setVisible"); signal != nil { + (*(*func(bool))(signal))(int8(visible) != 0) + } else { + NewPlainTextEditFromPointer(ptr).SetVisibleDefault(int8(visible) != 0) + } +} + +func (ptr *PlainTextEdit) SetVisibleDefault(visible bool) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_SetVisibleDefault(ptr.Pointer(), C.char(int8(qt.GoBoolToInt(visible)))) + } +} + +//export callbackPlainTextEditb1a9c9_SetWindowModified +func callbackPlainTextEditb1a9c9_SetWindowModified(ptr unsafe.Pointer, vbo C.char) { + if signal := qt.GetSignal(ptr, "setWindowModified"); signal != nil { + (*(*func(bool))(signal))(int8(vbo) != 0) + } else { + NewPlainTextEditFromPointer(ptr).SetWindowModifiedDefault(int8(vbo) != 0) + } +} + +func (ptr *PlainTextEdit) SetWindowModifiedDefault(vbo bool) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_SetWindowModifiedDefault(ptr.Pointer(), C.char(int8(qt.GoBoolToInt(vbo)))) + } +} + +//export callbackPlainTextEditb1a9c9_SetWindowTitle +func callbackPlainTextEditb1a9c9_SetWindowTitle(ptr unsafe.Pointer, vqs C.struct_Moc_PackedString) { + if signal := qt.GetSignal(ptr, "setWindowTitle"); signal != nil { + (*(*func(string))(signal))(cGoUnpackString(vqs)) + } else { + NewPlainTextEditFromPointer(ptr).SetWindowTitleDefault(cGoUnpackString(vqs)) + } +} + +func (ptr *PlainTextEdit) SetWindowTitleDefault(vqs string) { + if ptr.Pointer() != nil { + var vqsC *C.char + if vqs != "" { + vqsC = C.CString(vqs) + defer C.free(unsafe.Pointer(vqsC)) + } + C.PlainTextEditb1a9c9_SetWindowTitleDefault(ptr.Pointer(), C.struct_Moc_PackedString{data: vqsC, len: C.longlong(len(vqs))}) + } +} + +//export callbackPlainTextEditb1a9c9_Show +func callbackPlainTextEditb1a9c9_Show(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "show"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).ShowDefault() + } +} + +func (ptr *PlainTextEdit) ShowDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ShowDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_ShowFullScreen +func callbackPlainTextEditb1a9c9_ShowFullScreen(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "showFullScreen"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).ShowFullScreenDefault() + } +} + +func (ptr *PlainTextEdit) ShowFullScreenDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ShowFullScreenDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_ShowMaximized +func callbackPlainTextEditb1a9c9_ShowMaximized(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "showMaximized"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).ShowMaximizedDefault() + } +} + +func (ptr *PlainTextEdit) ShowMaximizedDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ShowMaximizedDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_ShowMinimized +func callbackPlainTextEditb1a9c9_ShowMinimized(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "showMinimized"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).ShowMinimizedDefault() + } +} + +func (ptr *PlainTextEdit) ShowMinimizedDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ShowMinimizedDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_ShowNormal +func callbackPlainTextEditb1a9c9_ShowNormal(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "showNormal"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).ShowNormalDefault() + } +} + +func (ptr *PlainTextEdit) ShowNormalDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ShowNormalDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_TabletEvent +func callbackPlainTextEditb1a9c9_TabletEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "tabletEvent"); signal != nil { + (*(*func(*std_gui.QTabletEvent))(signal))(std_gui.NewQTabletEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).TabletEventDefault(std_gui.NewQTabletEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) TabletEventDefault(event std_gui.QTabletEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_TabletEventDefault(ptr.Pointer(), std_gui.PointerFromQTabletEvent(event)) + } +} + +//export callbackPlainTextEditb1a9c9_Update +func callbackPlainTextEditb1a9c9_Update(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "update"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).UpdateDefault() + } +} + +func (ptr *PlainTextEdit) UpdateDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_UpdateDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_UpdateMicroFocus +func callbackPlainTextEditb1a9c9_UpdateMicroFocus(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "updateMicroFocus"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).UpdateMicroFocusDefault() + } +} + +func (ptr *PlainTextEdit) UpdateMicroFocusDefault() { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_UpdateMicroFocusDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_WindowIconChanged +func callbackPlainTextEditb1a9c9_WindowIconChanged(ptr unsafe.Pointer, icon unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "windowIconChanged"); signal != nil { + (*(*func(*std_gui.QIcon))(signal))(std_gui.NewQIconFromPointer(icon)) + } + +} + +//export callbackPlainTextEditb1a9c9_WindowTitleChanged +func callbackPlainTextEditb1a9c9_WindowTitleChanged(ptr unsafe.Pointer, title C.struct_Moc_PackedString) { + if signal := qt.GetSignal(ptr, "windowTitleChanged"); signal != nil { + (*(*func(string))(signal))(cGoUnpackString(title)) + } + +} + +//export callbackPlainTextEditb1a9c9_ChildEvent +func callbackPlainTextEditb1a9c9_ChildEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "childEvent"); signal != nil { + (*(*func(*std_core.QChildEvent))(signal))(std_core.NewQChildEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).ChildEventDefault(std_core.NewQChildEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) ChildEventDefault(event std_core.QChildEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ChildEventDefault(ptr.Pointer(), std_core.PointerFromQChildEvent(event)) + } +} + +//export callbackPlainTextEditb1a9c9_ConnectNotify +func callbackPlainTextEditb1a9c9_ConnectNotify(ptr unsafe.Pointer, sign unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "connectNotify"); signal != nil { + (*(*func(*std_core.QMetaMethod))(signal))(std_core.NewQMetaMethodFromPointer(sign)) + } else { + NewPlainTextEditFromPointer(ptr).ConnectNotifyDefault(std_core.NewQMetaMethodFromPointer(sign)) + } +} + +func (ptr *PlainTextEdit) ConnectNotifyDefault(sign std_core.QMetaMethod_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_ConnectNotifyDefault(ptr.Pointer(), std_core.PointerFromQMetaMethod(sign)) + } +} + +//export callbackPlainTextEditb1a9c9_CustomEvent +func callbackPlainTextEditb1a9c9_CustomEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "customEvent"); signal != nil { + (*(*func(*std_core.QEvent))(signal))(std_core.NewQEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).CustomEventDefault(std_core.NewQEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) CustomEventDefault(event std_core.QEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_CustomEventDefault(ptr.Pointer(), std_core.PointerFromQEvent(event)) + } +} + +//export callbackPlainTextEditb1a9c9_DeleteLater +func callbackPlainTextEditb1a9c9_DeleteLater(ptr unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "deleteLater"); signal != nil { + (*(*func())(signal))() + } else { + NewPlainTextEditFromPointer(ptr).DeleteLaterDefault() + } +} + +func (ptr *PlainTextEdit) DeleteLaterDefault() { + if ptr.Pointer() != nil { + + qt.SetFinalizer(ptr, nil) + C.PlainTextEditb1a9c9_DeleteLaterDefault(ptr.Pointer()) + } +} + +//export callbackPlainTextEditb1a9c9_Destroyed +func callbackPlainTextEditb1a9c9_Destroyed(ptr unsafe.Pointer, obj unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "destroyed"); signal != nil { + (*(*func(*std_core.QObject))(signal))(std_core.NewQObjectFromPointer(obj)) + } + qt.Unregister(ptr) + +} + +//export callbackPlainTextEditb1a9c9_DisconnectNotify +func callbackPlainTextEditb1a9c9_DisconnectNotify(ptr unsafe.Pointer, sign unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "disconnectNotify"); signal != nil { + (*(*func(*std_core.QMetaMethod))(signal))(std_core.NewQMetaMethodFromPointer(sign)) + } else { + NewPlainTextEditFromPointer(ptr).DisconnectNotifyDefault(std_core.NewQMetaMethodFromPointer(sign)) + } +} + +func (ptr *PlainTextEdit) DisconnectNotifyDefault(sign std_core.QMetaMethod_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_DisconnectNotifyDefault(ptr.Pointer(), std_core.PointerFromQMetaMethod(sign)) + } +} + +//export callbackPlainTextEditb1a9c9_EventFilter +func callbackPlainTextEditb1a9c9_EventFilter(ptr unsafe.Pointer, watched unsafe.Pointer, event unsafe.Pointer) C.char { + if signal := qt.GetSignal(ptr, "eventFilter"); signal != nil { + return C.char(int8(qt.GoBoolToInt((*(*func(*std_core.QObject, *std_core.QEvent) bool)(signal))(std_core.NewQObjectFromPointer(watched), std_core.NewQEventFromPointer(event))))) + } + + return C.char(int8(qt.GoBoolToInt(NewPlainTextEditFromPointer(ptr).EventFilterDefault(std_core.NewQObjectFromPointer(watched), std_core.NewQEventFromPointer(event))))) +} + +func (ptr *PlainTextEdit) EventFilterDefault(watched std_core.QObject_ITF, event std_core.QEvent_ITF) bool { + if ptr.Pointer() != nil { + return int8(C.PlainTextEditb1a9c9_EventFilterDefault(ptr.Pointer(), std_core.PointerFromQObject(watched), std_core.PointerFromQEvent(event))) != 0 + } + return false +} + +//export callbackPlainTextEditb1a9c9_ObjectNameChanged +func callbackPlainTextEditb1a9c9_ObjectNameChanged(ptr unsafe.Pointer, objectName C.struct_Moc_PackedString) { + if signal := qt.GetSignal(ptr, "objectNameChanged"); signal != nil { + (*(*func(string))(signal))(cGoUnpackString(objectName)) + } + +} + +//export callbackPlainTextEditb1a9c9_TimerEvent +func callbackPlainTextEditb1a9c9_TimerEvent(ptr unsafe.Pointer, event unsafe.Pointer) { + if signal := qt.GetSignal(ptr, "timerEvent"); signal != nil { + (*(*func(*std_core.QTimerEvent))(signal))(std_core.NewQTimerEventFromPointer(event)) + } else { + NewPlainTextEditFromPointer(ptr).TimerEventDefault(std_core.NewQTimerEventFromPointer(event)) + } +} + +func (ptr *PlainTextEdit) TimerEventDefault(event std_core.QTimerEvent_ITF) { + if ptr.Pointer() != nil { + C.PlainTextEditb1a9c9_TimerEventDefault(ptr.Pointer(), std_core.PointerFromQTimerEvent(event)) + } +} + +func init() { +} diff --git a/moc.h b/moc.h new file mode 100644 index 0000000..f386a69 --- /dev/null +++ b/moc.h @@ -0,0 +1,143 @@ + + +#pragma once + +#ifndef GO_MOC_b1a9c9_H +#define GO_MOC_b1a9c9_H + +#include + +#ifdef __cplusplus +class PlainTextEditb1a9c9; +void PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaTypes(); +extern "C" { +#endif + +struct Moc_PackedString { char* data; long long len; void* ptr; }; +struct Moc_PackedList { void* data; long long len; }; +void PlainTextEditb1a9c9_AddLine(void* ptr, struct Moc_PackedString v0); +int PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaType(); +int PlainTextEditb1a9c9_PlainTextEditb1a9c9_QRegisterMetaType2(char* typeName); +int PlainTextEditb1a9c9_PlainTextEditb1a9c9_QmlRegisterType(); +int PlainTextEditb1a9c9_PlainTextEditb1a9c9_QmlRegisterType2(char* uri, int versionMajor, int versionMinor, char* qmlName); +void* PlainTextEditb1a9c9___scrollBarWidgets_atList(void* ptr, int i); +void PlainTextEditb1a9c9___scrollBarWidgets_setList(void* ptr, void* i); +void* PlainTextEditb1a9c9___scrollBarWidgets_newList(void* ptr); +void* PlainTextEditb1a9c9___actions_atList(void* ptr, int i); +void PlainTextEditb1a9c9___actions_setList(void* ptr, void* i); +void* PlainTextEditb1a9c9___actions_newList(void* ptr); +void* PlainTextEditb1a9c9___addActions_actions_atList(void* ptr, int i); +void PlainTextEditb1a9c9___addActions_actions_setList(void* ptr, void* i); +void* PlainTextEditb1a9c9___addActions_actions_newList(void* ptr); +void* PlainTextEditb1a9c9___insertActions_actions_atList(void* ptr, int i); +void PlainTextEditb1a9c9___insertActions_actions_setList(void* ptr, void* i); +void* PlainTextEditb1a9c9___insertActions_actions_newList(void* ptr); +void* PlainTextEditb1a9c9___children_atList(void* ptr, int i); +void PlainTextEditb1a9c9___children_setList(void* ptr, void* i); +void* PlainTextEditb1a9c9___children_newList(void* ptr); +void* PlainTextEditb1a9c9___dynamicPropertyNames_atList(void* ptr, int i); +void PlainTextEditb1a9c9___dynamicPropertyNames_setList(void* ptr, void* i); +void* PlainTextEditb1a9c9___dynamicPropertyNames_newList(void* ptr); +void* PlainTextEditb1a9c9___findChildren_atList(void* ptr, int i); +void PlainTextEditb1a9c9___findChildren_setList(void* ptr, void* i); +void* PlainTextEditb1a9c9___findChildren_newList(void* ptr); +void* PlainTextEditb1a9c9___findChildren_atList3(void* ptr, int i); +void PlainTextEditb1a9c9___findChildren_setList3(void* ptr, void* i); +void* PlainTextEditb1a9c9___findChildren_newList3(void* ptr); +void* PlainTextEditb1a9c9_NewPlainTextEdit(void* parent); +void* PlainTextEditb1a9c9_NewPlainTextEdit2(struct Moc_PackedString text, void* parent); +void PlainTextEditb1a9c9_DestroyPlainTextEdit(void* ptr); +void PlainTextEditb1a9c9_DestroyPlainTextEditDefault(void* ptr); +void PlainTextEditb1a9c9_AppendHtmlDefault(void* ptr, struct Moc_PackedString html); +void PlainTextEditb1a9c9_AppendPlainTextDefault(void* ptr, struct Moc_PackedString text); +char PlainTextEditb1a9c9_CanInsertFromMimeDataDefault(void* ptr, void* source); +void PlainTextEditb1a9c9_CenterCursorDefault(void* ptr); +void PlainTextEditb1a9c9_ChangeEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_ClearDefault(void* ptr); +void PlainTextEditb1a9c9_ContextMenuEventDefault(void* ptr, void* event); +void PlainTextEditb1a9c9_CopyDefault(void* ptr); +void* PlainTextEditb1a9c9_CreateMimeDataFromSelectionDefault(void* ptr); +void PlainTextEditb1a9c9_CutDefault(void* ptr); +void PlainTextEditb1a9c9_DragEnterEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_DragLeaveEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_DragMoveEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_DropEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_FocusInEventDefault(void* ptr, void* e); +char PlainTextEditb1a9c9_FocusNextPrevChildDefault(void* ptr, char next); +void PlainTextEditb1a9c9_FocusOutEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_InputMethodEventDefault(void* ptr, void* e); +void* PlainTextEditb1a9c9_InputMethodQueryDefault(void* ptr, long long property); +void PlainTextEditb1a9c9_InsertFromMimeDataDefault(void* ptr, void* source); +void PlainTextEditb1a9c9_InsertPlainTextDefault(void* ptr, struct Moc_PackedString text); +void PlainTextEditb1a9c9_KeyPressEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_KeyReleaseEventDefault(void* ptr, void* e); +void* PlainTextEditb1a9c9_LoadResourceDefault(void* ptr, int ty, void* name); +void PlainTextEditb1a9c9_MouseDoubleClickEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_MouseMoveEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_MousePressEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_MouseReleaseEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_PaintEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_PasteDefault(void* ptr); +void PlainTextEditb1a9c9_RedoDefault(void* ptr); +void PlainTextEditb1a9c9_ResizeEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_ScrollContentsByDefault(void* ptr, int dx, int dy); +void PlainTextEditb1a9c9_SelectAllDefault(void* ptr); +void PlainTextEditb1a9c9_SetPlainTextDefault(void* ptr, struct Moc_PackedString text); +void PlainTextEditb1a9c9_ShowEventDefault(void* ptr, void* vqs); +void PlainTextEditb1a9c9_UndoDefault(void* ptr); +void PlainTextEditb1a9c9_WheelEventDefault(void* ptr, void* e); +void PlainTextEditb1a9c9_ZoomInDefault(void* ptr, int ran); +void PlainTextEditb1a9c9_ZoomOutDefault(void* ptr, int ran); +char PlainTextEditb1a9c9_EventDefault(void* ptr, void* event); +void* PlainTextEditb1a9c9_MinimumSizeHintDefault(void* ptr); +void PlainTextEditb1a9c9_SetupViewportDefault(void* ptr, void* viewport); +void* PlainTextEditb1a9c9_SizeHintDefault(void* ptr); +char PlainTextEditb1a9c9_ViewportEventDefault(void* ptr, void* event); +void* PlainTextEditb1a9c9_ViewportSizeHintDefault(void* ptr); +void PlainTextEditb1a9c9_ActionEventDefault(void* ptr, void* event); +char PlainTextEditb1a9c9_CloseDefault(void* ptr); +void PlainTextEditb1a9c9_CloseEventDefault(void* ptr, void* event); +void PlainTextEditb1a9c9_EnterEventDefault(void* ptr, void* event); +char PlainTextEditb1a9c9_HasHeightForWidthDefault(void* ptr); +int PlainTextEditb1a9c9_HeightForWidthDefault(void* ptr, int w); +void PlainTextEditb1a9c9_HideDefault(void* ptr); +void PlainTextEditb1a9c9_HideEventDefault(void* ptr, void* event); +void PlainTextEditb1a9c9_InitPainterDefault(void* ptr, void* painter); +void PlainTextEditb1a9c9_LeaveEventDefault(void* ptr, void* event); +void PlainTextEditb1a9c9_LowerDefault(void* ptr); +int PlainTextEditb1a9c9_MetricDefault(void* ptr, long long m); +void PlainTextEditb1a9c9_MoveEventDefault(void* ptr, void* event); +char PlainTextEditb1a9c9_NativeEventDefault(void* ptr, void* eventType, void* message, long* result); +void* PlainTextEditb1a9c9_PaintEngineDefault(void* ptr); +void PlainTextEditb1a9c9_RaiseDefault(void* ptr); +void PlainTextEditb1a9c9_RepaintDefault(void* ptr); +void PlainTextEditb1a9c9_SetDisabledDefault(void* ptr, char disable); +void PlainTextEditb1a9c9_SetEnabledDefault(void* ptr, char vbo); +void PlainTextEditb1a9c9_SetFocus2Default(void* ptr); +void PlainTextEditb1a9c9_SetHiddenDefault(void* ptr, char hidden); +void PlainTextEditb1a9c9_SetStyleSheetDefault(void* ptr, struct Moc_PackedString styleSheet); +void PlainTextEditb1a9c9_SetVisibleDefault(void* ptr, char visible); +void PlainTextEditb1a9c9_SetWindowModifiedDefault(void* ptr, char vbo); +void PlainTextEditb1a9c9_SetWindowTitleDefault(void* ptr, struct Moc_PackedString vqs); +void PlainTextEditb1a9c9_ShowDefault(void* ptr); +void PlainTextEditb1a9c9_ShowFullScreenDefault(void* ptr); +void PlainTextEditb1a9c9_ShowMaximizedDefault(void* ptr); +void PlainTextEditb1a9c9_ShowMinimizedDefault(void* ptr); +void PlainTextEditb1a9c9_ShowNormalDefault(void* ptr); +void PlainTextEditb1a9c9_TabletEventDefault(void* ptr, void* event); +void PlainTextEditb1a9c9_UpdateDefault(void* ptr); +void PlainTextEditb1a9c9_UpdateMicroFocusDefault(void* ptr); +void PlainTextEditb1a9c9_ChildEventDefault(void* ptr, void* event); +void PlainTextEditb1a9c9_ConnectNotifyDefault(void* ptr, void* sign); +void PlainTextEditb1a9c9_CustomEventDefault(void* ptr, void* event); +void PlainTextEditb1a9c9_DeleteLaterDefault(void* ptr); +void PlainTextEditb1a9c9_DisconnectNotifyDefault(void* ptr, void* sign); +char PlainTextEditb1a9c9_EventFilterDefault(void* ptr, void* watched, void* event); +; +void PlainTextEditb1a9c9_TimerEventDefault(void* ptr, void* event); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/moc_cgo_darwin_darwin_amd64.go b/moc_cgo_darwin_darwin_amd64.go new file mode 100644 index 0000000..8482250 --- /dev/null +++ b/moc_cgo_darwin_darwin_amd64.go @@ -0,0 +1,14 @@ +// +build !ios + +package main + +/* +#cgo CFLAGS: -pipe -O2 -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.12 -Wall -W -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB +#cgo CXXFLAGS: -pipe -stdlib=libc++ -O2 -std=gnu++11 -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.12 -Wall -W -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB +#cgo CXXFLAGS: -I../../fanaticscripter -I. -I../../therecipe/env_darwin_amd64_513/5.13.0/clang_64/lib/QtWidgets.framework/Headers -I../../therecipe/env_darwin_amd64_513/5.13.0/clang_64/lib/QtGui.framework/Headers -I../../therecipe/env_darwin_amd64_513/5.13.0/clang_64/lib/QtQml.framework/Headers -I../../therecipe/env_darwin_amd64_513/5.13.0/clang_64/lib/QtNetwork.framework/Headers -I../../therecipe/env_darwin_amd64_513/5.13.0/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/AGL.framework/Headers -I../../therecipe/env_darwin_amd64_513/5.13.0/clang_64/mkspecs/macx-clang -F/Users/zmwang/go/src/github.com/therecipe/env_darwin_amd64_513/5.13.0/clang_64/lib +#cgo LDFLAGS: -stdlib=libc++ -headerpad_max_install_names -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.12 -Wl,-rpath,/Users/zmwang/go/src/github.com/therecipe/env_darwin_amd64_513/5.13.0/clang_64/lib +#cgo LDFLAGS: -F/Users/zmwang/go/src/github.com/therecipe/env_darwin_amd64_513/5.13.0/clang_64/lib -framework QtWidgets -framework QtGui -framework QtQml -framework QtNetwork -framework QtCore -framework OpenGL -framework AGL +#cgo CFLAGS: -Wno-unused-parameter -Wno-unused-variable -Wno-return-type +#cgo CXXFLAGS: -Wno-unused-parameter -Wno-unused-variable -Wno-return-type +*/ +import "C" diff --git a/moc_cgo_windows_windows_amd64.go b/moc_cgo_windows_windows_amd64.go new file mode 100644 index 0000000..5db049a --- /dev/null +++ b/moc_cgo_windows_windows_amd64.go @@ -0,0 +1,13 @@ +package main + +/* +#cgo CFLAGS: -fno-keep-inline-dllexport -O2 -Wall -W -Wextra -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_NEEDS_QMAIN -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB +#cgo CXXFLAGS: -fno-keep-inline-dllexport -O2 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_NEEDS_QMAIN -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB +#cgo CXXFLAGS: -I../../Projects -I. -I../../../../Qt/Qt5.13.0/5.13.0/mingw73_64/include -I../../../../Qt/Qt5.13.0/5.13.0/mingw73_64/include/QtWidgets -I../../../../Qt/Qt5.13.0/5.13.0/mingw73_64/include/QtGui -I../../../../Qt/Qt5.13.0/5.13.0/mingw73_64/include/QtANGLE -I../../../../Qt/Qt5.13.0/5.13.0/mingw73_64/include/QtQml -I../../../../Qt/Qt5.13.0/5.13.0/mingw73_64/include/QtNetwork -I../../../../Qt/Qt5.13.0/5.13.0/mingw73_64/include/QtCore -Irelease -I/include -I../../../../Qt/Qt5.13.0/5.13.0/mingw73_64/mkspecs/win32-g++ +#cgo LDFLAGS: -Wl,-subsystem,windows -mthreads -L C:/Qt/Qt5.13.0/5.13.0/mingw73_64/lib +#cgo LDFLAGS: C:/Qt/Qt5.13.0/5.13.0/mingw73_64/lib/libQt5Widgets.a C:/Qt/Qt5.13.0/5.13.0/mingw73_64/lib/libQt5Gui.a C:/Qt/Qt5.13.0/5.13.0/mingw73_64/lib/libQt5Qml.a C:/Qt/Qt5.13.0/5.13.0/mingw73_64/lib/libQt5Network.a C:/Qt/Qt5.13.0/5.13.0/mingw73_64/lib/libQt5Core.a -lmingw32 C:/Qt/Qt5.13.0/5.13.0/mingw73_64/lib/libqtmain.a -LC:/openssl/lib -LC:/Utils/postgresql/pgsql/lib -lshell32 +#cgo LDFLAGS: -Wl,--allow-multiple-definition +#cgo CFLAGS: -Wno-unused-parameter -Wno-unused-variable -Wno-return-type +#cgo CXXFLAGS: -Wno-unused-parameter -Wno-unused-variable -Wno-return-type +*/ +import "C" diff --git a/moc_moc.h b/moc_moc.h new file mode 100644 index 0000000..44be1be --- /dev/null +++ b/moc_moc.h @@ -0,0 +1,118 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'moc.cpp' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.0) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'moc.cpp' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.13.0. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_PlainTextEditb1a9c9_t { + QByteArrayData data[4]; + char stringdata0[32]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_PlainTextEditb1a9c9_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_PlainTextEditb1a9c9_t qt_meta_stringdata_PlainTextEditb1a9c9 = { + { +QT_MOC_LITERAL(0, 0, 19), // "PlainTextEditb1a9c9" +QT_MOC_LITERAL(1, 20, 7), // "addLine" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 2) // "v0" + + }, + "PlainTextEditb1a9c9\0addLine\0\0v0" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_PlainTextEditb1a9c9[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 1, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 1, 19, 2, 0x0a /* Public */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, 3, + + 0 // eod +}; + +void PlainTextEditb1a9c9::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + Q_UNUSED(_t) + switch (_id) { + case 0: _t->addLine((*reinterpret_cast< QString(*)>(_a[1]))); break; + default: ; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject PlainTextEditb1a9c9::staticMetaObject = { { + &QPlainTextEdit::staticMetaObject, + qt_meta_stringdata_PlainTextEditb1a9c9.data, + qt_meta_data_PlainTextEditb1a9c9, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *PlainTextEditb1a9c9::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *PlainTextEditb1a9c9::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_PlainTextEditb1a9c9.stringdata0)) + return static_cast(this); + return QPlainTextEdit::qt_metacast(_clname); +} + +int PlainTextEditb1a9c9::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QPlainTextEdit::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 1) + qt_static_metacall(this, _c, _id, _a); + _id -= 1; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 1) + *reinterpret_cast(_a[0]) = -1; + _id -= 1; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/util/util_unix.go b/util/util_unix.go new file mode 100644 index 0000000..abcc790 --- /dev/null +++ b/util/util_unix.go @@ -0,0 +1,17 @@ +// +build darwin linux + +package util + +import ( + "os/user" + "path/filepath" +) + +// DefaultDownloadsFolder returns the system-specific user downloads folder. +func DefaultDownloadsFolder() string { + whoami, err := user.Current() + if err != nil { + return "." + } + return filepath.Join(whoami.HomeDir, "Downloads") +} diff --git a/util/util_windows.go b/util/util_windows.go new file mode 100644 index 0000000..288905a --- /dev/null +++ b/util/util_windows.go @@ -0,0 +1,21 @@ +package util + +import ( + "os/user" + "path/filepath" + + "golang.org/x/sys/windows" +) + +// DefaultDownloadsFolder returns the system-specific user downloads folder. +func DefaultDownloadsFolder() string { + path, err := windows.KnownFolderPath(windows.FOLDERID_Downloads, 0) + if err == nil { + return path + } + whoami, err := user.Current() + if err != nil { + return "." + } + return filepath.Join(whoami.HomeDir, "Downloads") +}