list align

All,

Bizarre! The following aligns the icons across the top of the window and if I use self.list = wx.ListCtrl(self, -1, style=wx.LC_ICON | wx.LC_ALIGN_TOP), the icons align left, precisely the opposite of what wxPython in Action says they should do.

import wx
import os
import glob

class DemoFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'wx.ListCtrl in wx.LC_ICON mode', size=(600, 400))
        
        il = wx.ImageList(32, 32, True)
        for name in glob.glob("icons/icon??.png"):
            bmp = wx.Bitmap(name, wx.BITMAP_TYPE_PNG)
            il_max = il.Add(bmp)
        
        self.list = wx.ListCtrl(self, -1, style=wx.LC_ICON | wx.LC_ALIGN_LEFT)
        self.list.AssignImageList(il, wx.IMAGE_LIST_NORMAL)
        for x in range(25):
            img = x % (il_max + 1)
            self.list.InsertImageStringItem(x, "This is item %02d" % x, img)
        
app = wx.PySimpleApp(False)
frame = DemoFrame()
frame.Center()
frame.Show()
app.MainLoop()

Yes, unfortunately the definition of the way those align flags work makes it way too easy to be confused about them. Instead of "align along the TOP or along the LEFT side" they mean something like "Align the icons from TOP to bottom or LEFT to right."

···

On 4/8/10 8:29 PM, David Arnold wrote:

Bizarre! The following aligns the icons across the top of the window and if I use self.list = wx.ListCtrl(self, -1, style=wx.LC_ICON | wx.LC_ALIGN_TOP), the icons align left, precisely the opposite of what wxPython in Action says they should do.

--
Robin Dunn
Software Craftsman