diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2020-07-24 06:31:27 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2020-07-24 06:31:27 +0200 |
commit | 669fb5e06db6ea18f1500fc57d3fc1704b359a40 (patch) | |
tree | edfdb48ea61a36ecfd68cf5ea3b9f6f954e0fe60 | |
parent | f8f87bdc7d9991edb984579dd230cc244a3e97eb (diff) | |
parent | 40a8f0450fa67405b69575a2d09683270a01518c (diff) | |
download | ayatana-ido-669fb5e06db6ea18f1500fc57d3fc1704b359a40.tar.gz ayatana-ido-669fb5e06db6ea18f1500fc57d3fc1704b359a40.tar.bz2 ayatana-ido-669fb5e06db6ea18f1500fc57d3fc1704b359a40.zip |
Merge branch 'tari01-master'
Attributs GH PR #5: https://github.com/AyatanaIndicators/ayatana-ido/pull/5
-rw-r--r-- | example/menus.c | 6 | ||||
-rw-r--r-- | src/idoapplicationmenuitem.c | 2 | ||||
-rw-r--r-- | src/idobasicmenuitem.c | 21 | ||||
-rw-r--r-- | src/idomediaplayermenuitem.c | 8 | ||||
-rw-r--r-- | src/idomessagedialog.c | 12 | ||||
-rw-r--r-- | src/idoplaybackmenuitem.c | 113 | ||||
-rw-r--r-- | src/idosourcemenuitem.c | 7 | ||||
-rw-r--r-- | src/idousermenuitem.c | 10 |
8 files changed, 84 insertions, 95 deletions
diff --git a/example/menus.c b/example/menus.c index 0ab6066..1355804 100644 --- a/example/menus.c +++ b/example/menus.c @@ -88,9 +88,9 @@ main (int argc, char *argv[]) 65, 0, 100, 1); ido_scale_menu_item_set_style (IDO_SCALE_MENU_ITEM (menuitem), IDO_SCALE_MENU_ITEM_STYLE_IMAGE); image = ido_scale_menu_item_get_primary_image (IDO_SCALE_MENU_ITEM (menuitem)); - gtk_image_set_from_stock (GTK_IMAGE (image), GTK_STOCK_NEW, GTK_ICON_SIZE_MENU); + gtk_image_set_from_icon_name (GTK_IMAGE (image), "document-new", GTK_ICON_SIZE_MENU); image = ido_scale_menu_item_get_secondary_image (IDO_SCALE_MENU_ITEM (menuitem)); - gtk_image_set_from_stock (GTK_IMAGE (image), GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU); + gtk_image_set_from_icon_name (GTK_IMAGE (image), "document-open", GTK_ICON_SIZE_MENU); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); g_signal_connect (menuitem, "slider-grabbed", G_CALLBACK (slider_grabbed), NULL); @@ -141,7 +141,7 @@ main (int argc, char *argv[]) NULL); gtk_menu_shell_append (GTK_MENU_SHELL (menu), w); } - + /* Add the menubar */ diff --git a/src/idoapplicationmenuitem.c b/src/idoapplicationmenuitem.c index 9ca6d87..ba177bd 100644 --- a/src/idoapplicationmenuitem.c +++ b/src/idoapplicationmenuitem.c @@ -45,7 +45,7 @@ ido_application_menu_item_constructed (GObject *object) item->icon = g_object_ref (gtk_image_new ()); gtk_image_set_pixel_size (GTK_IMAGE (item->icon), icon_height); - gtk_widget_set_margin_right (item->icon, 6); + gtk_widget_set_margin_end(item->icon, 6); item->label = g_object_ref (gtk_label_new ("")); diff --git a/src/idobasicmenuitem.c b/src/idobasicmenuitem.c index cf57e7c..ab3ce87 100644 --- a/src/idobasicmenuitem.c +++ b/src/idobasicmenuitem.c @@ -4,16 +4,16 @@ * Authors: * Charles Kerr <charles.kerr@canonical.com> * - * This program is free software: you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 3, as published + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 3, as published * by the Free Software Foundation. * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranties of - * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranties of + * MERCHANTABILITY, SATISFACTORY QUALITY, 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 + * You should have received a copy of the GNU General Public License along * with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -230,11 +230,14 @@ ido_basic_menu_item_init (IdoBasicMenuItem *self) IdoBasicMenuItemPrivate *p = ido_basic_menu_item_get_instance_private(self); p->image = gtk_image_new (); - gtk_misc_set_alignment(GTK_MISC(p->image), 0.0, 0.0); + gtk_widget_set_halign(p->image, GTK_ALIGN_START); + gtk_widget_set_valign(p->image, GTK_ALIGN_START); p->label = gtk_label_new (""); - gtk_misc_set_alignment (GTK_MISC(p->label), 0.0, 0.5); + gtk_widget_set_halign(p->label, GTK_ALIGN_START); + gtk_widget_set_valign(p->label, GTK_ALIGN_CENTER); p->secondary_label = gtk_label_new (""); - gtk_misc_set_alignment (GTK_MISC(p->secondary_label), 1.0, 0.5); + gtk_widget_set_halign(p->secondary_label, GTK_ALIGN_END); + gtk_widget_set_valign(p->secondary_label, GTK_ALIGN_CENTER); w = gtk_grid_new (); grid = GTK_GRID (w); diff --git a/src/idomediaplayermenuitem.c b/src/idomediaplayermenuitem.c index 232ad0e..ef1b2aa 100644 --- a/src/idomediaplayermenuitem.c +++ b/src/idomediaplayermenuitem.c @@ -120,8 +120,8 @@ track_info_label_new () label = gtk_label_new (NULL); gtk_label_set_width_chars (GTK_LABEL (label), 25); gtk_label_set_max_width_chars (GTK_LABEL (label), 25); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_widget_set_halign (label, GTK_ALIGN_START); + gtk_widget_set_halign(label, GTK_ALIGN_START); + gtk_widget_set_valign(label, GTK_ALIGN_CENTER); gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_MIDDLE); return label; @@ -135,7 +135,7 @@ ido_media_player_menu_item_init (IdoMediaPlayerMenuItem *self) self->cancellable = g_cancellable_new (); self->player_icon = gtk_image_new(); - gtk_widget_set_margin_right (self->player_icon, 6); + gtk_widget_set_margin_end(self->player_icon, 6); gtk_widget_set_halign (self->player_icon, GTK_ALIGN_START); self->player_label = gtk_label_new (NULL); @@ -144,7 +144,7 @@ ido_media_player_menu_item_init (IdoMediaPlayerMenuItem *self) self->album_art = gtk_image_new(); gtk_widget_set_size_request (self->album_art, ALBUM_ART_SIZE, ALBUM_ART_SIZE); - gtk_widget_set_margin_right (self->album_art, 8); + gtk_widget_set_margin_end(self->album_art, 8); self->artist_label = track_info_label_new (); self->piece_label = track_info_label_new (); diff --git a/src/idomessagedialog.c b/src/idomessagedialog.c index ef5f148..4a264be 100644 --- a/src/idomessagedialog.c +++ b/src/idomessagedialog.c @@ -209,7 +209,11 @@ ido_message_dialog_constructed (GObject *object) gtk_widget_show (event_box); vbox = gtk_dialog_get_content_area (GTK_DIALOG (object)); + + //I dare you to find a better way! + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; priv->action_area = gtk_dialog_get_action_area (GTK_DIALOG (object)); + G_GNUC_END_IGNORE_DEPRECATIONS; g_object_ref (G_OBJECT (vbox)); gtk_container_remove (GTK_CONTAINER (object), vbox); @@ -380,11 +384,11 @@ ido_message_dialog_get_label (IdoMessageDialog *dialog, gboolean primary) { if (G_TYPE_FROM_INSTANCE (list->data) == GTK_TYPE_BOX && gtk_orientable_get_orientation (list->data) == GTK_ORIENTATION_HORIZONTAL) { - GList *hchildren; + GList *hchildren; GList *hlist; GtkWidget *hbox = GTK_WIDGET (list->data); - hchildren = gtk_container_get_children (GTK_CONTAINER (hbox)); + hchildren = gtk_container_get_children (GTK_CONTAINER (hbox)); for (hlist = hchildren; hlist != NULL; hlist = hlist->next) { @@ -392,9 +396,9 @@ ido_message_dialog_get_label (IdoMessageDialog *dialog, gboolean primary) { GList *vlist; GtkWidget *vbox = GTK_WIDGET (hlist->data); - GList *vchildren; + GList *vchildren; - vchildren = gtk_container_get_children (GTK_CONTAINER (vbox)); + vchildren = gtk_container_get_children (GTK_CONTAINER (vbox)); for (vlist = vchildren; vlist != NULL; vlist = vlist->next) { diff --git a/src/idoplaybackmenuitem.c b/src/idoplaybackmenuitem.c index d45acd0..66502ab 100644 --- a/src/idoplaybackmenuitem.c +++ b/src/idoplaybackmenuitem.c @@ -473,13 +473,6 @@ ido_playback_menu_item_new_from_model (GMenuItem *item, * Drawing */ -typedef struct -{ - double r; - double g; - double b; -} CairoColorRGB; - static void draw_gradient (cairo_t* cr, double x, @@ -898,22 +891,21 @@ _color_hls_to_rgb (gdouble *h, } } -static void -_color_shade (const CairoColorRGB *a, float k, CairoColorRGB *b) +static void _color_shade(const GdkRGBA *a, float k, GdkRGBA *b) { double red; double green; double blue; - red = a->r; - green = a->g; - blue = a->b; + red = a->red; + green = a->green; + blue = a->blue; if (k == 1.0) { - b->r = red; - b->g = green; - b->b = blue; + b->red = red; + b->green = green; + b->blue = blue; return; } @@ -933,9 +925,9 @@ _color_shade (const CairoColorRGB *a, float k, CairoColorRGB *b) _color_hls_to_rgb (&red, &green, &blue); - b->r = red; - b->g = green; - b->b = blue; + b->red = red; + b->green = green; + b->blue = blue; } static inline void @@ -1145,6 +1137,14 @@ _surface_blur (cairo_surface_t* surface, cairo_surface_mark_dirty (surface); } +static void get_colour(GtkStyleContext *pStyleContext, GtkStateFlags nState, const gchar *sColour, GdkRGBA *pRGBA) +{ + GdkRGBA *pRGBATmp; + gtk_style_context_get(pStyleContext, nState, sColour, &pRGBATmp, NULL); + *pRGBA = *pRGBATmp; + gdk_rgba_free(pRGBATmp); +} + static gboolean ido_playback_menu_item_draw (GtkWidget* button, cairo_t *cr) { @@ -1161,39 +1161,20 @@ ido_playback_menu_item_draw (GtkWidget* button, cairo_t *cr) cairo_surface_t* surf = NULL; cairo_t* cr_surf = NULL; - GtkStyle *style; + GtkStyleContext *pStyleContext; - CairoColorRGB bg_color, fg_color, bg_selected, bg_prelight; - CairoColorRGB color_middle[2], color_middle_prelight[2], color_outer[2], color_outer_prelight[2], + GdkRGBA bg_color, fg_color, bg_selected, bg_prelight; + GdkRGBA color_middle[2], color_middle_prelight[2], color_outer[2], color_outer_prelight[2], color_play_outer[2], color_play_outer_prelight[2], color_button[4], color_button_shadow, color_inner[2], color_inner_compressed[2]; - /* Use the menu's style instead of that of the menuitem ('button' is a - * menuitem that is packed in a menu directly). The menuitem's style - * can't be used due to a change in light-themes (lp #1130183). - * Menuitems now have a transparent background, which confuses - * GtkStyle. - * - * This is a workaround until this code gets refactored to use - * GtkStyleContext. - */ - style = gtk_widget_get_style (gtk_widget_get_parent (button)); - - bg_color.r = style->bg[0].red/65535.0; - bg_color.g = style->bg[0].green/65535.0; - bg_color.b = style->bg[0].blue/65535.0; - - bg_prelight.r = style->bg[GTK_STATE_PRELIGHT].red/65535.0; - bg_prelight.g = style->bg[GTK_STATE_PRELIGHT].green/65535.0; - bg_prelight.b = style->bg[GTK_STATE_PRELIGHT].blue/65535.0; - - bg_selected.r = style->bg[GTK_STATE_SELECTED].red/65535.0; - bg_selected.g = style->bg[GTK_STATE_SELECTED].green/65535.0; - bg_selected.b = style->bg[GTK_STATE_SELECTED].blue/65535.0; - - fg_color.r = style->fg[0].red/65535.0; - fg_color.g = style->fg[0].green/65535.0; - fg_color.b = style->fg[0].blue/65535.0; + pStyleContext = gtk_widget_get_style_context(gtk_widget_get_parent(button)); + // Some buggy themes don't define a fallback "background-color" - let's make this a button, then. + gtk_style_context_add_class(pStyleContext, GTK_STYLE_CLASS_BUTTON); + get_colour(pStyleContext, GTK_STATE_FLAG_NORMAL, GTK_STYLE_PROPERTY_BACKGROUND_COLOR, &bg_color); + get_colour(pStyleContext, GTK_STATE_FLAG_PRELIGHT, GTK_STYLE_PROPERTY_BACKGROUND_COLOR, &bg_prelight); + get_colour(pStyleContext, GTK_STATE_FLAG_SELECTED, GTK_STYLE_PROPERTY_BACKGROUND_COLOR, &bg_selected); + get_colour(pStyleContext, GTK_STATE_FLAG_NORMAL, GTK_STYLE_PROPERTY_COLOR, &fg_color); _color_shade (&bg_color, MIDDLE_START_SHADE, &color_middle[0]); _color_shade (&bg_color, MIDDLE_END_SHADE, &color_middle[1]); @@ -1217,25 +1198,25 @@ ido_playback_menu_item_draw (GtkWidget* button, cairo_t *cr) _color_shade (&bg_color, INNER_COMPRESSED_START_SHADE, &color_inner_compressed[0]); _color_shade (&bg_color, INNER_COMPRESSED_END_SHADE, &color_inner_compressed[1]); - double MIDDLE_END[] = {color_middle[0].r, color_middle[0].g, color_middle[0].b, 1.0f}; - double MIDDLE_START[] = {color_middle[1].r, color_middle[1].g, color_middle[1].b, 1.0f}; - double MIDDLE_END_PRELIGHT[] = {color_middle_prelight[0].r, color_middle_prelight[0].g, color_middle_prelight[0].b, 1.0f}; - double MIDDLE_START_PRELIGHT[] = {color_middle_prelight[1].r, color_middle_prelight[1].g, color_middle_prelight[1].b, 1.0f}; - double OUTER_END[] = {color_outer[0].r, color_outer[0].g, color_outer[0].b, 1.0f}; - double OUTER_START[] = {color_outer[1].r, color_outer[1].g, color_outer[1].b, 1.0f}; - double OUTER_END_PRELIGHT[] = {color_outer_prelight[0].r, color_outer_prelight[0].g, color_outer_prelight[0].b, 1.0f}; - double OUTER_START_PRELIGHT[] = {color_outer_prelight[1].r, color_outer_prelight[1].g, color_outer_prelight[1].b, 1.0f}; - double SHADOW_BUTTON[] = {color_button_shadow.r, color_button_shadow.g, color_button_shadow.b, 0.3f}; - double OUTER_PLAY_END[] = {color_play_outer[0].r, color_play_outer[0].g, color_play_outer[0].b, 1.0f}; - double OUTER_PLAY_START[] = {color_play_outer[1].r, color_play_outer[1].g, color_play_outer[1].b, 1.0f}; - double OUTER_PLAY_END_PRELIGHT[] = {color_play_outer_prelight[0].r, color_play_outer_prelight[0].g, color_play_outer_prelight[0].b, 1.0f}; - double OUTER_PLAY_START_PRELIGHT[] = {color_play_outer_prelight[1].r, color_play_outer_prelight[1].g, color_play_outer_prelight[1].b, 1.0f}; - double BUTTON_END[] = {color_button[0].r, color_button[0].g, color_button[0].b, 1.0f}; - double BUTTON_START[] = {color_button[1].r, color_button[1].g, color_button[1].b, 1.0f}; - double BUTTON_SHADOW[] = {color_button[2].r, color_button[2].g, color_button[2].b, 0.75f}; - double BUTTON_SHADOW_FOCUS[] = {color_button[3].r, color_button[3].g, color_button[3].b, 1.0f}; - double INNER_COMPRESSED_END[] = {color_inner_compressed[1].r, color_inner_compressed[1].g, color_inner_compressed[1].b, 1.0f}; - double INNER_COMPRESSED_START[] = {color_inner_compressed[0].r, color_inner_compressed[0].g, color_inner_compressed[0].b, 1.0f}; + double MIDDLE_END[] = {color_middle[0].red, color_middle[0].green, color_middle[0].blue, 1.0f}; + double MIDDLE_START[] = {color_middle[1].red, color_middle[1].green, color_middle[1].blue, 1.0f}; + double MIDDLE_END_PRELIGHT[] = {color_middle_prelight[0].red, color_middle_prelight[0].green, color_middle_prelight[0].blue, 1.0f}; + double MIDDLE_START_PRELIGHT[] = {color_middle_prelight[1].red, color_middle_prelight[1].green, color_middle_prelight[1].blue, 1.0f}; + double OUTER_END[] = {color_outer[0].red, color_outer[0].green, color_outer[0].blue, 1.0f}; + double OUTER_START[] = {color_outer[1].red, color_outer[1].green, color_outer[1].blue, 1.0f}; + double OUTER_END_PRELIGHT[] = {color_outer_prelight[0].red, color_outer_prelight[0].green, color_outer_prelight[0].blue, 1.0f}; + double OUTER_START_PRELIGHT[] = {color_outer_prelight[1].red, color_outer_prelight[1].green, color_outer_prelight[1].blue, 1.0f}; + double SHADOW_BUTTON[] = {color_button_shadow.red, color_button_shadow.green, color_button_shadow.blue, 0.3f}; + double OUTER_PLAY_END[] = {color_play_outer[0].red, color_play_outer[0].green, color_play_outer[0].blue, 1.0f}; + double OUTER_PLAY_START[] = {color_play_outer[1].red, color_play_outer[1].green, color_play_outer[1].blue, 1.0f}; + double OUTER_PLAY_END_PRELIGHT[] = {color_play_outer_prelight[0].red, color_play_outer_prelight[0].green, color_play_outer_prelight[0].blue, 1.0f}; + double OUTER_PLAY_START_PRELIGHT[] = {color_play_outer_prelight[1].red, color_play_outer_prelight[1].green, color_play_outer_prelight[1].blue, 1.0f}; + double BUTTON_END[] = {color_button[0].red, color_button[0].green, color_button[0].blue, 1.0f}; + double BUTTON_START[] = {color_button[1].red, color_button[1].green, color_button[1].blue, 1.0f}; + double BUTTON_SHADOW[] = {color_button[2].red, color_button[2].green, color_button[2].blue, 0.75f}; + double BUTTON_SHADOW_FOCUS[] = {color_button[3].red, color_button[3].green, color_button[3].blue, 1.0f}; + double INNER_COMPRESSED_END[] = {color_inner_compressed[1].red, color_inner_compressed[1].green, color_inner_compressed[1].blue, 1.0f}; + double INNER_COMPRESSED_START[] = {color_inner_compressed[0].red, color_inner_compressed[0].green, color_inner_compressed[0].blue, 1.0f}; gtk_widget_get_allocation (button, &alloc); X = alloc.x + (alloc.width - RECT_WIDTH) / 2 + OUTER_RADIUS; diff --git a/src/idosourcemenuitem.c b/src/idosourcemenuitem.c index 79455da..44ddf6f 100644 --- a/src/idosourcemenuitem.c +++ b/src/idosourcemenuitem.c @@ -49,13 +49,14 @@ ido_source_menu_item_constructed (GObject *object) gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &icon_width, NULL); item->icon = g_object_ref (gtk_image_new ()); - gtk_widget_set_margin_left (item->icon, icon_width); - gtk_widget_set_margin_right (item->icon, 6); + gtk_widget_set_margin_start(item->icon, icon_width); + gtk_widget_set_margin_end(item->icon, 6); item->label = g_object_ref (gtk_label_new ("")); gtk_label_set_max_width_chars (GTK_LABEL (item->label), 40); gtk_label_set_ellipsize (GTK_LABEL (item->label), PANGO_ELLIPSIZE_END); - gtk_misc_set_alignment (GTK_MISC (item->label), 0.0, 0.5); + gtk_widget_set_halign(item->label, GTK_ALIGN_START); + gtk_widget_set_valign(item->label, GTK_ALIGN_CENTER); item->detail = g_object_ref (ido_detail_label_new ("")); gtk_widget_set_halign (item->detail, GTK_ALIGN_END); diff --git a/src/idousermenuitem.c b/src/idousermenuitem.c index f4e146b..c8ddc5e 100644 --- a/src/idousermenuitem.c +++ b/src/idousermenuitem.c @@ -212,7 +212,9 @@ ido_user_menu_item_init (IdoUserMenuItem *self) priv->tick_icon = gtk_image_new_from_icon_name ("account-logged-in", GTK_ICON_SIZE_MENU); - gtk_misc_set_alignment(GTK_MISC(priv->tick_icon), 1.0, 0.5); + + gtk_widget_set_halign(priv->tick_icon, GTK_ALIGN_END); + gtk_widget_set_valign(priv->tick_icon, GTK_ALIGN_CENTER); // Pack it together gtk_box_pack_start (GTK_BOX (priv->container), @@ -303,10 +305,8 @@ ido_user_menu_item_set_icon_from_file_icon (IdoUserMenuItem *self, file = g_file_icon_get_file (G_FILE_ICON (icon)); path = g_file_get_path (file); - /* width and height will always be set by this function */ - gtk_icon_size_lookup_for_settings (gtk_widget_get_settings (GTK_WIDGET (self)), - GTK_ICON_SIZE_MENU, - &width, &height); + /* width and height will always be set by this function */ + gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &width, &height); pixbuf = gdk_pixbuf_new_from_file_at_scale (path, width, height, TRUE, NULL); g_free (path); |