[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 94/101: grc: gtk3: reimplemented custom bg
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 94/101: grc: gtk3: reimplemented custom bg colors for param entry boxes |
Date: |
Thu, 16 Mar 2017 14:58:14 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
jcorgan pushed a commit to branch python3
in repository gnuradio.
commit c52deb5f43cfd5a7083f3568719d88ac09ac838f
Author: Sebastian Koslowski <address@hidden>
Date: Sat Jan 7 21:02:15 2017 +0100
grc: gtk3: reimplemented custom bg colors for param entry boxes
---
grc/gui/Colors.py | 76 ++++++++++++++++++---------------------------
grc/gui/Dialogs.py | 6 ++--
grc/gui/DrawingArea.py | 2 +-
grc/gui/ParamWidgets.py | 57 ++++++++++++++++++++++++----------
grc/gui/PropsDialog.py | 2 +-
grc/gui/canvas/flowgraph.py | 1 +
6 files changed, 77 insertions(+), 67 deletions(-)
diff --git a/grc/gui/Colors.py b/grc/gui/Colors.py
index 01c461a..17eb151 100644
--- a/grc/gui/Colors.py
+++ b/grc/gui/Colors.py
@@ -19,20 +19,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA
from __future__ import absolute_import
-from gi.repository import Gdk, cairo
+from gi.repository import Gtk, Gdk, cairo
# import pycairo
from . import Constants
-def _color_parse(color_code):
+def get_color(color_code):
color = Gdk.RGBA()
color.parse(color_code)
- return color
-
-
-def get_color(color_code):
- color = _color_parse(color_code)
return color.red, color.green, color.blue, color.alpha
# chars_per_color = 2 if len(color_code) > 4 else 1
# offsets = range(1, 3 * chars_per_color + 1, chars_per_color)
@@ -80,42 +75,31 @@ PORT_TYPE_TO_COLOR.update((key, get_color(color)) for key,
(_, color) in Constan
#################################################################################
# param box colors
#################################################################################
-COMPLEX_COLOR_SPEC = _color_parse('#3399FF')
-FLOAT_COLOR_SPEC = _color_parse('#FF8C69')
-INT_COLOR_SPEC = _color_parse('#00FF99')
-SHORT_COLOR_SPEC = _color_parse('#FFFF66')
-BYTE_COLOR_SPEC = _color_parse('#FF66FF')
-
-ID_COLOR_SPEC = _color_parse('#DDDDDD')
-WILDCARD_COLOR_SPEC = _color_parse('#FFFFFF')
-
-COMPLEX_VECTOR_COLOR_SPEC = _color_parse('#3399AA')
-FLOAT_VECTOR_COLOR_SPEC = _color_parse('#CC8C69')
-INT_VECTOR_COLOR_SPEC = _color_parse('#00CC99')
-SHORT_VECTOR_COLOR_SPEC = _color_parse('#CCCC33')
-BYTE_VECTOR_COLOR_SPEC = _color_parse('#CC66CC')
-
-PARAM_ENTRY_COLORS = {
- # Number types
- 'complex': COMPLEX_COLOR_SPEC,
- 'real': FLOAT_COLOR_SPEC,
- 'float': FLOAT_COLOR_SPEC,
- 'int': INT_COLOR_SPEC,
-
- # Vector types
- 'complex_vector': COMPLEX_VECTOR_COLOR_SPEC,
- 'real_vector': FLOAT_VECTOR_COLOR_SPEC,
- 'float_vector': FLOAT_VECTOR_COLOR_SPEC,
- 'int_vector': INT_VECTOR_COLOR_SPEC,
-
- # Special
- 'bool': INT_COLOR_SPEC,
- 'hex': INT_COLOR_SPEC,
- 'string': BYTE_VECTOR_COLOR_SPEC,
- 'id': ID_COLOR_SPEC,
- 'stream_id': ID_COLOR_SPEC,
- 'raw': WILDCARD_COLOR_SPEC,
-}
-
-PARAM_ENTRY_DEFAULT_COLOR = _color_parse('#FFFFFF')
-PARAM_ENTRY_ENUM_CUSTOM_COLOR = _color_parse('#EEEEEE')
+style_provider = Gtk.CssProvider()
+
+style_provider.load_from_data("""
+ #dtype_complex { background-color: #3399FF; }
+ #dtype_real { background-color: #FF8C69; }
+ #dtype_float { background-color: #FF8C69; }
+ #dtype_int { background-color: #00FF99; }
+
+ #dtype_complex_vector { background-color: #3399AA; }
+ #dtype_real_vector { background-color: #CC8C69; }
+ #dtype_float_vector { background-color: #CC8C69; }
+ #dtype_int_vector { background-color: #00CC99; }
+
+ #dtype_bool { background-color: #00FF99; }
+ #dtype_hex { background-color: #00FF99; }
+ #dtype_string { background-color: #CC66CC; }
+ #dtype_id { background-color: #DDDDDD; }
+ #dtype_stream_id { background-color: #DDDDDD; }
+ #dtype_raw { background-color: #FFFFFF; }
+
+ #enum_custom { background-color: #EEEEEE; }
+""")
+
+Gtk.StyleContext.add_provider_for_screen(
+ Gdk.Screen.get_default(),
+ style_provider,
+ Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
+)
diff --git a/grc/gui/Dialogs.py b/grc/gui/Dialogs.py
index 09ecd48..51213a6 100644
--- a/grc/gui/Dialogs.py
+++ b/grc/gui/Dialogs.py
@@ -103,9 +103,9 @@ class TextDisplay(SimpleTextDisplay):
""" Update view's scroll position. """
if self.scroll_lock:
buf = self.get_buffer()
- buf.move_mark(buf.get_insert(), buf.get_end_iter())
- # TODO: Fix later
- #self.scroll_to_mark(buffer.get_insert(), 0.0)
+ mark = buf.get_insert()
+ buf.move_mark(mark, buf.get_end_iter())
+ self.scroll_mark_onscreen(mark)
def clear(self):
""" Clear all text from buffer. """
diff --git a/grc/gui/DrawingArea.py b/grc/gui/DrawingArea.py
index 2e26c26..1a75e2d 100644
--- a/grc/gui/DrawingArea.py
+++ b/grc/gui/DrawingArea.py
@@ -209,7 +209,7 @@ class DrawingArea(Gtk.DrawingArea):
def _handle_focus_lost_event(self, widget, event):
# don't clear selection while context menu is active
- if not self._flow_graph.get_context_menu().flags() & Gtk.VISIBLE:
+ if not self._flow_graph.context_menu.get_take_focus():
self._flow_graph.unselect()
self._flow_graph.update_selected()
self._flow_graph.queue_draw()
diff --git a/grc/gui/ParamWidgets.py b/grc/gui/ParamWidgets.py
index b79a856..b56eace 100644
--- a/grc/gui/ParamWidgets.py
+++ b/grc/gui/ParamWidgets.py
@@ -20,7 +20,37 @@ import os
from gi.repository import Gtk, Gdk
-from . import Colors, Utils
+from . import Utils
+
+
+style_provider = Gtk.CssProvider()
+
+style_provider.load_from_data("""
+ #dtype_complex { background-color: #3399FF; }
+ #dtype_real { background-color: #FF8C69; }
+ #dtype_float { background-color: #FF8C69; }
+ #dtype_int { background-color: #00FF99; }
+
+ #dtype_complex_vector { background-color: #3399AA; }
+ #dtype_real_vector { background-color: #CC8C69; }
+ #dtype_float_vector { background-color: #CC8C69; }
+ #dtype_int_vector { background-color: #00CC99; }
+
+ #dtype_bool { background-color: #00FF99; }
+ #dtype_hex { background-color: #00FF99; }
+ #dtype_string { background-color: #CC66CC; }
+ #dtype_id { background-color: #DDDDDD; }
+ #dtype_stream_id { background-color: #DDDDDD; }
+ #dtype_raw { background-color: #FFFFFF; }
+
+ #enum_custom { background-color: #EEEEEE; }
+""")
+
+Gtk.StyleContext.add_provider_for_screen(
+ Gdk.Screen.get_default(),
+ style_provider,
+ Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
+)
class InputParam(Gtk.HBox):
@@ -44,7 +74,7 @@ class InputParam(Gtk.HBox):
self.connect('show', self._update_gui)
- def set_color(self, color):
+ def set_color(self, css_name):
pass
def set_tooltip_text(self, text):
@@ -58,11 +88,7 @@ class InputParam(Gtk.HBox):
Set the markup, color, tooltip, show/hide.
"""
self.label.set_markup(self.param.format_label_markup(self._have_pending_changes))
-
- # fixme: find a non-deprecated way to change colors
- # self.set_color(Colors.PARAM_ENTRY_COLORS.get(
- # self.param.get_type(), Colors.PARAM_ENTRY_DEFAULT_COLOR)
- # )
+ self.set_color('dtype_' + self.param.get_type())
self.set_tooltip_text(self.param.format_tooltip_text())
@@ -122,8 +148,8 @@ class EntryParam(InputParam):
def get_text(self):
return self._input.get_text()
- def set_color(self, color):
- self._input.override_background_color(Gtk.StateType.NORMAL, color)
+ def set_color(self, css_name):
+ self._input.set_name(css_name)
def set_tooltip_text(self, text):
self._input.set_tooltip_text(text)
@@ -143,10 +169,10 @@ class MultiLineEntryParam(InputParam):
self._view.set_buffer(self._buffer)
self._view.connect('focus-out-event', self._apply_change)
self._view.connect('key-press-event', self._handle_key_press)
- # fixme: add border to TextView
self._sw = Gtk.ScrolledWindow()
self._sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
+ self._sw.set_shadow_type(type=Gtk.ShadowType.IN)
self._sw.add(self._view)
self.pack_start(self._sw, True, True, True)
@@ -157,8 +183,8 @@ class MultiLineEntryParam(InputParam):
include_hidden_chars=False)
return text.strip()
- def set_color(self, color):
- self._view.override_background_color(Gtk.StateType.NORMAL, color)
+ def set_color(self, css_name):
+ self._view.set_name(css_name)
def set_tooltip_text(self, text):
self._view.set_tooltip_text(text)
@@ -245,10 +271,9 @@ class EnumEntryParam(InputParam):
else:
self._input.set_tooltip_text(text)
- def set_color(self, color):
- self._input.get_child().modify_base(
- Gtk.StateType.NORMAL,
- color if not self.has_custom_value else
Colors.PARAM_ENTRY_ENUM_CUSTOM_COLOR
+ def set_color(self, css_name):
+ self._input.get_child().set_name(
+ css_name if not self.has_custom_value else 'enum_custom'
)
diff --git a/grc/gui/PropsDialog.py b/grc/gui/PropsDialog.py
index ca1e3c5..5f39770 100644
--- a/grc/gui/PropsDialog.py
+++ b/grc/gui/PropsDialog.py
@@ -180,7 +180,7 @@ class PropsDialog(Gtk.Dialog):
# repopulate the params box
box_all_valid = True
for param in self._block.params.values():
- # fixme: why do we even rebuild instead of really hiding
params?
+ # todo: why do we even rebuild instead of really hiding
params?
if param.get_tab_label() != tab or param.get_hide() ==
'all':
continue
box_all_valid = box_all_valid and param.is_valid()
diff --git a/grc/gui/canvas/flowgraph.py b/grc/gui/canvas/flowgraph.py
index 2aa0d7c..ac15510 100644
--- a/grc/gui/canvas/flowgraph.py
+++ b/grc/gui/canvas/flowgraph.py
@@ -473,6 +473,7 @@ class FlowGraph(CoreFlowgraph, Drawable):
element.create_shapes()
def _drawables(self):
+ # todo: cache that
show_comments = Actions.TOGGLE_SHOW_BLOCK_COMMENTS.get_active()
for element in self._elements_to_draw:
if element.is_block and show_comments and element.enabled:
- [Commit-gnuradio] [gnuradio] 74/101: grc: gtk3: minor gui flowgraph cleanup, (continued)
- [Commit-gnuradio] [gnuradio] 74/101: grc: gtk3: minor gui flowgraph cleanup, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 93/101: grc: gtk3: python3 error, some cmake fixes, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 85/101: grc: refactor: Moved the notebook and console into separate classes., git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 61/101: grc: gtk3: draw ports before blocks and simplyfied draw code, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 80/101: grc: gtk3: fix MessageDialog for Variable Panel config, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 87/101: grc: refactor: Added logging, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 77/101: grc: gtk3: make screnshots as png, pdf and svg, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 81/101: grc: refactor: make gr.prefs() optional (for testing), git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 99/101: grc: gtk3: update cmake requirements, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 92/101: grc: gtk3: fix block layout sizes when zooming, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 94/101: grc: gtk3: reimplemented custom bg colors for param entry boxes,
git <=
- [Commit-gnuradio] [gnuradio] 98/101: cmake: add DIRECTORY support to GR_PYTHON_INSTALL and use it for grc, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 11/101: grc: py3k compat using python-modernize, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 75/101: grc: gtk3: rewrite file dialogs and support multiple extentions for screenshots, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 70/101: grc: gtk3: fancier coloring for disabled and bypassed blocks, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 83/101: grc: refactor: Cleaned up imports, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 88/101: grc: gtk3: fix multi-block move, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 91/101: grc: gtk3: fix canvas extent after zooming, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 100/101: grc: gtk minor fixes, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 01/101: grc: Main window opens with pygobject and gtk3. Still throws tons of errors., git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 72/101: Merge remote-tracking branch 'upstream/next' into gtk3, git, 2017/03/16