]> git.sesse.net Git - vlc/commitdiff
* ./plugins/win32:
authorOlivier Teulière <ipkiss@videolan.org>
Tue, 2 Apr 2002 15:18:32 +0000 (15:18 +0000)
committerOlivier Teulière <ipkiss@videolan.org>
Tue, 2 Apr 2002 15:18:32 +0000 (15:18 +0000)
        - fixed a few bugs in the preferences
        - better auto-resizing of the main window
        - the disc dialog now respects the preferences settings

plugins/win32/disc.cpp
plugins/win32/disc.dfm
plugins/win32/disc.h
plugins/win32/mainframe.cpp
plugins/win32/mainframe.dfm
plugins/win32/preferences.cpp
plugins/win32/preferences.h

index 642372b6dffb8e5bc004b2144bf5f38f69dc413e..5d65b5cbf2063509ce8958e4614d92836a77b392 100644 (file)
@@ -31,9 +31,9 @@
 #include "interface.h"\r
 #include "intf_playlist.h"\r
 \r
+#include "disc.h"\r
 #include "win32_common.h"\r
 \r
-#include "disc.h"\r
 //---------------------------------------------------------------------------\r
 //#pragma package(smart_init)\r
 #pragma resource "*.dfm"\r
@@ -44,20 +44,7 @@ extern  struct intf_thread_s *p_intfGlobal;
 __fastcall TDiscDlg::TDiscDlg( TComponent* Owner )\r
         : TForm( Owner )\r
 {\r
-    char *psz_dvd_device = config_GetPszVariable( "dvd_device" );\r
-    char *psz_vcd_device = config_GetPszVariable( "vcd_device" );\r
-\r
-    if( psz_dvd_device )\r
-    {\r
-        EditDevice->Text.sprintf( "%s", psz_dvd_device );\r
-        free( psz_dvd_device );\r
-    }\r
-\r
-    if( psz_vcd_device )\r
-    {\r
-        EditDevice->Text.sprintf( "%s", psz_vcd_device );\r
-        free( psz_vcd_device );\r
-    }\r
+    RadioGroupTypeClick( RadioGroupType );\r
 }\r
 //---------------------------------------------------------------------------\r
 void __fastcall TDiscDlg::FormShow( TObject *Sender )\r
@@ -95,7 +82,7 @@ void __fastcall TDiscDlg::BitBtnOkClick( TObject *Sender )
     {\r
         Method = "vcd";\r
     }\r
-    \r
+\r
     /* Select title and chapter */\r
     Title.sprintf( "%d", UpDownTitle->Position );\r
     Chapter.sprintf( "%d", UpDownChapter->Position );\r
@@ -116,4 +103,25 @@ void __fastcall TDiscDlg::BitBtnOkClick( TObject *Sender )
     intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );\r
 }\r
 //---------------------------------------------------------------------------\r
+void __fastcall TDiscDlg::RadioGroupTypeClick( TObject *Sender )\r
+{\r
+    TRadioGroup *RadioGroupType = (TRadioGroup *)Sender;\r
+    char *psz_device;\r
+\r
+    if( RadioGroupType->ItemIndex == 0 )\r
+    {\r
+        psz_device = config_GetPszVariable( "dvd_device" );\r
+    }\r
+    else\r
+    {\r
+        psz_device = config_GetPszVariable( "vcd_device" );\r
+    }\r
+\r
+    if( psz_device )\r
+    {\r
+        EditDevice->Text = psz_device;\r
+        free( psz_device );\r
+    }\r
+}\r
+//---------------------------------------------------------------------------\r
 \r
index e579aa11d177b1ec686dde05086a9d878f53b55c..788bb2b5b41c5dedd150d11ba8f364bba5eb32c8 100644 (file)
@@ -329,6 +329,7 @@ object DiscDlg: TDiscDlg
       'DVD'\r
       'VCD')\r
     TabOrder = 0\r
+    OnClick = RadioGroupTypeClick\r
   end\r
   object BitBtnOk: TBitBtn\r
     Left = 8\r
index cc33ea8cd6ba7a6effcf6e18ce57d872378f9d63..646955c73e2002ca34d94f1f125d0bb2a0bc1361 100644 (file)
@@ -50,6 +50,7 @@ __published:  // IDE-managed Components
     void __fastcall FormHide(TObject *Sender);\r
     void __fastcall BitBtnCancelClick(TObject *Sender);\r
     void __fastcall BitBtnOkClick(TObject *Sender);\r
+    void __fastcall RadioGroupTypeClick(TObject *Sender);\r
 private:       // User declarations\r
 public:                // User declarations\r
     __fastcall TDiscDlg( TComponent* Owner );\r
index c540e945292068ac17c00ca32db187afc3d2671d..405e3341b07895e15aa595d7c9eb2532d31901d1 100644 (file)
@@ -635,9 +635,6 @@ void __fastcall TMainFrameDlg::ModeManage()
             i_Height += GroupBoxSlider->Height;\r
         }\r
 \r
-        /* resize main window */\r
-        this->Height = i_Height;\r
-\r
         /* control buttons for free pace streams */\r
         b_control = p_input_bank->pp_input[0]->stream.b_pace_control;\r
 \r
@@ -654,16 +651,16 @@ void __fastcall TMainFrameDlg::ModeManage()
     }\r
     else\r
     {\r
+        i_Height = StatusBar->Height + ToolBar->Height + 47;\r
+\r
         if( config_GetIntVariable( "network_channel" ) )\r
         {\r
             GroupBoxNetwork->Visible = true;\r
             LabelChannel->Visible = true;\r
+            i_Height += GroupBoxNetwork->Height;\r
         }\r
         else\r
         {\r
-            /* default mode */\r
-            ClientHeight = 37 + ToolBar->Height;\r
-\r
             /* unsensitize menus */\r
             MenuProgram->Enabled = false;\r
             MenuTitle->Enabled = false;\r
@@ -676,6 +673,9 @@ void __fastcall TMainFrameDlg::ModeManage()
         }\r
     }\r
 \r
+    /* resize main window */\r
+    this->Height = i_Height;\r
+\r
     /* set control items */\r
     ToolButtonBack->Enabled = false;\r
     ToolButtonStop->Enabled = true;\r
@@ -688,4 +688,5 @@ void __fastcall TMainFrameDlg::ModeManage()
     PopupSlow->Enabled = b_control;\r
     PopupFast->Enabled = b_control;\r
 }\r
+//---------------------------------------------------------------------------\r
 \r
index 3282bbb2492e5c044a762a0b2af4923d7d135275..af9d1c8b4c7509b7946551e1e72e0c5b5717f850 100644 (file)
@@ -3,6 +3,7 @@ object MainFrameDlg: TMainFrameDlg
   Top = 245\r
   Width = 534\r
   Height = 307\r
+  BorderIcons = [biSystemMenu, biMinimize]\r
   Caption = 'VideoLAN Client (win32 interface)'\r
   Color = clBtnFace\r
   Font.Charset = DEFAULT_CHARSET\r
@@ -599,7 +600,7 @@ object MainFrameDlg: TMainFrameDlg
     Left = 104\r
     Top = 208\r
     Bitmap = {\r
-      494C01010D000E00040020002000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600\r
+      494C01010D000E00040020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600\r
       0000000000003600000028000000800000008000000001002000000000000000\r
       0100000000000000000000000000000000000000000000000000000000000000\r
       0000000000000000000000000000000000000000000000000000000000000000\r
@@ -2715,7 +2716,8 @@ object MainFrameDlg: TMainFrameDlg
       E0000003F800001FC0000001FFFFF001F0000003FC00003FC0000003FFFFFC01\r
       FFFFF803FE00007FC0000007FFFFFF01FFFFFC07FF0000FFFFFFFE1FFFFFFFC1\r
       FFFFFE07FFC003FFFFFFFC3FFFFFFFF9FFFFFFFFFFF80FFFFFFFF8FFFFFFFFFF\r
-      FFFFFFFFFFFFFFFFFFFFF9FFFFFFFFFF}\r
+      FFFFFFFFFFFFFFFFFFFFF9FFFFFFFFFF00000000000000000000000000000000\r
+      000000000000}\r
   end\r
   object PopupMenuMain: TPopupMenu\r
     AutoPopup = False\r
index 48134b63b1ccde02f076cf37bea44d0d02420879..a04b669b4d178068b75443f908aeec49b53407b3 100644 (file)
@@ -23,6 +23,9 @@
 #include <vcl.h>\r
 #pragma hdrstop\r
 \r
+#include <stdlib.h>                                      /* malloc(), free() */\r
+#include <string.h>                                                /* strcmp */\r
+\r
 #include <videolan/vlc.h>\r
 \r
 #include "interface.h"\r
@@ -36,6 +39,7 @@
 \r
 extern struct intf_thread_s *p_intfGlobal;\r
 \r
+\r
 /****************************************************************************\r
  * Functions to help components creation\r
  ****************************************************************************/\r
@@ -124,6 +128,10 @@ TUpDown * __fastcall TGroupBoxPref::CreateUpDown( TWinControl *Parent,
     UpDown->Thousands = Thousands;\r
     return UpDown;\r
 }\r
+//---------------------------------------------------------------------------\r
+void __fastcall TGroupBoxPref::UpdateChanges()\r
+{\r
+}\r
 \r
 \r
 /****************************************************************************\r
@@ -163,7 +171,6 @@ __fastcall TGroupBoxPlugin::TGroupBoxPlugin( TComponent* Owner,
     vlc_mutex_lock( p_config->p_lock );\r
     Edit->Text = p_config->psz_value ? p_config->psz_value : "";\r
     vlc_mutex_unlock( p_config->p_lock );\r
-    Edit->OnChange = EditChange;\r
 \r
     Height = 233;\r
 };\r
@@ -182,7 +189,7 @@ void __fastcall TGroupBoxPlugin::ListViewSelectItem( TObject *Sender,
              p_module != NULL ;\r
              p_module = p_module->next )\r
         {\r
-            if( !strcmp( p_module->psz_name, Name.c_str() ) )\r
+            if( strcmp( p_module->psz_name, Name.c_str() ) == 0 )\r
             {\r
                 ModuleSelected = p_module;\r
                 LabelHint->Caption = p_module->psz_longname ?\r
@@ -203,13 +210,15 @@ void __fastcall TGroupBoxPlugin::ButtonSelectClick( TObject *Sender )
 //---------------------------------------------------------------------------\r
 void __fastcall TGroupBoxPlugin::ButtonConfigClick( TObject *Sender )\r
 {\r
-    /* FIWME: TODO */\r
+    /* FIXME: TODO */\r
 }\r
 //---------------------------------------------------------------------------\r
-void __fastcall TGroupBoxPlugin::EditChange( TObject *Sender )\r
+void __fastcall TGroupBoxPlugin::UpdateChanges()\r
 {\r
-    TEdit *Edit = (TEdit *)Sender;\r
-    p_config->psz_value = Edit->Text.c_str();\r
+    /* XXX: Necessary, since c_str() returns only a temporary pointer... */\r
+    free( p_config->psz_value );\r
+    p_config->psz_value = (char *)malloc( Edit->Text.Length() + 1 );\r
+    strcpy( p_config->psz_value, Edit->Text.c_str() );\r
 }\r
 \r
 \r
@@ -228,7 +237,6 @@ __fastcall TGroupBoxString::TGroupBoxString( TComponent* Owner,
     vlc_mutex_lock( p_config->p_lock );\r
     Edit->Text = p_config->psz_value ? p_config->psz_value : "";\r
     vlc_mutex_unlock( p_config->p_lock );\r
-    Edit->OnChange = EditChange;\r
 \r
     /* vertical alignment */\r
     Height = LabelDesc->Height + 24;\r
@@ -236,10 +244,12 @@ __fastcall TGroupBoxString::TGroupBoxString( TComponent* Owner,
     Edit->Top = Top + ( Height - Edit->Height ) / 2 + 4;\r
 };\r
 //---------------------------------------------------------------------------\r
-void __fastcall TGroupBoxString::EditChange( TObject *Sender )\r
+void __fastcall TGroupBoxString::UpdateChanges()\r
 {\r
-    TEdit *Edit = (TEdit *)Sender;\r
-    p_config->psz_value = Edit->Text.c_str();\r
+    /* XXX: Necessary, since c_str() returns only a temporary pointer... */\r
+    free( p_config->psz_value );\r
+    p_config->psz_value = (char *)malloc( Edit->Text.Length() + 1 );\r
+    strcpy( p_config->psz_value, Edit->Text.c_str() );\r
 }\r
 \r
 \r
@@ -255,7 +265,6 @@ __fastcall TGroupBoxInteger::TGroupBoxInteger( TComponent* Owner,
 \r
     /* init edit */\r
     Edit = CreateEdit( this, 16, 148, 24, 21, "" );\r
-    Edit->OnChange = EditChange;\r
 \r
     /* init updown */\r
     UpDown = CreateUpDown( this, -1, 32767, p_config->i_value, false );\r
@@ -267,9 +276,8 @@ __fastcall TGroupBoxInteger::TGroupBoxInteger( TComponent* Owner,
     Edit->Top = Top + ( Height - Edit->Height ) / 2 + 4;\r
 };\r
 //---------------------------------------------------------------------------\r
-void __fastcall TGroupBoxInteger::EditChange( TObject *Sender )\r
+void __fastcall TGroupBoxInteger::UpdateChanges()\r
 {\r
-    TEdit *Edit = (TEdit *)Sender;\r
     p_config->i_value = StrToInt( Edit->Text );\r
 }\r
 \r
@@ -287,7 +295,6 @@ __fastcall TGroupBoxBool::TGroupBoxBool( TComponent* Owner,
     /* init checkbox */\r
     CheckBox = CreateCheckBox( this, 16, 184, 28, 17, p_config->psz_text );\r
     CheckBox->Checked = p_config->i_value;\r
-    CheckBox->OnClick = CheckBoxClick;\r
 \r
     /* vertical alignment */\r
     Height = LabelDesc->Height + 24;\r
@@ -295,9 +302,8 @@ __fastcall TGroupBoxBool::TGroupBoxBool( TComponent* Owner,
     CheckBox->Top = Top + ( Height - CheckBox->Height ) / 2 + 4;\r
 };\r
 //---------------------------------------------------------------------------\r
-void __fastcall TGroupBoxBool::CheckBoxClick( TObject *Sender )\r
+void __fastcall TGroupBoxBool::UpdateChanges()\r
 {\r
-    TCheckBox *CheckBox = (TCheckBox *)Sender;\r
     p_config->i_value = CheckBox->Checked ? 1 : 0;\r
 }\r
 \r
@@ -346,19 +352,20 @@ void __fastcall TPreferencesDlg::FormHide( TObject *Sender )
 \r
 void __fastcall TPreferencesDlg::CreateConfigDialog( char *psz_module_name )\r
 {\r
-    bool config_dialog;\r
-    module_t *p_module;\r
-    module_t *p_module_plugins;\r
-    int i, j;\r
-\r
-    TTabSheet *TabSheet;\r
-    TScrollBox *ScrollBox;\r
-    TPanel *Panel;\r
-    TGroupBoxPlugin *GroupBoxPlugin;\r
-    TGroupBoxString *GroupBoxString;\r
-    TGroupBoxInteger *GroupBoxInteger;\r
-    TGroupBoxBool *GroupBoxBool;\r
-    TListItem *ListItem;\r
+    bool                config_dialog;\r
+    module_t           *p_module;\r
+    module_t           *p_module_plugins;\r
+    unsigned int        i;\r
+    int                 i_pages, i_ctrl;\r
+    \r
+    TTabSheet          *TabSheet;\r
+    TScrollBox         *ScrollBox;\r
+    TPanel             *Panel;\r
+    TGroupBoxPlugin    *GroupBoxPlugin;\r
+    TGroupBoxString    *GroupBoxString;\r
+    TGroupBoxInteger   *GroupBoxInteger;\r
+    TGroupBoxBool      *GroupBoxBool;\r
+    TListItem          *ListItem;\r
 \r
     /* Check if the dialog box is already opened, if so this will save us\r
      * quite a bit of work. (the interface will be destroyed when you actually\r
@@ -476,14 +483,14 @@ void __fastcall TPreferencesDlg::CreateConfigDialog( char *psz_module_name )
     }\r
 \r
     /* Reorder groupboxes inside the tabsheets */\r
-    for( i = 0; i < PageControlPref->PageCount; i++ )\r
+    for( i_pages = 0; i_pages < PageControlPref->PageCount; i_pages++ )\r
     {\r
         /* get scrollbox from the tabsheet */\r
-        ScrollBox = (TScrollBox *)PageControlPref->Pages[i]->Controls[0];\r
+        ScrollBox = (TScrollBox *)PageControlPref->Pages[i_pages]->Controls[0];\r
 \r
-        for( j = ScrollBox->ControlCount - 1; j >= 0 ; j-- )\r
+        for( i_ctrl = ScrollBox->ControlCount - 1; i_ctrl >= 0 ; i_ctrl-- )\r
         {\r
-            ScrollBox->Controls[j]->Align = alTop;\r
+            ScrollBox->Controls[i_ctrl]->Align = alTop;\r
         }\r
     }\r
 \r
@@ -525,6 +532,7 @@ void __fastcall TPreferencesDlg::ButtonApplyClick( TObject *Sender )
             if( ScrollBox->Controls[j]->InheritsFrom( __classid( TGroupBoxPref ) ) )\r
             {\r
                 GroupBox = (TGroupBoxPref *)ScrollBox->Controls[j];\r
+                GroupBox->UpdateChanges();\r
                 SaveValue( GroupBox->p_config );\r
             }\r
         }\r
@@ -549,7 +557,8 @@ void __fastcall TPreferencesDlg::SaveValue( module_config_t *p_config )
         case MODULE_CONFIG_ITEM_STRING:\r
         case MODULE_CONFIG_ITEM_FILE:\r
         case MODULE_CONFIG_ITEM_PLUGIN:\r
-            config_PutPszVariable( p_config->psz_name, p_config->psz_value );\r
+            config_PutPszVariable( p_config->psz_name,\r
+                        *p_config->psz_value ? p_config->psz_value : NULL );\r
             break;\r
         case MODULE_CONFIG_ITEM_INTEGER:\r
         case MODULE_CONFIG_ITEM_BOOL:\r
index fc0c12ec1f18c67916ffdeac8cfbfe21a04f618e..f0a3ca3142f145d32cd85ff67540ed0430f0990f 100644 (file)
@@ -36,6 +36,7 @@ class TGroupBoxPref : public TGroupBox
 public:\r
     __fastcall TGroupBoxPref( TComponent* Owner, module_config_t *p_config_arg );\r
     module_config_t *p_config;\r
+    virtual void __fastcall UpdateChanges();\r
     TListView * __fastcall CreateListView( TWinControl *Parent,\r
             int Left, int Width, int Top, int Height, TViewStyle ViewStyle );\r
     TButton * __fastcall CreateButton( TWinControl *Parent,\r
@@ -63,11 +64,11 @@ public:
     TLabel *LabelSelected;\r
     TEdit *Edit;\r
     module_t *ModuleSelected;\r
+    void __fastcall UpdateChanges();\r
     void __fastcall ListViewSelectItem( TObject *Sender, TListItem *Item,\r
                                         bool Selected );\r
     void __fastcall ButtonSelectClick( TObject *Sender );\r
     void __fastcall ButtonConfigClick( TObject *Sender );\r
-    void __fastcall EditChange( TObject *Sender );\r
 };\r
 //---------------------------------------------------------------------------\r
 class TGroupBoxString : public TGroupBoxPref\r
@@ -76,7 +77,7 @@ public:
     __fastcall TGroupBoxString( TComponent* Owner, module_config_t *p_config );\r
     TLabel *LabelDesc;\r
     TEdit *Edit;\r
-    void __fastcall EditChange( TObject *Sender );\r
+    void __fastcall UpdateChanges();\r
 };\r
 //---------------------------------------------------------------------------\r
 class TGroupBoxInteger : public TGroupBoxPref\r
@@ -86,7 +87,7 @@ public:
     TLabel *LabelDesc;\r
     TEdit *Edit;\r
     TUpDown *UpDown;\r
-    void __fastcall EditChange( TObject *Sender );\r
+    void __fastcall UpdateChanges();\r
 };\r
 //---------------------------------------------------------------------------\r
 class TGroupBoxBool : public TGroupBoxPref\r
@@ -95,7 +96,7 @@ public:
     __fastcall TGroupBoxBool( TComponent* Owner, module_config_t *p_config );\r
     TLabel *LabelDesc;\r
     TCheckBox *CheckBox;\r
-    void __fastcall CheckBoxClick( TObject *Sender );\r
+    void __fastcall UpdateChanges();\r
 };\r
 //---------------------------------------------------------------------------\r
 class TPreferencesDlg : public TForm\r