convert PictureCollectionEditor to UWT ContainerLayout-based Glade design

This commit is contained in:
Michael Becker 2020-05-27 19:17:58 -04:00
parent dd898b5582
commit 1947da62cd
No known key found for this signature in database
GPG Key ID: 506F54899E2BFED7
3 changed files with 98 additions and 23 deletions

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.2 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow">
<property name="can_focus">False</property>
<child type="titlebar">
<placeholder/>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkSpinButton" id="txtFrameIndex">
<property name="visible">True</property>
<property name="can_focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkButton" id="cmdSave">
<property name="label">gtk-save</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="cmdSaveAll">
<property name="label" translatable="yes">Save All</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="picFrame">
<property name="name">MBS.Framework.UserInterface.Controls.PictureFrame</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

View File

@ -740,6 +740,7 @@
<Content Include="Editors\Multimedia\Audio\Waveform\Controls\WaveformAudioEditorTrackControlPanel.glade" />
<Content Include="Editors\Multimedia\Audio\Waveform\Controls\WaveformAudioEditorTrack.glade" />
<Content Include="Editors\Multimedia\Audio\Synthesized\Views\MIDIEvents\MIDIEventsView.glade" />
<Content Include="Editors\Multimedia\PictureCollection\PictureCollectionEditor.glade" />
</ItemGroup>
<ItemGroup>
<Content Include="Configuration\Application.upl" />

View File

@ -35,8 +35,13 @@ namespace UniversalEditor.Plugins.Multimedia.UserInterface.Editors.Multimedia.Pi
/// <summary>
/// Provides a UWT-based Editor for <see cref="PictureCollectionObjectModel"/>.
/// </summary>
[ContainerLayout("~/Editors/Multimedia/PictureCollection/PictureCollectionEditor.glade")]
public class PictureCollectionEditor : Editor
{
private Button cmdSave;
private Button cmdSaveAll;
private NumericTextBox txtFrameIndex;
private static EditorReference _er = null;
public override EditorReference MakeReference()
{
@ -48,29 +53,7 @@ namespace UniversalEditor.Plugins.Multimedia.UserInterface.Editors.Multimedia.Pi
return _er;
}
private Button cmdSave = null;
private Button cmdSaveAll = null;
private NumericTextBox txtFrameIndex = new NumericTextBox();
public PictureCollectionEditor()
{
Layout = new BoxLayout(Orientation.Vertical);
txtFrameIndex.Changed += txtFrameIndex_Changed;
Controls.Add(txtFrameIndex, new BoxLayout.Constraints(false, false));
cmdSave = new Button(StockType.Save);
cmdSave.Click += CmdSave_Click;
Controls.Add(cmdSave, new BoxLayout.Constraints(false, false));
cmdSaveAll = new Button("Save All");
cmdSaveAll.Click += CmdSaveAll_Click;
Controls.Add(cmdSaveAll, new BoxLayout.Constraints(false, false));
picFrame = new PictureFrame();
Controls.Add(picFrame, new BoxLayout.Constraints(false, false));
}
[EventHandler(nameof(txtFrameIndex), "Changed")]
private void txtFrameIndex_Changed(object sender, EventArgs e)
{
PictureCollectionObjectModel coll = (ObjectModel as PictureCollectionObjectModel);
@ -82,10 +65,19 @@ namespace UniversalEditor.Plugins.Multimedia.UserInterface.Editors.Multimedia.Pi
picFrame.Image = coll.Pictures[(int)txtFrameIndex.Value].ToImage();
}
protected override void OnCreated(EventArgs e)
{
base.OnCreated(e);
OnObjectModelChanged(e);
}
protected override void OnObjectModelChanged(EventArgs e)
{
base.OnObjectModelChanged(e);
if (!IsCreated) return;
cmdSave.Enabled = false;
cmdSaveAll.Enabled = false;
@ -127,6 +119,7 @@ namespace UniversalEditor.Plugins.Multimedia.UserInterface.Editors.Multimedia.Pi
private PictureFrame picFrame = null;
[EventHandler(nameof(cmdSave), "Click")]
void CmdSave_Click(object sender, EventArgs e)
{
PictureCollectionObjectModel coll = ObjectModel as PictureCollectionObjectModel;
@ -147,6 +140,7 @@ namespace UniversalEditor.Plugins.Multimedia.UserInterface.Editors.Multimedia.Pi
Document.Save(pic, bmp, fa, true);
}
}
[EventHandler(nameof(cmdSaveAll), "Click")]
void CmdSaveAll_Click(object sender, EventArgs e)
{
FileDialog dlg = new FileDialog();