@@ -24,7 +24,6 @@ public class DeckColumn : Panel {
24
24
public ToolStripTextBox TfName ;
25
25
public DeckWindow Window = null ;
26
26
public CropMargins CropMargins = CropMargins . Zero ;
27
- public bool ShouldAutoCrop = false ;
28
27
public Panel WindowCtr ;
29
28
public ToolStripSpringLabel TlName ;
30
29
public Point OverlaySize = new Point ( 0 , 0 ) ;
@@ -80,6 +79,7 @@ public void ChangeName(string newName) {
80
79
MainForm . FlushConfig ( ) ;
81
80
}
82
81
public static Image LoadImage ( string path ) {
82
+ // doing Image.FromFile locks the file and then we can't delete it along with the column
83
83
var bytes = File . ReadAllBytes ( path ) ;
84
84
var stream = new MemoryStream ( bytes ) ;
85
85
return Image . FromStream ( stream ) ;
@@ -119,32 +119,43 @@ public void HideOverlay() {
119
119
private void TmPadding_Init ( ) {
120
120
TbPadding = new ToolStripDropDownButton ( "Crop..." , Resources . shape_handles ) ;
121
121
TbPadding . DisplayStyle = ToolStripItemDisplayStyle . Image ;
122
+ TbPadding . DropDownOpening += TmPadding_DropDownOpening ;
122
123
TmPadding_Build ( ) ;
123
124
}
124
-
125
- public void TmPadding_Build ( ) {
126
- TbPadding . DropDownItems . Clear ( ) ;
127
- foreach ( var m in MainForm . CropMargins ) {
128
- var tb = new ToolStripButton ( m . Name ) ;
129
- tb . TextAlign = ContentAlignment . MiddleLeft ;
130
- //tb.AutoSize = true;
131
- tb . Width = 80 ;
132
- tb . Click += ( object sender , EventArgs e ) => {
133
- CropMargins = m ;
134
- ShouldAutoCrop = false ; // window should not auto-crop
135
- Window ? . Update ( ) ;
136
- MainForm . FlushConfig ( ) ;
137
- } ;
138
- TbPadding . DropDownItems . Add ( tb ) ;
125
+ private void TmPadding_DropDownOpening ( object sender , EventArgs e ) {
126
+ var cmName = CropMargins . Name ;
127
+ foreach ( var item in TbPadding . DropDownItems ) {
128
+ if ( ! ( item is DeckColumnMarginButton bt ) ) continue ;
129
+ bt . Checked = bt . Text == cmName ; // ? CheckState.Checked : CheckState.Unchecked;
139
130
}
140
-
141
- var tbAuto = new ToolStripButton ( "Auto-Crop\u2122 " ) ;
142
- tbAuto . Click += ( sender , args ) => {
143
- ShouldAutoCrop = true ; // window should auto-crop, see DeckWindow.GetAutoCropMargins()
131
+ }
132
+ private void TmPadding_Build_Margin ( CropMargins m ) {
133
+ var tb = new DeckColumnMarginButton ( ) ;
134
+ tb . TextAlign = ContentAlignment . MiddleLeft ;
135
+ //tb.AutoSize = true; // doesn't work..?
136
+ tb . Width = 120 ;
137
+ tb . Text = m . Name ;
138
+ tb . Click += ( sender , e ) => {
139
+ CropMargins = m ;
144
140
Window ? . Update ( ) ;
145
141
MainForm . FlushConfig ( ) ;
146
142
} ;
147
- TbPadding . DropDownItems . Add ( tbAuto ) ;
143
+ TbPadding . DropDownItems . Add ( tb ) ;
144
+ }
145
+ public void TmPadding_Build ( ) {
146
+ TbPadding . DropDownItems . Clear ( ) ;
147
+ foreach ( var m in MainForm . CropMargins ) TmPadding_Build_Margin ( m ) ;
148
+
149
+ TbPadding . DropDownItems . Add ( new ToolStripSeparator ( ) ) ;
150
+ foreach ( var m in CropMargins . Special ) TmPadding_Build_Margin ( m ) ;
151
+
152
+ TbPadding . DropDownItems . Add ( new ToolStripSeparator ( ) ) ;
153
+ var tbEdit = new ToolStripButton ( "Add/edit margins" ) ;
154
+ tbEdit . Name = "Edit" ;
155
+ tbEdit . Click += ( sender , args ) => {
156
+ MainForm . TbConfig_Click ( sender , args ) ;
157
+ } ;
158
+ TbPadding . DropDownItems . Add ( tbEdit ) ;
148
159
}
149
160
150
161
private void TbConfig_Init ( ) {
@@ -162,7 +173,7 @@ private void TbConfig_Init() {
162
173
TbConfig . DropDownItems . Add ( TfName ) ;
163
174
164
175
var tbIcon = new ToolStripButton ( "Change icon" , Resources . pencil ) ;
165
- tbIcon . Click += ( object sender , EventArgs e ) => {
176
+ tbIcon . Click += ( sender , e ) => {
166
177
MainForm . OnIconPick = ( string path ) => {
167
178
if ( IconName != "" ) {
168
179
if ( File . Exists ( IconPath ) ) File . Delete ( IconPath ) ;
@@ -181,7 +192,7 @@ private void TbConfig_Init() {
181
192
TbConfig . DropDownItems . Add ( tbIcon ) ;
182
193
183
194
var tbLeft = new ToolStripButton ( "Move left" , Resources . arrow_left ) ;
184
- tbLeft . Click += ( object sender , EventArgs e ) => {
195
+ tbLeft . Click += ( sender , e ) => {
185
196
var ind = MainForm . PanCtr . Controls . GetChildIndex ( this ) ;
186
197
if ( ind < MainForm . PanCtr . Controls . Count - 1 ) {
187
198
MainForm . PanCtr . Controls . SetChildIndex ( this , ind + 1 ) ;
@@ -192,7 +203,7 @@ private void TbConfig_Init() {
192
203
TbConfig . DropDownItems . Add ( tbLeft ) ;
193
204
194
205
var tbRight = new ToolStripButton ( "Move Right" , Resources . arrow_right ) ;
195
- tbRight . Click += ( object sender , EventArgs e ) => {
206
+ tbRight . Click += ( sender , e ) => {
196
207
var ind = MainForm . PanCtr . Controls . GetChildIndex ( this ) ;
197
208
if ( ind > 0 ) {
198
209
MainForm . PanCtr . Controls . SetChildIndex ( this , ind - 1 ) ;
@@ -203,7 +214,7 @@ private void TbConfig_Init() {
203
214
TbConfig . DropDownItems . Add ( tbRight ) ;
204
215
205
216
var tbDelete = new ToolStripButton ( "Remove" , Resources . delete ) ;
206
- tbDelete . Click += ( object sender , EventArgs e ) => {
217
+ tbDelete . Click += ( sender , e ) => {
207
218
if ( MessageBox . Show (
208
219
"Are you sure you want to delete this column? This cannot be undone!" ,
209
220
MainForm . Text , MessageBoxButtons . YesNo , MessageBoxIcon . Warning
@@ -269,4 +280,5 @@ public void UpdateCrop() {
269
280
Window ? . Update ( ) ;
270
281
}
271
282
}
283
+ public class DeckColumnMarginButton : ToolStripButton { }
272
284
}
0 commit comments