1 /*$ 2 Copyright (C) 2016-2020 Azel. 3 4 This file is part of AzPainterB. 5 6 AzPainterB is free software: you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or 9 (at your option) any later version. 10 11 AzPainterB is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. 18 $*/ 19 20 /***************************** 21 * 設定データ 22 *****************************/ 23 24 #ifndef DEF_CONFIG_H 25 #define DEF_CONFIG_H 26 27 #include "mStrDef.h" 28 #include "mListDef.h" 29 30 /** 個数 */ 31 32 #define CONFIG_RECENTFILE_NUM 10 //最近使ったファイル 33 #define CONFIG_RECENTDIR_NUM 8 //ディレクトリの履歴 34 #define CONFIG_IMAGESIZE_NUM 10 //新規作成の履歴と登録 35 #define CONFIG_POINTERBTT_NUM 16 //ポインタデバイスのボタン最大数 36 #define CONFIG_POINTERBTT_MAXNO 15 //ボタン番号の最大値 37 38 39 /** 新規作成の履歴・記録データ */ 40 41 typedef struct 42 { 43 int w,h,dpi; 44 uint8_t unit; //0:px 1:cm 2:inch 255:none 45 }ImageSizeData; 46 47 /** 保存設定 */ 48 49 typedef struct 50 { 51 uint32_t flags; 52 int32_t tpcol; //透過色 (PNG/GIF 共通。上位ビット ON でなし) 53 uint16_t jpeg_sampling_factor; 54 uint8_t jpeg_quality, 55 png_complevel, 56 psd_type; 57 }ConfigSaveOption; 58 59 /*-----------------*/ 60 61 62 /** ConfigData */ 63 64 typedef struct _ConfigData 65 { 66 mList grid_list; //グリッドデータのリスト 67 68 ConfigSaveOption save; //保存設定 69 70 ImageSizeData imgsize_recent[CONFIG_IMAGESIZE_NUM], //新規作成の履歴 71 imgsize_record[CONFIG_IMAGESIZE_NUM]; //新規作成の記録 72 73 mBox box_mainwin, //メインウィンドウの位置とサイズ 74 box_textdlg; //テキストダイアログの位置とサイズ 75 mPoint pt_filterdlg; //フィルタダイアログ位置 76 77 int canvasview_zoom_normal, //キャンバスビュー:非ルーペ時の倍率 (100%=100) 78 canvasview_zoom_loupe, //ルーペ時の倍率 79 savedup_format, //複製保存時の保存形式 (0 で現在のファイルと同じ) 80 undo_maxbufsize; //アンドゥ最大バッファサイズ 81 82 uint32_t fView, //表示フラグ 83 optflags, //オプションフラグ 84 colCanvasBkgnd, //キャンバス背景色 85 colBkgndPlaid[2]; //イメージ背景色・チェック柄の色 86 87 uint16_t init_imgw, //起動時の初期幅と高さ 88 init_imgh, 89 pane_width[3], //各ペインの幅 90 canvasZoomStep_low, //キャンバス倍率、1段階 (100%以下) 91 canvasZoomStep_hi, //キャンバス倍率、1段階 (100%以上) 92 canvasAngleStep, //キャンバス回転角度、1段階 93 dragBrushSize_step, //+Shift ブラシサイズ変更の増減幅 94 undo_maxnum, //アンドゥ最大回数 95 iconsize_toolbar, //アイコンサイズ(ツールバー) 96 iconsize_layer, //アイコンサイズ(レイヤ) 97 iconsize_other; //アイコンサイズ(ほか) 98 99 uint8_t mainwin_maximized, //メインウィンドウが最大化されているか 100 openimage_flags, //イメージファイルを開く時のフラグ 101 canvas_resize_flags, //キャンバスサイズ変更フラグ 102 canvas_scale_type, //キャンバス拡大縮小の補間方法 103 canvasview_flags, //キャンバスビュー:フラグ 104 canvasview_btt[5], //キャンバスビュー:操作 105 imageviewer_flags, //イメージビューア:フラグ 106 imageviewer_btt[5], //イメージビューア:操作 107 dockcolor_tabno, //カラー:タブ番号 108 dockcolpal_tabno, //カラーパレット:タブ番号 109 dockcolwheel_type, //カラーホイールタイプ 110 dockopt_tabno, //オプション:タブ番号 111 rotate_type, //回転、補間方法 112 default_btt_cmd[CONFIG_POINTERBTT_NUM], //デフォルトの各ボタンのコマンド 113 /* 0:消しゴム側 1:左ボタン... */ 114 pentab_btt_cmd[CONFIG_POINTERBTT_NUM]; //ペンタブレットの各ボタンのコマンド 115 116 char pane_layout[5], //ペイン配置 117 dock_layout[16]; //パネル配置順 118 119 mStr strFontStyle_gui, //GUI フォントスタイル 120 strFontStyle_dock, //パレットフォントスタイル 121 strTempDir, //作業用ディレクトリ (top) 122 strTempDirProc, //プロセスごとの作業用ディレクトリ 123 strImageViewerDir, //イメージビューア開くディレクトリ 124 strGridFileDir, //グリッドファイルディレクトリ 125 strTextureFileDir, //テクスチャ画像ディレクトリ 126 strLayerFileDir, //レイヤファイルディレクトリ 127 strStampFileDir, //スタンプ画像ディレクトリ 128 strSelectFileDir, //選択範囲関連のディレクトリ 129 strThemeFile, //テーマファイル (空でデフォルト) 130 strRecentFile[CONFIG_RECENTFILE_NUM], //最近使ったファイル 131 strRecentOpenDir[CONFIG_RECENTDIR_NUM], //開いたディレクトリの履歴 132 strRecentSaveDir[CONFIG_RECENTDIR_NUM]; //保存ディレクトリの履歴 133 134 uint8_t canvaskey[256]; //キャンバスキー (各キーに対応するコマンドID) 135 136 uint8_t *cursor_buf, //描画用カーソルイメージ 137 *toolbar_btts; 138 int cursor_bufsize, 139 toolbar_btts_size; 140 }ConfigData; 141 142 143 extern ConfigData *g_app_config; 144 #define APP_CONF g_app_config 145 146 147 /*---- flags ----*/ 148 149 150 /* imageviewer_flags */ 151 #define CONFIG_IMAGEVIEWER_F_FIT 1 //全体表示 152 153 /* canvas_resize_flags */ 154 #define CONFIG_CANVAS_RESIZE_F_CROP 1 //範囲外を切り取る 155 156 /* optflags */ 157 enum 158 { 159 CONFIG_OPTF_MES_SAVE_OVERWRITE = 1<<0, //上書き保存確認 160 CONFIG_OPTF_MES_SAVE_APD = 1<<1, //上書き時、APD で保存するか確認 161 CONFIG_OPTF_APD_NOINCLUDE_BLENDIMG = 1<<2 //APD 保存時、一枚絵イメージを含めない 162 }; 163 164 /* fView */ 165 enum 166 { 167 CONFIG_VIEW_F_TOOLBAR = 1<<0, 168 CONFIG_VIEW_F_STATUSBAR = 1<<1, 169 CONFIG_VIEW_F_DOCKS = 1<<2, 170 CONFIG_VIEW_F_GRID = 1<<3, 171 CONFIG_VIEW_F_BKGND_PLAID = 1<<4, 172 CONFIG_VIEW_F_FILTERDLG_PREVIEW = 1<<5 173 }; 174 175 /* openimage_flags */ 176 enum 177 { 178 CONFIG_OPENIMAGE_F_IGNORE_ALPHA = 1<<0, 179 CONFIG_OPENIMAGE_F_LEAVE_TRANS = 1<<1 180 }; 181 182 /* canvasview_flags */ 183 enum 184 { 185 CONFIG_CANVASVIEW_F_LOUPE_MODE = 1<<0, 186 CONFIG_CANVASVIEW_F_FIT = 1<<1 187 }; 188 189 /* ConfigSaveOption::flags */ 190 191 enum 192 { 193 CONFIG_SAVEOPTION_F_JPEG_PROGRESSIVE = 1<<0, 194 CONFIG_SAVEOPTION_F_PNG_ALPHA_CHANNEL = 1<<1, 195 CONFIG_SAVEOPTION_F_PSD_UNCOMPRESSED = 1<<2 196 }; 197 198 #endif 199