@ rodocop
Here is a first try and getting some prefs from each skin as it is being loaded. It is just something to try.
Note that all prefs entered this way become user prefs and are not default. I think the developers never intended any but one default set of prefs.
First you would set a "dat" file named "skin" in each skin folder for which you wish extra pref information.
Example skin.dat file
## Default toolband info for skin < skin name >
## Only one blank space allowed. The blank space is before the value.
## No comma or paren or quote symbols allowed in these comments.
## This file is machine readable. Format of the lines is important.
(INT,"kmeleon.toolband.Offline Button.break", 0)
(INT,"kmeleon.toolband.Offline Button.index", 12)
(INT,"kmeleon.toolband.Offline Button.size", 45)
(BOOL,"kmeleon.toolband.Offline Button.visibility", false)
(INT,"kmeleon.toolband.KMrestart.break", 0)
(INT,"kmeleon.toolband.KMrestart.index", 0)
(INT,"kmeleon.toolband.KMrestart.size", 36)
(BOOL,"kmeleon.toolband.KMrestart.visibility", true)
The following macro will run on init and read, parse, and set the prefs.
SkinPreLd.kmm
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage2)
#
# File name: SkinPreLd.kmm
#
# ---------- Import prefs for skin.dat in individual skin folder -------------------------------
#
# Loads prefs for the skin being loaded from data read in skin.dat file
# $OnInit=$OnInit."_SkinPreLd_Run;"; is executed prior to skin display
#
# Dependencies : main.kmm
# Resources : skin.dat
# Preferences :
# Version : 1.0 2012-12-27
# Author : JamesD
# -----------------------------------------------------------------------------------------------
_SkinPreLd_Run {
$_SkinPreLd_LoadSkin = getpref(STRING, "kmeleon.general.skinsCurrent");
$_SkinPreLd_Path = getfolder( RootFolder )."\\skins\\".$_SkinPreLd_LoadSkin."\\skin.dat" ;
#alert($_SkinPreLd_Path, "To read from");
$_SkinPreLd_Dat = readfile($_SkinPreLd_Path);
$_SkinPreLd_DatLen = length($_SkinPreLd_Dat);
$_SkinPreLd_Idx = 10;
while ($_SkinPreLd_Idx > 0 ) {
$_SkinPreLd_P2 = index( $_SkinPreLd_Dat, "(" ); ## find first left paren
$_SkinPreLd_Dat = substr($_SkinPreLd_Dat, $_SkinPreLd_P2); ## start at first left paren
$_SkinPreLd_P1 = index( $_SkinPreLd_Dat, ")"); ## find first right paren
$_SkinPreLd_Pref = substr( $_SkinPreLd_Dat, 1 , $_SkinPreLd_P1 -1 ) ;
## parse the pref - at this point the whole pref is a text string
$_SkinPreLd_k = index($_SkinPreLd_Pref, ",\"" ); ## "pos 1 of first delimit
$_SkinPreLd_Type = substr($_SkinPreLd_Pref, 0, $_SkinPreLd_k ); ## read from the first pos
$_SkinPreLd_k2 = index($_SkinPreLd_Pref, "\"," ); ## "pos 1 of second delimit
$_SkinPreLd_k3 = $_SkinPreLd_k2 - $_SkinPreLd_k ;
$_SkinPreLd_Name = substr($_SkinPreLd_Pref, $_SkinPreLd_k +2, $_SkinPreLd_k3 -2 );
$_SkinPreLd_Value = substr($_SkinPreLd_Pref, $_SkinPreLd_k2 + 2);
#alert( "TYPE= ". $_SkinPreLd_Type . " NAME= " . $_SkinPreLd_Name . " VALUE= " . $_SkinPreLd_Value, $_SkinPreLd_Pref);
setpref($_SkinPreLd_Type, $_SkinPreLd_Name, $_SkinPreLd_Value );
$_SkinPreLd_Dat = substr($_SkinPreLd_Dat, $_SkinPreLd_P1 + 1 );
$_SkinPreLd_Idx = index( $_SkinPreLd_Dat, "(" );
}
alert( $_SkinPreLd_Path, _("New items/values entered to prefs from"), INFO);
}
$OnInit=$OnInit."_SkinPreLd_Run;";
$macroModules=$macroModules."SkinPreLd;";
Hanlon’s razor is an eponymous adage named after Robert J. Hanlon that states: “Never attribute to malice that which is adequately explained by stupidity.â€
JamesD