~ci-train-bot/compiz/compiz-ubuntu-cosmic-3322

« back to all changes in this revision

Viewing changes to compizconfig/ccsm/ccm/Utils.py

  • Committer: Bileto Bot
  • Author(s): Alberts Muktupāvels
  • Date: 2018-07-16 11:20:28 UTC
  • mfrom: (4156.2.12 compiz-pygobject)
  • Revision ID: ci-train-bot@canonical.com-20180716112028-iomsw34dte4opcwm
ccsm: port to PyGObject and GTK+ 3.

Approved by: Dmitry Shachnev, Marco Trevisan (Treviño)

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
import os
24
24
 
25
 
import pygtk
26
 
import gtk
27
 
import gtk.gdk
28
 
import gobject
29
 
import pango
 
25
from gi.repository import Gtk
 
26
from gi.repository import Gdk
 
27
from gi.repository import GObject
30
28
import weakref
31
29
 
32
30
from ccm.Constants import *
34
32
import operator
35
33
import itertools
36
34
 
37
 
Gtk = gtk
38
 
GObject = gobject
39
 
 
40
35
import locale
41
36
import gettext
42
37
locale.setlocale(locale.LC_ALL, "")
44
39
gettext.textdomain("ccsm")
45
40
_ = gettext.gettext
46
41
 
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)
50
45
 
54
49
 
55
50
def getScreens():
56
51
    screens = []
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):
60
55
        screens.append(i)
61
56
    return screens
62
57
 
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()
66
60
 
67
61
def protect_markup_dict (dict_):
68
62
    return dict((k, protect_pango_markup (v)) for (k, v) in dict_.items())
77
71
            return
78
72
 
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)
82
76
            return
83
77
 
84
78
        try:
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)
111
105
 
112
106
class ActionImage (Gtk.Alignment):
113
107
 
119
113
          }
120
114
 
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))
126
120
 
127
121
class SizedButton (Gtk.Button):
128
122
 
129
 
    minWidth = -1
130
 
    minHeight = -1
131
 
 
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)
137
 
 
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)
143
126
 
144
127
class PrettyButton (Gtk.Button):
145
128
 
146
129
    __gsignals__ = {
147
 
        'expose-event'      : 'override',
 
130
        'draw' : 'override',
148
131
    }
149
132
 
150
133
    _old_toplevel = None
155
138
                        "focus"   : False,
156
139
                        "pointer" : False
157
140
                      }
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:
166
148
            return
167
149
 
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)
171
153
 
172
154
        self._old_toplevel = old_toplevel
173
155
 
174
 
 
175
156
    def update_state_in (self, *args):
176
157
        state = args[-1]
177
 
        self.set_state (gtk.STATE_PRELIGHT)
 
158
        self.set_state (Gtk.StateType.PRELIGHT)
178
159
        self.states[state] = True
179
160
 
180
161
    def update_state_out (self, *args):
181
162
        state = args[-1]
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)
185
166
        else:
186
 
            self.set_state (gtk.STATE_NORMAL)
187
 
 
188
 
    def do_expose_event (self, event):
189
 
        has_focus = self.flags () & gtk.HAS_FOCUS
190
 
        if has_focus:
191
 
            self.unset_flags (gtk.HAS_FOCUS)
192
 
 
193
 
        ret = gtk.Button.do_expose_event (self, event)
194
 
 
195
 
        if has_focus:
196
 
            self.set_flags (gtk.HAS_FOCUS)
 
167
            self.set_state (Gtk.StateType.NORMAL)
 
168
 
 
169
    def do_draw (self, cr):
 
170
        has_focus = self.get_state_flags () & Gtk.StateFlags.FOCUSED
 
171
        if has_focus:
 
172
            self.unset_state_flags (Gtk.StateFlags.FOCUSED)
 
173
 
 
174
        ret = Gtk.Button.do_draw (self, cr)
 
175
 
 
176
        if has_focus:
 
177
            self.set_state_flags (Gtk.StateFlags.FOCUSED, False)
197
178
 
198
179
        return ret
199
180
 
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)
207
189
 
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)
211
193
        
212
194
        box = Gtk.HBox()
213
195
        self.Warning = Gtk.Label()