1local @ImageStats double[7]; 2 3object Prima::Image( Prima::Drawable) 4{ 5 # variables 6 int type; # imXXXX 7 int lineSize; # rounded to 32-bit boundary 8 int dataSize; # == lineSize * h 9 int conversion; # ictXXXX 10 int scaling; # istXXXX 11 unsigned char *data; 12 ImageStats stats; 13 int statsCache; 14 Point resolution; 15 int eventMask1; 16 int eventMask2; 17 PRegionRec regionData; 18 int updateLock; 19 int extraROP; 20 21 property int alpha; 22 property Bool antialias; 23 property Rect clipRect; 24 property int conversion; 25 property SV * data; 26 property int lineSize; 27 property SV * palette; 28 property SV * pixel( int x, int y); 29 property Bool preserveType; 30 property Handle region; 31 property Point resolution; 32 property int rop; 33 property int scaling; 34 property Point size; 35 property double stats( int index); 36 property int type; 37 38 # methods 39 method UV add_notification( char * name, SV * subroutine, Handle referer = NULL_HANDLE, int index = -1); 40 method Bool arc( double x, double y, double dX, double dY, double startAngle, double endAngle); 41 method Bool bar(double x1, double y1, double x2, double y2); 42 method Bool bars(SV * rects); 43 method Handle bitmap(); 44 method Bool begin_paint(); 45 method Bool begin_paint_info(); 46 method Bool can_draw_alpha(); 47 method Bool chord( double x, double y, double dX, double dY, double startAngle, double endAngle); 48 static SV * codecs( SV * dummy, int codecID = -1); 49 method Bool clear(double x1=-1, double y1=-1, double x2=-1, double y2=-1); 50 c_only void create_empty( int width, int height, int type); 51 method void done(); 52 method Handle dup(); 53 method Bool ellipse(double x, double y, double dX, double dY); 54 method void end_paint(); 55 method void end_paint_info(); 56 method Handle extract( int x, int y, int width, int height); 57 method Bool fill_chord( double x, double y, double dX, double dY, double startAngle, double endAngle); 58 method Bool fill_ellipse(double x, double y, double dX, double dY); 59 method Bool fillpoly( SV * podoubles); 60 method Bool fill_sector( double x, double y, double dX, double dY, double startAngle, double endAngle); 61 method Bool flood_fill( int x, int y, Color color, Bool singleBorder = 1); 62 method int get_bpp(); 63 method SV * get_handle(); 64 method Color get_nearest_color( Color color); 65 c_only void handle_event( PEvent event); 66 method void init( HV * profile); 67 method Bool line(double x1, double y1, double x2, double y2); 68 method Bool lines( SV * points); 69 weird PList load( SV * className, SV *filename, HV * profile); 70 c_only void make_empty(); 71 method void map( Color color); 72 method void mirror( Bool vertically ); 73 import SV * notification_types(); 74 method Bool polyline( SV * points); 75 import SV * profile_default (); 76 method void premultiply_alpha(SV * alpha); 77 method Bool put_image_indirect( Handle image, int x, int y, int xFrom, int yFrom, int xDestLen, int yDestLen, int xLen, int yLen, int rop); 78 method void remove_notification( UV id); 79 method Bool rotate( double degrees ); 80 method Bool rectangle(double x1, double y1, double x2, double y2); 81 method void resample( double srcLo, double srcHi, double dstLo, double dstHi); 82 weird int save( SV *className, SV *filename, HV * profile); 83 method Bool sector( double x, double y, double dX, double dY, double startAngle, double endAngle); 84 method void set( HV * profile); 85 c_only void reset( int type, RGBColor * palette, int palSize); 86 c_only void stretch( int width, int height); 87 method Bool transform( double a, double b, double c, double d ); 88 c_only void update_change(); 89} 90