removed the menu item which could be used to remove the icon and leave the user without any way to interact with the application (nor quit it)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50401 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-12-01 15:55:28 +00:00
parent 8b1350d49d
commit 3ecee463f5
2 changed files with 25 additions and 33 deletions

View File

@@ -97,20 +97,28 @@ void MyDialog::Init(void)
(void)new wxButton(this, wxID_EXIT, _T("Exit"), wxPoint(185, 230), wxSize(80, 25)); (void)new wxButton(this, wxID_EXIT, _T("Exit"), wxPoint(185, 230), wxSize(80, 25));
(new wxButton(this, wxID_OK, _T("Hide me"), wxPoint(100, 230), wxSize(80, 25)))->SetDefault(); (new wxButton(this, wxID_OK, _T("Hide me"), wxPoint(100, 230), wxSize(80, 25)))->SetDefault();
Centre(wxBOTH); Centre(wxBOTH);
m_taskBarIcon = new MyTaskBarIcon(); m_taskBarIcon = new MyTaskBarIcon();
#if defined(__WXCOCOA__) #if defined(__WXCOCOA__)
m_dockIcon = new MyTaskBarIcon(wxTaskBarIcon::DOCK); m_dockIcon = new MyTaskBarIcon(wxTaskBarIcon::DOCK);
#endif #endif
if (!m_taskBarIcon->SetIcon(wxICON(sample), wxT("wxTaskBarIcon Sample"))) // we should be able to show up to 128 characters on recent Windows versions
// (and 64 on Win9x)
if (!m_taskBarIcon->SetIcon(wxICON(sample),
"wxTaskBarIcon Sample\n"
"With a very, very, very, very\n"
"long tooltip whose length is\n"
"greater than 64 characters."))
{
wxMessageBox(wxT("Could not set icon.")); wxMessageBox(wxT("Could not set icon."));
}
} }
enum { enum
{
PU_RESTORE = 10001, PU_RESTORE = 10001,
PU_NEW_ICON, PU_NEW_ICON,
PU_OLD_ICON,
PU_EXIT, PU_EXIT,
PU_CHECKMARK, PU_CHECKMARK,
PU_SUB1, PU_SUB1,
@@ -123,7 +131,6 @@ BEGIN_EVENT_TABLE(MyTaskBarIcon, wxTaskBarIcon)
EVT_MENU(PU_RESTORE, MyTaskBarIcon::OnMenuRestore) EVT_MENU(PU_RESTORE, MyTaskBarIcon::OnMenuRestore)
EVT_MENU(PU_EXIT, MyTaskBarIcon::OnMenuExit) EVT_MENU(PU_EXIT, MyTaskBarIcon::OnMenuExit)
EVT_MENU(PU_NEW_ICON,MyTaskBarIcon::OnMenuSetNewIcon) EVT_MENU(PU_NEW_ICON,MyTaskBarIcon::OnMenuSetNewIcon)
EVT_MENU(PU_OLD_ICON,MyTaskBarIcon::OnMenuSetOldIcon)
EVT_MENU(PU_CHECKMARK,MyTaskBarIcon::OnMenuCheckmark) EVT_MENU(PU_CHECKMARK,MyTaskBarIcon::OnMenuCheckmark)
EVT_UPDATE_UI(PU_CHECKMARK,MyTaskBarIcon::OnMenuUICheckmark) EVT_UPDATE_UI(PU_CHECKMARK,MyTaskBarIcon::OnMenuUICheckmark)
EVT_TASKBAR_LEFT_DCLICK (MyTaskBarIcon::OnLeftButtonDClick) EVT_TASKBAR_LEFT_DCLICK (MyTaskBarIcon::OnLeftButtonDClick)
@@ -145,12 +152,12 @@ static bool check = true;
void MyTaskBarIcon::OnMenuCheckmark(wxCommandEvent& ) void MyTaskBarIcon::OnMenuCheckmark(wxCommandEvent& )
{ {
check =!check; check = !check;
} }
void MyTaskBarIcon::OnMenuUICheckmark(wxUpdateUIEvent &event) void MyTaskBarIcon::OnMenuUICheckmark(wxUpdateUIEvent &event)
{ {
event.Check( check ); event.Check(check);
} }
void MyTaskBarIcon::OnMenuSetNewIcon(wxCommandEvent&) void MyTaskBarIcon::OnMenuSetNewIcon(wxCommandEvent&)
@@ -161,18 +168,6 @@ void MyTaskBarIcon::OnMenuSetNewIcon(wxCommandEvent&)
wxMessageBox(wxT("Could not set new icon.")); wxMessageBox(wxT("Could not set new icon."));
} }
void MyTaskBarIcon::OnMenuSetOldIcon(wxCommandEvent&)
{
if (IsIconInstalled())
{
RemoveIcon();
}
else
{
wxMessageBox(wxT("wxTaskBarIcon Sample - icon already is the old version"));
}
}
void MyTaskBarIcon::OnMenuSub(wxCommandEvent&) void MyTaskBarIcon::OnMenuSub(wxCommandEvent&)
{ {
wxMessageBox(wxT("You clicked on a submenu!")); wxMessageBox(wxT("You clicked on a submenu!"));
@@ -181,15 +176,12 @@ void MyTaskBarIcon::OnMenuSub(wxCommandEvent&)
// Overridables // Overridables
wxMenu *MyTaskBarIcon::CreatePopupMenu() wxMenu *MyTaskBarIcon::CreatePopupMenu()
{ {
// Try creating menus different ways
// TODO: Probably try calling SetBitmap with some XPMs here
wxMenu *menu = new wxMenu; wxMenu *menu = new wxMenu;
menu->Append(PU_RESTORE, _T("&Restore TBTest")); menu->Append(PU_RESTORE, _T("&Restore main window"));
menu->AppendSeparator(); menu->AppendSeparator();
menu->Append(PU_OLD_ICON, _T("&Restore Old Icon"));
menu->Append(PU_NEW_ICON, _T("&Set New Icon")); menu->Append(PU_NEW_ICON, _T("&Set New Icon"));
menu->AppendSeparator(); menu->AppendSeparator();
menu->Append(PU_CHECKMARK, _T("Checkmark"),wxT(""), wxITEM_CHECK); menu->AppendCheckItem(PU_CHECKMARK, _T("Test &check mark"));
menu->AppendSeparator(); menu->AppendSeparator();
wxMenu *submenu = new wxMenu; wxMenu *submenu = new wxMenu;
submenu->Append(PU_SUB1, _T("One submenu")); submenu->Append(PU_SUB1, _T("One submenu"));

View File

@@ -24,13 +24,12 @@ public:
void OnMenuRestore(wxCommandEvent&); void OnMenuRestore(wxCommandEvent&);
void OnMenuExit(wxCommandEvent&); void OnMenuExit(wxCommandEvent&);
void OnMenuSetNewIcon(wxCommandEvent&); void OnMenuSetNewIcon(wxCommandEvent&);
void OnMenuSetOldIcon(wxCommandEvent&); void OnMenuCheckmark(wxCommandEvent&);
void OnMenuCheckmark(wxCommandEvent&); void OnMenuUICheckmark(wxUpdateUIEvent&);
void OnMenuUICheckmark(wxUpdateUIEvent&);
void OnMenuSub(wxCommandEvent&); void OnMenuSub(wxCommandEvent&);
virtual wxMenu *CreatePopupMenu(); virtual wxMenu *CreatePopupMenu();
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
@@ -38,7 +37,7 @@ DECLARE_EVENT_TABLE()
class MyApp: public wxApp class MyApp: public wxApp
{ {
public: public:
bool OnInit(void); virtual bool OnInit();
}; };
class MyDialog: public wxDialog class MyDialog: public wxDialog
@@ -46,18 +45,19 @@ class MyDialog: public wxDialog
public: public:
MyDialog(wxWindow* parent, const wxWindowID id, const wxString& title, MyDialog(wxWindow* parent, const wxWindowID id, const wxString& title,
const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_DIALOG_STYLE); const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_DIALOG_STYLE);
~MyDialog(); virtual ~MyDialog();
protected:
void Init();
void OnOK(wxCommandEvent& event); void OnOK(wxCommandEvent& event);
void OnExit(wxCommandEvent& event); void OnExit(wxCommandEvent& event);
void OnCloseWindow(wxCloseEvent& event); void OnCloseWindow(wxCloseEvent& event);
void Init(void);
protected:
MyTaskBarIcon *m_taskBarIcon; MyTaskBarIcon *m_taskBarIcon;
#if defined(__WXCOCOA__) #if defined(__WXCOCOA__)
MyTaskBarIcon *m_dockIcon; MyTaskBarIcon *m_dockIcon;
#endif #endif
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };