Quote
pgf
Thanks for you reply
the most important functions of groups are:
1, type group's name in the URL Bar, press Ctrl+Enter to open
2, Group is not session, we can open a group without influence opened tabs
(when open a session, all opened tabs will be closed)
I think these functions are very useful.
Usually, I open some news websites by typping "news" and press Ctrl+Enter.
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # # ---------- GroupsUnit.kmm # ---------- K-Meleon Macro Language Save/Open group of URLs in tabs ---- # # Dependencies : - main.kmm KM version 1.5 tabs # Resources : - # Preferences : - k-meleon_GroupsUnit.<name>.<#> # : - k-meleon_GroupsUnit.<name>.Cnt # Version : - 0.2 2008-12-29 # -------------------------------------------------------------------------------- _GroupsUnit_RunCode_Save{ macroinfo="Save the current tab's URLS"; $_GroupsUnit_Name = prompt("Assign a name for this group.", "GroupUnit Name (save)"); $_GroupsUnit_Number_of_Tabs = $TabNumber ; $_GroupsUnit_Tab_Count = 0 ; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Save_Loop; } _GroupsUnit_Save_Loop { $_GroupsUnit_Tab_Count == 0 ? setpref( INT, "k-meleon_GroupsUnit.".$_GroupsUnit_Name.".Cnt", $_GroupsUnit_Number_of_Tabs ) :0; id(ID_TAB_NEXT) ; setpref( STRING, "k-meleon_GroupsUnit.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count, $URL ); $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1 ; } _GroupsUnit_RunCode_Load{ $_GroupsUnit_Name = prompt("Enter name of group to load.", "GroupUnit Name (load)"); $_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_GroupsUnit.".$_GroupsUnit_Name.".Cnt"); $_GroupsUnit_Tab_Count = 0 ; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Load_Loop; } _GroupsUnit_Load_Loop{ $_GroupsUnit_URL = getpref(STRING, "k-meleon_GroupsUnit.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count, $URL ); opentab( $_GroupsUnit_URL ); $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1 ; } _GroupsUnit_RunCode_Delete{ $_GroupsUnit_Name = prompt("Enter name of group to delete.", "GroupUnit Name (delete)"); $_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_GroupsUnit.".$_GroupsUnit_Name.".Cnt"); $_GroupsUnit_Tab_Count = 0 ; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Delete_Loop; } _GroupsUnit_Delete_Loop{ $_GroupsUnit_Tab_Count == 0 ? delpref("k-meleon_GroupsUnit.".$_GroupsUnit_Name.".Cnt"); delpref("k-meleon_GroupsUnit.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count); $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1 ; } _GroupsUnit_BuildMenu{ # add another option to the File menu $_GroupsUnit_Popm = "GroupsUnit" ; $kTabs?setmenu("&File",popup,$_GroupsUnit_Popm,4):0; $kTabs?setmenu($_GroupsUnit_Popm,macro,"Save a group",_GroupsUnit_RunCode_Save,1):0; $kTabs?setmenu($_GroupsUnit_Popm,macro,"Load a group",_GroupsUnit_RunCode_Load,2):0; $kTabs?setmenu($_GroupsUnit_Popm,macro,"Delete a group",_GroupsUnit_RunCode_Delete,3):0; } $OnInit=$OnInit."_GroupsUnit_BuildMenu;"; $macroModules=$macroModules."GroupsUnit;";
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # File name: Groups2.kmm # ---------- Groups2 in tabs for K-Meleon 1.5.x ---- # # Dependencies : - main.kmm KM version 1.5 tabs # Resources : - # Preferences : - k-meleon_Groups2.<name>.<#> # : - k-meleon_Groups2.<name>.count # : - k-meleon_Groups2.list # Version : - 0.2b 2008-12-29 # Authors : JamesD and desga2 # -------------------------------------------------------------------------------- _GroupsUnit_RunCode_Save{ macroinfo="Save the current tab's URLS"; $_GroupsUnit_Name = prompt("Assign a name for this group.", "GroupUnit Name (save)"); if($_GroupsUnit_Name != "" ){ $_Glist=""; $_Glist=getpref( STRING, "k-meleon_Groups2.list"); if(index( $_Glist, $_GroupsUnit_Name ) != -1){ $_Goverwrite = confirm("Grup name: '".$_GroupsUnit_Name."' already exist.\nDo you want overwrite it?", "GroupUnit Name (save)", YESNO, QUESTION); $_Goverwrite == "YES" ? plugin(macros,"_Goverwrite(".$_GroupsUnit_Name.")") : 0; } else { $_Glist=$_Glist.$_GroupsUnit_Name."|"; setpref( STRING, "k-meleon_Groups2.list", $_Glist ); $_GroupsUnit_Number_of_Tabs = $TabNumber; $_GroupsUnit_Tab_Count = 0; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Save_Loop; &_Groups2_BuildGroupsMenu; } } } _GroupsUnit_Save_Loop{ $_GroupsUnit_Tab_Count == 0 ? setpref( INT, "k-meleon_Groups2.".$_GroupsUnit_Name.".count", $_GroupsUnit_Number_of_Tabs ) :0; id(ID_TAB_NEXT); setpref( STRING, "k-meleon_Groups2.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count, $URL ); $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1; } _Goverwrite{ $_GroupsUnit_Name = $ARG; #alert("Group name in $ARG: ".$_GroupsUnit_Name, "Groups2 DEBUG", INFO); # First Delete: $_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_GroupsUnit_Name.".count"); $_GroupsUnit_Tab_Count = 0 ; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Delete_Loop; # Second Save: $_GroupsUnit_Number_of_Tabs = $TabNumber; $_GroupsUnit_Tab_Count = 0; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Save_Loop; } _Groups2_OpenGroup{ $_GroupsUnit_Name = $ARG; #alert("Group name in $ARG: ".$_GroupsUnit_Name, "Groups2 DEBUG", INFO); $_GroupsUnit_Name==""?$_GroupsUnit_Name=$URLBAR:0; $_GroupsUnit_Name==""?$_Group=$URL:0; $_GroupsUnit_Name==$URL?0:$_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_GroupsUnit_Name.".count"); $_GroupsUnit_Tab_Count = 0 ; if($_GroupsUnit_Name != $URL ) while($_GroupsUnit_Tab_Count<$_GroupsUnit_Number_of_Tabs) &_GroupsUnit_Load_Loop; } _GroupsUnit_RunCode_Load{ $_GroupsUnit_Name = prompt("Enter name of group to load.", "GroupUnit Name (load)"); if($_GroupsUnit_Name != "" ){ $_Glist=""; $_Glist=getpref( STRING, "k-meleon_Groups2.list"); if(index( $_Glist, $_GroupsUnit_Name ) != -1){ $_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_GroupsUnit_Name.".count"); $_GroupsUnit_Tab_Count = 0 ; id(ID_CLOSE_ALLTA; $URLBAR="about:blank"; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Load_Loop; } else { alert("No group found with name: ".$_GroupsUnit_Name, "GroupUnit Name (load)", EXCLAIM); } } } _GroupsUnit_Load_Loop{ $_GroupsUnit_URL = getpref(STRING, "k-meleon_Groups2.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count, $URL ); if($URLBAR=="about:blank"){ open($_GroupsUnit_URL); $URLBAR=""; } else { opentab( $_GroupsUnit_URL ); } $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1; } _GroupsUnit_RunCode_Delete{ $_GroupsUnit_Name = prompt("Enter name of group to delete.", "GroupUnit Name (delete)"); if($_GroupsUnit_Name != "" ){ $_Glist=""; $_Glist=getpref( STRING, "k-meleon_Groups2.list"); if(index( $_Glist, $_GroupsUnit_Name ) != -1){ $_Glist = sub( $_GroupsUnit_Name."|", "", $_Glist ); setpref( STRING, "k-meleon_Groups2.list", $_Glist ); $_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_GroupsUnit_Name.".count"); $_GroupsUnit_Tab_Count = 0 ; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Delete_Loop; #setmenu("_Groups_List",macro,"",""); &_Groups2_BuildGroupsMenu; } else { alert("No group found with name: ".$_GroupsUnit_Name, "GroupUnit Name (delete)", EXCLAIM); } } } _GroupsUnit_Delete_Loop{ $_GroupsUnit_Tab_Count == 0 ? delpref("k-meleon_Groups2.".$_GroupsUnit_Name.".count"):0; delpref("k-meleon_Groups2.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count); $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1 ; } _Groups2_BuildMenu{ # Groups menu if($kTabs){ $_g="&Groups"; setmenu(Main,popup,$_g,"&Tools"); $__m="_Groups"; setmenu($_g,inline,$__m); setmenu($__m,macro,"&Save a group",_GroupsUnit_RunCode_Save); setmenu($__m,macro,"&Load a group",_GroupsUnit_RunCode_Load); setmenu($__m,macro,"&Delete a group",_GroupsUnit_RunCode_Delete); setmenu($__m,separator,3); &_Groups2_BuildGroupsMenu; } } _Groups2_BuildGroupsMenu{ $_g="&Groups"; $_m="_Groups_List"; setmenu($_g,inline,$_m); $__glist=getpref( STRING, "k-meleon_Groups2.list"); #alert("Group list:\n".$__glist, "Groups2 DEBUG", INFO); while($__glist != ""){ $__gname = substr($__glist, 0 , index($__glist, "|")); #alert("Group name:\n".$__gname, "Groups2 DEBUG", INFO); setmenu($_m,macro,$__gname,"_Groups2_OpenGroup(".$__gname.")"); $__glist=sub( $__gname."|", "", $__glist ); #alert("Group list:\n".$__glist, "Groups2 DEBUG", INFO); } rebuildmenu($_g); rebuildmenu($_m); } _Groups2_SetAccels{ # SHIFT VK_RETURN not work setaccel("ALT VK_RETURN","macros(_Groups2_OpenGroup)"); } $OnInit=$OnInit."_Groups2_SetAccels;_Groups2_BuildMenu;"; $macroModules=$macroModules."Groups2;";
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # # ---------- GroupsUnit.kmm # ---------- K-Meleon Macro Language Save/Open group of URLs in tabs ---- # # Dependencies : - main.kmm KM version 1.5 tabs # Resources : - # Preferences : - k-meleon_GroupsUnit.<name>.<#> # : - k-meleon_GroupsUnit.<name>.Cnt # Version : - 0.3 2008-12-29 # -------------------------------------------------------------------------------- ### - - - - - PUBLIC - - - - GroupsUnit_RunCode_Load{ macroinfo=_("Load a group"); $_GroupsUnit_Name = prompt(_("Enter name of group to load."), _("GroupUnit Name (load)")); $_GroupsUnit_Name != "" ?&_GroupsUnit_Load : 0; } ### - - - - - PRIVATE - - - - _GroupsUnit_Load{ $_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_GroupsUnit.".$_GroupsUnit_Name.".Cnt"); $_GroupsUnit_Tab_Count = 0 ; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Load_Loop; } _GroupsUnit_Load_Loop{ $_GroupsUnit_URL = getpref(STRING, "k-meleon_GroupsUnit.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count, $URL ); opentab( $_GroupsUnit_URL ); $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1 ; } _GroupsUnit_RunCode_Save{ macroinfo=_("Save the current tab's URLS as a group"); $_GroupsUnit_Name = prompt(_("Assign a name for this group."), _("GroupUnit Name (save)")); $_GroupsUnit_Name != "" ?&_GroupsUnit_Save : 0; } _GroupsUnit_Save{ $_GroupsUnit_Number_of_Tabs = $TabNumber ; $_GroupsUnit_Tab_Count = 0 ; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Save_Loop; } _GroupsUnit_Save_Loop { $_GroupsUnit_Tab_Count == 0 ? setpref( INT, "k-meleon_GroupsUnit.".$_GroupsUnit_Name.".Cnt", $_GroupsUnit_Number_of_Tabs ) :0; id(ID_TAB_NEXT) ; setpref( STRING, "k-meleon_GroupsUnit.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count, $URL ); $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1 ; } _GroupsUnit_RunCode_Delete{ macroinfo=_("Delete a group"); $_GroupsUnit_Name = prompt(_("Enter name of group to delete."), _("GroupUnit Name (delete)")); $_GroupsUnit_Name != "" ?&_GroupsUnit_Delete : 0; } _GroupsUnit_Delete{ $_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_GroupsUnit.".$_GroupsUnit_Name.".Cnt"); $_GroupsUnit_Tab_Count = 0 ; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Delete_Loop; } _GroupsUnit_Delete_Loop{ $_GroupsUnit_Tab_Count == 0 ? delpref("k-meleon_GroupsUnit.".$_GroupsUnit_Name.".Cnt"); delpref("k-meleon_GroupsUnit.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count); $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1 ; } _GroupsUnit_BuildMenu{ # add another option to the File menu $_GroupsUnit_Popm = "GroupsUnit" ; $kTabs?setmenu("&File",popup,$_GroupsUnit_Popm,4):0; $kTabs?setmenu($_GroupsUnit_Popm,macro,_("Save a group"),_GroupsUnit_RunCode_Save,1):0; $kTabs?setmenu($_GroupsUnit_Popm,macro,_("Load a group"),GroupsUnit_RunCode_Load,2):0; $kTabs?setmenu($_GroupsUnit_Popm,macro,_("Delete a group"),_GroupsUnit_RunCode_Delete,3):0; macros(_GroupsUnit_accelerators); } _GroupsUnit_accelerators{ setaccel("CTRL SHIFT U", "macros(GroupsUnit_RunCode_Load)"); } $OnInit=$OnInit."_GroupsUnit_BuildMenu;"; $macroModules=$macroModules."GroupsUnit;";
COMMAND must be specified for item types "command" and "macro". If COMMAND is an empty string and LABEL is not, this is a deletion.Label is the group being deleted. We need it to be processed through.
setmenu($_m,macro,$__gname,"_Groups2_OpenGroup(".$__gname.")");where COMMAND is empty string.
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # File name: Groups2.kmm # ---------- Groups2 in tabs for K-Meleon 1.5.x ---- # # Dependencies : - main.kmm KM version 1.5 tabs # Resources : - # Preferences : - k-meleon_Groups2.<name>.<#> # : - k-meleon_Groups2.<name>.count # : - k-meleon_Groups2.list # Version : - 0.2c 2008-12-29 # Authors : JamesD and desga2 # -------------------------------------------------------------------------------- _GroupsUnit_RunCode_Save{ macroinfo="Save the current tab's URLS"; $_GroupsUnit_Name = prompt("Assign a name for this group.", "GroupUnit Name (save)"); if($_GroupsUnit_Name != "" ){ $_Glist=""; $_Glist=getpref( STRING, "k-meleon_Groups2.list"); if(index( $_Glist, $_GroupsUnit_Name ) != -1){ $_Goverwrite = confirm("Grup name: '".$_GroupsUnit_Name."' already exist.\nDo you want overwrite it?", "GroupUnit Name (save)", YESNO, QUESTION); $_Goverwrite == "YES" ? plugin(macros,"_Goverwrite(".$_GroupsUnit_Name.")") : 0; } else { $_Glist=$_Glist.$_GroupsUnit_Name."|"; setpref( STRING, "k-meleon_Groups2.list", $_Glist ); $_GroupsUnit_Number_of_Tabs = $TabNumber; $_GroupsUnit_Tab_Count = 0; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Save_Loop; &_Groups2_BuildGroupsMenu; } } } _GroupsUnit_Save_Loop{ $_GroupsUnit_Tab_Count == 0 ? setpref( INT, "k-meleon_Groups2.".$_GroupsUnit_Name.".count", $_GroupsUnit_Number_of_Tabs ) :0; id(ID_TAB_NEXT); setpref( STRING, "k-meleon_Groups2.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count, $URL ); $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1; } _Goverwrite{ $_GroupsUnit_Name = $ARG; #alert("Group name in $ARG: ".$_GroupsUnit_Name, "Groups2 DEBUG", INFO); # First Delete: $_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_GroupsUnit_Name.".count"); $_GroupsUnit_Tab_Count = 0 ; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Delete_Loop; # Second Save: $_GroupsUnit_Number_of_Tabs = $TabNumber; $_GroupsUnit_Tab_Count = 0; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Save_Loop; } _Groups2_OpenGroup{ $_GroupsUnit_Name = $ARG; #alert("Group name in $ARG: ".$_GroupsUnit_Name, "Groups2 DEBUG", INFO); $_GroupsUnit_Name==""?$_GroupsUnit_Name=$URLBAR:0; $_GroupsUnit_Name==""?$_Group=$URL:0; $_GroupsUnit_Name==$URL?0:$_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_GroupsUnit_Name.".count"); $_GroupsUnit_Tab_Count = 0 ; if($_GroupsUnit_Name != $URL ) while($_GroupsUnit_Tab_Count<$_GroupsUnit_Number_of_Tabs) &_GroupsUnit_Load_Loop; } _GroupsUnit_RunCode_Load{ $_GroupsUnit_Name = prompt("Enter name of group to load.", "GroupUnit Name (load)"); if($_GroupsUnit_Name != "" ){ $_Glist=""; $_Glist=getpref( STRING, "k-meleon_Groups2.list"); if(index( $_Glist, $_GroupsUnit_Name ) != -1){ $_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_GroupsUnit_Name.".count"); $_GroupsUnit_Tab_Count = 0 ; id(ID_CLOSE_ALLTA; $URLBAR="about:blank"; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Load_Loop; } else { alert("No group found with name: ".$_GroupsUnit_Name, "GroupUnit Name (load)", EXCLAIM); } } } _GroupsUnit_Load_Loop{ $_GroupsUnit_URL = getpref(STRING, "k-meleon_Groups2.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count, $URL ); if($URLBAR=="about:blank"){ open($_GroupsUnit_URL); $URLBAR=""; } else { opentab( $_GroupsUnit_URL ); } $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1; } _GroupsUnit_RunCode_Delete{ $_GroupsUnit_Name = prompt("Enter name of group to delete.", "GroupUnit Name (delete)"); if($_GroupsUnit_Name != "" ){ $_Glist=""; $_Glist=getpref( STRING, "k-meleon_Groups2.list"); if(index( $_Glist, $_GroupsUnit_Name ) != -1){ $_Glist = sub( $_GroupsUnit_Name."|", "", $_Glist ); setpref( STRING, "k-meleon_Groups2.list", $_Glist ); $_GroupsUnit_DelName = $_GroupsUnit_Name; $_GroupsUnit_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_GroupsUnit_Name.".count"); $_GroupsUnit_Tab_Count = 0 ; while( $_GroupsUnit_Tab_Count < $_GroupsUnit_Number_of_Tabs ) &_GroupsUnit_Delete_Loop; #setmenu("_Groups_List",macro,"",""); #alert($_Glist."\n just prior to call to _Groups2_BuildGroupsMenu", "DEBUG", "INFO"); &_Groups2_BuildGroupsMenu; } else { alert("No group found with name: ".$_GroupsUnit_Name, "GroupUnit Name (delete)", EXCLAIM); } } } _GroupsUnit_Delete_Loop{ $_GroupsUnit_Tab_Count == 0 ? delpref("k-meleon_Groups2.".$_GroupsUnit_Name.".count"):0; delpref("k-meleon_Groups2.".$_GroupsUnit_Name.".".$_GroupsUnit_Tab_Count); $_GroupsUnit_Tab_Count = $_GroupsUnit_Tab_Count + 1 ; } _Groups2_BuildMenu{ # Groups menu if($kTabs){ $_g="&Groups"; setmenu(Main,popup,$_g,"&Tools"); $__m="_Groups"; setmenu($_g,inline,$__m); setmenu($__m,macro,"&Save a group",_GroupsUnit_RunCode_Save); setmenu($__m,macro,"&Load a group",_GroupsUnit_RunCode_Load); setmenu($__m,macro,"&Delete a group",_GroupsUnit_RunCode_Delete); setmenu($__m,separator,3); &_Groups2_BuildGroupsMenu; } } _Groups2_BuildGroupsMenu{ #alert("Just starting _Groups2_BuildGroupsMenu", "DEBUG", "INFO"); $_g="&Groups"; $_m="_Groups_List"; setmenu($_g,inline,$_m); $__glist=getpref( STRING, "k-meleon_Groups2.list"); #alert("Group list:\n".$__glist, "Groups2 DEBUG", INFO); while($__glist != ""){ $__gname = substr($__glist, 0 , index($__glist, "|")); #alert("Group name:\n".$__gname, "Groups2 DEBUG", INFO); setmenu($_m,macro,$__gname,"_Groups2_OpenGroup(".$__gname.")"); $__glist=sub( $__gname."|", "", $__glist ); #alert("Group list:\n".$__glist, "Groups2 DEBUG", INFO); } $_GroupsUnit_DelName != ""?setmenu($_m,macro,$_GroupsUnit_DelName,"") : 0; rebuildmenu($_g); rebuildmenu($_m); $_GroupsUnit_DelName = ""; } _Groups2_SetAccels{ # SHIFT VK_RETURN not work setaccel("ALT VK_RETURN","macros(_Groups2_OpenGroup)"); } $OnInit=$OnInit."_Groups2_SetAccels;_Groups2_BuildMenu;"; $macroModules=$macroModules."Groups2;";
Quote
JamesD
@ desga2
One concern about using "list" pref. Since that requires index and substr , will there be a problem for those who wish to use with a language which requires UTF-8? I had thought to use something like this.
k-meleon_GroupsUnit.count to keep total number of groups.
k-meleon_GroupsUnit.1 [2][3][4] etc to hold the name of the group.
That is very good with the inline menu. I have not yet discovered why the group name remains after the delete. I will keep trying.
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # File name: Groups2.kmm # ---------- Groups2 in tabs for K-Meleon 1.5.x ---- # # Dependencies : - main.kmm KM version 1.5 tabs # Resources : - # Preferences : - k-meleon_Groups2.<name>, <#> # : - k-meleon_Groups2.<name>,<count> # : - k-meleon_Groups2.count, <count> # : - k-meleon_Groups2.<#>, <name> # Version : - 0.3a 2009-01-02 # Authors : JamesD and desga2 # -------------------------------------------------------------------------------- _Groups2_RunCode_Save{ macroinfo="Save the current tab's URLS"; $_Groups2_Name = prompt("Assign a name for this group.", "Group Name (save)"); if($_Groups2_Name != "" ){ macros(_Groups2_ObtainC) ; if ($_Groups2_Match== "true") { $_Goverwrite = confirm("Group name: '".$_Groups2_Name."' already exist.\nDo you want overwrite it?", "Group Name (save)", YESNO, QUESTION); $_Goverwrite == "YES" ? plugin(macros,"_Goverwrite(".$_Groups2_Name.")") : 0; } else { setpref( STRING, "k-meleon_Groups2.". $_Groups2_Exist_Count, $_Groups2_Name ) ; $_Groups2_Exist_Count = $_Groups2_Exist_Count + 1; setpref( INT, "k-meleon_Groups2.count", $_Groups2_Exist_Count); $_Groups2_Number_of_Tabs = $TabNumber; $_Groups2_Tab_Count = 0; while( $_Groups2_Tab_Count < $_Groups2_Number_of_Tabs ) &_Groups2_Save_Loop; &_Groups2_BuildGroupsMenu; } } } _Groups2_Save_Loop{ $_Groups2_Tab_Count == 0 ? setpref( INT, "k-meleon_Groups2.".$_Groups2_Name.".count", $_Groups2_Number_of_Tabs ) :0; id(ID_TAB_NEXT); setpref( STRING, "k-meleon_Groups2.".$_Groups2_Name.".".$_Groups2_Tab_Count, $URL ); $_Groups2_Tab_Count = $_Groups2_Tab_Count + 1; } _Goverwrite{ $_Groups2_Name = $ARG; $_Groups2_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_Groups2_Name.".count"); $_Groups2_Tab_Count = 0 ; while( $_Groups2_Tab_Count < $_Groups2_Number_of_Tabs ) &_Groups2_Delete_Loop; $_Groups2_Number_of_Tabs = $TabNumber; $_Groups2_Tab_Count = 0; while( $_Groups2_Tab_Count < $_Groups2_Number_of_Tabs ) &_Groups2_Save_Loop; } Groups2_OpenGroup{ $_Groups2_Name = $ARG; $_Groups2_Name==""?$_Groups2_Name=$URLBAR:0; $_Groups2_Name==""?$_Group=$URL:0; $_Groups2_Name==$URL?0:$_Groups2_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_Groups2_Name.".count"); $_Groups2_Tab_Count = 0 ; if($_Groups2_Name != $URL ) while($_Groups2_Tab_Count<$_Groups2_Number_of_Tabs) &_Groups2_Load_Loop; } _Groups2_RunCode_Load{ $_Groups2_Name = prompt("Enter name of group to load.", "Group Name (clear then load)"); if($_Groups2_Name != "" ){ macros(_Groups2_ObtainC) ; if ($_Groups2_Match== "true") { $_Groups2_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_Groups2_Name.".count"); $_Groups2_Tab_Count = 0 ; id(ID_CLOSE_ALLTA; $URLBAR="about:blank"; while( $_Groups2_Tab_Count < $_Groups2_Number_of_Tabs ) &_Groups2_Load_Loop; } else { alert("No group found with name: ".$_Groups2_Name, "Group Name (load)", EXCLAIM); } } } _Groups2_Load_Loop{ $_Groups2_URL = getpref(STRING, "k-meleon_Groups2.".$_Groups2_Name.".".$_Groups2_Tab_Count ); if($URLBAR=="about:blank"){ open($_Groups2_URL); $URLBAR=""; } else { opentab( $_Groups2_URL ); } $_Groups2_Tab_Count = $_Groups2_Tab_Count + 1; } _Groups2_RunCode_Delete{ $_Groups2_Name = prompt("Enter name of group to delete.", "Group Name (delete)"); if($_Groups2_Name != "" ){ macros(_Groups2_ObtainC) ; if ($_Groups2_Match== "true") { $_Groups2_DelName = $_Groups2_Name; macros(_Groups2_collapse); $_Groups2_Number_of_Tabs = getpref( INT, "k-meleon_Groups2.".$_Groups2_Name.".count"); $_Groups2_Tab_Count = 0 ; while( $_Groups2_Tab_Count < $_Groups2_Number_of_Tabs ) &_Groups2_Delete_Loop; setpref( INT, "k-meleon_Groups2.count",$_Groups2_Exist_Count -1 ) &_Groups2_BuildGroupsMenu; } else { alert("No group found with name: ".$_Groups2_Name, "Group Name (delete)", EXCLAIM); } } } _Groups2_Delete_Loop{ $_Groups2_Tab_Count == 0 ? delpref("k-meleon_Groups2.".$_Groups2_Name.".count"):0; delpref("k-meleon_Groups2.".$_Groups2_Name.".".$_Groups2_Tab_Count); $_Groups2_Tab_Count = $_Groups2_Tab_Count + 1 ; } _Groups2_ObtainC{ $_Groups2_Exist_Count = getpref( INT, "k-meleon_Groups2.count"); if ($_Groups2_Exist_Count!=0) { $_GU_cntr = 0; while($_GU_cntr < $_Groups2_Exist_Count) { macros(_Groups2_Read); } } } _Groups2_Read{ $_Groups2_EName = getpref( STRING, "k-meleon_Groups2.". $_GU_cntr ) ; $_Groups2_Match = $_Groups2_Name == $_Groups2_EName ? "true" : "false" ; if ($_Groups2_Match== "true") { $_Groups2_Match_cntr = $_GU_cntr; $_GU_cntr = $_GU_cntr + 990 ; } else { $_GU_cntr = $_GU_cntr + 1 ;} } _Groups2_collapse{ while ( $_Groups2_Match_cntr +1 < $_Groups2_Exist_Count ) { $_Groups2_collaspe_value = getpref( STRING, "k-meleon_Groups2.". $_Groups2_Match_cntr +1 ) ; setpref( STRING, "k-meleon_Groups2.".$_Groups2_Match_cntr, $_Groups2_collaspe_value); $_Groups2_Match_cntr = $_Groups2_Match_cntr +1 ; } delpref("k-meleon_Groups2.".$_Groups2_Exist_Count -1); } _Groups2_BuildMenu{ if($kTabs){ $_g="&Groups"; setmenu(Main,popup,$_g,"&Tools"); $__m="_Groups"; setmenu($_g,inline,$__m); setmenu($__m,macro,"&Save a group",_Groups2_RunCode_Save); setmenu($__m,macro,"&Load a group",_Groups2_RunCode_Load); setmenu($__m,macro,"&Delete a group",_Groups2_RunCode_Delete); setmenu($__m,separator,3); &_Groups2_BuildGroupsMenu; } } _Groups2_BuildGroupsMenu{ $_g="&Groups"; $_m="_Groups_List"; setmenu($_g,inline,$_m); $_Groups2_Exist_Count = getpref( INT, "k-meleon_Groups2.count"); if ($_Groups2_Exist_Count!=0) { $_GU_cntr = 0; while($_GU_cntr < $_Groups2_Exist_Count) { $_Groups2_EName = getpref( STRING, "k-meleon_Groups2.". $_GU_cntr ) ; setmenu($_m,macro,$_Groups2_EName,"Groups2_OpenGroup(".$_Groups2_EName.")"); $_GU_cntr = $_GU_cntr + 1 ; } $_Groups2_DelName != ""?setmenu($_m,macro,$_Groups2_DelName,"") : 0; } rebuildmenu($_g); rebuildmenu($_m); $_Groups2_DelName = ""; } _Groups2_SetAccels{ setaccel("ALT VK_RETURN","macros(Groups2_OpenGroup)"); } _Groups2_compat{ ## Automatic update from Ver. 0.2c to Ver. 0.3x $__glist=""; $__GCnt=0; $__glist=getpref( STRING, "k-meleon_Groups2.list"); $__glist!= "" ? delpref("k-meleon_Groups2.list") :0; while($__glist != ""){ $__gname = substr($__glist, 0 , index($__glist, "|")); setpref( STRING, "k-meleon_Groups2.". $__GCnt, $__gname ) ; $__glist=sub( $__gname."|", "", $__glist ); $__GCnt = $__GCnt +1; } $__GRCnt = getpref( INT, "k-meleon_Groups2.count"); $__GRCnt != 0 ? $__GCnt = $__GRCnt; setpref( INT, "k-meleon_Groups2.count", $__GCnt); } $OnInit=$OnInit."_Groups2_compat;_Groups2_SetAccels;_Groups2_BuildMenu;"; $macroModules=$macroModules."Groups2;";
Quote
desga2
Is this the same code than last email that you send me?
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # ---------- Open top(last window) of Session as tabs ---------------------- # # Dependencies : main.kmm # Resources : - # Preferences : - # # ----------------------------------------------------------------------------- OpenAllGroup{ # Obtain Popups pref value: $_PUB_value = getpref(BOOL, $pref_Popups); $_PUB_value == true ? &pref_TogglePopups : 0; $grpName = prompt("Session to add as tabs:",""); $num = getpref( INT, "kmeleon.plugins.sessions2." . $grpName . ".window0.count"); $_i = 0; while ( $_i < $num ) &_OpenIt; # Restore pref value: $_PUB_value == true ? &pref_TogglePopups : 0; } # ----- PRIVATE _OpenIt{ $tmp = getpref( STRING, "kmeleon.plugins.sessions2." . $grpName . ".window0.tab" . $_i); $tmp = gsub("'","\\'",$tmp); $srch = "http:"; &_FindLast; $srch = "https:"; &_FindLast; $srch = "chrome:"; &_FindLast; $tmp = substr($tmp,0,index($tmp,"\t")); openbgtab($tmp); $_i = $_i + 1; } _FindLast{ $_index = index($tmp,$srch); $_i2 = $_index; while ($_index > -1) &_RmFront; $_i2 > -1 ? $tmp = substr($srch,0,1).$tmp : 0; } _RmFront{ $tmp = substr($tmp,$_index+1); $_index = index($tmp,$srch); } _AddSessionTabs_BuildMenu{ setmenu("&Load Session",macro,"Add as tabs","OpenAllGroup"); } $OnInit=$OnInit."_AddSessionTabs_BuildMenu;"; # ------------------------------------------------------------------------------ $macroModules=$macroModules."AddSessionTabs;";
Tell me, please, how do I create a list of available groups in menu? Now I have to memorize the names of groups, but it is not good, because if a lot of teams, their all names difficult to rememberQuote
JamesD
How can we do for create the Group list menu?