1 | use Wx; |
---|
2 | use Wx::Calendar; |
---|
3 | use Wx::DateTime; |
---|
4 | use strict; |
---|
5 | |
---|
6 | # Custom source |
---|
7 | use Uploader::GUI::wxChoiceFilteredPanel; |
---|
8 | |
---|
9 | use Wx qw( wxDefaultSize wxDefaultPosition wxNullAnimation wxNullFont wxBLACK ); |
---|
10 | use Wx qw( wxID_OK wxID_APPLY wxID_SAVE wxID_SAVEAS wxID_CANCEL wxID_YES wxID_NO wxID_EXIT wxID_ABOUT wxID_HELP ); |
---|
11 | use Wx qw( wxVERTICAL wxHORIZONTAL wxALL wxLEFT wxRIGHT wxTOP wxBOTTOM wxCENTRE wxGROW wxEXPAND); |
---|
12 | use Wx qw( wxALIGN_RIGHT wxALIGN_BOTTOM wxALIGN_CENTER wxALIGN_CENTER_VERTICAL wxALIGN_CENTER_HORIZONTAL ); |
---|
13 | use Wx qw( wxTR_HAS_BUTTONS wxTR_LINES_AT_ROOT wxSUNKEN_BORDER wxLI_HORIZONTAL wxTE_MULTILINE ); |
---|
14 | use Wx qw( wxDP_DROPDOWN ); |
---|
15 | |
---|
16 | # Bitmap functions |
---|
17 | |
---|
18 | use Wx qw( wxNullBitmap wxBITMAP_TYPE_PNG ); |
---|
19 | |
---|
20 | # Window functions |
---|
21 | |
---|
22 | use vars qw($PHOTO_PROPERTIES_NB); $PHOTO_PROPERTIES_NB = 10000; |
---|
23 | use vars qw($PHOTO_PROPERTIES_CATEGORIES); $PHOTO_PROPERTIES_CATEGORIES = 10001; |
---|
24 | use vars qw($ID_LINE); $ID_LINE = 10002; |
---|
25 | use vars qw($PHOTO_PROPERTIES_UPLOAD); $PHOTO_PROPERTIES_UPLOAD = 10003; |
---|
26 | |
---|
27 | sub PhotoPropertiesCategoriesTags { |
---|
28 | my( $parent ) = @_; |
---|
29 | my( $topsizer ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
30 | |
---|
31 | # defines minimum size |
---|
32 | my( $item2 ) = Wx::Notebook->new( $parent, $main::PHOTO_PROPERTIES_NB, wxDefaultPosition, [450,160], 0 ); |
---|
33 | my( $item1 ) = $item2; |
---|
34 | if( Wx->VERSION < 0.21 ) { |
---|
35 | $item1 = Wx::NotebookSizer->new( $item2 ); |
---|
36 | } |
---|
37 | |
---|
38 | # the notebook has adaptive size : stretch factor 2, wxEXPAND |
---|
39 | $topsizer->Add( $item1, 2, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
40 | |
---|
41 | my( $item3 ) = Wx::TreeCtrl->new( $parent, $main::PHOTO_PROPERTIES_CATEGORIES, wxDefaultPosition, [450,160], wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT ); |
---|
42 | # the notebook has adaptive size : stretch factor 1, wxEXPAND |
---|
43 | $topsizer->AddWindow( $item3, 1, wxGROW|wxALL, 5 ); |
---|
44 | |
---|
45 | my( $item4 ) = Wx::StaticLine->new( $parent, $main::ID_LINE, wxDefaultPosition, [20,-1], wxLI_HORIZONTAL ); |
---|
46 | $topsizer->AddWindow( $item4, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
47 | |
---|
48 | my( $item5 ) = Wx::Button->new( $parent, $main::PHOTO_PROPERTIES_UPLOAD, "", wxDefaultPosition, [-1,40], 0 ); |
---|
49 | $topsizer->AddWindow( $item5, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
50 | |
---|
51 | $parent->SetSizer( $topsizer ); |
---|
52 | $topsizer->SetSizeHints( $parent ); |
---|
53 | |
---|
54 | $topsizer; |
---|
55 | } |
---|
56 | |
---|
57 | use vars qw($TAGS); $TAGS = 10004; |
---|
58 | use vars qw($PHOTO_PROPERTIES_TAG); $PHOTO_PROPERTIES_TAG = 10005; |
---|
59 | |
---|
60 | sub photo_properties_tags { |
---|
61 | my( $parent, $tags ) = @_; |
---|
62 | my( $topsizer ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
63 | |
---|
64 | my( $item1 ) = Wx::StaticText->new( $parent, $main::TAGS, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
65 | $topsizer->AddWindow( $item1, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 ); |
---|
66 | |
---|
67 | $tags->{parentwnd}=$parent; |
---|
68 | my( $panel ) = Uploader::GUI::wxChoiceFilteredPanel->new($tags); |
---|
69 | # the panel has adaptive size : stretch factor 1, wxEXPAND |
---|
70 | $topsizer->AddWindow( $panel, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
71 | |
---|
72 | $parent->SetSizer( $topsizer ); |
---|
73 | $topsizer->SetSizeHints( $parent ); |
---|
74 | |
---|
75 | $topsizer; |
---|
76 | } |
---|
77 | |
---|
78 | use vars qw($CAPTION); $CAPTION = 10006; |
---|
79 | use vars qw($PHOTO_PROPERTIES_CAPTION); $PHOTO_PROPERTIES_CAPTION = 10007; |
---|
80 | use vars qw($AUTHOR); $AUTHOR = 10008; |
---|
81 | use vars qw($PHOTO_PROPERTIES_AUTHOR); $PHOTO_PROPERTIES_AUTHOR = 10009; |
---|
82 | use vars qw($COMMENT); $COMMENT = 10010; |
---|
83 | use vars qw($PHOTO_PROPERTIES_COMMENT); $PHOTO_PROPERTIES_COMMENT = 10011; |
---|
84 | use vars qw($CREATE_DATE); $CREATE_DATE = 10012; |
---|
85 | use vars qw($PHOTO_PROPERTIES_CREATE_DATE); $PHOTO_PROPERTIES_CREATE_DATE = 10013; |
---|
86 | use vars qw($PRIVACY_LEVEL); $PRIVACY_LEVEL = 10014; |
---|
87 | use vars qw($PHOTO_PROPERTIES_PRIVACY_LEVEL); $PHOTO_PROPERTIES_PRIVACY_LEVEL = 10015; |
---|
88 | |
---|
89 | sub photo_properties_caption_comments { |
---|
90 | my( $parent ) = @_; |
---|
91 | my( $topsizer ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
92 | |
---|
93 | my( $item1 ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
94 | |
---|
95 | my( $item2 ) = Wx::StaticText->new( $parent, $main::CAPTION, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
96 | $item1->AddWindow( $item2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
97 | |
---|
98 | my( $item3 ) = Wx::TextCtrl->new( $parent, $main::PHOTO_PROPERTIES_CAPTION, "", wxDefaultPosition, [-1,-1], 0 ); |
---|
99 | $item1->AddWindow( $item3, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
100 | |
---|
101 | $topsizer->Add( $item1, 0, wxEXPAND, 5 ); |
---|
102 | |
---|
103 | my( $item4 ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
104 | |
---|
105 | my( $item5 ) = Wx::StaticText->new( $parent, $main::AUTHOR, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
106 | $item4->AddWindow( $item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
107 | |
---|
108 | my( $item6 ) = Wx::TextCtrl->new( $parent, $main::PHOTO_PROPERTIES_AUTHOR, "", wxDefaultPosition, [-1,-1], 0 ); |
---|
109 | $item4->AddWindow( $item6, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
110 | |
---|
111 | my( $item7 ) = Wx::StaticText->new( $parent, $main::COMMENT, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
112 | $item4->AddWindow( $item7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
113 | |
---|
114 | # adaptive size : stretch factor 1 |
---|
115 | # the textctrl has a variable line number |
---|
116 | my( $item8 ) = Wx::TextCtrl->new( $parent, $main::PHOTO_PROPERTIES_COMMENT, "", wxDefaultPosition, [-1,-1], wxTE_MULTILINE ); |
---|
117 | $item4->AddWindow( $item8, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
118 | |
---|
119 | my( $item9 ) = Wx::StaticText->new( $parent, $main::CREATE_DATE, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
120 | $item4->AddWindow( $item9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
121 | |
---|
122 | my( $item10 ) = Wx::DatePickerCtrl->new( $parent, $main::PHOTO_PROPERTIES_CREATE_DATE, Wx::DateTime->new(), wxDefaultPosition, [200,-1], wxDP_DROPDOWN ); |
---|
123 | $item4->AddWindow( $item10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
124 | # adaptive size : stretch factor 3 |
---|
125 | $topsizer->Add( $item4, 3, wxEXPAND, 5 ); |
---|
126 | |
---|
127 | my( $item11 ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
128 | |
---|
129 | my( $item12 ) = Wx::StaticText->new( $parent, $main::PRIVACY_LEVEL, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
130 | $item11->AddWindow( $item12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
131 | |
---|
132 | my( $item13 ) = Wx::Choice->new( $parent, $main::PHOTO_PROPERTIES_PRIVACY_LEVEL, wxDefaultPosition, [-1,-1], [], 0 ); |
---|
133 | $item11->AddWindow( $item13, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
134 | |
---|
135 | # adaptive size : stretch factor 1 |
---|
136 | $topsizer->Add( $item11, 1, wxEXPAND, 5 ); |
---|
137 | |
---|
138 | $parent->SetSizer( $topsizer ); |
---|
139 | $topsizer->SetSizeHints( $parent ); |
---|
140 | |
---|
141 | $topsizer; |
---|
142 | } |
---|
143 | |
---|
144 | use Wx qw( wxITEM_NORMAL wxITEM_RADIO wxITEM_CHECK ); |
---|
145 | |
---|