patch from Utensil Candel: remove ctrlmaskout.h/cpp; clear some more code; erase any wxFB's trace

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2009-01-09 15:15:51 +00:00
parent 0d19936d71
commit ecba92ec08
18 changed files with 59 additions and 797 deletions

View File

@@ -22,13 +22,8 @@
#include "wx/dir.h"
#include "screenshot_main.h"
#include "ctrlmaskout.h"
#include "autocapture.h"
#include "bitmaps/play.xpm"
#include "bitmaps/stop.xpm"
// ----------------------------------------------------------------------------
// ScreenshotFrame
// ----------------------------------------------------------------------------
@@ -39,87 +34,10 @@ ScreenshotFrame::ScreenshotFrame(wxFrame *frame) : GUIFrame(frame)
statusBar->SetStatusText(_("Welcome to the Automatic Screenshot Generator!"), 0);
#endif
// We will hold one ctrlmaskout during the whole life time of the main frame
m_maskout = new CtrlMaskOut();
// At the begining, we are not specifying the rect region
capturingRect = false;
// Do some further customization on some controls generated by wxFormBuilder
InitFBControls();
}
ScreenshotFrame::~ScreenshotFrame()
{
delete m_maskout;
}
/*
Do some further customization on some controls.
NB: under wxGTK for the radio button "unchecked" to be unchecked, it's
important to put the wxRB_GROUP style on the first wxRadioButton
(the one "checked") and no flags on the second one.
*/
void ScreenshotFrame::InitFBControls()
{
m_scrollBar1->SetScrollbar(50, 1, 100, 1);
// Do the default selection for wxComboBox
m_comboBox1->Select(0);
// To look better under gtk
#ifdef __WXGTK__
m_comboBox1->Delete(4);
#endif
// Add a root and some nodes for wxTreeCtrl
wxTreeItemId root = m_treeCtrl1->AddRoot(_("wxTreeCtrl"));
m_treeCtrl1->AppendItem(root, _("Node1"));
wxTreeItemId node2 = m_treeCtrl1->AppendItem(root, _("Node2"));
m_treeCtrl1->AppendItem(node2, _("Node3"));
m_treeCtrl1->ExpandAll();
// Add items into wxListCtrl
m_listCtrl1->InsertColumn(0, "Names");
m_listCtrl1->InsertColumn(1, "Values");
for(long index = 0; index < 5; index++) {
m_listCtrl1->InsertItem( index, wxString::Format(_("Item%d"),index));
m_listCtrl1->SetItem(index, 1, wxString::Format("%d", index));
}
// Init file and dir pickers
wxString file, dir;
#if defined(__WXMSW__)
file = "C:\\Windows\\explorer.exe";
dir = "C:\\Windows";
#else
file = "/bin/bash";
dir = "/home";
#endif
m_filePicker1->SetPath(file);
m_dirPicker1->SetPath(dir);
// Check the first item in wxCheckListBox
m_checkList1->Check(0);
// Load richtext.xml into wxRichtextCtrl
m_richText1->LoadFile(_T("richtext.xml"));
//m_richText1->ShowPosition(335);
// select first page in the main notebook ctrl
m_notebook1->ChangeSelection(0);
// set minimum size hints
GetSizer()->SetSizeHints(this);
// add bitmaps to the menus
m_menuCapRect->SetBitmap( wxIcon(play_xpm) );
m_menuEndCapRect->SetBitmap( wxIcon(stop_xpm) );
}
// ----------------------------------------------------------------------------
// ScreenshotFrame - event handlers
// ----------------------------------------------------------------------------
@@ -136,7 +54,7 @@ void ScreenshotFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
void ScreenshotFrame::OnSeeScreenshots(wxCommandEvent& WXUNUSED(event))
{
wxFileName defaultDir = wxFileName::DirName(m_maskout->GetDefaultDirectory());
wxFileName defaultDir = wxFileName::DirName(GetDefaultDirectory());
defaultDir.MakeAbsolute();
// Check if defaultDir already existed
@@ -167,79 +85,20 @@ void ScreenshotFrame::OnCaptureFullScreen(wxCommandEvent& WXUNUSED(event))
wxCoord screenWidth, screenHeight;
dcScreen.GetSize(&screenWidth, &screenHeight);
m_maskout->Capture(0, 0, screenWidth, screenHeight, _T("fullscreen"));
const wxString fullscreen_filename = GetDefaultDirectoryAbsPath() + _T("fullscreen.png");
// Inform the user
wxMessageBox(_("A screenshot of the entire screen was saved as:\n\n ") +
m_maskout->GetDefaultDirectoryAbsPath() + wxFileName::GetPathSeparator() + "fullscreen.png",
wxBitmap fullscreen = AutoCaptureMechanism::Capture(0, 0, screenWidth, screenHeight);
fullscreen.SaveFile(fullscreen_filename, wxBITMAP_TYPE_PNG);
wxMessageBox(_("A screenshot of the entire screen was saved as:\n\n ")
+ fullscreen_filename,
_("Full screen capture"), wxICON_INFORMATION|wxOK, this);
}
void ScreenshotFrame::OnCaptureRect(wxCommandEvent& WXUNUSED(event))
{
capturingRect = true;
wxMenuBar * menubar = this->GetMenuBar();
menubar->FindItem(idMenuCapRect)->Enable(false);
menubar->FindItem(idMenuEndCapRect)->Enable(true);
wxWindow * thePage = m_notebook1->GetPage(m_notebook1->GetSelection());
thePage->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CtrlMaskOut::OnLeftButtonDown ), NULL, m_maskout);
thePage->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( CtrlMaskOut::OnLeftButtonUp ), NULL, m_maskout);
thePage->Connect( wxEVT_MOTION, wxMouseEventHandler( CtrlMaskOut::OnMouseMoving ), NULL, m_maskout);
}
void ScreenshotFrame::OnEndCaptureRect(wxCommandEvent& WXUNUSED(event))
{
capturingRect = false;
wxMenuBar * menubar = this->GetMenuBar();
menubar->FindItem(idMenuCapRect)->Enable(true);
menubar->FindItem(idMenuEndCapRect)->Enable(false);
wxWindow * thePage = m_notebook1->GetPage(m_notebook1->GetSelection());
thePage->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CtrlMaskOut::OnLeftButtonDown ), NULL, m_maskout);
thePage->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( CtrlMaskOut::OnLeftButtonUp ), NULL, m_maskout);
thePage->Disconnect( wxEVT_MOTION, wxMouseEventHandler( CtrlMaskOut::OnMouseMoving ), NULL, m_maskout);
}
void ScreenshotFrame::OnNotebookPageChanging(wxNotebookEvent& event)
{
if (!capturingRect)
{
event.Skip();
return;
}
wxWindow * thePage = m_notebook1->GetPage(event.GetOldSelection());
thePage->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CtrlMaskOut::OnLeftButtonDown ), NULL, m_maskout);
thePage->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( CtrlMaskOut::OnLeftButtonUp ), NULL, m_maskout);
thePage->Disconnect( wxEVT_MOTION, wxMouseEventHandler( CtrlMaskOut::OnMouseMoving ), NULL, m_maskout);
event.Skip();
}
void ScreenshotFrame::OnNotebookPageChanged(wxNotebookEvent& event)
{
if (!capturingRect)
{
event.Skip();
return;
}
wxWindow *thePage = m_notebook1->GetPage(event.GetSelection());
thePage->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CtrlMaskOut::OnLeftButtonDown ), NULL, m_maskout);
thePage->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( CtrlMaskOut::OnLeftButtonUp ), NULL, m_maskout);
thePage->Connect( wxEVT_MOTION, wxMouseEventHandler( CtrlMaskOut::OnMouseMoving ), NULL, m_maskout);
event.Skip();
}
void ScreenshotFrame::OnCaptureAllControls(wxCommandEvent& WXUNUSED(event))
{
wxString dir = m_maskout->GetDefaultDirectoryAbsPath();
wxString dir = GetDefaultDirectoryAbsPath();
// check if there are other screenshots taken before
if (wxFileName::DirExists(dir))