{$include compilers.inc} {$IFDEF COMPILER_16_UP} {$WEAKLINKRTTI ON} {.$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} {$ENDIF} {$IMAGEBASE $13100000} library quicksearch; {$R qs.res} {$R version.res} uses // FastMM4, Windows, Messages, m_api, sr_optdialog, sr_global, sr_window, sr_frame, mirutils, common; function OnTTBLoaded(wParam:WPARAM;lParam:LPARAM):int;cdecl; begin addtotoolbar; result:=0; end; function IconChanged(wParam:WPARAM;lParam:LPARAM):int;cdecl; var ttb:TTBButton; begin result:=0; // toptoolbar if ServiceExists(MS_TTB_GETBUTTONOPTIONS) then begin CallService(MS_TTB_GETBUTTONOPTIONS,(hTTBButton shl 16)+TTBO_ALLDATA,TLPARAM(@ttb)); ttb.hIconUp:=IcoLib_GetIcon(QS_QS,0); ttb.hIconDn:=ttb.hIconUp; CallService(MS_TTB_SETBUTTONOPTIONS,(hTTBButton shl 16)+TTBO_ALLDATA,TLPARAM(@ttb)); end; end; const IconAmount = 9; const Icons:array [0..IconAmount-1] of tIconItem = ( (szDescr: 'Quick Search' ; szName: 'QS' ; defIconID: IDI_QS ; size: 0; hIcolib: 0;), (szDescr: 'New Column' ; szName: 'New' ; defIconID: IDI_NEW ; size: 0; hIcolib: 0;), (szDescr: 'Column Up' ; szName: 'Up' ; defIconID: IDI_UP ; size: 0; hIcolib: 0;), (szDescr: 'Column Down' ; szName: 'Down' ; defIconID: IDI_DOWN ; size: 0; hIcolib: 0;), (szDescr: 'Delete Column'; szName: 'Delete' ; defIconID: IDI_DELETE ; size: 0; hIcolib: 0;), (szDescr: 'Default' ; szName: 'Default'; defIconID: IDI_DEFAULT; size: 0; hIcolib: 0;), (szDescr: 'Reload' ; szName: 'Reload' ; defIconID: IDI_RELOAD ; size: 0; hIcolib: 0;), (szDescr: 'Male' ; szName: 'Male' ; defIconID: IDI_MALE ; size: 0; hIcolib: 0;), (szDescr: 'Female' ; szName: 'Female' ; defIconID: IDI_FEMALE ; size: 0; hIcolib: 0;) ); procedure RegisterIcons; begin Icon_Register(hInstance, qs_module, @Icons, IconAmount, 'QS'); HookEvent(ME_SKIN_ICONSCHANGED,@IconChanged); end; function OnOptInitialise(wParam:WPARAM;lParam:LPARAM):int;cdecl; var odp:TOPTIONSDIALOGPAGE; begin ZeroMemory(@odp,sizeof(odp)); odp.Position :=900003000; odp.pszTemplate:=PAnsiChar(IDD_DIALOG1); odp.szTitle.a :=qs_name; odp.szGroup.a :='Contacts'; odp.pfnDlgProc :=@sr_optdialog.DlgProcOptions; odp.flags :=ODPF_BOLDGROUPS; Options_AddPage(wParam,@odp); Result:=0; end; function OpenSearchWindow(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; begin result:=0; OpenSrWindow(pointer(wParam),lParam) end; function OnModulesLoaded(wParam:WPARAM;lParam:LPARAM):int;cdecl; begin RegisterIcons; RegisterColors; CreateServiceFunction(QS_SHOWSERVICE,@OpenSearchWindow); AddRemoveMenuItemToMainMenu; reghotkeys; HookEvent(ME_TTB_MODULELOADED,@OnTTBLoaded); CreateFrame(0); Result:=0; end; function Load():integer;cdecl; begin Result:=0; Langpack_register; HookEvent(ME_OPT_INITIALISE ,@OnOptInitialise); HookEvent(ME_SYSTEM_MODULESLOADED,@OnModulesLoaded); qsopt.numcolumns:=loadopt_db(qsopt.columns); end; function Unload:integer;cdecl; begin result:=0; removetoolbar; DestroyFrame; CloseSrWindow; clear_columns(qsopt.columns); end; exports Load, Unload; begin DisableThreadLibraryCalls(hInstance); PluginInfo.cbSize :=SizeOf(TPLUGININFOEX); PluginInfo.shortName :='Quick Search'; PluginInfo.version :=$01040200; PluginInfo.description:= 'This plugin allows you to quick search for nickname, '+ 'firstname, lastname, email, uin in your contact list. '+ 'And now you may add any setting to display - for example '+ 'user''s version of Miranda, group or city.'; PluginInfo.author :='Awkward, based on Bethoven sources'; PluginInfo.copyright :='(c) 2004-05 Bethoven; 2006-13 Awkward'; PluginInfo.homepage :='https://miranda-ng.org/p/QuickSearch/'; PluginInfo.flags :=UNICODE_AWARE; PluginInfo.uuid :=MIID_QUICKSEARCH; end.