summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPatrick Storz <eduard.braun2@gmx.de>2019-08-05 20:13:24 +0000
committerPatrick Storz <eduard.braun2@gmx.de>2019-08-31 14:50:39 +0000
commit299010c5b11801fa49bd52ae78c6d2cc0e069137 (patch)
tree495a5d9571b0e48de6f7cf4d2f784939d597e9c9 /src
parentcleanup includes a bit (diff)
downloadinkscape-299010c5b11801fa49bd52ae78c6d2cc0e069137.tar.gz
inkscape-299010c5b11801fa49bd52ae78c6d2cc0e069137.zip
More cleanup
Diffstat (limited to 'src')
-rw-r--r--src/extension/prefdialog/parameter-bool.cpp6
-rw-r--r--src/extension/prefdialog/parameter-color.cpp6
-rw-r--r--src/extension/prefdialog/parameter-color.h7
-rw-r--r--src/extension/prefdialog/parameter-float.cpp4
-rw-r--r--src/extension/prefdialog/parameter-int.cpp4
-rw-r--r--src/extension/prefdialog/parameter-notebook.cpp10
-rw-r--r--src/extension/prefdialog/parameter-notebook.h14
-rw-r--r--src/extension/prefdialog/parameter-optiongroup.cpp4
-rw-r--r--src/extension/prefdialog/parameter-optiongroup.h8
-rw-r--r--src/extension/prefdialog/parameter-string.cpp4
-rw-r--r--src/extension/prefdialog/parameter-string.h5
-rw-r--r--src/extension/prefdialog/parameter.cpp19
-rw-r--r--src/extension/prefdialog/parameter.h51
-rw-r--r--src/extension/prefdialog/widget-label.h2
-rw-r--r--src/extension/prefdialog/widget.h7
-rw-r--r--src/ui/selected-color.h2
16 files changed, 85 insertions, 68 deletions
diff --git a/src/extension/prefdialog/parameter-bool.cpp b/src/extension/prefdialog/parameter-bool.cpp
index e1f242643..f3436374b 100644
--- a/src/extension/prefdialog/parameter-bool.cpp
+++ b/src/extension/prefdialog/parameter-bool.cpp
@@ -37,7 +37,7 @@ ParamBool::ParamBool(Inkscape::XML::Node *xml, Inkscape::Extension::Extension *e
}
}
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
_value = prefs->getBool(extension_pref_root + pref_name, _value);
g_free(pref_name);
@@ -47,7 +47,7 @@ bool ParamBool::set( bool in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node
{
_value = in;
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
prefs->setBool(extension_pref_root + pref_name, _value);
g_free(pref_name);
@@ -74,7 +74,7 @@ public:
*
* @param param Which parameter to adjust on changing the check button
*/
- ParamBoolCheckButton (ParamBool *param, gchar *label, SPDocument *doc, Inkscape::XML::Node *node, sigc::signal<void> *changeSignal) :
+ ParamBoolCheckButton (ParamBool *param, char *label, SPDocument *doc, Inkscape::XML::Node *node, sigc::signal<void> *changeSignal) :
Gtk::CheckButton(label), _pref(param), _doc(doc), _node(node), _changeSignal(changeSignal) {
this->set_active(_pref->get(nullptr, nullptr) /**\todo fix */);
this->signal_toggled().connect(sigc::mem_fun(this, &ParamBoolCheckButton::on_toggle));
diff --git a/src/extension/prefdialog/parameter-color.cpp b/src/extension/prefdialog/parameter-color.cpp
index adb6c58a9..f99a2b54b 100644
--- a/src/extension/prefdialog/parameter-color.cpp
+++ b/src/extension/prefdialog/parameter-color.cpp
@@ -40,7 +40,7 @@ ParamColor::ParamColor(Inkscape::XML::Node *xml, Inkscape::Extension::Extension
}
}
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
_value = prefs->getUInt(extension_pref_root + pref_name, _value);
g_free(pref_name);
@@ -58,7 +58,7 @@ ParamColor::~ParamColor()
_color_released.disconnect();
}
-guint32 ParamColor::set(guint32 in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/)
+unsigned int ParamColor::set(unsigned int in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/)
{
_color.setValue(in);
@@ -86,7 +86,7 @@ Gtk::Widget *ParamColor::get_widget( SPDocument * /*doc*/, Inkscape::XML::Node *
void ParamColor::_onColorChanged()
{
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
prefs->setUInt(extension_pref_root + pref_name, _color.value());
g_free(pref_name);
diff --git a/src/extension/prefdialog/parameter-color.h b/src/extension/prefdialog/parameter-color.h
index 552266e43..81df703ea 100644
--- a/src/extension/prefdialog/parameter-color.h
+++ b/src/extension/prefdialog/parameter-color.h
@@ -32,21 +32,22 @@ private:
Inkscape::UI::SelectedColor _color;
sigc::connection _color_changed;
sigc::connection _color_released;
+
public:
ParamColor(Inkscape::XML::Node *xml, Inkscape::Extension::Extension *ext);
~ParamColor() override;
/** Returns \c _value, with a \i const to protect it. */
- guint32 get( SPDocument const * /*doc*/, Inkscape::XML::Node const * /*node*/ ) const { return _color.value(); }
+ unsigned int get(SPDocument const * /*doc*/, Inkscape::XML::Node const * /*node*/ ) const { return _color.value(); }
- guint32 set (guint32 in, SPDocument *doc, Inkscape::XML::Node *node);
+ unsigned int set(unsigned int in, SPDocument *doc, Inkscape::XML::Node *node);
Gtk::Widget *get_widget(SPDocument *doc, Inkscape::XML::Node *node, sigc::signal<void> *changeSignal) override;
// Explicitly call superclass version to avoid method being hidden.
void string(std::list <std::string> &list) const override { return InxParameter::string(list); }
- void string (std::string &string) const override;
+ void string(std::string &string) const override;
sigc::signal<void> *_changeSignal;
diff --git a/src/extension/prefdialog/parameter-float.cpp b/src/extension/prefdialog/parameter-float.cpp
index cdb5a4dd9..f376de560 100644
--- a/src/extension/prefdialog/parameter-float.cpp
+++ b/src/extension/prefdialog/parameter-float.cpp
@@ -36,7 +36,7 @@ ParamFloat::ParamFloat(Inkscape::XML::Node *xml, Inkscape::Extension::Extension
}
}
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
_value = prefs->getDouble(extension_pref_root + pref_name, _value);
g_free(pref_name);
@@ -99,7 +99,7 @@ float ParamFloat::set(float in, SPDocument * /*doc*/, Inkscape::XML::Node * /*no
_value = _min;
}
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
prefs->setDouble(extension_pref_root + pref_name, _value);
g_free(pref_name);
diff --git a/src/extension/prefdialog/parameter-int.cpp b/src/extension/prefdialog/parameter-int.cpp
index 503fa9b43..53e858bdb 100644
--- a/src/extension/prefdialog/parameter-int.cpp
+++ b/src/extension/prefdialog/parameter-int.cpp
@@ -37,7 +37,7 @@ ParamInt::ParamInt(Inkscape::XML::Node *xml, Inkscape::Extension::Extension *ext
}
}
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
_value = prefs->getInt(extension_pref_root + pref_name, _value);
g_free(pref_name);
@@ -92,7 +92,7 @@ int ParamInt::set(int in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/)
_value = _min;
}
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
prefs->setInt(extension_pref_root + pref_name, _value);
g_free(pref_name);
diff --git a/src/extension/prefdialog/parameter-notebook.cpp b/src/extension/prefdialog/parameter-notebook.cpp
index 0d64a4c32..31cf5ba4a 100644
--- a/src/extension/prefdialog/parameter-notebook.cpp
+++ b/src/extension/prefdialog/parameter-notebook.cpp
@@ -101,7 +101,7 @@ Gtk::Widget *ParamNotebook::ParamNotebookPage::get_widget(SPDocument *doc, Inksc
parameter_widget->set_margin_start(indent *GUI_INDENTATION);
vbox->pack_start(*parameter_widget, false, false, 0);
- const gchar *tooltip = parameter->get_tooltip();
+ const char *tooltip = parameter->get_tooltip();
if (tooltip) {
parameter_widget->set_tooltip_text(tooltip);
}
@@ -114,7 +114,7 @@ Gtk::Widget *ParamNotebook::ParamNotebookPage::get_widget(SPDocument *doc, Inksc
}
/** Search the parameter's name in the page content. */
-InxParameter *ParamNotebook::ParamNotebookPage::get_param(const gchar *name)
+InxParameter *ParamNotebook::ParamNotebookPage::get_param(const char *name)
{
if (name == nullptr) {
throw Extension::param_not_exist();
@@ -161,7 +161,7 @@ ParamNotebook::ParamNotebook(Inkscape::XML::Node *xml, Inkscape::Extension::Exte
}
// get value (initialize with value of first page if pref is empty)
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
_value = prefs->getString(extension_pref_root + pref_name);
g_free(pref_name);
@@ -201,7 +201,7 @@ const Glib::ustring& ParamNotebook::set(const int in, SPDocument * /*doc*/, Inks
if (page) {
_value = page->_name;
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
prefs->setString(extension_pref_root + pref_name, _value);
g_free(pref_name);
@@ -269,7 +269,7 @@ void NotebookWidget::changed_page(Gtk::Widget * /*page*/, guint pagenum)
}
/** Search the parameter's name in the notebook content. */
-InxParameter *ParamNotebook::get_param(const gchar *name)
+InxParameter *ParamNotebook::get_param(const char *name)
{
if (name == nullptr) {
throw Extension::param_not_exist();
diff --git a/src/extension/prefdialog/parameter-notebook.h b/src/extension/prefdialog/parameter-notebook.h
index cbf7e8625..a50ad1dca 100644
--- a/src/extension/prefdialog/parameter-notebook.h
+++ b/src/extension/prefdialog/parameter-notebook.h
@@ -16,17 +16,17 @@
* Released under GNU GPL v2+, read the file 'COPYING' for more information.
*/
+#include "parameter.h"
+
#include <vector>
-#include "parameter.h"
+#include <glibmm/ustring.h>
+
namespace Gtk {
class Widget;
}
-namespace Glib {
-class ustring;
-}
namespace Inkscape {
namespace Extension {
@@ -55,8 +55,8 @@ private:
Gtk::Widget *get_widget(SPDocument *doc, Inkscape::XML::Node *node, sigc::signal<void> *changeSignal) override;
void paramString (std::list <std::string> &list);
- gchar *get_text () {return _text;};
- InxParameter *get_param (const gchar *name) override;
+ char *get_text () {return _text;};
+ InxParameter *get_param (const char *name) override;
}; /* class ParamNotebookPage */
/** A table to store the pages with parameters for this notebook.
@@ -79,7 +79,7 @@ public:
void string(std::string &string) const override {return InxParameter::string(string);}
- InxParameter *get_param (const gchar *name) override;
+ InxParameter *get_param (const char *name) override;
const Glib::ustring& get (const SPDocument * /*doc*/, const Inkscape::XML::Node * /*node*/) { return _value; }
const Glib::ustring& set (const int in, SPDocument *doc, Inkscape::XML::Node *node);
diff --git a/src/extension/prefdialog/parameter-optiongroup.cpp b/src/extension/prefdialog/parameter-optiongroup.cpp
index 6b6d3463b..99775d8fc 100644
--- a/src/extension/prefdialog/parameter-optiongroup.cpp
+++ b/src/extension/prefdialog/parameter-optiongroup.cpp
@@ -67,7 +67,7 @@ ParamOptionGroup::ParamOptionGroup(Inkscape::XML::Node *xml, Inkscape::Extension
}
// get value (initialize with value of first choice if pref is empty)
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
_value = prefs->getString(extension_pref_root + pref_name);
g_free(pref_name);
@@ -116,7 +116,7 @@ const Glib::ustring& ParamOptionGroup::set(Glib::ustring in, SPDocument *doc, In
{
if (contains(in, doc, node)) {
_value = in;
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
prefs->setString(extension_pref_root + pref_name, _value.c_str());
g_free(pref_name);
diff --git a/src/extension/prefdialog/parameter-optiongroup.h b/src/extension/prefdialog/parameter-optiongroup.h
index 96599c518..225fcb2b4 100644
--- a/src/extension/prefdialog/parameter-optiongroup.h
+++ b/src/extension/prefdialog/parameter-optiongroup.h
@@ -18,18 +18,16 @@
* Released under GNU GPL v2+, read the file 'COPYING' for more information.
*/
+#include "parameter.h"
+
#include <vector>
-#include "parameter.h"
+#include <glibmm/ustring.h>
namespace Gtk {
class Widget;
}
-namespace Glib {
-class ustring;
-}
-
namespace Inkscape {
namespace Extension {
diff --git a/src/extension/prefdialog/parameter-string.cpp b/src/extension/prefdialog/parameter-string.cpp
index 63d1a7fab..2836f1c99 100644
--- a/src/extension/prefdialog/parameter-string.cpp
+++ b/src/extension/prefdialog/parameter-string.cpp
@@ -28,7 +28,7 @@ ParamString::ParamString(Inkscape::XML::Node *xml, Inkscape::Extension::Extensio
value = xml->firstChild()->content();
}
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
_value = prefs->getString(extension_pref_root + pref_name);
g_free(pref_name);
@@ -73,7 +73,7 @@ const Glib::ustring& ParamString::set(const Glib::ustring in, SPDocument * /*doc
{
_value = in;
- gchar *pref_name = this->pref_name();
+ char *pref_name = this->pref_name();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
prefs->setString(extension_pref_root + pref_name, _value);
g_free(pref_name);
diff --git a/src/extension/prefdialog/parameter-string.h b/src/extension/prefdialog/parameter-string.h
index fdf20db72..ac5d98943 100644
--- a/src/extension/prefdialog/parameter-string.h
+++ b/src/extension/prefdialog/parameter-string.h
@@ -12,9 +12,8 @@
#include "parameter.h"
-namespace Glib {
-class ustring;
-}
+#include <glibmm/ustring.h>
+
namespace Inkscape {
namespace Extension {
diff --git a/src/extension/prefdialog/parameter.cpp b/src/extension/prefdialog/parameter.cpp
index 9bb87f7a2..61cf8c662 100644
--- a/src/extension/prefdialog/parameter.cpp
+++ b/src/extension/prefdialog/parameter.cpp
@@ -55,6 +55,9 @@ public:
{
return this->WidgetLabel::get_widget(doc, node, changeSignal);
}
+
+ // Well, no, I don't have a value! That's why I should not be an InxParameter!
+ void string(std::string &/*string*/) const override {}
};
@@ -149,7 +152,7 @@ bool InxParameter::get_optiongroup_contains(const char *value, SPDocument const
return param->contains(value, doc, node);
}
-guint32 InxParameter::get_color(const SPDocument* doc, Inkscape::XML::Node const *node) const
+unsigned int InxParameter::get_color(const SPDocument* doc, Inkscape::XML::Node const *node) const
{
ParamColor const *param = dynamic_cast<ParamColor const *>(this);
if (!param) {
@@ -200,7 +203,7 @@ const char *InxParameter::set_optiongroup(const char *in, SPDocument *doc, Inksc
return param->set(in, doc, node).c_str();
}
-guint32 InxParameter::set_color(guint32 in, SPDocument *doc, Inkscape::XML::Node *node)
+unsigned int InxParameter::set_color(unsigned int in, SPDocument *doc, Inkscape::XML::Node *node)
{
ParamColor*param = dynamic_cast<ParamColor *>(this);
if (param == nullptr)
@@ -256,15 +259,16 @@ InxParameter::~InxParameter()
_description = nullptr;
}
-gchar *InxParameter::pref_name() const
+char *InxParameter::pref_name() const
{
return g_strdup_printf("%s.%s", _extension->get_id(), _name);
}
-/** If I'm not sure which it is, just don't return a value. */
void InxParameter::string(std::string &/*string*/) const
{
- // TODO investigate clearing the target string.
+ // if we end up here we're missing a definition of ::string() in one of the subclasses
+ g_critical("InxParameter::string called from parameter '%s' in extension '%s'", _name, _extension->get_id());
+ g_assert_not_reached();
}
void InxParameter::string(std::list <std::string> &list) const
@@ -282,12 +286,13 @@ void InxParameter::string(std::list <std::string> &list) const
}
}
-InxParameter *InxParameter::get_param(const gchar */*name*/)
+
+InxParameter *InxParameter::get_param(const char */*name*/)
{
return nullptr;
}
-Glib::ustring const extension_pref_root = "/extensions/";
+const Glib::ustring InxParameter::extension_pref_root = "/extensions/";
} // namespace Extension
} // namespace Inkscape
diff --git a/src/extension/prefdialog/parameter.h b/src/extension/prefdialog/parameter.h
index c7e6acb86..b5f662ebc 100644
--- a/src/extension/prefdialog/parameter.h
+++ b/src/extension/prefdialog/parameter.h
@@ -14,21 +14,18 @@
#ifndef SEEN_INK_EXTENSION_PARAM_H__
#define SEEN_INK_EXTENSION_PARAM_H__
-#include "widget.h" // TODO: Necessary?
+#include "widget.h"
+
+
+namespace Glib {
+class ustring;
+}
namespace Inkscape {
namespace Extension {
/**
- * The root directory in the preferences database for extension-related parameters.
- *
- * The directory path has both a leading and a trailing slash, so that extension_pref_root + pref_name works
- * without having to append a separator.
- */
-extern Glib::ustring const extension_pref_root;
-
-/**
* A class to represent the parameter of an extension.
*
* This is really a super class that allows them to abstract all
@@ -41,7 +38,7 @@ public:
InxParameter(Inkscape::XML::Node *in_repr,
Inkscape::Extension::Extension *ext);
- virtual ~InxParameter();
+ ~InxParameter() override;
/** Wrapper to cast to the object and use its function. */
bool get_bool(SPDocument const *doc, Inkscape::XML::Node const *node) const;
@@ -60,7 +57,7 @@ public:
bool get_optiongroup_contains(const char *value, SPDocument const *doc, Inkscape::XML::Node const *node) const;
/** Wrapper to cast to the object and use it's function. */
- guint32 get_color(SPDocument const *doc, Inkscape::XML::Node const *node) const;
+ unsigned int get_color(SPDocument const *doc, Inkscape::XML::Node const *node) const;
/** Wrapper to cast to the object and use it's function. */
bool set_bool(bool in, SPDocument *doc, Inkscape::XML::Node *node);
@@ -78,9 +75,9 @@ public:
const char *set_optiongroup(const char *in, SPDocument *doc, Inkscape::XML::Node *node);
/** Wrapper to cast to the object and use it's function. */
- guint32 set_color(guint32 in, SPDocument *doc, Inkscape::XML::Node *node);
+ unsigned int set_color(unsigned int in, SPDocument *doc, Inkscape::XML::Node *node);
- gchar const *name() const { return _name; }
+ char const *name() const { return _name; }
/**
* This function creates a parameter that can be used later. This
@@ -108,18 +105,23 @@ public:
*/
static InxParameter *make(Inkscape::XML::Node *in_repr, Inkscape::Extension::Extension *in_ext);
- const gchar *get_tooltip() const override { return _description; }
+ const char *get_tooltip() const override { return _description; }
virtual void string(std::list <std::string> &list) const;
/**
* Gets the current value of the parameter in a string form.
- * @return A string with the 'value'.
+ *
+ * @return String representation of the parameter's value.
+ *
+ * \internal Must be implemented by all derived classes.
+ * Unfortunately it seems we can't make this a pure virtual function,
+ * as InxParameter is not supposed to be abstract.
*/
virtual void string(std::string &string) const;
/** All the code in Notebook::get_param to get the notebook content. */
- virtual InxParameter *get_param(gchar const *name);
+ virtual InxParameter *get_param(char const *name);
/** Recommended spacing between the widgets making up a single Parameter (e.g. label and input) (in px) */
@@ -139,13 +141,22 @@ public:
protected:
/** The name of this parameter. */
- gchar *_name = nullptr;
+ char *_name = nullptr;
/** Parameter text to show as the GUI label. */
- gchar *_text = nullptr;
+ char *_text = nullptr;
/** Extended description of the parameter (currently shown as tooltip on hover). */
- gchar *_description = nullptr;
+ char *_description = nullptr;
+
+
+ /**
+ * The root directory in the preferences database for extension-related parameters.
+ *
+ * The directory path has both a leading and a trailing slash, so that extension_pref_root + pref_name works
+ * without having to append a separator.
+ */
+ static const Glib::ustring extension_pref_root;
/* **** member functions **** */
@@ -153,7 +164,7 @@ protected:
/**
* Build the name to write the parameter from the extension's ID and the name of this parameter.
*/
- gchar *pref_name() const;
+ char *pref_name() const;
};
} // namespace Extension
diff --git a/src/extension/prefdialog/widget-label.h b/src/extension/prefdialog/widget-label.h
index 57ffc5cb1..b99e3d798 100644
--- a/src/extension/prefdialog/widget-label.h
+++ b/src/extension/prefdialog/widget-label.h
@@ -17,6 +17,8 @@
#include "widget.h"
+#include <glibmm/ustring.h>
+
class SPDocument;
namespace Gtk {
diff --git a/src/extension/prefdialog/widget.h b/src/extension/prefdialog/widget.h
index 95285e2d6..ba688a70b 100644
--- a/src/extension/prefdialog/widget.h
+++ b/src/extension/prefdialog/widget.h
@@ -17,7 +17,6 @@
#include <vector>
#include <sigc++/sigc++.h>
-#include <glibmm/ustring.h>
class SPDocument;
@@ -64,7 +63,7 @@ public:
virtual Gtk::Widget *get_widget(SPDocument *doc, Inkscape::XML::Node *node, sigc::signal<void> *changeSignal);
- virtual const gchar *get_tooltip() const { return nullptr; } // tool-tips are exclusive to InxParameters for now
+ virtual const char *get_tooltip() const { return nullptr; } // tool-tips are exclusive to InxParameters for now
/** Indicates if the widget is hidden or not */
bool get_hidden() const { return _hidden; }
@@ -98,13 +97,13 @@ protected:
int _indent = 0;
/** Appearance of the Widget (not used by all Widgets). */
- gchar *_appearance = nullptr;
+ char *_appearance = nullptr;
/** Is Widget translatable? */
Translatable _translatable = UNSET;
/** context for translation of translatable strings. */
- gchar *_context = nullptr;
+ char *_context = nullptr;
/* **** member functions **** */
diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h
index 6bb426b7f..1a00fc5cf 100644
--- a/src/ui/selected-color.h
+++ b/src/ui/selected-color.h
@@ -14,7 +14,9 @@
#ifndef SEEN_SELECTED_COLOR
#define SEEN_SELECTED_COLOR
+#include <glib.h>
#include <sigc++/signal.h>
+
#include "color.h"
namespace Gtk