Add folder icon for file chooser dialog

This commit is contained in:
drdev
2014-06-05 21:23:14 +00:00
parent ff76126e8e
commit 0b7a442958
4 changed files with 21 additions and 3 deletions

View File

@@ -147,6 +147,7 @@ public enum FSkinImage implements FImage {
CLOSE (FSkinProp.ICO_CLOSE, SourceFile.ICONS), CLOSE (FSkinProp.ICO_CLOSE, SourceFile.ICONS),
LIST (FSkinProp.ICO_LIST, SourceFile.ICONS), LIST (FSkinProp.ICO_LIST, SourceFile.ICONS),
CARD_IMAGE (FSkinProp.ICO_CARD_IMAGE, SourceFile.ICONS), CARD_IMAGE (FSkinProp.ICO_CARD_IMAGE, SourceFile.ICONS),
FOLDER (FSkinProp.ICO_FOLDER, SourceFile.ICONS),
UNKNOWN (FSkinProp.ICO_UNKNOWN, SourceFile.ICONS), UNKNOWN (FSkinProp.ICO_UNKNOWN, SourceFile.ICONS),
LOGO (FSkinProp.ICO_LOGO, SourceFile.ICONS), LOGO (FSkinProp.ICO_LOGO, SourceFile.ICONS),
FLIPCARD (FSkinProp.ICO_FLIPCARD, SourceFile.ICONS), FLIPCARD (FSkinProp.ICO_FLIPCARD, SourceFile.ICONS),

View File

@@ -1,6 +1,7 @@
package forge.toolbox; package forge.toolbox;
import java.io.File; import java.io.File;
import java.io.FilenameFilter;
import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
@@ -9,6 +10,7 @@ import forge.Forge;
import forge.Forge.Graphics; import forge.Forge.Graphics;
import forge.assets.FSkinColor; import forge.assets.FSkinColor;
import forge.assets.FSkinFont; import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
import forge.toolbox.FEvent; import forge.toolbox.FEvent;
import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventHandler;
import forge.util.Callback; import forge.util.Callback;
@@ -69,7 +71,17 @@ public class FFileChooser extends FDialog {
private void refreshFileList() { private void refreshFileList() {
if (currentDir != null) { 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 { else {
lstFiles.setListData(File.listRoots()); lstFiles.setListData(File.listRoots());
@@ -132,8 +144,12 @@ public class FFileChooser extends FDialog {
@Override @Override
public void drawValue(Graphics g, Integer index, File value, FSkinFont font, FSkinColor foreColor, boolean pressed, float x, float y, float w, float h) { 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 if (value.isDirectory()) {
g.drawText(value.toString(), font, foreColor, x, y, w, h, false, HAlignment.LEFT, true); 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

View File

@@ -204,6 +204,7 @@ public enum FSkinProp {
ICO_CLOSE (new int[] {640, 640, 20, 20}, PropType.ICON), ICO_CLOSE (new int[] {640, 640, 20, 20}, PropType.ICON),
ICO_LIST (new int[] {640, 660, 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_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_UNKNOWN (new int[] {0, 720, 80, 80}, PropType.ICON),
ICO_LOGO (new int[] {480, 0, 200, 200}, PropType.ICON), ICO_LOGO (new int[] {480, 0, 200, 200}, PropType.ICON),
ICO_FLIPCARD (new int[] {400, 0, 80, 120}, PropType.ICON), ICO_FLIPCARD (new int[] {400, 0, 80, 120}, PropType.ICON),