-
Notifications
You must be signed in to change notification settings - Fork 2
/
higframe.py
94 lines (70 loc) · 2.48 KB
/
higframe.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (C) 2005 Insecure.Com LLC.
#
# Author: Guilherme Polo <ggpolo@gmail.com>
# João Paulo de Souza Medeiros <ignotus21@gmail.com>
#
# This library is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# This library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this library; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
"""
higwidgets/higframe.py
hig frame
"""
__all__ = ['HIGFrame']
import gtk
class HIGFrame(gtk.Frame):
"""
Frame without border with bold label.
"""
def __init__(self, label=None):
gtk.Frame.__init__(self)
self.set_shadow_type(gtk.SHADOW_NONE)
self._flabel = gtk.Label()
self._set_label(label)
self.set_label_widget(self._flabel)
def _set_label(self, label):
self._flabel.set_markup("<b>%s</b>" % label)
#class needed to maintain compatibility of RadialNet with higwidgets
class HIGFrameRNet(gtk.Frame):
def __init__(self, label=''):
gtk.Frame.__init__(self)
self.set_border_width(3)
self.set_shadow_type(gtk.SHADOW_NONE)
self.__alignment = gtk.Alignment(0, 0, 1, 1)
self.__alignment.set_padding(12, 0, 24, 0)
self.add(self.__alignment)
self._set_label(label)
def _set_label(self, label):
self.set_label("<b>%s</b>" % label)
self.get_label_widget().set_use_markup(True)
def _add(self, widget):
self.__alignment.add(widget)
def _remove(self, widget):
self.__alignment.remove(widget)
# Demo
if __name__ == "__main__":
w = gtk.Window()
hframe = HIGFrame("Sample HIGFrame")
aalign = gtk.Alignment(0, 0, 0, 0)
aalign.set_padding(12, 0, 24, 0)
abox = gtk.VBox()
aalign.add(abox)
hframe.add(aalign)
w.add(hframe)
for i in xrange(5):
abox.pack_start(gtk.Label("Sample %d" % i), False, False, 3)
w.connect('destroy', lambda d: gtk.main_quit())
w.show_all()
gtk.main()