[dia/zbrown/gresource-icons: 3/12] Move most icons in lib
- From: Zander <zbrown src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dia/zbrown/gresource-icons: 3/12] Move most icons in lib
- Date: Fri, 1 Mar 2019 23:37:13 +0000 (UTC)
commit 4d32280cec25141650614286099ba80050c51e16
Author: Zander Brown <zbrown gnome org>
Date: Tue Jan 29 11:48:20 2019 +0000
Move most icons in lib
GResource instead of inline pixbuf
app/app_procs.c | 79 ++++++------
lib/dia_image.c | 32 ++---
.../dia-chain-broken.png} | Bin
.../dia-chain-unbroken.png} | Bin
lib/{pixmaps => icons}/meson.build | 2 +-
lib/{pixmaps => icons}/standard-path.png | Bin
lib/libdia.gresource.xml | 8 ++
lib/meson.build | 8 +-
lib/pixmaps/broken.png | Bin 4239 -> 0 bytes
lib/pixmaps/broken.xpm | 88 -------------
lib/widgets.c | 140 +++++++++++++--------
lib/widgets.h | 5 +
12 files changed, 170 insertions(+), 192 deletions(-)
---
diff --git a/app/app_procs.c b/app/app_procs.c
index a92c85af..ba75fa6f 100644
--- a/app/app_procs.c
+++ b/app/app_procs.c
@@ -75,7 +75,7 @@
#include "dia-app-icons.h"
static gboolean
-handle_initial_diagram(const char *input_file_name,
+handle_initial_diagram(const char *input_file_name,
const char *export_file_name,
const char *export_file_format,
const char *size,
@@ -278,7 +278,7 @@ const char *argv0 = NULL;
* size might be NULL.
*/
static gboolean
-do_convert(const char *infname,
+do_convert(const char *infname,
const char *outfname, DiaExportFilter *ef,
const char *size,
char *show_layers)
@@ -288,7 +288,7 @@ do_convert(const char *infname,
DiaContext *ctx;
inf = filter_guess_import_filter(infname);
- if (!inf)
+ if (!inf)
inf = &dia_import_filter;
if (ef == NULL) {
@@ -307,7 +307,7 @@ do_convert(const char *infname,
argv0, infname);
exit(1);
}
-
+
diagdata = g_object_new (DIA_TYPE_DIAGRAM_DATA, NULL);
ctx = dia_context_new(_("Import"));
@@ -324,15 +324,15 @@ do_convert(const char *infname,
/* recalculate before export */
data_update_extents(diagdata);
- /* Do our best in providing the size to the filter, but don't abuse user_data
- * too much for it. It _must not_ be changed after initialization and there
+ /* Do our best in providing the size to the filter, but don't abuse user_data
+ * too much for it. It _must not_ be changed after initialization and there
* are quite some filter selecting their output format by it. --hb
*/
if (size) {
if (ef == filter_export_get_by_name ("png-libart")) /* the warning we get is appropriate, don't cast */
ef->export_func(diagdata, ctx, outfname, infname, size);
else {
- g_warning ("--size parameter unsupported for %s filter",
+ g_warning ("--size parameter unsupported for %s filter",
ef->unique_name ? ef->unique_name : "selected");
ef->export_func(diagdata, ctx, outfname, infname, ef->user_data);
}
@@ -352,7 +352,7 @@ int debug_break_dont_optimize = 1;
void
debug_break(void)
{
- if (debug_break_dont_optimize > 0)
+ if (debug_break_dont_optimize > 0)
debug_break_dont_optimize -= 1;
}
@@ -382,9 +382,9 @@ dump_dependencies(void)
#endif
"\n");
- /* print out all those dependies, both compile and runtime if possible
- * Note: this is not meant to be complete but does only include libaries
- * which may or have cause(d) us trouble in some versions
+ /* print out all those dependies, both compile and runtime if possible
+ * Note: this is not meant to be complete but does only include libaries
+ * which may or have cause(d) us trouble in some versions
*/
g_print ("Library versions (at compile time)\n");
#ifdef HAVE_LIBPNG
@@ -425,13 +425,13 @@ dump_dependencies(void)
#endif
libxml_rt_version = xmlParserVersion;
if (atoi(libxml_rt_version))
- g_print ("libxml : %d.%d.%d (%s)\n",
+ g_print ("libxml : %d.%d.%d (%s)\n",
atoi(libxml_rt_version) / 10000, atoi(libxml_rt_version) / 100 % 100, atoi(libxml_rt_version)
% 100,
LIBXML_DOTTED_VERSION);
else /* may include "extra" */
g_print ("libxml : %s (%s)\n", libxml_rt_version ? libxml_rt_version : "??", LIBXML_DOTTED_VERSION);
}
- g_print ("glib : %d.%d.%d (%d.%d.%d)\n",
+ g_print ("glib : %d.%d.%d (%d.%d.%d)\n",
glib_major_version, glib_minor_version, glib_micro_version,
GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
#ifdef PANGO_VERSION_ENCODE
@@ -477,7 +477,7 @@ app_is_interactive(void)
* even more arguments, but create a more general system.
*/
static gboolean
-handle_initial_diagram(const char *in_file_name,
+handle_initial_diagram(const char *in_file_name,
const char *out_file_name,
const char *export_file_format,
const char *size,
@@ -517,7 +517,7 @@ handle_initial_diagram(const char *in_file_name,
/* if this looks like an ugly hack to you, agreed ;) */
if (size && strstr(out_file_name, ".png"))
ef = filter_export_get_by_name ("png-libart");
-
+
made_conversions |= do_convert(in_file_name, out_file_name, ef,
size, show_layers);
} else {
@@ -526,7 +526,7 @@ handle_initial_diagram(const char *in_file_name,
} else {
diagram = new_diagram (in_file_name);
}
-
+
if (diagram != NULL) {
diagram_update_extents(diagram);
if (app_is_interactive()) {
@@ -609,7 +609,7 @@ _setup_textdomains (void)
#endif
#if defined ENABLE_NLS && defined HAVE_BIND_TEXTDOMAIN_CODESET
- bind_textdomain_codeset(GETTEXT_PACKAGE,"UTF-8");
+ bind_textdomain_codeset(GETTEXT_PACKAGE,"UTF-8");
#endif
textdomain(GETTEXT_PACKAGE);
}
@@ -670,7 +670,7 @@ app_init (int argc, char **argv)
NULL, NULL },
{ NULL }
};
-
+
/* for users of app_init() the default is interactive */
dia_is_interactive = TRUE;
@@ -712,8 +712,8 @@ app_init (int argc, char **argv)
/* second level check of command line options, existance of input files etc. */
if (filenames) {
while (filenames[i] != NULL) {
- gchar *filename;
- gchar *testpath;
+ gchar *filename;
+ gchar *testpath;
if (g_str_has_prefix (filenames[i], "file://")) {
filename = g_filename_from_uri (filenames[i], NULL, NULL);
@@ -762,6 +762,11 @@ app_init (int argc, char **argv)
g_set_application_name (_("Dia Diagram Editor"));
gtk_init(&argc, &argv);
+ /* GTK: (Defunct with GtkApplication)
+ * gtk_icon_theme_add_resource_path (gtk_icon_theme_get_default (),
+ * "/org/gnome/Dia/icons/");
+ */
+
/* Set the icon for Dia windows & dialogs */
/* MESON: Use GResource */
/* GTK3: Use icon-name with GResource fallback */
@@ -779,8 +784,8 @@ app_init (int argc, char **argv)
g_type_init();
#endif
/*
- * On Windows there is no command line without display so that gtk_init is harmless.
- * On X11 we need gtk_init_check() to avoid exit() just because there is no display
+ * On Windows there is no command line without display so that gtk_init is harmless.
+ * On X11 we need gtk_init_check() to avoid exit() just because there is no display
* running outside of X11.
*/
if (!gtk_init_check(&argc, &argv))
@@ -861,7 +866,7 @@ app_init (int argc, char **argv)
if (dia_is_interactive) {
- /* further initialization *before* reading files */
+ /* further initialization *before* reading files */
active_tool = create_modify_tool();
dia_log_message ("ui creation");
@@ -880,7 +885,7 @@ app_init (int argc, char **argv)
g_timeout_add_seconds(5*60, autosave_check_autosave, NULL);
#if 0 /* do we really open these automatically in the next session? */
- persistence_register_window_create("diagram_tree",
+ persistence_register_window_create("diagram_tree",
&diagram_tree_show);
#endif
persistence_register_window_create("sheets_main_dialog",
@@ -899,7 +904,7 @@ app_init (int argc, char **argv)
if (use_integrated_ui) {
GList * list;
- file_new_callback(NULL);
+ file_new_callback(NULL);
list = dia_open_diagrams();
if (list) {
Diagram * diagram = list->data;
@@ -910,14 +915,14 @@ app_init (int argc, char **argv)
gchar *filename = g_filename_from_utf8(_("Diagram1.dia"), -1, NULL, NULL, NULL);
Diagram *diagram = new_diagram (filename);
g_free(filename);
-
+
if (diagram != NULL) {
diagram_update_extents(diagram);
diagram->is_default = TRUE;
- /* I think this is done in diagram_init() with a call to
+ /* I think this is done in diagram_init() with a call to
* layer_dialog_update_diagram_list() */
layer_dialog_set_diagram(diagram);
- new_display(diagram);
+ new_display(diagram);
}
}
}
@@ -953,10 +958,10 @@ app_exit(void)
GtkWidget *dialog;
int result;
exit_dialog_item_array_t *items = NULL;
- GList * list;
+ GList * list;
Diagram * diagram;
-
- dialog = exit_dialog_make (GTK_WINDOW (interface_get_toolbox_shell ()),
+
+ dialog = exit_dialog_make (GTK_WINDOW (interface_get_toolbox_shell ()),
_("Exiting Dia"));
list = dia_open_diagrams();
@@ -975,7 +980,7 @@ app_exit(void)
}
result = exit_dialog_run (dialog, &items);
-
+
gtk_widget_destroy (dialog);
if (result == EXIT_DIALOG_EXIT_CANCEL)
@@ -1004,8 +1009,8 @@ app_exit(void)
}
dia_context_release (ctx);
exit_dialog_free_items (items);
- }
- else if (result == EXIT_DIALOG_EXIT_NO_SAVE)
+ }
+ else if (result == EXIT_DIALOG_EXIT_NO_SAVE)
{
list = dia_open_diagrams();
while (list) {
@@ -1033,7 +1038,7 @@ app_exit(void)
"without saving them?"));
gtk_window_set_title (GTK_WINDOW(dialog), _("Quit Dia"));
-
+
button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
gtk_dialog_add_action_widget (GTK_DIALOG(dialog), button, GTK_RESPONSE_CANCEL);
#if GTK_CHECK_VERSION(2,18,0)
@@ -1082,7 +1087,7 @@ app_exit(void)
}
/* The diagram is freed when the last display is destroyed */
}
-
+
/* save pluginrc */
if (dia_is_interactive)
dia_pluginrc_write();
@@ -1178,7 +1183,7 @@ handle_all_diagrams(GSList *files, char *export_file_name,
}
/* --credits option. Added by Andrew Ferrier.
-
+
Hopefully we're not ignoring anything too crucial by
quitting directly after the credits.
diff --git a/lib/dia_image.c b/lib/dia_image.c
index c733e697..d96fa80e 100644
--- a/lib/dia_image.c
+++ b/lib/dia_image.c
@@ -46,7 +46,7 @@ struct _DiaImageClass {
* a downscaled variant of the underlying pixbuf. Also there is special handling
* of 'broken' i.e. typically empty images.
*
- * _DiaImage can be used to assemble _DiaObjects - it is also part of the
+ * _DiaImage can be used to assemble _DiaObjects - it is also part of the
* _DiaRenderer interface and thus provides interface to all of the exporters.
*
* \ingroup ObjectParts
@@ -87,7 +87,7 @@ dia_image_get_type (void)
object_type = g_type_register_static (G_TYPE_OBJECT,
"DiaImage",
&object_info, 0);
- }
+ }
return object_type;
}
@@ -105,7 +105,7 @@ dia_image_class_init(DiaImageClass* klass)
* \brief Constructor
* \memberof _DiaImage
*/
-static void
+static void
dia_image_init_instance(DiaImage *image)
{
/* GObject *gobject = G_OBJECT(image); */
@@ -148,8 +148,10 @@ dia_image_get_broken(void)
image = DIA_IMAGE(g_object_new(DIA_TYPE_IMAGE, NULL));
if (broken == NULL) {
- /* initial refernce will finally be leaked */
- broken = gdk_pixbuf_new_from_inline(-1, dia_broken_icon, FALSE, NULL);
+ broken = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+ "image-missing",
+ 64,
+ 0, NULL);
}
image->image = g_object_ref (broken);
/* Kinda hard to export :) */
@@ -221,7 +223,7 @@ dia_image_new_from_pixbuf (GdkPixbuf *pixbuf)
mime_type = g_object_get_data (G_OBJECT (pixbuf), "mime-type");
if (mime_type)
dia_img->mime_type = g_strdup (mime_type);
-
+
return dia_img;
}
@@ -250,7 +252,7 @@ dia_image_unref(DiaImage *image)
* @param height Height in pixels of result.
* \memberof _DiaImage
*/
-GdkPixbuf *
+GdkPixbuf *
dia_image_get_scaled_pixbuf(DiaImage *image, int width, int height)
{
GdkPixbuf *scaled;
@@ -273,7 +275,7 @@ dia_image_get_scaled_pixbuf(DiaImage *image, int width, int height)
}
scaled = image->scaled;
#else
- scaled = gdk_pixbuf_scale_simple(image->image, width, height,
+ scaled = gdk_pixbuf_scale_simple(image->image, width, height,
GDK_INTERP_TILES);
#endif
} else {
@@ -334,7 +336,7 @@ dia_image_save(DiaImage *image, const gchar *filename)
if (image->image) {
GError *error = NULL;
gchar *type = _guess_format (filename);
-
+
if (type) /* XXX: consider image->mime_type */
saved = gdk_pixbuf_save (image->image, filename, type, &error, NULL);
if (saved) {
@@ -362,7 +364,7 @@ dia_image_save(DiaImage *image, const gchar *filename)
* @return The natural width of the object in pixels.
* \memberof _DiaImage
*/
-int
+int
dia_image_width(const DiaImage *image)
{
g_return_val_if_fail (image != NULL, 0);
@@ -375,7 +377,7 @@ dia_image_width(const DiaImage *image)
* @return The natural height of the object in pixels.
* \memberof _DiaImage
*/
-int
+int
dia_image_height(const DiaImage *image)
{
g_return_val_if_fail (image != NULL, 0);
@@ -400,7 +402,7 @@ dia_image_rowstride(const DiaImage *image)
* @return The pixbuf
* \memberof _DiaImage
*/
-const GdkPixbuf*
+const GdkPixbuf*
dia_image_pixbuf (const DiaImage *image)
{
if (!image)
@@ -474,7 +476,7 @@ dia_image_rgb_data(const DiaImage *image)
}
}
-/*!
+/*!
* \brief Get the mask data for an image.
* @param image An image object.
* @return An array of bytes (width*height) with the alpha channel information
@@ -491,7 +493,7 @@ dia_image_mask_data(const DiaImage *image)
if (!gdk_pixbuf_get_has_alpha(image->image)) {
return NULL;
}
-
+
pixels = gdk_pixbuf_get_pixels(image->image);
size = gdk_pixbuf_get_width(image->image)*
@@ -521,7 +523,7 @@ dia_image_rgba_data(const DiaImage *image)
g_return_val_if_fail (image != NULL, 0);
if (gdk_pixbuf_get_has_alpha(image->image)) {
const guint8 *pixels = gdk_pixbuf_get_pixels(image->image);
-
+
return pixels;
} else {
return NULL;
diff --git a/lib/pixmaps/broken-chain.png b/lib/icons/dia-chain-broken.png
similarity index 100%
rename from lib/pixmaps/broken-chain.png
rename to lib/icons/dia-chain-broken.png
diff --git a/lib/pixmaps/unbroken-chain.png b/lib/icons/dia-chain-unbroken.png
similarity index 100%
rename from lib/pixmaps/unbroken-chain.png
rename to lib/icons/dia-chain-unbroken.png
diff --git a/lib/pixmaps/meson.build b/lib/icons/meson.build
similarity index 86%
rename from lib/pixmaps/meson.build
rename to lib/icons/meson.build
index 3759ad30..34bf67fc 100644
--- a/lib/pixmaps/meson.build
+++ b/lib/icons/meson.build
@@ -1,5 +1,5 @@
# Generate csource for the icons.
-icons = [ 'broken.png', 'broken-chain.png', 'unbroken-chain.png', 'standard-path.png' ]
+icons = [ 'standard-path.png' ]
#TODO: this is duplicated in app/pixmaps, lib/pixmaps and objects/standard/pixmaps.
# Remove from all three once we port from gdk_pixbuf_csource to GResource.
diff --git a/lib/pixmaps/standard-path.png b/lib/icons/standard-path.png
similarity index 100%
rename from lib/pixmaps/standard-path.png
rename to lib/icons/standard-path.png
diff --git a/lib/libdia.gresource.xml b/lib/libdia.gresource.xml
new file mode 100644
index 00000000..878a74b1
--- /dev/null
+++ b/lib/libdia.gresource.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/gnome/Dia">
+ <file>icons/dia-chain-unbroken.png</file>
+ <file>icons/dia-chain-broken.png</file>
+ <file>icons/standard-path.png</file>
+ </gresource>
+</gresources>
\ No newline at end of file
diff --git a/lib/meson.build b/lib/meson.build
index eab9b4c0..b10dbbb3 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -106,7 +106,11 @@ diamarshal = gnome.genmarshal(
# TODO: This is used in app/, should we install / do anything else with it?
diamarshal_h = diamarshal[1]
-subdir('pixmaps')
+resources = gnome.compile_resources('libdia-resources', 'libdia.gresource.xml',
+ source_dir : '.',
+ c_name : 'libdia')
+
+subdir('icons')
libdia_deps = [
libc_dep,
@@ -121,7 +125,7 @@ libdia_deps = [
libdia_inc = include_directories('.')
libdia = library('dia',
- libdia_sources + [diamarshal, dia_lib_icons_h, config_h],
+ libdia_sources + [resources, diamarshal, dia_lib_icons_h, config_h],
dependencies: libdia_deps,
include_directories: configuration_inc,
c_args: ['-Wall', '-DLIBDIA_COMPILATION'],
diff --git a/lib/widgets.c b/lib/widgets.c
index d1467630..7a97361e 100644
--- a/lib/widgets.c
+++ b/lib/widgets.c
@@ -25,7 +25,6 @@
#include "dia_dirs.h"
#include "diadynamicmenu.h"
#include "diaoptionmenu.h"
-#include "dia-lib-icons.h"
#include <stdlib.h>
#include <glib.h>
@@ -40,7 +39,7 @@
/* A widget that selects two sizes, width and height, optionally keeping
* aspect ratio. When created, aspect ratio is locked, but the user can
* unlock it. The current users do not store aspect ratio, so we have
- * to give a good default.
+ * to give a good default.
*/
struct _DiaSizeSelector
{
@@ -78,7 +77,7 @@ dia_size_selector_class_init (DiaSizeSelectorClass *class)
static void
dia_size_selector_adjust_width(DiaSizeSelector *ss)
{
- real height =
+ real height =
gtk_spin_button_get_value(GTK_SPIN_BUTTON(ss->height));
if (fabs(ss->ratio) > 1e-6)
gtk_spin_button_set_value(GTK_SPIN_BUTTON(ss->width), height*ss->ratio);
@@ -87,24 +86,24 @@ dia_size_selector_adjust_width(DiaSizeSelector *ss)
static void
dia_size_selector_adjust_height(DiaSizeSelector *ss)
{
- real width =
+ real width =
gtk_spin_button_get_value(GTK_SPIN_BUTTON(ss->width));
if (fabs(ss->ratio) > 1e-6)
gtk_spin_button_set_value(GTK_SPIN_BUTTON(ss->height), width/ss->ratio);
}
static void
-dia_size_selector_ratio_callback(GtkAdjustment *limits, gpointer userdata)
+dia_size_selector_ratio_callback(GtkAdjustment *limits, gpointer userdata)
{
static gboolean in_progress = FALSE;
DiaSizeSelector *ss = DIA_SIZE_SELECTOR(userdata);
ss->last_adjusted = limits;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ss->aspect_locked))
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ss->aspect_locked))
&& ss->ratio != 0.0) {
- if (in_progress)
+ if (in_progress)
return;
in_progress = TRUE;
@@ -125,11 +124,11 @@ dia_size_selector_ratio_callback(GtkAdjustment *limits, gpointer userdata)
* If height is 0, ratio becomes 0.0.
*/
static void
-dia_size_selector_set_ratio(DiaSizeSelector *ss, real width, real height)
+dia_size_selector_set_ratio(DiaSizeSelector *ss, real width, real height)
{
- if (height > 0.0)
+ if (height > 0.0)
ss->ratio = width/height;
- else
+ else
ss->ratio = 0.0;
}
@@ -138,7 +137,7 @@ dia_size_selector_lock_pressed(GtkWidget *widget, gpointer data)
{
DiaSizeSelector *ss = DIA_SIZE_SELECTOR(data);
- dia_size_selector_set_ratio(ss,
+ dia_size_selector_set_ratio(ss,
gtk_spin_button_get_value(GTK_SPIN_BUTTON(ss->width)),
gtk_spin_button_get_value(GTK_SPIN_BUTTON(ss->height)));
}
@@ -169,27 +168,26 @@ dia_size_selector_init (DiaSizeSelector *ss)
gtk_widget_show(GTK_WIDGET(ss->height));
/* Replace label with images */
- /* should make sure they're both unallocated when the widget dies.
+ /* should make sure they're both unallocated when the widget dies.
* That should happen in the "destroy" handler, where both should
* be unref'd */
- ss->aspect_locked =
- GTK_TOGGLE_BUTTON(dia_toggle_button_new_with_icons
- (dia_unbroken_chain_icon,
- dia_broken_chain_icon));
+ ss->aspect_locked = GTK_TOGGLE_BUTTON (
+ dia_toggle_button_new_with_icon_names ("dia-chain-unbroken",
+ "dia-chain-broken"));
gtk_container_set_border_width(GTK_CONTAINER(ss->aspect_locked), 0);
- gtk_box_pack_start(GTK_BOX(ss), GTK_WIDGET(ss->aspect_locked), FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(ss), GTK_WIDGET(ss->aspect_locked), FALSE, TRUE, 0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ss->aspect_locked), TRUE);
gtk_widget_show(GTK_WIDGET(ss->aspect_locked));
g_signal_connect (G_OBJECT (ss->aspect_locked), "clicked",
G_CALLBACK (dia_size_selector_lock_pressed), ss);
/* Make sure that the aspect ratio stays the same */
- g_signal_connect(G_OBJECT(gtk_spin_button_get_adjustment(ss->width)),
+ g_signal_connect(G_OBJECT(gtk_spin_button_get_adjustment(ss->width)),
"value_changed",
G_CALLBACK(dia_size_selector_ratio_callback), (gpointer)ss);
- g_signal_connect(G_OBJECT(gtk_spin_button_get_adjustment(ss->height)),
+ g_signal_connect(G_OBJECT(gtk_spin_button_get_adjustment(ss->height)),
"value_changed",
G_CALLBACK(dia_size_selector_ratio_callback), (gpointer)ss);
}
@@ -211,7 +209,7 @@ dia_size_selector_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) dia_size_selector_init
};
-
+
dss_type = g_type_register_static (gtk_hbox_get_type (),
"DiaSizeSelector",
&dss_info, 0);
@@ -230,7 +228,7 @@ dia_size_selector_new (real width, real height)
}
void
-dia_size_selector_set_size(DiaSizeSelector *ss, real width, real height)
+dia_size_selector_set_size(DiaSizeSelector *ss, real width, real height)
{
gtk_spin_button_set_value(GTK_SPIN_BUTTON(ss->width), width);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(ss->height), height);
@@ -246,7 +244,7 @@ dia_size_selector_set_locked(DiaSizeSelector *ss, gboolean locked)
{
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ss->aspect_locked))
&& locked) {
- dia_size_selector_set_ratio(ss,
+ dia_size_selector_set_ratio(ss,
gtk_spin_button_get_value(GTK_SPIN_BUTTON(ss->width)),
gtk_spin_button_get_value(GTK_SPIN_BUTTON(ss->height)));
}
@@ -273,7 +271,7 @@ dia_alignment_selector_new ()
return omenu;
}
-Alignment
+Alignment
dia_alignment_selector_get_alignment(GtkWidget *as)
{
return (Alignment)dia_option_menu_get_active (GTK_WIDGET (as));
@@ -334,7 +332,7 @@ static void
dia_file_selector_class_init (DiaFileSelectorClass *class)
{
GtkWidgetClass *widget_class;
-
+
widget_class = (GtkWidgetClass*) class;
widget_class->unrealize = dia_file_selector_unrealize;
@@ -356,15 +354,15 @@ dia_file_selector_entry_changed(GtkEditable *editable
}
static void
-file_open_response_callback(GtkWidget *dialog,
- gint response,
+file_open_response_callback(GtkWidget *dialog,
+ gint response,
gpointer user_data)
{
DiaFileSelector *fs =
DIAFILESELECTOR(g_object_get_data(G_OBJECT(dialog), "user_data"));
- if (response == GTK_RESPONSE_ACCEPT || response == GTK_RESPONSE_OK) {
- gchar *utf8 = g_filename_to_utf8(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)),
+ if (response == GTK_RESPONSE_ACCEPT || response == GTK_RESPONSE_OK) {
+ gchar *utf8 = g_filename_to_utf8(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)),
-1, NULL, NULL, NULL);
gtk_entry_set_text(GTK_ENTRY(fs->entry), utf8);
g_free(utf8);
@@ -385,8 +383,8 @@ dia_file_selector_browse_pressed(GtkWidget *widget, gpointer data)
if (fs->dialog == NULL) {
GtkFileFilter *filter;
-
- dialog = fs->dialog =
+
+ dialog = fs->dialog =
gtk_file_chooser_dialog_new (_("Select image file"), toplevel ? GTK_WINDOW(toplevel) : NULL,
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -394,10 +392,10 @@ dia_file_selector_browse_pressed(GtkWidget *widget, gpointer data)
NULL);
gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
g_signal_connect(G_OBJECT(dialog), "response",
- G_CALLBACK(file_open_response_callback), NULL);
+ G_CALLBACK(file_open_response_callback), NULL);
g_signal_connect (G_OBJECT (fs->dialog), "destroy",
G_CALLBACK (gtk_widget_destroyed), &fs->dialog);
-
+
filter = gtk_file_filter_new ();
gtk_file_filter_set_name (filter, _("Supported Formats"));
if (fs->pattern)
@@ -420,7 +418,7 @@ dia_file_selector_browse_pressed(GtkWidget *widget, gpointer data)
gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(fs->dialog), filename);
g_free(filename);
-
+
gtk_widget_show(GTK_WIDGET(fs->dialog));
}
@@ -463,11 +461,11 @@ dia_file_selector_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc)dia_file_selector_init,
};
-
- dfs_type = g_type_register_static (gtk_hbox_get_type (),
+
+ dfs_type = g_type_register_static (gtk_hbox_get_type (),
"DiaFileSelector",
&dfs_info, 0);
- }
+ }
return dfs_type;
}
@@ -567,15 +565,15 @@ GtkWidget *
dia_unit_spinner_new(GtkAdjustment *adjustment, DiaUnit adj_unit)
{
DiaUnitSpinner *self;
-
+
if (adjustment) {
g_return_val_if_fail (GTK_IS_ADJUSTMENT (adjustment), NULL);
}
-
+
self = g_object_new(dia_unit_spinner_get_type(), NULL);
gtk_entry_set_activates_default(GTK_ENTRY(self), TRUE);
self->unit_num = adj_unit;
-
+
gtk_spin_button_configure(GTK_SPIN_BUTTON(self),
adjustment, 0.0, units[adj_unit].digits);
@@ -659,7 +657,7 @@ dia_unit_spinner_get_value(DiaUnitSpinner *self)
}
/* Must manipulate the limit values through this to also consider unit.
- * Given value is in centimeter.
+ * Given value is in centimeter.
*/
void
dia_unit_spinner_set_upper (DiaUnitSpinner *self, gdouble val)
@@ -690,17 +688,17 @@ struct image_pair { GtkWidget *on; GtkWidget *off; };
static void
dia_toggle_button_swap_images(GtkToggleButton *widget,
- gpointer data)
+ gpointer data)
{
struct image_pair *images = (struct image_pair *)data;
if (gtk_toggle_button_get_active(widget)) {
- gtk_container_remove(GTK_CONTAINER(widget),
+ gtk_container_remove(GTK_CONTAINER(widget),
gtk_bin_get_child(GTK_BIN(widget)));
gtk_container_add(GTK_CONTAINER(widget),
images->on);
-
+
} else {
- gtk_container_remove(GTK_CONTAINER(widget),
+ gtk_container_remove(GTK_CONTAINER(widget),
gtk_bin_get_child(GTK_BIN(widget)));
gtk_container_add(GTK_CONTAINER(widget),
images->off);
@@ -756,8 +754,8 @@ dia_toggle_button_new(GtkWidget *on_widget, GtkWidget *off_widget)
GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_DEFAULT);
#endif
- rcstyle = gtk_rc_style_new ();
- rcstyle->xthickness = rcstyle->ythickness = 0;
+ rcstyle = gtk_rc_style_new ();
+ rcstyle->xthickness = rcstyle->ythickness = 0;
gtk_widget_modify_style (button, rcstyle);
g_object_unref (rcstyle);
@@ -767,7 +765,7 @@ dia_toggle_button_new(GtkWidget *on_widget, GtkWidget *off_widget)
gtk_container_add(GTK_CONTAINER(button), images->off);
- g_signal_connect(G_OBJECT(button), "toggled",
+ g_signal_connect(G_OBJECT(button), "toggled",
G_CALLBACK(dia_toggle_button_swap_images), images);
g_signal_connect(G_OBJECT(button), "destroy",
G_CALLBACK(dia_toggle_button_destroy), images);
@@ -779,8 +777,8 @@ dia_toggle_button_new(GtkWidget *on_widget, GtkWidget *off_widget)
* for instance). The icons represent on and off.
*/
GtkWidget *
-dia_toggle_button_new_with_icons(const guint8 *on_icon,
- const guint8 *off_icon)
+dia_toggle_button_new_with_icons (const guint8 *on_icon,
+ const guint8 *off_icon)
{
GdkPixbuf *p1, *p2;
@@ -791,4 +789,48 @@ dia_toggle_button_new_with_icons(const guint8 *on_icon,
gtk_image_new_from_pixbuf(p2));
}
+/* GTK3: This is built-in (new_from_resource, add_resource_path....) */
+/* Adapted from Gtk */
+GdkPixbuf *
+pixbuf_from_resource (const gchar *path)
+{
+ GdkPixbufLoader *loader;
+ GdkPixbuf *pixbuf;
+ GBytes *bytes;
+
+ g_return_val_if_fail (path != NULL, NULL);
+
+ bytes = g_resources_lookup_data (path, G_RESOURCE_LOOKUP_FLAGS_NONE, NULL);
+ if (!bytes)
+ goto out;
+
+ loader = gdk_pixbuf_loader_new ();
+
+ if (!gdk_pixbuf_loader_write_bytes (loader, bytes, NULL))
+ goto out;
+
+ if (!gdk_pixbuf_loader_close (loader, NULL))
+ goto out;
+
+ pixbuf = g_object_ref (gdk_pixbuf_loader_get_pixbuf (loader));
+
+ out:
+ gdk_pixbuf_loader_close (loader, NULL);
+ g_object_unref (loader);
+ g_bytes_unref (bytes);
+
+ return pixbuf;
+}
+
+GtkWidget *
+dia_toggle_button_new_with_icon_names (const gchar *on,
+ const gchar *off)
+{
+ GtkWidget *on_img, *off_img;
+
+ on_img = gtk_image_new_from_pixbuf (pixbuf_from_resource (g_strdup_printf ("/org/gnome/Dia/icons/%s.png",
on)));
+ off_img = gtk_image_new_from_pixbuf (pixbuf_from_resource (g_strdup_printf ("/org/gnome/Dia/icons/%s.png",
off)));
+
+ return dia_toggle_button_new (on_img, off_img);
+}
diff --git a/lib/widgets.h b/lib/widgets.h
index d35cb086..c35c22a1 100644
--- a/lib/widgets.h
+++ b/lib/widgets.h
@@ -139,6 +139,11 @@ GtkWidget *
dia_toggle_button_new_with_icons(const guint8 *on_icon,
const guint8 *off_icon);
+GtkWidget *dia_toggle_button_new_with_icon_names (const gchar *on,
+ const gchar *off);
+
+GdkPixbuf *pixbuf_from_resource (const gchar *path);
+
/* Other common defaults */
#define DEFAULT_ALIGNMENT ALIGN_LEFT
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]