[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     ! 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>