__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!/usr/bin/python3
## Copyright (C) 2009, 2010, 2012 Red Hat, Inc.
## Authors:
## Tim Waugh <twaugh@redhat.com>
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
## This program 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 General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
from gi.repository import Gdk
from gi.repository import Gtk
import cairo
class GtkInkLevel (Gtk.DrawingArea):
def __init__ (self, color, level=0):
Gtk.DrawingArea.__init__ (self)
self.connect ('draw', self.draw)
self._level = level
self._color = None
if color:
self._color = Gdk.color_parse (color)
if not self._color:
self._color = Gdk.color_parse ('#cccccc')
self.set_size_request (30, 45)
def set_level (self, level):
self._level = level
self.queue_resize ()
def get_level (self):
return self._level
def draw (self, widget, ctx):
w = widget.get_allocated_width ()
h = widget.get_allocated_height ()
ratio = 1.0 * h / w
if ratio < 1.5:
w = h * 2.0 / 3.0
else:
h = w * 3.0 / 2.0
thickness = 1
ctx.translate (thickness, thickness)
ctx.scale (w - 2 * thickness, h - 2 * thickness)
thickness = max (ctx.device_to_user_distance (thickness, thickness))
r = self._color.red / 65535.0
g = self._color.green / 65535.0
b = self._color.blue / 65535.0
fill_point = self._level / 100.0
ctx.move_to (0.5, 0.0)
ctx.curve_to (0.5, 0.33, 1.0, 0.5, 1.0, 0.67)
ctx.curve_to (1.0, 0.85, 0.85, 1.0, 0.5, 1.0)
ctx.curve_to (0.15, 1.0, 0.0, 0.85, 0.0, 0.67)
ctx.curve_to (0.0, 0.5, 0.1, 0.2, 0.5, 0.0)
ctx.close_path ()
ctx.set_source_rgb (r, g, b)
ctx.set_line_width (thickness)
ctx.stroke_preserve ()
if fill_point > 0.0:
grad_width = 0.10
grad_start = fill_point - (grad_width / 2)
if grad_start < 0:
grad_start = 0
pat = cairo.LinearGradient (0, 1, 0, 0)
pat.add_color_stop_rgba (0, r, g, b, 1)
pat.add_color_stop_rgba ((self._level - 5) / 100.0, r, g, b, 1)
pat.add_color_stop_rgba ((self._level + 5)/ 100.0, 1, 1, 1, 1)
pat.add_color_stop_rgba (1.0, 1, 1, 1, 1)
ctx.set_source (pat)
ctx.fill ()
else:
ctx.set_source_rgb (1, 1, 1)
ctx.fill ()
ctx.set_line_width (thickness / 2)
ctx.move_to (0.5, 0.0)
ctx.line_to (0.5, 1.0)
ctx.set_source_rgb (r, g, b)
ctx.stroke ()
# 50% marker
ctx.move_to (0.4, 0.5)
ctx.line_to (0.6, 0.5)
ctx.set_source_rgb (r, g, b)
ctx.stroke ()
# 25% marker
ctx.move_to (0.45, 0.75)
ctx.line_to (0.55, 0.75)
ctx.set_source_rgb (r, g, b)
ctx.stroke ()
# 75% marker
ctx.move_to (0.45, 0.25)
ctx.line_to (0.55, 0.25)
ctx.set_source_rgb (r, g, b)
ctx.stroke ()
if __name__ == '__main__':
# Try it out.
from gi.repository import GLib
import time
def adjust_level (level):
Gdk.threads_enter ()
l = level.get_level ()
l += 1
if l > 100:
l = 0
level.set_level (l)
Gdk.threads_leave ()
return True
w = Gtk.Window ()
w.set_border_width (12)
vbox = Gtk.VBox (spacing=6)
w.add (vbox)
hbox = Gtk.HBox (spacing=6)
vbox.pack_start (hbox, False, False, 0)
klevel = GtkInkLevel ("black", level=100)
clevel = GtkInkLevel ("cyan", level=60)
mlevel = GtkInkLevel ("magenta", level=30)
ylevel = GtkInkLevel ("yellow", level=100)
hbox.pack_start (klevel, False, False, 0)
hbox.pack_start (clevel, False, False, 0)
hbox.pack_start (mlevel, False, False, 0)
hbox.pack_start (ylevel, False, False, 0)
GLib.timeout_add (10, adjust_level, klevel)
GLib.timeout_add (10, adjust_level, clevel)
GLib.timeout_add (10, adjust_level, mlevel)
GLib.timeout_add (10, adjust_level, ylevel)
w.show_all ()
w.connect ('delete_event', Gtk.main_quit)
Gdk.threads_init ()
Gtk.main ()
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| OpenPrintingRequest.py | File | 6.81 KB | 0644 |
|
| PhysicalDevice.py | File | 16.19 KB | 0644 |
|
| asyncconn.py | File | 9.6 KB | 0644 |
|
| asyncipp.py | File | 26.13 KB | 0644 |
|
| asyncpk1.py | File | 25.86 KB | 0644 |
|
| authconn.py | File | 18.85 KB | 0644 |
|
| config.py | File | 1.19 KB | 0644 |
|
| cupspk.py | File | 27.48 KB | 0644 |
|
| debug.py | File | 1.62 KB | 0644 |
|
| dnssdresolve.py | File | 4.66 KB | 0644 |
|
| errordialogs.py | File | 3.12 KB | 0644 |
|
| firewallsettings.py | File | 9.38 KB | 0644 |
|
| gtkinklevel.py | File | 4.71 KB | 0644 |
|
| gui.py | File | 2.13 KB | 0644 |
|
| installpackage.py | File | 2.2 KB | 0644 |
|
| jobviewer.py | File | 96.57 KB | 0644 |
|
| killtimer.py | File | 2.08 KB | 0644 |
|
| monitor.py | File | 32.36 KB | 0644 |
|
| newprinter.py | File | 178.27 KB | 0644 |
|
| options.py | File | 18.97 KB | 0644 |
|
| optionwidgets.py | File | 8.89 KB | 0644 |
|
| ppdcache.py | File | 7.57 KB | 0644 |
|
| ppdippstr.py | File | 16.19 KB | 0644 |
|
| ppdsloader.py | File | 10.98 KB | 0644 |
|
| printerproperties.py | File | 78.11 KB | 0644 |
|
| probe_printer.py | File | 15.82 KB | 0644 |
|
| pysmb.py | File | 6.81 KB | 0755 |
|
| scp-dbus-service.py | File | 22.22 KB | 0755 |
|
| smburi.py | File | 3.22 KB | 0644 |
|
| statereason.py | File | 6.83 KB | 0644 |
|
| timedops.py | File | 8.21 KB | 0644 |
|