static void bjb_editor_toolbar_init (BjbEditorToolbar *self) { BjbEditorToolbarPrivate *priv; GtkWidget *bin; GtkWidget *image; GdkPixbuf *pixbuf; GtkStyleContext *context; GdkRGBA transparent = {0.0, 0.0, 0.0, 0.0}; GdkRGBA black = {0.0, 0.0, 0.0, 0.6}; gchar *icons_path, *full_path; GError *error = NULL; self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, BJB_TYPE_EDITOR_TOOLBAR, BjbEditorToolbarPrivate); priv = self->priv; priv->accel = gtk_accel_group_new (); priv->widget = gtk_box_new (GTK_ORIENTATION_HORIZONTAL,0); context = gtk_widget_get_style_context (priv->widget); gtk_style_context_add_class (context, "osd"); gtk_style_context_add_class (context, "toolbar"); priv->actor = gtk_clutter_actor_new_with_contents (priv->widget); clutter_actor_set_opacity (priv->actor, 0); g_object_set (priv->actor, "show-on-set-parent", FALSE, NULL); clutter_actor_set_easing_mode (priv->actor, CLUTTER_EASE_IN_QUAD); clutter_actor_set_easing_duration (priv->actor, 300.0); bin = gtk_clutter_actor_get_widget (GTK_CLUTTER_ACTOR (priv->actor)); gtk_widget_override_background_color (bin, GTK_STATE_FLAG_NORMAL, &transparent); priv->box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); priv->group = gtk_tool_item_new (); gtk_container_add (GTK_CONTAINER (priv->group), priv->box); gtk_container_add (GTK_CONTAINER (priv->widget), GTK_WIDGET(priv->group)); gtk_widget_show_all (GTK_WIDGET (priv->group)); /* Cut */ priv->toolbar_cut = gtk_button_new_with_label ("Cut"); gtk_container_add (GTK_CONTAINER (priv->box), priv->toolbar_cut); gtk_widget_override_background_color (priv->toolbar_cut, GTK_STATE_FLAG_NORMAL, &black); /* Copy */ priv->toolbar_copy = gtk_button_new_with_label ("Copy"); gtk_container_add (GTK_CONTAINER (priv->box), priv->toolbar_copy); gtk_widget_override_background_color (priv->toolbar_copy, GTK_STATE_FLAG_NORMAL, &black); /* 'n paste */ priv->toolbar_paste = gtk_button_new_with_label ("Paste"); gtk_container_add (GTK_CONTAINER (priv->box), priv->toolbar_paste); gtk_widget_override_background_color (priv->toolbar_paste, GTK_STATE_FLAG_NORMAL, &black); /* GtkWidget *toolbar_bold */ priv->toolbar_bold = gtk_button_new (); image = gtk_image_new_from_icon_name ("gtk-bold", GTK_ICON_SIZE_INVALID); gtk_image_set_pixel_size (GTK_IMAGE (image), 24); gtk_container_add (GTK_CONTAINER (priv->toolbar_bold), image); gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_bold), _("Bold")); gtk_container_add (GTK_CONTAINER (priv->box), priv->toolbar_bold); gtk_widget_override_background_color (priv->toolbar_bold, GTK_STATE_FLAG_NORMAL, &black); /* GtkWidget *toolbar_italic; */ priv->toolbar_italic = gtk_button_new (); image = gtk_image_new_from_icon_name ("gtk-italic", GTK_ICON_SIZE_INVALID); gtk_image_set_pixel_size (GTK_IMAGE (image), 24); gtk_container_add (GTK_CONTAINER (priv->toolbar_italic), image); gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_italic), _("Italic")); gtk_container_add (GTK_CONTAINER (priv->box), priv->toolbar_italic); gtk_widget_override_background_color (priv->toolbar_italic, GTK_STATE_FLAG_NORMAL, &black); /* GtkWidget *toolbar_strike; */ priv->toolbar_strike = gtk_button_new (); image = gtk_image_new_from_icon_name ("gtk-strikethrough", GTK_ICON_SIZE_INVALID); gtk_image_set_pixel_size (GTK_IMAGE (image), 24); gtk_container_add (GTK_CONTAINER (priv->toolbar_strike), image); gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_strike), _("Strike")); gtk_container_add (GTK_CONTAINER (priv->box), priv->toolbar_strike); gtk_widget_override_background_color (priv->toolbar_strike, GTK_STATE_FLAG_NORMAL, &black); /* GtkWidget *toolbar_link; */ priv->toolbar_link = gtk_button_new (); icons_path = (gchar*) bijiben_get_bijiben_dir (); full_path = g_build_filename (icons_path, "bijiben", "icons", "hicolor", "scalable", "actions", "link.svg", NULL); pixbuf = gdk_pixbuf_new_from_file (full_path, &error); g_free (full_path); if (error) g_warning ("error loading link icon : %s",error->message); image = gtk_image_new_from_pixbuf (pixbuf); gtk_image_set_pixel_size (GTK_IMAGE (image), 24); gtk_container_add (GTK_CONTAINER (priv->toolbar_link), image); gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_link), _("Link")); gtk_container_add (GTK_CONTAINER (priv->box), priv->toolbar_link); gtk_widget_override_background_color (priv->toolbar_link, GTK_STATE_FLAG_NORMAL, &black); priv->glued = FALSE; gtk_widget_show_all (GTK_WIDGET(priv->group)); clutter_actor_show (priv->actor); }
/* Gobj */ static void bjb_window_base_init (BjbWindowBase *self) { BjbWindowBasePriv *priv; const gchar *icons_path; gchar *full_path; GList *icons = NULL; GdkPixbuf *bjb ; GError *error = NULL ; GtkClutterEmbed *embed; self->priv = G_TYPE_INSTANCE_GET_PRIVATE(self, BJB_TYPE_WINDOW_BASE, BjbWindowBasePriv); priv = self->priv; gtk_window_set_default_size (GTK_WINDOW (self), BJB_WIDTH, BJB_HEIGHT); gtk_window_set_position (GTK_WINDOW (self),GTK_WIN_POS_CENTER); gtk_window_set_title (GTK_WINDOW (self), BIJIBEN_MAIN_WIN_TITLE); /* Icon for window. TODO - Should be BjbApp */ icons_path = bijiben_get_bijiben_dir (); full_path = g_build_filename (icons_path, "icons", "hicolor", "48x48", "apps", "bijiben.png", NULL); bjb = gdk_pixbuf_new_from_file (full_path, &error); g_free (full_path); if ( error ) { g_message("%s", error->message); g_error_free(error); } icons = g_list_prepend(icons,bjb); gtk_window_set_default_icon_list(icons); g_list_foreach (icons, (GFunc) g_object_unref, NULL); g_list_free (icons); /* We probably want to offer a no entry window at first (startup) */ priv->entry = NULL ; priv->tags = get_all_tracker_tags(); priv->font = pango_font_description_from_string (BJB_DEFAULT_FONT); /* UI */ embed = GTK_CLUTTER_EMBED (gtk_clutter_embed_new()); gtk_clutter_embed_set_use_layout_size (embed, TRUE); gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (embed)); priv->stage = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (embed)); /* Signals */ g_signal_connect(GTK_WIDGET(self),"destroy", G_CALLBACK(bjb_window_base_destroy),self); }
static void bjb_empty_results_box_constructed (GObject *object) { BjbEmptyResultsBox *self; BjbEmptyResultsBoxPrivate *priv; GtkStyleContext *context; GdkPixbuf *pixbuf; GtkWidget *labels_grid; gchar *label, *icons_path, *note_icon_path, *markup; GError *error; G_OBJECT_CLASS (bjb_empty_results_box_parent_class)->constructed (object); self = BJB_EMPTY_RESULTS_BOX (object); priv = self->priv; gtk_widget_set_halign (GTK_WIDGET (self), GTK_ALIGN_CENTER); gtk_widget_set_hexpand (GTK_WIDGET (self), TRUE); gtk_widget_set_valign (GTK_WIDGET (self), GTK_ALIGN_CENTER); gtk_widget_set_vexpand (GTK_WIDGET (self), TRUE); gtk_orientable_set_orientation (GTK_ORIENTABLE (self), GTK_ORIENTATION_HORIZONTAL); gtk_grid_set_column_spacing (GTK_GRID (self), 12); context = gtk_widget_get_style_context (GTK_WIDGET (self)); gtk_style_context_add_class (context, "dim-label"); icons_path = (gchar*) bijiben_get_bijiben_dir (); note_icon_path = g_build_filename (icons_path, "bijiben", "icons", "hicolor", "scalable", "actions", "note.svg", NULL); error = NULL; pixbuf = gdk_pixbuf_new_from_file (note_icon_path, &error); if (error) { g_warning ("%s", error->message); g_error_free (error); } priv->image = gtk_image_new_from_pixbuf (pixbuf); g_free (note_icon_path); gtk_image_set_pixel_size (GTK_IMAGE (priv->image), 64); gtk_container_add (GTK_CONTAINER (self), priv->image); labels_grid = gtk_grid_new (); gtk_orientable_set_orientation (GTK_ORIENTABLE (labels_grid), GTK_ORIENTATION_VERTICAL); gtk_grid_set_row_spacing (GTK_GRID (labels_grid), 12); gtk_container_add (GTK_CONTAINER (self), labels_grid); label = _("No Notes Found"); markup = g_markup_printf_escaped ("<big><b>%s</b></big>", label); priv->primary_label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (priv->primary_label), markup); g_free (markup); gtk_widget_set_halign (priv->primary_label, GTK_ALIGN_START); gtk_widget_set_vexpand (priv->primary_label, TRUE); gtk_label_set_use_markup (GTK_LABEL (priv->primary_label), TRUE); gtk_container_add (GTK_CONTAINER (labels_grid), priv->primary_label); self->priv->type = BJB_EMPTY_RESULTS_TYPE; label = ""; self->priv->details_label = GTK_LABEL (gtk_label_new (label)); gtk_label_set_use_markup (GTK_LABEL (self->priv->details_label), TRUE); gtk_widget_set_halign (priv->primary_label, GTK_ALIGN_START); // xalign: 0, // max_width_chars: 24, // wrap: true gtk_container_add (GTK_CONTAINER (labels_grid), GTK_WIDGET (self->priv->details_label)); gtk_widget_set_valign (priv->primary_label, GTK_ALIGN_CENTER); gtk_widget_show_all (GTK_WIDGET (self)); }