static uint8_t ringer_cp_write(struct attribute *a, gpointer user_data, struct btd_device *device) { struct alert_adapter *aa = user_data; if (!initialized) { error("Uninitialized"); return ATT_ECODE_IO; } DBG("Command = %d", a->data[0]); switch (a->data[0]) { case SET_SILENT_MODE: set_silent_mode(aa); break; case MUTE_ONCE: mute_once(aa); break; case CANCEL_SILENT_MODE: cancel_silent_mode(aa); break; default: DBG("Unknown mode"); } return 0; }
static void silent_mode_cb(GtkToggleButton * widget, G_GNUC_UNUSED gpointer user_data) { GtkToggleButton *announce_button = user_data; gboolean silent_mode = gtk_toggle_button_get_active(widget); config_set_int("settings/silent_mode", silent_mode); set_silent_mode(silent_mode); gtk_toggle_button_set_inconsistent(announce_button, silent_mode); gtk_widget_set_sensitive(GTK_WIDGET(announce_button), !silent_mode); }
GtkWidget *gui_build_interface(void) { GtkWidget *vbox; GtkWidget *menubar; GtkActionGroup *action_group; GtkAccelGroup *accel_group; GError *error = NULL; gchar *icon_file; player_init(); gmap = guimap_new(); register_pixmaps(); app_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); /* The name of the application */ gtk_window_set_title(GTK_WINDOW(app_window), _("Pioneers")); vbox = gtk_vbox_new(FALSE, 0); gtk_widget_show(vbox); gtk_container_add(GTK_CONTAINER(app_window), vbox); action_group = gtk_action_group_new("MenuActions"); gtk_action_group_set_translation_domain(action_group, PACKAGE); gtk_action_group_add_actions(action_group, entries, G_N_ELEMENTS(entries), app_window); gtk_action_group_add_toggle_actions(action_group, toggle_entries, G_N_ELEMENTS(toggle_entries), app_window); ui_manager = gtk_ui_manager_new(); gtk_ui_manager_insert_action_group(ui_manager, action_group, 0); accel_group = gtk_ui_manager_get_accel_group(ui_manager); gtk_window_add_accel_group(GTK_WINDOW(app_window), accel_group); error = NULL; if (!gtk_ui_manager_add_ui_from_string (ui_manager, ui_description, -1, &error)) { g_message("building menus failed: %s", error->message); g_error_free(error); return NULL; } icon_file = g_build_filename(DATADIR, "pixmaps", PIONEERS_ICON_FILE, NULL); if (g_file_test(icon_file, G_FILE_TEST_EXISTS)) { gtk_window_set_default_icon_from_file(icon_file, NULL); } else { /* Missing pixmap, main icon file */ g_warning("Pixmap not found: %s", icon_file); } g_free(icon_file); color_chat_enabled = config_get_int_with_default("settings/color_chat", TRUE); color_messages_enabled = config_get_int_with_default("settings/color_messages", TRUE); log_set_func_message_color_enable(color_messages_enabled); set_color_summary(config_get_int_with_default ("settings/color_summary", TRUE)); set_silent_mode(config_get_int_with_default ("settings/silent_mode", FALSE)); set_announce_player(config_get_int_with_default ("settings/announce_player", TRUE)); legend_page_enabled = config_get_int_with_default("settings/legend_page", FALSE); menubar = gtk_ui_manager_get_widget(ui_manager, "/MainMenu"); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0); toolbar = gtk_ui_manager_get_widget(ui_manager, "/MainToolbar"); gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), build_main_interface(), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), build_status_bar(), FALSE, FALSE, 0); gtk_toggle_action_set_active(GTK_TOGGLE_ACTION (gtk_ui_manager_get_action (ui_manager, "ui/MainMenu/SettingsMenu/ShowHideToolbar")), config_get_int_with_default ("settings/show_toolbar", TRUE)); g_signal_connect(G_OBJECT(app_window), "key_press_event", G_CALLBACK(hotkeys_handler), NULL); gtk_widget_show(app_window); frontend_gui_register_action(getAction(GUI_CONNECT), GUI_CONNECT); frontend_gui_register_action(getAction(GUI_DISCONNECT), GUI_DISCONNECT); #ifdef ADMIN_GTK /** @todo RC 2005-05-26 Admin interface: Not tested */ frontend_gui_register_action(gtk_ui_manager_get_action (manager, "ui/MainMenu/GameMenu/GameAdmin"), GUI_ADMIN); #endif frontend_gui_register_action(getAction(GUI_CHANGE_NAME), GUI_CHANGE_NAME); frontend_gui_register_action(getAction(GUI_ROLL), GUI_ROLL); frontend_gui_register_action(getAction(GUI_TRADE), GUI_TRADE); frontend_gui_register_action(getAction(GUI_UNDO), GUI_UNDO); frontend_gui_register_action(getAction(GUI_FINISH), GUI_FINISH); frontend_gui_register_action(getAction(GUI_ROAD), GUI_ROAD); frontend_gui_register_action(getAction(GUI_SHIP), GUI_SHIP); frontend_gui_register_action(getAction(GUI_MOVE_SHIP), GUI_MOVE_SHIP); frontend_gui_register_action(getAction(GUI_BRIDGE), GUI_BRIDGE); frontend_gui_register_action(getAction(GUI_SETTLEMENT), GUI_SETTLEMENT); frontend_gui_register_action(getAction(GUI_CITY), GUI_CITY); frontend_gui_register_action(getAction(GUI_BUY_DEVELOP), GUI_BUY_DEVELOP); frontend_gui_register_action(getAction(GUI_CITY_WALL), GUI_CITY_WALL); #if 0 frontend_gui_register_destroy(gtk_ui_manager_get_action (manager, "GameQuit"), GUI_QUIT); #endif gui_toolbar_show_button("BuildShip", FALSE); gui_toolbar_show_button("MoveShip", FALSE); gui_toolbar_show_button("BuildBridge", FALSE); gui_toolbar_show_accelerators(config_get_int_with_default ("settings/toolbar_show_accelerators", TRUE)); gtk_ui_manager_ensure_update(ui_manager); gtk_widget_show(app_window); g_signal_connect(G_OBJECT(app_window), "delete_event", G_CALLBACK(quit_cb), NULL); return app_window; }