+ int off = 0;
+
+ if (have_video && !_video_panel) {
+ _video_panel = new VideoPanel (this);
+ _notebook->InsertPage (off, _video_panel, _video_panel->name());
+ } else if (!have_video && _video_panel) {
+ _notebook->DeletePage (off);
+ _video_panel = 0;
+ }
+
+ if (have_video) {
+ ++off;
+ }
+
+ if (have_audio && !_audio_panel) {
+ _audio_panel = new AudioPanel (this);
+ _notebook->InsertPage (off, _audio_panel, _audio_panel->name());
+ } else if (!have_audio && _audio_panel) {
+ _notebook->DeletePage (off);
+ _audio_panel = 0;
+ }
+
+ if (have_audio) {
+ ++off;
+ }
+
+ for (int i = 0; i < TEXT_COUNT; ++i) {
+ if (have_text[i] && !_text_panel[i]) {
+ _text_panel[i] = new TextPanel (this, static_cast<TextType>(i));
+ _notebook->InsertPage (off, _text_panel[i], _text_panel[i]->name());
+ } else if (!have_text[i] && _text_panel[i]) {
+ _notebook->DeletePage (off);
+ _text_panel[i] = 0;
+ }
+ if (have_text[i]) {
+ ++off;
+ }
+ }
+
+ /* Set up the tab selection */
+
+ bool done = false;
+ for (size_t i = 0; i < _notebook->GetPageCount(); ++i) {
+ if (_notebook->GetPage(i) == _last_selected_tab) {
+ _notebook->SetSelection (i);
+ done = true;
+ }
+ }
+
+ if (!done && _notebook->GetPageCount() > 0) {
+ _notebook->SetSelection (0);
+ }
+
+ setup_sensitivity ();