[BACK]Return to GPBitmap.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gnuplot / beos

Annotation of OpenXM_contrib/gnuplot/beos/GPBitmap.h, Revision 1.1.1.1

1.1       ohara       1: /*[
                      2:  * Copyright 1986 - 1993, 1998   Thomas Williams, Colin Kelley
                      3:  *
                      4:  * Permission to use, copy, and distribute this software and its
                      5:  * documentation for any purpose with or without fee is hereby granted,
                      6:  * provided that the above copyright notice appear in all copies and
                      7:  * that both that copyright notice and this permission notice appear
                      8:  * in supporting documentation.
                      9:  *
                     10:  * Permission to modify the software is granted, but not the right to
                     11:  * distribute the complete modified source code.  Modifications are to
                     12:  * be distributed as patches to the released version.  Permission to
                     13:  * distribute binaries produced by compiling modified sources is granted,
                     14:  * provided you
                     15:  *   1. distribute the corresponding source modifications from the
                     16:  *    released version in the form of a patch file along with the binaries,
                     17:  *   2. add special version identification to distinguish your version
                     18:  *    in addition to the base release version number,
                     19:  *   3. provide your name and address as the primary contact for the
                     20:  *    support of your modified version, and
                     21:  *   4. retain our contact information in regard to use of the base
                     22:  *    software.
                     23:  * Permission to distribute the released version of the source code along
                     24:  * with corresponding source modifications in the form of a patch file is
                     25:  * granted with same provisions 2 through 4 for binary distributions.
                     26:  *
                     27:  * This software is provided "as is" without express or implied warranty
                     28:  * to the extent permitted by applicable law.
                     29: ]*/
                     30:
                     31: #ifndef GPBitmap_h
                     32: #define GPBitmap_h
                     33:
                     34: #include <SupportDefs.h>
                     35: #include <GraphicsDefs.h>
                     36: #include <List.h>
                     37: #include <Bitmap.h>
                     38: #include <Rect.h>
                     39:
                     40: #define bmsgZoomIn             'zmin'
                     41: #define bmsgZoomOut            'zmot'
                     42: #define bmsgSetScale   'zset'
                     43:
                     44: class GPBitmap {
                     45:
                     46:        protected:
                     47:
                     48:                BView *         m_view;
                     49:                BList           m_editors;
                     50:                BBitmap *       m_bitmap;
                     51:                BBitmap *       m_bufbitmap;
                     52:                sem_id          m_readerLock;
                     53:                rgb_color       colors[16];
                     54:                bool            m_needRedraw;
                     55:                bool            m_redrawing;
                     56:                thread_id       drawing_thread;
                     57:
                     58:        public:
                     59:                float           width, height, nwidth, nheight, pointsize, xscale, yscale;
                     60:                int32           ncommands, max_commands;
                     61:                int             cx, cy;
                     62:                char    **      commands;
                     63:
                     64: //int gX = 100, gY = 100;
                     65: //unsigned int gW = 640, gH = 450;
                     66:
                     67:                                        GPBitmap(float width, float height);
                     68:                                        GPBitmap(float width, float height, char **cmds);
                     69:                                        ~GPBitmap();
                     70:
                     71:                BBitmap *       RealBitmap() { return m_bitmap; };
                     72:
                     73:                void            Lock() { m_bitmap->Lock(); };
                     74:                void            Unlock() { m_bitmap->Unlock(); };
                     75:
                     76:                BRect           Bounds() { return m_bitmap->Bounds(); };
                     77:                void *          Bits() { return m_bitmap->Bits(); };
                     78:                color_space     ColorSpace() { return m_bitmap->ColorSpace(); };
                     79:                int32           BitsLength() { return m_bitmap->BitsLength(); };
                     80:                int32           BytesPerRow() { return m_bitmap->BytesPerRow(); };
                     81:
                     82:                BView *         View() { return m_view; };
                     83:                void            SetDirty(BRegion *r);
                     84:
                     85:                void            ResizeTo(float width, float height, uint32 btns);
                     86:
                     87:                rgb_color       PixelAtRGB(int x, int y) {
                     88:                        rgb_color c = *((rgb_color*)(((char*)Bits()) + x*4 + y*BytesPerRow()));
                     89:                        return c;
                     90:                };
                     91:
                     92:                int32           drawing_loop(void *data);
                     93:                void            addCommand(char *cmd);
                     94:                void            addCommands(BMessage *msg, int32 numCmds);
                     95:                void            clearCommands();
                     96:                void            display(float v_width, float v_height);
                     97:                void            doDiamond(int x, int y, int px, int py);
                     98:                void            doPlus(int x, int y, int px, int py);
                     99:                void            doBox(int x, int y, int px, int py);
                    100:                void            doCross(int x, int y, int px, int py);
                    101:                void            doTriangle(int x, int y, int px, int py);
                    102:                void            doStar(int x, int y, int px, int py);
                    103:                void            doDot(int x, int y);
                    104:
                    105: inline float X(int x)  { return x * xscale; };
                    106: inline float Y(int y)  { return (4095-(y)) * yscale; }
                    107: };
                    108:
                    109: #ifndef LEFT
                    110: #define LEFT 0
                    111: #endif
                    112: #ifndef CENTRE
                    113: #define CENTRE 1
                    114: #endif
                    115: #ifndef RIGHT
                    116: #define RIGHT 2
                    117: #endif
                    118:
                    119: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>