Mouse over effects

This commit is contained in:
o9000
2015-11-04 01:32:13 +01:00
parent fe06ff5075
commit 294fdee57f
21 changed files with 2529 additions and 2136 deletions

View File

@@ -34,6 +34,7 @@ GtkWidget *panel_width, *panel_height, *panel_margin_x, *panel_margin_y, *panel_
GtkWidget *panel_wm_menu, *panel_dock, *panel_autohide, *panel_autohide_show_time, *panel_autohide_hide_time, *panel_autohide_size;
GtkWidget *panel_combo_strut_policy, *panel_combo_layer, *panel_combo_width_type, *panel_combo_height_type, *panel_combo_monitor;
GtkWidget *panel_window_name, *disable_transparency;
GtkWidget *panel_mouse_effects;
GtkListStore *panel_items, *all_items;
GtkWidget *panel_items_view, *all_items_view;
@@ -126,6 +127,8 @@ GtkListStore *backgrounds;
GtkWidget *current_background,
*background_fill_color,
*background_border_color,
*background_fill_color_over,
*background_border_color_over,
*background_border_width,
*background_corner_radius;
@@ -458,7 +461,11 @@ void create_background(GtkWidget *parent)
GTK_TYPE_INT,
GTK_TYPE_INT,
GTK_TYPE_INT,
GTK_TYPE_STRING);
GTK_TYPE_STRING,
GDK_TYPE_COLOR,
GTK_TYPE_INT,
GDK_TYPE_COLOR,
GTK_TYPE_INT);
GtkWidget *table, *label, *button;
int row, col;
@@ -532,6 +539,34 @@ void create_background(GtkWidget *parent)
col++;
gtk_tooltips_set_tip(tooltips, background_border_color, _("The border color of the current background"), NULL);
row++, col = 2;
label = gtk_label_new(_("Fill color (mouse over)"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
gtk_widget_show(label);
gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
col++;
background_fill_color_over = gtk_color_button_new();
gtk_color_button_set_use_alpha(GTK_COLOR_BUTTON(background_fill_color_over), TRUE);
gtk_widget_show(background_fill_color_over);
gtk_table_attach(GTK_TABLE(table), background_fill_color_over, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
col++;
gtk_tooltips_set_tip(tooltips, background_fill_color_over, _("The fill color of the current background on mouse over"), NULL);
row++, col = 2;
label = gtk_label_new(_("Border color (mouse over)"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
gtk_widget_show(label);
gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
col++;
background_border_color_over = gtk_color_button_new();
gtk_color_button_set_use_alpha(GTK_COLOR_BUTTON(background_border_color_over), TRUE);
gtk_widget_show(background_border_color_over);
gtk_table_attach(GTK_TABLE(table), background_border_color_over, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
col++;
gtk_tooltips_set_tip(tooltips, background_border_color_over, _("The border color of the current background on mouse over"), NULL);
row++, col = 2;
label = gtk_label_new(_("Border width"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
@@ -561,6 +596,8 @@ void create_background(GtkWidget *parent)
g_signal_connect(G_OBJECT(current_background), "changed", G_CALLBACK(current_background_changed), NULL);
g_signal_connect(G_OBJECT(background_fill_color), "color-set", G_CALLBACK(background_update), NULL);
g_signal_connect(G_OBJECT(background_border_color), "color-set", G_CALLBACK(background_update), NULL);
g_signal_connect(G_OBJECT(background_fill_color_over), "color-set", G_CALLBACK(background_update), NULL);
g_signal_connect(G_OBJECT(background_border_color_over), "color-set", G_CALLBACK(background_update), NULL);
g_signal_connect(G_OBJECT(background_border_width), "value-changed", G_CALLBACK(background_update), NULL);
g_signal_connect(G_OBJECT(background_corner_radius), "value-changed", G_CALLBACK(background_update), NULL);
@@ -604,6 +641,14 @@ void background_create_new()
cairoColor2GdkColor(0, 0, 0, &borderColor);
int borderOpacity = 0;
GdkColor fillColorOver;
cairoColor2GdkColor(0.8, 0.8, 0.8, &fillColorOver);
int fillOpacityOver = 30;
GdkColor borderColorOver;
cairoColor2GdkColor(0.8, 0.8, 0.8, &borderColorOver);
int borderOpacityOver = 50;
int index = 0;
GtkTreeIter iter;
@@ -616,11 +661,16 @@ void background_create_new()
bgColBorderOpacity, borderOpacity,
bgColBorderWidth, b,
bgColCornerRadius, r,
bgColFillColorOver, &fillColorOver,
bgColFillOpacityOver, fillOpacityOver,
bgColBorderColorOver, &borderColorOver,
bgColBorderOpacityOver, borderOpacityOver,
bgColText, "",
-1);
background_update_image(index);
gtk_combo_box_set_active(GTK_COMBO_BOX(current_background), get_model_length(GTK_TREE_MODEL(backgrounds)) - 1);
current_background_changed(0, 0);
}
void background_duplicate(GtkWidget *widget, gpointer data)
@@ -644,12 +694,20 @@ void background_duplicate(GtkWidget *widget, gpointer data)
int fillOpacity;
GdkColor *borderColor;
int borderOpacity;
GdkColor *fillColorOver;
int fillOpacityOver;
GdkColor *borderColorOver;
int borderOpacityOver;
gtk_tree_model_get(GTK_TREE_MODEL(backgrounds), &iter,
bgColFillColor, &fillColor,
bgColFillOpacity, &fillOpacity,
bgColBorderColor, &borderColor,
bgColBorderOpacity, &borderOpacity,
bgColFillColorOver, &fillColorOver,
bgColFillOpacityOver, &fillOpacityOver,
bgColBorderColorOver, &borderColorOver,
bgColBorderOpacityOver, &borderOpacityOver,
bgColBorderWidth, &b,
bgColCornerRadius, &r,
-1);
@@ -661,12 +719,18 @@ void background_duplicate(GtkWidget *widget, gpointer data)
bgColFillOpacity, fillOpacity,
bgColBorderColor, borderColor,
bgColBorderOpacity, borderOpacity,
bgColFillColorOver, fillColorOver,
bgColFillOpacityOver, fillOpacityOver,
bgColBorderColorOver, borderColorOver,
bgColBorderOpacityOver, borderOpacityOver,
bgColBorderWidth, b,
bgColCornerRadius, r,
bgColText, ""
-1);
g_boxed_free(GDK_TYPE_COLOR, fillColor);
g_boxed_free(GDK_TYPE_COLOR, borderColor);
g_boxed_free(GDK_TYPE_COLOR, fillColorOver);
g_boxed_free(GDK_TYPE_COLOR, borderColorOver);
background_update_image(get_model_length(GTK_TREE_MODEL(backgrounds)) - 1);
gtk_combo_box_set_active(GTK_COMBO_BOX(current_background), get_model_length(GTK_TREE_MODEL(backgrounds)) - 1);
}
@@ -794,12 +858,21 @@ void background_update(GtkWidget *widget, gpointer data)
GdkColor borderColor;
int borderOpacity;
GdkColor fillColorOver;
int fillOpacityOver;
GdkColor borderColorOver;
int borderOpacityOver;
r = gtk_spin_button_get_value(GTK_SPIN_BUTTON(background_corner_radius));
b = gtk_spin_button_get_value(GTK_SPIN_BUTTON(background_border_width));
gtk_color_button_get_color(GTK_COLOR_BUTTON(background_fill_color), &fillColor);
fillOpacity = MIN(100, 0.5 + gtk_color_button_get_alpha(GTK_COLOR_BUTTON(background_fill_color)) * 100.0 / 0xffff);
gtk_color_button_get_color(GTK_COLOR_BUTTON(background_border_color), &borderColor);
borderOpacity = MIN(100, 0.5 + gtk_color_button_get_alpha(GTK_COLOR_BUTTON(background_border_color)) * 100.0 / 0xffff);
gtk_color_button_get_color(GTK_COLOR_BUTTON(background_fill_color_over), &fillColorOver);
fillOpacityOver = MIN(100, 0.5 + gtk_color_button_get_alpha(GTK_COLOR_BUTTON(background_fill_color_over)) * 100.0 / 0xffff);
gtk_color_button_get_color(GTK_COLOR_BUTTON(background_border_color_over), &borderColorOver);
borderOpacityOver = MIN(100, 0.5 + gtk_color_button_get_alpha(GTK_COLOR_BUTTON(background_border_color_over)) * 100.0 / 0xffff);
gtk_list_store_set(backgrounds, &iter,
bgColPixbuf, NULL,
@@ -807,6 +880,10 @@ void background_update(GtkWidget *widget, gpointer data)
bgColFillOpacity, fillOpacity,
bgColBorderColor, &borderColor,
bgColBorderOpacity, borderOpacity,
bgColFillColorOver, &fillColorOver,
bgColFillOpacityOver, fillOpacityOver,
bgColBorderColorOver, &borderColorOver,
bgColBorderOpacityOver, borderOpacityOver,
bgColBorderWidth, b,
bgColCornerRadius, r,
-1);
@@ -832,12 +909,20 @@ void current_background_changed(GtkWidget *widget, gpointer data)
int fillOpacity;
GdkColor *borderColor;
int borderOpacity;
GdkColor *fillColorOver;
int fillOpacityOver;
GdkColor *borderColorOver;
int borderOpacityOver;
gtk_tree_model_get(GTK_TREE_MODEL(backgrounds), &iter,
bgColFillColor, &fillColor,
bgColFillOpacity, &fillOpacity,
bgColBorderColor, &borderColor,
bgColBorderOpacity, &borderOpacity,
bgColFillColorOver, &fillColorOver,
bgColFillOpacityOver, &fillOpacityOver,
bgColBorderColorOver, &borderColorOver,
bgColBorderOpacityOver, &borderOpacityOver,
bgColBorderWidth, &b,
bgColCornerRadius, &r,
-1);
@@ -846,11 +931,19 @@ void current_background_changed(GtkWidget *widget, gpointer data)
gtk_color_button_set_alpha(GTK_COLOR_BUTTON(background_fill_color), (fillOpacity*0xffff)/100);
gtk_color_button_set_color(GTK_COLOR_BUTTON(background_border_color), borderColor);
gtk_color_button_set_alpha(GTK_COLOR_BUTTON(background_border_color), (borderOpacity*0xffff)/100);
gtk_color_button_set_color(GTK_COLOR_BUTTON(background_fill_color_over), fillColorOver);
gtk_color_button_set_alpha(GTK_COLOR_BUTTON(background_fill_color_over), (fillOpacityOver*0xffff)/100);
gtk_color_button_set_color(GTK_COLOR_BUTTON(background_border_color_over), borderColorOver);
gtk_color_button_set_alpha(GTK_COLOR_BUTTON(background_border_color_over), (borderOpacityOver*0xffff)/100);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(background_border_width), b);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(background_corner_radius), r);
g_boxed_free(GDK_TYPE_COLOR, fillColor);
g_boxed_free(GDK_TYPE_COLOR, borderColor);
g_boxed_free(GDK_TYPE_COLOR, fillColorOver);
g_boxed_free(GDK_TYPE_COLOR, borderColorOver);
}
void create_panel(GtkWidget *parent)
@@ -1128,6 +1221,21 @@ void create_panel(GtkWidget *parent)
gtk_tooltips_set_tip(tooltips, font_shadow, _("If enabled, a shadow will be drawn behind text. "
"This may improve legibility on transparent panels."), NULL);
row++;
col = 2;
label = gtk_label_new(_("Mouse effects"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
gtk_widget_show(label);
gtk_table_attach(GTK_TABLE(table), label, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
col++;
panel_mouse_effects = gtk_check_button_new();
gtk_widget_show(panel_mouse_effects);
gtk_table_attach(GTK_TABLE(table), panel_mouse_effects, col, col+1, row, row+1, GTK_FILL, 0, 0, 0);
col++;
gtk_tooltips_set_tip(tooltips, panel_mouse_effects, _("Clickable interface items change appearance when the mouse is moved over them."), NULL);
change_paragraph(parent);
label = gtk_label_new(_("<b>Autohide</b>"));