Mercurial > hg > forks > UniversalIndentGUI
view src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/DockingDlgInterface.h @ 489:5fe3aefed089
Initial commit of plugin for Notepad++. Had to make some changes to the indenthandler, which need to be put under a ifdef switch. But at first it at least works.
git-svn-id: svn://svn.code.sf.net/p/universalindent/code/trunk@729 59b1889a-e5ac-428c-b0c7-476e01d41282
author | thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282> |
---|---|
date | Sun, 15 Jun 2008 17:15:35 +0000 |
parents | |
children |
line wrap: on
line source
/* This file is part of Notepad++ - Interface defines Copyright (C)2006 Jens Lorenz <jens.plugin.npp@gmx.de> 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef DOCKINGDLGINTERFACE_H #define DOCKINGDLGINTERFACE_H #include "StaticDialog.h" #include "Resource.h" #include "Docking.h" #include <shlwapi.h> #define UPDATE_CAPTION updateDockingDlg class DockingDlgInterface : public StaticDialog { public: DockingDlgInterface(): StaticDialog() {}; DockingDlgInterface(int dlgID): StaticDialog(), _dlgID(dlgID) {}; virtual void init(HINSTANCE hInst, HWND parent) { StaticDialog::init(hInst, parent); ::GetModuleFileName((HMODULE)hInst, _moduleName, MAX_PATH); strcpy(_moduleName, PathFindFileName(_moduleName)); } void create(tTbData * data, bool isRTL = false){ StaticDialog::create(_dlgID, isRTL); ::GetWindowText(_hSelf, _pluginName, sizeof(_pluginName)); /* user information */ data->hClient = _hSelf; data->pszName = _pluginName; /* supported features by plugin */ data->uMask = 0; /* icons */ //data->hIconBar = ::LoadIcon(hInst, IDB_CLOSE_DOWN); //data->hIconTab = ::LoadIcon(hInst, IDB_CLOSE_DOWN); /* additional info */ data->pszAddInfo = NULL; _data = data; }; virtual void updateDockingDlg(void) { ::SendMessage(_hParent, NPPM_DMMUPDATEDISPINFO, 0, (LPARAM)_hSelf); } virtual void destroy() { }; virtual void display(bool toShow = true) const { extern FuncItem funcItem[]; ::SendMessage(_hParent, toShow?NPPM_DMMSHOW:NPPM_DMMHIDE, 0, (LPARAM)_hSelf); if (_data != NULL) ::SendMessage(_hParent, NPPM_SETMENUITEMCHECK, funcItem[_data->dlgID]._cmdID, (LPARAM)toShow); }; const char * getPluginFileName() const { return _moduleName; }; protected : virtual BOOL CALLBACK run_dlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_NOTIFY: { LPNMHDR pnmh = (LPNMHDR)lParam; if (pnmh->hwndFrom == _hParent) { switch (LOWORD(pnmh->code)) { case DMN_CLOSE: { extern FuncItem funcItem[]; if (_data != NULL) ::SendMessage(_hParent, NPPM_SETMENUITEMCHECK, funcItem[_data->dlgID]._cmdID, (LPARAM)FALSE); break; } case DMN_FLOAT: { _isFloating = true; break; } case DMN_DOCK: { _isFloating = false; _iDockedPos = HIWORD(pnmh->code); break; } default: break; } } break; } default: break; } return FALSE; }; /* Handles */ HWND _HSource; tTbData* _data; int _dlgID; bool _isFloating; int _iDockedPos; char _moduleName[MAX_PATH]; char _pluginName[MAX_PATH]; }; #endif // DOCKINGDLGINTERFACE_H