using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Web.WebView2.WinForms;
using Microsoft.Web.WebView2.Core;

namespace Project.Dialog
{
    public partial class fWebView2Test : Form
    {
        private WebView2 webView21;

        public fWebView2Test()
        {
            InitializeComponent();
            InitializeWebView2();
        }

        private void InitializeWebView2()
        {
            // 수동으로 WebView2 컨트롤 생성
            this.webView21 = new WebView2();

            // 기본 속성 설정
            this.webView21.CreationProperties = null;
            this.webView21.DefaultBackgroundColor = Color.White;
            this.webView21.Dock = DockStyle.Fill;
            this.webView21.Location = new Point(0, 0);
            this.webView21.Name = "webView21";
            this.webView21.Size = new Size(800, 600);
            this.webView21.TabIndex = 0;
            this.webView21.ZoomFactor = 1D;

            // 폼에 추가
            this.Controls.Add(this.webView21);

            // 비동기 초기화
            InitializeAsync();
        }

        private async void InitializeAsync()
        {
            try
            {
                // Fixed Version 경로 설정
                string runtimePath = Path.Combine(Application.StartupPath, "WebView2Runtime");

                if (Directory.Exists(runtimePath))
                {
                    var env = await CoreWebView2Environment.CreateAsync(runtimePath);
                    await this.webView21.EnsureCoreWebView2Async(env);
                }
                else
                {
                    // 시스템에 설치된 WebView2 사용
                    await this.webView21.EnsureCoreWebView2Async();
                }

                this.webView21.CoreWebView2.Navigate("https://www.google.com");
            }
            catch (Exception ex)
            {
                MessageBox.Show($"WebView2 초기화 실패: {ex.Message}");
            }
        }
    }
}
