energy/consts/consts.go

608 lines
15 KiB
Go
Raw Normal View History

2022-10-04 13:21:05 +08:00
//----------------------------------------
//
// Copyright © yanghy. All Rights Reserved.
//
2022-10-04 16:38:43 +08:00
// Licensed under GNU General Public License v3.0
2022-10-04 13:21:05 +08:00
//
//----------------------------------------
2022-10-04 22:34:57 +08:00
package consts
import (
2022-12-05 10:44:24 +08:00
"github.com/energye/golcl/energy/homedir"
2022-10-04 22:34:57 +08:00
"os"
"path/filepath"
)
var (
ExePath string //执行文件目录
HomeDir, _ = homedir.Dir() //系统用户目录
Separator = string(filepath.Separator) //
SingleProcess = false //进程启动方式, true单进程 false多进程
)
func init() {
2022-11-18 12:15:47 +08:00
ExePath, _ = os.Getwd()
2022-10-04 22:34:57 +08:00
}
const (
ENERGY_HOME_KEY = "ENERGY_HOME"
MemoryNetwork = "unix"
2022-10-04 22:34:57 +08:00
)
//0:net 1:unix
type IPC_TYPE int8
const (
IPCT_NET IPC_TYPE = iota
IPCT_UNIX
)
type ChannelType int8
const (
Ct_Server ChannelType = iota
Ct_Client
)
type TriggerMode int8
const (
Tm_Async TriggerMode = iota //异步
Tm_Callback //异步,带回调函数返回结果
Tm_Sync //同步,阻塞等待结果返回值
)
2022-10-04 13:21:05 +08:00
const (
2022-10-04 22:34:57 +08:00
Empty = ""
2022-10-04 13:21:05 +08:00
MAINARGS_NETIPCPORT = "net-ipc-port"
download_dir = "downloads"
ipcAccIdx = 8 //ipc args新的参数开始位置
)
//功能和消息常量
const (
WM_APP = 0x008000
MINIBROWSER_SHOWDEVTOOLS = WM_APP + 0x00101 //开发工具展示
MINIBROWSER_HIDEDEVTOOLS = WM_APP + 0x00102 //开发工具隐藏
)
//缩放、放大
type ZOOM int32
const (
ZOOM_RESET ZOOM = iota
ZOOM_INC
ZOOM_DEC
)
//进程结束的状态
type TCefTerminationStatus int32
const (
TS_ABNORMAL_TERMINATION TCefTerminationStatus = iota
TS_PROCESS_WAS_KILLED
TS_PROCESS_CRASHED
TS_PROCESS_OOM
)
//前进 & 后退
type BF int32
const (
BF_GOBACK BF = iota
BF_GOFORWARD = iota
)
//日志等级
type LOG uint32
const (
LOGSEVERITY_DEFAULT LOG = 0
LOGSEVERITY_VERBOSE LOG = 1
LOGSEVERITY_DEBUG LOG = LOGSEVERITY_VERBOSE
LOGSEVERITY_INFO LOG = 2
LOGSEVERITY_WARNING LOG = 3
LOGSEVERITY_ERROR LOG = 4
LOGSEVERITY_FATAL LOG = 5
LOGSEVERITY_DISABLE LOG = 99
)
type LANGUAGE string
const (
LANGUAGE_zh_CN LANGUAGE = "zh-CN"
LANGUAGE_zh_TW = "zh-TW"
LANGUAGE_am = "am"
LANGUAGE_ar = "ar"
LANGUAGE_bg = "bg"
LANGUAGE_bn = "bn"
LANGUAGE_ca = "ca"
LANGUAGE_cs = "cs"
LANGUAGE_da = "da"
LANGUAGE_de = "de"
LANGUAGE_el = "el"
LANGUAGE_en_GB = "en-GB"
LANGUAGE_en_US = "en-US"
LANGUAGE_es = "es"
LANGUAGE_es_419 = "es-419"
LANGUAGE_et = "et"
LANGUAGE_fa = "fa"
LANGUAGE_fi = "fi"
LANGUAGE_fil = "fil"
LANGUAGE_fr = "fr"
LANGUAGE_gu = "gu"
LANGUAGE_he = "he"
LANGUAGE_hi = "hi"
LANGUAGE_hr = "hr"
LANGUAGE_hu = "hu"
LANGUAGE_id = "channelId"
LANGUAGE_it = "it"
LANGUAGE_ja = "ja"
LANGUAGE_kn = "kn"
LANGUAGE_ko = "ko"
LANGUAGE_lt = "lt"
LANGUAGE_lv = "lv"
LANGUAGE_ml = "ml"
LANGUAGE_mr = "mr"
LANGUAGE_ms = "ms"
LANGUAGE_nb = "nb"
LANGUAGE_nl = "nl"
LANGUAGE_pl = "pl"
LANGUAGE_pt_BR = "pt-BR"
LANGUAGE_pt_PT = "pt-PT"
LANGUAGE_ro = "ro"
LANGUAGE_ru = "ru"
LANGUAGE_sk = "sk"
LANGUAGE_sl = "sl"
LANGUAGE_sr = "sr"
LANGUAGE_sv = "sv"
LANGUAGE_sw = "sw"
LANGUAGE_ta = "ta"
LANGUAGE_te = "te"
LANGUAGE_th = "th"
LANGUAGE_tr = "tr"
LANGUAGE_uk = "uk"
LANGUAGE_vi = "vi"
)
2022-10-29 15:34:08 +08:00
// Chromium关闭的操作类型
// 在 TChromium.Onclose 使用
// -------------------------
// cbaCancel : 停止关闭浏览器
// cbaClose : 继续关闭浏览器
// cbaDelay : 暂时停止关闭浏览器
// : 当应用程序需要在关闭浏览器之前执行一些自定义进程时使用。在关闭浏览器之前通常需要在主线程中销毁TCEFWindowParent。
2022-10-04 13:21:05 +08:00
type CBS int32
const (
CbaClose = iota
CbaDelay
CbaCancel
)
//CEF 进程 ChannelId
type CefProcessId int32
const (
PID_BROWSER CefProcessId = iota
PID_RENDER
2022-10-04 13:21:05 +08:00
)
//支持的JS类型
type V8_JS_VALUE_TYPE int32
const (
V8_VALUE_STRING V8_JS_VALUE_TYPE = iota
V8_VALUE_INT
V8_VALUE_DOUBLE
V8_VALUE_BOOLEAN
V8_VALUE_NULL
V8_VALUE_UNDEFINED
V8_VALUE_OBJECT
V8_VALUE_ARRAY
V8_VALUE_FUNCTION
V8_VALUE_EXCEPTION
V8_VALUE_ROOT_OBJECT
V8_NO_OUT_VALUE
)
//支持的GO类型
type GO_VALUE_TYPE int32
const (
GO_VALUE_STRING GO_VALUE_TYPE = iota
GO_VALUE_INT
GO_VALUE_INT8
GO_VALUE_INT16
GO_VALUE_INT32
GO_VALUE_INT64
GO_VALUE_UINT
GO_VALUE_UINT8
GO_VALUE_UINT16
GO_VALUE_UINT32
GO_VALUE_UINT64
GO_VALUE_UINTPTR
GO_VALUE_FLOAT32
GO_VALUE_FLOAT64
GO_VALUE_BOOL
GO_VALUE_NIL
GO_VALUE_STRUCT
GO_VALUE_SLICE
GO_VALUE_FUNC
GO_VALUE_PTR
GO_VALUE_EXCEPTION
GO_VALUE_INVALID_TYPE //无效类型
GO_VALUE_ARGUMENT //argument
GO_VALUE_DICTVALUE //dictValue
)
//JS属性
type V8_PROPERTY_ATTRIBUTE int32
const (
V8_PROPERTY_ATTRIBUTE_NONE V8_PROPERTY_ATTRIBUTE = 0
V8_PROPERTY_ATTRIBUTE_READONLY = 1 << 0
V8_PROPERTY_ATTRIBUTE_DONTENUM = 1 << 1
V8_PROPERTY_ATTRIBUTE_DONTDELETE = 1 << 2
)
//JS交互绑定的事件类型
type BIND_EVENT int32
const (
BE_SET BIND_EVENT = 0
BE_GET = 1
BE_FUNC = 2
)
//异常信息
type CEF_V8_EXCEPTION int32
const (
CVE_ERROR_OK CEF_V8_EXCEPTION = iota //操作成功
CVE_ERROR_NOT_FOUND_FIELD //未找到字段 或字段未定义
CVE_ERROR_NOT_FOUND_FUNC //未找到函数 或函数未定义
CVE_ERROR_TYPE_NOT_SUPPORTED //不支持的变量类型 变量类型只支持[string int double bool null undefined]
CVE_ERROR_TYPE_CANNOT_CHANGE //字段为普通类型不能变更为 array、object、function
CVE_ERROR_TYPE_INVALID //类型无效
CVE_ERROR_GET_STRING_FAIL //获取string类型失败
CVE_ERROR_GET_INT_FAIL //获取int类型失败
CVE_ERROR_GET_DOUBLE_FAIL //获取double类型失败
CVE_ERROR_GET_BOOL_FAIL //获取bool类型失败
CVE_ERROR_GET_NULL_FAIL //获取null类型失败
CVE_ERROR_GET_UNDEFINED_FAIL //获取undefined类型失败
CVE_ERROR_FUNC_INVALID_P_L_9 //该函数非法 类型不正确 或参数个数大于9个
CVE_ERROR_FUNC_IN_PAM //入参类型不正确 只能为string int double boolean
CVE_ERROR_FUNC_OUT_PAM //出参类型不正确 只能为EefError 或 可选的[string int double boolean]
CVE_ERROR_FUNC_GET_IN_PAM_STRING_FAIL //入参获取string类型值失败
CVE_ERROR_FUNC_GET_IN_PAM_INT_FAIL //入参获取int类型值失败
CVE_ERROR_FUNC_GET_IN_PAM_DOUBLE_FAIL //入参获取double类型值失败
CVE_ERROR_FUNC_GET_IN_PAM_BOOLEAN_FAIL //入参获取boolean类型值失败
CVE_ERROR_FUNC_GET_OUT_PAM_STRING_FAIL //出参获取string类型值失败
CVE_ERROR_FUNC_GET_OUT_PAM_INT_FAIL //出参获取int类型值失败
CVE_ERROR_FUNC_GET_OUT_PAM_DOUBLE_FAIL //出参获取double类型值失败
CVE_ERROR_FUNC_GET_OUT_PAM_BOOLEAN_FAIL //出参获取boolean类型值失败
CVE_ERROR_FUNC_GET_OUT_PAM_CEFERROR_FAIL //出参获取CefError值失败
CVE_ERROR_IPC_GET_BIND_FIELD_VALUE_FAIL //IPC获取绑定值失败
CVE_ERROR_UNKNOWN_ERROR //未知错误
)
const (
BIND_FUNC_IN_MAX_SUM = 9 //函数最大入参数
BIND_FUNC_OUT_MAX_SUM = 1 //函数最大出参数
)
//函数类型
type FN_TYPE int8
const (
FN_TYPE_COMMON FN_TYPE = iota //普通函数,直接定义的
FN_TYPE_OBJECT //对象函数,所属对象
)
//通用类型或对象类型
type IS_CO int8
const (
IS_COMMON IS_CO = iota
IS_OBJECT
)
//进程消息类型
type PROCESS_MESSAGE_TYPE int8
const (
PMT_JS_CODE PROCESS_MESSAGE_TYPE = iota //执行JS代码消息
PMT_TEXT //文本传递消息
PMT_BINARY //二进制消息
)
type TCefProcessType int8
const (
PtBrowser TCefProcessType = iota
PtRender
2022-10-04 13:21:05 +08:00
PtZygote
PtGPU
PtUtility
PtBroker
PtCrashpad
PtOther
)
type TDateTime float64
type TCefCookieSameSite int32
const (
Ccss_CEF_COOKIE_SAME_SITE_UNSPECIFIED TCefCookieSameSite = iota
Ccss_CEF_COOKIE_SAME_SITE_NO_RESTRICTION
Ccss_CEF_COOKIE_SAME_SITE_LAX_MODE
Ccss_CEF_COOKIE_SAME_SITE_STRICT_MODE
)
type TCefCookiePriority int32
const (
CEF_COOKIE_PRIORITY_LOW TCefCookiePriority = -1
CEF_COOKIE_PRIORITY_MEDIUM = 0
CEF_COOKIE_PRIORITY_HIGH = 1
)
type TCefProxyType int32
const (
PtDirect TCefProxyType = iota
PtAutodetect
PtSystem
PtFixedServers
PtPACScript
)
type TCefProxyScheme int32
const (
PsHTTP TCefProxyScheme = iota
PsSOCKS4
PsSOCKS5
)
type TCefContextMenuType int32
const (
CMT_NONE TCefContextMenuType = iota
CMT_CHECK
CMT_RADIO
)
type TCefContextMenuMediaType = int32
const (
CM_MEDIATYPE_NONE TCefContextMenuMediaType = iota
CM_MEDIATYPE_IMAGE
CM_MEDIATYPE_VIDEO
CM_MEDIATYPE_AUDIO
CM_MEDIATYPE_CANVAS
CM_MEDIATYPE_FILE
CM_MEDIATYPE_PLUGIN
)
type MenuId = int32
const (
MENU_ID_BACK MenuId = 100
MENU_ID_FORWARD = 101
MENU_ID_RELOAD = 102
MENU_ID_RELOAD_NOCACHE = 103
MENU_ID_STOPLOAD = 104
MENU_ID_UNDO = 110
MENU_ID_REDO = 111
MENU_ID_CUT = 112
MENU_ID_COPY = 113
MENU_ID_PASTE = 114
MENU_ID_DELETE = 115
MENU_ID_SELECT_ALL = 116
MENU_ID_FIND = 130
MENU_ID_PRINT = 131
MENU_ID_VIEW_SOURCE = 132
MENU_ID_SPELLCHECK_SUGGESTION_0 = 200
MENU_ID_SPELLCHECK_SUGGESTION_1 = 201
MENU_ID_SPELLCHECK_SUGGESTION_2 = 202
MENU_ID_SPELLCHECK_SUGGESTION_3 = 203
MENU_ID_SPELLCHECK_SUGGESTION_4 = 204
MENU_ID_SPELLCHECK_SUGGESTION_LAST = 204
MENU_ID_NO_SPELLING_SUGGESTIONS = 205
MENU_ID_ADD_TO_DICTIONARY = 206
MENU_ID_CUSTOM_FIRST = 220
MENU_ID_CUSTOM_LAST = 250
MENU_ID_USER_FIRST = 26500
MENU_ID_USER_LAST = 28500
)
type TCefMenuColorType = int32
const (
CEF_MENU_COLOR_TEXT TCefMenuColorType = iota
CEF_MENU_COLOR_TEXT_HOVERED
CEF_MENU_COLOR_TEXT_ACCELERATOR
CEF_MENU_COLOR_TEXT_ACCELERATOR_HOVERED
CEF_MENU_COLOR_BACKGROUND
CEF_MENU_COLOR_BACKGROUND_HOVERED
CEF_MENU_COLOR_COUNT
)
type ARGB uint32
type TCefKeyEventType int32
const (
KEYEVENT_RAW_KEYDOWN TCefKeyEventType = iota
KEYEVENT_KEYDOWN
KEYEVENT_KEYUP
KEYEVENT_CHAR
)
type TCefEventFlags uint32
type TCefWindowHandleType int8
2022-12-13 09:14:59 +08:00
type TCefWindowHandle = uintptr
2022-10-04 13:21:05 +08:00
const (
Wht_WindowParent TCefWindowHandleType = iota
Wht_LinkedWindowParent
)
type TCefReturnValue int32
const (
RV_CANCEL TCefReturnValue = iota
RV_CONTINUE
RV_CONTINUE_ASYNC
)
type TCefReferrerPolicy = int32
const (
REFERRER_POLICY_CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE TCefReferrerPolicy = iota // same value as REFERRER_POLICY_DEFAULT
REFERRER_POLICY_REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN
REFERRER_POLICY_ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN
REFERRER_POLICY_NEVER_CLEAR_REFERRER
REFERRER_POLICY_ORIGIN
REFERRER_POLICY_CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN
REFERRER_POLICY_ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE
REFERRER_POLICY_NO_REFERRER // REFERRER_POLICY_LAST_VALUE = REFERRER_POLICY_NO_REFERRER
)
type TCefUrlRequestFlags = int
type TCefErrorCode = int32
type TCefResourceType = int32
const (
RT_MAIN_FRAME TCefResourceType = iota
RT_SUB_FRAME
RT_STYLESHEET
RT_SCRIPT
RT_IMAGE
RT_FONT_RESOURCE
RT_SUB_RESOURCE
RT_OBJECT
RT_MEDIA
RT_WORKER
RT_SHARED_WORKER
RT_PREFETCH
RT_FAVICON
RT_XHR
RT_PING
RT_SERVICE_WORKER
RT_CSP_REPORT
RT_PLUGIN_RESOURCE
RT_EMPTY_FILLER_TYPE_DO_NOT_USE // This type doesn't exist in CEF and it's here just to fill this position.
RT_NAVIGATION_PRELOAD_MAIN_FRAME // This type must have a value of 19
RT_NAVIGATION_PRELOAD_SUB_FRAME
)
type TCefTransitionType = int
type TCefUrlRequestStatus = int32
const (
UR_UNKNOWN TCefUrlRequestStatus = iota
UR_SUCCESS
UR_IO_PENDING
UR_CANCELED
UR_FAILED
)
type TCefState int32
const (
STATE_DEFAULT TCefState = iota
STATE_ENABLED
STATE_DISABLE
)
type TCefTouchEeventType int32
const (
CEF_TET_RELEASED TCefTouchEeventType = iota
CEF_TET_PRESSED
CEF_TET_MOVED
CEF_TET_CANCELLED
)
type TCefPointerType int32
const (
CEF_POINTER_TYPE_TOUCH TCefPointerType = iota
CEF_POINTER_TYPE_MOUSE
CEF_POINTER_TYPE_PEN
CEF_POINTER_TYPE_ERASER
CEF_POINTER_TYPE_UNKNOWN
)
type TCefMouseButtonType int32
const (
MBT_LEFT TCefMouseButtonType = iota
MBT_MIDDLE
MBT_RIGHT
)
//进程消息错误码
type ProcessMessageError int32
const (
PME_OK ProcessMessageError = iota + 1 //发送成功
PMErr_NOT_FOUND_FRAME = -1 //没找到Frame
PMErr_TARGET_PROCESS = -2 //目标进程标识错误
PMErr_NAME_IS_NULL = -3 //消息名称为空
PMErr_NO_INVALID_FRAME = -4 //无效的Frame
PMErr_REQUIRED_PARAMS_IS_NULL = -5 //必要参数为空
PMErr_NAME_CANNOT_USED = -6 //不能使用的消息名称
)
type TCefWindowOpenDisposition int32
const (
WOD_UNKNOWN TCefWindowOpenDisposition = iota
WOD_CURRENT_TAB
WOD_SINGLETON_TAB
WOD_NEW_FOREGROUND_TAB
WOD_NEW_BACKGROUND_TAB
WOD_NEW_POPUP
WOD_NEW_WINDOW
WOD_SAVE_TO_DISK
WOD_OFF_THE_RECORD
WOD_IGNORE_ACTION
WOD_SWITCH_TO_TAB
WOD_NEW_PICTURE_IN_PICTURE
)
// Browser Window Type
type WINDOW_TYPE int8
const (
2022-10-30 00:35:04 +08:00
WT_MAIN_BROWSER WINDOW_TYPE = iota
WT_POPUP_SUB_BROWSER
2022-10-04 13:21:05 +08:00
WT_DEV_TOOLS
WT_VIEW_SOURCE
)
type TCefContextMenuTypeFlags uint32
type TCefContextMenuMediaStateFlags uint32
type TCefContextMenuEditStateFlags uint32
type TCefMenuAnchorPosition = int32
const (
CEF_MENU_ANCHOR_TOPLEFT TCefMenuAnchorPosition = iota
CEF_MENU_ANCHOR_TOPRIGHT
CEF_MENU_ANCHOR_BOTTOMCENTER
)
2022-12-13 11:49:32 +08:00
type TCefShowState = int32