Laxkit  0.0.7.1
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
Laxkit::ColorBox Class Reference

A control to select an RGBA color, with each mouse button corresponding to r, g, and b. More...

Inheritance diagram for Laxkit::ColorBox:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 ColorBox (anXWindow *parnt, const char *nname, const char *ntitle, unsigned long nstyle, int nx, int ny, int nw, int nh, int brder, anXWindow *prev, unsigned long owner, const char *mes, int ctype, int nmax, int nstep, int c0, int c1, int c2, int c3=-1, int c4=-1, NewWindowObject *newcolorselector=NULL)
virtual const charwhattype ()
virtual const chartooltip (const char *newtip)
virtual const chartooltip (int mouseid=0)
 Return a tip saying what the current mouse maps are.
virtual int init ()
virtual void Refresh ()
virtual int LBDown (int x, int y, unsigned int state, int count, const LaxMouse *d)
 Change red by default.
virtual int LBUp (int x, int y, unsigned int state, const LaxMouse *d)
virtual int MBDown (int x, int y, unsigned int state, int count, const LaxMouse *d)
 Change green by default.
virtual int MBUp (int x, int y, unsigned int state, const LaxMouse *d)
virtual int RBDown (int x, int y, unsigned int state, int count, const LaxMouse *d)
 Change blue by default.
virtual int RBUp (int x, int y, unsigned int state, const LaxMouse *d)
virtual int MouseMove (int mx, int my, unsigned int state, const LaxMouse *d)
virtual int CharInput (unsigned int ch, const char *buffer, int len, unsigned int state, const LaxKeyboard *d)
virtual int Event (const EventData *e, const char *mes)
virtual int PopupColorSelector ()
virtual void Updated ()
- Public Member Functions inherited from Laxkit::anXWindow
 anXWindow (anXWindow *parnt, const char *nname, const char *ntitle, unsigned long nstyle, int xx, int yy, int ww, int hh, int brder, anXWindow *prev, unsigned long nowner, const char *nsend)
 Constructor.
virtual ~anXWindow ()
 anXWindow destructor. Its X window should have been XDestroy'd before here.
virtual const charWindowTitle (int which=0)
 Return basically the name of the window.
virtual void WindowTitle (const char *newtitle)
 Change the title of the window. This text would usually be displayed in the bar provided by a window manager.
virtual anXWindowfindChildWindowByTitle (const char *title)
 Find the first immediate child window that has win_title==title.
virtual anXWindowfindChildWindowByName (const char *name)
 Find the first immediate child window that has win_name==name.
virtual int Grayed ()
 Return whether this window is grayed.
virtual int Grayed (int g)
 Set the gray state of this window. Returns Grayed(void).
virtual int preinit ()
virtual int close ()
 Called by anXApp from anXApp::destroywindow() when a window is to be destroyed.
virtual int Idle (int tid=0)
 anXWindow::Idle() is an empty placeholeder. Just returns 1.
virtual DisplayerMakeCurrent ()
virtual int Needtodraw ()
 Default is to return needtodraw.
virtual void Needtodraw (int nntd)
 If 0, then the window does not need refreshing. Otherwise it does.
virtual int deletenow ()
 Return whether the window is allowed to be deleted.
virtual int setWinStyle (unsigned int stylebit, int newvalue)
 Control various window related basic styling of win_style.
virtual int getWinStyle (unsigned int stylebit)
 Currently, simply return win_style&stylebit.
virtual void installColors (WindowColors *newcolors)
 Dec_count old and inc_count new.
virtual ShortcutHandlerGetShortcuts ()
 Return a ShortcutHandler that contains stacks of bound shortcuts and possible window actions.
virtual int PerformAction (int action_number)
virtual int ExposeChange (ScreenEventData *e)
 Default behavior on Expose events is to call Needtodraw(1).
virtual int DeviceChange (const DeviceEventData *e)
virtual int KeyUp (unsigned int ch, unsigned int state, const LaxKeyboard *kb)
 Called when a key is released.
virtual int ButtonDown (int button, int x, int y, unsigned int state, int count, const LaxMouse *m)
virtual int ButtonUp (int button, int x, int y, unsigned int state, const LaxMouse *m)
virtual int WheelUp (int x, int y, unsigned int state, int count, const LaxMouse *d)
 The wheel mouse rolling up. Default is just to return 1.
virtual int WheelDown (int x, int y, unsigned int state, int count, const LaxMouse *d)
 The wheel mouse rolling down. Default is just to return 1.
virtual int FocusOn (const FocusChangeData *e)
 Increment win_active, and highlights the window's border, if the event refers to this window.
virtual int FocusOff (const FocusChangeData *e)
 Decrements win_active, and de-highlights the window's border if win_active==0, if event is a real focus off.
virtual int MoveResize (int nx, int ny, int nw, int nh)
 Move and resize the window.
virtual int Resize (int nw, int nh)
 Resize with new nw, and nh.
virtual void contentChanged ()
 Windows may call this when their contents change.
virtual void selectionChanged ()
 Windows may call this when their selections change.
virtual anXWindowGetController ()
 Return the window most relevant for tab control loops.
virtual int SelectNextControl (const LaxDevice *d)
 Transfer focus to nextcontrol.
virtual int SelectPrevControl (const LaxDevice *d)
 Transfer the focus to prevcontrol.
virtual void ControlActivation (int on)
 Do special activation or not when controls are activated by tabbing.
virtual int AddPrevControl (anXWindow *prev)
virtual int AddNextControl (anXWindow *next)
virtual int ConnectControl (anXWindow *towhat, int after=1)
 Connect towhat to this. Used for tab loops.
virtual int CloseControlLoop ()
 Close a tab loop.
virtual void SetOwner (anXWindow *nowner, const char *mes=NULL, unsigned int send_mask=0)
 Set the new owner and control message.
virtual void SetOwner (unsigned long nowner_id, const char *mes=NULL, unsigned int send_mask=0)
virtual void dump_out (FILE *f, int indent, int what, anObject *context)
 Simple dumping function.
virtual LaxFiles::Attributedump_out_atts (LaxFiles::Attribute *att, int what, anObject *context)
virtual void dump_in_atts (LaxFiles::Attribute *att, int flag, anObject *context)
- Public Member Functions inherited from Laxkit::Tagged
virtual int HasTag (const char *tag, int casematters)
 Return whether the tag exists.
virtual int NumberOfTags ()
 Return the number of tags, strangely enough.
virtual const charGetTag (int i)
 Return const pointer to the tag text for tag number i, where i==0 is the first tag.
virtual charGetAllTags ()
 Return a new char[] with a space separated list of all the tags.
virtual int InsertTags (const char *tags, int casematters)
 Insert tags from a string such as 'tag1 tag2 tag3 "tag with spaces" tag4'.
virtual int InsertTag (const char *tag, int casematters)
 Insert tag if it doesn't exist already.
virtual int RemoveTag (const char *tag)
 The tag must be an exact match.
virtual int RemoveTag (int i)
 Remove tag number i. i must be in range [0..NumberOfTags()-1].
virtual void FlushTags ()
- Public Member Functions inherited from LaxFiles::DumpUtility
virtual void dump_in (FILE *f, int indent, int what, Laxkit::anObject *loadcontext, Attribute **att)
 Read in a file segment as an Attribute, and pass parsing duties to dump_in_atts.
virtual ~DumpUtility ()
 Empty virtual destructor.
- Public Member Functions inherited from Laxkit::aDrawable
 aDrawable (Drawable d=0)
virtual int DrawableType ()
virtual int ValidDrawable ()
- Public Member Functions inherited from Laxkit::ColorBase
 ColorBase (int ctype, int nmax, int c0, int c1, int c2, int c3=-1, int c4=-1)
virtual int ColorChanged ()
 Return 1 if the color array does not match the oldcolor array. Usually called after button up, compared to button down.
virtual void Clamp ()
 For each field, make sure it is in range [0..max].
virtual void RestoreColor ()
 Revert colors to oldcolor.
virtual void SetMax (int newmax)
virtual void SetRGB (int r, int g, int b, int a=-1)
 Set the channel when the value is >= 0.
virtual void SetGray (int g, int a=-1)
 Set the channel when the value is >= 0.
virtual void SetCMYK (int c, int m, int y, int k, int a=-1)
 Set the channel when the value is >= 0.
virtual void SetHSV (int h, int s, int v, int a=-1)
virtual void SetRGB (double r, double g, double b, double a=-1)
virtual void SetGray (double g, double a=-1)
virtual void SetCMYK (double c, double m, double y, double k, double a=-1)
virtual void SetHSV (double h, double s, double v, double a=-1)
virtual void CMYK (double *cmyk)
 Fill cmyk[4] with double values.
virtual void RGB (double *rgb)
 Fill rgb[3] with double values.
virtual void HSV (double *hsv)
 Fill hsv[3] with double values.
virtual charHexValue (char *buffer)
 buffer must be at least 10 characters long, or you will segfault.
virtual int SetHexValue (const char *hex)
virtual int Red ()
virtual int Red (int r)
virtual double Redf (double r)
virtual double Redf ()
virtual int Green ()
virtual int Green (int g)
virtual double Greenf (double g)
virtual double Greenf ()
virtual int Blue ()
virtual int Blue (int b)
virtual double Bluef (double b)
virtual double Bluef ()
virtual int Gray ()
virtual int Gray (int g)
virtual double Grayf (double g)
virtual double Grayf ()
virtual int Cyan ()
virtual int Cyan (int c)
virtual double Cyanf (double c)
virtual double Cyanf ()
virtual int Magenta ()
virtual int Magenta (int m)
virtual double Magentaf (double m)
virtual double Magentaf ()
virtual int Yellow ()
virtual int Yellow (int y)
virtual double Yellowf (double y)
virtual double Yellowf ()
virtual int Black ()
virtual int Black (int k)
virtual double Blackf (double k)
virtual double Blackf ()
virtual int Alpha ()
virtual int Alpha (int a)
virtual double Alphaf (double a)
virtual double Alphaf ()
virtual int Hue ()
virtual int Hue (int h)
virtual double Huef (double h)
virtual double Huef ()
virtual int Saturation ()
virtual int Saturation (int s)
virtual double Saturationf (double s)
virtual double Saturationf ()
virtual int Value ()
virtual int Value (int v)
virtual double Valuef (double v)
virtual double Valuef ()

Public Attributes

inttopcolor
int currentid
int step
- Public Attributes inherited from Laxkit::anXWindow
WindowColorswin_colors
anXAppapp
charwin_name
 An arbitrary string to be used as an id.
charwin_title
 The title of the window.
anXWindowwin_parent
int win_screen
unsigned long win_style
int win_x
int win_y
int win_w
int win_h
unsigned int win_border
int win_pointer_shape
 Identifier for a stock mouse shape.
char win_on
 Nonzero if the window is mapped.
char win_active
 Should be positive when the window has a keyboard focus, 0 otherwise.
unsigned long win_owner
 Who gets control messages from this window.
unsigned int win_owner_send_mask
charwin_sendthis
 The type of message that gets sent to owner.
anXWindownextcontrol
anXWindowprevcontrol
- Public Attributes inherited from Laxkit::Tagged
int sorttags
- Public Attributes inherited from Laxkit::ColorBase
int colortype
int max
int oldcolor [5]
int color1 [5]
int color2 [5]
intcolors

Protected Member Functions

virtual int send ()
- Protected Member Functions inherited from Laxkit::anXWindow
virtual int deletekid (anXWindow *w)
 Purges child anXWindows from window's child stack.
virtual void SwapBuffers ()
 Swap buffers. This should be called from Refresh() if VIEWPORT_BACK_BUFFER is set in win_style.
virtual void SetupBackBuffer ()
 Initialize the backbuffer.

Protected Attributes

int colormap [9]
ButtonDownInfo buttondown
NewWindowObjectcolorselector
- Protected Attributes inherited from Laxkit::anXWindow
charwin_tooltip
 Convenience variable to hold the window's tooltip, if any.
int needtodraw
RefPtrStack< anXWindow_kids
 Stack of children of the window.
- Protected Attributes inherited from Laxkit::Tagged
PtrStack< charlist_of_tags

Detailed Description

A control to select an RGBA color, with each mouse button corresponding to r, g, and b.

By default, pressing and dragging the left mouse button changes the red value, the middle button does the green, and the right button the blue. The message is sent when a button is released.

While pressing a mouse button down and hitting r,g,b,c,m,y, or k, will cause that button to shift the corresponding color. Internally, the colors are all rgb, and the cmyk transformations are through the simple non-icc rgb<->cmyk conversion.

This window sends SimpleColorEventData.

The box can be one of LAX_COLOR_CMYK, LAX_COLOR_RGB, LAX_COLOR_GRAY.

Todo:

would be neat to maintain a stack of previous colors?

might be nice to display number in window while dragging..

someday do a color managed version of this window

incorporate wheel movements to scroll the last accessed color


Constructor & Destructor Documentation

Laxkit::ColorBox::ColorBox ( anXWindow parnt,
const char nname,
const char ntitle,
unsigned long  nstyle,
int  nx,
int  ny,
int  nw,
int  nh,
int  brder,
anXWindow prev,
unsigned long  nowner,
const char mes,
int  ctype,
int  nmax,
int  nstep,
int  c0,
int  c1,
int  c2,
int  c3 = -1,
int  c4 = -1,
NewWindowObject newcolorselector = NULL 
)

Will delete newcolorselector in destructor.

References Laxkit::rgbcolor().


Member Function Documentation

int Laxkit::ColorBox::CharInput ( unsigned int  ch,
const char buffer,
int  len,
unsigned int  state,
const LaxKeyboard d 
)
virtual

While a button is pressed, pushing r,g,b,c,m,y,k will make that button shift the corresponding color.

Reimplemented from Laxkit::anXWindow.

References Laxkit::ButtonDownInfo::any(), Laxkit::anXWindow::CharInput(), and Laxkit::ButtonDownInfo::isdown().

int Laxkit::ColorBox::LBDown ( int  x,
int  y,
unsigned int  state,
int  count,
const LaxMouse d 
)
virtual

Change red by default.

Todo:
Double click to raise a Color Selection Dialog.

Reimplemented from Laxkit::anXWindow.

References Laxkit::ButtonDownInfo::any(), Laxkit::ButtonDownInfo::down(), PopupColorSelector(), and Laxkit::ButtonDownInfo::up().

int Laxkit::ColorBox::MouseMove ( int  x,
int  y,
unsigned int  state,
const LaxMouse d 
)
virtual
int Laxkit::ColorBox::PopupColorSelector ( )
virtual

Return 1 for unable. 0 for success.

References Laxkit::anXApp::addwindow().

Referenced by LBDown().

int Laxkit::ColorBox::send ( )
protectedvirtual

Puts coloreventdata->RGBA_max(red,green,blue,alpha, max).

References Laxkit::anXApp::SendMessage(), Laxkit::anXWindow::win_owner, and Laxkit::anXWindow::win_sendthis.


The documentation for this class was generated from the following files:

Mon Feb 17 2014 11:52:59, Laxkit