# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # # Reopen closed Tabs. # Author: MSLAYER _myOption{ $_opt = $ARG ; $_opt!="dummy"?opentab($_opt):0; } myOption_BuildMenu{ setmenu("&Edit",popup,"Hey",-1); setmenu( "Hey","macro","Nothing yet","_myOption(dummy)"); setmenu( "Hey",separator,-1); } createList{ $index = $index + 1; $data = $URL; setmenu( "Hey" , macro , $data , "_myOption(".$data.")"); if $index==4{ $index=0; } #end createList } $OnInit=$OnInit."myOption_BuildMenu;"; $OnCloseTab=$OnCloseTab."createList;"; #_______________________________________ $macroModules=$macroModules."myOption;";Is not supposed to be under the edit menu, and the new menu is not going to be called 'Hey'. This is just for testing purposes.
createList{ $index = $index + 1;Incrementing the $index variable. Then use that variable as a menu position. But it doesn't work.
#doesn't work the last parameter setmenu( "Hey" , macro , $data , "_myOption(".$data.")", index$);When $index reaches maybe 10, it must be reset ( $index=0; ).
# JUST For TESTING purposes # K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # Re Open last Closed Tabs. # by MSlayer. _myOption1{ $data1!="dummy"?opentab($data1):0; } _myOption2{ $data2!="dummy"?opentab($data2):0; } _myOption3{ $data3!="dummy"?opentab($data3):0; } _myOption4{ $data4!="dummy"?opentab($data4):0; } myOption_BuildMenu{ setmenu("&Edit",popup,"Hey",-1); setmenu( "Hey",separator,-1); setmenu( "Hey", macro, "dummy", _myOption1, 1); setmenu( "Hey", macro, "dummy", _myOption2, 2); setmenu( "Hey", macro, "dummy", _myOption3, 3); setmenu( "Hey", macro, "dummy", _myOption4, 4); } createList{ $index = $index + 1; $data = $URL; if $index==1{ $data1 = $data; setmenu( "Hey" , macro , $data , _myOption1 , 1 ); } if $index==2{ $data2 = $data; setmenu( "Hey" , macro , $data , _myOption2 , 2 ); } if $index==3{ $data3 = $data; setmenu( "Hey" , macro , $data , _myOption3 , 3 ); } if $index==4{ $data4 = $data; $index=0; setmenu( "Hey" , macro , $data , _myOption4 , 4 ); } if $TabNumber==1{ if $URL!="about:blank"{ alert( $URL ,$TabNumber ,INFO); } } #end createList } #--------------------------------------------- $OnCloseTab=$OnCloseTab."createList;"; #$OnCloseWindow=$OnCloseWindow."createList;"; $OnInit=$OnInit."myOption_BuildMenu;"; $macroModules=$macroModules."myOption;";
setmenu( "Undo Closed Tabs" , macro , $TITLE , "_myOption(".$URL.")");
Quote
Macro Documentation
(1) LABEL must be specified for all item types except "separator". If LABEL is an empty string, this is a deletion.
(2) COMMAND must be specified for item types "command" and "macro". If COMMAND is an empty string and LABEL is not, this is a deletion.
Quote
Macro Documentation
rebuildmenu (menuName);
This method is used to rebuild a menu that was created by a setmenu() statement. Note that a menu must be rebuilt by rebuildmenu() inside the same macro where it was built by setmenu(). The rebuildmenu() statement takes effect only when the hosting macro is (directly or indirectly) called from the menus. See proxy.kmm for a usage demonstration.
$data_url = $URL; $x = $x + 1; $list.$x = $data_url ; #Not possible, it changes $x
$list = $list."|".$data_url; # Add element to array # For delete element in array use: $SUB = sub( r, s, t ); # For search if an element exist in array use: $I = index( s, t ); setmenu( "Hey" , macro , "" , _myOption1 , 1 ); # Deletion menu rebuild("Hey"); # Rebuild the menu
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # File name: PriorTabs.kmm # ---------- Re-Open Prior Tabs for K-Meleon 1.5.3 ---- # # Dependencies : main.kmm KM version 1.5 tabs # Resources : - # Preferences : - # Version : 0.5 2009-06-28 # 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 = 2 ; &_PriorTabs_BuildListMenu ; } _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 = $ARG; opentab($_PriorTabs_URL) ; } _PriorTabs_CreateList{ &_PriorTabs_CheckListForDup ; $_PriorTabs_Count = $_PriorTabs_Count + 1 ; iniwrite("List", $_PriorTabs_Count, $URL, $_PriorTabs_Path); &_PriorTabs_BuildListMenu ; } _PriorTabs_CheckListForDup{ $PT__cntr = 0; #alert($PT__cntr, "$PT__cntr CheckListForDup DEBUG", INFO); #alert($_PriorTabs_Count, "$_PriorTabs_Count CheckListForDup DEBUG", INFO); while($PT__cntr < $_PriorTabs_Count) { #alert($PT__cntr, "$PT__cntr WHILE DEBUG", INFO); #alert($_PriorTabs_Count, "$_PriorTabs_Count WHILE DEBUG", INFO); $_PriorTabs_EName = iniread("List", $PT__cntr +1, $_PriorTabs_ini_Value, $_PriorTabs_Path); if ($_PriorTabs_EName == $URL) { # overwrite downward from $_PriorTabs_Count to current key $PT__cntr_D = $PT__cntr ; while( $PT__cntr_D < $_PriorTabs_Count) { #alert($PT__cntr_D, "$PT__cntr_D overwrite DEBUG", INFO); $_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 ; } $_PriorTabs_Count = $_PriorTabs_Count -1 ; } $PT__cntr = $PT__cntr + 1 ; } } _PriorTabs_BuildMenu{ if($kTabs){ $PT__g="Prior Tabs"; setmenu("&Edit",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 == 2) { setmenu($PT__m2,macro,$_PriorTabs_EName,""); } else { setmenu($PT__m2,macro,$_PriorTabs_EName,"_PriorTabs_OpenTab(".$_PriorTabs_EName.")"); } $PT__cntr = $PT__cntr + 1 ; } } $_PriorTabs_Clearing == 1 ? rebuildmenu($PT__g):0; rebuildmenu($PT__m2); $_PriorTabs_Clearing = 1 ; } _PriorTabs_GetPath{ $_PriorTabs_Path=getfolder(UserMacroFolder)."\\PriorTabs.ini"; $_PriorTabs_Count = 0 ; $_PriorTabs_Clearing = 1 ; } #--------------------------------------------- #$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;";
_PriorTabs_OpenTab{ $_PriorTabs_URL = $ARG; opentab($_PriorTabs_URL) ; }
setmenu($PT__m2,macro,$_PriorTabs_EName,"_PriorTabs_OpenTab(".$_PriorTabs_EName.")");
Quote
Macro Documentation
$VALID_URL = urlencode( TEXT );
Encodes TEXT for use in an URL.
872 Value urldecode(FunctionData* data) 873 { 874 checkArgs(__FUNCTION__, data, 1); 875 char* str = strdup(data->getstr(1)); 876 nsUnescape(str); 877 Value ret(str); 878 free(str); 879 return ret; 880 }
} else { $_PriorTabs_ENameA = gsub( ",", "|",$_PriorTabs_EName); setmenu($PT__m2,macro,$_PriorTabs_EName,"_PriorTabs_OpenTab(".$_PriorTabs_ENameA.")");
_PriorTabs_OpenTab{ $_PriorTabs_URL = gsub( "|", ",",$ARG); opentab($_PriorTabs_URL) ; }
} else { $_PriorTabs_ENameA = urlencode($_PriorTabs_EName); setmenu($PT__m2,macro,$_PriorTabs_EName,"_PriorTabs_OpenTab(".$_PriorTabs_ENameA.")");and
_PriorTabs_OpenTab{ $_PriorTabs_URL = urldecode( $ARG ); opentab($_PriorTabs_URL) ;
Quote
JamesD
That is one more item to update in MacroLanguage2. I will work on that soon.
The question still remains about passing a comma in the $ARG statement. Is that a bug?
Quote
JamesD
That is one more item to update in MacroLanguage2. I will work on that soon.
1395 void InitFunctions(Mac* m) 1396 { 1397 MACROSFUNC_ADD(_); 1398 MACROSFUNC_ADD(setcheck); 1399 MACROSFUNC_ADD(open); 1400 MACROSFUNC_ADD(opennew); 1401 MACROSFUNC_ADD(openbg); 1402 MACROSFUNC_ADD(opentab); 1403 MACROSFUNC_ADD(openbgtab); 1404 MACROSFUNC_ADD(setpref); 1405 MACROSFUNC_ADD(getpref); 1406 MACROSFUNC_ADD(delpref); 1407 MACROSFUNC_ADD(togglepref); 1408 MACROSFUNC_ADD(exec); 1409 MACROSFUNC_ADD(id); 1410 MACROSFUNC_ADD(plugin); 1411 MACROSFUNC_ADD(statusbar); 1412 MACROSFUNC_ADD(alert); 1413 MACROSFUNC_ADD(confirm); 1414 MACROSFUNC_ADD(prompt); 1415 MACROSFUNC_ADD(getclipboard); 1416 MACROSFUNC_ADD(setclipboard); 1417 MACROSFUNC_ADD(macros); 1418 MACROSFUNC_ADD(pluginmsg); 1419 MACROSFUNC_ADD(pluginmsgex); 1420 MACROSFUNC_ADD(gensub); 1421 MACROSFUNC_ADD(gsub); 1422 MACROSFUNC_ADD(index); 1423 MACROSFUNC_ADD(length); 1424 MACROSFUNC_ADD(sub); 1425 MACROSFUNC_ADD(substr); 1426 MACROSFUNC_ADD(urlencode); 1427 MACROSFUNC_ADD(urldecode); 1428 MACROSFUNC_ADD(getfolder); 1429 MACROSFUNC_ADD(basename); 1430 MACROSFUNC_ADD(dirname); 1431 MACROSFUNC_ADD(hostname); 1432 MACROSFUNC_ADD(injectJS); 1433 MACROSFUNC_ADD(injectCSS); 1434 MACROSFUNC_ADD(readfile); 1435 MACROSFUNC_ADD(readreg); 1436 MACROSFUNC_ADD(promptforfile); 1437 MACROSFUNC_ADD(promptforfolder); 1438 MACROSFUNC_ADD(forcecharset); 1439 MACROSFUNC_ADD(setmenu); 1440 MACROSFUNC_ADD(setaccel); 1441 MACROSFUNC_ADD(rebuildmenu); 1442 MACROSFUNC_ADD(getwinvar); 1443 MACROSFUNC_ADD(setwinvar); 1444 MACROSFUNC_ADD(iniread); 1445 MACROSFUNC_ADD(iniwrite); 1446 }
# 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.8 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_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); } &_PriorTabs_BuildListMenu ; } _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("&Edit",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_Clearing = 0 ; $_PriorTabs_WasDup = 0 ; } _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;";
# 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("&Edit",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;";
Quote
JamesD
@ desga2
So $CommandLine is a special global variable. Yes, I have tried it. Was it added in ver 1.5.0 ? I need to update that also. I checked the list before but my eyes are getting not so good. I just plain missed urldecode. I saw getwinvar but did not spot CommandLine. I will try update MacroLanguage soon.