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 in Spanish
# 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_ALLTAB);
$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 in Spanish
# 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_ALLTAB);
$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;";
K-Meleon in Spanish
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.
We are trying to reinvent the wheel. 
K-Meleon in Spanish
# 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_ALLTAB);
$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;";
my english grammar is awful)
K-Meleon in Spanish
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?

)