亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? wordstyledlg.h

?? 文字編輯器源碼 Text editor source code
?? H
字號(hào):
/*
this file is part of notepad++
Copyright (C)2003 Don HO < donho@altern.org >

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

#ifndef WORD_STYLE_H
#define WORD_STYLE_H

#include "Window.h"
#include "ColourPicker.h"
#include "StaticDialog.h"
#include "WordStyleDlgRes.h"
#include "TabBar.h"
#include "Parameters.h"
#include "resource.h"

#define WM_UPDATESCINTILLAS  (WORDSTYLE_USER + 1) //GlobalStyleDlg's msg 2 send 2 its parent
#define WM_DATA_MODIFIED     (WORDSTYLE_USER + 2) //WordStyleDlg's msg 2 send 2 its parent(GlobalStyleDlg)

enum fontStyleType {BOLD_STATUS, ITALIC_STATUS, UNDERLINE_STATUS};

const bool C_FOREGROUND = false;
const bool C_BACKGROUND = true;


class ColourStaticTextHooker {
public :
	ColourStaticTextHooker() : _colour(RGB(0x00, 0x00, 0x00))/*, _hFont(NULL)*/ {};

	COLORREF setColour(COLORREF colour2Set) {
		COLORREF oldColour = _colour;
		_colour = colour2Set;
		return oldColour;
	};
	void hookOn(HWND staticHandle) {
		::SetWindowLongPtr(staticHandle, GWL_USERDATA, (LONG)this);
		_oldProc = (WNDPROC)::SetWindowLongPtr(staticHandle, GWL_WNDPROC, (LONG)staticProc);
	};
private :
	COLORREF _colour;
	WNDPROC _oldProc;

	static BOOL CALLBACK staticProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
		ColourStaticTextHooker *pColourStaticTextHooker = reinterpret_cast<ColourStaticTextHooker *>(::GetWindowLongPtr(hwnd, GWL_USERDATA));
		return pColourStaticTextHooker->colourStaticProc(hwnd, message, wParam, lParam);
	}; 
	BOOL CALLBACK colourStaticProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
};

class WordStyleDlg : public StaticDialog
{
public :
	WordStyleDlg():_isDirty(false), _isSync(true), _isShownGOCtrls(false){/*_originalWarning[0] = '\0';*/};

    void init(HINSTANCE hInst, HWND parent)	{
        Window::init(hInst, parent);
	};

	virtual void create(int dialogID, bool isRTL = false);

    void doDialog(bool isRTL = false) {
    	if (!isCreated())
		{
			create(IDD_STYLER_DLG, isRTL);
			prepare2Cancel();
		}

		if (!::IsWindowVisible(_hSelf))
		{
			prepare2Cancel();
		}
	    display();
    };



	void prepare2Cancel() {
		_styles2restored = (NppParameters::getInstance())->getLStylerArray();
		_gstyles2restored = (NppParameters::getInstance())->getGlobalStylers();
		_gOverride2restored = (NppParameters::getInstance())->getGlobalOverrideStyle();
	};

    virtual void redraw() const {
        _pFgColour->redraw();
        _pBgColour->redraw();
		::InvalidateRect(_hStyleInfoStaticText, NULL, TRUE);
		::UpdateWindow(_hStyleInfoStaticText);
    };
	
	void restoreGlobalOverrideValues() {
		GlobalOverride & gOverride = (NppParameters::getInstance())->getGlobalOverrideStyle();
		gOverride = _gOverride2restored;
	};

	void apply();



private :
    ColourPicker *_pFgColour;
    ColourPicker *_pBgColour;

    int _currentLexerIndex;

    HWND _hCheckBold;
    HWND _hCheckItalic;
	HWND _hCheckUnderline;
    HWND _hFontNameCombo;
    HWND _hFontSizeCombo;

	HWND _hFgColourStaticText;
	HWND _hBgColourStaticText;
	HWND _hFontNameStaticText;
	HWND _hFontSizeStaticText;
	HWND _hStyleInfoStaticText;
	//TCHAR _originalWarning[256];

	LexerStylerArray _lsArray;
    StyleArray _globalStyles;

	LexerStylerArray _styles2restored;
	StyleArray _gstyles2restored;
	GlobalOverride _gOverride2restored;

	ColourStaticTextHooker colourHooker;

	bool _isDirty;
    bool _isSync;
	bool _isShownGOCtrls;

	BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam);


	Style & getCurrentStyler() {
		int styleIndex = ::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_GETCURSEL, 0, 0);
        if (_currentLexerIndex == 0)
            return _globalStyles.getStyler(styleIndex);
        else
        {
		    LexerStyler & lexerStyler = _lsArray.getLexerFromIndex(_currentLexerIndex - 1);
		    return lexerStyler.getStyler(styleIndex);
        }
	};

	int whichTabColourIndex() {
		int i = ::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_GETCURSEL, 0, 0);
		if (i == LB_ERR)
			return -1;
		TCHAR styleName[128];
		::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_GETTEXT, i, (LPARAM)styleName);

		if (lstrcmp(styleName, TABBAR_ACTIVEFOCUSEDINDCATOR) == 0)
			return (int)TabBarPlus::activeFocusedTop;

		if (lstrcmp(styleName, TABBAR_ACTIVEUNFOCUSEDINDCATOR) == 0)
			return (int)TabBarPlus::activeUnfocusedTop;

		if (lstrcmp(styleName, TABBAR_ACTIVETEXT) == 0)
			return (int)TabBarPlus::activeText;

		if (lstrcmp(styleName, TABBAR_INACTIVETEXT) == 0)
			return (int)TabBarPlus::inactiveText;

		return -1;
	};

	void updateColour(bool which);
	void updateFontStyleStatus(fontStyleType whitchStyle);
	void updateExtension();
	void updateFontName();
	void updateFontSize();
	void updateUserKeywords();

	void enableFg(bool isEnable) {
		::EnableWindow(_pFgColour->getHSelf(), isEnable);
		::EnableWindow(_hFgColourStaticText, isEnable);
	};

	void enableBg(bool isEnable) {
		::EnableWindow(_pBgColour->getHSelf(), isEnable);
		::EnableWindow(_hBgColourStaticText, isEnable);
	};

	void enableFontName(bool isEnable) {
		::EnableWindow(_hFontNameCombo, isEnable);
		::EnableWindow(_hFontNameStaticText, isEnable);
	};

	void enableFontSize(bool isEnable) {
		::EnableWindow(_hFontSizeCombo, isEnable);
		::EnableWindow(_hFontSizeStaticText, isEnable);
	};

	void enableFontStyle(bool isEnable) {
		::EnableWindow(_hCheckBold, isEnable);
		::EnableWindow(_hCheckItalic, isEnable);
		::EnableWindow(_hCheckUnderline, isEnable);
	};
    long notifyDataModified() {
		_isDirty = true;
		//::EnableWindow(::GetDlgItem(_hSelf, IDOK), TRUE);
		::EnableWindow(::GetDlgItem(_hSelf, IDC_SAVECLOSE_BUTTON), TRUE);
		return TRUE;
    }
	void setStyleListFromLexer(int index);
    void setVisualFromStyleList();

	void updateGlobalOverrideCtrls();

	void showGlobalOverrideCtrls(bool show)
	{
		if (show)
		{
			updateGlobalOverrideCtrls();
		}
		::ShowWindow(::GetDlgItem(_hSelf, IDC_GLOBAL_FG_CHECK), show?SW_SHOW:SW_HIDE);
		::ShowWindow(::GetDlgItem(_hSelf, IDC_GLOBAL_BG_CHECK), show?SW_SHOW:SW_HIDE);
		::ShowWindow(::GetDlgItem(_hSelf, IDC_GLOBAL_FONT_CHECK), show?SW_SHOW:SW_HIDE);
		::ShowWindow(::GetDlgItem(_hSelf, IDC_GLOBAL_FONTSIZE_CHECK), show?SW_SHOW:SW_HIDE);
		::ShowWindow(::GetDlgItem(_hSelf, IDC_GLOBAL_BOLD_CHECK), show?SW_SHOW:SW_HIDE);
		::ShowWindow(::GetDlgItem(_hSelf, IDC_GLOBAL_ITALIC_CHECK), show?SW_SHOW:SW_HIDE);
		::ShowWindow(::GetDlgItem(_hSelf, IDC_GLOBAL_UNDERLINE_CHECK), show?SW_SHOW:SW_HIDE);
		_isShownGOCtrls = show;
	}
};

#endif //WORD_STYLE_H

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美影院一区二区三区| 777xxx欧美| 激情六月婷婷久久| 精品一区二区三区欧美| 福利视频网站一区二区三区| 国产精品无码永久免费888| 奇米777欧美一区二区| 美国三级日本三级久久99| 国产成人综合网站| 欧美三区免费完整视频在线观看| 欧美va在线播放| 一色桃子久久精品亚洲| 琪琪久久久久日韩精品| 精品国产三级a在线观看| 亚洲人成亚洲人成在线观看图片 | 国产精品99久久久久久久女警| 欧美色图一区二区三区| 日韩中文字幕一区二区三区| 不卡大黄网站免费看| 91精品国产aⅴ一区二区| 亚洲精品日日夜夜| 国产精品正在播放| 日韩精品一区二区在线| 伦理电影国产精品| 91丨九色porny丨蝌蚪| 欧美va亚洲va在线观看蝴蝶网| 狠狠色2019综合网| 中文字幕在线观看一区二区| 欧美色视频一区| 国产在线一区二区综合免费视频| 国产精品视频免费看| 欧美三级日韩三级| 国产一区二区免费视频| 日韩一区二区麻豆国产| 性感美女极品91精品| av一区二区不卡| 欧美激情一二三区| 国产成人精品免费在线| 亚洲国产一区二区视频| 在线观看亚洲成人| 亚洲乱码国产乱码精品精小说| 日韩一区二区在线免费观看| www.色精品| 久久精品99国产精品日本| 亚洲欧美日韩在线| 久久精品亚洲乱码伦伦中文| 国精品**一区二区三区在线蜜桃| 亚洲一二三专区| 91.成人天堂一区| eeuss鲁片一区二区三区 | 色播五月激情综合网| 国产精品毛片久久久久久久| 欧美日产国产精品| 麻豆成人久久精品二区三区红 | 亚洲一区av在线| 国产精品女主播av| 欧美成人在线直播| 制服丝袜一区二区三区| 欧美综合亚洲图片综合区| 99久久久久久| 香蕉av福利精品导航| 亚洲男帅同性gay1069| 日本不卡不码高清免费观看| 亚洲激情六月丁香| 国产精品欧美极品| 国产亚洲精品超碰| 精品国产亚洲在线| 欧美一级搡bbbb搡bbbb| 欧美老肥妇做.爰bbww| 精品一区二区免费| 日韩福利电影在线| 国产精品伦理一区二区| 久久久99精品免费观看| 久久蜜桃av一区精品变态类天堂 | 精品国产1区2区3区| 91精品国产综合久久国产大片| 欧美性做爰猛烈叫床潮| 日本道免费精品一区二区三区| 99国产精品久久久久| 成人一区二区三区在线观看| 亚洲国产精品久久久男人的天堂 | 爽好多水快深点欧美视频| 亚洲成a人v欧美综合天堂下载 | 蜜桃视频一区二区三区| 午夜在线电影亚洲一区| 亚洲国产精品久久人人爱蜜臀 | 欧美少妇bbb| 在线观看日产精品| 欧美三级视频在线观看| 欧美日韩一级视频| 欧美色区777第一页| 日韩一区二区三区电影| 欧美成人猛片aaaaaaa| 精品成人佐山爱一区二区| 久久蜜桃一区二区| 国产精品美女一区二区三区| 亚洲人123区| 一区二区三区四区在线播放| 久久精品综合网| 国产精品嫩草99a| 亚洲日本免费电影| 国产欧美综合在线观看第十页| 91 com成人网| 26uuu另类欧美亚洲曰本| 欧美精品乱码久久久久久按摩| 日韩精品一区二区三区蜜臀| 久久精品这里都是精品| 亚洲日韩欧美一区二区在线| 亚洲午夜电影在线| 国产一区二区视频在线| gogogo免费视频观看亚洲一| 欧美日韩国产高清一区二区三区| 精品理论电影在线| 中文字幕在线不卡一区二区三区| 亚洲国产日韩av| 另类的小说在线视频另类成人小视频在线 | 亚洲综合色噜噜狠狠| 蜜桃视频在线观看一区| 成人小视频免费观看| 欧美日韩精品一区视频| 久久亚洲精品国产精品紫薇| 亚洲视频在线一区观看| 卡一卡二国产精品 | 亚洲精品一二三四区| 裸体健美xxxx欧美裸体表演| 成人a区在线观看| 欧美一卡2卡三卡4卡5免费| 国产精品色眯眯| 肉色丝袜一区二区| www.欧美.com| 日韩欧美第一区| 一区二区三区波多野结衣在线观看| 麻豆精品一区二区综合av| 色婷婷国产精品| 99久久免费精品高清特色大片| 欧美一三区三区四区免费在线看 | 久久日韩精品一区二区五区| 亚洲曰韩产成在线| 国产成人在线影院| 欧美日韩精品电影| 中文字幕制服丝袜成人av| 久久久精品国产免费观看同学| 亚洲一区影音先锋| 国产成人综合视频| 日韩欧美国产精品| 舔着乳尖日韩一区| 蜜桃av一区二区三区| 色婷婷久久综合| 国产精品乱人伦一区二区| 韩国三级在线一区| 欧美日韩一本到| 亚洲一区成人在线| 99麻豆久久久国产精品免费| 26uuu色噜噜精品一区| 欧美a一区二区| 欧美群妇大交群中文字幕| 亚洲精品美腿丝袜| 成人美女在线观看| 欧美国产丝袜视频| 精品无人区卡一卡二卡三乱码免费卡| 欧美久久久久久蜜桃| 亚洲日本成人在线观看| 成人福利电影精品一区二区在线观看| 久久久精品免费观看| 国产一区二区成人久久免费影院| 精品国产乱码久久久久久图片| 日本欧美在线观看| 欧美精品精品一区| 亚洲一区二区欧美激情| 欧美日韩中文字幕精品| 亚洲综合小说图片| 欧美三日本三级三级在线播放| 亚洲一区二区三区在线| 在线观看国产91| 亚洲一区免费观看| 欧美精品在欧美一区二区少妇| 奇米影视7777精品一区二区| 日韩一级精品视频在线观看| 久久99热国产| 日韩一区二区三区av| 久久99国产精品久久99| 久久午夜老司机| 国产精品亚洲专一区二区三区| 国产亚洲一区二区三区在线观看 | 精品少妇一区二区三区视频免付费 | 波多野结衣视频一区| 亚洲欧美综合另类在线卡通| 91在线小视频| 亚洲午夜电影网| 欧美成人精品福利| 国产精品一区久久久久| 日韩一区中文字幕| 欧美亚洲日本一区| 日韩av一区二区三区四区| 日韩午夜三级在线| 成人精品小蝌蚪| 亚洲一区二三区| 久久免费国产精品| 9久草视频在线视频精品| 亚洲最大成人综合|