]> git.sesse.net Git - vlc/commitdiff
Non-functional Familiar Linux user interface.
authorJean-Paul Saman <jpsaman@videolan.org>
Mon, 22 Jul 2002 20:52:42 +0000 (20:52 +0000)
committerJean-Paul Saman <jpsaman@videolan.org>
Mon, 22 Jul 2002 20:52:42 +0000 (20:52 +0000)
plugins/familiar/familiar.c
plugins/familiar/familiar.glade
plugins/familiar/familiar_callbacks.c
plugins/familiar/familiar_callbacks.h
plugins/familiar/familiar_interface.c

index 7dcd934029bc7cb780856f8d1f5cd505b22f4025..c1ea04cd876b6f29c5ffb3d7de23e719c742a9c7 100644 (file)
@@ -2,7 +2,7 @@
  * familiar.c : familiar plugin for vlc
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: familiar.c,v 1.2 2002/07/22 19:49:40 jpsaman Exp $
+ * $Id: familiar.c,v 1.3 2002/07/22 20:52:42 jpsaman Exp $
  *
  * Authors: Jean-Paul Saman <jpsaman@wxs.nl>
  *
@@ -61,7 +61,7 @@ MODULE_CONFIG_STOP
 
 MODULE_INIT_START
     SET_DESCRIPTION( _("Familiar Linux Gtk+ interface module") )
-    ADD_CAPABILITY( INTF, 590 )
+    ADD_CAPABILITY( INTF, 70 )
 MODULE_INIT_STOP
 
 MODULE_ACTIVATE_START
index 1272aa4724f2e7d2c9b4716437be6fbeceb7d187..6a91c5edc4d6c84157417cd62b92ae091689a7ed 100644 (file)
   <name>familiar</name>
   <width>240</width>
   <height>320</height>
+  <signal>
+    <name>destroy</name>
+    <handler>on_familiar_destroy</handler>
+    <last_modification_time>Mon, 22 Jul 2002 18:58:45 GMT</last_modification_time>
+  </signal>
   <title>vlc (familiar)</title>
   <type>GTK_WINDOW_TOPLEVEL</type>
   <position>GTK_WIN_POS_NONE</position>
       </child>
 
       <widget>
-       <class>Placeholder</class>
+       <class>GtkFixed</class>
+       <name>fixedMedia</name>
+
+       <widget>
+         <class>GtkLabel</class>
+         <name>labelUrl</name>
+         <x>4</x>
+         <y>8</y>
+         <width>38</width>
+         <height>18</height>
+         <label>URL:</label>
+         <justify>GTK_JUSTIFY_CENTER</justify>
+         <wrap>False</wrap>
+         <xalign>0.5</xalign>
+         <yalign>0.5</yalign>
+         <xpad>0</xpad>
+         <ypad>0</ypad>
+       </widget>
+
+       <widget>
+         <class>GtkList</class>
+         <name>listMedia</name>
+         <x>8</x>
+         <y>40</y>
+         <width>220</width>
+         <height>200</height>
+         <tooltip>Select multimedia file.</tooltip>
+         <selection_mode>GTK_SELECTION_MULTIPLE</selection_mode>
+       </widget>
+
+       <widget>
+         <class>GtkCombo</class>
+         <name>comboURL</name>
+         <x>46</x>
+         <y>6</y>
+         <width>185</width>
+         <height>24</height>
+         <value_in_list>False</value_in_list>
+         <ok_if_empty>True</ok_if_empty>
+         <case_sensitive>False</case_sensitive>
+         <use_arrows>True</use_arrows>
+         <use_arrows_always>False</use_arrows_always>
+         <items>file://
+ftp://localhost
+http://localhost
+udp://localhost:1234/
+</items>
+
+         <widget>
+           <class>GtkEntry</class>
+           <child_name>GtkCombo:entry</child_name>
+           <name>combo-entry1</name>
+           <can_focus>True</can_focus>
+           <editable>True</editable>
+           <text_visible>True</text_visible>
+           <text_max_length>0</text_max_length>
+           <text>file://</text>
+         </widget>
+       </widget>
       </widget>
 
       <widget>
       </widget>
 
       <widget>
-       <class>Placeholder</class>
+       <class>GtkFixed</class>
+       <name>fixedPreferences</name>
+
+       <widget>
+         <class>GtkButton</class>
+         <name>buttonSave</name>
+         <x>8</x>
+         <y>216</y>
+         <width>54</width>
+         <height>24</height>
+         <can_focus>True</can_focus>
+         <label>Save</label>
+         <relief>GTK_RELIEF_NORMAL</relief>
+       </widget>
+
+       <widget>
+         <class>GtkButton</class>
+         <name>buttonApply</name>
+         <x>64</x>
+         <y>216</y>
+         <width>54</width>
+         <height>24</height>
+         <can_focus>True</can_focus>
+         <label>Apply</label>
+         <relief>GTK_RELIEF_NORMAL</relief>
+       </widget>
+
+       <widget>
+         <class>GtkButton</class>
+         <name>buttonCancel</name>
+         <x>176</x>
+         <y>216</y>
+         <width>54</width>
+         <height>24</height>
+         <can_focus>True</can_focus>
+         <label>Cancel</label>
+         <relief>GTK_RELIEF_NORMAL</relief>
+       </widget>
+
+       <widget>
+         <class>GtkFrame</class>
+         <name>frameDefaultURL</name>
+         <x>8</x>
+         <y>8</y>
+         <width>220</width>
+         <height>60</height>
+         <label>Default URL:</label>
+         <label_xalign>0</label_xalign>
+         <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+
+         <widget>
+           <class>GtkFixed</class>
+           <name>fixed3</name>
+
+           <widget>
+             <class>GtkCombo</class>
+             <name>comboDefaultURL</name>
+             <x>8</x>
+             <y>4</y>
+             <width>200</width>
+             <height>24</height>
+             <value_in_list>False</value_in_list>
+             <ok_if_empty>True</ok_if_empty>
+             <case_sensitive>False</case_sensitive>
+             <use_arrows>True</use_arrows>
+             <use_arrows_always>False</use_arrows_always>
+             <items>file://
+ftp://localhost
+http://localhost
+udp://localhost:1234/
+</items>
+
+             <widget>
+               <class>GtkEntry</class>
+               <child_name>GtkCombo:entry</child_name>
+               <name>combo-entry2</name>
+               <can_focus>True</can_focus>
+               <editable>True</editable>
+               <text_visible>True</text_visible>
+               <text_max_length>0</text_max_length>
+               <text>file://</text>
+             </widget>
+           </widget>
+         </widget>
+       </widget>
+
+       <widget>
+         <class>GtkFrame</class>
+         <name>frameIP</name>
+         <x>8</x>
+         <y>72</y>
+         <width>220</width>
+         <height>60</height>
+         <label>IP version:</label>
+         <label_xalign>0</label_xalign>
+         <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+
+         <widget>
+           <class>GtkFixed</class>
+           <name>fixed2</name>
+
+           <widget>
+             <class>GtkRadioButton</class>
+             <name>rbIPv6</name>
+             <x>112</x>
+             <y>8</y>
+             <width>104</width>
+             <height>26</height>
+             <can_focus>True</can_focus>
+             <label>IPv6</label>
+             <active>False</active>
+             <draw_indicator>True</draw_indicator>
+             <group>IPversion</group>
+           </widget>
+
+           <widget>
+             <class>GtkRadioButton</class>
+             <name>rbIPv4</name>
+             <x>8</x>
+             <y>8</y>
+             <width>104</width>
+             <height>26</height>
+             <can_focus>True</can_focus>
+             <label>IPv4</label>
+             <active>True</active>
+             <draw_indicator>True</draw_indicator>
+             <group>IPversion</group>
+           </widget>
+         </widget>
+       </widget>
       </widget>
 
       <widget>
        <class>GtkLabel</class>
        <child_name>Notebook:tab</child_name>
-       <name>preference</name>
+       <name>preferences</name>
        <label>Preference</label>
        <justify>GTK_JUSTIFY_CENTER</justify>
        <wrap>False</wrap>
       </widget>
 
       <widget>
-       <class>Placeholder</class>
-      </widget>
+       <class>GtkFixed</class>
+       <name>fixedAbout</name>
 
-      <widget>
-       <class>GtkLabel</class>
-       <child_name>Notebook:tab</child_name>
-       <name>help</name>
-       <label>Help</label>
-       <justify>GTK_JUSTIFY_CENTER</justify>
-       <wrap>False</wrap>
-       <xalign>0.5</xalign>
-       <yalign>0.5</yalign>
-       <xpad>0</xpad>
-       <ypad>0</ypad>
-      </widget>
+       <widget>
+         <class>GtkPixmap</class>
+         <name>logo</name>
+         <x>8</x>
+         <y>0</y>
+         <width>50</width>
+         <height>50</height>
+         <filename>vlc32x32.xpm</filename>
+         <xalign>0.5</xalign>
+         <yalign>0.5</yalign>
+         <xpad>0</xpad>
+         <ypad>0</ypad>
+         <build_insensitive>True</build_insensitive>
+       </widget>
 
-      <widget>
-       <class>Placeholder</class>
+       <widget>
+         <class>GtkLabel</class>
+         <name>labelVlc</name>
+         <x>64</x>
+         <y>8</y>
+         <width>120</width>
+         <height>40</height>
+         <label>VideoLAN Client
+ for familiar Linux</label>
+         <justify>GTK_JUSTIFY_CENTER</justify>
+         <wrap>True</wrap>
+         <xalign>0.5</xalign>
+         <yalign>0.5</yalign>
+         <xpad>0</xpad>
+         <ypad>0</ypad>
+       </widget>
+
+       <widget>
+         <class>GtkLabel</class>
+         <name>labelCopyright</name>
+         <x>16</x>
+         <y>56</y>
+         <width>200</width>
+         <height>18</height>
+         <label>(c) 2002, the VideoLAN Team</label>
+         <justify>GTK_JUSTIFY_CENTER</justify>
+         <wrap>False</wrap>
+         <xalign>0.5</xalign>
+         <yalign>0.5</yalign>
+         <xpad>0</xpad>
+         <ypad>0</ypad>
+       </widget>
+
+       <widget>
+         <class>GtkLabel</class>
+         <name>labelAuthors</name>
+         <x>16</x>
+         <y>80</y>
+         <width>200</width>
+         <height>40</height>
+         <label>Authors: The VideoLAN Team, http://www.videolan.org</label>
+         <justify>GTK_JUSTIFY_CENTER</justify>
+         <wrap>True</wrap>
+         <xalign>0.5</xalign>
+         <yalign>0.5</yalign>
+         <xpad>0</xpad>
+         <ypad>0</ypad>
+       </widget>
+
+       <widget>
+         <class>GtkLabel</class>
+         <name>labelAbout</name>
+         <x>16</x>
+         <y>128</y>
+         <width>200</width>
+         <height>70</height>
+         <label>The VideoLAN Client is a MPEG, MPEG 2, MP3, DivX player, that accepts input from local or network sources.</label>
+         <justify>GTK_JUSTIFY_LEFT</justify>
+         <wrap>True</wrap>
+         <xalign>0.5</xalign>
+         <yalign>0.5</yalign>
+         <xpad>0</xpad>
+         <ypad>0</ypad>
+       </widget>
       </widget>
 
       <widget>
index 39581e4ba84cd3c6e03d31c2dacae2ea229bf029..eba23b8a101503652afd29bb79e6f59385b9c7c8 100644 (file)
@@ -77,3 +77,11 @@ on_xpm_forward_button_press_event      (GtkWidget       *widget,
   return FALSE;
 }
 
+
+void
+on_familiar_destroy                    (GtkObject       *object,
+                                        gpointer         user_data)
+{
+  gtk_main_quit();
+}
+
index 29c6eab1bae82bb0ee8b8988fc6746894909f50a..d76e07f729ff088890c167f24d82dcbe5b09c372 100644 (file)
@@ -34,3 +34,7 @@ gboolean
 on_xpm_forward_button_press_event      (GtkWidget       *widget,
                                         GdkEventButton  *event,
                                         gpointer         user_data);
+
+void
+on_familiar_destroy                    (GtkObject       *object,
+                                        gpointer         user_data);
index d52fdda16932e91f3f5a386c4d8d3b4b7375109c..479f5f72377dbedc9619f4ebbdd66673ad7b94d2 100644 (file)
@@ -33,11 +33,38 @@ create_familiar (void)
   GtkWidget *xpm_forward;
   GtkWidget *progress;
   GtkWidget *notebook;
-  GtkWidget *empty_notebook_page;
+  GtkWidget *fixedMedia;
+  GtkWidget *labelUrl;
+  GtkWidget *listMedia;
+  GtkWidget *comboURL;
+  GList *comboURL_items = NULL;
+  GtkWidget *combo_entry1;
   GtkWidget *media;
-  GtkWidget *preference;
-  GtkWidget *help;
+  GtkWidget *fixedPreferences;
+  GtkWidget *buttonSave;
+  GtkWidget *buttonApply;
+  GtkWidget *buttonCancel;
+  GtkWidget *frameDefaultURL;
+  GtkWidget *fixed3;
+  GtkWidget *comboDefaultURL;
+  GList *comboDefaultURL_items = NULL;
+  GtkWidget *combo_entry2;
+  GtkWidget *frameIP;
+  GtkWidget *fixed2;
+  GSList *IPversion_group = NULL;
+  GtkWidget *rbIPv6;
+  GtkWidget *rbIPv4;
+  GtkWidget *preferences;
+  GtkWidget *fixedAbout;
+  GtkWidget *logo;
+  GtkWidget *labelVlc;
+  GtkWidget *labelCopyright;
+  GtkWidget *labelAuthors;
+  GtkWidget *labelAbout;
   GtkWidget *about;
+  GtkTooltips *tooltips;
+
+  tooltips = gtk_tooltips_new ();
 
   familiar = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_object_set_data (GTK_OBJECT (familiar), "familiar", familiar);
@@ -133,9 +160,54 @@ create_familiar (void)
   gtk_widget_show (notebook);
   gtk_box_pack_start (GTK_BOX (vbox), notebook, TRUE, TRUE, 0);
 
-  empty_notebook_page = gtk_vbox_new (FALSE, 0);
-  gtk_widget_show (empty_notebook_page);
-  gtk_container_add (GTK_CONTAINER (notebook), empty_notebook_page);
+  fixedMedia = gtk_fixed_new ();
+  gtk_widget_ref (fixedMedia);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "fixedMedia", fixedMedia,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (fixedMedia);
+  gtk_container_add (GTK_CONTAINER (notebook), fixedMedia);
+
+  labelUrl = gtk_label_new (_("URL:"));
+  gtk_widget_ref (labelUrl);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "labelUrl", labelUrl,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (labelUrl);
+  gtk_fixed_put (GTK_FIXED (fixedMedia), labelUrl, 4, 8);
+  gtk_widget_set_uposition (labelUrl, 4, 8);
+  gtk_widget_set_usize (labelUrl, 38, 18);
+
+  listMedia = gtk_list_new ();
+  gtk_widget_ref (listMedia);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "listMedia", listMedia,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (listMedia);
+  gtk_fixed_put (GTK_FIXED (fixedMedia), listMedia, 8, 40);
+  gtk_widget_set_uposition (listMedia, 8, 40);
+  gtk_widget_set_usize (listMedia, 220, 200);
+  gtk_tooltips_set_tip (tooltips, listMedia, _("Select multimedia file."), NULL);
+  gtk_list_set_selection_mode (GTK_LIST (listMedia), GTK_SELECTION_MULTIPLE);
+
+  comboURL = gtk_combo_new ();
+  gtk_widget_ref (comboURL);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "comboURL", comboURL,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (comboURL);
+  gtk_fixed_put (GTK_FIXED (fixedMedia), comboURL, 46, 6);
+  gtk_widget_set_uposition (comboURL, 46, 6);
+  gtk_widget_set_usize (comboURL, 185, 24);
+  comboURL_items = g_list_append (comboURL_items, (gpointer) _("file://"));
+  comboURL_items = g_list_append (comboURL_items, (gpointer) _("ftp://localhost"));
+  comboURL_items = g_list_append (comboURL_items, (gpointer) _("http://localhost"));
+  comboURL_items = g_list_append (comboURL_items, (gpointer) _("udp://localhost:1234/"));
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboURL), comboURL_items);
+  g_list_free (comboURL_items);
+
+  combo_entry1 = GTK_COMBO (comboURL)->entry;
+  gtk_widget_ref (combo_entry1);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "combo_entry1", combo_entry1,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (combo_entry1);
+  gtk_entry_set_text (GTK_ENTRY (combo_entry1), _("file://"));
 
   media = gtk_label_new (_("Media"));
   gtk_widget_ref (media);
@@ -144,39 +216,188 @@ create_familiar (void)
   gtk_widget_show (media);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 0), media);
 
-  empty_notebook_page = gtk_vbox_new (FALSE, 0);
-  gtk_widget_show (empty_notebook_page);
-  gtk_container_add (GTK_CONTAINER (notebook), empty_notebook_page);
+  fixedPreferences = gtk_fixed_new ();
+  gtk_widget_ref (fixedPreferences);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "fixedPreferences", fixedPreferences,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (fixedPreferences);
+  gtk_container_add (GTK_CONTAINER (notebook), fixedPreferences);
+
+  buttonSave = gtk_button_new_with_label (_("Save"));
+  gtk_widget_ref (buttonSave);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "buttonSave", buttonSave,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (buttonSave);
+  gtk_fixed_put (GTK_FIXED (fixedPreferences), buttonSave, 8, 216);
+  gtk_widget_set_uposition (buttonSave, 8, 216);
+  gtk_widget_set_usize (buttonSave, 54, 24);
+
+  buttonApply = gtk_button_new_with_label (_("Apply"));
+  gtk_widget_ref (buttonApply);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "buttonApply", buttonApply,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (buttonApply);
+  gtk_fixed_put (GTK_FIXED (fixedPreferences), buttonApply, 64, 216);
+  gtk_widget_set_uposition (buttonApply, 64, 216);
+  gtk_widget_set_usize (buttonApply, 54, 24);
 
-  preference = gtk_label_new (_("Preference"));
-  gtk_widget_ref (preference);
-  gtk_object_set_data_full (GTK_OBJECT (familiar), "preference", preference,
+  buttonCancel = gtk_button_new_with_label (_("Cancel"));
+  gtk_widget_ref (buttonCancel);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "buttonCancel", buttonCancel,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (preference);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 1), preference);
+  gtk_widget_show (buttonCancel);
+  gtk_fixed_put (GTK_FIXED (fixedPreferences), buttonCancel, 176, 216);
+  gtk_widget_set_uposition (buttonCancel, 176, 216);
+  gtk_widget_set_usize (buttonCancel, 54, 24);
 
-  empty_notebook_page = gtk_vbox_new (FALSE, 0);
-  gtk_widget_show (empty_notebook_page);
-  gtk_container_add (GTK_CONTAINER (notebook), empty_notebook_page);
+  frameDefaultURL = gtk_frame_new (_("Default URL:"));
+  gtk_widget_ref (frameDefaultURL);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "frameDefaultURL", frameDefaultURL,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (frameDefaultURL);
+  gtk_fixed_put (GTK_FIXED (fixedPreferences), frameDefaultURL, 8, 8);
+  gtk_widget_set_uposition (frameDefaultURL, 8, 8);
+  gtk_widget_set_usize (frameDefaultURL, 220, 60);
 
-  help = gtk_label_new (_("Help"));
-  gtk_widget_ref (help);
-  gtk_object_set_data_full (GTK_OBJECT (familiar), "help", help,
+  fixed3 = gtk_fixed_new ();
+  gtk_widget_ref (fixed3);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "fixed3", fixed3,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (help);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 2), help);
+  gtk_widget_show (fixed3);
+  gtk_container_add (GTK_CONTAINER (frameDefaultURL), fixed3);
 
-  empty_notebook_page = gtk_vbox_new (FALSE, 0);
-  gtk_widget_show (empty_notebook_page);
-  gtk_container_add (GTK_CONTAINER (notebook), empty_notebook_page);
+  comboDefaultURL = gtk_combo_new ();
+  gtk_widget_ref (comboDefaultURL);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "comboDefaultURL", comboDefaultURL,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (comboDefaultURL);
+  gtk_fixed_put (GTK_FIXED (fixed3), comboDefaultURL, 8, 4);
+  gtk_widget_set_uposition (comboDefaultURL, 8, 4);
+  gtk_widget_set_usize (comboDefaultURL, 200, 24);
+  comboDefaultURL_items = g_list_append (comboDefaultURL_items, (gpointer) _("file://"));
+  comboDefaultURL_items = g_list_append (comboDefaultURL_items, (gpointer) _("ftp://localhost"));
+  comboDefaultURL_items = g_list_append (comboDefaultURL_items, (gpointer) _("http://localhost"));
+  comboDefaultURL_items = g_list_append (comboDefaultURL_items, (gpointer) _("udp://localhost:1234/"));
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboDefaultURL), comboDefaultURL_items);
+  g_list_free (comboDefaultURL_items);
+
+  combo_entry2 = GTK_COMBO (comboDefaultURL)->entry;
+  gtk_widget_ref (combo_entry2);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "combo_entry2", combo_entry2,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (combo_entry2);
+  gtk_entry_set_text (GTK_ENTRY (combo_entry2), _("file://"));
+
+  frameIP = gtk_frame_new (_("IP version:"));
+  gtk_widget_ref (frameIP);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "frameIP", frameIP,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (frameIP);
+  gtk_fixed_put (GTK_FIXED (fixedPreferences), frameIP, 8, 72);
+  gtk_widget_set_uposition (frameIP, 8, 72);
+  gtk_widget_set_usize (frameIP, 220, 60);
+
+  fixed2 = gtk_fixed_new ();
+  gtk_widget_ref (fixed2);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "fixed2", fixed2,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (fixed2);
+  gtk_container_add (GTK_CONTAINER (frameIP), fixed2);
+
+  rbIPv6 = gtk_radio_button_new_with_label (IPversion_group, _("IPv6"));
+  IPversion_group = gtk_radio_button_group (GTK_RADIO_BUTTON (rbIPv6));
+  gtk_widget_ref (rbIPv6);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "rbIPv6", rbIPv6,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (rbIPv6);
+  gtk_fixed_put (GTK_FIXED (fixed2), rbIPv6, 112, 8);
+  gtk_widget_set_uposition (rbIPv6, 112, 8);
+  gtk_widget_set_usize (rbIPv6, 104, 26);
+
+  rbIPv4 = gtk_radio_button_new_with_label (IPversion_group, _("IPv4"));
+  IPversion_group = gtk_radio_button_group (GTK_RADIO_BUTTON (rbIPv4));
+  gtk_widget_ref (rbIPv4);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "rbIPv4", rbIPv4,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (rbIPv4);
+  gtk_fixed_put (GTK_FIXED (fixed2), rbIPv4, 8, 8);
+  gtk_widget_set_uposition (rbIPv4, 8, 8);
+  gtk_widget_set_usize (rbIPv4, 104, 26);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rbIPv4), TRUE);
+
+  preferences = gtk_label_new (_("Preference"));
+  gtk_widget_ref (preferences);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "preferences", preferences,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (preferences);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 1), preferences);
+
+  fixedAbout = gtk_fixed_new ();
+  gtk_widget_ref (fixedAbout);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "fixedAbout", fixedAbout,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (fixedAbout);
+  gtk_container_add (GTK_CONTAINER (notebook), fixedAbout);
+
+  logo = create_pixmap (familiar, "vlc32x32.xpm");
+  gtk_widget_ref (logo);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "logo", logo,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (logo);
+  gtk_fixed_put (GTK_FIXED (fixedAbout), logo, 8, 0);
+  gtk_widget_set_uposition (logo, 8, 0);
+  gtk_widget_set_usize (logo, 50, 50);
+
+  labelVlc = gtk_label_new (_("VideoLAN Client\n for familiar Linux"));
+  gtk_widget_ref (labelVlc);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "labelVlc", labelVlc,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (labelVlc);
+  gtk_fixed_put (GTK_FIXED (fixedAbout), labelVlc, 64, 8);
+  gtk_widget_set_uposition (labelVlc, 64, 8);
+  gtk_widget_set_usize (labelVlc, 120, 40);
+  gtk_label_set_line_wrap (GTK_LABEL (labelVlc), TRUE);
+
+  labelCopyright = gtk_label_new (_("(c) 2002, the VideoLAN Team"));
+  gtk_widget_ref (labelCopyright);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "labelCopyright", labelCopyright,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (labelCopyright);
+  gtk_fixed_put (GTK_FIXED (fixedAbout), labelCopyright, 16, 56);
+  gtk_widget_set_uposition (labelCopyright, 16, 56);
+  gtk_widget_set_usize (labelCopyright, 200, 18);
+
+  labelAuthors = gtk_label_new (_("Authors: The VideoLAN Team, http://www.videolan.org"));
+  gtk_widget_ref (labelAuthors);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "labelAuthors", labelAuthors,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (labelAuthors);
+  gtk_fixed_put (GTK_FIXED (fixedAbout), labelAuthors, 16, 80);
+  gtk_widget_set_uposition (labelAuthors, 16, 80);
+  gtk_widget_set_usize (labelAuthors, 200, 40);
+  gtk_label_set_line_wrap (GTK_LABEL (labelAuthors), TRUE);
+
+  labelAbout = gtk_label_new (_("The VideoLAN Client is a MPEG, MPEG 2, MP3, DivX player, that accepts input from local or network sources."));
+  gtk_widget_ref (labelAbout);
+  gtk_object_set_data_full (GTK_OBJECT (familiar), "labelAbout", labelAbout,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (labelAbout);
+  gtk_fixed_put (GTK_FIXED (fixedAbout), labelAbout, 16, 128);
+  gtk_widget_set_uposition (labelAbout, 16, 128);
+  gtk_widget_set_usize (labelAbout, 200, 70);
+  gtk_label_set_justify (GTK_LABEL (labelAbout), GTK_JUSTIFY_LEFT);
+  gtk_label_set_line_wrap (GTK_LABEL (labelAbout), TRUE);
 
   about = gtk_label_new (_("About"));
   gtk_widget_ref (about);
   gtk_object_set_data_full (GTK_OBJECT (familiar), "about", about,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (about);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 3), about);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 2), about);
 
+  gtk_signal_connect (GTK_OBJECT (familiar), "destroy",
+                      GTK_SIGNAL_FUNC (on_familiar_destroy),
+                      NULL);
   gtk_signal_connect (GTK_OBJECT (xpm_open), "button_press_event",
                       GTK_SIGNAL_FUNC (on_xpm_open_button_press_event),
                       NULL);
@@ -199,6 +420,8 @@ create_familiar (void)
                       GTK_SIGNAL_FUNC (on_xpm_forward_button_press_event),
                       NULL);
 
+  gtk_object_set_data (GTK_OBJECT (familiar), "tooltips", tooltips);
+
   return familiar;
 }