source: tags/arb_5.3/PGT/image_dialog.hxx

Last change on this file was 3978, checked in by baderk, 18 years ago

Various changes from my own testing-repository are hereby transfered to the
main ARB repository. The sole purpose of this version is an increased
stability and less memory leaks, additional features will follow soon.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.0 KB
Line 
1// Copyright (c) 2004 - 2005 Kai Bader <baderk@in.tum.de>
2//
3// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
5// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
6// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
7// AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
8// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
9
10// CVS REVISION TAG  --  $Revision: 3978 $
11
12#ifndef IMAGE_DIALOG_H
13#define IMAGE_DIALOG_H
14
15#include <stdio.h>
16#include <stdlib.h>
17#include <stdarg.h>
18#include <Xm/XmAll.h>
19#include "dialog.hxx"
20#include "tiff_image.hxx"
21#include "arb_interface.hxx"
22
23using namespace std;
24#include <vector>
25#include <map>
26
27struct ltstr
28{
29    bool operator()(const char* s1, const char* s2) const
30    {
31        return strcmp(s1, s2) < 0;
32    }
33};
34
35// SPOT STRUCT
36typedef struct _SPOT
37{
38    float x;
39    float y;
40    int area;
41    int diameter;
42    char *text;
43    char *id;
44    bool selected;
45    bool marked;
46    GBDATA *gbdata;
47} SPOT;
48
49// COLOR STRUCT
50typedef struct _RGB
51{
52    int r;
53    int g;
54    int b;
55} RGB;
56
57
58class imageDialog : public MDialog
59{
60    public:
61        imageDialog(MDialog*);
62        ~imageDialog();
63        //
64        void ARBdataButtonCallback(Widget, XtPointer);
65        void TIFFnameButtonCallback(Widget, XtPointer);
66        void setSpecies(const char *);
67        void setExperiment(const char *);
68        void setProteome(const char *);
69        void updateARBText();
70        void imageFileDialogCallback(Widget, XtPointer);
71        void imageRedrawCallback();
72        void imageRedraw();
73        void crosshairButtonCallback(Widget, XtPointer);
74        void textButtonCallback(Widget, XtPointer);
75        void textOnlyButtonCallback(Widget, XtPointer);
76        void circleButtonCallback(Widget, XtPointer);
77        void markedOnlyButtonCallback(Widget, XtPointer);
78        void markAllButtonCallback(Widget, XtPointer);
79        void markInvertButtonCallback(Widget, XtPointer);
80        void markNoneButtonCallback(Widget, XtPointer);
81        bool setAllMarker(int);
82        void imageEventCallback(Widget, XtPointer);
83        void markSpotAtPos(int, int, int);
84        void lockToggleButtonCallback(Widget, XtPointer);
85        void ARB_protein_callback();
86        void ARB_gene_callback();
87        void PGT_config_callback();
88        void updateGeneButtonCallback();
89        bool mark_Spots2Genes();
90        bool mark_Genes2Spots();
91        void markWithInfo();
92    protected:
93        void createWindow();
94        void createTopToolbar();
95        void createLeftToolbar();
96        int updateImage();
97        int blankImage();
98        int fillBlankImage();
99        int getSpotMaxDimensions();
100        void setText(const char *, int, int);
101        void drawCrosshair(int, int);
102        void drawCircle(int, int, int, int, int, int);
103        void drawSpots();
104        void setColor(Display *, GC, int, int, int);
105        char *get_ARB_image_path();
106        void set_ARB_image_path(const char *);
107        bool getSettings();
108        bool createSpotList();
109        bool createDescriptions();
110        bool updateSelectedGene();
111        void updateStatusLabel();
112        void genGeneKey(char *, char *, float , float);
113    private:
114        Widget m_top;
115        Widget m_topToolbar;
116        Widget m_leftToolbar;
117        Widget m_drawingArea;
118        Widget m_statusLabel;
119        Widget m_ARBdata;
120        Widget m_TIFFname;
121        Widget m_fileDialog;
122        Widget m_LockToggleButton;
123        Widget m_UpdateGeneButton;
124        //
125        vector<SPOT> m_spotList;
126        // list<SPOT> m_spotList;
127        map<char *, char *, ltstr> m_descriptorList;
128        map<char *, GBDATA*, ltstr> m_gene_GBDATA_map;
129        //
130        char *m_filename;
131        char *m_species;
132        char *m_experiment;
133        char *m_proteome;
134        //
135        // DEBUG -- PRESET -- DEBUG -- PRESET
136        const char *m_x_container;
137        const char *m_y_container;
138        const char *m_id_container;
139        const char *m_vol_container;
140        const char *m_area_container;
141        const char *m_avg_container;
142        // DEBUG -- PRESET -- DEBUG -- PRESET
143        //
144        bool m_changeInProgress;
145        bool m_hasFileDialog;
146        bool m_hasTIFFdata;
147        bool m_hasImagedata;
148        bool m_hasARBdata;
149        bool m_lockVisualization;
150        bool m_updateGene;
151        //
152        XImage *m_ximage;
153        TIFFimage *m_image;
154        Pixmap m_pixmap;
155        int  m_width;
156        int  m_height;
157        int  m_numSpots;
158        int  m_numMarkedSpots;
159        int  m_numSelectedSpots;
160        char *m_selectedSpotName;
161        //
162        bool m_crosshairFlag;
163        bool m_circleFlag;
164        bool m_labelFlag;
165        bool m_linkedOnlyFlag;
166        bool m_textOnlyFlag;
167        bool m_markedOnlyFlag;
168        //
169        RGB m_crosshairColor;
170        RGB m_unmarkedColor;
171        RGB m_markedColor;
172        RGB m_selectedColor;
173        RGB m_textColor;
174};
175
176
177#endif // IMAGE_DIALOG_H
Note: See TracBrowser for help on using the repository browser.