mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Add folder icon for file chooser dialog
This commit is contained in:
@@ -147,6 +147,7 @@ public enum FSkinImage implements FImage {
|
||||
CLOSE (FSkinProp.ICO_CLOSE, SourceFile.ICONS),
|
||||
LIST (FSkinProp.ICO_LIST, SourceFile.ICONS),
|
||||
CARD_IMAGE (FSkinProp.ICO_CARD_IMAGE, SourceFile.ICONS),
|
||||
FOLDER (FSkinProp.ICO_FOLDER, SourceFile.ICONS),
|
||||
UNKNOWN (FSkinProp.ICO_UNKNOWN, SourceFile.ICONS),
|
||||
LOGO (FSkinProp.ICO_LOGO, SourceFile.ICONS),
|
||||
FLIPCARD (FSkinProp.ICO_FLIPCARD, SourceFile.ICONS),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package forge.toolbox;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
|
||||
import com.badlogic.gdx.Input.Keys;
|
||||
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
|
||||
@@ -9,6 +10,7 @@ import forge.Forge;
|
||||
import forge.Forge.Graphics;
|
||||
import forge.assets.FSkinColor;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinImage;
|
||||
import forge.toolbox.FEvent;
|
||||
import forge.toolbox.FEvent.FEventHandler;
|
||||
import forge.util.Callback;
|
||||
@@ -69,7 +71,17 @@ public class FFileChooser extends FDialog {
|
||||
|
||||
private void refreshFileList() {
|
||||
if (currentDir != null) {
|
||||
lstFiles.setListData(currentDir.listFiles());
|
||||
FilenameFilter filter = null;
|
||||
if (choiceType == ChoiceType.GetDirectory) {
|
||||
//don't list files if getting directory
|
||||
filter = new FilenameFilter() {
|
||||
@Override
|
||||
public boolean accept(File dir, String name) {
|
||||
return new File(dir, name).isDirectory();
|
||||
}
|
||||
};
|
||||
}
|
||||
lstFiles.setListData(currentDir.listFiles(filter));
|
||||
}
|
||||
else {
|
||||
lstFiles.setListData(File.listRoots());
|
||||
@@ -132,8 +144,12 @@ public class FFileChooser extends FDialog {
|
||||
|
||||
@Override
|
||||
public void drawValue(Graphics g, Integer index, File value, FSkinFont font, FSkinColor foreColor, boolean pressed, float x, float y, float w, float h) {
|
||||
//TODO: Draw icon for folder vs. file
|
||||
g.drawText(value.toString(), font, foreColor, x, y, w, h, false, HAlignment.LEFT, true);
|
||||
if (value.isDirectory()) {
|
||||
float iconSize = h;
|
||||
g.drawImage(FSkinImage.FOLDER, x, y + (h - iconSize) / 2, iconSize, iconSize);
|
||||
x += iconSize + FList.PADDING;
|
||||
}
|
||||
g.drawText(value.getName(), font, foreColor, x, y, w, h, false, HAlignment.LEFT, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 637 KiB After Width: | Height: | Size: 637 KiB |
@@ -204,6 +204,7 @@ public enum FSkinProp {
|
||||
ICO_CLOSE (new int[] {640, 640, 20, 20}, PropType.ICON),
|
||||
ICO_LIST (new int[] {640, 660, 20, 20}, PropType.ICON),
|
||||
ICO_CARD_IMAGE (new int[] {660, 660, 20, 20}, PropType.ICON),
|
||||
ICO_FOLDER (new int[] {640, 680, 20, 20}, PropType.ICON),
|
||||
ICO_UNKNOWN (new int[] {0, 720, 80, 80}, PropType.ICON),
|
||||
ICO_LOGO (new int[] {480, 0, 200, 200}, PropType.ICON),
|
||||
ICO_FLIPCARD (new int[] {400, 0, 80, 120}, PropType.ICON),
|
||||
|
||||
Reference in New Issue
Block a user