Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.9, 0.9.1, and 0.9.1.1

gtklib: add 'expand' option to LayoutTable

Changeset 2a2ac2c0c9f9

Parent 15bb0a635d38

by Yuki KODAMA

Changes to one file · Browse files at 2a2ac2c0c9f9 Showing diff from parent 15bb0a635d38 Diff from another changeset...

 
382
383
384
385
 
386
387
388
389
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
390
391
 
 
 
392
393
394
 
407
408
409
410
 
411
412
413
414
415
 
 
 
 
 
 
 
416
417
418
 
423
424
425
 
426
427
428
 
435
436
437
438
 
 
 
 
 
439
440
441
442
443
 
444
445
446
 
382
383
384
 
385
386
 
 
 
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
 
424
425
426
 
427
428
 
 
 
 
429
430
431
432
433
434
435
436
437
438
 
443
444
445
446
447
448
449
 
456
457
458
 
459
460
461
462
463
464
465
466
 
 
467
468
469
470
@@ -382,13 +382,30 @@
  self.pack_start(self.table)   self.headers = []   - self.set_default_paddings() + self.set_default_paddings(-1, -1)   - def set_default_paddings(self, xpad=-1, ypad=-1): - self.xpad = xpad >= 0 and xpad or 4 - self.ypad = ypad >= 0 and ypad or 2 + def set_default_paddings(self, xpad=None, ypad=None): + """ + Set default paddings between cells. + + LayoutTable has xpad=4, ypad=2 as preset padding values. + + xpad: Number. Pixcel value of padding for x-axis. + Use -1 to reset padding to preset value. + Default: None (no change). + ypad: Number. Pixcel value of padding for y-axis. + Use -1 to reset padding to preset value. + Default: None (no change). + """ + if not xpad is None: + self.xpad = xpad >= 0 and xpad or 4 + if not ypad is None: + self.ypad = ypad >= 0 and ypad or 2     def get_first_header(self): + """ + Return the cell at top-left corner if exists. + """   if len(self.headers) > 0:   return self.headers[0]   return None @@ -407,12 +424,15 @@
  number: Fixed width padding.   None: Flexible padding.   - kargs: 'padding', 'xpad' and 'ypad' are availabled. + kargs: 'padding', 'expand', 'xpad' and 'ypad' are availabled.   - padding: If False, the padding won't append the end of body. - Default: True. - xpad: Overwrite default 'xpad' value. - ypad: Overwrite default 'ypad' value. + padding: Boolean. If False, the padding won't append the end + of body. Default: True. + expand: Number. Position of body element to expand. If you + specify this option, 'padding' option will be changed + to False automatically. Default: -1 (last element). + xpad: Number. Overwrite default 'xpad' value. + ypad: Number. Overwrite default 'ypad' value.   """   if len(widgets) == 0:   return @@ -423,6 +443,7 @@
  xpad = kargs.get('xpad', self.xpad)   ypad = kargs.get('ypad', self.ypad)   def getwidget(obj): + '''element converter'''   if obj == None:   return gtk.Label('')   elif isinstance(obj, (int, long)): @@ -435,12 +456,15 @@
  return lbl   return obj   def pack(*widgets, **kargs): - padding = kargs.get('padding', True) + '''pack some of widgets and return HBox''' + expand = kargs.get('expand', -1) + if len(widgets) <= expand: + expand = -1 + padding = kargs.get('padding', expand == -1)   if padding is True:   widgets += (None,)   expmap = [ w is None for w in widgets ] - if not (True in expmap): - expmap[-1] = True + expmap[expand] = True   widgets = [ getwidget(w) for w in widgets ]   hbox = gtk.HBox()   for i, obj in enumerate(widgets):