@@ -17,13 +17,18 @@ class Multilistbox(Frame):
1717 lists = Inherits the Header Config Tuple ( Name as String , width as Int )
1818
1919 """
20- def __init__ (self , master ): # old: ,lists)
20+ def __init__ (self , master , ** args ): # old: ,lists)
2121 """
2222
2323 """
2424 self ._master = None
2525 self .master = master
2626 self ._labellist = {}
27+ self ._text = "default"
28+ if "name" in args :
29+ if isinstance (args ["name" ], str ):
30+ self ._text = args ["name" ]
31+
2732 # self.show(self.master, lists)
2833
2934
@@ -42,16 +47,15 @@ def master(self, value):
4247 else :
4348 raise TypeError
4449
45- def show (self ): # old: master , lists)
50+ def show (self ):
4651 master = self .master
4752 Frame .__init__ (self , master )
4853 self .lists = []
49- # old: for l,w in lists:
5054 sortedlabellist = self ._get_sorted_labellist ()
5155 for label in sortedlabellist :
5256 frame = Frame (self )
5357 frame .pack (side = LEFT , expand = YES , fill = BOTH )
54- Label (frame , text = label .text , borderwidth = 1 , relief = RAISED ).pack (fill = X )
58+ Label (frame , text = label .text , borderwidth = 1 , relief = RAISED , fg = label . text_color , bg = label . header_color ).pack (fill = X )
5559 # TODO config Property borderwith, relief
5660 lb = Listbox (frame , width = label .width , borderwidth = 0 , selectborderwidth = 0 ,
5761 relief = FLAT , exportselection = FALSE )
@@ -82,10 +86,8 @@ def _get_sorted_labellist(self):
8286 """
8387 returns a List of Multilistbox_label Objects sorted by Position
8488 """
85-
8689 self ._labelkeylist = []
8790 for label in self ._labellist .values ():
88- # sorted(unsorted, key=lambda element: (element[1], element[2]))
8991 self ._labelkeylist .append ((label .name , label .position ))
9092
9193 sorted_labelkeylist = sorted ( self ._labelkeylist , key = lambda position : position [1 ])
@@ -179,8 +181,8 @@ def __init__(self, labelname):
179181 # private Properties pleas do not use them
180182 self ._name = ""
181183 self ._text = ""
182- self ._text_colour = "default "
183- self ._header_colour = "default "
184+ self ._text_color = "black "
185+ self ._header_color = "grey "
184186 self ._is_filter = False
185187 self ._width = 10
186188 self ._position = 1
@@ -219,24 +221,24 @@ def text(self, value):
219221
220222
221223 @property
222- def text_colour (self ):
223- return self ._text_colour
224+ def text_color (self ):
225+ return self ._text_color
224226
225- @text_colour .setter
226- def text_colour (self , value ):
227- if isinstance (value , str ): # TODO Colour Type Proof
228- self ._text_colour = value
227+ @text_color .setter
228+ def text_color (self , value ):
229+ if isinstance (value , str ): # TODO Color Type Proof
230+ self ._text_color = value
229231 else :
230232 raise TypeError
231233
232234 @property
233- def header_colour (self ):
234- return self ._header_colour
235+ def header_color (self ):
236+ return self ._header_color
235237
236- @header_colour .setter
237- def header_colour (self , value ):
238+ @header_color .setter
239+ def header_color (self , value ):
238240 if isinstance (value , str ):
239- self ._header_colour = value
241+ self ._header_color = value
240242 else :
241243 raise TypeError
242244
@@ -283,6 +285,9 @@ def position(self, value):
283285 label1 .position = 1
284286 label1 .width = 40
285287 label1 .text = "Subject"
288+ label1 .header_color = "red"
289+ label1 .text_color = "blue"
290+ label1 .is_filter = True
286291 mlb .append_label (label1 )
287292
288293 label2 = Multilistbox_label ("label2" )
@@ -303,7 +308,7 @@ def position(self, value):
303308 label4 .text = "User"
304309 mlb .append_label (label4 )
305310 mlb .show ()
306- # mlb = Multilistbox(tk, (('Subject', 40), ('Sender', 20), ('Date', 10), ('Oerb', 30))) # TODO: Dynamische Laenge Spalten pruefen
311+ # TODO: Dynamische Laenge Spalten pruefen
307312 for i in range (1000 ):
308313 mlb .insert (END , ('Important Message: %d' % i , 'John Doe' , '10/10/%04d' % (1900 + i ),'by Oerb' ))
309314 mlb .pack (expand = YES ,fill = BOTH )
0 commit comments