Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

Zinc.hpp

Go to the documentation of this file.
00001 
00016 #include "ZincTypes.hpp"
00017 #include "ZincObjects.hpp"
00018 #include "ZincPath.hpp"
00019 #include "ZincExtern.hpp"
00020 #include <tcl.h>
00021 
00022 #ifndef ZINC_HEADER
00023 #define ZINC_HEADER
00024 
00025 
00027 const int ZINC_POOL_COUNT   = 7;
00029 const int  ZINC_PARAM_COUNT = 10;
00030 
00032 const int DEFAULT_GROUP = 1;
00033 
00037 class Zinc
00038 {
00039   friend class ZincPath;
00040   
00041 public:
00042   Tcl_Obj *id;           
00043   WidgetObjCmd objCmd;   
00044   ClientData wi;         
00045   String tclCb;          
00046   int znId;              
00047   String window;         
00048 
00049   static int znCount;                   
00050   static Tcl_CmdInfo imgCmdInfo;        
00051   static Tcl_CmdInfo fntCmdInfo;        
00052   static Tcl_CmdInfo focCmdInfo;        
00053   static Tcl_CmdInfo bndCmdInfo;        
00054   static Tcl_Obj* pool[ZINC_POOL_COUNT];
00055   static Tcl_Obj* p1[ZINC_PARAM_COUNT]; 
00056   static Tcl_Obj* p2[ZINC_PARAM_COUNT]; 
00057 
00058 public:
00059   static Tcl_Interp *interp;            
00060 
00066   Zinc (int renderingMode);
00067 
00071   ~Zinc ();
00072 
00078   void setTitle (String title);
00079 
00080 /*****************************************
00081           WIDGET PROPERTIES
00082 *****************************************/
00083   
00089   void setBackcolor (String value);
00090 
00096   String getBackcolor ();
00097 
00103   void setForecolor (String value);
00104 
00110   String getForecolor ();
00111 
00117   void setWidth (int value);
00118 
00124   int getWidth ();
00125 
00131   void setHeight (int value);
00132 
00138   int getHeight ();
00139 
00145   void setBorderwidth (int value);
00146 
00152   int getBorderwidth ();
00153 
00159   void setFont (ZincFont* value);
00160 
00166   ZincFont* getFont ();
00167 
00168 /*****************************************
00169           WIDGET METHODS
00170 *****************************************/
00171 
00179   void bbox (ZincItem* item, double bbox[4]);
00180 
00188   void relativeBbox (ZincItem* item, double bbox[4]);
00189 
00190 
00197   void chggroup (ZincItem *item, ZincItem *parentGroup);
00198 
00205   ZincItem* clone (ZincItem *item);
00206 
00212   int contour (ZincItem *item);
00213 
00222   int contour (ZincItem *item, itemOperator flag, ZincItem *reference);
00223 
00232   int contour (ZincItem *item, bool add, ZincPath *contour);
00233 
00244   void coords (ZincItem *item, ZincPath *contour, bool add,
00245                int contourIndex = -1, int coordIndex = -1);
00246 
00254   void coordsRemove (ZincItem *item, int coordIndex, int contourIndex = -1);
00255 
00262   void addTag (ZincItem *item, String tag);
00263 
00270   void dTag (ZincItem *item, String tag = String(""));
00271 
00280   int getTags (ZincItem *item, String*** tagList);
00281 
00287   void focus (ZincItem *item);
00288 
00295   bool isGname (String gname);
00296 
00303   void gname (String gradient, String gname);
00304 
00311   ZincItem* group (ZincItem *item);
00312 
00318   void lower (ZincItem *item);
00319 
00326   void lower (ZincItem *item, ZincItem *belowThis);
00327 
00333   void raise (ZincItem *item);
00334 
00341   void raise (ZincItem *item, ZincItem *aboveThis);
00342 
00349    itemType type (ZincItem *item);
00350 
00358   ZincItem* createTag(String tag);
00359 
00360 /*****************************************
00361           ITEMS MANIPULATION
00362 *****************************************/
00368   void itemRemove (ZincItem *item);
00369 
00377   ZincItem *itemCreateGroup (ZincItem *parentGroup);
00378 
00386   ZincItem *itemCreateRectangle (ZincItem *parentGroup, double x, double y,
00387                                 double width, double height);
00388 
00396   ZincItem *itemCreateArc (ZincItem *parentGroup, double x, double y,
00397                            double width, double height);
00398 
00405   ZincItem *itemCreateText (ZincItem *parentGroup);
00406 
00414   ZincItem *itemCreateCurve (ZincItem *parentGroup, ZincPath *path);
00415 
00423   ZincItem *itemCreateIcon (ZincItem *parentGroup, ZincImage* image);
00424 
00425 
00426 /**************************************************
00427                     BINDING
00428 **************************************************/
00429 
00438   void bind (String eventSpecification,
00439              ZincWidgetCallback callBack, void *userData, bool add = false);
00440 
00446   void unbind (String eventSpecification);
00447   
00457   void itemBind (ZincItem *item, String eventSpecification,
00458                  ZincItemCallback callBack, void *userData, bool add = false);
00459 
00466   void itemUnbind (ZincItem *item, String eventSpecification);
00467 
00468 /**************************************************
00469            TRANSFORMATION METHODS
00470 **************************************************/
00471 
00478   void itemTranslate (ZincItem * item, double dx, double dy);
00479 
00487   void itemTranslate (ZincItem * item, double x, double y, bool absolute);
00488 
00495   void itemRotate (ZincItem * item, double angle);
00496 
00504   void itemRotate (ZincItem * item, double angle, double x, double y);
00505 
00513   void itemRotate (ZincItem * item, double angle, bool degree);
00514 
00523   void itemRotate (ZincItem * item, double angle, double x, double y,
00524                    bool degree);
00525 
00533   void itemScale (ZincItem * item, double ax, double ay);
00534 
00543   void itemScale (ZincItem * item, double ax, double ay, double cx, double cy);
00544 
00545   
00553   void itemSkew (ZincItem * item, double sx, double sy);
00554 
00561   void itemSkewX (ZincItem * item, double sx);
00562 
00569   void itemSkewY (ZincItem * item, double sy);
00570 
00576   void itemResetTransformation (ZincItem * item);
00577 
00584   void itemSetTransformation (ZincItem * item,
00585                               double a, double b, double c,
00586                               double d, double e, double f);
00587 
00594   void itemGetTransformation (ZincItem * item,
00595                               double *a, double *b, double *c,
00596                               double *d, double *e, double *f);
00597 
00604   void itemMatrix (ZincItem * item,
00605                    double a, double b, double c,
00606                    double d, double e, double f);
00607 
00608 /*******************************************************
00609              AUTOGENERATED METHODS (itemconfigure)
00610 "code.hpp" in Tkzins/generic source from :
00611    ./gen.pl Arc.c Attrs.c Color.c Curve.c Draw.c  Group.c
00612         Image.c List.c Item.c Icon.c Rectangle.c tkZinc.c Text.c
00613 *******************************************************/
00614 
00620   void itemSetClosed (ZincItem * item, bool value);
00621 
00627   bool itemGetClosed (ZincItem * item);
00628 
00634   void itemSetComposealpha (ZincItem * item, bool value);
00635 
00641   bool itemGetComposealpha (ZincItem * item);
00642 
00648   void itemSetComposerotation (ZincItem * item, bool value);
00649 
00655   bool itemGetComposerotation (ZincItem * item);
00656 
00662   void itemSetComposescale (ZincItem * item, bool value);
00663 
00669   bool itemGetComposescale (ZincItem * item);
00670 
00676   void itemSetExtent (ZincItem * item, unsigned int value);
00677 
00683   unsigned int itemGetExtent (ZincItem * item);
00684 
00690   void itemSetFillcolor (ZincItem * item, String value);
00691 
00697   String itemGetFillcolor (ZincItem * item);
00698 
00704   void itemSetFilled (ZincItem * item, bool value);
00705 
00711   bool itemGetFilled (ZincItem * item);
00712 
00718   void itemSetFillpattern (ZincItem * item, ZincBitmap * value);
00719 
00725   ZincBitmap * itemGetFillpattern (ZincItem * item);
00726 
00732   void itemSetLinecolor (ZincItem * item, String value);
00733 
00739   String itemGetLinecolor (ZincItem * item);
00740 
00746   void itemSetLinepattern (ZincItem * item, ZincBitmap * value);
00747 
00753   ZincBitmap * itemGetLinepattern (ZincItem * item);
00754 
00760   void itemSetLinestyle (ZincItem * item, lineStyle value);
00761 
00767   lineStyle itemGetLinestyle (ZincItem * item);
00768 
00774   void itemSetLinewidth (ZincItem * item, double value);
00775 
00781   double itemGetLinewidth (ZincItem * item);
00782 
00788   void itemSetPieslice (ZincItem * item, bool value);
00789 
00795   bool itemGetPieslice (ZincItem * item);
00796 
00802   void itemSetPriority (ZincItem * item, unsigned int value);
00803 
00809   unsigned int itemGetPriority (ZincItem * item);
00810 
00816   void itemSetSensitive (ZincItem * item, bool value);
00817 
00823   bool itemGetSensitive (ZincItem * item);
00824 
00830   void itemSetStartangle (ZincItem * item, unsigned int value);
00831 
00837   unsigned int itemGetStartangle (ZincItem * item);
00838 
00844   void itemSetTile (ZincItem * item, ZincBitmap * value);
00845 
00851   ZincBitmap * itemGetTile (ZincItem * item);
00852 
00858   void itemSetVisible (ZincItem * item, bool value);
00859 
00865   bool itemGetVisible (ZincItem * item);
00866 
00872   void itemSetCapstyle (ZincItem * item, capStyle value);
00873 
00879   capStyle itemGetCapstyle (ZincItem * item);
00880 
00886   void itemSetFillrule (ZincItem * item, fillRule value);
00887 
00893   fillRule itemGetFillrule (ZincItem * item);
00894 
00900   void itemSetJoinstyle (ZincItem * item, joinStyle value);
00901 
00907   joinStyle itemGetJoinstyle (ZincItem * item);
00908 
00914   void itemSetRelief (ZincItem * item, relief value);
00915 
00921   relief itemGetRelief (ZincItem * item);
00922 
00928   void itemSetSmoothrelief (ZincItem * item, bool value);
00929 
00935   bool itemGetSmoothrelief (ZincItem * item);
00936 
00942   void itemSetAlpha (ZincItem * item, unsigned int value);
00943 
00949   unsigned int itemGetAlpha (ZincItem * item);
00950 
00956   void itemSetAtomic (ZincItem * item, bool value);
00957 
00963   bool itemGetAtomic (ZincItem * item);
00964 
00970   void itemSetClip (ZincItem * item, ZincItem * value);
00971 
00977   ZincItem * itemGetClip (ZincItem * item);
00978 
00984   void itemSetAnchor (ZincItem * item, anchor value);
00985 
00991   anchor itemGetAnchor (ZincItem * item);
00992 
00998   void itemSetColor (ZincItem * item, String value);
00999 
01005   String itemGetColor (ZincItem * item);
01006 
01012   void itemSetConnecteditem (ZincItem * item, ZincItem * value);
01013 
01019   ZincItem * itemGetConnecteditem (ZincItem * item);
01020 
01026   void itemSetConnectionanchor (ZincItem * item, anchor value);
01027 
01033   anchor itemGetConnectionanchor (ZincItem * item);
01034 
01040   void itemSetImage (ZincItem * item, ZincImage * value);
01041 
01047   ZincImage * itemGetImage (ZincItem * item);
01048 
01054   void itemSetMask (ZincItem * item, ZincBitmap * value);
01055 
01061   ZincBitmap * itemGetMask (ZincItem * item);
01062 
01068   void itemSetAlignment (ZincItem * item, alignment value);
01069 
01075   alignment itemGetAlignment (ZincItem * item);
01076 
01082   void itemSetFont (ZincItem * item, ZincFont * value);
01083 
01089   ZincFont * itemGetFont (ZincItem * item);
01090 
01096   void itemSetOverstriked (ZincItem * item, bool value);
01097 
01103   bool itemGetOverstriked (ZincItem * item);
01104 
01110   void itemSetSpacing (ZincItem * item, short value);
01111 
01117   short itemGetSpacing (ZincItem * item);
01118 
01124   void itemSetText (ZincItem * item, String value);
01125 
01131   String itemGetText (ZincItem * item);
01132 
01138   void itemSetUnderlined (ZincItem * item, bool value);
01139 
01145   bool itemGetUnderlined (ZincItem * item);
01146 
01152   void itemSetWidth (ZincItem * item, unsigned short value);
01153 
01159   unsigned short itemGetWidth (ZincItem * item);
01160 
01161 
01162 /*******************************************************
01163              END OF AUTOGENERATED METHODS
01164 *******************************************************/
01165 
01172   void itemSetFirstend (ZincItem * item, double a, double b, double c);
01173   
01180   void itemGetFirstend (ZincItem * item, double *a, double *b, double *c);
01181 
01188   void itemSetLastend (ZincItem * item, double a, double b, double c);
01189 
01196   void itemGetLastend (ZincItem * item, double *a, double *b, double *c);
01197 
01204   void itemSetPosition (ZincItem * item, double x, double y);
01205 
01212   void itemGetPosition (ZincItem * item, double *x, double *y);
01213 
01219   ZincImage* createImageFromFile (String image);
01220 
01226   ZincImage* createImageFromData (String image);
01227 
01233   ZincBitmap* createBitmapFromFile (String image);
01234 
01240   ZincBitmap* createBitmapFromData (String image);
01241 
01247   ZincBitmap* createBitmapFromName (String image);
01248 
01256   ZincImage* createImageFromAGGBuffer (int width, int height, unsigned char *aggBuffer);
01257 
01258 
01271   ZincFont* createFont (String family, int size, int bold = -1,
01272                         int italic = -1, int underline = -1,
01273                         int overstrike = -1);
01274  
01281   int getFontAscent (ZincFont* font);
01282 
01289   int getImageWidth (ZincImage *image);
01290   
01297   int getImageHeight (ZincImage *image);
01298   
01299 /*******************************************************
01300                 STATIC PROCEDURES
01301 *******************************************************/
01302 
01308   static void loadZinc (char *argv0) throw (ZincException);
01309 
01313   static void zincMainLoop ();
01314 
01315 /*******************************************************
01316                errors management
01317 *******************************************************/
01325   static void z_tcl_call (int result, char* p_msg) throw (ZincException);
01326 
01337   void z_command (int count, char* p_msg) throw (ZincException);
01338 
01339 };
01340 
01341 #endif

Generated on Mon Apr 18 17:40:44 2005 for IntuiKit by doxygen 1.3.3