energy/cef/types_ptr.go

223 lines
8.9 KiB
Go

//----------------------------------------
//
// Copyright © yanghy. All Rights Reserved.
//
// Licensed under Apache License Version 2.0, January 2004
//
// https://www.apache.org/licenses/LICENSE-2.0
//
//----------------------------------------
package cef
import (
. "github.com/energye/energy/v2/consts"
. "github.com/energye/energy/v2/types"
"github.com/energye/golcl/lcl/api"
"unsafe"
)
type iCefCookiePtr struct {
url, name, value, domain, path uintptr //string
secure, httponly, hasExpires uintptr //bool
creation, lastAccess, expires uintptr //float64
count, total, aID uintptr //int32
sameSite uintptr //int32 TCefCookieSameSite
priority uintptr //int32 TCefCookiePriority
aSetImmediately uintptr //bool
aDeleteCookie uintptr //bool
aResult uintptr //bool
}
type tCefRequestContextSettingsPtr struct {
Size uintptr //uint32
CachePath uintptr //TCefString
PersistSessionCookies uintptr //int32
PersistUserPreferences uintptr //int32
AcceptLanguageList uintptr //uint32 Remove CEF 118
CookieableSchemesList uintptr //uint32
CookieableSchemesExcludeDefaults uintptr //int32
}
type tCefBrowserSettingsPtr struct {
Size uintptr //NativeUInt
WindowlessFrameRate uintptr //Integer
StandardFontFamily uintptr //TCefString
FixedFontFamily uintptr //TCefString
SerifFontFamily uintptr //TCefString
SansSerifFontFamily uintptr //TCefString
CursiveFontFamily uintptr //TCefString
FantasyFontFamily uintptr //TCefString
DefaultFontSize uintptr //Integer
DefaultFixedFontSize uintptr //Integer
MinimumFontSize uintptr //Integer
MinimumLogicalFontSize uintptr //Integer
DefaultEncoding uintptr //TCefString
RemoteFonts uintptr //TCefState
Javascript uintptr //TCefState
JavascriptCloseWindows uintptr //TCefState
JavascriptAccessClipboard uintptr //TCefState
JavascriptDomPaste uintptr //TCefState
ImageLoading uintptr //TCefState
ImageShrinkStandaLonetoFit uintptr //TCefState
TextAreaResize uintptr //TCefState
TabToLinks uintptr //TCefState
LocalStorage uintptr //TCefState
Databases uintptr //TCefState
Webgl uintptr //TCefState
BackgroundColor uintptr //TCefColor
AcceptLanguageList uintptr //TCefString Remove CEF 118
ChromeStatusBubble uintptr //TCefState
}
type tCefCompositionUnderlinePtr struct {
Range uintptr //*TCefRange
Color uintptr //TCefColor
BackgroundColor uintptr // TCefColor
Thick uintptr //int32
Style uintptr //TCefCompositionUnderlineStyle
}
// ToPtr 转换为指针
func (m *TCefBrowserSettings) ToPtr() *tCefBrowserSettingsPtr {
if m == nil {
return nil
}
return &tCefBrowserSettingsPtr{
Size: m.Size.ToPtr(),
WindowlessFrameRate: m.WindowlessFrameRate.ToPtr(),
StandardFontFamily: m.StandardFontFamily.ToPtr(),
FixedFontFamily: m.FixedFontFamily.ToPtr(),
SerifFontFamily: m.SerifFontFamily.ToPtr(),
SansSerifFontFamily: m.SansSerifFontFamily.ToPtr(),
CursiveFontFamily: m.CursiveFontFamily.ToPtr(),
FantasyFontFamily: m.FantasyFontFamily.ToPtr(),
DefaultFontSize: m.DefaultFontSize.ToPtr(),
DefaultFixedFontSize: m.DefaultFixedFontSize.ToPtr(),
MinimumFontSize: m.MinimumFontSize.ToPtr(),
MinimumLogicalFontSize: m.MinimumLogicalFontSize.ToPtr(),
DefaultEncoding: m.DefaultEncoding.ToPtr(),
RemoteFonts: m.RemoteFonts.ToPtr(),
Javascript: m.Javascript.ToPtr(),
JavascriptCloseWindows: m.JavascriptCloseWindows.ToPtr(),
JavascriptAccessClipboard: m.JavascriptAccessClipboard.ToPtr(),
JavascriptDomPaste: m.JavascriptDomPaste.ToPtr(),
ImageLoading: m.ImageLoading.ToPtr(),
ImageShrinkStandaLonetoFit: m.ImageShrinkStandaLonetoFit.ToPtr(),
TextAreaResize: m.TextAreaResize.ToPtr(),
TabToLinks: m.TabToLinks.ToPtr(),
LocalStorage: m.LocalStorage.ToPtr(),
Databases: m.Databases.ToPtr(),
Webgl: m.Webgl.ToPtr(),
BackgroundColor: m.BackgroundColor.ToPtr(),
AcceptLanguageList: m.AcceptLanguageList.ToPtr(), // Remove CEF 118
ChromeStatusBubble: m.ChromeStatusBubble.ToPtr(),
}
}
// Convert 转换为结构
func (m *tCefBrowserSettingsPtr) Convert() *TCefBrowserSettings {
return &TCefBrowserSettings{
Size: NativeUInt(m.Size),
WindowlessFrameRate: Integer(m.WindowlessFrameRate),
StandardFontFamily: TCefString(api.GoStr(m.StandardFontFamily)),
FixedFontFamily: TCefString(api.GoStr(m.FixedFontFamily)),
SerifFontFamily: TCefString(api.GoStr(m.SerifFontFamily)),
SansSerifFontFamily: TCefString(api.GoStr(m.SansSerifFontFamily)),
CursiveFontFamily: TCefString(api.GoStr(m.CursiveFontFamily)),
FantasyFontFamily: TCefString(api.GoStr(m.FantasyFontFamily)),
DefaultFontSize: Integer(m.DefaultFontSize),
DefaultFixedFontSize: Integer(m.DefaultFixedFontSize),
MinimumFontSize: Integer(m.MinimumFontSize),
MinimumLogicalFontSize: Integer(m.MinimumLogicalFontSize),
DefaultEncoding: TCefString(api.GoStr(m.DefaultEncoding)),
RemoteFonts: TCefState(m.RemoteFonts),
Javascript: TCefState(m.Javascript),
JavascriptCloseWindows: TCefState(m.JavascriptCloseWindows),
JavascriptAccessClipboard: TCefState(m.JavascriptAccessClipboard),
JavascriptDomPaste: TCefState(m.JavascriptDomPaste),
ImageLoading: TCefState(m.ImageLoading),
ImageShrinkStandaLonetoFit: TCefState(m.ImageShrinkStandaLonetoFit),
TextAreaResize: TCefState(m.TextAreaResize),
TabToLinks: TCefState(m.TabToLinks),
LocalStorage: TCefState(m.LocalStorage),
Databases: TCefState(m.Databases),
Webgl: TCefState(m.Webgl),
BackgroundColor: TCefColor(m.BackgroundColor),
AcceptLanguageList: TCefString(api.GoStr(m.AcceptLanguageList)), // Remove CEF 118
ChromeStatusBubble: TCefState(m.ChromeStatusBubble),
}
}
type tCefProxyPtr struct {
ProxyType uintptr //TCefProxyType
ProxyScheme uintptr //TCefProxySchem
ProxyServer uintptr //string
ProxyPort uintptr //int32
ProxyUsername uintptr //string
ProxyPassword uintptr //string
ProxyScriptURL uintptr //string
ProxyByPassList uintptr //string
MaxConnectionsPerProxy uintptr //int32
}
type beforePopupInfoPtr struct {
TargetUrl uintptr //string
TargetFrameName uintptr //string
TargetDisposition uintptr //int32
UserGesture uintptr //bool
}
type tCefRectPtr struct {
X uintptr //int32
Y uintptr //int32
Width uintptr //int32
Height uintptr //int32
}
type tCustomHeader struct {
CustomHeaderName uintptr //string
CustomHeaderValue uintptr //string
}
type cefPdfPrintSettingsPtr struct {
landscape uintptr //Integer
printBackground uintptr //Integer
scale uintptr //double
paperWidth uintptr //double
paperHeight uintptr //double
preferCssPageSize uintptr //Integer
marginType uintptr //TCefPdfPrintMarginType
marginTop uintptr //double
marginRight uintptr //double
marginBottom uintptr //double
marginLeft uintptr //double
pageRanges uintptr //TCefString
displayHeaderFooter uintptr //Integer
headerTemplate uintptr //TCefString
footerTemplate uintptr //TCefString
}
func (m *CefPdfPrintSettings) ToPtr() *cefPdfPrintSettingsPtr {
if m == nil {
return nil
}
return &cefPdfPrintSettingsPtr{
landscape: uintptr(m.Landscape),
printBackground: uintptr(m.PrintBackground),
scale: uintptr(unsafe.Pointer(&m.Scale)),
paperWidth: uintptr(unsafe.Pointer(&m.PaperWidth)),
paperHeight: uintptr(unsafe.Pointer(&m.PaperHeight)),
preferCssPageSize: uintptr(m.PreferCssPageSize),
marginType: uintptr(m.MarginType),
marginTop: uintptr(unsafe.Pointer(&m.MarginTop)), //m.MarginTop,
marginRight: uintptr(unsafe.Pointer(&m.MarginRight)),
marginBottom: uintptr(unsafe.Pointer(&m.MarginBottom)),
marginLeft: uintptr(unsafe.Pointer(&m.MarginLeft)),
pageRanges: api.PascalStr(m.PageRanges),
displayHeaderFooter: uintptr(m.DisplayHeaderFooter),
headerTemplate: api.PascalStr(m.HeaderTemplate),
footerTemplate: api.PascalStr(m.FooterTemplate),
}
}