Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2006-11-02 16:21:00 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2006-11-02 16:21:00 (GMT)
commita6503b8bd8092112323f06c5ab29337a01753597 (patch)
tree47d8b91d40fd85aad1cc66716da7ccfa8e32b2e8 /services
parent23565cfd483e38d3a64cd5980deea47cccb28581 (diff)
parent26b04db5e3bb803d96f0d3e42b8048d49c7c8486 (diff)
Merge branch 'master' of git://dev.laptop.org/sugar
Diffstat (limited to 'services')
-rw-r--r--services/nm/bubble.py3
-rw-r--r--services/nm/nmclient.py114
2 files changed, 95 insertions, 22 deletions
diff --git a/services/nm/bubble.py b/services/nm/bubble.py
index 52710a6..24e68ab 100644
--- a/services/nm/bubble.py
+++ b/services/nm/bubble.py
@@ -103,7 +103,8 @@ class Bubble(hippo.CanvasBox, hippo.CanvasItem):
cr.set_line_width(line_width)
cr.stroke();
- self._paint_progress_bar(cr, x, y, width, height, line_width)
+ if self._percent > 0:
+ self._paint_progress_bar(cr, x, y, width, height, line_width)
def _paint_progress_bar(self, cr, x, y, width, height, line_width):
prog_x = x + line_width
diff --git a/services/nm/nmclient.py b/services/nm/nmclient.py
index e02a442..866097d 100644
--- a/services/nm/nmclient.py
+++ b/services/nm/nmclient.py
@@ -111,13 +111,14 @@ class Network(gobject.GObject):
def is_valid(self):
return self._valid
- def add_to_menu(self, menu):
+ def add_to_menu(self, menu, callback, dev):
strength = self._strength
if strength > 100:
strength = 100
elif strength < 0:
strength = 0
item = NetworkMenuItem(text=self._ssid, percent=strength)
+ item.connect('button-press-event', callback, (dev, self))
menu.add_item(item)
@@ -188,18 +189,21 @@ class Device(gobject.GObject):
self._active_net = None
del self._networks[net_op]
- def _add_to_menu_wired(self, menu):
- item = NetworkMenuItem(_("Wired Network"), stylesheet="nm.Bubble.Wired")
+ def _add_to_menu_wired(self, menu, callback):
+ item = NetworkMenuItem(_("Wired Network"), stylesheet="nm.Bubble.Wired",
+ hi_stylesheet="nm.Bubble.Wired.Hi",
+ act_stylesheet="nm.Bubble.Wired.Activated")
+ item.connect('button-press-event', callback, (self, None))
menu.add_item(item)
- def _add_to_menu_wireless(self, menu, active_only):
+ def _add_to_menu_wireless(self, menu, callback, active_only):
act_net = None
if self._active_net and self._networks.has_key(self._active_net):
act_net = self._networks[self._active_net]
# Only add the active network if active_only == True
if active_only and act_net:
- act_net.add_to_menu(menu)
+ act_net.add_to_menu(menu, callback, self)
return
# Otherwise, add all networks _except_ the active one
@@ -208,13 +212,13 @@ class Device(gobject.GObject):
continue
if act_net == net:
continue
- net.add_to_menu(menu)
+ net.add_to_menu(menu, callback, self)
- def add_to_menu(self, menu, active_only=False):
+ def add_to_menu(self, menu, callback, active_only=False):
if self._type == DEVICE_TYPE_802_3_ETHERNET:
- self._add_to_menu_wired(menu)
+ self._add_to_menu_wired(menu, callback)
elif self._type == DEVICE_TYPE_802_11_WIRELESS:
- self._add_to_menu_wireless(menu, active_only)
+ self._add_to_menu_wireless(menu, callback, active_only)
def get_op(self):
return self._op
@@ -281,19 +285,51 @@ class Device(gobject.GObject):
return self._caps
nm_bubble_wireless = {
- 'fill-color' : 0x646464FF,
- 'stroke-color' : 0x646464FF,
+ 'fill-color' : 0x646464FF,
+ 'stroke-color' : 0x646464FF,
'progress-color': 0x333333FF,
- 'spacing' : style.space_unit,
- 'padding' : style.space_unit * 1.5
+ 'spacing' : style.space_unit,
+ 'padding' : style.space_unit * 1.5
+}
+
+nm_bubble_wireless_hi = {
+ 'fill-color' : 0x979797FF,
+ 'stroke-color' : 0x979797FF,
+ 'progress-color': 0x666666FF,
+ 'spacing' : style.space_unit,
+ 'padding' : style.space_unit * 1.5
+}
+
+nm_bubble_wireless_activated = {
+ 'fill-color' : 0xA7A7A7FF,
+ 'stroke-color' : 0xA7A7A7FF,
+ 'progress-color': 0x777777FF,
+ 'spacing' : style.space_unit,
+ 'padding' : style.space_unit * 1.5
}
nm_bubble_wired = {
- 'fill-color' : 0x000000FF,
- 'stroke-color' : 0x000000FF,
+ 'fill-color' : 0x000000FF,
+ 'stroke-color' : 0x000000FF,
+ 'progress-color': 0x000000FF,
+ 'spacing' : style.space_unit,
+ 'padding' : style.space_unit * 1.5
+}
+
+nm_bubble_wired_hi = {
+ 'fill-color' : 0x333333FF,
+ 'stroke-color' : 0x333333FF,
'progress-color': 0x000000FF,
- 'spacing' : style.space_unit,
- 'padding' : style.space_unit * 1.5
+ 'spacing' : style.space_unit,
+ 'padding' : style.space_unit * 1.5
+}
+
+nm_bubble_wired_activated = {
+ 'fill-color' : 0x444444FF,
+ 'stroke-color' : 0x444444FF,
+ 'progress-color': 0x000000FF,
+ 'spacing' : style.space_unit,
+ 'padding' : style.space_unit * 1.5
}
nm_menu_item_title = {
@@ -305,18 +341,47 @@ nm_menu_item_title = {
style.register_stylesheet("nm.Bubble.Wireless", nm_bubble_wireless)
+style.register_stylesheet("nm.Bubble.Wireless.Hi", nm_bubble_wireless_hi)
+style.register_stylesheet("nm.Bubble.Wireless.Activated", nm_bubble_wireless_activated)
style.register_stylesheet("nm.Bubble.Wired", nm_bubble_wired)
+style.register_stylesheet("nm.Bubble.Wired.Hi", nm_bubble_wired_hi)
+style.register_stylesheet("nm.Bubble.Wired.Activated", nm_bubble_wired_activated)
style.register_stylesheet("nm.MenuItem.Title", nm_menu_item_title)
class NetworkMenuItem(Bubble):
- def __init__(self, text, percent=0, stylesheet="nm.Bubble.Wireless"):
+ def __init__(self, text, percent=0, stylesheet="nm.Bubble.Wireless",
+ hi_stylesheet="nm.Bubble.Wireless.Hi",
+ act_stylesheet="nm.Bubble.Wireless.Activated"):
Bubble.__init__(self, percent=percent)
+ self._hover = False
+ self._default_stylesheet = stylesheet
+ self._hi_stylesheet = hi_stylesheet
+ self._act_stylesheet = act_stylesheet
style.apply_stylesheet(self, stylesheet)
text_item = hippo.CanvasText(text=text)
style.apply_stylesheet(text_item, 'nm.MenuItem.Title')
self.append(text_item)
+ self.connect('motion-notify-event', self._motion_notify_event_cb)
+ # Disable active hilight for now...
+ #self.connect('button-press-event', self._button_press_event_cb)
+
+ def _motion_notify_event_cb(self, widget, event):
+ if event.detail == hippo.MOTION_DETAIL_ENTER:
+ if not self._hover:
+ self._hover = True
+ style.apply_stylesheet(self, self._hi_stylesheet)
+ elif event.detail == hippo.MOTION_DETAIL_LEAVE:
+ if self._hover:
+ self._hover = False
+ style.apply_stylesheet(self, self._default_stylesheet)
+ return True
+
+ def _button_press_event_cb(self, widget, event):
+ style.apply_stylesheet(self, self._act_stylesheet)
+ return False
+
class NetworkMenu(gtk.Window):
__gsignals__ = {
'action': (gobject.SIGNAL_RUN_FIRST,
@@ -523,7 +588,7 @@ class NMClientApp:
act_dev = self._devices[self._active_device]
if act_dev:
- act_dev.add_to_menu(menu, active_only=True)
+ act_dev.add_to_menu(menu, self._menu_item_clicked_cb, active_only=True)
menu.add_separator()
# Wired devices first, if they don't support carrier detect
@@ -536,7 +601,7 @@ class NMClientApp:
continue
if dev == act_dev:
continue
- dev.add_to_menu(menu)
+ dev.add_to_menu(menu, self._menu_item_clicked_cb)
# Wireless devices second
for dev in self._devices.values():
@@ -544,7 +609,7 @@ class NMClientApp:
continue
if dev.get_type() != DEVICE_TYPE_802_11_WIRELESS:
continue
- dev.add_to_menu(menu)
+ dev.add_to_menu(menu, self._menu_item_clicked_cb)
return menu
@@ -687,6 +752,13 @@ class NMClientApp:
for arg in args:
logging.debug(' ' + str(arg))
+ def _menu_item_clicked_cb(self, widget, event, dev_data):
+ (device, network) = dev_data
+ net_op = ""
+ if network:
+ net_op = network.get_op()
+ logging.debug("clicked dev %s, net %s" % (device.get_op(), net_op))
+
def device_activation_stage_sig_handler(self, device, stage):
print 'Network Manager Device Stage "%s" for device %s'%(NM_DEVICE_STAGE_STRINGS[stage], device)