mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (c) 2015 The Chromium Embedded Framework Authors. All rights
 | 
						|
// reserved. Use of this source code is governed by a BSD-style license that
 | 
						|
// can be found in the LICENSE file.
 | 
						|
 | 
						|
#ifndef CEF_TESTS_CEFCLIENT_BROWSER_DIALOG_HANDLER_GTK_H_
 | 
						|
#define CEF_TESTS_CEFCLIENT_BROWSER_DIALOG_HANDLER_GTK_H_
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <gtk/gtk.h>
 | 
						|
 | 
						|
#include "include/base/cef_callback_forward.h"
 | 
						|
#include "include/cef_dialog_handler.h"
 | 
						|
#include "include/cef_jsdialog_handler.h"
 | 
						|
 | 
						|
namespace client {
 | 
						|
 | 
						|
class ClientDialogHandlerGtk : public CefDialogHandler,
 | 
						|
                               public CefJSDialogHandler {
 | 
						|
 public:
 | 
						|
  ClientDialogHandlerGtk();
 | 
						|
 | 
						|
  // CefDialogHandler methods.
 | 
						|
  bool OnFileDialog(CefRefPtr<CefBrowser> browser,
 | 
						|
                    FileDialogMode mode,
 | 
						|
                    const CefString& title,
 | 
						|
                    const CefString& default_file_path,
 | 
						|
                    const std::vector<CefString>& accept_filters,
 | 
						|
                    int selected_accept_filter,
 | 
						|
                    CefRefPtr<CefFileDialogCallback> callback) OVERRIDE;
 | 
						|
 | 
						|
  // CefJSDialogHandler methods.
 | 
						|
  bool OnJSDialog(CefRefPtr<CefBrowser> browser,
 | 
						|
                  const CefString& origin_url,
 | 
						|
                  JSDialogType dialog_type,
 | 
						|
                  const CefString& message_text,
 | 
						|
                  const CefString& default_prompt_text,
 | 
						|
                  CefRefPtr<CefJSDialogCallback> callback,
 | 
						|
                  bool& suppress_message) OVERRIDE;
 | 
						|
  bool OnBeforeUnloadDialog(CefRefPtr<CefBrowser> browser,
 | 
						|
                            const CefString& message_text,
 | 
						|
                            bool is_reload,
 | 
						|
                            CefRefPtr<CefJSDialogCallback> callback) OVERRIDE;
 | 
						|
  void OnResetDialogState(CefRefPtr<CefBrowser> browser) OVERRIDE;
 | 
						|
 | 
						|
 private:
 | 
						|
  struct OnFileDialogParams {
 | 
						|
    CefRefPtr<CefBrowser> browser;
 | 
						|
    FileDialogMode mode;
 | 
						|
    CefString title;
 | 
						|
    CefString default_file_path;
 | 
						|
    std::vector<CefString> accept_filters;
 | 
						|
    int selected_accept_filter;
 | 
						|
    CefRefPtr<CefFileDialogCallback> callback;
 | 
						|
  };
 | 
						|
  void OnFileDialogContinue(OnFileDialogParams params, GtkWindow* window);
 | 
						|
 | 
						|
  struct OnJSDialogParams {
 | 
						|
    CefRefPtr<CefBrowser> browser;
 | 
						|
    CefString origin_url;
 | 
						|
    JSDialogType dialog_type;
 | 
						|
    CefString message_text;
 | 
						|
    CefString default_prompt_text;
 | 
						|
    CefRefPtr<CefJSDialogCallback> callback;
 | 
						|
  };
 | 
						|
  void OnJSDialogContinue(OnJSDialogParams params, GtkWindow* window);
 | 
						|
 | 
						|
  void GetWindowAndContinue(CefRefPtr<CefBrowser> browser,
 | 
						|
                            base::Callback<void(GtkWindow*)> callback);
 | 
						|
 | 
						|
  static void OnDialogResponse(GtkDialog* dialog,
 | 
						|
                               gint response_id,
 | 
						|
                               ClientDialogHandlerGtk* handler);
 | 
						|
 | 
						|
  GtkWidget* gtk_dialog_;
 | 
						|
  CefRefPtr<CefJSDialogCallback> js_dialog_callback_;
 | 
						|
 | 
						|
  IMPLEMENT_REFCOUNTING(ClientDialogHandlerGtk);
 | 
						|
  DISALLOW_COPY_AND_ASSIGN(ClientDialogHandlerGtk);
 | 
						|
};
 | 
						|
 | 
						|
}  // namespace client
 | 
						|
 | 
						|
#endif  // CEF_TESTS_CEFCLIENT_BROWSER_DIALOG_HANDLER_GTK_H_
 |