Skip to content

Commit 5fc2426

Browse files
committed
Added combobox to select Save as Indexed file type
1 parent f747ee4 commit 5fc2426

File tree

5 files changed

+51
-17
lines changed

5 files changed

+51
-17
lines changed

Bender.bmx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ Repeat
7676
g_GraphicsOutput.SetDrawOutputFrameBounds(g_FileIO.SetSaveAsFrames(ButtonState(g_UserInterface.m_SettingsSaveAsFramesCheckbox)))
7777
'Save as Indexed
7878
Case g_UserInterface.m_SettingsIndexedCheckbox
79-
g_FileIO.SetSaveAsIndexed(ButtonState(g_UserInterface.m_SettingsIndexedCheckbox))
79+
g_UserInterface.SetFileTypeComboBoxVisible(g_FileIO.SetSaveAsIndexed(ButtonState(g_UserInterface.m_SettingsIndexedCheckbox)))
80+
'Indexed Filetype
81+
Case g_UserInterface.m_SettingsIndexedFileTypeComboBox
82+
g_FileIO.SetIndexedFileType(GadgetText(g_UserInterface.m_SettingsIndexedFileTypeComboBox))
8083
EndSelect
8184
Case EVENT_WINDOWCLOSE, EVENT_APPTERMINATE
8285
If Confirm("Quit program?") Then End

Types/FileIO.bmx

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1+
Import "SettingsManager.bmx"
12
Import "IndexedImageWriter.bmx"
23

34
'//// FILE IO ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
45

56
Type FileIO
67
Field m_ImportedFile:String = Null
7-
Field m_FileFilters:String = "Image Files:png"
88

9-
Field m_SaveAsIndexed:Int = False
109
Field m_SaveAsFrames:Int = False
10+
Field m_SaveAsIndexed:Int = False
11+
Field m_IndexedFileType:String = g_DefaultIndexedFileType
12+
Field m_FileFilters:String = "Image Files:" + m_IndexedFileType
1113

1214
Field m_IndexedImageWriter:IndexedImageWriter = Null
1315

@@ -52,15 +54,16 @@ Type FileIO
5254

5355
'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5456

55-
Method SetSaveAsIndexed(indexedOrNot:Int)
57+
Method SetSaveAsIndexed:Int(indexedOrNot:Int)
5658
m_SaveAsIndexed = indexedOrNot
57-
Rem
58-
If m_SaveAsIndexed Then
59-
m_FileFilters = "Image Files:bmp"
60-
Else
61-
m_FileFilters = "Image Files:png"
62-
EndIf
63-
EndRem
59+
Return m_SaveAsIndexed
60+
EndMethod
61+
62+
'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
63+
64+
Method SetIndexedFileType(fileType:String)
65+
m_IndexedFileType = fileType.ToLower()
66+
m_FileFilters = "Image Files:" + m_IndexedFileType
6467
EndMethod
6568

6669
'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -70,8 +73,14 @@ Type FileIO
7073
If CheckValidExportFileName(filename) Then
7174
Local saveSuccess:Int = True
7275
If m_SaveAsIndexed Then
73-
'saveSuccess = m_IndexedImageWriter.WriteIndexedBitmapFromPixmap(pixmapToSave, filename)
74-
saveSuccess = m_IndexedImageWriter.WriteIndexedPNGFromPixmap(pixmapToSave, filename)
76+
Select m_IndexedFileType
77+
Case "png"
78+
saveSuccess = m_IndexedImageWriter.WriteIndexedPNGFromPixmap(pixmapToSave, filename)
79+
Case "bmp"
80+
saveSuccess = m_IndexedImageWriter.WriteIndexedBMPFromPixmap(pixmapToSave, filename)
81+
Default
82+
saveSuccess = False
83+
EndSelect
7584
Else
7685
saveSuccess = SavePixmapPNG(pixmapToSave, filename)
7786
EndIf
@@ -109,8 +118,14 @@ Type FileIO
109118

110119
Local saveSuccess:Int = True
111120
If m_SaveAsIndexed Then
112-
'saveSuccess = m_IndexedImageWriter.WriteIndexedBitmapFromPixmap(pixmapToSave[row, frame], fullFilename + ".bmp")
113-
saveSuccess = m_IndexedImageWriter.WriteIndexedPNGFromPixmap(pixmapToSave[row, frame], fullFilename + ".png")
121+
Select m_IndexedFileType
122+
Case "png"
123+
saveSuccess = m_IndexedImageWriter.WriteIndexedPNGFromPixmap(pixmapToSave[row, frame], fullFilename + ".png")
124+
Case "bmp"
125+
saveSuccess = m_IndexedImageWriter.WriteIndexedBMPFromPixmap(pixmapToSave[row, frame], fullFilename + ".bmp")
126+
Default
127+
saveSuccess = False
128+
EndSelect
114129
Else
115130
saveSuccess = SavePixmapPNG(pixmapToSave[row, frame], fullFilename + ".png")
116131
EndIf

Types/IndexedImageWriter.bmx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ Type IndexedImageWriter
6767

6868
'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
6969

70-
Method WriteIndexedBitmapFromPixmap:Int(sourcePixmap:TPixmap, filename:String)
70+
Method WriteIndexedBMPFromPixmap:Int(sourcePixmap:TPixmap, filename:String)
7171
If filename = Null Then
7272
Return False
7373
Else

Types/SettingsManager.bmx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Global g_DefaultFrameCount:Int = 7
55
Global g_DefaultBackgroundRed:Int = 50
66
Global g_DefaultBackgroundGreen:Int = 170
77
Global g_DefaultBackgroundBlue:Int = 255
8+
Global g_DefaultIndexedFileType:String = "png"
89

910
Type SettingsManager
1011
EndType

Types/UserInterface.bmx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Type UserInterface
3434

3535
Field m_SettingsPanel:TGadget = Null
3636
Field m_SettingsPanelAnchor:SVec2I = New SVec2I(10, m_ButtonPanelSize[1] + 15)
37-
Field m_SettingsPanelSize:SVec2I = New SVec2I(m_CanvasGraphicsAnchor[0] - 20, 175)
37+
Field m_SettingsPanelSize:SVec2I = New SVec2I(m_CanvasGraphicsAnchor[0] - 20, 180)
3838

3939
Field m_SettingsZoomLabel:TGadget = Null
4040
Field m_SettingsZoomTextbox:TGadget = Null
@@ -52,6 +52,7 @@ Type UserInterface
5252

5353
Field m_SettingsIndexedLabel:TGadget = Null
5454
Field m_SettingsIndexedCheckbox:TGadget = Null
55+
Field m_SettingsIndexedFileTypeComboBox:TGadget = Null
5556

5657
Field m_SettingsSaveAsFramesLabel:TGadget = Null
5758
Field m_SettingsSaveAsFramesCheckbox:TGadget = Null
@@ -124,6 +125,10 @@ Type UserInterface
124125

125126
m_SettingsIndexedLabel = CreateLabel("Save as Indexed", horizMargin, GadgetY(m_SettingsSaveAsFramesLabel) + labelVertOffset, 87, labelHeight, m_SettingsPanel, LABEL_LEFT)
126127
m_SettingsIndexedCheckbox = CreateButton(Null, vertMargin + GadgetWidth(m_SettingsIndexedLabel), GadgetY(m_SettingsIndexedLabel), 20, 20, m_SettingsPanel, BUTTON_CHECKBOX)
128+
m_SettingsIndexedFileTypeComboBox = CreateComboBox(120, GadgetY(m_SettingsIndexedLabel) - 3, 50, 15, m_SettingsPanel)
129+
AddGadgetItem(m_SettingsIndexedFileTypeComboBox, "PNG", GADGETITEM_DEFAULT)
130+
AddGadgetItem(m_SettingsIndexedFileTypeComboBox, "BMP", GADGETITEM_NORMAL)
131+
HideGadget(m_SettingsIndexedFileTypeComboBox)
127132

128133
m_LogoImagePanel = CreatePanel(m_LogoImagePanelAnchor[0], m_LogoImagePanelAnchor[1], m_LogoImagePanelSize[0], m_LogoImagePanelSize[1], m_LeftColumn, Null)
129134
SetPanelPixmap(m_LogoImagePanel, m_LogoImage, PANELPIXMAP_CENTER)
@@ -219,4 +224,14 @@ Type UserInterface
219224
DisableGadget(m_SaveButton)
220225
EndIf
221226
EndMethod
227+
228+
'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
229+
230+
Method SetFileTypeComboBoxVisible(visibleOrNot:Int)
231+
If visibleOrNot Then
232+
ShowGadget(m_SettingsIndexedFileTypeComboBox)
233+
Else
234+
HideGadget(m_SettingsIndexedFileTypeComboBox)
235+
EndIf
236+
EndMethod
222237
EndType

0 commit comments

Comments
 (0)