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

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

?? wordstyledlg.h

?? 一個功能強大的代碼編輯器源代碼
?? H
字號:
/*
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) {
		::SetWindowLong(staticHandle, GWL_USERDATA, (LONG)this);
		_oldProc = (WNDPROC)::SetWindowLong(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 *>(::GetWindowLong(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;
	//char _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);
        }
	};

	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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美变态口味重另类| 日本伊人精品一区二区三区观看方式 | 免费成人在线视频观看| 亚洲已满18点击进入久久| 亚洲精品日韩一| 亚洲图片欧美一区| 亚洲成人你懂的| 亚洲综合色视频| 亚洲超碰97人人做人人爱| 一区二区三区日韩欧美精品| 亚洲美女偷拍久久| 亚洲一卡二卡三卡四卡无卡久久| 玉足女爽爽91| 五月天久久比比资源色| 免费欧美在线视频| 国产一区二区三区四区五区美女 | 99精品国产视频| 日本道在线观看一区二区| 欧美亚洲综合色| 欧美一区永久视频免费观看| 欧美va亚洲va| 国产精品沙发午睡系列990531| 国产精品久久久久aaaa| 亚洲精品视频在线| 视频一区视频二区在线观看| 麻豆专区一区二区三区四区五区| 久久精品国产在热久久| 成人精品鲁一区一区二区| 色综合欧美在线视频区| 欧美男男青年gay1069videost| 日韩一区二区免费在线观看| 久久久久国产精品麻豆| 亚洲欧美日韩人成在线播放| 亚洲成人免费影院| 国产一区不卡在线| 91免费版在线看| 欧美一区二区免费| 国产精品伦一区| 亚洲成人激情自拍| 国产自产v一区二区三区c| a在线欧美一区| 欧美日韩不卡一区二区| 久久精品夜色噜噜亚洲aⅴ| 136国产福利精品导航| 日本视频中文字幕一区二区三区| 激情五月婷婷综合| 色av成人天堂桃色av| 欧美成人午夜电影| 亚洲另类在线一区| 国内外成人在线| 欧美在线一二三四区| 久久亚洲私人国产精品va媚药| 日韩理论片在线| 久久成人免费网站| 欧美在线一区二区| 欧美激情综合在线| 免费在线观看精品| 色网站国产精品| 久久久久久久久久久电影| 亚洲va中文字幕| 不卡一区二区在线| 欧美v日韩v国产v| 亚洲电影一区二区三区| 成人久久18免费网站麻豆| 日韩视频免费观看高清完整版在线观看| 国产精品久久久久四虎| 精品一区二区av| 欧美日韩亚州综合| 亚洲同性gay激情无套| 国产在线国偷精品产拍免费yy| 欧美男女性生活在线直播观看 | 成人午夜电影网站| 日韩欧美三级在线| 亚洲国产精品久久人人爱蜜臀| 国产69精品久久久久毛片| 欧美一区二区国产| 亚洲国产人成综合网站| 91首页免费视频| 国产欧美日韩三级| 玖玖九九国产精品| 777欧美精品| 性久久久久久久久久久久| 99久久伊人久久99| 欧美国产乱子伦| 国产成人在线色| 精品1区2区在线观看| 免费在线观看一区| 欧美一卡2卡3卡4卡| 午夜欧美大尺度福利影院在线看| 一本一道波多野结衣一区二区| 国产精品天天看| 国产福利一区二区三区在线视频| 精品国一区二区三区| 日韩国产欧美在线观看| 欧美日韩和欧美的一区二区| 亚洲网友自拍偷拍| 欧美无乱码久久久免费午夜一区| 亚洲男同性恋视频| 91免费观看国产| 亚洲精品成人精品456| 日本高清不卡视频| 一区二区三区鲁丝不卡| 欧美无人高清视频在线观看| 亚洲亚洲精品在线观看| 欧美四级电影网| 天堂久久久久va久久久久| 欧美日韩免费一区二区三区| 亚洲二区在线视频| 欧美一区二区三区免费| 久久99精品视频| 久久久99久久| 成人aa视频在线观看| 综合在线观看色| 色999日韩国产欧美一区二区| 夜夜嗨av一区二区三区网页 | 亚洲自拍都市欧美小说| 欧美日韩日日夜夜| 免费观看日韩电影| 337p粉嫩大胆色噜噜噜噜亚洲| 国产一区二区成人久久免费影院| 国产蜜臀97一区二区三区| 波波电影院一区二区三区| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲精品中文在线影院| 欧美情侣在线播放| 国内精品第一页| 国产精品免费网站在线观看| 91年精品国产| 五月天激情综合网| 久久免费精品国产久精品久久久久| 国产成人亚洲综合a∨猫咪| 国产精品成人免费在线| 欧美中文字幕一区二区三区| 蜜臀a∨国产成人精品| 久久精品一区二区三区av| 色综合天天综合| 日韩av电影免费观看高清完整版| 精品国产91乱码一区二区三区 | 久久人人爽人人爽| 91农村精品一区二区在线| 日本不卡视频一二三区| 欧美极品xxx| 在线成人免费观看| 国产91精品一区二区麻豆网站| 成人免费一区二区三区在线观看| 在线不卡一区二区| 丁香婷婷综合激情五月色| 一区二区免费视频| 精品国产一区二区三区忘忧草 | 欧美亚洲精品一区| 国内精品久久久久影院薰衣草| 国产精品国产自产拍高清av王其| 欧美日免费三级在线| 国产v日产∨综合v精品视频| 亚洲高清在线精品| 国产日韩欧美在线一区| 欧美日韩久久久| 国产91高潮流白浆在线麻豆 | 91精品福利视频| 精品一区二区在线免费观看| 伊人色综合久久天天| 久久综合九色综合97婷婷| 欧美主播一区二区三区| 成人午夜看片网址| 极品少妇xxxx偷拍精品少妇| 亚洲综合av网| 国产精品天干天干在观线| 日韩欧美一区二区不卡| 在线观看91精品国产入口| 国产suv精品一区二区三区| 日韩黄色小视频| 亚洲最大成人网4388xx| 国产日韩欧美a| 精品女同一区二区| 欧美老人xxxx18| 一本色道久久综合亚洲91| 国产精品一区2区| 奇米888四色在线精品| 一区二区三区精品久久久| 中文字幕av一区二区三区免费看| 欧美不卡一区二区三区四区| 欧美日韩国产三级| 色屁屁一区二区| www.亚洲精品| 国产成人精品三级| 精品亚洲aⅴ乱码一区二区三区| 夜夜亚洲天天久久| 亚洲欧美日韩在线不卡| 国产精品久久久久7777按摩| 国产亚洲精品免费| 精品福利一二区| 日韩欧美在线123| 在线不卡一区二区| 欧美另类一区二区三区| 欧美三级中文字| 欧美视频第二页| 欧美在线影院一区二区| 欧美午夜电影一区| 欧美日韩国产小视频| 欧美日韩国产首页在线观看|