1 #ifndef _MUSSAWINDOW_H_
2 #define _MUSSAWINDOW_H_
5 #include <boost/shared_ptr.hpp>
9 #include <QProgressDialog>
13 #include "qui/MussaAlignedWindow.hpp"
14 #include "qui/motif_editor/MotifEditor.hpp"
15 #include "qui/mussa_setup_dialog/MussaSetupDialog.hpp"
16 #include "qui/seqbrowser/SequenceBrowserWidget.hpp"
17 #include "qui/SubanalysisWindow.hpp"
18 #include "qui/ThresholdWidget.hpp"
19 #include "qui/ZoomWidget.hpp"
26 class QAssistantClient;
28 class MussaWindow : public QMainWindow
33 MussaWindow(Mussa* analysis=0, QWidget *parent=0);
36 //! reset any attached window
39 //! switch to a new analysis
40 void setAnalysis(Mussa *new_analysis);
42 //! display an about box, contemplating the politics of the author list
45 //! \defgroup AnalysisFunctions Components related to running analyses
47 //! open a window to collect the information needed to create a new analysis
48 void createNewAnalysis();
49 //! launch a sub analysis
50 void createSubAnalysis();
53 //! \defgroup MotifHandling Handling of motif lists
62 //! load a mussa parameter file (which specifies an analysis to run)
64 //! load a previously run analysis
65 void loadSavedAnalysis();
66 //! set the soft threshold used by the Nway_Path algorithm
67 void setSoftThreshold(int thres);
68 //! update progress bar
69 void updateProgress(const std::string& description, int cur, int max);
71 //! open a new mussa window so one can compare analyses
72 void newMussaWindow();
74 void showMussaToolbar();
76 //! open new window showing our alignment
77 void viewMussaAlignment();
79 //! display mussagl manual
82 void assistantError(const QString message);
85 void changedAnnotations();
89 std::list<boost::shared_ptr<MussaAlignedWindow> > aligned_windows;
90 MotifEditor *motif_editor;
91 MussaSetupDialog setup_analysis_dialog;
92 SubanalysisWindow subanalysis_window;
94 // display our wonderful mussa output
95 SequenceBrowserWidget browser;
98 ThresholdWidget threshold;
99 QProgressDialog *progress_dialog;
101 QAction *aboutAction;
102 QAction *closeAction;
103 QAction *createNewAnalysisAction;
104 QAction *createSubAnalysisAction;
105 QAction *editMotifsAction;
106 QAction *loadMotifListAction;
107 QAction *loadMupaAction;
108 QAction *loadSavedAnalysisAction;
109 QAction *mussaManualAssistantAction;
110 QAction *newMussaWindowAction;
111 QAction *saveMotifListAction;
112 QAction *showMussaViewToolbarAction;
113 QAction *toggleMotifsAction;
114 QAction *saveBrowserPixmapAction;
115 QAction *whatsThisAction;
116 QAction *viewMussaAlignmentAction;
118 QAssistantClient *manualAssistant;
120 //! initialze the actions
122 //! initialize this windows menu object
123 void setupMainMenu();
124 //! initialize assistant client
125 void setupAssistant();
126 //! stub function to fill in QActions
127 void NotImplementedBox();
130 //! update the SequenceBrowser with our analysis
131 void updateAnalysis();
132 //! update the view of conserved windows
134 //! update annotations?
135 void updateAnnotations();