1 | use Wx qw/wxFONTFAMILY_SWISS wxFONTSTYLE_NORMAL wxFONTWEIGHT_NORMAL wxFONTWEIGHT_BOLD wxGREEN /; |
---|
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 | my $btfont = Wx::Font->new(16, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD ); |
---|
50 | $item5->SetFont($btfont); |
---|
51 | # $item5->SetForegroundColour( Wx::wxGREEN ); |
---|
52 | $item5->SetForegroundColour( Wx::Colour->new(255, 51, 99) ); |
---|
53 | $topsizer->AddWindow( $item5, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
54 | |
---|
55 | $parent->SetSizer( $topsizer ); |
---|
56 | $topsizer->SetSizeHints( $parent ); |
---|
57 | |
---|
58 | $topsizer; |
---|
59 | } |
---|
60 | |
---|
61 | use vars qw($TAGS); $TAGS = 10004; |
---|
62 | use vars qw($PHOTO_PROPERTIES_TAG); $PHOTO_PROPERTIES_TAG = 10005; |
---|
63 | |
---|
64 | sub photo_properties_tags { |
---|
65 | my( $parent, $tags ) = @_; |
---|
66 | my( $topsizer ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
67 | |
---|
68 | my( $item1 ) = Wx::StaticText->new( $parent, $main::TAGS, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
69 | $topsizer->AddWindow( $item1, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 ); |
---|
70 | |
---|
71 | $tags->{parentwnd}=$parent; |
---|
72 | my( $panel ) = Uploader::GUI::wxChoiceFilteredPanel->new($tags); |
---|
73 | # the panel has adaptive size : stretch factor 1, wxEXPAND |
---|
74 | $topsizer->AddWindow( $panel, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
75 | |
---|
76 | $parent->SetSizer( $topsizer ); |
---|
77 | $topsizer->SetSizeHints( $parent ); |
---|
78 | |
---|
79 | $topsizer; |
---|
80 | } |
---|
81 | |
---|
82 | use vars qw($CAPTION); $CAPTION = 10006; |
---|
83 | use vars qw($PHOTO_PROPERTIES_CAPTION); $PHOTO_PROPERTIES_CAPTION = 10007; |
---|
84 | use vars qw($AUTHOR); $AUTHOR = 10008; |
---|
85 | use vars qw($PHOTO_PROPERTIES_AUTHOR); $PHOTO_PROPERTIES_AUTHOR = 10009; |
---|
86 | use vars qw($COMMENT); $COMMENT = 10010; |
---|
87 | use vars qw($PHOTO_PROPERTIES_COMMENT); $PHOTO_PROPERTIES_COMMENT = 10011; |
---|
88 | use vars qw($CREATE_DATE); $CREATE_DATE = 10012; |
---|
89 | use vars qw($PHOTO_PROPERTIES_CREATE_DATE); $PHOTO_PROPERTIES_CREATE_DATE = 10013; |
---|
90 | use vars qw($PRIVACY_LEVEL); $PRIVACY_LEVEL = 10014; |
---|
91 | use vars qw($PHOTO_PROPERTIES_PRIVACY_LEVEL); $PHOTO_PROPERTIES_PRIVACY_LEVEL = 10015; |
---|
92 | |
---|
93 | sub photo_properties_caption_comments { |
---|
94 | my( $parent ) = @_; |
---|
95 | my( $topsizer ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
96 | |
---|
97 | my( $item1 ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
98 | |
---|
99 | my( $item2 ) = Wx::StaticText->new( $parent, $main::CAPTION, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
100 | $item1->AddWindow( $item2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
101 | |
---|
102 | my( $item3 ) = Wx::TextCtrl->new( $parent, $main::PHOTO_PROPERTIES_CAPTION, "", wxDefaultPosition, [-1,-1], 0 ); |
---|
103 | $item1->AddWindow( $item3, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
104 | |
---|
105 | $topsizer->Add( $item1, 0, wxEXPAND, 5 ); |
---|
106 | |
---|
107 | my( $item4 ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
108 | |
---|
109 | my( $item5 ) = Wx::StaticText->new( $parent, $main::AUTHOR, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
110 | $item4->AddWindow( $item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
111 | |
---|
112 | my( $item6 ) = Wx::TextCtrl->new( $parent, $main::PHOTO_PROPERTIES_AUTHOR, "", wxDefaultPosition, [-1,-1], 0 ); |
---|
113 | $item4->AddWindow( $item6, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
114 | |
---|
115 | my( $item7 ) = Wx::StaticText->new( $parent, $main::COMMENT, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
116 | $item4->AddWindow( $item7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
117 | |
---|
118 | # adaptive size : stretch factor 1 |
---|
119 | # the textctrl has a variable line number |
---|
120 | my( $item8 ) = Wx::TextCtrl->new( $parent, $main::PHOTO_PROPERTIES_COMMENT, "", wxDefaultPosition, [-1,-1], wxTE_MULTILINE ); |
---|
121 | $item4->AddWindow( $item8, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
122 | |
---|
123 | my( $item9 ) = Wx::StaticText->new( $parent, $main::CREATE_DATE, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
124 | $item4->AddWindow( $item9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
125 | |
---|
126 | my( $item10 ) = Wx::DatePickerCtrl->new( $parent, $main::PHOTO_PROPERTIES_CREATE_DATE, Wx::DateTime->new(), wxDefaultPosition, [200,-1], wxDP_DROPDOWN ); |
---|
127 | $item4->AddWindow( $item10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
128 | # adaptive size : stretch factor 3 |
---|
129 | $topsizer->Add( $item4, 3, wxEXPAND, 5 ); |
---|
130 | |
---|
131 | my( $item11 ) = Wx::BoxSizer->new( wxVERTICAL ); |
---|
132 | |
---|
133 | my( $item12 ) = Wx::StaticText->new( $parent, $main::PRIVACY_LEVEL, "text", wxDefaultPosition, wxDefaultSize, 0 ); |
---|
134 | $item11->AddWindow( $item12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
135 | |
---|
136 | my( $item13 ) = Wx::Choice->new( $parent, $main::PHOTO_PROPERTIES_PRIVACY_LEVEL, wxDefaultPosition, [-1,-1], [], 0 ); |
---|
137 | $item11->AddWindow( $item13, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
---|
138 | |
---|
139 | # adaptive size : stretch factor 1 |
---|
140 | $topsizer->Add( $item11, 1, wxEXPAND, 5 ); |
---|
141 | |
---|
142 | $parent->SetSizer( $topsizer ); |
---|
143 | $topsizer->SetSizeHints( $parent ); |
---|
144 | |
---|
145 | $topsizer; |
---|
146 | } |
---|
147 | |
---|
148 | use Wx qw( wxITEM_NORMAL wxITEM_RADIO wxITEM_CHECK ); |
---|
149 | |
---|