summaryrefslogtreecommitdiffstatshomepage
path: root/declarative/webview.go
blob: c9c3b12fc01a1868a00bd097bb158375f024708c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
// Copyright 2012 The Walk Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build windows

package declarative

import (
	"github.com/lxn/walk"
)

type WebView struct {
	// Window

	Background         Brush
	ContextMenuItems   []MenuItem
	Enabled            Property
	Font               Font
	MaxSize            Size
	MinSize            Size
	Name               string
	OnBoundsChanged    walk.EventHandler
	OnKeyDown          walk.KeyEventHandler
	OnKeyPress         walk.KeyEventHandler
	OnKeyUp            walk.KeyEventHandler
	OnMouseDown        walk.MouseEventHandler
	OnMouseMove        walk.MouseEventHandler
	OnMouseUp          walk.MouseEventHandler
	OnSizeChanged      walk.EventHandler
	Persistent         bool
	RightToLeftReading bool
	ToolTipText        Property
	Visible            Property

	// Widget

	Alignment          Alignment2D
	AlwaysConsumeSpace bool
	Column             int
	ColumnSpan         int
	GraphicsEffects    []walk.WidgetGraphicsEffect
	Row                int
	RowSpan            int
	StretchFactor      int

	// WebView

	AssignTo                          **walk.WebView
	NativeContextMenuEnabled          Property
	OnBrowserVisibleChanged           walk.EventHandler
	OnCanGoBackChanged                walk.EventHandler
	OnCanGoForwardChanged             walk.EventHandler
	OnDocumentCompleted               walk.StringEventHandler
	OnDocumentTitleChanged            walk.EventHandler
	OnDownloaded                      walk.EventHandler
	OnDownloading                     walk.EventHandler
	OnNativeContextMenuEnabledChanged walk.EventHandler
	OnNavigated                       walk.StringEventHandler
	OnNavigatedError                  walk.WebViewNavigatedErrorEventHandler
	OnNavigating                      walk.WebViewNavigatingEventHandler
	OnNewWindow                       walk.WebViewNewWindowEventHandler
	OnProgressChanged                 walk.EventHandler
	OnQuitting                        walk.EventHandler
	OnShortcutsEnabledChanged         walk.EventHandler
	OnStatusBarVisibleChanged         walk.EventHandler
	OnStatusTextChanged               walk.EventHandler
	OnTheaterModeChanged              walk.EventHandler
	OnToolBarEnabledChanged           walk.EventHandler
	OnToolBarVisibleChanged           walk.EventHandler
	OnURLChanged                      walk.EventHandler
	OnWindowClosing                   walk.WebViewWindowClosingEventHandler
	ShortcutsEnabled                  Property
	URL                               Property
}

func (wv WebView) Create(builder *Builder) error {
	w, err := walk.NewWebView(builder.Parent())
	if err != nil {
		return err
	}

	if wv.AssignTo != nil {
		*wv.AssignTo = w
	}

	return builder.InitWidget(wv, w, func() error {
		if wv.OnBrowserVisibleChanged != nil {
			w.BrowserVisibleChanged().Attach(wv.OnBrowserVisibleChanged)
		}
		if wv.OnCanGoBackChanged != nil {
			w.CanGoBackChanged().Attach(wv.OnCanGoBackChanged)
		}
		if wv.OnCanGoForwardChanged != nil {
			w.CanGoForwardChanged().Attach(wv.OnCanGoForwardChanged)
		}
		if wv.OnDocumentCompleted != nil {
			w.DocumentCompleted().Attach(wv.OnDocumentCompleted)
		}
		if wv.OnDocumentTitleChanged != nil {
			w.DocumentTitleChanged().Attach(wv.OnDocumentTitleChanged)
		}
		if wv.OnDownloaded != nil {
			w.Downloaded().Attach(wv.OnDownloaded)
		}
		if wv.OnDownloading != nil {
			w.Downloading().Attach(wv.OnDownloading)
		}
		if wv.OnNativeContextMenuEnabledChanged != nil {
			w.NativeContextMenuEnabledChanged().Attach(wv.OnNativeContextMenuEnabledChanged)
		}
		if wv.OnNavigated != nil {
			w.Navigated().Attach(wv.OnNavigated)
		}
		if wv.OnNavigatedError != nil {
			w.NavigatedError().Attach(wv.OnNavigatedError)
		}
		if wv.OnNavigating != nil {
			w.Navigating().Attach(wv.OnNavigating)
		}
		if wv.OnNewWindow != nil {
			w.NewWindow().Attach(wv.OnNewWindow)
		}
		if wv.OnProgressChanged != nil {
			w.ProgressChanged().Attach(wv.OnProgressChanged)
		}
		if wv.OnURLChanged != nil {
			w.URLChanged().Attach(wv.OnURLChanged)
		}
		if wv.OnShortcutsEnabledChanged != nil {
			w.ShortcutsEnabledChanged().Attach(wv.OnShortcutsEnabledChanged)
		}
		if wv.OnStatusBarVisibleChanged != nil {
			w.StatusBarVisibleChanged().Attach(wv.OnStatusBarVisibleChanged)
		}
		if wv.OnStatusTextChanged != nil {
			w.StatusTextChanged().Attach(wv.OnStatusTextChanged)
		}
		if wv.OnTheaterModeChanged != nil {
			w.TheaterModeChanged().Attach(wv.OnTheaterModeChanged)
		}
		if wv.OnToolBarEnabledChanged != nil {
			w.ToolBarEnabledChanged().Attach(wv.OnToolBarEnabledChanged)
		}
		if wv.OnToolBarVisibleChanged != nil {
			w.ToolBarVisibleChanged().Attach(wv.OnToolBarVisibleChanged)
		}
		if wv.OnQuitting != nil {
			w.Quitting().Attach(wv.OnQuitting)
		}
		if wv.OnWindowClosing != nil {
			w.WindowClosing().Attach(wv.OnWindowClosing)
		}

		return nil
	})
}