Create a new gnc embedded window plugin.
322{
323 GncEmbeddedWindow *window;
324 gchar *ui_fullname;
325 GError *error = NULL;
326 GtkBuilder *builder;
327
328 ENTER(
"group %s, first %p, num %d, ui file %s, parent %p, add accelerators %d, user data %p",
329 action_group_name, action_entries, n_action_entries, ui_filename,
330 enclosing_win, add_accelerators, user_data);
331
332 window = g_object_new (GNC_TYPE_EMBEDDED_WINDOW, NULL);
333
334 builder = gtk_builder_new ();
335 gtk_builder_set_translation_domain (builder, PROJECT_NAME);
336
337 ui_fullname = g_strconcat (GNUCASH_RESOURCE_PREFIX "/", ui_filename, NULL);
338
339 gtk_builder_add_from_resource (builder, ui_fullname, &error);
340
341 if (error)
342 {
343 g_critical ("Failed to load, Error %s", error->message);
344 g_error_free (error);
345 return NULL;
346 }
347
348 window->menubar_model = (GMenuModel *)gtk_builder_get_object (builder, "embeddedwin-menu");
349
350 window->menubar = gtk_menu_bar_new_from_model (window->menubar_model);
351 gtk_container_add (GTK_CONTAINER(window->menu_dock), window->menubar);
352 gtk_widget_show (GTK_WIDGET(window->menubar));
353
354 window->toolbar = (GtkWidget *)gtk_builder_get_object (builder, "embeddedwin-toolbar");
355 g_object_set (window->toolbar, "toolbar-style", GTK_TOOLBAR_BOTH, NULL);
356 gtk_container_add (GTK_CONTAINER(window->menu_dock), GTK_WIDGET(window->toolbar));
357 gtk_widget_show (GTK_WIDGET(window->toolbar));
358
359 g_object_unref (builder);
360
361 window->simple_action_group = g_simple_action_group_new ();
362
363 g_action_map_add_action_entries (G_ACTION_MAP(window->simple_action_group),
364 action_entries,
365 n_action_entries,
366 user_data);
367
368 gtk_widget_insert_action_group (GTK_WIDGET(window), "embeddedwin",
369 G_ACTION_GROUP(window->simple_action_group));
370
371 window->parent_window = enclosing_win;
372
373
374 window->accel_group = gtk_accel_group_new ();
375 gtk_window_add_accel_group (GTK_WINDOW(enclosing_win), window->accel_group);
377
378 g_free (ui_fullname);
379 LEAVE(
"window %p", window);
380 return window;
381}
void gnc_add_accelerator_keys_for_menu(GtkWidget *menu, GMenuModel *model, GtkAccelGroup *accel_group)
Add accelerator keys for menu item widgets.