* playlist.cpp : wxWindows plugin for vlc
*****************************************************************************
* Copyright (C) 2000-2001 VideoLAN
- * $Id: messages.cpp,v 1.9 2003/07/09 10:59:11 adn Exp $
+ * $Id: messages.cpp,v 1.10 2003/07/10 11:15:18 adn Exp $
*
* Authors: Olivier Teulière <ipkiss@via.ecp.fr>
*
enum
{
Close_Event,
- Verbose_Event
+ Verbose_Event,
+ Clear_Event,
+ Save_Log_Event
};
BEGIN_EVENT_TABLE(Messages, wxFrame)
EVT_BUTTON(wxID_OK, Messages::OnClose)
EVT_CHECKBOX(Verbose_Event, Messages::OnVerbose)
EVT_BUTTON(wxID_CLEAR, Messages::OnClear)
+ EVT_BUTTON(wxID_SAVEAS, Messages::OnSaveLog)
/* Special events : we don't want to destroy the window when the user
* clicks on (X) */
p_intf = _p_intf;
b_verbose = VLC_FALSE;
SetIcon( *p_intf->p_sys->p_icon );
+ save_log_dialog = NULL;
/* Create a panel to put everything in */
wxPanel *messages_panel = new wxPanel( this, -1 );
wxButton *clear_button = new wxButton( messages_panel, wxID_CLEAR, wxU(_("Clear")));
clear_button->SetDefault();
+ /* Create the Save Log button */
+ wxButton *save_log_button = new wxButton( messages_panel, wxID_SAVEAS, wxU(_("Save As...")));
+ save_log_button->SetDefault();
+
/* Create the Verbose checkbox */
wxCheckBox *verbose_checkbox =
new wxCheckBox( messages_panel, Verbose_Event, wxU(_("Verbose")) );
wxBoxSizer *buttons_sizer = new wxBoxSizer( wxHORIZONTAL );
buttons_sizer->Add( ok_button, 0, wxEXPAND |wxALIGN_LEFT| wxALL, 5 );
buttons_sizer->Add( clear_button, 0, wxEXPAND |wxALIGN_LEFT| wxALL, 5 );
+ buttons_sizer->Add( save_log_button, 0, wxEXPAND |wxALIGN_LEFT| wxALL, 5 );
buttons_sizer->Add( new wxPanel( this, -1 ), 1, wxALL, 5 );
buttons_sizer->Add( verbose_checkbox, 0, wxEXPAND |wxALIGN_RIGHT | wxALL, 5 );
buttons_sizer->Layout();
Messages::~Messages()
{
+/* Clean up */
+ if( save_log_dialog ) delete save_log_dialog;
}
void Messages::UpdateLog()
textctrl->Clear();
}
+void Messages::OnSaveLog( wxCommandEvent& WXUNUSED(event) )
+{
+ if( save_log_dialog == NULL )
+ save_log_dialog = new wxFileDialog( this, wxU(_("Save Messages As a file...")),
+ wxT(""), wxT("messages"), wxT("*"), wxSAVE | wxOVERWRITE_PROMPT );
+
+ if( save_log_dialog && save_log_dialog->ShowModal() == wxID_OK )
+ {
+ if( !textctrl->SaveFile( save_log_dialog->GetPath() ) )
+ {
+ // [FIX ME] should print an error message
+ }
+ }
+}
+
void Messages::OnVerbose( wxCommandEvent& event )
{
b_verbose = event.IsChecked();
* wxwindows.h: private wxWindows interface description
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: wxwindows.h,v 1.39 2003/07/09 09:30:23 adn Exp $
+ * $Id: wxwindows.h,v 1.40 2003/07/10 11:15:18 adn Exp $
*
* Authors: Gildas Bazin <gbazin@netcourrier.com>
*
void OnClose( wxCommandEvent& event );
void OnVerbose( wxCommandEvent& event );
void OnClear( wxCommandEvent& event );
+ void OnSaveLog( wxCommandEvent& event );
DECLARE_EVENT_TABLE();
wxTextAttr *warn_attr;
wxTextAttr *dbg_attr;
+ wxFileDialog *save_log_dialog;
+
vlc_bool_t b_verbose;
};