46 #include <wx/colordlg.h>
54 #include <wx/statline.h>
55 #include <wx/spinbutt.h>
56 #include <wx/spinctrl.h>
57 #include <wx/splitter.h>
58 #include <wx/listctrl.h>
59 #include <wx/treectrl.h>
60 #include <wx/notebook.h>
64 #define ID_NOTEBOOK 10000
66 #define ID_CANCEL 10002
68 #define ID_ALWAYS_APPLY 10004
69 #define ID_APPLY 10005
72 #define ID_PBB_SHOW 10006
73 #define ID_PBB_RENDER 10007
74 #define ID_PBB_COLOR 10008
75 #define ID_PBB_USER 10009
76 #define ID_PSIDE_SHOW 10010
77 #define ID_PSIDE_RENDER 10011
78 #define ID_PSIDE_COLOR 10012
79 #define ID_PSIDE_USER 10013
80 #define ID_NUC_SHOW 10014
81 #define ID_NUC_RENDER 10015
82 #define ID_NUC_COLOR 10016
83 #define ID_NUC_USER 10017
84 #define ID_NSIDE_SHOW 10018
85 #define ID_NSIDE_RENDER 10019
86 #define ID_NSIDE_COLOR 10020
87 #define ID_NSIDE_USER 10021
88 #define ID_HET_SHOW 10022
89 #define ID_HET_RENDER 10023
90 #define ID_HET_COLOR 10024
91 #define ID_HET_USER 10025
92 #define ID_SOLV_SHOW 10026
93 #define ID_SOLV_RENDER 10027
94 #define ID_SOLV_COLOR 10028
95 #define ID_SOLV_USER 10029
96 #define ID_CONN_SHOW 10030
97 #define ID_CONN_RENDER 10031
98 #define ID_CONN_COLOR 10032
99 #define ID_CONN_USER 10033
100 #define ID_HELX_SHOW 10034
101 #define ID_HELX_RENDER 10035
102 #define ID_HELX_COLOR 10036
103 #define ID_HELX_USER 10037
104 #define ID_STRN_SHOW 10038
105 #define ID_STRN_RENDER 10039
106 #define ID_STRN_COLOR 10040
107 #define ID_STRN_USER 10041
108 #define ID_VSS_SHOW 10042
109 #define ID_VSS_USER 10043
110 #define ID_HYD_SHOW 10044
111 #define ID_BG_USER 10045
114 #define ID_TEXTCTRL 10046
115 #define ID_SPINBUTTON 10047
118 #define ID_S_PROT 10048
119 #define ID_S_NUC 10049
120 #define ID_C_PROT_TYPE 10050
121 #define ID_C_NUC_TYPE 10051
122 #define ID_C_PROT_NUM 10052
123 #define ID_C_NUC_NUM 10053
124 #define ID_K_PROT_CONTRAST 10054
125 #define ID_K_NUC_CONTRAST 10055
126 #define ID_K_PROT_TERM 10056
127 #define ID_K_NUC_TERM 10057
128 #define ID_LINE 10058
129 #define ID_K_ION 10059
160 wxDialog(parent, -1, "
Style Options", wxPoint(400, 100), wxDefaultSize, wxDEFAULT_DIALOG_STYLE),
161 editedSettings(settingsToEdit), originalSettings(*settingsToEdit),
168 wxPanel *panel =
new wxPanel(
this, -1);
182 SetControls(*editedSettings);
186 topSizer->Fit(panel);
187 topSizer->SetSizeHints(
this);
254 vec->
Set(((
double) wxcol.Red())/255.0, ((
double) wxcol.Green())/255.0, ((
double) wxcol.Blue())/255.0);
259 int showID,
int renderID,
int colorID,
int userID)
264 (choice = wxDynamicCast(FindWindow(showID), wxChoice)) !=
NULL &&
266 (choice = wxDynamicCast(FindWindow(renderID), wxChoice)) !=
NULL &&
268 (choice = wxDynamicCast(FindWindow(colorID), wxChoice)) !=
NULL &&
270 (button = wxDynamicCast(FindWindow(userID), wxButton)) !=
NULL &&
275 static bool GetChecked(wxCheckBox *checkbox,
bool *isChecked)
277 if (!checkbox)
return false;
278 *isChecked = checkbox->GetValue();
283 int showID,
int renderID,
int colorID,
int userID)
285 wxCheckBox *checkbox;
289 (checkbox = wxDynamicCast(FindWindow(showID), wxCheckBox)) !=
NULL &&
291 (choice = wxDynamicCast(FindWindow(renderID), wxChoice)) !=
NULL &&
293 (choice = wxDynamicCast(FindWindow(colorID), wxChoice)) !=
NULL &&
295 (button = wxDynamicCast(FindWindow(userID), wxButton)) !=
NULL &&
302 if (!spinctrl)
return false;
303 *
value = spinctrl->GetValue();
308 int spacingID,
int typeID,
int numberingID,
int terminiID,
int whiteID)
310 wxSpinCtrl *spinctrl;
312 wxCheckBox *checkbox;
314 (spinctrl = wxDynamicCast(FindWindow(spacingID), wxSpinCtrl)) !=
NULL &&
316 (choice = wxDynamicCast(FindWindow(typeID), wxChoice)) !=
NULL &&
318 (choice = wxDynamicCast(FindWindow(numberingID), wxChoice)) !=
NULL &&
320 (checkbox = wxDynamicCast(FindWindow(terminiID), wxCheckBox)) !=
NULL &&
322 (checkbox = wxDynamicCast(FindWindow(whiteID), wxCheckBox)) !=
NULL &&
329 wxCheckBox *checkbox;
351 (checkbox = wxDynamicCast(FindWindow(
ID_VSS_SHOW), wxCheckBox)) !=
NULL &&
355 (checkbox = wxDynamicCast(FindWindow(
ID_HYD_SHOW), wxCheckBox)) !=
NULL &&
357 (button = wxDynamicCast(FindWindow(
ID_BG_USER), wxButton)) !=
NULL &&
371 (checkbox = wxDynamicCast(FindWindow(
ID_K_ION), wxCheckBox)) !=
NULL &&
374 if (!okay)
ERRORMSG(
"StyleDialog::GetValues() - control/parameter mismatch: invalid style?");
380 int field = choice->FindString(name.c_str());
381 if (field < 0)
return false;
382 choice->SetSelection(field);
388 if (!button)
return false;
390 static_cast<unsigned char>((
color[0] + 0.000001) * 255),
391 static_cast<unsigned char>((
color[1] + 0.000001) * 255),
392 static_cast<unsigned char>((
color[2] + 0.000001) * 255)
397 button->SetForegroundColour(wxcol);
398 button->SetBackgroundColour(wxcol);
403 int showID,
int renderID,
int colorID,
int userID)
410 (choice = wxDynamicCast(FindWindow(showID), wxChoice)) !=
NULL &&
413 (choice = wxDynamicCast(FindWindow(renderID), wxChoice)) !=
NULL &&
416 (choice = wxDynamicCast(FindWindow(colorID), wxChoice)) !=
NULL &&
418 (button = wxDynamicCast(FindWindow(userID), wxButton)) !=
NULL &&
425 if (!checkbox)
return false;
426 checkbox->SetValue(isChecked);
431 int showID,
int renderID,
int colorID,
int userID)
434 wxCheckBox *checkbox;
438 (checkbox = wxDynamicCast(FindWindow(showID), wxCheckBox)) !=
NULL &&
441 (choice = wxDynamicCast(FindWindow(renderID), wxChoice)) !=
NULL &&
444 (choice = wxDynamicCast(FindWindow(colorID), wxChoice)) !=
NULL &&
446 (button = wxDynamicCast(FindWindow(userID), wxButton)) !=
NULL &&
453 if (!spinctrl)
return false;
454 spinctrl->SetValue(
value);
459 int spacingID,
int typeID,
int numberingID,
int terminiID,
int whiteID)
462 wxSpinCtrl *spinctrl;
463 wxCheckBox *checkbox;
466 (spinctrl = wxDynamicCast(FindWindow(spacingID), wxSpinCtrl)) !=
NULL &&
469 (choice = wxDynamicCast(FindWindow(typeID), wxChoice)) !=
NULL &&
472 (choice = wxDynamicCast(FindWindow(numberingID), wxChoice)) !=
NULL &&
474 (checkbox = wxDynamicCast(FindWindow(terminiID), wxCheckBox)) !=
NULL &&
476 (checkbox = wxDynamicCast(FindWindow(whiteID), wxCheckBox)) !=
NULL &&
483 wxCheckBox *checkbox;
504 (checkbox = wxDynamicCast(FindWindow(
ID_VSS_SHOW), wxCheckBox)) !=
NULL &&
508 (checkbox = wxDynamicCast(FindWindow(
ID_HYD_SHOW), wxCheckBox)) !=
NULL &&
510 (button = wxDynamicCast(FindWindow(
ID_BG_USER), wxButton)) !=
NULL &&
524 (checkbox = wxDynamicCast(FindWindow(
ID_K_ION), wxCheckBox)) !=
NULL &&
527 if (!okay)
ERRORMSG(
"StyleDialog::SetControls() - control/parameter mismatch: invalid style?");
549 switch (event.GetId()) {
604 wxButton *button = wxDynamicCast(FindWindow(bID), wxButton);
606 ERRORMSG(
"StyleDialog::HandleColorButton() - can't find button of given ID");
610 wxColour userColor = wxGetColourFromUser(
this, button->GetBackgroundColour());
611 if (userColor.Ok()) {
612 button->SetBackgroundColour(userColor);
626 ERRORMSG(
"StyleDialog::OnChange() - error adjusting settings/controls");
630 if ((wxDynamicCast(FindWindow(
ID_ALWAYS_APPLY), wxCheckBox))->GetValue()) {
659 wxBoxSizer *item0 =
new wxBoxSizer( wxVERTICAL );
661 wxNotebook *item2 =
new wxNotebook( parent,
ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0 );
664 wxPanel *item3 =
new wxPanel( item2, -1 );
666 item2->AddPage( item3,
"Settings" );
668 wxPanel *item4 =
new wxPanel( item2, -1 );
670 item2->AddPage( item4,
"Labels" );
672 wxPanel *item5 =
new wxPanel( item2, -1 );
674 item2->AddPage( item5,
"Details" );
676 item0->Add( item2, 0, wxALIGN_CENTRE|wxALL, 5 );
678 wxBoxSizer *item6 =
new wxBoxSizer( wxHORIZONTAL );
680 wxButton *item7 =
new wxButton( parent,
ID_DONE,
"Done", wxDefaultPosition, wxDefaultSize, 0 );
682 item6->Add( item7, 0, wxALIGN_CENTRE|wxALL, 5 );
684 wxButton *item8 =
new wxButton( parent,
ID_CANCEL,
"Cancel", wxDefaultPosition, wxDefaultSize, 0 );
685 item6->Add( item8, 0, wxALIGN_CENTRE|wxALL, 5 );
687 item6->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 );
689 wxStaticText *item9 =
new wxStaticText( parent,
ID_TEXT,
"Apply after each change?", wxDefaultPosition, wxDefaultSize, 0 );
690 item6->Add( item9, 0, wxALIGN_CENTRE|wxALL, 5 );
692 wxCheckBox *item10 =
new wxCheckBox( parent,
ID_ALWAYS_APPLY,
"", wxDefaultPosition, wxDefaultSize, 0 );
693 item10->SetValue(
TRUE );
694 item6->Add( item10, 0, wxALIGN_CENTRE|wxALL, 5 );
696 wxButton *item11 =
new wxButton( parent,
ID_APPLY,
"Apply", wxDefaultPosition, wxDefaultSize, 0 );
697 item6->Add( item11, 0, wxALIGN_CENTRE|wxALL, 5 );
699 item0->Add( item6, 0, wxALIGN_CENTRE|wxALL, 5 );
703 parent->SetAutoLayout(
TRUE );
704 parent->SetSizer( item0 );
707 item0->Fit( parent );
708 item0->SetSizeHints( parent );
717 wxBoxSizer *item0 =
new wxBoxSizer( wxVERTICAL );
719 wxStaticBox *item2 =
new wxStaticBox( parent, -1,
"Rendering Settings" );
720 wxStaticBoxSizer *item1 =
new wxStaticBoxSizer( item2, wxVERTICAL );
722 wxFlexGridSizer *item3 =
new wxFlexGridSizer( 5, 0, 0 );
724 wxStaticText *item4 =
new wxStaticText( parent,
ID_TEXT,
"Group", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
725 item3->Add( item4, 0, wxALIGN_CENTRE|wxALL, 5 );
727 wxStaticText *item5 =
new wxStaticText( parent,
ID_TEXT,
"Show", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
728 item3->Add( item5, 0, wxALIGN_CENTRE|wxALL, 5 );
730 wxStaticText *item6 =
new wxStaticText( parent,
ID_TEXT,
"Rendering", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
731 item3->Add( item6, 0, wxALIGN_CENTRE|wxALL, 5 );
733 wxStaticText *item7 =
new wxStaticText( parent,
ID_TEXT,
"Color Scheme", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
734 item3->Add( item7, 0, wxALIGN_CENTRE|wxALL, 5 );
736 wxStaticText *item8 =
new wxStaticText( parent,
ID_TEXT,
"User Color", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
737 item3->Add( item8, 0, wxALIGN_CENTRE|wxALL, 5 );
739 wxStaticText *item9 =
new wxStaticText( parent,
ID_TEXT,
"Protein backbone:", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
740 item3->Add( item9, 0, wxALIGN_CENTRE|wxALL, 5 );
749 wxChoice *item10 =
new wxChoice( parent,
ID_PBB_SHOW, wxDefaultPosition, wxDefaultSize, 4, strs10, 0 );
750 item3->Add( item10, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
761 wxChoice *item11 =
new wxChoice( parent,
ID_PBB_RENDER, wxDefaultPosition, wxDefaultSize, 6, strs11, 0 );
762 item3->Add( item11, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
771 "Secondary Structure",
781 "Information Content",
784 "Normalized Block Fit",
787 wxChoice *item12 =
new wxChoice( parent,
ID_PBB_COLOR, wxDefaultPosition, wxDefaultSize, 20, strs12, 0 );
788 item3->Add( item12, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
790 wxButton *item13 =
new wxButton( parent,
ID_PBB_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
791 item3->Add( item13, 0, wxALIGN_CENTRE|wxALL, 5 );
793 wxStaticText *item14 =
new wxStaticText( parent,
ID_TEXT,
"Protein sidechains:", wxDefaultPosition, wxDefaultSize, 0 );
794 item3->Add( item14, 0, wxALIGN_CENTRE|wxALL, 5 );
796 wxCheckBox *item15 =
new wxCheckBox( parent,
ID_PSIDE_SHOW,
"", wxDefaultPosition, wxDefaultSize, 0 );
797 item3->Add( item15, 0, wxALIGN_CENTRE|wxALL, 5 );
806 wxChoice *item16 =
new wxChoice( parent,
ID_PSIDE_RENDER, wxDefaultPosition, wxDefaultSize, 4, strs16, 0 );
807 item3->Add( item16, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
825 "Information Content",
828 "Normalized Block Fit",
831 wxChoice *item17 =
new wxChoice( parent,
ID_PSIDE_COLOR, wxDefaultPosition, wxDefaultSize, 19, strs17, 0 );
832 item3->Add( item17, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
834 wxButton *item18 =
new wxButton( parent,
ID_PSIDE_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
835 item3->Add( item18, 0, wxALIGN_CENTRE|wxALL, 5 );
837 wxStaticText *item19 =
new wxStaticText( parent,
ID_TEXT,
"Nucleotide backbone:", wxDefaultPosition, wxDefaultSize, 0 );
838 item3->Add( item19, 0, wxALIGN_CENTRE|wxALL, 5 );
847 wxChoice *item20 =
new wxChoice( parent,
ID_NUC_SHOW, wxDefaultPosition, wxDefaultSize, 4, strs20, 0 );
848 item3->Add( item20, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
859 wxChoice *item21 =
new wxChoice( parent,
ID_NUC_RENDER, wxDefaultPosition, wxDefaultSize, 6, strs21, 0 );
860 item3->Add( item21, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
873 wxChoice *item22 =
new wxChoice( parent,
ID_NUC_COLOR, wxDefaultPosition, wxDefaultSize, 8, strs22, 0 );
874 item3->Add( item22, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
876 wxButton *item23 =
new wxButton( parent,
ID_NUC_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
877 item3->Add( item23, 0, wxALIGN_CENTRE|wxALL, 5 );
879 wxStaticText *item24 =
new wxStaticText( parent,
ID_TEXT,
"Nucleotide sidechains:", wxDefaultPosition, wxDefaultSize, 0 );
880 item3->Add( item24, 0, wxALIGN_CENTRE|wxALL, 5 );
882 wxCheckBox *item25 =
new wxCheckBox( parent,
ID_NSIDE_SHOW,
"", wxDefaultPosition, wxDefaultSize, 0 );
883 item3->Add( item25, 0, wxALIGN_CENTRE|wxALL, 5 );
892 wxChoice *item26 =
new wxChoice( parent,
ID_NSIDE_RENDER, wxDefaultPosition, wxDefaultSize, 4, strs26, 0 );
893 item3->Add( item26, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
906 wxChoice *item27 =
new wxChoice( parent,
ID_NSIDE_COLOR, wxDefaultPosition, wxDefaultSize, 8, strs27, 0 );
907 item3->Add( item27, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
909 wxButton *item28 =
new wxButton( parent,
ID_NSIDE_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
910 item3->Add( item28, 0, wxALIGN_CENTRE|wxALL, 5 );
912 wxStaticText *item29 =
new wxStaticText( parent,
ID_TEXT,
"Heterogens:", wxDefaultPosition, wxDefaultSize, 0 );
913 item3->Add( item29, 0, wxALIGN_CENTRE|wxALL, 5 );
915 wxCheckBox *item30 =
new wxCheckBox( parent,
ID_HET_SHOW,
"", wxDefaultPosition, wxDefaultSize, 0 );
916 item3->Add( item30, 0, wxALIGN_CENTRE|wxALL, 5 );
925 wxChoice *item31 =
new wxChoice( parent,
ID_HET_RENDER, wxDefaultPosition, wxDefaultSize, 4, strs31, 0 );
926 item3->Add( item31, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
936 wxChoice *item32 =
new wxChoice( parent,
ID_HET_COLOR, wxDefaultPosition, wxDefaultSize, 5, strs32, 0 );
937 item3->Add( item32, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
939 wxButton *item33 =
new wxButton( parent,
ID_HET_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
940 item3->Add( item33, 0, wxALIGN_CENTRE|wxALL, 5 );
942 wxStaticText *item34 =
new wxStaticText( parent,
ID_TEXT,
"Solvents:", wxDefaultPosition, wxDefaultSize, 0 );
943 item3->Add( item34, 0, wxALIGN_CENTRE|wxALL, 5 );
945 wxCheckBox *item35 =
new wxCheckBox( parent,
ID_SOLV_SHOW,
"", wxDefaultPosition, wxDefaultSize, 0 );
946 item3->Add( item35, 0, wxALIGN_CENTRE|wxALL, 5 );
955 wxChoice *item36 =
new wxChoice( parent,
ID_SOLV_RENDER, wxDefaultPosition, wxDefaultSize, 4, strs36, 0 );
956 item3->Add( item36, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
966 wxChoice *item37 =
new wxChoice( parent,
ID_SOLV_COLOR, wxDefaultPosition, wxDefaultSize, 5, strs37, 0 );
967 item3->Add( item37, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
969 wxButton *item38 =
new wxButton( parent,
ID_SOLV_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
970 item3->Add( item38, 0, wxALIGN_CENTRE|wxALL, 5 );
972 wxStaticText *item39 =
new wxStaticText( parent,
ID_TEXT,
"Connections:", wxDefaultPosition, wxDefaultSize, 0 );
973 item3->Add( item39, 0, wxALIGN_CENTRE|wxALL, 5 );
975 wxCheckBox *item40 =
new wxCheckBox( parent,
ID_CONN_SHOW,
"", wxDefaultPosition, wxDefaultSize, 0 );
976 item3->Add( item40, 0, wxALIGN_CENTRE|wxALL, 5 );
983 wxChoice *item41 =
new wxChoice( parent,
ID_CONN_RENDER, wxDefaultPosition, wxDefaultSize, 2, strs41, 0 );
984 item3->Add( item41, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
990 wxChoice *item42 =
new wxChoice( parent,
ID_CONN_COLOR, wxDefaultPosition, wxDefaultSize, 1, strs42, 0 );
991 item3->Add( item42, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
993 wxButton *item43 =
new wxButton( parent,
ID_CONN_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
994 item3->Add( item43, 0, wxALIGN_CENTRE|wxALL, 5 );
996 wxStaticText *item44 =
new wxStaticText( parent,
ID_TEXT,
"Helix objects:", wxDefaultPosition, wxDefaultSize, 0 );
997 item3->Add( item44, 0, wxALIGN_CENTRE|wxALL, 5 );
999 wxCheckBox *item45 =
new wxCheckBox( parent,
ID_HELX_SHOW,
"", wxDefaultPosition, wxDefaultSize, 0 );
1000 item3->Add( item45, 0, wxALIGN_CENTRE|wxALL, 5 );
1007 wxChoice *item46 =
new wxChoice( parent,
ID_HELX_RENDER, wxDefaultPosition, wxDefaultSize, 2, strs46, 0 );
1008 item3->Add( item46, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1015 "Secondary Structure",
1018 wxChoice *item47 =
new wxChoice( parent,
ID_HELX_COLOR, wxDefaultPosition, wxDefaultSize, 5, strs47, 0 );
1019 item3->Add( item47, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1021 wxButton *item48 =
new wxButton( parent,
ID_HELX_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
1022 item3->Add( item48, 0, wxALIGN_CENTRE|wxALL, 5 );
1024 wxStaticText *item49 =
new wxStaticText( parent,
ID_TEXT,
"Strand objects:", wxDefaultPosition, wxDefaultSize, 0 );
1025 item3->Add( item49, 0, wxALIGN_CENTRE|wxALL, 5 );
1027 wxCheckBox *item50 =
new wxCheckBox( parent,
ID_STRN_SHOW,
"", wxDefaultPosition, wxDefaultSize, 0 );
1028 item3->Add( item50, 0, wxALIGN_CENTRE|wxALL, 5 );
1035 wxChoice *item51 =
new wxChoice( parent,
ID_STRN_RENDER, wxDefaultPosition, wxDefaultSize, 2, strs51, 0 );
1036 item3->Add( item51, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1043 "Secondary Structure",
1046 wxChoice *item52 =
new wxChoice( parent,
ID_STRN_COLOR, wxDefaultPosition, wxDefaultSize, 5, strs52, 0 );
1047 item3->Add( item52, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1049 wxButton *item53 =
new wxButton( parent,
ID_STRN_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
1050 item3->Add( item53, 0, wxALIGN_CENTRE|wxALL, 5 );
1052 wxStaticText *item54 =
new wxStaticText( parent,
ID_TEXT,
"Virtual disulfides:", wxDefaultPosition, wxDefaultSize, 0 );
1053 item3->Add( item54, 0, wxALIGN_CENTRE|wxALL, 5 );
1055 wxCheckBox *item55 =
new wxCheckBox( parent,
ID_VSS_SHOW,
"", wxDefaultPosition, wxDefaultSize, 0 );
1056 item3->Add( item55, 0, wxALIGN_CENTRE|wxALL, 5 );
1058 item3->Add( 5, 5, 0, wxALIGN_CENTRE|wxALL, 5 );
1060 item3->Add( 5, 5, 0, wxALIGN_CENTRE|wxALL, 5 );
1062 wxButton *item56 =
new wxButton( parent,
ID_VSS_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
1063 item3->Add( item56, 0, wxALIGN_CENTRE|wxALL, 5 );
1065 wxStaticText *item57 =
new wxStaticText( parent,
ID_TEXT,
"Hydrogens:", wxDefaultPosition, wxDefaultSize, 0 );
1066 item3->Add( item57, 0, wxALIGN_CENTRE|wxALL, 5 );
1068 wxCheckBox *item58 =
new wxCheckBox( parent,
ID_HYD_SHOW,
"", wxDefaultPosition, wxDefaultSize, 0 );
1069 item3->Add( item58, 0, wxALIGN_CENTRE|wxALL, 5 );
1071 item3->Add( 5, 5, 0, wxALIGN_CENTRE|wxALL, 5 );
1073 wxStaticText *item59 =
new wxStaticText( parent,
ID_TEXT,
"Background:", wxDefaultPosition, wxDefaultSize, 0 );
1074 item3->Add( item59, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1076 wxButton *item60 =
new wxButton( parent,
ID_BG_USER,
"Set Color", wxDefaultPosition, wxDefaultSize, 0 );
1077 item3->Add( item60, 0, wxALIGN_CENTRE|wxALL, 5 );
1079 item1->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );
1081 item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );
1085 parent->SetAutoLayout(
TRUE );
1086 parent->SetSizer( item0 );
1089 item0->Fit( parent );
1090 item0->SetSizeHints( parent );
1099 wxBoxSizer *item0 =
new wxBoxSizer( wxVERTICAL );
1101 wxStaticBox *item2 =
new wxStaticBox( parent, -1,
"Labeling Settings" );
1102 wxStaticBoxSizer *item1 =
new wxStaticBoxSizer( item2, wxVERTICAL );
1104 wxBoxSizer *item3 =
new wxBoxSizer( wxVERTICAL );
1106 wxGridSizer *item4 =
new wxGridSizer( 3, 5, 0 );
1108 item4->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 );
1110 wxStaticText *item5 =
new wxStaticText( parent,
ID_TEXT,
"Protein backbone:", wxDefaultPosition, wxDefaultSize, 0 );
1111 item4->Add( item5, 0, wxALIGN_CENTRE|wxALL, 5 );
1113 wxStaticText *item6 =
new wxStaticText( parent,
ID_TEXT,
"Nucleotide backbone:", wxDefaultPosition, wxDefaultSize, 0 );
1114 item4->Add( item6, 0, wxALIGN_CENTRE|wxALL, 5 );
1116 wxStaticText *item7 =
new wxStaticText( parent,
ID_TEXT,
"Spacing (0 = none):", wxDefaultPosition, wxDefaultSize, 0 );
1117 item4->Add( item7, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1119 wxSpinCtrl *item8 =
new wxSpinCtrl( parent,
ID_S_PROT,
"0", wxDefaultPosition, wxDefaultSize, 0, 0, 100, 0 );
1120 item4->Add( item8, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1122 wxSpinCtrl *item9 =
new wxSpinCtrl( parent,
ID_S_NUC,
"0", wxDefaultPosition, wxDefaultSize, 0, 0, 100, 0 );
1123 item4->Add( item9, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1125 wxStaticText *item10 =
new wxStaticText( parent,
ID_TEXT,
"Type:", wxDefaultPosition, wxDefaultSize, 0 );
1126 item4->Add( item10, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1133 wxChoice *item11 =
new wxChoice( parent,
ID_C_PROT_TYPE, wxDefaultPosition, wxDefaultSize, 2, strs11, 0 );
1134 item4->Add( item11, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1141 wxChoice *item12 =
new wxChoice( parent,
ID_C_NUC_TYPE, wxDefaultPosition, wxDefaultSize, 2, strs12, 0 );
1142 item4->Add( item12, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1144 wxStaticText *item13 =
new wxStaticText( parent,
ID_TEXT,
"Numbering:", wxDefaultPosition, wxDefaultSize, 0 );
1145 item4->Add( item13, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1153 wxChoice *item14 =
new wxChoice( parent,
ID_C_PROT_NUM, wxDefaultPosition, wxDefaultSize, 3, strs14, 0 );
1154 item4->Add( item14, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1162 wxChoice *item15 =
new wxChoice( parent,
ID_C_NUC_NUM, wxDefaultPosition, wxDefaultSize, 3, strs15, 0 );
1163 item4->Add( item15, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1165 wxStaticText *item16 =
new wxStaticText( parent,
ID_TEXT,
"Contrast with background:", wxDefaultPosition, wxDefaultSize, 0 );
1166 item4->Add( item16, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1168 wxCheckBox *item17 =
new wxCheckBox( parent,
ID_K_PROT_CONTRAST,
"", wxDefaultPosition, wxDefaultSize, 0 );
1169 item4->Add( item17, 0, wxALIGN_CENTRE|wxALL, 5 );
1171 wxCheckBox *item18 =
new wxCheckBox( parent,
ID_K_NUC_CONTRAST,
"", wxDefaultPosition, wxDefaultSize, 0 );
1172 item4->Add( item18, 0, wxALIGN_CENTRE|wxALL, 5 );
1174 wxStaticText *item19 =
new wxStaticText( parent,
ID_TEXT,
"Termini:", wxDefaultPosition, wxDefaultSize, 0 );
1175 item4->Add( item19, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1177 wxCheckBox *item20 =
new wxCheckBox( parent,
ID_K_PROT_TERM,
"", wxDefaultPosition, wxDefaultSize, 0 );
1178 item4->Add( item20, 0, wxALIGN_CENTRE|wxALL, 5 );
1180 wxCheckBox *item21 =
new wxCheckBox( parent,
ID_K_NUC_TERM,
"", wxDefaultPosition, wxDefaultSize, 0 );
1181 item4->Add( item21, 0, wxALIGN_CENTRE|wxALL, 5 );
1183 item3->Add( item4, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );
1186 wxStaticLine *item22 =
new wxStaticLine( parent,
ID_LINE, wxDefaultPosition, wxSize(20,-1), wxLI_HORIZONTAL );
1187 item3->Add(item22, 0, wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
1190 wxBoxSizer *item23 =
new wxBoxSizer( wxHORIZONTAL );
1192 wxStaticText *item24 =
new wxStaticText( parent,
ID_TEXT,
"Metal ion labels:", wxDefaultPosition, wxDefaultSize, 0 );
1193 item23->Add( item24, 0, wxALIGN_CENTRE|wxALL, 5 );
1195 item23->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 );
1197 wxCheckBox *item25 =
new wxCheckBox( parent,
ID_K_ION,
"", wxDefaultPosition, wxDefaultSize, 0 );
1198 item23->Add( item25, 0, wxALIGN_CENTRE|wxALL, 5 );
1200 item3->Add( item23, 0, wxALIGN_CENTRE|wxALL, 5 );
1202 item1->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );
1204 item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );
1208 parent->SetAutoLayout(
TRUE );
1209 parent->SetSizer( item0 );
1212 item0->Fit( parent );
1213 item0->SetSizeHints( parent );
1227 wxBoxSizer *item0 =
new wxBoxSizer(wxVERTICAL);
1228 wxStaticBox *item2 =
new wxStaticBox(parent, -1,
"Rendering Details");
1229 wxStaticBoxSizer *item1 =
new wxStaticBoxSizer(item2, wxVERTICAL);
1230 wxFlexGridSizer *
grid =
new wxFlexGridSizer(2, 0, 0);
1233 wxStaticText *item4 =
new wxStaticText(parent,
ID_TEXT,
"Space fill size:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);
1234 grid->Add(item4, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
1236 0.0, 10.0, 0.1, 1.0,
1237 wxDefaultPosition, wxSize(80, SPIN_CTRL_HEIGHT), 0,
1238 wxDefaultPosition, wxSize(-1, SPIN_CTRL_HEIGHT));
1243 wxStaticText *item7 =
new wxStaticText(parent,
ID_TEXT,
"Tube radius:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);
1244 grid->Add(item7, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
1246 0.0, 5.0, 0.02, 0.3,
1247 wxDefaultPosition, wxSize(80, SPIN_CTRL_HEIGHT), 0,
1248 wxDefaultPosition, wxSize(-1, SPIN_CTRL_HEIGHT));
1253 wxStaticText *item10 =
new wxStaticText(parent,
ID_TEXT,
"Worm tube radius:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);
1254 grid->Add(item10, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
1256 0.0, 5.0, 0.02, 0.3,
1257 wxDefaultPosition, wxSize(80, SPIN_CTRL_HEIGHT), 0,
1258 wxDefaultPosition, wxSize(-1, SPIN_CTRL_HEIGHT));
1263 wxStaticText *item13 =
new wxStaticText(parent,
ID_TEXT,
"Ball radius:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);
1264 grid->Add(item13, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
1266 0.0, 10.0, 0.05, 0.4,
1267 wxDefaultPosition, wxSize(80, SPIN_CTRL_HEIGHT), 0,
1268 wxDefaultPosition, wxSize(-1, SPIN_CTRL_HEIGHT));
1273 wxStaticText *item16 =
new wxStaticText(parent,
ID_TEXT,
"Stick radius:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);
1274 grid->Add(item16, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
1276 0.0, 5.0, 0.01, 0.2,
1277 wxDefaultPosition, wxSize(80, SPIN_CTRL_HEIGHT), 0,
1278 wxDefaultPosition, wxSize(-1, SPIN_CTRL_HEIGHT));
1283 grid->Add(1, 1, 0, wxALIGN_CENTRE|wxALL, 5);
1284 grid->Add(1, 1, 0, wxALIGN_CENTRE|wxALL, 5);
1288 wxStaticText *item19 =
new wxStaticText(parent,
ID_TEXT,
"Helix radius:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);
1289 grid->Add(item19, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
1291 0.0, 10.0, 0.1, 1.8,
1292 wxDefaultPosition, wxSize(80, SPIN_CTRL_HEIGHT), 0,
1293 wxDefaultPosition, wxSize(-1, SPIN_CTRL_HEIGHT));
1298 wxStaticText *item22 =
new wxStaticText(parent,
ID_TEXT,
"Strand width:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);
1299 grid->Add(item22, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
1301 0.0, 10.0, 0.1, 2.0,
1302 wxDefaultPosition, wxSize(80, SPIN_CTRL_HEIGHT), 0,
1303 wxDefaultPosition, wxSize(-1, SPIN_CTRL_HEIGHT));
1308 wxStaticText *item25 =
new wxStaticText(parent,
ID_TEXT,
"Strand thickness:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);
1309 grid->Add(item25, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
1311 0.0, 5.0, 0.05, 0.5,
1312 wxDefaultPosition, wxSize(80, SPIN_CTRL_HEIGHT), 0,
1313 wxDefaultPosition, wxSize(-1, SPIN_CTRL_HEIGHT));
1317 item1->Add(
grid, 0, wxALIGN_CENTRE|wxALL, 5);
1318 item0->Add(item1, 0, wxALIGN_CENTRE|wxALL, 5);
1321 parent->SetAutoLayout(
TRUE);
1322 parent->SetSizer(item0);
1326 item0->SetSizeHints(parent);
EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX, CAdjustFeaturesForGaps::OnKnownUnknownSelected) EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX1
wxTextCtrl * GetTextCtrl(void) const
void PostRedrawAllStructures(void)
void PostRedrawAllSequenceViewers(void)
StyleManager * styleManager
ncbi::FloatingPointSpinCtrl * fpStrandWidth
void OnButton(wxCommandEvent &event)
static TypeStringAssociator< StyleSettings::eLabelType > LabelTypeStrings
ncbi::FloatingPointSpinCtrl * fpHelixRadius
bool GetValues(StyleSettings *settings)
bool GetBackboneStyle(StyleSettings::BackboneStyle *bbStyle, int showID, int renderID, int colorID, int userID)
bool HandleColorButton(int bID)
ncbi::FloatingPointSpinCtrl * fpStickRadius
ncbi::FloatingPointSpinCtrl * fpBallRadius
bool GetGeneralStyle(StyleSettings::GeneralStyle *gStyle, int showID, int renderID, int colorID, int userID)
bool SetLabelStyle(const StyleSettings::LabelStyle &lStyle, int spacingID, int typeID, int numberingID, int terminiID, int whiteID)
bool SetControls(const StyleSettings &settings)
const StructureSet * structureSet
static TypeStringAssociator< StyleSettings::eColorScheme > ColorSchemeStrings
static TypeStringAssociator< StyleSettings::eNumberType > NumberTypeStrings
bool GetLabelStyle(StyleSettings::LabelStyle *lStyle, int spacingID, int typeID, int numberingID, int terminiID, int whiteID)
const StyleSettings originalSettings
StyleSettings * editedSettings
void OnCloseWindow(wxCloseEvent &event)
ncbi::FloatingPointSpinCtrl * fpTubeWormRadius
ncbi::FloatingPointSpinCtrl * fpTubeRadius
static void SetupStyleStrings(void)
bool SetGeneralStyle(const StyleSettings::GeneralStyle &gStyle, int showID, int renderID, int colorID, int userID)
static TypeStringAssociator< StyleSettings::eBackboneType > BackboneTypeStrings
void OnSpin(wxSpinEvent &event)
ncbi::FloatingPointSpinCtrl * fpSpaceFill
static TypeStringAssociator< StyleSettings::eDrawingStyle > DrawingStyleStrings
ncbi::FloatingPointSpinCtrl * fpStrandThickness
void OnChange(wxCommandEvent &event)
bool SetBackboneStyle(const StyleSettings::BackboneStyle &bbStyle, int showID, int renderID, int colorID, int userID)
bool CheckStyleSettings(StyleSettings *settings)
LabelStyle nucleotideLabels
GeneralStyle helixObjects
GeneralStyle proteinSidechains
BackboneStyle nucleotideBackbone
GeneralStyle nucleotideSidechains
double spaceFillProportion
GeneralStyle strandObjects
BackboneStyle proteinBackbone
Vector virtualDisulfideColor
bool Get(const std::string &name, T *type) const
void Associate(const T &type, const std::string &name)
void Set(double xs, double ys, double zs)
Include a standard set of the NCBI C++ Toolkit most basic headers.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_SCOPE(ns)
Define a new scope.
Messenger * GlobalMessenger(void)
static FloatingPointSpinCtrl * gfpSpaceFill
static FloatingPointSpinCtrl * gfpTubeRadius
static bool SetButtonColor(wxButton *button, const Vector &color)
static bool SetChoiceToString(wxChoice *choice, const string &name)
static FloatingPointSpinCtrl * gfpHelixRadius
static FloatingPointSpinCtrl * gfpStickRadius
static bool SetInteger(wxSpinCtrl *spinctrl, int value)
static FloatingPointSpinCtrl * gfpTubeWormRadius
wxSizer * LayoutSettingsPage(wxPanel *parent, bool call_fit=TRUE, bool set_sizer=TRUE)
wxSizer * LayoutDetailsPage(wxPanel *parent, bool call_fit=TRUE, bool set_sizer=TRUE)
static FloatingPointSpinCtrl * gfpStrandThickness
#define ID_K_PROT_CONTRAST
static bool SetChecked(wxCheckBox *checkbox, bool isChecked)
static bool GetInteger(wxSpinCtrl *spinctrl, int *value)
static bool GetChecked(wxCheckBox *checkbox, bool *isChecked)
static bool ConvertColor(const wxColour &wxcol, Vector *vec)
wxSizer * LayoutNotebook(wxPanel *parent, bool call_fit=TRUE, bool set_sizer=TRUE)
#define ID_K_NUC_CONTRAST
static FloatingPointSpinCtrl * gfpStrandWidth
wxSizer * LayoutLabelsPage(wxPanel *parent, bool call_fit=TRUE, bool set_sizer=TRUE)
static FloatingPointSpinCtrl * gfpBallRadius