1 /* $Id: annotate_dialog.hpp 103491 2007-05-04 17:18:18Z kazimird $ 2 * =========================================================================== 3 * 4 * PUBLIC DOMAIN NOTICE 5 * National Center for Biotechnology Information 6 * 7 * This software/database is a "United States Government Work" under the 8 * terms of the United States Copyright Act. It was written as part of 9 * the author's official duties as a United States Government employee and 10 * thus cannot be copyrighted. This software/database is freely available 11 * to the public for use. The National Library of Medicine and the U.S. 12 * Government have not placed any restriction on its use or reproduction. 13 * 14 * Although all reasonable efforts have been taken to ensure the accuracy 15 * and reliability of the software and data, the NLM and the U.S. 16 * Government do not and cannot warrant the performance or results that 17 * may be obtained by using this software or data. The NLM and the U.S. 18 * Government disclaim all warranties, express or implied, including 19 * warranties of performance, merchantability or fitness for any particular 20 * purpose. 21 * 22 * Please cite the author in any work or product based on this material. 23 * 24 * =========================================================================== 25 * 26 * Authors: Paul Thiessen 27 * 28 * File Description: 29 * dialog for user annotations 30 * 31 * =========================================================================== 32 */ 33 34 #ifndef CN3D_ANNOTATE_DIALOG__HPP 35 #define CN3D_ANNOTATE_DIALOG__HPP 36 37 #include <corelib/ncbistd.hpp> 38 #include <corelib/ncbistl.hpp> 39 40 #ifdef __WXMSW__ 41 #include <windows.h> 42 #include <wx/msw/winundef.h> 43 #endif 44 #include <wx/wx.h> 45 46 #include <map> 47 #include <vector> 48 49 #include "style_manager.hpp" 50 51 52 BEGIN_SCOPE(Cn3D) 53 54 class StructureSet; 55 class MoleculeIdentifier; 56 57 class AnnotateDialog : public wxDialog 58 { 59 public: 60 AnnotateDialog(wxWindow *parent, StyleManager *manager, const StructureSet *set); 61 62 private: 63 64 StyleManager *styleManager; 65 const StructureSet *structureSet; 66 67 typedef std::map < const MoleculeIdentifier * , std::vector < bool > > ResidueMap; 68 ResidueMap highlightedResidues; HighlightsPresent(void) const69 bool HighlightsPresent(void) const { return (highlightedResidues.size() > 0); } 70 71 // event callbacks 72 void OnCloseWindow(wxCloseEvent& event); 73 void OnButton(wxCommandEvent& event); 74 void OnSelection(wxCommandEvent& event); 75 76 // GUI functions 77 void ResetListBoxes(void); 78 void SetButtonStates(void); 79 80 // action functions 81 void NewAnnotation(void); 82 void EditAnnotation(void); 83 void MoveAnnotation(void); 84 void DeleteAnnotation(void); 85 86 DECLARE_EVENT_TABLE() 87 }; 88 89 class AnnotationEditorDialog : public wxDialog 90 { 91 public: 92 AnnotationEditorDialog(wxWindow *parent, 93 StyleSettings *settings, const StructureSet *set, 94 const StyleManager::UserAnnotation& initialText); 95 96 private: 97 98 StyleSettings *styleSettings; 99 const StructureSet *structureSet; 100 101 // event callbacks 102 void OnCloseWindow(wxCloseEvent& event); 103 void OnButton(wxCommandEvent& event); 104 105 DECLARE_EVENT_TABLE() 106 }; 107 108 END_SCOPE(Cn3D) 109 110 #endif // CN3D_ANNOTATE_DIALOG__HPP 111