Toolbar & SearchCtrl

philippe DALET <[email protected]> Tue, 2 Jul 2019 06:09:47 -0700 (PDT)
Newsgroups gmane.comp.python.wxpython.devel
Message-ID <[email protected]>
------=_Part_2331_1751371681.1562072987630
Content-Type: multipart/alternative; 
	boundary="----=_Part_2332_980199153.1562072987630"

------=_Part_2332_980199153.1562072987630
Content-Type: text/plain; charset="UTF-8"

Hello Robin,

I noticed two anamolies about wx.SearchCtrl in a Toolbar.

- EV_BUTTON_ENTER does not work anymore since the last beta versions (gtk2, 
gtk3 & win7)
  it works fine with 4.0.6
  see DEMO \ Core Windows-Controls \ Toolbar

- The second anomalie is on GTK3, not on GTK2
  see image files joined
  I joined also my script

Thanks a lot.

Philippe DALET

-- 
You received this message because you are subscribed to the Google Groups "wxPython-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion on the web visit https://groups.google.com/d/msgid/wxPython-dev/0fd3c5f4-7fa0-4d12-9364-d2832d922c4e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

------=_Part_2332_980199153.1562072987630
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hello Robin,<div><br></div><div>I noticed two anamolies ab=
out=C2=A0wx.SearchCtrl in a Toolbar.</div><div><br></div><div>- EV_BUTTON_E=
NTER does not work anymore since the last beta versions (gtk2, gtk3 &amp; w=
in7)</div><div>=C2=A0 it works fine with 4.0.6</div><div>=C2=A0 see DEMO \ =
Core Windows-Controls \ Toolbar</div><div><br></div><div>- The second anoma=
lie is on GTK3, not on GTK2</div><div>=C2=A0 see image files joined</div><d=
iv>=C2=A0 I joined also my script</div><div><br></div><div>Thanks a lot.</d=
iv><div><br></div><div>Philippe DALET</div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;wxPython-dev&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:[email protected]">wxPyth=
[email protected]</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/d/msgid/wxPython-dev/0fd3c5f4-7fa0-4d12-9364-d2832d922c4e%40googlegroups=
.com?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.com/d/ms=
gid/wxPython-dev/0fd3c5f4-7fa0-4d12-9364-d2832d922c4e%40googlegroups.com</a=
>.<br />
For more options, visit <a href=3D"https://groups.google.com/d/optout">http=
s://groups.google.com/d/optout</a>.<br />

------=_Part_2332_980199153.1562072987630--

------=_Part_2331_1751371681.1562072987630
Content-Type: image/png; name=GTK2.png
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=GTK2.png
X-Attachment-Id: c21e4dc3-c880-43cf-a542-5c4b144a0b5f
Content-ID: <c21e4dc3-c880-43cf-a542-5c4b144a0b5f>

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
------=_Part_2331_1751371681.1562072987630
Content-Type: image/png; name=GTK3.png
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=GTK3.png
X-Attachment-Id: e452dae7-09e9-4c5b-80f1-4bedcc5e1e74
Content-ID: <e452dae7-09e9-4c5b-80f1-4bedcc5e1e74>

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
gg==
------=_Part_2331_1751371681.1562072987630
Content-Type: text/x-python; charset=US-ASCII; name=WheelInstall.py
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=WheelInstall.py
X-Attachment-Id: 7651ee91-714e-4c6d-a806-e96db5ef4f28
Content-ID: <7651ee91-714e-4c6d-a806-e96db5ef4f28>

#!/usr/bin/env python3
# Ph DALET- France

import wx
import wx.stc


from wx.lib.embeddedimage import PyEmbeddedImage
from glob import glob
import os.path
import os
import sys
import subprocess, shlex
import platform


import struct
_code= 8 * struct.calcsize("P")

ID_UPDATE =wx.NewIdRef() 
ID_REFRESH=wx.NewIdRef()
ID_QUIT   =wx.NewIdRef()
ID_INFO   =wx.NewIdRef()

_version="1.0.1"
_platform=platform.system()
_python_version = platform.python_version()
_py=_python_version[0]+_python_version[2]


Update_png = PyEmbeddedImage(
    b'iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAABHNCSVQICAgIfAhkiAAABSdJ'
    b'REFUOI2VlFtsVFUUhv+9z3VmzpzOTGemnWI7baGlUC4Byl0IRRIUi0aDURJviTExxER50PAA'
    b'IZEYozExvPBg0PAAPOAlGoOKRIKUGGy4FIpgoRcq7ZRpnXaGzsy57r19oCTYRKL/y3pYf/6s'
    b'tZL1Efx3EQASIUQFwIUQ9r8Zpf8ZqhEqVcqqPkcPmXMJIZz5XmGmUZ72k2hi1tx49by1Rrhx'
    b'bSo9f82pb/Zusa38wIxQSgjVqayEZTWUDpjJJQT+8ERm4BvOmfOPUCpJ6uJVL380kQlsZQ4D'
    b'81Tfc+38jAE4gBJnfkb4vqHpgQWybkQVLTw7kki3Dvb88gHzPQsAKABw5juWVS5ShUJSZQji'
    b'5hlzHliL6IAcu1dF2XVK3bnMwBEJvBQyK+O6Wb+mdfXTe6e3uTdpunnlVioaXlADDlLpiqxt'
    b'TWQAwSTZaGte0L577YYnNlSnUuG/xseL1y6fPd156uv3OSt2jfR372+trPskGI436cGm59Mt'
    b'tzqH/jh/XAKAxWt2HHEsMSuVriz/dGzX6vFMz0nH0R5vXfHSV5s6trfqZpU+PMZIyExoqfS8'
    b'ufFEwyv9vddHBZ/qmhwf7mlt2/yqL4LRZM3s1oGeU5/TeKp+AaGJZQEjgJHBzkO2levN53JC'
    b'j7cf0OMtWt6LoWcogKyVRNauRM6JYemKdeqsec8coLK50nOLQyM3z3+rBwxd1mvbEjX1C2l1'
    b'3ZKNrm2TeE1M9Hb/fBgAQvFlu2vmtmnr1i/D5YyMvAhBMkzUpWO4Syrw66AKo3qBGqhcvgcA'
    b'+q+e/TIajWqO5cvJ2oXtVA8mm6lMIQRzSlOZKyBUTzSs2lDdOAdPbW5G7ZwIkrMCsCQgElVQ'
    b'AkVeCSPVWI9YQ/t6EKpbpbFrvu163GdE1WPNVNFDFZIiQ3DfFoKVqKSGzarGcLI2if4JH4GI'
    b'DEcl0KIKQlEFSoWMSNpEpDqOZF2dQSUtJAQru45tc88HEXJI9r1yQTNkyJquEUJ1wdyiEQkW'
    b'ZU0zL4xaWDTPwJTD8VhjEL+POVi+yMRU0cWjbWkcLWZLF5lbJoRqBJLGPB+ua5WoY43fkGQF'
    b'WsjQA6GqRUJwZhf6zsSiQUSDEoIVMmobQpjQZZCYDi0iIx2RMFrwMfpnT6cQzNeD8VZClQDz'
    b'PNil8Rv0zq1Lp4NmUEwVXdKydON2AOg7d2SfpMKtSQRghlU0JzRURxSk4hrq4zogy/CZ7/ae'
    b'PbwPABrnr98+kc0TSoTI3bl+mo6NDFxh3uhFxrloWvrki4oaiufv3Ow6efDdt13P9SSJwuGA'
    b'SYGYDHBB4DHfO/jhWzu5c3dKUY1kunnLa+VCHr6bvTw5fvuKBADcL+RSTeu2WbbDI5HwI5mB'
    b'7hO54d6hK50nslqgsk42kuakK9P82KR34eSPfUfee+Pjvktnvljfsetw08KONyeydg33HTF8'
    b'67udxcKdq2T6ufX25945Cr1ulV3MDI/1n/th8OqZzzhnEQBVkqJWaUHDcMvFou+5WQBZACOb'
    b'nt3fkxstpjhj4Bg43tN1aBsA+z5P/ZG+C11VtXWLyqWy5DhlX6LEdK1iP+fspuDspudY1zln'
    b'NwDcBpClVFUaWjr2TOUKkmAMsmb3jWUuHxOC+/J9Dnmuc+u37z/dkZ6/6nXX5VHbLruEShWE'
    b'0rzgfBKAO42/e8xU9VqIwqgvbnQX7w5dyA8OHBecuffBO1OKHgq3ADTpOVaWMW8UQkwB8ACI'
    b'B3wSAAOAM91jD9L8YVLun2dG4EP1N+nfXiq5NO5jAAAAAElFTkSuQmCC')
      
Quit_png = PyEmbeddedImage(
    b'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAABIBJ'
    b'REFUOI19lFlslGUUhp/v+/5lptMZ2mnL0E6LZZtCq6JggTIYF4IsgRiFalIgJmCkgcTt3sS4'
    b'xxs1BOOSoBhFg4o7aBDTXqiQNNFQa7pQolBaStOZLsPMP/NvXkwteONJTs7V9+Q97/nyCq6X'
    b'CsHmRtg0ByoFCP6nhIBrMPmnT2cajgM5mHkkILoBPtofj2+c39wsVEkJvufhuy7MTN918R0b'
    b'HBvsAth5/LzF1PCQf3Qsde59m+0uDApA3gNfvLhu3bb6AwcEvo+Xz+MVCrPzamUlvlKU9fag'
    b'23ko5ItAu4BfyJPr/p03e/q737ZYIw1IPhaNbr2pvV0ITQPf/89qOWDBpk3c3trKpKGhJCit'
    b'2JoGugbhpmU8Wl168zxFm5wPdyeSSQngWRaebWM7Dql4nOzatWSEj5QSIQSOgMurkgzdtpqs'
    b'FGjSR1M+mgbltfPEKpP1MgLRYH09Xi6HZ1nY+TzTiQS3bN5MbSJBAQ9/RrXje8Qam0i27Sa7'
    b'pZWsKAJ15WFGQkR1yiWANAxcy8LN5RgvK6MxmWRqYoK+Tz+hwrb414QQDunPjnBx8Dwr129g'
    b'+NYWlHTRlIdhSpQECeBkMni5HFnLYm5zM67r0n/8GNVXLyPcwqxCPIcFuRSjHxwkNT5O47Yd'
    b'DCPRlItueCh9BlgYGcHL5ZjQNKrr6hjsPkdsdAjh5MEpzB5KeDbKt0nYafp//JaquXOZql2E'
    b'brjopoPSQQPIj47iWTlEbRxN0xjvOktgsI9C/hqZfA4zm2VOWRmTvb/h6xYqoLC6PHj4EVTN'
    b'fLSJLgh4KEMUgdmBAZyxUc63tLBmz176T3xF5OwpdB2UgjMnv6GqfiGh3l8RpS4iAOlLQ/i+'
    b'z/jYKIxdAGVAIFQE2qkUTKe4FqvC932MhUtQXaeK30GH5QefxDcgHgYtCFpQQWwpQgjc6RQi'
    b'GAFNh0Co6KGUoCQY/T2MjY2xtLWNEalQCjQFFQGoKZ2BlSimAxGC9+7EcRzElUGIVkO0GjEL'
    b'FEXoMifLT0cOs7JlLcO7HidDcWXNAGWCCkoKwQgna+5j/Y6d/NJxmpVVJqK8GhGtuUGhJpAS'
    b'TAnOoVcY6O2l7flXufDUa3QGY1zyYMSDjkKUH1a0s+Plw2Smp0mf+pBYvA7K5yEqaoseZiBt'
    b'lJejSwdpTbE8P8nPu7fivvcl9+9/AmvPPs4P9JN1HJKLlxAOhxkZGabj4LNsX1yBiFRAeQ0i'
    b'UkGqcCItDLjzaInqaEiuliI9ClcvYkibPjNE5qF2mrbvYsGixUgpuTw0xB+d31Pac5q7EnFk'
    b'VR1ifhMiVk925G+/6YG9+wQgN2p8/VxtdEv0jhXCCOiIzDgqM44qTDLsWFwxdSgNU10ZpSGR'
    b'QKtrQMYbELF6KIlAIc9Lh97teeaNd1bPBuw2g4+frjQ3VMeiwiwPY0ZKMEpNjIiBHpKIcAQR'
    b'roBwtDgjFYhwJRlX+K8f+677hbeOPOi47uCNMa+FBVtWmGys1KlSEqEkSKOYfcI0wSy53kaJ'
    b'P+mKqTN9f3VeGZ/4HMgC/APArMnY0JE/6AAAAABJRU5ErkJggg==')
    
Info_png = PyEmbeddedImage(
    b'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAoZJ'
    b'REFUOI2Nk0tIVUEYx39zHvecc69KpoZKYdAmbFURVIvWtUiCoFq0aSMULVu1q13roE2bggqJ'
    b'gpKgdRQhEUFhaQ9NIS31lt6r9+W5Z74Wc7wvr48PhjPfzP/85j/fzCjqwweVYNOQxoFS3ABQ'
    b'AFh2yu87fmn3kYunk35LEq0h0ohoTD8CrZF4HK1BzPhyZj47O/rofpifGUZ0UQEE+09eO3Ph'
    b'zq29gW1ZShkPsRERqfqqMbeWlyPNh7Ev+TfDVwbDlemHDkq1dx88P5DIFa2ZFUHECOMPrq3o'
    b'3WWqMDtXohRKZR4BpaBz555kqufY2aXv008cUIGtSWbzudiRUUrc79+X5PrlPgThxu1RxifD'
    b'CkwqTgUr6GwHbAcgn8/z+ecf0ksldCR1Ze/r7cZLmLJ9m5jk9ccIiUsPoJSiNeVQLEcKwAGY'
    b'T2f4nZ+L3dXH81fL9HTkyGRzvB39RaaYqpzlWmQKwGpEBVguh+Dq9TSgrT1JIQpIpDzaOrKk'
    b'w9V1QABWVRWIUuD560UiHDrQyc2rJwAYGXvM5KICZa3XFu0aIIDnNfEnKNeuprZldM2A5jjW'
    b'HAJ+c4c4bjV3XfCd5kCnEbiBQyvh1v/kWdsBblBDBMuredquC74LbAm0wQ82cFizkOuAF2yj'
    b'hp7XHChg1wKdhNFtuWUvAL+lCVBIl2zeT/xFRMhECaNrDhQDFCmgdMFspfHCCi+nQkbuzSGi'
    b'WVhtBz/VRAfk01lAOyCLfHrwlP5TR2ntchp1OSDHDpO4jbMYeHYqx/iLZ0DJLKXsNnoOD9J/'
    b'boCgq5UwhHLZiC0bnLhZjim+Y5tLbjvw78ci7+4OsfB1CImytd4twN/Ax2ZRBgqABvgPY/T9'
    b'JFp42DoAAAAASUVORK5CYII=')

if "gtk2" in wx.PlatformInfo or "gtk3" in wx.PlatformInfo:
    margin_default=20
    size_default=(420,550)
    X=size_default[0] + 2*margin_default
    Y=size_default[1] + 6*margin_default
else:
    margin_default=15
    size_default=(350,450)
    X=size_default[0] + 3*margin_default
    Y=size_default[1] + 9*margin_default

class Panel(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)

        self.parent=parent
        self.sudoPassword=''
        self.Refresh()

        pos=wx.Point(margin_default,margin_default)      #  x, y
        size=wx.Size(size_default)                                  # width, height
        self.lb = wx.CheckListBox(self, -1,pos, size, self.sampleList)
        	
        posx=size.GetWidth()/2 -2*margin_default
        posy=size.GetHeight()  + 2*margin_default
        btn = wx.Button(self, -1, "Install", (posx,posy))
        self.Bind(wx.EVT_BUTTON, self.OnInstallButton, btn)

        self.parent.SetSize(X, Y)

    def Refresh(self):
        self.sampleList = ['']
        self.sampleList = glob(os.path.join('', '*py3*.whl')) + glob(os.path.join('', '*cp%s*.whl' %_py))
        sampleList1 = glob(os.path.join('', '*cp%s*.whl' %_py))
        self.sampleList.sort(key=lambda s: s.lower())
    
    def RefreshList(self):
        self.lb.Clear()
        for i in range(len(self.sampleList)):
              self.lb.Append(self.sampleList[i])

    def OnInstallButton(self, evt):
        sudoPassword=''
        num=0
        for i in range(len(self.sampleList)):
            if  (self.lb.IsChecked(i)==True):
                self.lb.Check(i,False)
                num=i
                if (platform.system()=='Windows'):
                    self.sudoPassword="hello world"
                    command = 'c:\Python%s\Scripts\pip install --upgrade ./%s' %(_py,self.sampleList[i])
                else :
                    if (self.sudoPassword==''):
                        dlg=wx.PasswordEntryDialog(self.parent,'') 
                        dlg.ShowModal()
                        self.sudoPassword = dlg.GetValue()
                    command = 'echo %s|sudo -S -H pip3 install --upgrade ./%s' % (self.sudoPassword,  self.sampleList[i])
                os.system(command)
        self.Refresh()
        self.RefreshList()
        self.lb.SetSelection(num)

    def Install(self, text):
        if (platform.system()=='Windows'):
            self.sudoPassword="hello world"
            command = 'c:\Python%s\Scripts\pip install %s --upgrade' %(_py,text)
            #command = 'c:\Python%s\Scripts\pip search %s' %(_py,text)
        else :
            if (self.sudoPassword==''):
                dlg=wx.PasswordEntryDialog(self.parent,'') 
                dlg.ShowModal()
                self.sudoPassword = dlg.GetValue()
            command = 'echo %s|sudo -S -H pip3 install %s --upgrade' % (self.sudoPassword,  text)
            #command = 'pip3 search %s' %(_py,text)
        if (text!=""):
            os.system(command)

class TestSearchCtrl(wx.SearchCtrl):
    maxSearches = 5
    def __init__(self, parent, id=-1, value="", pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.TE_PROCESS_ENTER, doSearch=None):
        wx.SearchCtrl.__init__(self, parent, id, value, pos, size, style)
        self.Bind(wx.EVT_TEXT_ENTER, self.OnTextEntered)
        self.doSearch = doSearch
        self.searches = []

    def OnTextEntered(self, evt):
        text = self.GetValue()
        if self.doSearch(text):
            self.searches.append(text)
            if len(self.searches) > self.maxSearches:
                del self.searches[0]
        self.SetValue("")

class Frame ( wx.Frame ) :
    def __init__( self, parent=None, id=wx.ID_ANY, title='',  pos=( 650, 50) , size=( 100, 100), style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER  ) :
        wx.Frame.__init__( self, parent, id, title, pos, size, style )
        self.P=Panel( self )
        tb = self.CreateToolBar( wx.TB_HORIZONTAL|wx.NO_BORDER )

        tb.AddTool(ID_UPDATE , "Tools",Update_png.GetBitmap(), wx.NullBitmap, wx.ITEM_NORMAL, "Update", "Update on web new .whl files 'Update'", None)
        self.Bind(wx.EVT_TOOL, self.OnUpdateClick, id=ID_UPDATE)
        tb.AddTool(ID_QUIT , "Quit", Quit_png.GetBitmap(), wx.NullBitmap, wx.ITEM_NORMAL, "Quit", "Exit program  'Quit'", None)
        self.Bind(wx.EVT_TOOL, self.OnCloseWindow, id=ID_QUIT)
        tb.AddTool(ID_INFO , "About", Info_png.GetBitmap(), wx.NullBitmap, wx.ITEM_NORMAL, "About", "About program  'About'", None)
        self.Bind(wx.EVT_TOOL, self.OnAboutClick, id=ID_INFO)
        search = TestSearchCtrl(tb, size=(200,25), doSearch=self.DoSearch)
        tb.AddControl(search)

        tb.Realize()
        self.Show()
        self.Update()

    def DoSearch(self,  text):
        #print("DoSearch: %s\n" % text)
        self.P.Install(text)
        return True

    def Clear(self) :
        if (platform.system()=='Windows'):
                command = 'cls'
        else:   #Linux
                command = 'clear'
        os.system(command)

    def Update(self) :
        if (platform.system()=='Windows'):
                command = 'c:\Python%s\Scripts\pip3 list --outdated ' %_py
        else:   #Linux
                command = 'pip3 list --outdated --format=columns'
        print(command)
        os.system(command)
        print("Updated\n")
        self.P.Refresh()
        self.P.RefreshList()

    def OnUpdateClick(self, event):
        self.Clear()
        self.Update()
                       
    def OnAboutClick(self, event):
        st="Only for Python3 (3.5-3.6-3.7) [Linux && Windows]\n\n"\
             "- Update:  View the updates from the web for the installed wheel packages "\
             "and Refresh the list (.whl) from the current folder\n\n"\
             "Notes:  \n"\
             "The directory '~/.cache/pip/http' or its parent directory"\
             " is not owned by the current user and the cache has been disabled. Please check"\
             " the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag."\
             "\n\n                        Ph.DALET Lyp Champollion- FIGEAC [FRANCE]\n"\
             "                            [email protected]   2017-2019"
        dlg = wx.MessageDialog(self, st, 'About' , wx.OK)
        result = dlg.ShowModal()
        dlg.Destroy()

    def OnCloseWindow( self, event ) :
        self.Destroy()


if __name__ == '__main__':
    print ("WheelInstall.py")
    print ("Version: "+_version)
    print ("Platform: "+_platform +" " +str(_code)+" bits")
    print ("Python: " +_python_version)
    print ("WxPython: "+ wx.version()+'\n')
    app = wx.App(False)
    Frame(None, wx.ID_ANY, title='Wheel Installation - %s' %_version)
    app.MainLoop()

------=_Part_2331_1751371681.1562072987630--