]>
git.saurik.com Git - wxWidgets.git/blob - samples/taskbar/tbtest.cpp
ac5c80bda29ba7d76f8bba10c6235c2bf5acb9fe
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxTaskBarIcon demo
4 // Author: Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 // For compilers that support precompilation, includes "wx.h".
13 #include "wx/wxprec.h"
23 // the application icon (under Windows and OS/2 it is in resources)
24 #if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXMGL__) || defined(__WXX11__)
25 #include "../sample.xpm"
30 #include "wx/taskbar.h"
34 MyDialog
*dialog
= NULL
;
38 bool MyApp::OnInit(void)
40 if ( !wxApp::OnInit() )
43 // Create the main frame window
44 dialog
= new MyDialog(NULL
, wxID_ANY
, wxT("wxTaskBarIcon Test Dialog"), wxDefaultPosition
, wxSize(365, 290));
52 BEGIN_EVENT_TABLE(MyDialog
, wxDialog
)
53 EVT_BUTTON(wxID_OK
, MyDialog::OnOK
)
54 EVT_BUTTON(wxID_EXIT
, MyDialog::OnExit
)
55 EVT_CLOSE(MyDialog::OnCloseWindow
)
59 MyDialog::MyDialog(wxWindow
* parent
, const wxWindowID id
, const wxString
& title
,
60 const wxPoint
& pos
, const wxSize
& size
, const long windowStyle
):
61 wxDialog(parent
, id
, title
, pos
, size
, windowStyle
)
69 #if defined(__WXCOCOA__)
74 void MyDialog::OnOK(wxCommandEvent
& WXUNUSED(event
))
79 void MyDialog::OnExit(wxCommandEvent
& WXUNUSED(event
))
84 void MyDialog::OnCloseWindow(wxCloseEvent
& WXUNUSED(event
))
89 void MyDialog::Init(void)
91 (void)new wxStaticText(this, wxID_ANY
, _T("Press 'Hide me' to hide me, Exit to quit."),
94 (void)new wxStaticText(this, wxID_ANY
, _T("Double-click on the taskbar icon to show me again."),
97 (void)new wxButton(this, wxID_EXIT
, _T("Exit"), wxPoint(185, 230), wxSize(80, 25));
98 (new wxButton(this, wxID_OK
, _T("Hide me"), wxPoint(100, 230), wxSize(80, 25)))->SetDefault();
101 m_taskBarIcon
= new MyTaskBarIcon();
102 #if defined(__WXCOCOA__)
103 m_dockIcon
= new MyTaskBarIcon(wxTaskBarIcon::DOCK
);
105 // we should be able to show up to 128 characters on recent Windows versions
107 if (!m_taskBarIcon
->SetIcon(wxICON(sample
),
108 "wxTaskBarIcon Sample\n"
109 "With a very, very, very, very\n"
110 "long tooltip whose length is\n"
111 "greater than 64 characters."))
113 wxMessageBox(wxT("Could not set icon."));
130 BEGIN_EVENT_TABLE(MyTaskBarIcon
, wxTaskBarIcon
)
131 EVT_MENU(PU_RESTORE
, MyTaskBarIcon::OnMenuRestore
)
132 EVT_MENU(PU_EXIT
, MyTaskBarIcon::OnMenuExit
)
133 EVT_MENU(PU_NEW_ICON
,MyTaskBarIcon::OnMenuSetNewIcon
)
134 EVT_MENU(PU_CHECKMARK
,MyTaskBarIcon::OnMenuCheckmark
)
135 EVT_UPDATE_UI(PU_CHECKMARK
,MyTaskBarIcon::OnMenuUICheckmark
)
136 EVT_TASKBAR_LEFT_DCLICK (MyTaskBarIcon::OnLeftButtonDClick
)
137 EVT_MENU(PU_SUB1
, MyTaskBarIcon::OnMenuSub
)
138 EVT_MENU(PU_SUB2
, MyTaskBarIcon::OnMenuSub
)
141 void MyTaskBarIcon::OnMenuRestore(wxCommandEvent
& )
146 void MyTaskBarIcon::OnMenuExit(wxCommandEvent
& )
151 static bool check
= true;
153 void MyTaskBarIcon::OnMenuCheckmark(wxCommandEvent
& )
158 void MyTaskBarIcon::OnMenuUICheckmark(wxUpdateUIEvent
&event
)
163 void MyTaskBarIcon::OnMenuSetNewIcon(wxCommandEvent
&)
165 wxIcon
icon(smile_xpm
);
167 if (!SetIcon(icon
, wxT("wxTaskBarIcon Sample - a different icon")))
168 wxMessageBox(wxT("Could not set new icon."));
171 void MyTaskBarIcon::OnMenuSub(wxCommandEvent
&)
173 wxMessageBox(wxT("You clicked on a submenu!"));
177 wxMenu
*MyTaskBarIcon::CreatePopupMenu()
179 wxMenu
*menu
= new wxMenu
;
180 menu
->Append(PU_RESTORE
, _T("&Restore main window"));
181 menu
->AppendSeparator();
182 menu
->Append(PU_NEW_ICON
, _T("&Set New Icon"));
183 menu
->AppendSeparator();
184 menu
->AppendCheckItem(PU_CHECKMARK
, _T("Test &check mark"));
185 menu
->AppendSeparator();
186 wxMenu
*submenu
= new wxMenu
;
187 submenu
->Append(PU_SUB1
, _T("One submenu"));
188 submenu
->AppendSeparator();
189 submenu
->Append(PU_SUB2
, _T("Another submenu"));
190 menu
->Append(PU_SUBMAIN
, _T("Submenu"), submenu
);
191 #ifndef __WXMAC_OSX__ /*Mac has built-in quit menu*/
192 menu
->AppendSeparator();
193 menu
->Append(PU_EXIT
, _T("E&xit"));
198 void MyTaskBarIcon::OnLeftButtonDClick(wxTaskBarIconEvent
&)