This is early code with not enough testing. It should give you and idea of where I am going with this. Post any comments in this thread.
1 - Menu items in document popup and link popup.
2 - Allows to store, retrieve, or delete.
3 - Allows for six (6) items. (Arbitrary, could change)
4 - Allows user editing of item description.
QickStor.kmm
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage2)
#
# ---------- QickStor.kmm
# ---------- K-Meleon Macro Language Store or retrieve Page URL or Link URL ---------
#
# = = = = = Early version - For demonstration and comments
#
# Dependencies : main.kmm
# Resources :
# Preferences : "k-meleon_QickStor.count" interger
# "k-meleon_QickStor.Description.1...6" string
# "k-meleon_QickStor.Url.1...6" string
# Version : .3 2011-08-02
# Author : JamesD
# --------------------------------------------------------------------------------
_QickStor_StoreP {
$_QickStor_CurrentCount = getpref(INT,"k-meleon_QickStor.count");
$_QickStor_CurrentCount>=6 ? &_QickStor_StorePno : &_QickStor_StoreP2 ;
}
_QickStor_StorePno {
alert($_QickStor_CurrentCount . " items already stored.", "Maximum storage reached", INFO);
}
_QickStor_StoreP2 {
$_QickStor_NewCount = $_QickStor_CurrentCount + 1;
$_QickStor_Description = prompt("45 characters maximum", "Edit the discription",substr($TITLE,0,45));
$_QickStor_URL = $URL;
alert( "Count: ".$_QickStor_NewCount."\n"."URL: ".$_QickStor_URL."\n"."Desc: ".$_QickStor_Description , "Item to be stored", INFO);
setpref(INT,"k-meleon_QickStor.count", $_QickStor_NewCount);
setpref(STRING,"k-meleon_QickStor.Url.".$_QickStor_NewCount, $_QickStor_URL);
setpref(STRING,"k-meleon_QickStor.Description.".$_QickStor_NewCount, substr($_QickStor_Description,0,45) );
}
_QickStor_StoreL {
$_QickStor_CurrentCount = getpref(INT,"k-meleon_QickStor.count");
$_QickStor_CurrentCount>=6 ? &_QickStor_StorePno : &_QickStor_StoreL2 ;
}
_QickStor_StoreL2 {
$_QickStor_NewCount = $_QickStor_CurrentCount + 1;
id(ID_COPY_LINK_LOCATION);
$_QickStor_URL = getclipboard() ;
$_QickStor_Description = prompt("45 characters maximum", "Edit the discription",substr($_QickStor_URL,0,45));
alert( "Count: ".$_QickStor_NewCount."\n"."URL: ".$_QickStor_URL."\n"."Desc: ".$_QickStor_Description , "Item to be stored", INFO);
setpref(INT,"k-meleon_QickStor.count", $_QickStor_NewCount);
setpref(STRING,"k-meleon_QickStor.Url.".$_QickStor_NewCount, $_QickStor_URL);
setpref(STRING,"k-meleon_QickStor.Description.".$_QickStor_NewCount, substr($_QickStor_Description,0,45) );
}
_QickStor_Retrieve {
$_QickStor_NewCount = getpref(INT,"k-meleon_QickStor.count");
$_QickStor_Description = "";
$_QickStor_Count = 1 ;
while($_QickStor_Count <= $_QickStor_NewCount) {
$_QickStor_Desc = getpref(STRING,"k-meleon_QickStor.Description.".$_QickStor_Count) ;
$_QickStor_Description = $_QickStor_Description.$_QickStor_Count." -- ".$_QickStor_Desc."\n" ;
$_QickStor_Count = $_QickStor_Count +1;
}
alert($_QickStor_Description, "Note the number next to your choice", INFO);
$_QickStor_UseCount = prompt("Enter a number 1 to ". $_QickStor_Count-1,"Retrieve a page");
$_QickStor_UseCount=="" ? &_QickStor_Retrieve1 : &_QickStor_Retrieve2 ;
}
_QickStor_Retrieve1 { alert("Cancel was pressed.", "No action to be taken.", INFO); }
_QickStor_Retrieve2 { $_QickStor_UseCount > $_QickStor_NewCount ? &_QickStor_Retrieve3 : &_QickStor_Retrieve4 ; }
_QickStor_Retrieve3 { alert("Number enter is out of range.", "No action to be taken.", INFO); }
_QickStor_Retrieve4 { $_QickStor_UseCount < 1 ? &_QickStor_Retrieve3 : &_QickStor_Retrieve5 ; }
_QickStor_Retrieve5 {
$_QickStor_URL = getpref(STRING,"k-meleon_QickStor.Url.".$_QickStor_UseCount);
open($_QickStor_URL);
}
_QickStor_Delete {
$_QickStor_CurrCount = getpref(INT,"k-meleon_QickStor.count");
$_QickStor_Description = "";
$_QickStor_Count = 1 ;
while($_QickStor_Count <= $_QickStor_CurrCount) {
$_QickStor_Desc = getpref(STRING,"k-meleon_QickStor.Description.".$_QickStor_Count) ;
$_QickStor_Description = $_QickStor_Description.$_QickStor_Count." -- ".$_QickStor_Desc."\n" ;
$_QickStor_Count = $_QickStor_Count +1;
}
alert($_QickStor_Description, "Note the number next to your choice", INFO);
$_QickStor_DelCount = prompt("Enter a number 1 to ". $_QickStor_Count-1, "Delete this record");
$_QickStor_DelCount=="" ? &_QickStor_Delete1 : &_QickStor_Delete2 ;
}
_QickStor_Delete1 { alert("Cancel was pressed.", "No action to be taken.", INFO); }
_QickStor_Delete2 { $_QickStor_DelCount > $_QickStor_NewCount ? &_QickStor_Delete3 : &_QickStor_Delete4 ; }
_QickStor_Delete3 { alert("Number enter is out of range.", "No action to be taken.", INFO); }
_QickStor_Delete4 { $_QickStor_DelCount < 1 ? &_QickStor_Delete3 : &_QickStor_Delete5 ; }
_QickStor_Delete5 {
if ( $_QickStor_DelCount == $_QickStor_CurrCount) { ## take off top only - no collaspe
setpref(INT,"k-meleon_QickStor.count", $_QickStor_CurrCount-1); # reduce count by one
delpref("k-meleon_QickStor.Description.".$_QickStor_DelCount);
delpref("k-meleon_QickStor.Url.".$_QickStor_DelCount);
} else {
setpref(INT,"k-meleon_QickStor.count", $_QickStor_CurrCount-1); # reduce count by one
while ( $_QickStor_DelCount < $_QickStor_CurrCount) {
## copy downward
$_QickStor_ResetD = getpref(STRING,"k-meleon_QickStor.Description.".$_QickStor_DelCount +1);
setpref(STRING,"k-meleon_QickStor.Description.".$_QickStor_DelCount, $_QickStor_ResetD );
setpref(STRING,"k-meleon_QickStor.Description.".$_QickStor_DelCount, $_QickStor_ResetD );
$_QickStor_ResetU = getpref(STRING,"k-meleon_QickStor.Url.".$_QickStor_DelCount +1);
setpref(STRING,"k-meleon_QickStor.Url.".$_QickStor_DelCount, $_QickStor_ResetU );
$_QickStor_DelCount = $_QickStor_DelCount + 1;
}
delpref("k-meleon_QickStor.Description.".$_QickStor_CurrCount);
delpref("k-meleon_QickStor.Url.".$_QickStor_CurrCount);
}
}
_QickStor_ModMenu{
$_QickStor_PopmL = "QuickStoreLink";
$_QickStor_PopmP = "QuickStorePage";
setmenu("LinkSave",popup,$_QickStor_PopmL,-1);
setmenu("Document",popup,$_QickStor_PopmP,-1);
&_QickStor_ModMenuP;
&_QickStor_ModMenuL;
}
_QickStor_ModMenuP{
setmenu($_QickStor_PopmP,macro,"Store", _QickStor_StoreP,0);
setmenu($_QickStor_PopmP,macro,"Retrieve", _QickStor_Retrieve,1);
setmenu($_QickStor_PopmP,macro,"Delete", _QickStor_Delete,2);
rebuildmenu($_QickStor_PopmP);
}
_QickStor_ModMenuL{
setmenu($_QickStor_PopmL,macro,"Store", _QickStor_StoreL,0);
setmenu($_QickStor_PopmL,macro,"Retrieve", _QickStor_Retrieve,1);
setmenu($_QickStor_PopmL,macro,"Delete", _QickStor_Delete,2);
rebuildmenu($_QickStor_PopmL);
}
# - - - - - - - - - - - - - - - - - - -
$OnInit=$OnInit."_QickStor_ModMenu;";
$macroModules=$macroModules."QickStor;";
Edited 1 time(s). Last edit at 08/03/2011 01:41AM by JamesD.