wx.adv.TaskBarIcon GetPopupMenu override not working

Good Afternoon and Happy New Year!

I have a little utility I wrote for myself, it runs in the system tray on Windows but when I right-click the popup menu the icon I think it is getting recreated each time as I am trying to check the item on the menu when it is clicked but it is not working, here is the full application:

I read something in the documentation about overriding GetPopupMenu() but I am not sure how to do that. I just want the menu created once so I can act on the items inside the menu when I want to.

Thanks very much, I hope that makes sense.

This paste is a little easier to read, the TaskbarIcon works but the menu gets re-created each time I right-click on the icon, I do not want this to happen but I am unsure as how to stop it:

Looking at the C++ documentation for wxWidgets it states I have to override the GetPopupMenu function instead of the CreatePopupMenu function to ensure the menu that gets created is not destroyed.

When I do this the popup menu does not show on right-click:

import wx
import wx.adv
from wx.core import OK, YES_NO

# base64 encoded image created with img2py
from wx.lib.embeddedimage import PyEmbeddedImage

TRAY_TOOLTIP = "ShutMeDown"
TRAY_ICON = PyEmbeddedImage(
    b"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAApbklEQVR42u2dB5QU1baG/44T"
    b"enJiAlzFAIJgAgETGFCCSFYBUUkiSRRMBAFBBCNBBQQFwQRIVoISryAqoAKKmJDM5By6Zzq+"
    b"OjWX+7wKClPV51R17W+tXoOzcNfZRddfJ+xgOoJLAiAIwpCYSAAIwriQABCEgSEBIAgDQwJA"
    b"EAaGBIAgDAwJAEEYGBIAgjAwJAAEYWBIAAjCwJAAEISBIQEgCANDAkAQBoYEgCAMDAkAQRgY"
    b"EgCCMDAkAARhYEgACMLAkAAQhIEhASAIA0MCQBAGhgSAIAwMCQBBGBgSAIIwMCQABGFgSAAI"
    b"wsCQAIQSJlP1x2KGKSwM5mgHzAmx1Z/4WJhsVpgdEQhI/+Im6aeJ/V2JgM+PgKuy+s/Sz0Bl"
    b"FfzFpfAXlVb/LKuQfwevD/L/HKCvTKhAAqBHzOwBt8OcGAdb/YtgrVsbtnoXwnphbVgvyIAl"
    b"oxYs0kNvCg+rFgQlSA97wO2Br6AYvlPZ8J7Igu9YJjyHjsH7+3G4Dx6Cv6AIgSoP4POJvjPE"
    b"eUICoHWkB9gUFQnrv9IR1vxK2K9sANtlF8kfS+1UmCQxEEnAH5CEIQeeX36H5+fDqPr2R7h3"
    b"75eFIlDupNmCxiEB0CDmuBj5AQ9r2Qzh110F29UNYZMEQPHbnBfSQ+89ngn3/p9RJYlB5bZd"
    b"8Px0SF5SENqCBEALSGtz+Q1/Y1NEtm8Fe4urqh/4EMLDBEESA9f67ajcsQfeY6ekX3pFD8vw"
    b"kACIwmKW1u0XIaLDLYjs3Br2qxrAHBkhelRc8Dsr4d53EK41W+Bct01aPhyu3mAkuEMCwBnr"
    b"hRmIuPMWOO69E/YmlxvmoT8b7NTBve8nVCz/FM7Vm+A9fEL0kAwFCQAH2I59WKtmiO5/NyJa"
    b"3yAfyxF/hR05urbtQvnbS+V9g9NHk0TwIAEIIpb0FDh6d0J0n26wXnohTFaL6CHpgoDPJ88E"
    b"yheuRPm7q+A7mS16SCELCUAQYDv40UN6w9GrAyyJ8aKHo2t8hcVwLtuA0lkfwPPDL6KHE3KQ"
    b"AKiIvUkjxD71kLyxZ/S1vdqwSETXZztQMvVNVO3aL3o4IQMJgArYGtdH3IRhiOx4G0w2m+jh"
    b"hDQBrw+uDZ+jeOLrcH93QPqF6BHpGxIABVjr1UXcM0PkHX2TnR58nrB9AueaLSiZ+BrcP/xK"
    b"EYc1hASgBpiTE+SpPlvnmyPDRQ/H0ASq3Ch7aylKpsyBLytP9HB0BwnAeWCKCIfjgS6IGz8M"
    b"1vQU0cMh/oAvrxAlL85D2dzF1TkIxDlBAnCOhN3YBAnTxiLs2saih0L8DVX7f0LRiCmo3Pa1"
    b"6KHoAhKAf8AcH4PYcUMRPfg+mFl6LaF5Am5pWfD2MhRPmAl/fpHo4WgaEoC/IaLtTUiY/ox8"
    b"rq8X/KyYR2GJnKPPpsX+wmLpISiGT3oQ/PnSf7Ppsc8nF/n4L4EATI5IeSOTfSy1kmBOiocl"
    b"JVEuJGKR/sz2PdjvzGF20S6eM57DJ1A0cgqcazaLHopmIQE4A6ZoB+InPSa99XvJYbxahFXx"
    b"8Z7IhO/oKXh+PSLn4bOUW19uAQKskk9JmbxBpgo2SRSkmZBJ+lhSk2GrVxf2axpWFyO5IAPW"
    b"OmlytSEtEvB4pdnARyge8wr8xWWih6M5SAD+BDvTT5o/RVrrXyF6KP8DC4Rxf/+znGNfueMb"
    b"uL89AF9WrvSgl0uvfb+YQZlNMMdEwSzNFOzXNELELc3lrEZ2D80R2jodYfctv/9o+b4R/w8J"
    b"wGlMJkQP7Y34ySNgjo0WPRoZVlWH5c67NlTn0Puz8uTyXFpGLlUmCUJ1bYOWCLuhKWx1a4se"
    b"loy/vEIOICqd9o440dQYJABgFXiikTh7IiJZQI/gElueY5lwrd2KimUb5LdVoMKp62g3trdg"
    b"a3SpHCwV2ak1bBfVETqegPTgO1d+hoKHx8l7JUbH8AJga3gJkpfMgF2atgohEICvuFT6Um6U"
    b"M9/cu7+vrsAbgrDZgV1aWkXd1xGR3dvCkhgnrMyZ++ffkd9zhFyLwMgYVwCk711k1zZIeut5"
    b"eaebN2xzitXLK1+wHBUrPkWAreUNhCk6Co5udyBqwL0Ia3aFkE1EtlFaMGwiKj5Yo+tZlhKM"
    b"KQBWC2KfHIC4ySO5T/n9Tpc0xd+GkmkL4KasNhl708aIGdlXTqYyS0sGngSkGVjxs6+hZMqb"
    b"gNd4NQoNJwCsVn78K6MQM7Q31+uyt035+2tQ9sZ7cvls4q+woinRg3oi6sEu3OsolM1fhsJH"
    b"JhmuCpGhBIDt7icufBGOzrdzu6b84H/wMUpfnU/17s4RS500xIzoi+g+Xbkuz1i9gbyeI+Av"
    b"Ms7moGEEwCy9UVJWz0H4jU24XM8vvUkqlqyTC1h4fzsq2n1dYr2ojpx1ycqq8VoaVO3+Hjl3"
    b"DYQ/t0C0+1wwhACw0NaUtfMQ1pRDIo+0pnRt+RLF42ag6ut9ol0PCezXXI7450cios1NXE4N"
    b"WMBVTvsBcsejUCfkBYD1yau17m3Yr7ws6NfyHD2F4jGvyrv60HjAju6wWhHZ5XbET3kctksu"
    b"CPrlWK+CnHb94T1yUrTnQSWkBYD1zqu1cSHsDS4O6nXYkR47zisaNx3+vELRboc0rKR63MRH"
    b"ET2wR9CrMHl+P4bs1n3gOxq6IhCyAmBJTap++IMc4MPeFAVDn0Xl1q+pLBUvpFVAeKvmSHh9"
    b"POyN6gX1UixgKOf2PiFbmjwkBYC1za61YUHQi3ewLLOip16kppeCYIlIcdKSgNVqMJmDtzfg"
    b"PvCrJAIPwpedL9pl1Qk5AWBHfWzDL/zGpkG7Bku5LRg6UY4pp6QSwZhMiOx4KxLmPAdrWnLQ"
    b"LlO196AsAv6CYtEeq0pICQAL8mFx/SzpJChIU/zKnd8iv/cT1d1tCc3AujAlLXoZEbddF7ST"
    b"AtemncjtPBgBp0u0u6oROgJgsSBhxljEDLs/KOYDXi/KZn+AolGvGC5aTC+wZKO450Yg5rE+"
    b"QcstKFuwHAWDxoVMa/OQEQAWMBL/4lNBsc3KZxUOmyhn6xHax9HrLiTOmSTvEQQDVlOA5Q+E"
    b"AiEhAJHd2iJ56QyYLOo33/Tl5CPv3kdR+flu0W4S5wHLMExeMQvW2qnqG5eWgnkPPImK99eI"
    b"dlMxuhcAls+f9sVSuXqv2rCknZxOg+D99YhoN4kaYK1bGymrZsN+ZQPVbftLy5Hdqpfu6wno"
    b"WgDYjn/qzqWwX36p6rar9nyP3I6D4MumbjN6hlUzTvnoNYTf3Fx1255Dx5DVoruuTwb0KwAm"
    b"E5LefwVRvTqqbrpy+x7kdhtKNeVDBHNcDJIXT0dE25aq23Z+slX+ruh1U1C3AhD9yP1InDlO"
    b"9SMf56fbkd9rBAX3hBimmCgkv/eKXHREbYrGvCpnfeoRXQoAS+xJ3b5Y9V1e18YdyL17OAKl"
    b"xirPZRRMUZFIeu9VODqrGyfir3DJQUJVX+0V7eL53xO9CQBT8tQt7yGsaSNV7bJd/twug+nN"
    b"H+Kwpi/Jy15HJEstVhH3wUPIvqmH7ioN604A4qeNQexjfVSd+ldKyp3b8WFa8xsEVmWInQ6E"
    b"t2qmqt2ytz5CwcCxot07L3QlABF33oyUlbNgsqvXrsvz0+/IvvV+2u03GOx0IPWzd2C/uqFq"
    b"NgNeH/J6PArnis9Eu3fO6EYAzAlxSPtqGWz1LlTNJnvos1r1gvfXo6LdIwRguSADaTsWy70N"
    b"1cJ79CQym3eDP1cfdSH0IQAmNvUfWz31VwkW3ptz50Oo2rFHtHeEQFhJ8tRNC+WjQrUom7sE"
    b"BYPH66I+hC4EIOz6a5C6eRFMKjWcDPh80lrtGbmKD0GwLkXJH0xTrcIQ69/ICotWbvxCtGv/"
    b"iOYFwBQZgdTtHyKsiXq7/qWvv4vC4c+Jdo3QEHHPj0TcmMGq2WNFRLKuuxuBcqdo1/4WzQtA"
    b"9KBeSJj9LEwq7fqzKL+ctn0RcIVm/z2ihkhv/1ofz62uPKwShY9PRem0BaI9+1s0LQCsln/6"
    b"92thTU9RxZ4vrxCZTTrBdyI067sRymDl49O+WaVaBqGvoBiZjdvDl6XdEyZNC0D8y08j9okB"
    b"6hgLBOQoPycr2U0QZyGi7U1IWfuWaqnlZXMXo2DQeNFunRXNCoC1Xl1k7PsEpogwVeyVzluC"
    b"QlbJRZPeEloiYfpYuaqQGrCS8VnXdoF7/8+i3TojmhUAlr3l6NFBFVssr19O2ywpE+0WoQNM"
    b"UQ6kfbFYtToCzlUbkdt1qGi3zuyrFgXA1qge0r9bo0pdNxadxTq8VG7eKdotPphMiBs/DCaV"
    b"e+l5fvwN5YtWivaOG/LR89b35DqDSmHHzlnX3wP37u9Fu/UXNCkAySvegKNrG1Vslc35EAVD"
    b"Jxhn6m82o07mTnlDS02cqzZV573rILhFLeJfHY3Ykf1UseXasB057fuLdukvaE4A7NdegbSd"
    b"S1V5+3sOn0BWs27wFxgoyYcJwKmdcmckNTGiALDowLSvl8NWv65iW2wWkH3bA6jSWG1JzQlA"
    b"ysrZchNIpQT8fuTfN1Ju0W0oSABUJeKuW5Gyag5MFrNiW84NnyO3vUqnWiqhKQGwXX4p0r9Z"
    b"JTf4UApr0c1aPBuuSy8JgLpYLHLqcKQkBEoJVLnl6ED33oOivfovmhKAhDcmIGZob8V2WOOO"
    b"7JvvQ5UGN12CDgmA6tiuqC8tSz+COUr5xqrcWKT/aNEu/RfNCABr7ZT+wzpYEuIU22JNOwse"
    b"0ldhBtUgAQgKCTPHIWb4A4rtsKPozKvugveoNlrLaUYAYscORvzkkYrtsBuc1awrPEbN8ScB"
    b"CAqWOmlI37sGlsR4xbaKn5uF4vEzRLskowkBYGetLObfVk/5bmvp6++hcPgk0S6JgwQgaMS/"
    b"PAqxTyg/yvMcPo7Mxnci4BTfY1ITAhDRrhVSPpmneKeVFWQ8dU0n+IzcuZcEIGjIy9T9a2FJ"
    b"UjYLYCdUed2Gwbl6k2iXtCEAycteg6N7O8V2Sma8g6IRU0S7IxYSgKCiVt0A5/rPkXun+CNB"
    b"4QLA+rexsF+lJZn8Thcyr+5EffxIAIKK9V/pSD+wHuZohyI7/vIKOUiNFaUViXABYFlXLPtK"
    b"KRVL1yGvx2MiXdEGJABBJ3H+VET3667YjhY6CokVAItFLvcVfv01isywlMvsm3qiatc+Ya5o"
    b"BhKAoGO/qiHSdi1XXEOQNaDNuqEH4BEXrCZUAOTIvz0rFRf7rPp6nxxhRYAEgBO1Ni1CROvr"
    b"FdmQIwNbdBfaYlyoAMQ+NRDxLz6p2E7+gDEon79MlBvaggSAC4572iN56UzFdoomzETJpDeE"
    b"+SFOAKzS9P9z5dN/X2EJTta9mRp6noYEgAts1lr7yDbFadfyMuDGHsJyVoQJgPXSC5Hx/VrF"
    b"iT9l85ag4OFxIlzQJiQA3FCjdBjrIZB5ZQe5apUIhAlAVN9uSFrwgmI7WS17omrHNyJc0CYk"
    b"ANxgfQXTv12tuFFtweAJKHvzQyE+CBMA1qLZ0b2tIhveIydxqkEbeTOF+A8kAPywWZGxfy1s"
    b"DS5WZMb58Rbkdh4s5N4KEQAW9CPX+1fYlLF0xjsoNHrk358hAeBK/ItPIfaphxTZYP0qTjVs"
    b"K6Q9vRABCLvuarnsl9KpE+vCqsVCi0IhAeCKvcnlSP9mtWI7rFxY5davuI9fiADEjh2C+Mkj"
    b"FNnwHDuFzMvbI1Ch7d5r3CEB4Ao7DUjf97HiTNbi5+eg+Jlp/MfPXQCkt75cYqlTa0Vmyt9f"
    b"g/z7n+A6dF1AAsCdxHmTEf3QvYpsuDbuQE67AYDfz3Xs3AXAFO1Axg/rYL0gQ5GdvF4jUbH4"
    b"E55D1wckANyJ7Hy7/FJTgrwPUP92+ItKuY6duwDYGl6CjAPrFa3/WWffk/VbU5PPM0ECwB1L"
    b"ajIyft0Ic3SUIjsi9rS4C0BUv7uRNF/Zzj2LnmLJP3T8dwZIAPjDkto2L0L4zc0VmWEnWuxk"
    b"iyfcBSBh1rOIGXKfIhtlby1FwcBneA5bP5AACCF++ljEKowKLHtnBQr6jeI6br4CICllrc8W"
    b"IOI2ZVlUeb1GSOv/tdyGrStIAIQQ2bm13EBECZVf7UV2y56A18dt3FwFgB2ZZPy2CdaM1Brb"
    b"CHi9ONWwHby/HeU1bH1BAiAEVtkq46fPFDUT9RUU4+SFrRAo53e0zVUAWDmljCPbYDLXvPin"
    b"5/fjyGrSmVp9nw0SACGYHBFI270S9oaXKLJz8rI74P2FX1k7rgIQ0a4laq2fr8iGa+tXyGn9"
    b"IH0RzwYJgDBS1r2FyPY3K7KRy6oFr/yM25i5CkD00N5IfGOCIhulsz9A4dBneQ1Zf5AACEON"
    b"vIDCx6eidNoCbmPmKgAJ08cg5rG+imzkPzQW5W9/xGvI+oMEQBiOHh2QvHi6IhssLZilB/OC"
    b"nwCYTEhe/jocXdsoMkP5//8ACYAwWGJQ2p5V0le95kFuzvX/Rm6HgdzuMz8BkL6YabtXIKxJ"
    b"oxqb8FdWydVTvEbt+3cukAAIg4W3p+//BObY6BrbcB/4VW4eCh+fnAB+AmC3oc6xz+WwyZri"
    b"PZmNzGs6wZ9XyGXIuoQEQBiszkXat6thu6hOjW3IR4G1b0RAetnxgJsAmCRV/Ffebphs1hrb"
    b"cO89KMdLw+PlcnN0CQmAOCzSLPfLZQhrdkWNTQR8PpxIaQF/YTGXIXMTANZeuc7x7YpsuDZ+"
    b"gZw2yjYRQx4SAKGkrJ2HyDtvUWTj5CW3wfv7cS7j5SYAtsb15SrASqD2X+cACYBQEhe8gOi+"
    b"3RTZyGzWFe49P3AZLzcBCLvpWqRtV1b5tPT1d1E4/DkuN0a3kAAIJf6VUYh9vL8iG9lt+qFy"
    b"4w4u4+UmAKwCUMpqZckSReNmoGTyLC43RreQAAgldtTDiJ+qrFJVXs/HULFkHZfxchMAR88O"
    b"SP5QWZBE/qDxKJ+7mMuN0S0kAEKJ6n83kt5WVu8iv8/TKF+0kst4+QnA/Z2R/O7Lym5MX+nG"
    b"LORzY3QLCYBQIu9ph5SlrymykT9wLMrf4hPtyk0Aovp1R9L8qYps8Jwa6RYSAKFEdGyNWmuU"
    b"LXULhj6LstkfcBkvPwF4uCeS3pykyEZulyFwrt7E5cboFhIAoUS0a4Va699WZKNg5BSUTedT"
    b"GoybAKiRCZjT4SG41v2bx3D1CwmAUMJb34DUTQsV2Sh6+mWUvDSPy3j5CcDwB5E4U1kdv5wO"
    b"AyUB2MblxugWEgChhN/SAqlb31Nko+jplyQBeIvLePktAQZJS4A5CpcA0hfQuXIjlxujW0gA"
    b"hBLR5ibU+lRZPn/BiOdRNmMhl/HqaxOQioH+MyQAQonocAtqfaJs+l4wbCLKZr3PZbz8jgEf"
    b"6ILkRS8pspH34FOoeHcVlxujW0gAhBLZtQ1SVryhyEb+oHEon7uEy3h1FQjE83hEt5AACMXR"
    b"uyOS33tVkY38/qNRvmA5l/HyCwXuJinjcmXKWDRhJkomKbMR8pAACCXm0QeRMEPZZndeT2mp"
    b"u4TPUpebAITf2gKpW5TtjlIy0DlAAiCUuOdHIm7MYEU2ctr3h2uDstT5c4VfOvCVlyFjn7Ju"
    b"vuUffoL8+0ZyuTG6hQRAKGq0Cs+87m64v97HZbzcBIA1Bal97HNFNlyf7UBO235cboxuIQEQ"
    b"SvKqOXB0bq3IxqmGbeH56Xcu4+VYEizqPyXBbDW2UfXdj8hq0Z1Kgv0dJADiMJmQ+sUShF9/"
    b"Tc1tSPf3RPr18GXn8xkyt6KgYXbUObYdllqJNTbhPZ5ZXRS0gE+9NF1CAiAMc0xUdVHQSy6o"
    b"sQ1/aTlOpF2HgLOSy5j5CYDFjPRvVsN+VYOa35wKV3VZcE710nQJCYAwrBekI33/WkVlwT0/"
    b"/45TjdqHYFlw1hhk1Ww4OtV8fRSQvnzZ19+DKk4bJLqEBEAY9iaNkLZnpaLGIK5NO5HTtq/0"
    b"tgu1xiBgrcHGIuaxPops5PcdhfKFK3gNWX+QAAgj8u52SPlIWTGQsgXLUdB/NLcx820OOuQ+"
    b"JM56VpGN0tfeReGjFAtwVkgAhKFGDEDRmFdRMvVNbmPm2x68fSvUWqesWII8RWrTR/oi8hq1"
    b"ziABEEbKx3MRedetimzk9ngMzqX8ql5xFQBr3drIOLQVJnPN10ie344is2kXBErLeQ1bX5AA"
    b"CMEUGY60XStgb1RPkZ1Tl7eD5+AhfuPmKQCmyAjU/n2Lov6AAY9XvkleSQiIM0ACIATW+Srj"
    b"4KcwR0XW2Ia/uBQn/tUSgbIKbuPmKgCwWFBr00JE3NJCkZnce4fD+dEGbsPWFSQAQlCjFmDV"
    b"7v3IurEH10A3vgIgkThnEqIH9VRko3TW+ygcNpHnsPUDCYAQ4l96GrFPDlBko/zd1ch/8Emu"
    b"4+YuANGDeyFxtrKHt/KLb5F9a28KCT4TJAD8YTPbje8g4tbrFJkpfHwqSqcpKyd2vnAXABYJ"
    b"mL73Y0U2/OVOnKp/B3yZOTyHrg9IALhjTk5Axs8bYUmIVWQns0V3uHft5zp27gLAwiTTD34K"
    b"a3qKIju59wyHcxntA/wFEgDuhLdtidQN8xXZ8BUU4VS9O+Av5Jvnwl0AYDZVn5cq7KFe/s4K"
    b"5PcbxXXouoAEgDsJr49HzLD7FdlwbfkKOW36Skrg4zp2/gIgETt+GOInPqrIhufQMTkxiFfW"
    b"lG4gAeCKKTxMjv9Xev5f8up8FD3xAv/xixCAsJbXIu3zDxXbyWzWFe49P/AevrYhAeCK7bKL"
    b"kP7jBpik+66E7Hb9UfkpnzJgf0SIAJgT45BxYIPiL6ko1dQ0JABcUWM26yssQWaDNvDlFnAf"
    b"vxABkFODV86Co/PtisywZQCLCoTbw90FzUICwA+rRZr+r0KYghoXDLnUXfv+3FKA/4gYAZCI"
    b"GtgDSXOVZ/VlNusmLQO+F+GCNiEB4IatcX2k7/tEUW4LQ8T5/2mECYC1fl1k7F8LU5hdkR0q"
    b"Ff4nSAC4ETf1ccSNGqTIRsDrQ1bTznDv/1mID8IEAHYb0nYuRVjTxorMsHXTybo302nAaUgA"
    b"uMBeXBmHtsBaO1WRHfe+n5B13d0IVFaJ8UOYAECdDRQGz04qmocEgAuRnVsjZdUcxXZY8Q9W"
    b"BEQUQgWANQtJ/3q5fJaqBNeWL5HT+kFRbmgLEgAupKx/G5HtWimywVLbs264V+gellABgM2K"
    b"tC+WIKzZlYrMBNweZDXvLk2nDgpzRTOQAAQd+eyfbf4p3L9y75em/y3ETf8ZYgVAIvaJAYh/"
    b"+WnFdsoXrkR+X+V2dA8JQNBJmDUBMUN6K7ZTPHkWisfNEOqLcAGw1a8rn6Waox2K7PjLK5B5"
    b"RQd4j5wU6Y54SACCiiU9pbryj4La/wy/0yW//T0//CLUH+ECwFCjmCKj5JW3UfTki6LdEQsJ"
    b"QFCJe/YRxE0YrtiOnPzT+gHR7mhDACI7tZYjA5XGU8shlVfdBd+JLNEuiYMEIGjIef8/rIOl"
    b"lrJ7yxrcsC7XFYvFn1xpQgBMEeFIl26s7eJ/KbZl+PwAEoCgETfxUcSNH6bYjvdUNk5d3h6B"
    b"kjLRLmlDABhxkx5D3Lihiu2wwgqsgajvuEFnASQAQYGt/dnOv0WaBSilZNoCFD0+VbRLMpoR"
    b"AOuFtaUb/LHizRVG6RvvofCRSaJdEgMJQFCIm/I44kYrC/tlsHJ2mU06w/vrEdEuyWhGABiJ"
    b"86ciul93xXbYTWYBFp7vxcRXC4UEQHXkk6qvl8McF6PYVrm07s/vNUK0S/9FUwJgv7oh0r5a"
    b"pjjAguH8ZCtyuw6RFlx8SywJhwRAXcwmJC+eAcc97RWbCng8yG7ZS1PdrTUlAAw1QiwZAZ8f"
    b"uV0GwyUJgaEgAVCV8DtulPtZmqwWxbZcW/9z9KehW6g5AQi7uTlSNy+CyaL8hnt+PoysFt3h"
    b"18BuKzdIAFTDFO1A6vbFigt+MAI+H3Ju74PKbV+Ldut/fdSaADBqrZ+PiHYtVbFluGNBJgCZ"
    b"OxWfVf8ZIwpA3OQRiBs7RBVb8tv/NvGBP39GkwIQ1uIqpH6xVJoFKAsMYrBEi+xbemtq3RVU"
    b"TCb5rNrkqHmTyjPh+fE3lC9aKdo7btibNELq5x/C7IhQbCvgD0jfwftQtX2PaLf+giYFgJGy"
    b"cjYiuyirGXga996DyGrZE4Fyp2i3CB3AAtNSt74nv4jUwLX5S2n6r810dc0KgP2qhkjbvQIm"
    b"m1UVeyXT30HRyCmi3SJ0gFpBaQxW8itbevlUfbVXtFtnRLMCwEh863lED7hHFVvsHyK340C4"
    b"NvCvvU7oB9azInXTQpjsyo+iGeUffIz83o+LduusaFoALGkpSD+wDpaEOFXseU9mI6tpF/hy"
    b"8kW7RmgQc3ys3OVHjZwUhr+0HJlXdYT3yAnRrp0VTQsAI+bx/kh4Rb0egK5PdyBHmglQa3Hi"
    b"fzCbkbx0Jhzd26pmsnjSGyieMFO0Z3+L5gXAFBWJtC+Xwd5YWe+1P1I8eTaKx00X7RqhIWJH"
    b"D0L8FPWm6qxpTda1XeEvLhXt2t+ieQFgRLS5CSmfzIXJZlPFHqshmHfvo3Cu3iTaNUIDRNx5"
    b"M1KWv6G4OO1pAn4/crsOhWvNZtGu/SO6EAB2tp345iRED+yhmkl/UQmyb3tAPiIkjAsr8Mmi"
    b"/dRI8z2NvPF3/xO6CJrShwBImFMSkL5rhZw2rBbe45lyfIDvWKZo9wgBsBz/1G3vw1avrmo2"
    b"vVm5yGrWDb6T2aLdOyd0IwCMyG5tkLxkpiqJGaep+u5H5LTpC39+kWj3CI6YYqNRa+08hN/Y"
    b"VDWbrNRXQd9RuoqY1JUAMNSMDTgNS9Bgazatb9gQ6mByRCD5/VcRqbA79Z8p//A/U38BXX5r"
    b"fC/0JgDmhFik7lgCe8NLVLXrXPdv5PV4lMKFQxwW5pv0zgtw3HunqnY9h09UZ57mFYp28fzu"
    b"h94EgBF23dWotWmRKokaf6Ri2Qbk93kaAadLtItEEGCFZtgMMur+zqraDVS5kdPxYVRu/EK0"
    b"i+d/T/QoAAy1z21PI4tAv1E0Ewgx2Js/cc4kRD3YRXXbJS/OQ9Gol0W7WCN0KwCsr6CcMdjh"
    b"FtVNOz/ejLzeTyBQViHaS0IFWDCZPO3v3k5126wxbW6HgUL7+ylBvwIgYU6Kl4s1qhW7/Udc"
    b"n25H3n0j4S8sEe0moQBWZTqJbfgF4UXhPZGFrObd4MvKE+1mjdG1ADDsTRvJZ7nmKGW9Bc9E"
    b"1a79yL17GHwn9HGmS/wvLJks+aOZqh71ncbvqpSPj6t2fCPaTUXoXgAYUX27I2lBcBotsN3d"
    b"vK5D4N5vwBLjOoZF+KWsngNb/YuCYr9g2ESUzXpftJuKCQkBYKHC8c+PlDcGgwELG87vN5py"
    b"B3RCeJubkPzeK6qG9/4RubPPky/o6rz/bISGADBsViS9PQVRD6i/y8sIuN0omTpX7uluuF4D"
    b"esFsRuxTDyFu/CMwRaiT2PNn5FOi+5+Qj/5CgdARAOaMIxIpH7+JiFuvC84FAgE4125Dfv/R"
    b"ugv4CHVYMY/EeZPlcHGTNCMMBpVf75PX/YHSctHuqkZICQDDnBiP1C3vwn7lZUG7hvdYJvIH"
    b"jEbllq90kfEV6oTd2ARJC16A7dILg3YN98FDyLntfviyQ6uaVMgJAIPt/tbavEj1cOE/EvB4"
    b"UTr9HRRPeh2BCoocFAEL7okd/bA07R+oSju5s+H59QiyWz8I34nQ6zgdkgLAsPwrXe4wFMy3"
    b"AoNlExYMmQD3rv2iXTYUrI9k4uyJqpXuPhveo6eQfUcfeH87KtrloBCyAsCwXnIBUjctgvXC"
    b"jKBeh50Jl732Loqfn03Rg0GGRfXFPPUQYkf0gzlK3eYnf8aXmYvstv3g+eEX0W4HjZAWAIa1"
    b"Xl3U2jAftovqBP1a7gO/ofDJF6qTQvx+0a6HHOG3XoeEaWOCur9zGlZBOqf9gJB++BkhLwAM"
    b"ywUZsgjYG1wc9GsFvF64Pt6KonHT4Tl4SLTrIQGr2BM3cTgiu7aBya5OXci/w3v0pPzm9/5y"
    b"RLTrQccQAsCQNwaZCHB4ezBYTfiyeUtQOmMhfKdyRLuvS1iH4+hHHkDMkPtgjovhck1WzTeH"
    b"rfmPnBTtPhcMIwAMljyUsux1hN/cnNs1fXmF1ULw2rvw5xaIvgW6wJycgOjBvRAjfSypydyu"
    b"yxrIsg7IbO1vFAwlALLDjggkzn0OUfd14npd1o2obO4SlL29lJKLzgJ72KMG3INo6Y1vTeP3"
    b"4DMqlm9Afv8xIRXkcy4YTgBkbDbEPTsccWOCkzvwd/hLylDx0XqUzlwkt9wmpH+OBhcjelhv"
    b"OHreBUt8LPfrs8axxaNfCZnw3vPBmAIge25CVP+7kTBjLMyO4B4nnQn2ZWPFSNnygLUrC7gq"
    b"Rd8RrrDAnfDbb0T0wHsQIf1UqynH+eCvcKHo6ZdQNudDw57aGFcA/kNY8yuR9OF0LseEZyQQ"
    b"gFdac1a8vwbli9fCc/C30O1baLXIO/oOafkV1bsjrHXSZCEWAesJkddrJKp2fiv6rgjF8ALA"
    b"MKckInnhi4ho21LYF/I07u9/hnPNZlQsXQ/v78d1W2rqNOzNbr24DiK7t0Nkx9vkCL5gJeuc"
    b"E5LgVm7bhbzej8OXZZzNvrNBAnAati8wdrCcTspizEUT8Afg+ekQKrfvgWvtVlR98wP8BSWA"
    b"T+OpyGYzzIlxsDdpJJfhCr+pKWyN6sEk/V40TEyr8zfe0L2wqgUJwJ8Ib9UMiXMnw1ZfvXZR"
    b"auArKoFn30+o2vMDKv+9C+4Dv8rdjETvHbC8e3NyIuyXX4ow6WEPu7ax9Ja/HBZJBLSE9/AJ"
    b"5D/8DCo3fyl6KJqCBOAMsHiBhFdGwdG7E0wW9dqQqYm/wiktEU7Ae+yktGz4BW5JHNiSwVdQ"
    b"BH9xGQJl5dIrT6WLSVN2U7RDLrDJ8u5ZEVb7NQ1ha1wftgtrw3rpBTBHqtujQS1Yp16ntJwq"
    b"eGwyxWGcARKAv8HR6y7Ev/gUrLVTRQ/lnGC96Vh7MzYz8Elfdvbx50g/8wvhYz9z8+VqRnL6"
    b"Mvu70jTYZLVW91q02+SdeZP0IFtSEuS6ChZJCFlZLXOtJPnPbGrPRECrovhn2OYqO94rf3+N"
    b"YXf5/wkSgH+AhaPGTXkCUfd3kh8WQvuwt37FknUoeupFCsP+B0gAzgVpCsxOCFgmGqs2S2gX"
    b"FsvPHnznmi301j8HSADOA3NMFKKHP4CYkf2ERKwRZ4clX5XMXIiy6e/AX0Rdns8VEoAaYKmT"
    b"hrjxwxDVpystCwTD9j2cS6Xp/thp8k4/cX6QANQUaVnAzrrjJj4qLQ9u0sQ5t5FgcRKVW79E"
    b"8bOvo+qrvTTdryEkAEoxAWEtrkbchEcQ3vp63eyQ6xW2wVe18zsUj5+Bys93U1VmhZAAqAgL"
    b"IoodO1j62ZxL5RojEfB4UPXlXpS8NA+u9Z+LHk7IQAIQBOzXXoGY4Q8gstNtMEdHiR6OrvGX"
    b"O+Fat00uqFL15XeihxNykAAEEVaVOPqhe+Ho2aE6mEhwopGeYK23Wd2Esrc+gveXw6KHE7KQ"
    b"AHDAFBMlxxFED7gHYddfA7NDm2GzomF5Daz9VvlbS+VpPiueQgQXEgDOsMw4x93tECEtD+wN"
    b"LjH8XkHA7YH7p0NwfbIVzhWfyTkNBD9IAARhCrdLYlAfkV3vkGcH9sb1DBNTwEqne348BOen"
    b"2+Fc/ik8B35BoNJ45bi0AAmABpCLZlx6ASJa34CI22+AvdkVsCTGix6WqrB0Zvfu7+H6bAdc"
    b"m3fC+9sxysnXACQAWsNsgjkpQa6cI4vBVQ1gv7KBnI2nJ+QHXprOu789ANfWr+HZe1DOTqSA"
    b"HW1BAqB1LBY5B4G1OAu/4RpZGGz1L4KN5eBzapbxT7DNOo/0Rvf8ehju/T/Lx3Wenw5Lvy+V"
    b"048J7UICoEdsVrlsGTtatDeuLy8fWJEOlqPAfmdJr1XdOFOlY0cWdsuanvqyc+XjOe/xLLlb"
    b"Lmuhxfoh+o5nyg1SQ7aYaQhDAhBKSMsHmMzyBqNcvUeaIZjjY6p/Sh9TdFS1JlitMP+p7qH8"
    b"AHu98mZcwO2Wqwr5C4vlzDpWZYgVEZHr5rMpPIXfhgwkAARhYEgACMLAkAAQhIEhASAIA0MC"
    b"QBAGhgSAIAwMCQBBGBgSAIIwMCQABGFgSAAIwsCQABCEgSEBIAgDQwJAEAaGBIAgDAwJAEEY"
    b"GBIAgjAwJAAEYWBIAAjCwJAAEISBIQEgCANDAkAQBoYEgCAMDAkAQRgYEgCCMDAkAARhYEgA"
    b"CMLA/B+R1aIPJ+78tQAAAABJRU5ErkJggg=="
)

class TaskBarIcon(wx.adv.TaskBarIcon):
    def __init__(self, frame):
        self.frame = frame
        super(TaskBarIcon, self).__init__()
        self.SetIcon(TRAY_ICON.GetIcon(), "ShutMeDown")
        self.Bind(wx.adv.EVT_TASKBAR_LEFT_DOWN, self.on_exit)

    def on_exit(self, event):
        self.frame.Close()
        self.Destroy()

    def allow_sleep(self, event):
        menu.Check(1, True)
        wx.MessageBox(
            "Windows will now be able to sleep",
            "Info",
            style=OK | wx.ICON_INFORMATION,
        )

    def deny_sleep(self, event):
            menu.Check(2, True)
            wx.MessageBox(
                "Windows will not be able to sleep",
                "Info",
                style=OK | wx.ICON_INFORMATION,
            )

    def GetPopupMenu(self):
        return menu

class App(wx.App):
    def OnInit(self):
        frame = wx.Frame(None)
        self.SetTopWindow(frame)
        Taskbar = TaskBarIcon(frame)
        global menu
        menu = wx.Menu()
        create_menu_item(menu, "Allow Sleep", Taskbar.allow_sleep, 1)
        create_menu_item(menu, "Deny Sleep", Taskbar.deny_sleep, 2)
        menu.AppendSeparator()
        create_menu_item(menu, "Exit", Taskbar.on_exit, 3)
        return True

def create_menu_item(menu, label, func, itemid):
    item = wx.MenuItem(menu, itemid, label, kind=wx.ITEM_CHECK)
    menu.Bind(wx.EVT_MENU, func, id=item.GetId())
    menu.Append(item)
    return item


def main():
    app = App(False)
    app.MainLoop()


if __name__ == "__main__":
    main()