Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ColorData
- {
- public:
- void setColor();
- SPColor getColor() const;
- void setAlpha( gfloat alpha );
- gfloat getAlpha() const;
- void setColorAlpha( const SPColor& color, gfloat alpha, bool emit = false );
- void getColorAlpha( SPColor &color, gfloat &alpha ) const;
- void setSubmode( guint submode );
- guint getSubmode() const;
- Gtk::Widget *getColorWheelSelector() {
- ColorWheelSelector* selector = new ColorWheelSelector(*this);
- _signal_update_internals.connect(sigc::mem_fun(selector, &ColorWheelSelector::on_update_internals));
- //I cannot make up a way to store sigc::connection in case of disconnecting ColorWheelSelector
- //sth like g_signal_handlers_disconnect_matched would be great
- return selector;
- }
- Gtk::Widget *getColorICCSelector();
- Gtk::Widget *getColorScales();
- Gtk::Widget *getColorNotebook();
- private:
- sigc::signal _signal_update_internals;
- };
- ColorData::setColor( const SPColor& color ) {
- _color = color;
- _signal_update_internals.emit();
- }
- class ColorWheelSelector : public Gtk::Widget
- {
- ColorWheelSelector(ColorData& data);
- void on_update_internals();
- // all other necessary Gtk::Widget methods
- }
- class ColorSelectorUser
- {
- private:
- ColorData _selected_color_data;
- public:
- ColorSelectorUser() {
- Gtk::Widget *wheel = Gtk::manage(_selected_color_data.getColorWheelSelector());
- Gtk::Widget *scales = Gtk::manage(_selected_color_data.getColorScalesSelector());
- //add wheel to a container and forget
- //add scales to a container and forget
- }
- void some_method_involving_setting_color {
- _selected_color_data.setColor(color);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement