MCPcopy Create free account
hub / github.com/cztomczak/cefpython / OnJSDialog

Method OnJSDialog

src/client_handler/dialog_handler_gtk.cpp:284–358  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

282}
283
284bool ClientDialogHandlerGtk::OnJSDialog(CefRefPtr<CefBrowser> browser,
285 const CefString& origin_url,
286 JSDialogType dialog_type,
287 const CefString& message_text,
288 const CefString& default_prompt_text,
289 CefRefPtr<CefJSDialogCallback> callback,
290 bool& suppress_message) {
291 CEF_REQUIRE_UI_THREAD();
292
293 GtkButtonsType buttons = GTK_BUTTONS_NONE;
294 GtkMessageType gtk_message_type = GTK_MESSAGE_OTHER;
295 std::string title;
296
297 switch (dialog_type) {
298 case JSDIALOGTYPE_ALERT:
299 buttons = GTK_BUTTONS_NONE;
300 gtk_message_type = GTK_MESSAGE_WARNING;
301 title = "Alert";
302 break;
303
304 case JSDIALOGTYPE_CONFIRM:
305 buttons = GTK_BUTTONS_CANCEL;
306 gtk_message_type = GTK_MESSAGE_QUESTION;
307 title = "Confirm";
308 break;
309
310 case JSDIALOGTYPE_PROMPT:
311 buttons = GTK_BUTTONS_CANCEL;
312 gtk_message_type = GTK_MESSAGE_QUESTION;
313 title = "Prompt";
314 break;
315 }
316
317 js_dialog_callback_ = callback;
318
319 if (!origin_url.empty()) {
320 // title += " - ";
321 // title += CefFormatUrlForSecurityDisplay(origin_url).ToString();
322 }
323
324 GtkWindow* window = CefBrowser_GetGtkWindow(browser);
325 if (!window)
326 return false;
327
328 gtk_dialog_ = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL,
329 gtk_message_type, buttons, "%s",
330 message_text.ToString().c_str());
331 g_signal_connect(gtk_dialog_, "delete-event",
332 G_CALLBACK(gtk_widget_hide_on_delete), NULL);
333
334 gtk_window_set_title(GTK_WINDOW(gtk_dialog_), title.c_str());
335
336 GtkWidget* ok_button = gtk_dialog_add_button(GTK_DIALOG(gtk_dialog_),
337 GTK_STOCK_OK, GTK_RESPONSE_OK);
338
339 if (dialog_type != JSDIALOGTYPE_PROMPT)
340 gtk_widget_grab_focus(ok_button);
341

Callers

nothing calls this directly

Calls 4

CefBrowser_GetGtkWindowFunction · 0.85
c_strMethod · 0.80
ToStringMethod · 0.80
emptyMethod · 0.45

Tested by

no test coverage detected