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:
@@ -102,15 +102,23 @@ void MyDialog::Init(void)
|
|||||||
#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)
|
||||||
@@ -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"));
|
||||||
|
@@ -24,7 +24,6 @@ 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&);
|
||||||
@@ -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,14 +45,15 @@ 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;
|
||||||
|
Reference in New Issue
Block a user