microSD カードのビットマップ・ファイルのビュアー.画像の最大値 縦:272ピクセル,横:480ピクセル. Bitmap file viewer for microSD card. Maximum size Vertical: 272 pixels, Horizontal: 480.

Dependencies:   SDFileSystem_Warning_Fixed F746_GUI

Committer:
MikamiUitOpen
Date:
Tue Oct 23 11:51:47 2018 +0000
Revision:
1:bb146d5fe9aa
2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 1:bb146d5fe9aa 1 //--------------------------------------------------------------
MikamiUitOpen 1:bb146d5fe9aa 2 // FileSelector class ---- Header ----
MikamiUitOpen 1:bb146d5fe9aa 3 // SD カード内の *.bmp ファイル名の一覧を表示し,ファイルを選択する
MikamiUitOpen 1:bb146d5fe9aa 4 // だだし,日本語のファイル名は除く
MikamiUitOpen 1:bb146d5fe9aa 5 //
MikamiUitOpen 1:bb146d5fe9aa 6 // 2018/10/23, Copyright (c) 2018 MIKAMI, Naoki
MikamiUitOpen 1:bb146d5fe9aa 7 //--------------------------------------------------------------
MikamiUitOpen 1:bb146d5fe9aa 8
MikamiUitOpen 1:bb146d5fe9aa 9 #ifndef FILE_SELECTOR_HPP
MikamiUitOpen 1:bb146d5fe9aa 10 #define FILE_SELECTOR_HPP
MikamiUitOpen 1:bb146d5fe9aa 11
MikamiUitOpen 1:bb146d5fe9aa 12 #include "F746_GUI.hpp"
MikamiUitOpen 1:bb146d5fe9aa 13 #include "BitmapReader.hpp"
MikamiUitOpen 1:bb146d5fe9aa 14 #include <algorithm> // sort() で使用
MikamiUitOpen 1:bb146d5fe9aa 15 #include <string>
MikamiUitOpen 1:bb146d5fe9aa 16
MikamiUitOpen 1:bb146d5fe9aa 17 namespace Mikami
MikamiUitOpen 1:bb146d5fe9aa 18 {
MikamiUitOpen 1:bb146d5fe9aa 19 class FileSelector
MikamiUitOpen 1:bb146d5fe9aa 20 {
MikamiUitOpen 1:bb146d5fe9aa 21 public:
MikamiUitOpen 1:bb146d5fe9aa 22 FileSelector(uint8_t x0, uint8_t y0, int maxFiles,
MikamiUitOpen 1:bb146d5fe9aa 23 int maxNameLength, SD_BitmapReader &reader);
MikamiUitOpen 1:bb146d5fe9aa 24
MikamiUitOpen 1:bb146d5fe9aa 25 virtual ~FileSelector();
MikamiUitOpen 1:bb146d5fe9aa 26
MikamiUitOpen 1:bb146d5fe9aa 27 // ファイルの一覧表を作る.BMP ファイルが存在しない場合は false を返す
MikamiUitOpen 1:bb146d5fe9aa 28 bool CreateTable();
MikamiUitOpen 1:bb146d5fe9aa 29
MikamiUitOpen 1:bb146d5fe9aa 30 // ファイルを選択する
MikamiUitOpen 1:bb146d5fe9aa 31 bool Select(string &fileName);
MikamiUitOpen 1:bb146d5fe9aa 32
MikamiUitOpen 1:bb146d5fe9aa 33 // ファイルの一覧の表示
MikamiUitOpen 1:bb146d5fe9aa 34 void DisplayFileList(bool sortEnable = true);
MikamiUitOpen 1:bb146d5fe9aa 35
MikamiUitOpen 1:bb146d5fe9aa 36 // ファイルの一覧の消去
MikamiUitOpen 1:bb146d5fe9aa 37 void Erase(uint16_t x, uint16_t y, uint16_t width, uint16_t height,
MikamiUitOpen 1:bb146d5fe9aa 38 uint32_t color = GuiBase::ENUM_BACK);
MikamiUitOpen 1:bb146d5fe9aa 39
MikamiUitOpen 1:bb146d5fe9aa 40 private:
MikamiUitOpen 1:bb146d5fe9aa 41 static const int MAX_LIST_PAGE_ = 6; // 1ページに表示するファイル数の最大値
MikamiUitOpen 1:bb146d5fe9aa 42 static const uint8_t W_H_ = 24;
MikamiUitOpen 1:bb146d5fe9aa 43 static const uint8_t V_L_ = 36;
MikamiUitOpen 1:bb146d5fe9aa 44 static const uint32_t BASE_COLOR_ = 0xFF80FFA0;
MikamiUitOpen 1:bb146d5fe9aa 45 static const uint32_t TOUCHED_COLOR_ = 0xFF80FFFF;
MikamiUitOpen 1:bb146d5fe9aa 46 const uint8_t X_, Y_;
MikamiUitOpen 1:bb146d5fe9aa 47 const int MAX_FILES_;
MikamiUitOpen 1:bb146d5fe9aa 48 const int MAX_NAME_LENGTH_;
MikamiUitOpen 1:bb146d5fe9aa 49
MikamiUitOpen 1:bb146d5fe9aa 50 Array<string> fileNames_;
MikamiUitOpen 1:bb146d5fe9aa 51 Array<Label *> fileNameLabels_;
MikamiUitOpen 1:bb146d5fe9aa 52 ButtonGroup *rect_;
MikamiUitOpen 1:bb146d5fe9aa 53 ButtonGroup next_;
MikamiUitOpen 1:bb146d5fe9aa 54 Label pageLabel_;
MikamiUitOpen 1:bb146d5fe9aa 55 LCD_DISCO_F746NG &lcd_;
MikamiUitOpen 1:bb146d5fe9aa 56 SD_BitmapReader &sdReader_;
MikamiUitOpen 1:bb146d5fe9aa 57 int page_; // 現在のページ,最初のページは 1
MikamiUitOpen 1:bb146d5fe9aa 58 int nOld_; // ページ内で以前選択したファイルのインデックス
MikamiUitOpen 1:bb146d5fe9aa 59 int kOld_; // 以前選択したファイルのインデックス
MikamiUitOpen 1:bb146d5fe9aa 60 int maxPage_;
MikamiUitOpen 1:bb146d5fe9aa 61 int fileCount_;
MikamiUitOpen 1:bb146d5fe9aa 62
MikamiUitOpen 1:bb146d5fe9aa 63 // 拡張子を削除したファイル名を取得
MikamiUitOpen 1:bb146d5fe9aa 64 string GetFileNameNoExt(int n);
MikamiUitOpen 1:bb146d5fe9aa 65
MikamiUitOpen 1:bb146d5fe9aa 66 // コピー・コンストラクタとオブジェクトの代入演算子は使用禁止
MikamiUitOpen 1:bb146d5fe9aa 67 FileSelector(const FileSelector&);
MikamiUitOpen 1:bb146d5fe9aa 68 FileSelector& operator=(const FileSelector&);
MikamiUitOpen 1:bb146d5fe9aa 69 };
MikamiUitOpen 1:bb146d5fe9aa 70 }
MikamiUitOpen 1:bb146d5fe9aa 71 #endif // FILE_SELECTOR_HPP
MikamiUitOpen 1:bb146d5fe9aa 72