Commit d95f32cd authored by Morten Welinder's avatar Morten Welinder
Browse files

css: dead kitten and debug improvements.

parent 9254cb14
......@@ -31,6 +31,7 @@ Morten:
* Fix ssconvert problem with conditional styles.
* Move from style regions to style classes in css.
* Implement #ifdef for built-in css.
* Dead kitten in css.
--------------------------------------------------------------------------
Gnumeric 1.12.48
......
......@@ -555,7 +555,7 @@ CFLAGS="$CFLAGS $GNUMERIC_CFLAGS"
LIBS="$GNUMERIC_LIBS $LIBS"
AC_CHECK_FUNCS(gtk_cell_renderer_text_get_background_set gtk_cell_renderer_text_get_foreground_set gtk_cell_renderer_text_get_editable)
AC_CHECK_FUNCS(gtk_entry_set_editing_cancelled gtk_icon_theme_add_resource_path)
AC_CHECK_FUNCS(gtk_entry_set_editing_cancelled gtk_icon_theme_add_resource_path gtk_widget_class_set_css_name)
AC_CHECK_FUNCS(g_ptr_array_insert)
AC_MSG_CHECKING([for OO_NS_LOCALC_EXT])
......
......@@ -976,6 +976,9 @@ gnm_pane_class_init (GnmPaneClass *klass)
widget_class->key_release_event = gnm_pane_key_release;
widget_class->focus_in_event = gnm_pane_focus_in;
widget_class->focus_out_event = gnm_pane_focus_out;
#ifdef HAVE_GTK_WIDGET_CLASS_SET_CSS_NAME
gtk_widget_class_set_css_name (widget_class, "pane");
#endif
gtk_widget_class_install_style_property
(widget_class,
......@@ -2107,6 +2110,13 @@ gnm_pane_size_guide_start (GnmPane *pane,
if (is_colrow_resize)
gtk_style_context_add_class (context, "end");
gnm_style_context_get_color (context, GTK_STATE_FLAG_SELECTED, &rgba);
if (gnm_debug_flag ("css")) {
char *name = g_strconcat ("pane.", guide_class, ".", colrow_class,
(is_colrow_resize ? ".resize" : ""),
".color", NULL);
gnm_css_debug_color (name, &rgba);
g_free (name);
}
go_color_from_gdk_rgba (&rgba, &style->line.color);
if (is_colrow_resize) {
......
......@@ -111,21 +111,6 @@ GnmItemBar:hover {
font-weight: bold;
}
/* ------------------------------------------------------------------------- */
/* The resize guide used when resizing columns or rows. This can be
subclassed with "row" or "col" as well as with "start" or "end". */
GnmPane GocLine.resize-guide {
color: black;
/* See also GnmPane */
}
/* The resize guide used when resizing panes. This can be subclassed with
"row" or "col". */
GnmPane GocLine.pane-resize-guide {
color: #c0c0c0;
/* See also GnmPane */
}
/* ------------------------------------------------------------------------- */
/* This GtkDrawingArea is the select-all button above the row buttons. */
......@@ -196,17 +181,6 @@ GnmNotebookButton:active {
font-weight: bold;
}
/* ------------------------------------------------------------------------- */
/* Functions' arguments link-like appearance in pseudo-tooltips. */
GtkTextView.pseudo-tooltip.function-help {
-GtkWidget-link-color: #4040ff;
}
/* Ditto in the function selector. */
GtkDialog GtkTextView.function-help {
-GtkWidget-link-color: #4040ff;
}
#if GTK_CHECK_VERSION(3,20,0)
/* ------------------------------------------------------------------------- */
......@@ -224,6 +198,8 @@ button.itembar, button.itembar * {
font-family: Sans;
font-style: normal;
font-variant: normal;
/* Could set background-image and background-color here, but it is
probably better to stick to the theme. */
}
/* The whole column/row selected. */
......@@ -256,6 +232,20 @@ dialog.fixed-format-ruler {
color: red;
}
/* The resize guide used when resizing columns or rows. This can be
subclassed with "row" or "col" as well as with "start" or "end". */
pane GocLine.resize-guide {
color: black;
}
/* The resize guide used when resizing panes. This can be subclassed with
"row" or "col". */
pane GocLine.pane-resize-guide {
color: #c0c0c0;
/* See also GnmPane */
}
/* Auto filter in two versions: the first one for "all", second for others. */
/* Not working: */
arrow.auto-filter {
......@@ -290,6 +280,29 @@ GtkArrow.auto-filter:active {
color: yellow;
}
/* Functions' arguments link-like appearance in pseudo-tooltips. */
GtkTextView.pseudo-tooltip.function-help {
-GtkWidget-link-color: #4040ff;
}
/* Ditto in the function selector. */
GtkDialog GtkTextView.function-help {
-GtkWidget-link-color: #4040ff;
}
/* The resize guide used when resizing columns or rows. This can be
subclassed with "row" or "col" as well as with "start" or "end". */
GnmPane GocLine.resize-guide {
color: yellow;
/* See also GnmPane */
}
/* The resize guide used when resizing panes. This can be subclassed with
"row" or "col". */
GnmPane GocLine.pane-resize-guide {
color: #c0c0c0;
/* See also GnmPane */
}
#endif
/* ------------------------------------------------------------------------- */
......@@ -1373,6 +1373,33 @@ gnm_action_group_add_action (GtkActionGroup *group, GtkAction *act)
gtk_action_group_add_action_with_accel (group, act, NULL);
}
static int gnm_debug_css = -1;
void
gnm_css_debug_color (const char *name,
const GdkRGBA *color)
{
if (gnm_debug_css < 0) gnm_debug_css = gnm_debug_flag ("css");
if (gnm_debug_css) {
char *ctxt = gdk_rgba_to_string (color);
g_printerr ("css %s = %s\n", name, ctxt);
g_free (ctxt);
}
}
void
gnm_css_debug_int (const char *name, int i)
{
if (gnm_debug_css < 0) gnm_debug_css = gnm_debug_flag ("css");
if (gnm_debug_css)
g_printerr ("css %s = %d\n", name, i);
}
void
gnm_style_context_get_color (GtkStyleContext *context,
GtkStateFlags state,
......@@ -1388,21 +1415,18 @@ gnm_style_context_get_color (GtkStyleContext *context,
gtk_style_context_restore (context);
}
#if GTK_CHECK_VERSION(3,12,0)
void
gnm_get_link_color (GtkWidget *widget, GdkRGBA *res)
{
#if GTK_CHECK_VERSION(3,12,0)
GtkStyleContext *ctxt = gtk_widget_get_style_context (widget);
gnm_style_context_get_color (ctxt, GTK_STATE_FLAG_LINK, res);
}
#else
void
gnm_get_link_color (G_GNUC_UNUSED GtkWidget *widget, GdkRGBA *res)
{
(void)widget;
gdk_rgba_parse (res, "blue");
#warning GTK_STATE_FLAG_LINK is undefined, using color blue
#endif
gnm_css_debug_color ("link.color", res);
}
#endif /* GTK_STATE_FLAG_LINK */
gboolean
gnm_theme_is_dark (GtkWidget *widget)
......@@ -1410,6 +1434,7 @@ gnm_theme_is_dark (GtkWidget *widget)
GtkStyleContext *context;
GdkRGBA fg_color;
double lum;
gboolean dark;
context = gtk_widget_get_style_context (widget);
gnm_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &fg_color);
......@@ -1418,7 +1443,10 @@ gnm_theme_is_dark (GtkWidget *widget)
lum = 0.299 * fg_color.red + 0.587 * fg_color.green + 0.114 * fg_color.blue;
// Theme is dark if fg is light.
return lum > 0.5;
dark = lum > 0.5;
gnm_css_debug_int ("theme.dark", dark);
return dark;
}
......
......@@ -189,6 +189,9 @@ void gnm_style_context_get_color (GtkStyleContext *context,
void gnm_get_link_color (GtkWidget *widget, GdkRGBA *res);
gboolean gnm_theme_is_dark (GtkWidget *widget);
void gnm_css_debug_color (const char *name, const GdkRGBA *color);
void gnm_css_debug_int (const char *name, int i);
G_END_DECLS
#endif /* _GNM_GUI_UTIL_H_ */
......@@ -110,6 +110,12 @@ static const char * const selection_styles[3] = {
"button.itembar:active"
};
static const char * const selection_style_names[3] = {
"itembar.color",
"itembar.color.hover",
"itembar.color.selected"
};
static void
ib_reload_color_style (GnmItemBar *ib)
{
......@@ -119,11 +125,13 @@ ib_reload_color_style (GnmItemBar *ib)
gnm_style_context_get_color (context, GTK_STATE_FLAG_NORMAL,
&ib->grouping_color);
gnm_css_debug_color ("item-bar.grouping-color", &ib->grouping_color);
for (ui = 0; ui < G_N_ELEMENTS (selection_type_flags); ui++) {
GtkStateFlags state = selection_type_flags[ui];
gnm_style_context_get_color
(context, state, &ib->selection_colors[ui]);
gnm_css_debug_color (selection_style_names[ui], &ib->selection_colors[ui]);
}
}
......@@ -312,6 +320,7 @@ item_bar_realize (GocItem *item)
? GDK_SB_H_DOUBLE_ARROW
: GDK_SB_V_DOUBLE_ARROW);
ib_reload_color_style (ib);
gnm_item_bar_calc_size (ib);
}
......@@ -419,8 +428,6 @@ item_bar_draw_region (GocItem const *item, cairo_t *cr,
goc_canvas_c2w (item->canvas, x_0, y_0, &x0, &y0);
goc_canvas_c2w (item->canvas, x_1, y_1, &x1, &y1);
ib_reload_color_style (ib);
if (ib->is_col_header) {
int const inc = gnm_item_bar_group_size (ib, sheet->cols.max_outline_level);
int const base_pos = .2 * inc;
......
......@@ -108,16 +108,20 @@ ig_reload_style (GnmItemGrid *ig)
gtk_style_context_add_class (context, "function-marker");
gnm_style_context_get_color (context, GTK_STATE_FLAG_NORMAL,
&ig->function_marker_color);
gnm_css_debug_color ("function-marker.color", &ig->function_marker_color);
gtk_style_context_get_border_color (context, state,
&ig->function_marker_border_color);
gnm_css_debug_color ("function-marker.border-border", &ig->function_marker_border_color);
gtk_style_context_restore (context);
gtk_style_context_save (context);
gtk_style_context_add_class (context, "pane-divider");
gnm_style_context_get_color (context, GTK_STATE_FLAG_NORMAL,
&ig->pane_divider_color);
gnm_css_debug_color ("pane-divider.color", &ig->pane_divider_color);
gtk_style_context_get_border (context, GTK_STATE_FLAG_NORMAL, &border);
ig->pane_divider_width = border.top; /* Hack? */
gnm_css_debug_int ("pane-divider.border", ig->pane_divider_width);
gtk_style_context_restore (context);
/* ---------------------------------------- */
......@@ -127,6 +131,7 @@ ig_reload_style (GnmItemGrid *ig)
"function-indicator-size",
&ig->function_marker_size,
NULL);
gnm_css_debug_int ("function-marker.size", ig->function_marker_size);
}
static void
......
......@@ -71,12 +71,14 @@ comment_view_reload_style (CommentView *cv)
context = goc_item_get_style_context (item);
gnm_style_context_get_color (context, GTK_STATE_FLAG_NORMAL,
&cv->comment_indicator_color);
gnm_css_debug_color ("comment-indicator.color", &cv->comment_indicator_color);
context = gtk_widget_get_style_context (GTK_WIDGET (pane));
gtk_widget_style_get (GTK_WIDGET (pane),
"comment-indicator-size",
&cv->comment_indicator_size,
NULL);
gnm_css_debug_int ("comment-indicator.size", cv->comment_indicator_size);
}
static void
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment