44
39
gettext.textdomain("ccsm")
45
40
_ = gettext.gettext
47
IconTheme = gtk.icon_theme_get_default()
42
IconTheme = Gtk.IconTheme.get_default()
48
43
if not IconDir in IconTheme.get_search_path():
49
44
IconTheme.prepend_search_path(IconDir)
57
display = gtk.gdk.display_get_default()
52
display = Gdk.Display.get_default()
58
53
nScreens = display.get_n_screens()
59
54
for i in range(nScreens):
63
58
def getDefaultScreen():
64
display = gtk.gdk.display_get_default()
65
return display.get_default_screen().get_number()
59
return Gdk.Screen.get_default().get_number()
67
61
def protect_markup_dict (dict_):
68
62
return dict((k, protect_pango_markup (v)) for (k, v) in dict_.items())
79
73
if useMissingImage:
80
self.set_from_stock (gtk.STOCK_MISSING_IMAGE,
81
gtk.ICON_SIZE_LARGE_TOOLBAR)
74
self.set_from_stock (Gtk.STOCK_MISSING_IMAGE,
75
Gtk.IconSize.LARGE_TOOLBAR)
107
101
elif type == ImageStock:
108
102
self.set_from_stock (name, size)
109
103
except GObject.GError as e:
110
self.set_from_stock (gtk.STOCK_MISSING_IMAGE, gtk.ICON_SIZE_BUTTON)
104
self.set_from_stock (Gtk.STOCK_MISSING_IMAGE, Gtk.IconSize.BUTTON)
112
106
class ActionImage (Gtk.Alignment):
121
115
def __init__ (self, action):
122
gtk.Alignment.__init__ (self, 0, 0.5)
116
Gtk.Alignment.__init__ (self, xalign=0, yalign=0.5)
123
117
self.set_padding (0, 0, 0, 10)
124
118
if action in self.map: action = self.map[action]
125
119
self.add (Image (name = action, type = ImageThemed, size = 22))
127
121
class SizedButton (Gtk.Button):
132
123
def __init__ (self, minWidth = -1, minHeight = -1):
133
124
super (SizedButton, self).__init__ ()
134
self.minWidth = minWidth
135
self.minHeight = minHeight
136
self.connect ("size-request", self.adjust_size)
138
def adjust_size (self, widget, requisition):
139
width, height = requisition.width, requisition.height
140
newWidth = max (width, self.minWidth)
141
newHeight = max (height, self.minHeight)
142
self.set_size_request (newWidth, newHeight)
125
self.set_size_request (minWidth, minHeight)
144
127
class PrettyButton (Gtk.Button):
147
'expose-event' : 'override',
150
133
_old_toplevel = None
156
139
"pointer" : False
158
self.set_size_request (200, -1)
159
self.set_relief (gtk.RELIEF_NONE)
141
self.set_relief (Gtk.ReliefStyle.NONE)
160
142
self.connect ("focus-in-event", self.update_state_in, "focus")
161
143
self.connect ("focus-out-event", self.update_state_out, "focus")
162
144
self.connect ("hierarchy-changed", self.hierarchy_changed)
165
147
if old_toplevel == self._old_toplevel:
168
if not old_toplevel and self.state != gtk.STATE_NORMAL:
169
self.set_state(gtk.STATE_PRELIGHT)
170
self.set_state(gtk.STATE_NORMAL)
150
if not old_toplevel and self.get_state () != Gtk.StateType.NORMAL:
151
self.set_state(Gtk.StateType.PRELIGHT)
152
self.set_state(Gtk.StateType.NORMAL)
172
154
self._old_toplevel = old_toplevel
175
156
def update_state_in (self, *args):
177
self.set_state (gtk.STATE_PRELIGHT)
158
self.set_state (Gtk.StateType.PRELIGHT)
178
159
self.states[state] = True
180
161
def update_state_out (self, *args):
182
163
self.states[state] = False
183
164
if True in self.states.values ():
184
self.set_state (gtk.STATE_PRELIGHT)
165
self.set_state (Gtk.StateType.PRELIGHT)
186
self.set_state (gtk.STATE_NORMAL)
188
def do_expose_event (self, event):
189
has_focus = self.flags () & gtk.HAS_FOCUS
191
self.unset_flags (gtk.HAS_FOCUS)
193
ret = gtk.Button.do_expose_event (self, event)
196
self.set_flags (gtk.HAS_FOCUS)
167
self.set_state (Gtk.StateType.NORMAL)
169
def do_draw (self, cr):
170
has_focus = self.get_state_flags () & Gtk.StateFlags.FOCUSED
172
self.unset_state_flags (Gtk.StateFlags.FOCUSED)
174
ret = Gtk.Button.do_draw (self, cr)
177
self.set_state_flags (Gtk.StateFlags.FOCUSED, False)
201
182
def __init__(self, value = "", wrap = 160):
202
183
Gtk.Label.__init__(self, value)
203
184
self.props.xalign = 0
204
self.props.wrap_mode = pango.WRAP_WORD
185
self.props.wrap_mode = Gtk.WrapMode.WORD
186
self.props.max_width_chars = 20;
205
187
self.set_line_wrap(True)
206
188
self.set_size_request(wrap, -1)
208
190
class NotFoundBox(Gtk.Alignment):
209
191
def __init__(self, value=""):
210
gtk.Alignment.__init__(self, 0.5, 0.5, 0.0, 0.0)
192
Gtk.Alignment.__init__(self, xalign=0.5, yalign=0.5, xscale=0.0, yscale=0.0)
213
195
self.Warning = Gtk.Label()