X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fdialogs%2Fswatches.h;h=02861781f8e2746aecca0e8f9698713fdc534109;hb=6d7d846dbf27d17b82110d99015a85cff809a789;hp=fea2b83094a4043461086115b40a5f58bf10a895;hpb=1bdb42eddb21aee3dc7fb58ff67ce9b2ec482763;p=inkscape.git diff --git a/src/dialogs/swatches.h b/src/dialogs/swatches.h index fea2b8309..02861781f 100644 --- a/src/dialogs/swatches.h +++ b/src/dialogs/swatches.h @@ -17,18 +17,24 @@ #include "ui/widget/panel.h" #include "ui/previewholder.h" +#include "dialogs/eek-color-def.h" + +using eek::ColorDef; namespace Inkscape { namespace UI { namespace Dialogs { +void _loadPaletteFile( gchar const *filename ); + /** * The color swatch you see on screen as a clickable box. */ class ColorItem : public Inkscape::UI::Previewable { + friend void _loadPaletteFile( gchar const *filename ); public: ColorItem( unsigned int r, unsigned int g, unsigned int b, Glib::ustring& name ); @@ -37,15 +43,42 @@ public: virtual ColorItem &operator=(ColorItem const &other); virtual Gtk::Widget* getPreview(PreviewStyle style, ViewType view, - Gtk::BuiltinIconSize size); + Inkscape::IconSize size); void buttonClicked(bool secondary = false); - unsigned int _r; - unsigned int _g; - unsigned int _b; - Glib::ustring _name; - + + ColorDef def; + private: + static void _dropDataIn( GtkWidget *widget, + GdkDragContext *drag_context, + gint x, gint y, + GtkSelectionData *data, + guint info, + guint event_time, + gpointer user_data); + + static void _dragGetColorData( GtkWidget *widget, + GdkDragContext *drag_context, + GtkSelectionData *data, + guint info, + guint time, + gpointer user_data); + + static void _wireMagicColors( void* p ); + static void _colorDefChanged(void* data); + + void _linkTint( ColorItem& other, int percent ); + void _linkTone( ColorItem& other, int percent, int grayLevel ); + Gtk::Tooltips tips; + std::vector _previews; + + bool _isLive; + bool _linkIsTone; + int _linkPercent; + int _linkGray; + ColorItem* _linkSrc; + std::vector _listeners; }; @@ -56,12 +89,11 @@ private: class SwatchesPanel : public Inkscape::UI::Widget::Panel { public: - SwatchesPanel(); + SwatchesPanel(gchar const* prefsPath = "dialogs.swatches"); virtual ~SwatchesPanel(); static SwatchesPanel& getInstance(); - - void Temp(); + virtual void setOrientation( Gtk::AnchorType how ); protected: virtual void _handleAction( int setId, int itemId );