]>
git.saurik.com Git - wxWidgets.git/blob - utils/screenshotgen/src/screenshot_main.cpp
41befef4ed6eea25e16d5e453b9823d596df9673
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: screenshot_main.cpp
3 // Purpose: Implements the window containing all controls.
4 // Author: Utensil Candel (UtensilCandel@@gmail.com)
5 // Licence: wxWindows licence
6 /////////////////////////////////////////////////////////////////////////////
8 // For compilers that support precompilation, includes "wx/wx.h".
15 // for all others, include the necessary headers wxWidgets headers)
20 #include "wx/aboutdlg.h"
23 #include "screenshot_main.h"
24 #include "autocapture.h"
26 // ----------------------------------------------------------------------------
28 // ----------------------------------------------------------------------------
30 ScreenshotFrame :: ScreenshotFrame ( wxFrame
* frame
) : GUIFrame ( frame
)
33 statusBar
-> SetStatusText ( _ ( "Welcome to the Automatic Screenshot Generator!" ), 0 );
36 // set minimum size hints
37 GetSizer ()-> SetSizeHints ( this );
40 // ----------------------------------------------------------------------------
41 // ScreenshotFrame - event handlers
42 // ----------------------------------------------------------------------------
44 void ScreenshotFrame :: OnClose ( wxCloseEvent
& WXUNUSED ( event
))
49 void ScreenshotFrame :: OnQuit ( wxCommandEvent
& WXUNUSED ( event
))
54 void ScreenshotFrame :: OnSeeScreenshots ( wxCommandEvent
& WXUNUSED ( event
))
56 wxString defaultDir
= AutoCaptureMechanism :: GetDefaultDirectoryAbsPath ();
58 if ( wxFileName :: DirExists ( defaultDir
))
59 wxLaunchDefaultBrowser ( defaultDir
);
61 wxMessageBox ( _ ( "There isn't any screenshots yet." ));
64 void ScreenshotFrame :: OnAbout ( wxCommandEvent
& WXUNUSED ( event
))
66 wxAboutDialogInfo info
;
67 info
. SetName ( _ ( "Automatic Screenshot Generator" ));
68 info
. SetVersion ( _ ( "1.0" ));
69 info
. SetDescription ( _ ( "This utility automatically creates screenshots of wxWidgets controls for use in wxWidgets documentation." ));
70 info
. SetCopyright ( wxT ( "(C) 2008 Utensil Candel" ));
75 void ScreenshotFrame :: OnCaptureFullScreen ( wxCommandEvent
& WXUNUSED ( event
))
77 // Create a DC for the whole screen area
80 // Get the size of the screenDC
81 wxCoord screenWidth
, screenHeight
;
82 dcScreen
. GetSize (& screenWidth
, & screenHeight
);
84 wxBitmap
fullscreen ( 1 , 1 );
85 AutoCaptureMechanism :: Capture (& fullscreen
, 0 , 0 , screenWidth
, screenHeight
);
87 AutoCaptureMechanism :: Save (& fullscreen
, wxT ( "fullscreen" ));
89 wxMessageBox ( _ ( "A screenshot of the entire screen was saved as: \n\n " )
90 + AutoCaptureMechanism :: GetDefaultDirectoryAbsPath () + wxT ( "fullscreen.png" ),
91 _ ( "Full screen capture" ), wxICON_INFORMATION
| wxOK
, this );
94 void ScreenshotFrame :: OnCaptureAllControls ( wxCommandEvent
& WXUNUSED ( event
))
96 wxString dir
= AutoCaptureMechanism :: GetDefaultDirectoryAbsPath ();
98 // check if there are other screenshots taken before
99 if ( wxFileName :: DirExists ( dir
))
101 int choice
= wxMessageBox (
102 _ ( "It seems that you have already generated some screenshots. \n\n Click YES to delete them all (recommended) or NO to preserve them. \n Click CANCEL to cancel this auto-capture operation." ),
103 _ ( "Delete existing screenshots?" ),
104 wxYES_NO
| wxCANCEL
| wxICON_QUESTION
, this );
111 wxDir :: GetAllFiles ( dir
, & files
, wxT ( "*.png" ), wxDIR_FILES
);
113 // remove all PNG files from the screenshots folder
114 int n
= files
. GetCount ();
115 for ( int i
= 0 ; i
< n
; ++ i
)
116 wxRemoveFile ( files
[ i
]);
121 case wxCANCEL
: return ;
125 // proceed with the automatic screenshot capture
129 AutoCaptureMechanism
auto_cap ( m_notebook1
);
131 auto_cap
. RegisterControl ( m_button1
);
132 auto_cap
. RegisterControl ( m_staticText1
);
133 auto_cap
. RegisterControl ( m_checkBox1
, AJ_Union
);
134 auto_cap
. RegisterControl ( m_checkBox2
, AJ_UnionEnd
);
135 auto_cap
. RegisterControl ( m_radioBtn1
, AJ_Union
);
136 auto_cap
. RegisterControl ( m_radioBtn2
, AJ_UnionEnd
);
137 auto_cap
. RegisterControl ( m_bpButton1
);
138 auto_cap
. RegisterControl ( m_bitmap1
);
139 auto_cap
. RegisterControl ( m_gauge1
, wxT ( "wxGauge" ));
140 auto_cap
. RegisterControl ( m_slider1
);
141 auto_cap
. RegisterControl ( m_toggleBtn1
, AJ_Union
);
142 auto_cap
. RegisterControl ( m_toggleBtn2
, AJ_UnionEnd
);
143 auto_cap
. RegisterControl ( m_hyperlink1
, wxT ( "wxHyperlinkCtrl" ));
144 auto_cap
. RegisterControl ( m_spinCtrl1
, AJ_RegionAdjust
);
145 auto_cap
. RegisterControl ( m_spinBtn1
);
146 auto_cap
. RegisterControl ( m_scrollBar1
);
148 auto_cap
. RegisterPageTurn ();
150 auto_cap
. RegisterControl ( m_checkList1
);
151 auto_cap
. RegisterControl ( m_listBox1
);
152 auto_cap
. RegisterControl ( m_radioBox1
);
153 auto_cap
. RegisterControl ( m_staticBox1
);
154 auto_cap
. RegisterControl ( m_treeCtrl1
);
155 auto_cap
. RegisterControl ( m_listCtrl1
, wxT ( "wxListCtrl" ));
157 auto_cap
. RegisterControl ( m_animationCtrl1
);
158 auto_cap
. RegisterControl ( m_collPane1
, wxT ( "wxCollapsiblePane" ), AJ_Union
);
159 auto_cap
. RegisterControl ( m_collPane2
, AJ_UnionEnd
);
161 auto_cap
. RegisterPageTurn ();
163 auto_cap
. RegisterControl ( m_textCtrl1
, AJ_Union
);
164 auto_cap
. RegisterControl ( m_textCtrl2
, AJ_UnionEnd
);
165 auto_cap
. RegisterControl ( m_richText1
);
167 auto_cap
. RegisterPageTurn ();
169 auto_cap
. RegisterControl ( m_colourPicker1
, wxT ( "wxColourPickerCtrl" ));
170 auto_cap
. RegisterControl ( m_fontPicker1
, wxT ( "wxFontPickerCtrl" ));
171 auto_cap
. RegisterControl ( m_filePicker1
, wxT ( "wxFilePickerCtrl" ), AJ_RegionAdjust
);
172 auto_cap
. RegisterControl ( m_calendar1
, wxT ( "wxCalendarCtrl" ), AJ_RegionAdjust
);
173 auto_cap
. RegisterControl ( m_datePicker1
, wxT ( "wxDatePickerCtrl" ));
174 auto_cap
. RegisterControl ( m_genericDirCtrl1
, wxT ( "wxGenericDirCtrl" ));
175 auto_cap
. RegisterControl ( m_dirPicker1
, wxT ( "wxDirPickerCtrl" ), AJ_RegionAdjust
);
177 auto_cap
. RegisterPageTurn ();
179 auto_cap
. RegisterControl ( m_choice1
, AJ_Dropdown
);
180 auto_cap
. RegisterControl ( m_comboBox1
, AJ_Dropdown
);
181 auto_cap
. RegisterControl ( m_bmpComboBox1
, AJ_Dropdown
);
182 auto_cap
. RegisterControl ( m_ownerDrawnComboBox1
, AJ_Dropdown
);
183 auto_cap
. RegisterControl ( m_comboCtrl1
, AJ_Dropdown
| AJ_Union
);
184 auto_cap
. RegisterControl ( m_comboCtrl2
, AJ_Dropdown
| AJ_UnionEnd
);
186 auto_cap
. CaptureAll ();
188 wxMessageBox ( _ ( "All screenshots were generated successfully in the folder: \n " ) + dir
,
189 _ ( "Success" ), wxOK
| wxICON_INFORMATION
, this );