home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1999 February
/
VPR9902A.BIN
/
APUPDATE
/
VC
/
Tx300d
/
TX300D.LZH
/
DISP.C
< prev
next >
Wrap
Text File
|
1997-05-23
|
7KB
|
303 lines
// WZ EDITOR 標準機能 表示
// Copyright 1997 TY
//2.95 970128 start
//{###表示}
//2.99D 970331 TXCMDBASE対応
#include <windows.h>
#include "dialog.h"
#include "window.h"
//##メニューへの表示
// -1:不明
static int checked(WZCMD wzcmd)
{
mchar* szcmd = wzcmdToSzcmd(wzcmd);
if (!szcmd) return -1;
if (!stricmp(szcmd,"\m.toolbar")) {
return text->fDispToolbar;
} else if (!stricmp(szcmd,"\m.ruler")) {
return text->fDispRuler;
} else if (!stricmp(szcmd,"\m.functionbar")) {
return text->fDispFunctionKey;
} else if (!stricmp(szcmd,"\m.linenumber")) {
return text->fDispLine;
} else if (!stricmp(szcmd,"\m.tab")) {
return text->fDispTab;
} else if (!stricmp(szcmd,"\m.underline")) {
return text->fDispUnder;
} else if (!stricmp(szcmd,"\m.jspace")) {
return text->fDispJspace;
} else if (!stricmp(szcmd,"\m.fully")) {
return (text->fDispFull == 2);
} else if (!stricmp(szcmd,"\m.readmode")) {
return text->fReadMode;
} else if (!stricmp(szcmd,"\m.search")) {
#if 1//2.99C 970323
return (text->fDispFind && text->fDispFindEnable);
#else
return (text->fDispFind && text->fConfigDispFindEnable);
#endif
} else if (!stricmp(szcmd,"\m.tag")) {
return text->fDispTag;
} else if (!stricmp(szcmd,"\m.titlebar")) {
LONG ws = GetWindowLong(text->hwndbase,GWL_STYLE);
return ((ws & WS_DLGFRAME) != 0);
} else if (!stricmp(szcmd,"\m.prop")) {//2.99 970320
return text->lfProp;
}
return -1;
}
WORD at_cmdcheck(WZCMD wzcmd)
{
//2.99 970319
#if 1///3.00B1 970523
mchar* szcmd = wzcmdToSzcmd(wzcmd);
if (!szcmd) return 0;
if (!stricmp(szcmd,"\m.proof")) {
if (text->editmode == 0) return MF_GRAYED;
if (!text->fWztext) {
if (text->tszformat[SZFORMAT_PROOF_TOP][0] == 0) return MF_GRAYED;
}
return 0;
}
#endif
int f = checked(wzcmd);
if (f >= 1) return MF_CHECKED;
return 0;
}
BOOL TXCMDBASE toolbar(TX* text)
{
// ツールバーの表示、非表示切り替え
text->fDispToolbar ^= 1;
txcfgSavePart(text,fDispToolbar);
txFlush(text);
return TRUE;
}
//2.99D 970331 disp.ruler new
BOOL TXCMDBASE ruler(TX* text)
{
// ルーラーの表示、非表示切り替え
text->fDispRuler ^= 1;
txcfgSavePart(text,fDispRuler);
txFlush(text);
return TRUE;
}
//2.99D 970331 disp.linenumber new
BOOL TXCMDBASE linenumber(TX* text)
{
// ファンクションバーの表示、非表示切り替え
text->fDispLine ^= 1;
txcfgSavePart(text,fDispLine);
txFlush(text);
return TRUE;
}
//2.99D 970331 disp.functionbar new
BOOL TXCMDBASE functionbar(TX* text)
{
// ファンクションバーの表示、非表示切り替え
text->fDispFunctionKey ^= 1;
txcfgSavePart(text,fDispFunctionKey);
txFlush(text);
return TRUE;
}
//2.99D 970331 disp.control->disp.tab
BOOL TXCMDBASE tab(TX* text)
{
// タブとEOFの表示、非表示切り替え
text->fDispTab ^= 1;
text->fDispEof = text->fDispTab;
txcfgSavePart(text,fDispEof);
txcfgSavePart(text,fDispTab);
txFlush(text);
return TRUE;
}
BOOL TXCMDBASE underline(TX* text)
{
// カーソル行アンダーラインの表示、非表示切り替え
text->fDispUnder ^= 1;
txcfgSavePart(text,fDispUnder);
txFlush(text);
return TRUE;
}
BOOL TXCMDBASE jspace(TX* text)
{
// 全角スペースの表示、非表示切り替え
text->fDispJspace ^= 1;
txcfgSavePart(text,fDispJspace);
txFlush(text);
return TRUE;
}
//2.98 970310 「表示|タイトルバー」追加
//2.99D 970331 「表示|タイトルバー」削除
BOOL TXCMDBASE titlebar(TX* text)
{
// タイトルバーの表示、非表示切り替え
#if 1
text->fDispTitlebar ^= 1;
txcfgSavePart(text,fDispTitlebar);
txFlush(text);
return TRUE;
#else
LONG ws = GetWindowLong(text->hwndbase,GWL_STYLE);
if (ws & WS_DLGFRAME) {
ws &= ~WS_DLGFRAME;
} else {
ws |= WS_DLGFRAME;
}
SetWindowLong(text->hwndbase,GWL_STYLE,ws);
SetWindowPos(text->hwndbase,NULL,0,0,0,0,SWP_FRAMECHANGED|SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER);
return TRUE;
#endif
}
BOOL TXCMDBASE search(TX* text)
{
// 検索文字列の色分けのON/OFF
#if 1///2.99C 970323 「表示|検索文字列」による検索文字列の色分けは一時的なものとした
text->fDispFindEnable ^= 1;
txFlush(text);
return TRUE;
#else
text->fConfigDispFindEnable ^= 1;
txcfgSavePart(text,fConfigDispFindEnable);
txFlush(text);
return TRUE;
#endif
}
BOOL TXCMDBASE fully(TX* text)
{
// 全画面表示のON/OFF
text->fDispFull = (text->fDispFull == 2) ? 0 : 2;
txcfgSavePart(text,fDispFull);
if (text->fDispFull) {
//2.99C 970325
RECT r;
GetWindowRect(text->hwndbase,&r);
wndtxSetOriginalRect(text->hwndbase,&r);
//
txFlush(text);
call("window.FullY2");
} else {
call("window.FullY1");//3.00A2 970507 FullY->FullY1
#if 1 //2.99C 970325
wndtxMoveOriginal(text->hwndbase);
// MoveWindow(text->hwndbase,r.left,r.top,rectCx(&r),rectCy(&r),TRUE);
#else
txFlushEx(text,TXFLUSHEX_TXFLUSHALL);
#endif
}
return TRUE;
}
BOOL TXCMDBASE readmode(TX* text)
{
// 閲覧モードのON/OFF
text->fReadMode = text->fReadMode ? 0 : 1;
if (text->fNoCaret != text->fReadMode) {
// キャレットを消す/点ける
txSwitchCaret(text);
}
if (text->fReadMode) {
txVarSet(text,"\m.fDispUnder",text->fDispUnder);
text->fDispUnder = FALSE;
txVarSet(text,"\m.fEditable",text->fEditable);
text->fEditable = FALSE;
} else {
text->fEditable = txVarGet(text,"\m.fEditable");
text->fDispUnder = txVarGet(text,"\m.fDispUnder");
}
txFlush(text);
wndtxDoCaption();
return TRUE;
}
BOOL TXCMDBASE tag(TX* text)
{
// HTMLタグ表示のON/OFF
#if 1
text->fDispTag ^= 1;
txcfgSavePart(text,fDispTag);
txFlush(text);
return TRUE;
#else
//2.99 970313 HTMLタグの省略表示を試してみたが、
// dialogを出すのは使いにくいのでやめた。
HDIALOG hd = dialog("HTMLタグの表示");
dialogControlRadioV(hd);
dialogRadioIDB(hd,&text->fDispTag,
"表示しない",
"表示する",
"アトリビュートを省略して表示する"
);
if (dialogOpen(hd)) {
txcfgSavePart(text,fDispTag);
txFlush(text);
}
return TRUE;
#endif
}
//2.98 970305 「表示|校正」追加
BOOL TXCMDBASE proof(TX* text)
{
// 校正の表示方法を指定
if (text->editmode == 0) {
information("体裁/詳細モードで実行してください");
return FALSE;
} else {
HDIALOG hd = dialog("校正の表示");
dialogControlRadioV(hd);
dialogRadioIDB(hd,&text->modeDispProof,
"校正前",
"校正後",
"校正状態",
"詳細"
);
BOOL fTxsemProofProcess = text->fTxsemProofProcess;
dialogControlEnable(hd,!text->fWztext);
dialogControlHelp(hd,403);
dialogCheck(hd,"次回の保存時に校正を処理(&P)",&fTxsemProofProcess);
if (dialogOpen(hd)) {
txFlush(text);
txcfgSavePart(text,modeDispProof);
text->fTxsemProofProcess = fTxsemProofProcess;
}
}
return TRUE;
}
//2.98 970310 「表示|プロポーショナル」追加
BOOL TXCMDBASE prop(TX* text)
{
// プロポーショナル表示のON/OFF
text->lfProp = text->lfProp ? 0 : 1;
#if 0 //2.99 970320 プロポーショナルは保存しない。テキストファイルの設定で保存すると問題だから。
txcfgSavePart(text,lfProp);
#endif
txFlush(text);
return TRUE;
}
//2.99I 970406 new
redraw
{
// 画面表示をリフレッシュ
tyFlush(text);
txDispAll(text);
}