microSD カードのビットマップ・ファイルのビュアー.画像の最大値 縦:272ピクセル,横:480ピクセル. Bitmap file viewer for microSD card. Maximum size Vertical: 272 pixels, Horizontal: 480.
Dependencies: SDFileSystem_Warning_Fixed F746_GUI
MyFiles/FileSelectorBmp.hpp@1:bb146d5fe9aa, 2018-10-23 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Tue Oct 23 11:51:47 2018 +0000
- Revision:
- 1:bb146d5fe9aa
2
Who changed what in which revision?
User | Revision | Line number | New 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 |