Changeset 16960 for lang/python

Show
Ignore:
Timestamp:
08/01/08 23:54:17 (4 months ago)
Author:
showyou
Message:

crochet list coloring

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/python/crochet/chat_allsrc.py

    r16911 r16960  
    5050                list = self.list = wx.ListCtrl(recentPage,-1,style=wx.LC_REPORT|wx.LC_HRULES) 
    5151                list.Bind(wx.EVT_KEY_DOWN, self.myKeyHandler) 
    52  
     52                list.Bind(wx.EVT_LIST_ITEM_ACTIVATED,self.OnDoubleClick) 
    5353                # Reply 
    5454                replyPage = wx.NotebookPage(notebook,-1) 
     
    6868                 
    6969 
    70                 messageText=self.messageText = wx.TextCtrl(self,-1,style=wx.TE_MULTILINE|wx.TE_READONLY) 
     70                messageText=self.messageText = wx.TextCtrl(self,-1,style=wx.TE_MULTILINE|wx.TE_AUTO_URL|wx.TE_READONLY) 
    7171                userIcon = self.userIcon = wx.StaticBitmap(self,-1,wx.NullBitmap,(0,0),(64,64)) 
    7272                userName = self.userName = wx.StaticText(self,-1,"test") 
     
    131131        def RefleshTw(self): 
    132132                #name = XRCCTRL(self,'ID_NAME') 
    133                 list = self.list#XRCCTRL(self,'ID_TWITLIST') 
     133                list = self.list 
    134134                a = self.tw.get("") 
    135135                dataList = [] 
     
    160160                        i+=1 
    161161                self.dataList = dataList + self.dataList 
    162                  
     162                #if self.selectRow != -1 :self.selectRow+=len(dataList)  
    163163        def OnUpdate(self, event): 
    164164                self.RefleshTw() 
     
    166166         
    167167        def OnTwitListSelect(self,event): 
     168                import re 
    168169                self.selectedRow = event.GetIndex() 
    169170                label = self.userName 
     
    172173                text.SetValue(self.dataList[selectedRow][2]) 
    173174                label.SetLabel(self.dataList[selectedRow][1]) 
    174                 self.LoadImage(self.GetImageListElement(self.dataList[selectedRow][4]),self.userIcon)    
     175                self.LoadImage(self.GetImageListElement(self.dataList[selectedRow][4]),self.userIcon) 
     176                #選択したユーザに関する発言の色を変えてみる 
     177                p = re.compile(self.dataList[selectedRow][1]) 
     178                for i in range(0,self.list.GetItemCount()): 
     179                        if p.search(self.dataList[i][1]): 
     180                                self.list.SetItemBackgroundColour(i,wx.Color(225,225,225))               
     181                        elif p.search(self.dataList[i][2]) : 
     182                                self.list.SetItemBackgroundColour(i,wx.Color(192,225,225))               
     183                        else: 
     184                                self.list.SetItemBackgroundColour(i,wx.Color(255,255,255)) 
    175185         
    176186        def SetNowTime2StatusBar(self): 
     
    192202                                if self.selectedRow < self.list.GetItemCount()-1: 
    193203                                        self.MoveList(self.selectedRow+1) 
     204                        if evt.GetKeyCode() in [ord('h'),ord('H'),wx.WXK_LEFT]: 
     205                                print ('left') 
     206                                leftcol = self.GetPrevItem(self.selectedRow) 
     207                                if leftcol != -1: 
     208                                        self.MoveList(leftcol) 
     209                        if evt.GetKeyCode() in [ord('l'),ord('L'),wx.WXK_RIGHT]: 
     210                                print ('right')  
     211                                rightcol = self.GetNextItem(self.selectedRow) 
     212                                if rightcol != -1: 
     213                                        self.MoveList(rightcol) 
     214 
    194215                #print list. 
    195216                if evt.GetKeyCode() in [ord('q'), ord('Q')]: 
    196217                        wx.Exit() 
     218 
     219        # 今のユーザ名を含む、前の発言を検索 
     220        def GetPrevItem(self,row): 
     221                import re 
     222                print ('getprevItem') 
     223 
     224                userName = self.dataList[row][1] 
     225                p = re.compile(userName) 
     226                currentRow = row-1 
     227                while currentRow >= 0 : 
     228                        if (p.search(self.dataList[currentRow][1])):  
     229                                return currentRow  
     230                        currentRow-=1  
     231                return -1 
     232         
     233        # 今のユーザ名を含む、後ろの発言を取得 
     234        def GetNextItem(self,row): 
     235                import re 
     236                print ('getnextItem') 
     237                userName = self.dataList[row][1] 
     238                p = re.compile(userName) 
     239                currentRow = row+1 
     240                while currentRow < len(self.dataList) : 
     241                        if (p.search(self.dataList[currentRow][1])): 
     242                                return currentRow  
     243                        currentRow+=1  
     244                return -1 
    197245 
    198246        def MoveList(self,newRow): 
     
    205253        """ 
    206254        def GetImageListElement(self,url): 
    207                 if self.imageList.has_key(url): 
     255                unicodeUrl = url 
     256                if self.imageList.has_key(unicodeUrl): 
    208257                        pass 
    209258                else: 
    210                         self.imageList[url] = self.WebImage2StringIO(url) 
    211                 return self.imageList[url] 
     259                        self.imageList[unicodeUrl] = self.WebImage2StringIO(url) 
     260                return self.imageList[unicodeUrl] 
    212261         
    213262        # Web上の画像を引っ張ってくる 
     
    217266 
    218267                #try: 
    219                 imagePath = urllib.urlopen(url).read() 
     268                urlName = urllib.quote_plus(url,':;/') 
     269                #print "url:"+url 
     270                #print "urlName:"+urlName 
     271                imagePath = urllib.urlopen(urlName).read() 
    220272 
    221273                image_pil = Image.open(StringIO(imagePath)) 
     
    225277                image_wx.SetData(image_pil.convert('RGB').tostring()) 
    226278                return image_wx 
    227                         #self.LoadImage(StringIO(buffer),bmp) 
    228279                #except: 
    229280                #       print "Error:URL not valid!:"+url 
     
    234285                bmp.SetBitmap(image.ConvertToBitmap()) 
    235286 
     287        #ダブルクリック時 
     288        def OnDoubleClick(self,event): 
     289                print ("dblclk") 
    236290# startup application. 
    237291if __name__=='__main__':