static struct call_window *new_call_window(struct gtk_mod *mod, struct call *call) { struct call_window *win = call_window_new(call, mod); if (call) { mod->call_windows = g_slist_append(mod->call_windows, win); } return win; }
void GtkFrontend::build () { boost::shared_ptr<Ekiga::ContactCore> contact_core = core.get<Ekiga::ContactCore> ("contact-core"); boost::shared_ptr<Ekiga::PersonalDetails> details = core.get<Ekiga::PersonalDetails> ("personal-details"); boost::shared_ptr<Ekiga::ChatCore> chat_core = core.get<Ekiga::ChatCore> ("chat-core"); boost::shared_ptr<Ekiga::AccountCore> account_core = core.get<Ekiga::AccountCore> ("account-core"); boost::shared_ptr<Ekiga::AudioInputCore> audio_input_core = core.get<Ekiga::AudioInputCore> ("audioinput-core"); boost::shared_ptr<Ekiga::AudioOutputCore> audio_output_core = core.get<Ekiga::AudioOutputCore> ("audiooutput-core"); boost::shared_ptr<Ekiga::VideoInputCore> video_input_core = core.get<Ekiga::VideoInputCore> ("videoinput-core"); /* Init the stock icons */ gnomemeeting_stock_icons_init (); gtk_window_set_default_icon_name (GM_ICON_LOGO); accounts_window = boost::shared_ptr<GtkWidget>(accounts_window_new (account_core, details, USER_INTERFACE ".accounts-window"), gtk_widget_destroy); // BEWARE: uses the main window during runtime call_window = boost::shared_ptr<GtkWidget> (call_window_new (core), gtk_widget_destroy); chat_window = boost::shared_ptr<GtkWidget> (chat_window_new (core, USER_INTERFACE ".chat-window"), gtk_widget_destroy); // BEWARE: the status icon needs the chat window at startup // FIXME: the above BEWARE is related to a FIXME in the main window code, // FIXME: hence should disappear with it status_icon = boost::shared_ptr<StatusIcon> (status_icon_new (core), g_object_unref); if (status_icon) { g_signal_connect (status_icon.get (), "clicked", G_CALLBACK (on_status_icon_clicked), this); } // BEWARE: the main window uses the chat window at startup already, // and later on needs the call window, addressbook window, // assistant window main_window = boost::shared_ptr<GtkWidget> (gm_main_window_new (core), gtk_widget_destroy); }