# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # File name: PriorTabs.kmm # ---------- Re-Open PriorTabs for K-Meleon 1.5.3 ---- # # Dependencies : main.kmm KM version 1.5 tabs # Resources : PriorTabs.ini # Preferences : - # Version : 0.9 2009-06-29 # Author : JamesD # -------------------------------------------------------------------------------- _PriorTabs_ClearList{ ## erase the ini file exec("cmd /c ERASE \"".$_PriorTabs_Path."\""); ## For user of win9x operating systems, cmd should be replaced with Command in the above line $_PriorTabs_Clearing = 1 ; &_PriorTabs_BuildListMenu ; $_PriorTabs_Clearing = 0 ; } _PriorTabs_ClearListMenu{ $_PriorTabs_Clearing = 1 ; &_PriorTabs_BuildListMenu ; $_PriorTabs_Clearing = 0 ; } _PriorTabs_WipeList{ $_PriorTabs_L = length(readfile($_PriorTabs_Path)); if ( $_PriorTabs_L > 1) { exec("cmd /c ERASE \"".$_PriorTabs_Path."\""); ## For user of win9x operating systems, cmd should be replaced with Command in the above line } } _PriorTabs_OpenTab{ $_PriorTabs_URL = urldecode( $ARG ); opentab($_PriorTabs_URL) ; } _PriorTabs_CreateList{ &_PriorTabs_CheckListForDup ; $_PriorTabs_Count = $_PriorTabs_Count + 1 ; if ($_PriorTabs_WasDup == 0) { iniwrite("List", $_PriorTabs_Count, $URL, $_PriorTabs_Path); } if ($_PriorTabs_WasDup == 1) { &_PriorTabs_ClearListMenu; } &_PriorTabs_BuildListMenu ; $_PriorTabs_WasDup = 0 ; } _PriorTabs_CheckListForDup{ $PT__cntr = 0; while($PT__cntr < $_PriorTabs_Count) { $_PriorTabs_EName = iniread("List", $PT__cntr +1, $_PriorTabs_ini_Value, $_PriorTabs_Path); if ($_PriorTabs_EName == $URL) { # Hold the current value in $_PriorTabs_ENameH $_PriorTabs_ENameH = $_PriorTabs_EName ; # overwrite downward from $_PriorTabs_Count to current key $PT__cntr_D = $PT__cntr + 1 ; while( $PT__cntr_D < $_PriorTabs_Count) { $_PriorTabs_EName = iniread("List", $PT__cntr_D +1 , $_PriorTabs_ini_Value, $_PriorTabs_Path); iniwrite("List", $PT__cntr_D, $_PriorTabs_EName, $_PriorTabs_Path); $PT__cntr_D = $PT__cntr_D + 1 ; } # If a dup write the new (replaced) item to highest key $_PriorTabs_WasDup = 1 ; $_PriorTabs_EName = $_PriorTabs_ENameH ; iniwrite("List", $PT__cntr_D, $_PriorTabs_ENameH, $_PriorTabs_Path); $_PriorTabs_Count = $_PriorTabs_Count -1 ; } $PT__cntr = $PT__cntr + 1 ; } } _PriorTabs_BuildMenu{ if($kTabs){ $PT__g="Prior Tabs"; setmenu("&Sessions",popup,$PT__g,-1); $PT__m1="Options"; setmenu($PT__g,inline,$PT__m1); setmenu($PT__m1,macro,"Clear List",_PriorTabs_ClearList); setmenu($PT__m1,separator,1); &_PriorTabs_BuildListMenu; } } _PriorTabs_BuildListMenu{ $PT__g="Prior Tabs"; $PT__m2="PriorTabs_List"; setmenu($PT__g,inline,$PT__m2); if ($_PriorTabs_Count!=0) { $PT__cntr = 0; while($PT__cntr < $_PriorTabs_Count) { $_PriorTabs_EName = iniread("List", $PT__cntr +1, $_PriorTabs_ini_Value, $_PriorTabs_Path); if ($_PriorTabs_Clearing == 1) { setmenu($PT__m2,macro,$_PriorTabs_EName,""); } else { $_PriorTabs_ENameA = urlencode($_PriorTabs_EName); setmenu($PT__m2,macro,$_PriorTabs_EName,"_PriorTabs_OpenTab(".$_PriorTabs_ENameA.")"); } $PT__cntr = $PT__cntr + 1 ; } } if ($_PriorTabs_Clearing + $_PriorTabs_WasDup > 0) { rebuildmenu($PT__g); } rebuildmenu($PT__m2); } _PriorTabs_GetPath{ $_PriorTabs_Path=getfolder(UserMacroFolder)."\\PriorTabs.ini"; $_PriorTabs_Count = 0 ; $_PriorTabs_Clearing = 0 ; $_PriorTabs_WasDup = 0 ; } #--------------------------------------------- #$OnStartup=$OnStartup."_PriorTabs_GetPath;_PriorTabs_WipeList"; $OnCloseTab=$OnCloseTab."_PriorTabs_CreateList;"; $OnInit=$OnInit."_PriorTabs_GetPath;_PriorTabs_WipeList;_PriorTabs_BuildMenu;"; $OnQuit=$OnQuit."_PriorTabs_WipeList;"; $macroModules=$macroModules."PriorTabs;"; |