]> git.sesse.net Git - vlc/blobdiff - modules/gui/wxwindows/wxwindows.h
VLC update checker in the wxWidgets interface (in help menu)
[vlc] / modules / gui / wxwindows / wxwindows.h
index 5936b3ddf36c445b8132ac8fa0a590675af129ae..58150834cb81c2319bd34cc11686d1be49c0998e 100644 (file)
@@ -29,6 +29,8 @@
 /* Let vlc take care of the i18n stuff */
 #define WXINTL_NO_GETTEXT_MACRO
 
+#include <list>
+
 #include <wx/wxprec.h>
 #include <wx/wx.h>
 
@@ -1047,6 +1049,67 @@ private:
 
 };
 
+/* Update VLC */
+class UpdateVLC: public wxFrame
+{
+public:
+    /* Constructor */
+    UpdateVLC( intf_thread_t *p_intf, wxWindow *p_parent );
+    virtual ~UpdateVLC();
+
+private:
+    void OnButtonClose( wxCommandEvent& event );
+    void OnClose( wxCloseEvent& WXUNUSED(event) );
+    void GetData();
+    void OnCheckForUpdate( wxCommandEvent& event );
+    void OnMirrorChoice( wxCommandEvent& event );
+    void UpdateUpdatesTree();
+    void UpdateMirrorsChoice();
+    void OnUpdatesTreeActivate( wxTreeEvent& event );
+    void DownloadFile( wxString url, wxString dst );
+
+    DECLARE_EVENT_TABLE();
+
+    intf_thread_t *p_intf;
+    wxTreeCtrl *updates_tree;
+    wxTreeItemId updates_root;
+
+    wxChoice *mirrors_choice;
+
+    wxString release_type; /* could be "stable", "test", "nightly" ... */
+
+    struct update_file_t
+    {
+        wxString type;
+        wxString md5;
+        wxString size;
+        wxString url;
+        wxString description;
+    };
+
+    struct update_version_t
+    {
+        wxString type;
+        wxString major;
+        wxString minor;
+        wxString revision;
+        wxString extra;
+        std::list<update_file_t> m_files;
+    };
+
+    std::list<update_version_t> m_versions;
+
+    struct update_mirror_t
+    {
+        wxString name;
+        wxString location;
+        wxString type;
+        wxString base_url;
+    };
+
+    std::list<update_mirror_t> m_mirrors;
+};
+
 #if wxUSE_DRAG_AND_DROP
 /* Drag and Drop class */
 class DragAndDrop: public wxFileDropTarget