| 1 |
//--------------------------------------------------------------------------- |
| 2 |
// Copal のコンフィグ情報を保持するクラス |
| 3 |
// 定義ファイルも管理する |
| 4 |
//--------------------------------------------------------------------------- |
| 5 |
#ifndef KCopalConfigH |
| 6 |
#define KCopalConfigH |
| 7 |
//--------------------------------------------------------------------------- |
| 8 |
#include "KDefConfig.h" |
| 9 |
#include "Editor.h" |
| 10 |
#include "Script.h" |
| 11 |
|
| 12 |
const int CM_AUTOSELECT = -1; |
| 13 |
const int CM_SJIS = C_SJIS; |
| 14 |
const int CM_EUC = C_EUC; |
| 15 |
const int CM_JIS = C_JIS; |
| 16 |
const int CM_UTF8 = C_UTF8; |
| 17 |
|
| 18 |
//--------------------------------------------------------------------------- |
| 19 |
// 保存時に必要な情報 |
| 20 |
//--------------------------------------------------------------------------- |
| 21 |
struct CONFIGSAVEPARAM { |
| 22 |
bool Maximized; |
| 23 |
int Width,Height; |
| 24 |
}; |
| 25 |
|
| 26 |
//--------------------------------------------------------------------------- |
| 27 |
class KCopalConfig { |
| 28 |
private: |
| 29 |
|
| 30 |
TList *DefFileList;//定義ファイルのリスト |
| 31 |
KDefConfig *CurrentLanguage;//現在指定されている言語情報 |
| 32 |
|
| 33 |
//--------------------------------------------------------------------------- |
| 34 |
// 実行時の状態を管理する |
| 35 |
//--------------------------------------------------------------------------- |
| 36 |
|
| 37 |
bool Maximized; //ウィンドウが最大化されているか |
| 38 |
int Height,Width; //ウィンドウの高さ、幅 |
| 39 |
|
| 40 |
bool FEditorStayOnTop;//環境変数エディタを最前面に表示するか |
| 41 |
|
| 42 |
|
| 43 |
int TabWidth; |
| 44 |
bool ReadOnly; |
| 45 |
bool bUseHotKey;//ホットキーを使用するか |
| 46 |
TShortCut HotKey; //ホットキー |
| 47 |
int DefaultCode;// デフォルトのコード |
| 48 |
static const int DefaultTabWidth = 4; |
| 49 |
|
| 50 |
//--------------------------------------------------------------------------- |
| 51 |
public: |
| 52 |
KCopalConfig(AnsiString _DefaultPath);//コンストラクタ |
| 53 |
~KCopalConfig();//デストラクタ |
| 54 |
|
| 55 |
//--------------------------------------------------------------------------- |
| 56 |
// 一時的に記憶する変数 |
| 57 |
//--------------------------------------------------------------------------- |
| 58 |
AnsiString LastDroppedFiles; |
| 59 |
AnsiString SaveResultFile; |
| 60 |
|
| 61 |
//--------------------------------------------------------------------------- |
| 62 |
//実行に必要な情報を返す |
| 63 |
//--------------------------------------------------------------------------- |
| 64 |
AnsiString GetLangName(void) { |
| 65 |
return CurrentLanguage->LangName; |
| 66 |
}; |
| 67 |
|
| 68 |
AnsiString GetExePath(void) { |
| 69 |
return CurrentLanguage->ExePath; |
| 70 |
}; |
| 71 |
|
| 72 |
AnsiString GetOption(void) { |
| 73 |
return CurrentLanguage->Option; |
| 74 |
}; |
| 75 |
|
| 76 |
AnsiString GetRegExpErr(void) { |
| 77 |
return CurrentLanguage->RegExpErr; |
| 78 |
}; |
| 79 |
|
| 80 |
bool GetUseTagJumpToOtherFile(void) { |
| 81 |
return CurrentLanguage->UseTagJumpToOtherFile; |
| 82 |
}; |
| 83 |
|
| 84 |
AnsiString GetRegExpFile(void) { |
| 85 |
return CurrentLanguage->RegExpFile; |
| 86 |
}; |
| 87 |
|
| 88 |
AnsiString GetTempFile(void); |
| 89 |
|
| 90 |
bool GetUseHelp(void) { |
| 91 |
return CurrentLanguage->UseHelpFile; |
| 92 |
}; |
| 93 |
|
| 94 |
AnsiString GetHelpFile(void) { |
| 95 |
return CurrentLanguage->HelpFile; |
| 96 |
}; |
| 97 |
|
| 98 |
bool GetShowError(void) { |
| 99 |
return CurrentLanguage->ShowError; |
| 100 |
}; |
| 101 |
|
| 102 |
|
| 103 |
KDefConfig *GetCurrentLanguage(void) { |
| 104 |
return CurrentLanguage; |
| 105 |
}; |
| 106 |
|
| 107 |
//--------------------------------------------------------------------------- |
| 108 |
//実行に必要な情報をセットする |
| 109 |
//--------------------------------------------------------------------------- |
| 110 |
void SetLangName(AnsiString LangName) { |
| 111 |
CurrentLanguage->LangName = LangName; |
| 112 |
} |
| 113 |
;// |
| 114 |
void SetExePath(AnsiString ExePath) { |
| 115 |
CurrentLanguage->ExePath = ExePath; |
| 116 |
} |
| 117 |
;// |
| 118 |
void SetOption(AnsiString Option) { |
| 119 |
CurrentLanguage->Option = Option; |
| 120 |
} |
| 121 |
;// |
| 122 |
|
| 123 |
bool CheckPath(void);//実行可能かチェック |
| 124 |
|
| 125 |
AnsiString GetFileFilter(void);//ファイルのフィルターを作成する |
| 126 |
|
| 127 |
//--------------------------------------------------------------------------- |
| 128 |
//定義ファイル関係 |
| 129 |
//--------------------------------------------------------------------------- |
| 130 |
void CreateDefConfig(AnsiString LangName,AnsiString LangPath); |
| 131 |
void SearchDefFiles(void);//定義ファイルを探す |
| 132 |
void SearchByName(AnsiString LangName);//定義ファイル名で検索する |
| 133 |
bool SearchByExt(AnsiString Ext);//拡張子で検索する |
| 134 |
bool LanguageExists(AnsiString LangName); |
| 135 |
|
| 136 |
void AddDefConfig(KDefConfig *DefConfig); |
| 137 |
int GetDefConfigCount(void) { |
| 138 |
return DefFileList->Count; |
| 139 |
}; |
| 140 |
KDefConfig* GetDefConfigAt(int index) { |
| 141 |
return (KDefConfig*)DefFileList->Items[index]; |
| 142 |
}; |
| 143 |
void DeleteAllDefConfig(void);//定義ファイル情報を全て削除 |
| 144 |
void DeleteDefConfigAt(int index);//定義ファイル情報を削除 |
| 145 |
|
| 146 |
void ChangeLanguage(KDefConfig *df); |
| 147 |
void ChangeLanguage(int index) { |
| 148 |
ChangeLanguage(GetDefConfigAt(index)); |
| 149 |
}; |
| 150 |
|
| 151 |
AnsiString GetDefaultExt(void) { |
| 152 |
return CurrentLanguage->GetDefaultExt(); |
| 153 |
} |
| 154 |
bool CheckErrorCode(void) { |
| 155 |
return CurrentLanguage->CheckErrorCode; |
| 156 |
} |
| 157 |
|
| 158 |
//ファイル、パス関係 |
| 159 |
AnsiString FileName;//自分のファイル |
| 160 |
AnsiString HelpFile;//ヘルプファイル |
| 161 |
AnsiString ShortCutKeyFile;//ショートカットファイル |
| 162 |
AnsiString TempBat;//一時的なバッチファイル |
| 163 |
AnsiString TempHtml;//一時的なHTMLファイル |
| 164 |
|
| 165 |
|
| 166 |
bool UsePause;//最後にPAUSEを吐くか |
| 167 |
bool CutHead;//ヘッダ情報をカットする |
| 168 |
|
| 169 |
AnsiString DefaultPath;//実行可能ファイルのあるフォルダ |
| 170 |
AnsiString DefFilesPath;//定義ファイルのあるディレクトリ |
| 171 |
|
| 172 |
AnsiString Editor; |
| 173 |
bool UseDoubleQuotes; |
| 174 |
|
| 175 |
//--------------------------------------------------------------------------- |
| 176 |
bool AutoRefresh; |
| 177 |
bool ReadOnlyWhenAutoRefresh;//オートリフレッシュ時にファイルを開いたとき編集禁止とするか |
| 178 |
bool UseCGI; |
| 179 |
//--------------------------------------------------------------------------- |
| 180 |
void SetReadOnly(bool b); |
| 181 |
bool IsReadOnly(void) {return ReadOnly;}; |
| 182 |
//--------------------------------------------------------------------------- |
| 183 |
void ChangeHotKey(bool _UseHotKey, TShortCut _HotKey); |
| 184 |
void SetHotKey(TShortCut _HotKey); |
| 185 |
void UnsetHotKey(void); |
| 186 |
TShortCut GetHotKey(void) { |
| 187 |
return HotKey; |
| 188 |
}; |
| 189 |
bool UseHotKey(void) { |
| 190 |
return bUseHotKey; |
| 191 |
}; |
| 192 |
//--------------------------------------------------------------------------- |
| 193 |
int GetCodeMode(void); |
| 194 |
void SetCodeMode(int); |
| 195 |
char * GetCodeStr(void); |
| 196 |
|
| 197 |
//--------------------------------------------------------------------------- |
| 198 |
// ウィンドウ設定 |
| 199 |
//--------------------------------------------------------------------------- |
| 200 |
|
| 201 |
bool isMaximized(void) { |
| 202 |
return Maximized; |
| 203 |
} |
| 204 |
;//最大化されるべきか |
| 205 |
void SetWindowHeight(int h) { |
| 206 |
Height = h; |
| 207 |
}; |
| 208 |
void SetWindowWidth(int h) { |
| 209 |
Height = h; |
| 210 |
}; |
| 211 |
|
| 212 |
void SetFEditorStayOnTop(void) { |
| 213 |
FEditor->SetStayOnTop(FEditorStayOnTop); |
| 214 |
}; |
| 215 |
|
| 216 |
//--------------------------------------------------------------------------- |
| 217 |
// デバッグ関係 |
| 218 |
//--------------------------------------------------------------------------- |
| 219 |
|
| 220 |
bool UseTagJump;//タグジャンプを使うか |
| 221 |
AnsiString TagJumpText;//タグジャンプ用オプション |
| 222 |
AnsiString GetTagJumpText(void) { |
| 223 |
return TagJumpText; |
| 224 |
}; |
| 225 |
|
| 226 |
//--------------------------------------------------------------------------- |
| 227 |
// その他 |
| 228 |
//--------------------------------------------------------------------------- |
| 229 |
|
| 230 |
void SetTabWidth(int width); |
| 231 |
int GetTabWidth(void){return TabWidth;}; |
| 232 |
void SetTabWidthToRichEdit(TRichEdit *re, int w); |
| 233 |
bool MemoryFileWhenDropped;//ファイルをドロップ時にそのファイルを記憶 |
| 234 |
bool ChangeCurrentDirOnDrop;//ファイルドロップ時にディレクトリ変更 |
| 235 |
bool DontChangeDirFromDesktop;//デスクトップからドロップされたら変更しない |
| 236 |
|
| 237 |
//保存、読込 |
| 238 |
void Load(void); |
| 239 |
void Save(CONFIGSAVEPARAM csp); |
| 240 |
void Save(void); |
| 241 |
void SaveAllDefConfig(void); |
| 242 |
|
| 243 |
}; |
| 244 |
//--------------------------------------------------------------------------- |
| 245 |
#endif |