⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pluginwizarddlg.cpp

📁 非常好用的可移植的多平台C/C++源代码编辑器
💻 CPP
📖 第 1 页 / 共 3 页
字号:

    buffer << _T('\t') << _T('\t') << _T("int Configure()");
    DoAddHeaderOption(buffer, hasConfigure, _T(" 0"));
	if (type != 1 && type != 5 && type != 6) // not cbToolPlugin, not cbMimePlugin and not cbProjectWizardPlugin
	{
        buffer << _T('\t') << _T('\t') << _T("void BuildMenu(wxMenuBar* menuBar)");
        DoAddHeaderOption(buffer, hasMenu, wxEmptyString);
        buffer << _T('\t') << _T('\t') << _T("void BuildModuleMenu(const ModuleType type, wxMenu* menu, const wxString& arg)");
        DoAddHeaderOption(buffer, hasModuleMenu, wxEmptyString);
        buffer << _T('\t') << _T('\t') << _T("bool BuildToolBar(wxToolBar* toolBar)");
        DoAddHeaderOption(buffer, hasToolbar, _T("false"));
	}
	switch (type)
	{
		case 1: // tool
			DoAddHeaderTool(buffer);
			break;
		case 2: // compiler
			DoAddHeaderCompiler(buffer);
			break;
		case 3: // debugger
			DoAddHeaderDebugger(buffer);
			break;
		case 4: // codecompl
			DoAddHeaderCodeCompletion(buffer);
			break;
		case 5: // mime
			DoAddHeaderMime(buffer);
			break;
		case 6: // wizard
			DoAddHeaderWizard(buffer);
			break;
	}
	if (type != 6) // wizard
	{
        buffer << _T('\t') << _T('\t') << _T("void OnAttach(); // fires when the plugin is attached to the application") << _T('\n');
        buffer << _T('\t') << _T('\t') << _T("void OnRelease(bool appShutDown); // fires when the plugin is released from the application") << _T('\n');
	}
	buffer << _T('\t') << _T("protected:") << _T('\n');
	buffer << _T('\t') << _T("private:") << _T('\n');
	if (hasMenu || hasModuleMenu || hasToolbar)
		buffer << _T('\t') << _T('\t') << _T("DECLARE_EVENT_TABLE()") << _T('\n');
	buffer << _T("};") << _T('\n');
	buffer << _T('\n');
	buffer << _T("// Declare the plugin's hooks") << _T('\n');
	buffer << _T("CB_DECLARE_PLUGIN();") << _T('\n');

	if (GuardBlock)
	{
		buffer << _T('\n');
		buffer << _T("#endif // ") << GuardWord << _T('\n');
	}
	buffer << _T('\n');
	// write buffer to disk
	wxFile hdr(UnixFilename(m_Header), wxFile::write);
	cbWrite(hdr,buffer);
	// end of header file

	// now the implementation file
	buffer.Clear();
	buffer << _T("/***************************************************************") << _T('\n');
	buffer << _T(" * Name:      ") << implFname.GetFullName() << _T('\n');
	buffer << _T(" * Purpose:   Code::Blocks plugin") << _T('\n');
	buffer << _T(" * Author:    ") << m_Info.author << _T("<") << m_Info.authorEmail << _T(">") << _T('\n');
//	buffer << _T(" * Created:   ") << wxDateTime::Now().Format(_("%c"), wxDateTime::Local) << _T('\n');
	buffer << _T(" * Copyright: (c) ") << m_Info.author <<  _T('\n');
	buffer << _T(" * License:   GPL") << _T('\n');
	buffer << _T(" **************************************************************/") << _T('\n');
	buffer << _T('\n');
	buffer << _T("#if defined(__GNUG__) && !defined(__APPLE__)") << _T('\n');
	buffer << _T("\t#pragma implementation \"") << headerFname.GetFullName() << _T("\"") << _T('\n');
	buffer << _T("#endif") << _T('\n');
	buffer << _T('\n');
	buffer << _T("#include \"") << headerFname.GetFullName() << _T("\"") << _T('\n');
	buffer << _T("#include <licenses.h> // defines some common licenses (like the GPL)") << _T('\n');
	if (type == 6) // wizard
	{
        buffer << _T("#include <wx/bitmap.h>") << _T('\n');
        buffer << _T("#include <configmanager.h>") << _T('\n');
	}
	buffer << _T('\n');
	buffer << _T("// Implement the plugin's hooks") << _T('\n');
	buffer << _T("CB_IMPLEMENT_PLUGIN(") << m_Info.name << _T(");") << _T('\n');
	buffer << _T('\n');
	if (hasMenu || hasModuleMenu || hasToolbar)
	{
		buffer << _T("BEGIN_EVENT_TABLE(") << m_Info.name << _T(", ");
		switch (type)
		{
			case 0: // generic
				buffer << _T("cbPlugin)") << _T('\n');
				break;
			case 2: // compiler
				buffer << _T("cbCompilerPlugin)") << _T('\n');
				break;
			case 3: // debugger
				buffer << _T("cbDebuggerPlugin)") << _T('\n');
				break;
			case 4: // codecompl
				buffer << _T("cbCodeCompletionPlugin)") << _T('\n');
				break;
		}
		buffer << _T('\t') << _T("// add events here...") << _T('\n');
		buffer << _T("END_EVENT_TABLE()") << _T('\n');
		buffer << _T('\n');
	}
	buffer << m_Info.name << _T("::") << m_Info.name << _T("()") << _T('\n');
	buffer << _T("{") << _T('\n');
	buffer << _T('\t') << _T("//ctor") << _T('\n');
    buffer << _T('\t') << _T("m_PluginInfo.name = _T(\"") << m_Info.name << _T("\");") << _T('\n');
    buffer << _T('\t') << _T("m_PluginInfo.title = _(\"") << m_Info.title << _T("\");") << _T('\n');
    buffer << _T('\t') << _T("m_PluginInfo.version = _T(\"") << m_Info.version << _T("\");") << _T('\n');
    buffer << _T('\t') << _T("m_PluginInfo.description = _(\"") << m_Info.description << _T("\");") << _T('\n');
    buffer << _T('\t') << _T("m_PluginInfo.author = _T(\"") << m_Info.author << _T("\");") << _T('\n');
    buffer << _T('\t') << _T("m_PluginInfo.authorEmail = _T(\"") << m_Info.authorEmail << _T("\");") << _T('\n');
    buffer << _T('\t') << _T("m_PluginInfo.authorWebsite = _T(\"") << m_Info.authorWebsite << _T("\");") << _T('\n');
    buffer << _T('\t') << _T("m_PluginInfo.thanksTo = _(\"") << m_Info.thanksTo << _T("\");") << _T('\n');
    buffer << _T('\t') << _T("m_PluginInfo.license = LICENSE_GPL;") << _T('\n');
	buffer << _T('\t') << _T("m_PluginInfo.hasConfigure = ") << (hasConfigure ? _T("true;") : _T("false;")) << _T('\n');
	buffer << _T("}") << _T('\n');
	buffer << _T('\n');
	buffer << m_Info.name << _T("::~") << m_Info.name << _T("()") << _T('\n');
	buffer << _T("{") << _T('\n');
	buffer << _T('\t') << _T("//dtor") << _T('\n');
	buffer << _T("}") << _T('\n');
	buffer << _T('\n');
	if (type != 6) // wizard
	{
        buffer << _T("void ") << m_Info.name << _T("::OnAttach()") << _T('\n');
        buffer << _T("{") << _T('\n');
        buffer << _T('\t') << _T("// do whatever initialization you need for your plugin") << _T('\n');
        buffer << _T('\t') << _T("// NOTE: after this function, the inherited member variable") << _T('\n');
        buffer << _T('\t') << _T("// m_IsAttached will be TRUE...") << _T('\n');
        buffer << _T('\t') << _T("// You should check for it in other functions, because if it") << _T('\n');
        buffer << _T('\t') << _T("// is FALSE, it means that the application did *not* \"load\"") << _T('\n');
        buffer << _T('\t') << _T("// (see: does not need) this plugin...") << _T('\n');
        buffer << _T("}") << _T('\n');
        buffer << _T('\n');
        buffer << _T("void ") << m_Info.name << _T("::OnRelease(bool appShutDown)") << _T('\n');
        buffer << _T("{") << _T('\n');
        buffer << _T('\t') << _T("// do de-initialization for your plugin") << _T('\n');
        buffer << _T('\t') << _T("// if appShutDown is false, the plugin is unloaded because Code::Blocks is being shut down,") << _T('\n');
        buffer << _T('\t') << _T("// which means you must not use any of the SDK Managers") << _T('\n');
        buffer << _T('\t') << _T("// NOTE: after this function, the inherited member variable") << _T('\n');
        buffer << _T('\t') << _T("// m_IsAttached will be FALSE...") << _T('\n');
        buffer << _T("}") << _T('\n');
        buffer << _T('\n');
	}
	if (hasConfigure)
	{
		buffer << _T("int ") << m_Info.name << _T("::Configure()") << _T('\n');
		buffer << _T("{") << _T('\n');
		buffer << _T('\t') << _T("//create and display the configuration dialog for your plugin") << _T('\n');
		buffer << _T('\t') << _T("NotImplemented(_T(\"") << m_Info.name << _T("::Configure()") << _T("\"));") << _T('\n');
		buffer << _T('\t') << _T("return -1;") << _T('\n');
		buffer << _T("}") << _T('\n');
		buffer << _T('\n');
	}
	if (type != 1 && type != 5) // not cbToolPlugin and not cbMimePlugin
	{
        if (hasMenu)
        {
            buffer << _T("void ") << m_Info.name << _T("::BuildMenu(wxMenuBar* menuBar)") << _T('\n');
            buffer << _T("{") << _T('\n');
            buffer << _T('\t') << _T("//The application is offering its menubar for your plugin,") << _T('\n');
            buffer << _T('\t') << _T("//to add any menu items you want...") << _T('\n');
            buffer << _T('\t') << _T("//Append any items you need in the menu...") << _T('\n');
            buffer << _T('\t') << _T("//NOTE: Be careful in here... The application's menubar is at your disposal.") << _T('\n');
            buffer << _T('\t') << _T("NotImplemented(_T(\"") << m_Info.name << _T("::OfferMenuSpace()") << _T("\"));") << _T('\n');
            buffer << _T("}") << _T('\n');
            buffer << _T('\n');
        }
        if (hasModuleMenu)
        {
            buffer << _T("void ") << m_Info.name << _T("::BuildModuleMenu(const ModuleType type, wxMenu* menu, const wxString& arg)") << _T('\n');
            buffer << _T("{") << _T('\n');
            buffer << _T('\t') << _T("//Some library module is ready to display a pop-up menu.") << _T('\n');
            buffer << _T('\t') << _T("//Check the parameter \"type\" and see which module it is") << _T('\n');
            buffer << _T('\t') << _T("//and append any items you need in the menu...") << _T('\n');
            buffer << _T('\t') << _T("//TIP: for consistency, add a separator as the first item...") << _T('\n');
            buffer << _T('\t') << _T("NotImplemented(_T(\"") << m_Info.name << _T("::OfferModuleMenuSpace()") << _T("\"));") << _T('\n');
            buffer << _T("}") << _T('\n');
            buffer << _T('\n');
        }
        if (hasToolbar)
        {
            buffer << _T("bool ") << m_Info.name << _T("::BuildToolBar(wxToolBar* toolBar)") << _T('\n');
            buffer << _T("{") << _T('\n');
            buffer << _T('\t') << _T("//The application is offering its toolbar for your plugin,") << _T('\n');
            buffer << _T('\t') << _T("//to add any toolbar items you want...") << _T('\n');
            buffer << _T('\t') << _T("//Append any items you need on the toolbar...") << _T('\n');
            buffer << _T('\t') << _T("NotImplemented(_T(\"") << m_Info.name << _T("::BuildToolBar()") << _T("\"));") << _T('\n');
            buffer << _T('\t') << _T("// return true if you add toolbar items") << _T('\n');
            buffer << _T('\t') << _T("return false;") << _T('\n');
            buffer << _T("}") << _T('\n');
            buffer << _T('\n');
        }
	}
	switch (type)
	{
		case 1: // tool
			DoAddSourceTool(m_Info.name, buffer);
			break;
		case 2: // compiler
			DoAddSourceCompiler(m_Info.name, buffer);
			break;
		case 3: // debugger
			DoAddSourceDebugger(m_Info.name, buffer);
			break;
		case 4: // codecompl
			DoAddSourceCodeCompletion(m_Info.name, buffer);
			break;
		case 5: // mime
			DoAddSourceMime(m_Info.name, buffer);
			break;
		case 6: // wizard
			DoAddSourceWizard(m_Info.name, buffer);
			break;
	}
	// write buffer to disk
	wxFile impl(UnixFilename(m_Implementation), wxFile::write);
	cbWrite(impl,buffer);
	// end of implementation file
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -