icurvctl.h File Reference

icurvctl.h File Reference
#include <Wtypes.h>
#include <CommCtrl.h>
#include "maxheap.h"
#include "ref.h"

Classes

class  ICurveCtl
 
class  CurvePoint
 
class  ICurve
 
class  ResourceMakerCallback
 

Macros

#define CURVE_CONTROL_CLASS_ID   Class_ID(0x14585773, 0x483a7dcf)
 
#define I_RESMAKER_INTERFACE   0x2474334a
 
#define WM_CC_SEL_CURVEPT   WM_USER+0x2b70
 
#define WM_CC_CHANGE_CURVEPT   WM_USER+0x2b71
 
#define WM_CC_CHANGE_CURVETANGENT   WM_USER+0x2b72
 
#define WM_CC_DEL_CURVEPT   WM_USER+0x2b73
 
#define WM_CC_INSERT_CURVEPT   WM_USER+0x2b74
 
#define WM_CC_LBUTTONDOWN   WM_USER+0x2b75
 
#define WM_CC_RBUTTONDOWN   WM_USER+0x2b76
 
#define WM_CC_LBUTTONUP   WM_USER+0x2b77
 
#define IN_CURVETANGENT_CHANGED   (1<<0)
 
#define OUT_CURVETANGENT_CHANGED   (1<<1)
 
#define IN_CURVETANGENT_CHANGED   (1<<0)
 
#define OUT_CURVETANGENT_CHANGED   (1<<1)
 
#define CC_DRAWBG   (1<<0)
 Draw the white background in the graph window. More...
 
#define CC_DRAWGRID   (1<<1)
 Draw the grid lines and coordinates in the graph window. More...
 
#define CC_DRAWUTOOLBAR   (1<<2)
 Draw the upper toolbar above the control. More...
 
#define CC_SHOWRESET   (1<<3)
 Display the Reset button in the upper toolbar. More...
 
#define CC_DRAWLTOOLBAR   (1<<4)
 Draw the lower toolbar beneath the control. More...
 
#define CC_DRAWSCROLLBARS   (1<<5)
 Draw the horizontal and vertical scroll bars for the control. More...
 
#define CC_AUTOSCROLL   (1<<6)
 Auto scroll happens when you drag a CurvePoint out of the currently visible range. More...
 
#define CC_DRAWRULER   (1<<7)
 Draw a small moveable ruler window that measures horizontal coordinates. More...
 
#define CC_ASPOPUP   (1<<8)
 Show the window as popup window. More...
 
#define CC_CONSTRAIN_Y   (1<<9)
 No points (or handles) can be moved out of the value that is set by SetYRange(). More...
 
#define CC_HIDE_DISABLED_CURVES   (1<<10)
 If this is not set, the disabled curves will be drawn by the color set by SetDisabledPenProperty(). More...
 
#define CC_RCMENU_MOVE_XY   (1<<11)
 Right-click menu item. More...
 
#define CC_RCMENU_MOVE_X   (1<<12)
 Right-click menu item. More...
 
#define CC_RCMENU_MOVE_Y   (1<<13)
 Right-click menu item. More...
 
#define CC_RCMENU_SCALE   (1<<14)
 Right-click menu item. More...
 
#define CC_RCMENU_INSERT_CORNER   (1<<15)
 Right-click menu item. More...
 
#define CC_RCMENU_INSERT_BEZIER   (1<<16)
 Right-click menu item. More...
 
#define CC_RCMENU_DELETE   (1<<17)
 Right-click menu item. More...
 
#define CC_SHOW_CURRENTXVAL   (1<<18)
 You loose the automatic switch from insert to move mode when right-clicking, if a RightClick menu is active. More...
 
#define CC_SINGLESELECT   (1<<19)
 Normally, if several points are stacked in area, clicking on the area you get all of them. More...
 
#define CC_NOFILTERBUTTONS   (1<<20)
 This is useful when there are many curves and you want to manage the display yourself. More...
 
#define CC_ALL_RCMENU   (CC_RCMENU_MOVE_XY|CC_RCMENU_MOVE_X|CC_RCMENU_MOVE_Y|CC_RCMENU_SCALE|CC_RCMENU_INSERT_CORNER|CC_RCMENU_INSERT_BEZIER|CC_RCMENU_DELETE)
 Entire right click menu. More...
 
#define CC_ALL   (CC_DRAWBG|CC_DRAWGRID|CC_DRAWUTOOLBAR|CC_SHOWRESET|CC_DRAWLTOOLBAR|CC_DRAWSCROLLBARS|CC_AUTOSCROLL|CC_DRAWRULER|CC_ASPOPUP|CC_CONSTRAIN_Y|CC_HIDE_DISABLED_CURVES| CC_ALL_RCMENU )
 
#define CC_NONE   0
 
#define CID_CC_MOVE_XY   0
 
#define CID_CC_MOVE_X   1
 
#define CID_CC_MOVE_Y   2
 
#define CID_CC_SCALE   3
 
#define CID_CC_INSERT_CORNER   4
 
#define CID_CC_INSERT_BEZIER   5
 
#define CURVE_EXTRAPOLATE_LINEAR   0
 
#define CURVE_EXTRAPOLATE_CONSTANT   1
 
#define CURVEP_BEZIER   (1<<0)
 
#define CURVEP_CORNER   (1<<1)
 
#define CURVEP_LOCKED_Y   (1<<2)
 
#define CURVEP_LOCKED_X   (1<<3)
 
#define CURVEP_SELECTED   (1<<4)
 
#define CURVEP_ENDPOINT   (1<<8)
 
#define CURVEP_NO_X_CONSTRAINT   (1<<9)
 
#define SELPTS_SELECT   (1<<0)
 
#define SELPTS_DESELECT   (1<<1)
 
#define SELPTS_CLEARPTS   (1<<2)
 
#define IS_CORNER(flags)    ( ( (flags) & CURVEP_CORNER) && !((flags) & CURVEP_BEZIER) )
 
#define IS_BEZIERSMOOTH(flags)   ( ( (flags) & CURVEP_BEZIER) && !((flags) & CURVEP_CORNER) )
 
#define IS_BEZIERCORNER(flags)   ( (flags) & (CURVEP_BEZIER | CURVEP_CORNER) )
 

Macro Definition Documentation

#define CURVE_CONTROL_CLASS_ID   Class_ID(0x14585773, 0x483a7dcf)
#define I_RESMAKER_INTERFACE   0x2474334a
#define WM_CC_SEL_CURVEPT   WM_USER+0x2b70
#define WM_CC_CHANGE_CURVEPT   WM_USER+0x2b71
#define WM_CC_CHANGE_CURVETANGENT   WM_USER+0x2b72
#define WM_CC_DEL_CURVEPT   WM_USER+0x2b73
#define WM_CC_INSERT_CURVEPT   WM_USER+0x2b74
#define WM_CC_LBUTTONDOWN   WM_USER+0x2b75
#define WM_CC_RBUTTONDOWN   WM_USER+0x2b76
#define WM_CC_LBUTTONUP   WM_USER+0x2b77
#define IN_CURVETANGENT_CHANGED   (1<<0)
#define OUT_CURVETANGENT_CHANGED   (1<<1)
#define IN_CURVETANGENT_CHANGED   (1<<0)
#define OUT_CURVETANGENT_CHANGED   (1<<1)
#define CID_CC_MOVE_XY   0
#define CID_CC_MOVE_X   1
#define CID_CC_MOVE_Y   2
#define CID_CC_SCALE   3
#define CID_CC_INSERT_CORNER   4
#define CID_CC_INSERT_BEZIER   5
#define CURVE_EXTRAPOLATE_LINEAR   0
#define CURVE_EXTRAPOLATE_CONSTANT   1
#define CURVEP_BEZIER   (1<<0)
#define CURVEP_CORNER   (1<<1)
#define CURVEP_LOCKED_Y   (1<<2)
#define CURVEP_LOCKED_X   (1<<3)
#define CURVEP_SELECTED   (1<<4)
#define CURVEP_ENDPOINT   (1<<8)
#define CURVEP_NO_X_CONSTRAINT   (1<<9)
#define SELPTS_SELECT   (1<<0)
#define SELPTS_DESELECT   (1<<1)
#define SELPTS_CLEARPTS   (1<<2)
#define IS_CORNER (   flags)    ( ( (flags) & CURVEP_CORNER) && !((flags) & CURVEP_BEZIER) )
#define IS_BEZIERSMOOTH (   flags)    ( ( (flags) & CURVEP_BEZIER) && !((flags) & CURVEP_CORNER) )
#define IS_BEZIERCORNER (   flags)    ( (flags) & (CURVEP_BEZIER | CURVEP_CORNER) )