1 |
gpertea |
45 |
#ifndef CLVIEWMDICHILD_H |
2 |
|
|
#define CLVIEWMDICHILD_H |
3 |
|
|
|
4 |
|
|
#include "fx.h" |
5 |
|
|
#include "FXGView.h" |
6 |
|
|
#include "AceParser.h" |
7 |
|
|
|
8 |
|
|
static FXString seqbuf; |
9 |
|
|
|
10 |
|
|
// Main Window |
11 |
|
|
class MDIChild : public FXMDIChild { |
12 |
|
|
FXDECLARE(MDIChild) |
13 |
|
|
protected: |
14 |
|
|
//=== static, class-wide resources: |
15 |
|
|
static FXFont* ifont; //info font |
16 |
|
|
static short numInst; |
17 |
|
|
static FXIcon* icnDefCS; |
18 |
|
|
static FXIcon* icnBaseCS; |
19 |
|
|
static FXIcon* icnDensCS; |
20 |
|
|
|
21 |
|
|
// Member data |
22 |
|
|
int prevColumn; |
23 |
|
|
FXPopup* pop; |
24 |
|
|
FXVerticalFrame* contents; |
25 |
|
|
FXComboBox* selcontig; |
26 |
|
|
FXComboBox* selseq; |
27 |
|
|
FXHorizontalFrame* clframe; |
28 |
|
|
FXVerticalFrame* toolframe; |
29 |
|
|
FXVerticalFrame* vframe; |
30 |
|
|
FXHorizontalFrame* hframe; |
31 |
|
|
FXLabel* zyLabel; |
32 |
|
|
FXLabel* zxLabel; |
33 |
|
|
FXButton* nozoomBtn; |
34 |
|
|
FXLabel* seqData; //length, clipping, strand |
35 |
|
|
FXTextField* seqComment; |
36 |
|
|
FXLabel* seqAsmInfo; |
37 |
|
|
FXLabel* columnInfo; |
38 |
|
|
FXStatusBar *statusbar; // Status bar |
39 |
|
|
FXSlider* sliderZX; |
40 |
|
|
FXSlider* sliderZY; |
41 |
|
|
FXCheckButton* cbgaps; |
42 |
|
|
FXString file; |
43 |
|
|
LayoutParser* layoutparser; |
44 |
|
|
LayoutParser* groupHolder; |
45 |
|
|
bool isAce; //file is an .ACE file (cap3) |
46 |
|
|
bool zooming; |
47 |
|
|
bool panning; |
48 |
|
|
bool wasMaximized; |
49 |
|
|
double startZX, startZY; |
50 |
|
|
FXPoint zoomPt; |
51 |
|
|
protected: |
52 |
|
|
void assignGroups(); |
53 |
|
|
MDIChild(){} |
54 |
|
|
public: |
55 |
|
|
// Message handlers |
56 |
|
|
FXGView* alignview; |
57 |
|
|
FXOption* clropt1; |
58 |
|
|
FXOption* clropt2; |
59 |
|
|
FXOption* clropt3; |
60 |
|
|
|
61 |
|
|
long onCmdClZoom(FXObject*,FXSelector,void*); |
62 |
|
|
long onSeqSelect(FXObject*,FXSelector,void*); //clicking |
63 |
|
|
long onRMouseDown(FXObject*,FXSelector,void*); |
64 |
|
|
long onRMouseUp(FXObject*,FXSelector,void*); |
65 |
|
|
long onMMouseDown(FXObject*,FXSelector,void*); |
66 |
|
|
long onMMouseUp(FXObject*,FXSelector,void*); |
67 |
|
|
long onMouseMove(FXObject*,FXSelector,void*); |
68 |
|
|
long onNoZoom(FXObject*,FXSelector,void*); |
69 |
|
|
long onMaxZoom(FXObject*,FXSelector,void*); |
70 |
|
|
long onColorOption(FXObject*,FXSelector,void*); |
71 |
|
|
long onSelContig(FXObject*, FXSelector, void*); |
72 |
|
|
long onHideGaps(FXObject*, FXSelector, void*); |
73 |
|
|
long onSelSeq(FXObject*, FXSelector, void*); //from list |
74 |
|
|
long onCmdGrps(FXObject*, FXSelector, void*); |
75 |
|
|
long onMaxRestore(FXObject*, FXSelector, void*); |
76 |
|
|
public: |
77 |
|
|
// Messages |
78 |
|
|
enum{ |
79 |
|
|
ID_CLXZOOM=FXMDIChild::ID_LAST, |
80 |
|
|
ID_CLYZOOM, |
81 |
|
|
ID_CLNOZOOM, |
82 |
|
|
ID_CL1PXZOOM,//1pixel zoom |
83 |
|
|
ID_CSTYLE1, |
84 |
|
|
ID_CSTYLE2, |
85 |
|
|
ID_CSTYLE3, |
86 |
|
|
ID_CLVIEW, |
87 |
|
|
ID_CLGRPS, |
88 |
|
|
ID_HIDEGAPS, |
89 |
|
|
ID_SELSEQ, |
90 |
|
|
ID_MAXRESTORE, |
91 |
|
|
ID_CONTIG |
92 |
|
|
}; |
93 |
|
|
public: |
94 |
|
|
MDIChild(FXMDIClient* p,const FXString& name,FXIcon* ic,FXMenuPane* mn, |
95 |
|
|
FXuint opts,FXint x,FXint y,FXint w,FXint h); |
96 |
|
|
~MDIChild(); |
97 |
|
|
virtual void create(); |
98 |
|
|
void showSeqInfo(ClSeq* seq); |
99 |
|
|
FXString getFileName() { return file; } |
100 |
|
|
bool isAceFile() { return isAce; } |
101 |
|
|
bool openFile(const char* filename); |
102 |
|
|
void loadGroups(FXString& lytfile); |
103 |
|
|
bool loadLayoutFile(FXString& lytfile); |
104 |
|
|
void selContig(int ctgno, bool hideGaps); |
105 |
|
|
}; |
106 |
|
|
|
107 |
|
|
#endif |