Advertisement
Guest User

Untitled

a guest
May 25th, 2014
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. class ColorData
  2. {
  3. public:
  4.     void setColor();
  5.     SPColor getColor() const;
  6.  
  7.     void setAlpha( gfloat alpha );
  8.     gfloat getAlpha() const;
  9.  
  10.     void setColorAlpha( const SPColor& color, gfloat alpha, bool emit = false );
  11.     void getColorAlpha( SPColor &color, gfloat &alpha ) const;
  12.  
  13.     void setSubmode( guint submode );
  14.     guint getSubmode() const;
  15.  
  16.     Gtk::Widget *getColorWheelSelector() {
  17.        ColorWheelSelector* selector = new ColorWheelSelector(*this);
  18.        _signal_update_internals.connect(sigc::mem_fun(selector, &ColorWheelSelector::on_update_internals));
  19.        //I cannot make up a way to store sigc::connection in case of disconnecting ColorWheelSelector
  20.        //sth like g_signal_handlers_disconnect_matched would be great
  21.        return selector;
  22.     }
  23.  
  24.     Gtk::Widget *getColorICCSelector();
  25.     Gtk::Widget *getColorScales();
  26.     Gtk::Widget *getColorNotebook();
  27.  
  28. private:
  29.     sigc::signal _signal_update_internals;
  30. };
  31.  
  32. ColorData::setColor( const SPColor& color ) {
  33.    _color = color;
  34.    _signal_update_internals.emit();
  35. }
  36.  
  37.  
  38.  
  39. class ColorWheelSelector : public Gtk::Widget
  40. {
  41.     ColorWheelSelector(ColorData& data);
  42.  
  43.     void on_update_internals();
  44.  
  45.     // all other necessary Gtk::Widget methods
  46. }
  47.  
  48.  
  49.  
  50. class ColorSelectorUser
  51. {
  52. private:
  53.     ColorData _selected_color_data;
  54.  
  55. public:
  56.     ColorSelectorUser() {
  57.         Gtk::Widget *wheel = Gtk::manage(_selected_color_data.getColorWheelSelector());
  58.         Gtk::Widget *scales = Gtk::manage(_selected_color_data.getColorScalesSelector());
  59.                
  60.         //add wheel to a container and forget
  61.         //add scales to a container and forget
  62.     }
  63.  
  64.     void some_method_involving_setting_color {
  65.        _selected_color_data.setColor(color);
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement